通道有效中斷

通道有效中斷

I/O通道方式是 DMA 方式的發展, 它可進一步減少 CPU 的干預, 即把對一個數據塊的讀(或寫)為單位的干預減少為對一組數據塊的讀(或寫)及有關的控制和管理為單位的干預。通道有效中斷是指I/O通道傳輸完一組數據塊向CPU發出中斷請求,處理機調用中斷處理程式處理中斷請求。

基本介紹

  • 中文名:通道有效中斷
  • 外文名:channel available interrupt
  • 學科:計算機
  • 定義:I/O通道的發出中斷請求
  • 有關術語:I/O通道、中斷
  • 領域:設備管理
簡介,中斷處理步驟,喚醒被阻塞的驅動(程式)進程,保護被中斷進程的 CPU 環境,轉入相應的設備處理程式,中斷處理,恢復被中斷進程的現場,I/O通道,中斷,

簡介

通道有效中斷即I/O通道向處理機發出的中斷請求。在計算機中,中斷一般分為軟體中斷和硬體中斷。I/O通道中斷屬於硬體中斷。I/O通道中斷的優先權較高,處理機一般會優先處理。中斷處理過程為以下幾個步驟:喚醒被阻塞的驅動(程式)進程、保護被中斷進程的 CPU 環境、轉入相應的設備處理程式、中斷處理、恢復被中斷進程的現場。

中斷處理步驟

中斷處理層的主要工作有:進行進程上下文的切換,對處理中斷信號源進行測試,讀取設備狀態和修改進程狀態等。由於中斷處理與硬體緊密相關,對用戶及用戶程式而言,應該儘量加以禁止,故應該放在作業系統的底層進行中斷處理,系統的其餘部分儘可能少地與之發生聯繫。當一個進程請求 I/O 操作時,該進程將被掛起,直到 I/O 設備完成 I/O 操作後,設備控制器便向 CPU 傳送一中斷請求,CPU 回響後便轉向中斷處理程式,中斷處理程式執行相應的處理,處理完後解除相應進程的阻塞狀態。對於為每一類設備設定一個I/O進程的設備處理方式,其中斷處理程式的處理過程分成以下幾個步驟。

喚醒被阻塞的驅動(程式)進程

當中斷處理程式開始執行時,首先去喚醒處於阻塞狀態的驅動(程式)進程。如果是採用了信號量機制,則可通過執行 signal 操作,將處於阻塞狀態的驅動(程式)進程喚醒;在採用信號機制時,將傳送一信號給阻塞進程。

保護被中斷進程的 CPU 環境

通常由硬體自動將處理機狀態字 PSW 和程式計數器(PC)中的內容,保存在中斷保留區(棧)中,然後把被中斷進程的 CPU 現場信息(即包括所有的 CPU 暫存器,如通用暫存器、段暫存器等內容)都壓入中斷棧中,因為在中
通道有效中斷
斷處理時可能會用到這些暫存器。圖 給出了一個簡單的保護中斷現場的示意圖。該程式是指令在 N 位置時被中斷的,程式計數器中的內容為 N+1,所有暫存器的內容都被保留在棧中。

轉入相應的設備處理程式

由處理機對各個中斷源進行測試, 以確定引起本次中斷的 I/O 設備, 並傳送一應答信號給發出中斷請求的進程,使之消除該中斷請求信號,然後將相應的設備中斷處理程式的入口地址裝入到程式計數器中,使處理機轉向中斷處理程式。

中斷處理

對於不同的設備,有不同的中斷處理程式。該程式首先從設備控制器中讀出設備狀態,以判別本次中斷是正常完成中斷,還是異常結束中斷。若是前者,中斷程式便進行結束處理;若還有命令,可再向控制器傳送新的命令,進行新一輪的數據傳送。若是異常結束中斷,則根據發生異常的原因做相應的處理。

恢復被中斷進程的現場

當中斷處理完成以後,便可將保存在中斷棧中的被中斷進程的現場信息取出,並裝入到相應的暫存器中, 其中包括該程式下一次要執行的指令的地址 N+1、 處理機狀態字 PSW,以及各通用暫存器和段暫存器的內容。這樣,當處理機再執行本程式時,便從 N+1 處開始,最終返回到被中斷的程式。
I/O 操作完成後,驅動程式必須檢查本次 I/O 操作中是否發生了錯誤,並向上層軟體報告,最終向調用者報告本次 I/O 的執行情況。除了上述的第 4 步外,其它各步驟對所有 I/O設備都是相同的,因而對於某種作業系統,例如 UNIX 系統,是把這些共同的部分集中起來,形成中斷總控程式。每當要進行中斷處理時,都要首先進入中斷總控程式。而對於第 4 步,則對不同設備須採用不同的設備中斷處理程式繼續執行。圖示出了中斷處理流程。
通道有效中斷

I/O通道

I/O通道是一種特殊的處理機,它具有執行 I/O 指令的能力,並通過執行通道(I/O)程式來控制 I/O 操作。 但 I/O 通道又與一般的處理機不同, 主要表現在以下兩個方面:一是其指令類型單一, 這是由於通道硬體比較簡單, 其所能執行的命令主要局限於與 I/O 操作有關的指令;二是通道沒有自己的記憶體,通道所執行的通道程式是放在主機的記憶體中的,換言之,是通道與 CPU 共享記憶體。

中斷

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

相關詞條

熱門詞條

聯絡我們