中斷的概念:從本質上來講,中斷是一種電信號,當設備有某種事件發生時,它就會產生中斷,通過總線把電信號發送給中斷控制器,如果中斷的線是激活的,中斷控制器就把電信號發送給處理器的某個特定引腳,處理器于是立即停止自己正在做的事,跳到中斷處理程式的入口點,進行中斷處理,
中斷的作用:中斷通常被定義為一個事件,該事件能夠改變處理器執行指令的順序,這樣的事件與 CPU 芯片內外部硬體電路產生的電信號相對應,有了中斷,單片機不用頻繁地去查詢這些條件是否具備,從而專心地進行作業,但中斷發生時,又可以隨時作出回應,中斷提高了CPU的利用率,也是現代作業系統實作并發執行的重要手段,例如現代作業系統對行程的調度,一般都是采用基于時間片的優先級調度演算法,把CPU的時間劃分為很細粒度的時間片,一個任務每次只能執行這么多的時間,時間片到了由定時器觸發一個時鐘中斷,CPU收到中斷信號后重新調度行程,
一、軟中斷
軟中斷:軟中斷,是當前正在運行的行程發出的系統呼叫請求,而產生的中斷,即軟中斷是一種需要內核為正在運行的行程去做一些事情(通常為I/O)的請求.
二、硬中斷
硬中斷:由與系統相連的外設(比如網卡、硬碟)自動產生的,主要是用來通知作業系統系統外設狀態的變化,比如當網卡收到資料包的時候,就會發出一個中斷,我們通常所說的中斷指的是硬中斷(hardirq),
按照是否可以 被屏蔽,可將中斷分為兩大類:不可屏蔽中斷(又叫非屏蔽中斷)和可屏蔽中斷,不可屏蔽中斷源一旦提出請求,cpu必須無條件回應,而對于可屏蔽中斷源的請求,cpu可以回應,也可以不回應,cup一般設定兩根中斷請求輸入線:可屏蔽中斷請求INTR(Interrupt Require)和不可屏蔽中斷請求NMI(Nonmaskable Interrupt),對于可屏蔽中斷,除了受本身的屏蔽位的控制外,還都要受一個總的控制,即CPU標志暫存器中的中斷允許標志位IF(Interrupt Flag)的控制,IF位為1,可以得到CPU的回應,否則,得不到回應,IF位可以有用戶控制,指令STI或Turbo c的Enable()函式,將IF位置1(開中斷),指令CLI或Turbo_c 的Disable()函式,將IF位清0(關中斷),典型的非屏蔽中斷源的例子是電源掉電,一旦出現,必須立即無條件地回應,否則進行其他任何作業都是沒有意義的,典型的可屏蔽中斷源的例子是列印機中斷,CPU對列印機中斷請求的回應可以快一些,也可以慢一些,因為讓列印機等待兒是完全可以的,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/281131.html
標籤:其他
