自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

圖解中斷 | 中斷從產(chǎn)生到消失的一生

開發(fā) 架構(gòu)
中斷處理,伴隨著軟硬件的協(xié)同,伴隨著外設(shè)與CPU的傳遞,伴隨著內(nèi)核棧和用戶棧的切換,下面我們就看一下中斷短暫而充實的一生。

[[415956]]

本文轉(zhuǎn)載自微信公眾號「虛機」,作者cloud3 。轉(zhuǎn)載本文請聯(lián)系虛機公眾號。

中斷系統(tǒng)是現(xiàn)代PC的基礎(chǔ)架構(gòu)之一。中斷處理在操作系統(tǒng)也具有舉足輕重的作用 。

中斷處理,伴隨著軟硬件的協(xié)同,伴隨著外設(shè)與CPU的傳遞,伴隨著內(nèi)核棧和用戶棧的切換,下面我們就看一下中斷短暫而充實的一生。

以上是從設(shè)備觸發(fā)到中斷處理函數(shù)處理完畢的整個流程,為了看到中斷處理的全貌,我們隱藏了一些實現(xiàn)細節(jié),具體的細節(jié)以后再單獨描述。

下面對每個調(diào)節(jié)進行簡單的描述。

從設(shè)備到APIC

外部中斷的發(fā)起者是設(shè)備,設(shè)備通過電平觸發(fā)IRQ信號線產(chǎn)生一個中斷。

檢測到中斷信號后,IOAPIC使用寫內(nèi)存的方式把中斷信息發(fā)送到系統(tǒng)總線上。

LAPIC接收到中斷信息后把中斷能否發(fā)送給CPU處理。

CPU內(nèi)部

CPU感知到中斷線后,從LAPIC上接收中斷號。

切換到內(nèi)核棧。保存當前進程棧,例如在X86上會保存SS, ESP, EFLAGS, CS, EIP以及錯誤碼。

然后通過IDTR寄存器和中斷號找到中斷服務(wù)程序的入口。

中斷處理程序

一般把中斷處理分為兩個半部:中斷處理程序是上半部(top half)和下半部(bottom half)。

上半部立會即執(zhí)行,只做有嚴格時限的工作,例如對接收的中斷進行應(yīng)答或復(fù)位硬件,這些工作都是在所有中斷被禁止的情況下完成的。

能夠被允許稍后完成的工作會推遲到下半部(bottom half)去做。

從中斷處理返回到CPU

恢復(fù)之前保存的flag和寄存器狀態(tài),恢復(fù)之前運行的進程。

再到中斷處理程序

運行中斷處理程序的下半部,把中斷任務(wù)執(zhí)行完成。

 

上面為了看到中斷處理的全貌,我們隱藏了一些實現(xiàn)細節(jié),具體的細節(jié)后面會在單獨描述。

 

責任編輯:武曉燕 來源: 虛機
點贊
收藏

51CTO技術(shù)棧公眾號