初識處理器 中斷

2021-10-05 02:36:16 字數 870 閱讀 6944

中斷是一種處理器與外設進行通訊的一種機制,用於通知處理器(處理器並不關心外部事件,但是外設不能)外部有重要的外部事件發生,一般情況下面中斷需要被處理器響應。

處理器是怎麼處理中斷呢:需要中斷服務程式(isr)

中斷一旦發生

對於軟體工程師而言,中斷服務程式只是乙個 c 函式。但是,不是所有的函式都可以的。中斷服務函式是沒有返回值,也不需要引數(為什麼?中斷服務程式是處理外設的事件,返回值返回給外設沒有必要,至於處理引數,處理器處理外部事件並需要引數)。中斷函式必須小兒短小,避免浮點運算(耗時,有些 cpu不支援)。

應用程式不必關心中斷的發生與處理

中斷服務程式不必關心應用程式的狀態

中斷是上層應用於底層**的分割邊界

最主要的一點是中斷不是應用層的概念

硬中斷: 外設通過中斷訊號線和處理器相連線(可能在其他的書籍叫中斷)

軟中斷:通過非法和特殊的指令來觸發(可能在其他的書籍叫陷阱 或者 異常 ,雖然命名的方式是不同的,但是本質是一樣的)

站在軟體工程師的角度不去討論中斷的設計而是從中斷的使用進行分析。

實現的過程稍微複雜,但是具體的原理還是很簡單的就是利用了中斷。

乙個難點是斷點是怎麼實現的(其實很簡單,指定**行,c程式編譯後變成匯程式設計序,因此每個c程式都對應著乙個指令位址,在打斷點的瞬間,我們只要將**行對應的位址的指令,將中斷指令替換《當中斷發生後中斷服務程式就開始工作了,除錯程式在中斷服務程式讀取裡面相關暫存器的資料》,當需要往下執行的時候,將之前的下文資訊還原,然後將 pc 的指標指向之前的位址)。中斷的觸發會被作業系統所感知,當作業系統感知到中斷,就會傳送訊息,只要將這些 (linux下signal)(windows下是mesage) 傳送到 除錯應用程式就可以了,控制權就得到了轉移。

大話處理器 第2章 初識處理器

目錄處理器的分層模型 硬體指標 軟體指標 作為硬體和軟體之間的橋梁,將軟體程式設計所需要了解的硬體資訊從硬體系統中抽象出來,這樣軟體人員就可以面向isa進行程式設計,開發出的軟體不經過修改就可以應用在其他isa架構的系統上。isa包括一套指令集和一些暫存器。處理器被分為三個層次 指令集體系結構 is...

處理器間中斷處理 IPI

處理器間中斷允許乙個cpu向系統其他的cpu傳送中斷訊號,處理器間中斷 ipi 不是通過irq線傳輸的,而是作為訊號直接放在連線所有cpu本地apic的匯流排上。在多處理器系統上,linux定義了下列三種處理器間中斷 call function vector 向量0xfb 發往所有的cpu,但不包括...

處理器中斷的本質,硬中斷 軟中斷 異常的區別

處理器中斷的本質,硬中斷 軟中斷 異常的區別 1956年,era 1103a計算機系統引入了中斷 interrupt 機制。era 1103a用於接收 處理風洞試驗資料,再將資料處理結果返回給風洞,如此迴圈往復。但風洞資料的準備時間比較長,era 1103a只能處於等待狀態,這段時間被白白的浪費掉了...