一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

網(wǎng)絡(luò)IO模型

 心不留意外塵 2016-04-15

from http://blog.csdn.net/whuqin/article/details/25735853

2014.05

應(yīng)用程序從網(wǎng)絡(luò)中拿數(shù)據(jù),要經(jīng)歷兩個(gè)階段:1、等待數(shù)據(jù)準(zhǔn)備好-分組到達(dá),被拷貝到內(nèi)核緩沖區(qū),組裝數(shù)據(jù)報(bào);2、數(shù)據(jù)從內(nèi)核緩沖區(qū)拷貝至用戶態(tài)應(yīng)用程序的緩沖區(qū)。Unix下五個(gè)I/O模型:

 阻塞I/O:

進(jìn)程調(diào)用recvfrom,此系統(tǒng)調(diào)用直到數(shù)據(jù)報(bào)到達(dá)且拷貝到應(yīng)用緩沖區(qū)(或出錯(cuò))才返回。


非阻塞I/O:

應(yīng)用程序調(diào)用recvfrom時(shí)無數(shù)據(jù),內(nèi)核立馬返回錯(cuò)誤;有數(shù)據(jù),則拷貝數(shù)據(jù)到應(yīng)用緩沖區(qū)。一般應(yīng)用程序會(huì)循環(huán)調(diào)用recvfrom(輪詢),不斷查詢內(nèi)核數(shù)據(jù)是否準(zhǔn)備好,浪費(fèi)CPU。


I/O復(fù)用(select/poll/epoll,IO條件滿足時(shí)獲得通知):

應(yīng)用阻塞于select調(diào)用,等待數(shù)據(jù)報(bào)可讀。當(dāng)select返回套接口可讀條件時(shí),我們調(diào)用recvfrom將數(shù)據(jù)拷貝到應(yīng)用緩沖區(qū)。I/O復(fù)用對(duì)阻塞IO的好處是可以等待多個(gè)描述字準(zhǔn)備好。


信號(hào)驅(qū)動(dòng)I/O(SIGIO):

通過系統(tǒng)調(diào)用sigaction安裝一個(gè)信號(hào)處理程序(注冊信號(hào)),然后立即返回。數(shù)據(jù)報(bào)準(zhǔn)備好時(shí),內(nèi)核生成SIGIO信號(hào)通知信號(hào)處理程序,信號(hào)處理程序調(diào)用recvfrom取回?cái)?shù)據(jù)或者通知主循環(huán)自己來取數(shù)據(jù)。好處:半阻塞,數(shù)據(jù)到達(dá)之前,程序不阻塞,主循環(huán)可以繼續(xù)執(zhí)行,只是等待信號(hào)處理程序的通知(數(shù)據(jù)準(zhǔn)備好或者數(shù)據(jù)報(bào)準(zhǔn)備好讀)。


異步I/O(Posix.1的aio_和lio_系列函數(shù)):

與信號(hào)驅(qū)動(dòng)模型的區(qū)別-信號(hào)驅(qū)動(dòng)IO是由內(nèi)核通知何時(shí)可以啟動(dòng)一個(gè)IO操作,而異步IO模型是由內(nèi)核通知IO操作何時(shí)完成。我們調(diào)用aio_read函數(shù)告訴內(nèi)核描述字、緩沖區(qū)指針、緩沖區(qū)大小、文件偏移,并告訴內(nèi)核整個(gè)操作完成時(shí)何時(shí)通知我們。此系統(tǒng)調(diào)用立即返回,進(jìn)程不阻塞于等待IO完成。

異步IO很少使用,支持的系統(tǒng)較少。


I/O模型對(duì)比:

前4種I/O模型主要區(qū)別在第一階段,第二個(gè)階段基本相同(在數(shù)據(jù)從內(nèi)核拷貝到應(yīng)用程序緩沖區(qū)時(shí),進(jìn)程阻塞于recvfrom調(diào)用)。而異步I/O的兩個(gè)階段都不同于前4個(gè)模型。


同步I/O與異步I/O定義(Posix.1)比較:

同步I/O:同步I/O操作引起請(qǐng)求進(jìn)程阻塞,直到I/O操作完成。前四個(gè)模型阻塞I/O、非阻塞I/O、I/O復(fù)用模型和信號(hào)驅(qū)動(dòng)型I/O模型都是同步I/O模型。

異步I/O:異步I/O操作不引起請(qǐng)求進(jìn)程阻塞,因此只有兩階段都不阻塞的異步模型屬于異步I/O。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    精品久久少妇激情视频| 四十女人口红哪个色好看| 国产精品超碰在线观看| 亚洲国产成人精品福利| 亚洲欧美日韩综合在线成成| 久久精品国产亚洲av久按摩| 亚洲国产色婷婷久久精品 | 欧美日韩在线第一页日韩| 五月激情五月天综合网| 正在播放国产又粗又长| 精品推荐国产麻豆剧传媒| 黑人巨大精品欧美一区二区区 | 亚洲欧美日韩国产成人| 老鸭窝精彩从这里蔓延| 99久久精品午夜一区二| 中文字幕禁断介一区二区| 欧美精品在线播放一区二区| 黄色激情视频中文字幕| 国产日韩中文视频一区| 国内精品美女福利av在线| 三级高清有码在线观看| 91麻豆视频国产一区二区| 激情五月激情婷婷丁香| 久久大香蕉一区二区三区| 欧美日韩国产欧美日韩| 欧美一级黄片欧美精品| 中文字幕五月婷婷免费| 亚洲乱妇熟女爽的高潮片| 亚洲国产精品国自产拍社区| 亚洲中文字幕一区三区| 好吊视频一区二区在线| 91欧美亚洲视频在线| 日韩精品中文字幕亚洲| 日本不卡在线一区二区三区| 亚洲超碰成人天堂涩涩| 欧美日韩精品久久第一页| 初尝人妻少妇中文字幕在线| 日韩欧美二区中文字幕| 欧美日韩精品人妻二区三区| 亚洲天堂一区在线播放| 亚洲国产av精品一区二区|

    AI助手

    阅读时有疑惑?点击向AI助手提问吧

    联系客服

    微信扫码,添加客服企业微信

    客服QQ:

    1732698931

    联系电话:4000-999-276

    客服工作时间9:00-18:00,晚上非工作时间,请在微信或QQ留言,第二天客服上班后会立即联系您。