當前活動任務中斷級

當前活動任務中斷級

中斷指計算機運行過程中,出現某些意外情況需主機干預時,機器能自動停止正在運行的程式並轉入處理新情況的程式;處理完畢後又返回原被暫停的程式繼續運行。當前活動任務中斷級是指當前活動任務發生中斷,依據任務的優先權和性質,系統賦予當前活動任務的中斷優先權。

基本介紹

  • 中文名:當前活動任務中斷級
  • 外文名:Current active task interrupt level
  • 學科:計算機
  • 定義:當前任務活動的中斷優先權
  • 有關術語:中斷,中斷優先權
  • 領域:作業系統
簡介,中斷優先權,中斷嵌套,中斷執行優先權,中斷過程,中斷分類,硬體中斷(Hardware Interrupt):,軟體中斷(Software Interrupt):,

簡介

在計算機科學中,中斷(英語:Interrupt)是指處理器接收到來自硬體或軟體的信號,提示發生了某個事件,應該被注意,這種情況就稱為中斷。
通常,在接收到來自外圍硬體(相對於中央處理器和記憶體)的異步信號,或來自軟體的同步信號之後,處理器將會進行相應的硬體/軟體處理。發出這樣的信號稱為進行中斷請求(interrupt request,IRQ)。硬體中斷導致處理器通過一個運行信息切換(context switch)來保存執行狀態(以程式計數器和程式狀態字等暫存器信息為主);軟體中斷則通常作為CPU指令集中的一個指令,以可程式的方式直接指示這種運行信息切換,並將處理導向一段中斷處理代碼。中斷在計算機多任務處理,尤其是即時系統中尤為有用。這樣的系統,包括運行於其上的作業系統,也被稱為“中斷驅動的”(interrupt-driven)。
當前活動任務中斷級即系統賦予當前活動任務的中斷優先權。一般與任務的優先權和性質有關。一般來說,I/O任務的中斷優先權比其他任務中斷優先權高,處理機會優先I/O任務中斷。

中斷優先權

在某一時刻有幾個中斷源同時發出中斷請求時,處理器只回響其中優先權最高的中斷源。當處理機正在運行某箇中斷服務程式期間出現另一個中斷源的請求時,如果後者的優先權低於前者,處理機不予理睬,反之,處理機立即回響後者,進入所謂的“嵌套中斷”。中斷優先權的排序按其性質、重要性以及處理的方便性決定,由硬體的優先權仲裁邏輯或軟體的順序詢問程式來實現。

中斷嵌套

是指中斷系統正在執行一個中斷服務時,有另一個優先權更高的中斷提出中斷請求,這時會暫時終止當前正在執行的級別較低的中斷源的服務程式,去處理級別更高的中斷源,待處理完畢,再返回到被中斷了的中斷服務程式繼續執行,這個過程就是中斷嵌套。

中斷執行優先權

中斷的執行優先權就是你對IP暫存器的設定了。在2個優先權的情況下,某位為1,則相應的中斷源為高優先權;為0,則為低優先權。
關於中斷的優先權有三條原則:
1、CPU同時接收到幾個中斷時,首先回響優先權最高的中斷請求;
2、正在進行的中斷過程不能被新的同級或低優先權的中斷請求所中斷;
3、正在進行的低優先權中斷服務,能被高優先權中斷請求中斷;
若:同一執行優先權中的中斷申請不止一個時,則有一個中斷優先權排隊問題。同一執行優先權中斷的排隊,由中斷系統硬體確定的自然優先權形成,優先權自高到低的順序即:
外部中斷0>定時/計數0>外部中斷1>定時/計數1>串列接口
例如:設定IP =0x10,即設定串口中斷為最高優先權,則串口中斷可以打斷任何其他的中斷服務函式實現嵌套,且只有串口中斷能打斷其他中斷的服務函式。若串口中斷沒有觸發,則其他幾個中斷之間還是保持邏輯優先權,相互之間無法嵌套。

中斷過程

按照事件發生的順序,中斷過程包括[4]:
①中斷源發出中斷請求;
②判斷當前處理機是否允許中斷和該中斷源是否被禁止;
③優先權排隊;
④處理機執行完當前指令或當前指令無法執行完,則立即停止當前程式,保護斷點地址和處理機當前狀態,轉入相應的中斷服務程式;
⑤執行中斷服務程式;
⑥恢復被保護的狀態,執行“中斷返回”指令回到被中斷的程式或轉入其他程式。
上述過程中前四項操作是由硬體完成的,後兩項是由軟體完成的。

中斷分類

硬體中斷(Hardware Interrupt):

可禁止中斷(maskable interrupt)。硬體中斷的一類,可通過在中斷禁止暫存器中設定位掩碼來關閉。
非可禁止中斷(non-maskable interrupt,NMI)。硬體中斷的一類,無法通過在中斷禁止暫存器中設定位掩碼來關閉。典型例子是時鐘中斷(一個硬體時鐘以恆定頻率—如50Hz—發出的中斷)。
處理器間中斷(interprocessor interrupt)。一種特殊的硬體中斷。由處理器發出,被其它處理器接收。僅見於多處理器系統,以便於處理器間通信或同步。
偽中斷(spurious interrupt)。一類不希望被產生的硬體中斷。發生的原因有很多種,如中斷線路上電氣信號異常,或是中斷請求設備本身有問題。

軟體中斷(Software Interrupt):

軟體中斷是一條CPU指令,用以自陷一個中斷。由於軟中斷指令通常要運行一個切換CPU至核心態(Kernel Mode/Ring 0)的子例程,它常被用作實現系統調用(System call)。
處理器通常含有一個內部中斷禁止位,並允許通過軟體來設定。一旦被設定,所有外部中斷都將被系統忽略。這個禁止位的訪問速度顯然快於中斷控制器上的中斷禁止暫存器,因此可提供更快速地中斷禁止控制。
如果一個中斷使得機器處於一種確定狀態,則稱為精確中斷(precise interrupt)。精確中斷須保證:
程式計數器的值被保存在已知位置。
程式計數器所指向的指令之前的所有指令已被執行完畢。
程式計數器所指向的指令之後的所有指令不可被執行。如果中斷信號到來後而轉入處理前發生了任何針對暫存器/記憶體的更改,都必須予以還原。
程式計數器所指向的指令地執行狀態已知。
倘無法滿足以上條件,此中斷被稱作非精確中斷(imprecise interrupt)。
中斷儘管可以提高計算機處理性能,但過於密集的中斷請求/回響反而會影響系統性能。這類情形被稱作中斷風暴(interrupt storm)。

相關詞條

熱門詞條

聯絡我們