36.4 通過中斷降低CPU開銷

36.4 通過中斷降低CPU開銷

????多年前為了提升這種交互的性能礼饱,許多工程師發(fā)明了我們現(xiàn)在熟知的:中斷坏为。操作系統(tǒng)不是重復的輪詢設備,而是發(fā)出一個命令镊绪,使請求設備的進程進入休眠狀態(tài)匀伏,并且進行環(huán)境切換到另一任務。
當設備最終完成了操作蝴韭,它將會發(fā)出一個硬件中斷够颠,在預定的中斷服務程序中或者更簡單的中斷處理程序下使CPU跳進OS中。中斷處理系統(tǒng)只是操作系統(tǒng)代碼中的一部分榄鉴,它將會完成請求(例如履磨,通過讀取數(shù)據(jù)和可能來自設備的錯誤代碼)并且喚醒等待I/O的進程,這樣進程就能如愿執(zhí)行下去庆尘。
????因此剃诅,中斷使得計算和I/O可以同時進行,這是提升利用率的關(guān)鍵驶忌。以下的時間線展示了這一點:
????在圖中综苔,進程1某段時間占用CPU(用CPU時間線上重復的1表示),然后它向硬盤發(fā)出一個I/O請求讀取數(shù)據(jù)位岔。在沒有中斷的情況下,系統(tǒng)簡單的運行堡牡,反復的輪詢設備狀態(tài)直到I/O完成(圖中用P表示)抒抬。硬盤響應了請求,最終進程1可以再一次在CPU中執(zhí)行晤柄。
????如果我們利用中斷擦剑,允許CPU和I/O并行,當?shù)却脖P操作時芥颈,操作系統(tǒng)干點別的事惠勒。
????在這個例子中,當硬盤為進程1提供服務時爬坑,操作系統(tǒng)可以將進程2調(diào)入CPU纠屋。當硬盤請求完成,發(fā)生中斷盾计,操作系統(tǒng)喚醒進程1然后再次執(zhí)行它售担。因此赁遗,在圖中重疊的時間段中,CPU和硬盤都得到了適當?shù)氖褂谩?br> ????注意到族铆,使用中斷并不一直是最好的解決方案岩四。例如,想象一個設備非掣缛粒快地執(zhí)行它的任務:在第一次輪詢時間內(nèi)任務通常都能完成剖煌。在這個系統(tǒng)中使用中斷反而會減慢速度:切換到其他進程,處理中斷然后切回被中斷的進程逝淹,這一過程系統(tǒng)開銷很大耕姊。因此,如果一個設備運行速度很快创橄,那么最好的方式是采用輪詢箩做;如果它運行速度很慢,那么允許設備CPU并行的中斷則是最好的方式妥畏。如果設備的速度是未知的邦邦,或者有些時候快,有些時候慢醉蚁,那么最好的方式可能是混合的燃辖,即先輪詢一小會,然后如果設備還不能響應网棍,再使用中斷黔龟。在上述情況下,這種兩步的方法可能獲得最好的效果滥玷。

TIP:中斷并不一定一直優(yōu)于PIO(Programming Input/Output Model氏身,CPU控制I/O)。
盡管中斷允許計算和I/O并發(fā)執(zhí)行惑畴,但這只對低速設備有意義蛋欣。另外,中斷處理和環(huán)境切換的開銷可能超過中斷帶來的好處如贷。有這樣的案例陷虎,大量的中斷可能使得系統(tǒng)過載,并且導致活鎖現(xiàn)象杠袱;在這樣的例子中尚猿,輪詢在調(diào)度中為操作系統(tǒng)提供更多的控制,因而又是有用的楣富。
????另一個理由不去使用中斷凿掂,出現(xiàn)在網(wǎng)絡中。當巨量的即將到來的數(shù)據(jù)包每一個都產(chǎn)生一個中斷的話菩彬,很可能使得操作系統(tǒng)活鎖缠劝,即操作系統(tǒng)只顧著執(zhí)行中斷而不去執(zhí)行用戶進程也不響應請求潮梯。例如,想象一個web服務突然由于slashdot效應而受到大量訪問惨恭。在這一案例中秉馏,最好是間或使用輪詢來更好的控制系統(tǒng),并且允許web服務在返回設備檢查更多包裹到來之前脱羡,響應某些請求萝究。

