UNP談到的5種IO模型

同步阻塞

recvfrom屬于系統(tǒng)調(diào)用撞叨,應用程序調(diào)用 recvfrom厕九,將內(nèi)核中的數(shù)據(jù)包復制到用戶空間的緩沖區(qū)中革屠。

  • 等待數(shù)據(jù)到來的過程镊讼,內(nèi)核收到數(shù)據(jù) block
  • 從內(nèi)核緩沖區(qū)復制到用戶空間應用程序的緩沖區(qū) block

同步非阻塞

設置為 non-blocking的話题翻,如果內(nèi)核沒有數(shù)據(jù)揩徊,recvfrom會返回一個EWOULDBLOCK錯誤腰鬼,告訴用戶,數(shù)據(jù)還未準備好塑荒,此時并未阻塞熄赡。通過輪詢來檢查內(nèi)核是否有數(shù)據(jù)。

在網(wǎng)絡IO時候齿税,非阻塞IO也會進行recvform系統(tǒng)調(diào)用彼硫,檢查數(shù)據(jù)是否準備好,與阻塞IO不一樣凌箕,"非阻塞將大的整片時間的阻塞分成N多的小的阻塞, 所以進程不斷地有機會 '被' CPU光顧"拧篮。

I/O復用模型

用戶程序老是占用大量cpu來進行輪詢的工作,如果將阻塞等待數(shù)據(jù)的到來交給select這樣的管家來執(zhí)行牵舱,select屬于內(nèi)核級別的串绩,讓一個管家?guī)臀覀冚喸兪欠裼袛?shù)據(jù)的到來,可以節(jié)省大量cpu的開箱芜壁,而且相對同步非阻塞礁凡,可以管理多個fd的情況,一旦有可讀的fd慧妄,就告知用戶可以調(diào)用recvfrom顷牌,進行內(nèi)核到用戶進程地址空間的copy。

信號驅(qū)動模型

安裝SIGIO信號處理函數(shù)腰涧,程序繼續(xù)往下執(zhí)行,當數(shù)據(jù)準備好紊浩,內(nèi)核向用戶程序發(fā)送一個SIGIO信號窖铡,應用程序收到后,執(zhí)行這個信號相對應的回調(diào)函數(shù)坊谁。

以上四種都為同步模型

異步I/O

使用信號驅(qū)動I/O時费彼,當網(wǎng)絡套接字可讀后,內(nèi)核通過發(fā)送SIGIO信號通知應用進程口芍,于是應用可以開始讀取數(shù)據(jù)箍铲。有時也稱此方式為異步I/O。但是嚴格講鬓椭,該方式并不能算真正的異步I/O颠猴,因為實際讀取數(shù)據(jù)到應用進程緩存的工作仍然是由應用自己負責的。

而異步I/O模型是當數(shù)據(jù)從內(nèi)核復制到用戶程序的緩沖區(qū)中小染,才遞交信號翘瓮,相比信號驅(qū)動I/O,I/O的兩個階段都是非阻塞

比較

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末裤翩,一起剝皮案震驚了整個濱河市资盅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖呵扛,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件每庆,死亡現(xiàn)場離奇詭異,居然都是意外死亡今穿,警方通過查閱死者的電腦和手機缤灵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荣赶,“玉大人凤价,你說我怎么就攤上這事“未矗” “怎么了利诺?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長剩燥。 經(jīng)常有香客問我慢逾,道長,這世上最難降的妖魔是什么灭红? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任侣滩,我火速辦了婚禮,結(jié)果婚禮上变擒,老公的妹妹穿的比我還像新娘君珠。我一直安慰自己,他們只是感情好娇斑,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布策添。 她就那樣靜靜地躺著,像睡著了一般毫缆。 火紅的嫁衣襯著肌膚如雪唯竹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天苦丁,我揣著相機與錄音浸颓,去河邊找鬼。 笑死旺拉,一個胖子當著我的面吹牛产上,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蛾狗,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼蒂秘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了淘太?” 一聲冷哼從身側(cè)響起姻僧,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤规丽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后撇贺,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赌莺,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年松嘶,在試婚紗的時候發(fā)現(xiàn)自己被綠了艘狭。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡翠订,死狀恐怖巢音,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情尽超,我是刑警寧澤官撼,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站似谁,受9級特大地震影響傲绣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜巩踏,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一秃诵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧塞琼,春花似錦菠净、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至在讶,卻和暖如春煞抬,著一層夾襖步出監(jiān)牢的瞬間霜大,已是汗流浹背构哺。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留战坤,地道東北人曙强。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像途茫,于是被迫代替她去往敵國和親碟嘴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 上一篇《聊聊同步囊卜、異步娜扇、阻塞與非阻塞》[http://www.reibang.com/p/aed6067eeac...
    七寸知架構(gòu)閱讀 139,922評論 57 445
  • 轉(zhuǎn)自: http://www.reibang.com/p/486b0965c296 http://www.jia...
    demop閱讀 3,880評論 1 21
  • 本文摘抄自linux基礎編程 IO概念 Linux的內(nèi)核將所有外部設備都可以看做一個文件來操作错沃。那么我們對與外部設...
    lintong閱讀 1,571評論 0 4
  • 你在我的左邊 中間是銀河
    珊瑚的魚閱讀 209評論 0 0
  • 如果時光被照相機停留的那刻,我愿在我呱呱墜地之時雀瓢,沒有雜念枢析,沒有牽扯,沒有掛想刃麸,在水一方靜靜流淌醒叁。 沒有一塵不變的...
    墨水一一閱讀 238評論 0 0