導航:首頁 > 編程語言 > 中斷程序的調用過程

中斷程序的調用過程

發布時間:2024-01-17 22:39:38

① 在計算機系統中,請解釋什麼是中斷,請用流程圖畫出一次中斷處理流程

中斷是指計算機運行過程中,出現某些意外情況需主機干預時,機器能自動停止正在運行的程序並轉入處理新情況的程序,處理完畢後又返回原被暫停的程序繼續運行。

中斷流程圖如下:

(1)中斷程序的調用過程擴展閱讀

眾所周知,處理器的速度跟外圍硬體設備的速度往往不在一個數量級上,因此,如果內核採取讓處理器向硬體發出一個請求,然後專門等待回應的辦法,顯然降低內核效率。

既然硬體的響應這么慢,那麼內核就應該在此期間處理其他事務,等到硬體真正完成了請求的操作之後,再回過頭來對它進行處理。想要實現這種功能,輪詢(polling)可能會是一種解決辦法。可以讓內核定期對設備的狀態進行查詢,然後做出相應的處理。

不過這種方法很可能會讓那個內核做不少無用功,因為無論硬體設備是正在忙碌著完成任務還是已經大功告成,輪詢總會周期性的重復執行。更好的辦法是由我們來提供一種機制,讓硬體在需要的時候再向內核發出信號(變內核主動為硬體主動),這就是中斷機制。

中斷使得硬體得以與處理器進行通信。舉個例子,在你敲打鍵盤的時候,鍵盤控制器(控制鍵盤的硬體設備)會發送一個中斷,通知操作系統有鍵按下。中斷本質是一種特殊的電信號,由硬體設備發向處理器。

處理器接受到中斷後,會馬上向操作系統反映此信號的到來,然後就由os負責處理這些新到來的數據。硬體設備生成中斷的時候並不考慮與處理器的時鍾同步——換句話說就是中斷隨時可以產生。因此,內核隨時可能因為新到來的中斷而被打斷。

不同的設備對應的中斷不同,而每個中斷都通過一個惟一的數字標識。因此,來自鍵盤的中斷就有別於來自硬碟的中斷,從而使得操作系統能夠對中斷進行區分,並知道哪個硬體設備產生了哪個中斷。這樣,操作系統才能給不同的中斷提供不同的中斷處理程序。

在它執行程序的時候,如果有另外的事件發生(比如用戶又打開了一個程序)那麼這時候就需要由計算機系統的中斷機制來處理了。

中斷機制包括硬體的中斷裝置和操作系統的中斷處理服務程序。

讓硬體在需要的時候再向內核發出信號。

參考資料來源:網路-中斷機制

參考資料來源:網路-中斷

② Linux內核中斷之中斷調用流程

本文基於 RockPI 4A 單板Linux4.4內核介紹中斷調用流程。

ARMv8包括兩種運行狀態:AArch64和AArch32。

AArch64中不再使用AArch32中的7種特權模式,而是提出了Exception Levels的概念,包括:

1)EL0:用於用戶態程序,許可權最低

2)EL1:給內核使用,許可權稍高

3)EL2:虛擬化相關,許可權更高

4)EL3:安全相關,許可權最高

Linux內核中一般只使用EL0和EL1。

AArch64異常向量表中的異常包括:

1)Synchronous exception(同步異常)

2)SError

3)IRQ

4)FIQ

註:SError、IRQ和FIQ屬於非同步異常。

在Linux內核中,在 arch/arm64/kernel/entry.S 文件中定義了異常向量表,內容如下:

選取 el1_irq() 函數介紹Linux內核中斷的調用流程。

文件: arch/arm64/kernel/entry.S ,調用流程如下:

1、handle_irq()初始化

在 DTS 解析階段完成 handle_irq() 函數的初始化,流程如下:

gic_irq_domain_map() 函數中完成了 handle_irq() 函數的賦值,具體執行如下:

2、handle_irq()實現

以共享外設中斷 SPI 的中斷處理函數 handle_fasteoi_irq() 為例,繼續跟蹤中斷的執行過程。

handle_irq_event_percpu() 函數會調用已經注冊的中斷處理函數,同時喚醒 irq_thread 線程。

3、中斷處理線程

在使用 request_threaded_irq() 函數申請中斷時,會創建一個 irq_thread 線程,調用流程如下:

irq_thread 線程平時在睡眠狀態,等待 handle_irq_event_percpu() 函數喚醒,進一步執行已注冊的中斷處理線程函數。

使用 DRM 框架中 HDMI 中斷驗證中斷調用流程。

文件: driversgpudrmridgesynopsysdw-hdmi.c

在中斷處理函數 dw_hdmi_hardirq() 和中斷處理線程函數 dw_hdmi_irq 中增加 mp_stack() 調用( 註:僅限於調試驗證 )。

插入 HDMI 線,系統啟動後,顯示中斷調用流程的日誌如下:

③ 中斷處理的一般過程是什麼

中斷請求(中斷響應條件和時間},中斷響應過程,中斷返回

閱讀全文

與中斷程序的調用過程相關的資料

熱點內容
mdfldf是什麼文件 瀏覽:569
文件在桌面怎麼刪除干凈 瀏覽:439
馬蘭士67cd機版本 瀏覽:542
javaweb爬蟲程序 瀏覽:537
word中千位分隔符 瀏覽:392
迷你編程七天任務的地圖怎麼過 瀏覽:844
word2003格式不對 瀏覽:86
百度雲怎麼編輯文件在哪裡 瀏覽:304
起名app數據哪裡來的 瀏覽:888
微信怎麼去泡妞 瀏覽:52
百度廣告html代碼 瀏覽:244
qq瀏覽器轉換完成後的文件在哪裡 瀏覽:623
jsp中的session 瀏覽:621
壓縮完了文件去哪裡找 瀏覽:380
武裝突襲3浩方聯機版本 瀏覽:674
網路機頂盒移動網路 瀏覽:391
iphone手機百度雲怎麼保存到qq 瀏覽:148
資料庫設計與實踐讀後感 瀏覽:112
js對象是什麼 瀏覽:744
網頁文件存pdf 瀏覽:567

友情鏈接