????另一種基于中斷的優(yōu)化方法是聚集。在這一方法中锉罐,當一個需要發(fā)出中斷的設備向CPU遞交中斷之前帆竹,首先需要等待一小會。等待的過程中脓规,其他的請求可能很快得到完成栽连,然后多個中斷可以聚集成一個中斷遞交給CPU,從而降低中斷處理的開銷。當然侨舆,等待太久秒紧,將會增加請求的延遲,這是系統(tǒng)中常見的權(quán)衡挨下。見Ahmad et al.[A+11] 熔恢,有極好的總結(jié)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末臭笆,一起剝皮案震驚了整個濱河市叙淌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌愁铺,老刑警劉巖鹰霍,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異茵乱,居然都是意外死亡衅谷,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門似将,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蚀苛,你說我怎么就攤上這事在验。” “怎么了堵未?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵腋舌,是天一觀的道長。 經(jīng)常有香客問我渗蟹,道長块饺,這世上最難降的妖魔是什么赞辩? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮授艰,結(jié)果婚禮上辨嗽,老公的妹妹穿的比我還像新娘。我一直安慰自己淮腾,他們只是感情好糟需,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著谷朝,像睡著了一般洲押。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上圆凰,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天杈帐,我揣著相機與錄音,去河邊找鬼专钉。 笑死挑童,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的驶沼。 我是一名探鬼主播炮沐,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼回怜!你這毒婦竟也來了大年?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤玉雾,失蹤者是張志新(化名)和其女友劉穎翔试,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體复旬,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡垦缅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了驹碍。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片壁涎。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖志秃,靈堂內(nèi)的尸體忽然破棺而出怔球,到底是詐尸還是另有隱情,我是刑警寧澤浮还,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布竟坛,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏担汤。R本人自食惡果不足惜涎跨,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望崭歧。 院中可真熱鬧隅很,春花似錦、人聲如沸驾荣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽播掷。三九已至审编,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間歧匈,已是汗流浹背垒酬。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留件炉,地道東北人勘究。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像斟冕,于是被迫代替她去往敵國和親口糕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

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

  • 操作系統(tǒng)概論 操作系統(tǒng)的概念 操作系統(tǒng)是指控制和管理計算機的軟硬件資源磕蛇,并合理的組織調(diào)度計算機的工作和資源的分配景描,...
    野狗子嗷嗷嗷閱讀 11,931評論 3 34
  • word直接復制來了,格式就不改了秀撇。至于這門課怎么復習超棺,只要平時實驗都認真完成、報告認真寫呵燕,平時分都很高棠绘;考試的話...
    Jozhn閱讀 4,556評論 0 8
  • 必備的理論基礎 1.操作系統(tǒng)作用: 隱藏丑陋復雜的硬件接口,提供良好的抽象接口再扭。 管理調(diào)度進程氧苍,并將多個進程對硬件...
    drfung閱讀 3,541評論 0 5
  • 我想在十月的晚霞等風吹來便是一句想你夕陽開在花里花開在夕陽里 我想在十一的清晨在霜結(jié)的玻璃呼一口氣寫你露水對著陽光...
    顧思思呀閱讀 210評論 19 20
  • 文/十一郎 很長時間寫不出來一個字,想好了很多個主題泛范,卻寫著寫著就發(fā)現(xiàn)味道不對候引,完全寫不下去,于是刪除重來敦跌,還是捕...
    淘汽十一郎閱讀 867評論 2 2