Linux I/O模式及select坤检、poll機(jī)制

Linux IO模式及 select、poll饲梭、epoll詳解

一. 涉及概念

  • 用戶空間與內(nèi)核空間

  • 進(jìn)程間切換

  • 進(jìn)程的阻塞

  • 文件描述符

  • 緩存I/O

  • 用戶控件與內(nèi)核空間


操作系統(tǒng)根據(jù)尋址空間乘盖,劃分為內(nèi)核空間與用戶控件。
Linux 操作系統(tǒng)的高位1G字節(jié)為內(nèi)核使用憔涉;低位3G字節(jié)位用戶使用 (32位操作系統(tǒng)而言)

  • 進(jìn)程切換

為了控制進(jìn)程的執(zhí)行订框,內(nèi)核必須有能力掛起正在CPU上運(yùn)行的進(jìn)程,并恢復(fù)以前掛起的某個進(jìn)程的執(zhí)行兜叨。這種行為被稱為進(jìn)程切換

  • 進(jìn)程的阻塞

正在執(zhí)行的進(jìn)程穿扳,由于期待的某些事件未發(fā)生,如請求系統(tǒng)資源失敗国旷、等待某種操作的完成纵揍、新數(shù)據(jù)尚未到達(dá)或無新工作做等,則由系統(tǒng)自動執(zhí)行阻塞原語(Block)议街,使自己由運(yùn)行狀態(tài)變?yōu)樽枞麪顟B(tài)泽谨。當(dāng)進(jìn)程進(jìn)入阻塞狀態(tài),是不占用cpu資源的

  • 文件描述符fd

文件描述符在形式上是一個非負(fù)整數(shù)特漩。實(shí)際上吧雹,它是一個索引值,指向內(nèi)核為每一個進(jìn)程所維護(hù)的該進(jìn)程打開文件的記錄表涂身。當(dāng)程序打開一個現(xiàn)有文件或者創(chuàng)建一個新文件時雄卷,內(nèi)核向進(jìn)程返回一個文件描述符

  • 緩存I/O

緩存 I/O 又被稱作標(biāo)準(zhǔn) I/O,大多數(shù)文件系統(tǒng)的默認(rèn) I/O 操作都是緩存 I/O蛤售。在 Linux 的緩存 I/O 機(jī)制中丁鹉,操作系統(tǒng)會將 I/O 的數(shù)據(jù)緩存在文件系統(tǒng)的頁緩存( page cache )中妒潭,也就是說,數(shù)據(jù)會先被拷貝到操作系統(tǒng)內(nèi)核的緩沖區(qū)中揣钦,然后才會從操作系統(tǒng)內(nèi)核的緩沖區(qū)拷貝到應(yīng)用程序的地址空間雳灾。

select,poll冯凹,epoll 都屬于用戶進(jìn)程調(diào)用函數(shù)谎亩,整個進(jìn)程進(jìn)入block狀態(tài)(block狀態(tài)不占用CPU);
而同時kernel監(jiān)控所有函數(shù)指負(fù)責(zé)的socket文件描述符宇姚,有任何的一個socket中的數(shù)據(jù)準(zhǔn)備好了匈庭,select(poll,epoll)就會返回浑劳;
用戶進(jìn)程此時將會終止block狀態(tài)阱持,進(jìn)行下一步的操作。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末魔熏,一起剝皮案震驚了整個濱河市衷咽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌道逗,老刑警劉巖兵罢,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異滓窍,居然都是意外死亡卖词,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門吏夯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來此蜈,“玉大人,你說我怎么就攤上這事噪生●烧裕” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵跺嗽,是天一觀的道長战授。 經(jīng)常有香客問我,道長桨嫁,這世上最難降的妖魔是什么植兰? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮璃吧,結(jié)果婚禮上楣导,老公的妹妹穿的比我還像新娘。我一直安慰自己畜挨,他們只是感情好筒繁,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布噩凹。 她就那樣靜靜地躺著,像睡著了一般毡咏。 火紅的嫁衣襯著肌膚如雪驮宴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天血当,我揣著相機(jī)與錄音幻赚,去河邊找鬼禀忆。 笑死臊旭,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的箩退。 我是一名探鬼主播离熏,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼戴涝!你這毒婦竟也來了滋戳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤啥刻,失蹤者是張志新(化名)和其女友劉穎奸鸯,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體可帽,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡娄涩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了映跟。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蓄拣。...
    茶點(diǎn)故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖努隙,靈堂內(nèi)的尸體忽然破棺而出球恤,到底是詐尸還是另有隱情,我是刑警寧澤荸镊,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布咽斧,位于F島的核電站,受9級特大地震影響躬存,放射性物質(zhì)發(fā)生泄漏张惹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一优构、第九天 我趴在偏房一處隱蔽的房頂上張望诵叁。 院中可真熱鬧,春花似錦钦椭、人聲如沸拧额。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侥锦。三九已至进栽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間恭垦,已是汗流浹背快毛。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留番挺,地道東北人唠帝。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像玄柏,于是被迫代替她去往敵國和親襟衰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評論 2 344

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