1. 程式人生 > >作業系統 第六章 2 中斷 + 裝置驅動程式

作業系統 第六章 2 中斷 + 裝置驅動程式

1、中斷是I/O系統最低的一層,也是裝置管理的基礎。

2、中斷和陷入 區分:

  •   中斷:CPU對I/O裝置發來的中斷訊號的一種響應,中斷是由外部設備引起的,又稱外中斷。
  •    陷入:由CPU內部事件所引起的中斷,通常把這類中斷稱為內中斷陷入(trap)。

  舉例內中斷:系統呼叫、缺頁中斷

   中斷和陷入的主要區別:是訊號的來源。

3、中斷向量表:

 為每種裝置配以相應的中斷處理程式,並把該程式的入口地址,放在中斷向量表的一個表項中,併為每一個裝置的中斷請求,規定一箇中斷號,它直接對應於中斷向量表的一個表項中。

4、對多中斷源的處理方式

①遮蔽(禁止)中斷:所有中斷都將按順序依次處理

②巢狀中斷:當同時有多個不同優先順序的中斷請求時,CPU優先響應最高優先順序的中斷請求;

5、.中斷處理程式工作:

①進行程序上下文的切換 ②對處理中斷訊號源進行測試 ③讀取裝置狀態 ④修改程序狀態

6、中斷處理:

  1. 測定是否有未響應的中斷訊號
  2. 保護被中斷程序的CPU環境
  3. 轉入相應的裝置處理程式
  4. 中斷處理
  5. 恢復CPU的現場

裝置驅動程式:

1、工作:

接收上層軟體發來的抽象I/O要求,如read、write等命令;

再把它轉化為具體要求,傳送給裝置控制器,啟動裝置去執行。

反方向,它也將由裝置控制器發來的訊號,傳送給上層軟體。

2、驅動程式功能:

(1)接收由與裝置無關的軟體發來的命令和引數,並將命令中的抽象要求,轉換為與裝置相關的低層操作序列;

(2)檢查使用者I/O請求的合法性,瞭解I/O裝置的工作狀態,傳遞與I/O裝置操作有關的引數,設定裝置的工作方式;

(3)發出I/O命令,如果裝置空閒,便立即啟動I/O裝置,完成指定的I/O操作;如果裝置忙碌,則將請求者掛在裝置佇列上等待;

(4)及時響應由裝置控制器發來的中斷請求,並根據其中斷型別,呼叫相應的中斷處理程式進行處理。

3、裝置驅動程式的特點:

(1)驅動程式是 與裝置無關的軟體和裝置控制器之間通訊和轉換的程式。

(2)驅動程式,與裝置控制器和I/O裝置的硬體特性,緊密相關。    

 (3)驅動程式與I/O裝置所採用的I/O控制方式緊密相關。

(4)由於驅動程式與硬體緊密相關,因而其中的一部分必須用匯編語言編寫。

(5)驅動程式應允許可重入,一個正在執行的驅動程式常會在一次呼叫完成前被再次呼叫。

4、 I/O控制方式:

1)程式I/O方式 (程式查詢方式或輪詢方式) 字(節)為單位進行I/O:

cpu對I/O裝置的控制採取程式I/O方式,或稱忙—等待方式。

2)中斷驅動I/O方式字(節)為單位進行I/O

CPU向相應的裝置控制器發出一條I/O命令

然後立即返回繼續執行任務。

裝置控制器按照命令的要求去控制指定I/O裝置。

這時CPU與I/O裝置並行操作。

I/O裝置輸入資料中,無需CPU干預,因而可使CPU與I/O裝置並行工作。從而提高了整個系統的資源利用率及吞吐量。

3)直接儲存器訪問DMA (資料傳輸的基本單位是 資料塊):

   所傳送的資料是從裝置直接送入記憶體的,或者直接從記憶體進裝置;不需要CPU操作

    4.3.1  DMA控制器的組成

              主機與DMA控制器的介面;

               DMA控制器與塊裝置的介面;

               I/O控制邏輯

   4.3.2  DMA控制器中的暫存器   (為實現主機與控制器之間塊資料的直接交換)

             資料暫存器DR

             記憶體地址暫存器MAR

             資料計數器DC

             命令/狀態暫存器CR

   4.3.3  

               

4)I/O通道控制方式(組織傳送的獨立)

   4.4.1

一次讀多個數據塊到記憶體不同區域,須由CPU分別傳送多條I/O指令、進行多次DMA中斷處理

通道 通過執行通道程式,與裝置控制器共同實現對I/O裝置的控制。

通道程式由一系列通道指令構成

CPU指令-》裝置驅動程式解讀-》通道程式-》通道

4.4.2  通道指令

        操作碼。

        記憶體地址。

        計數。

        通道程式結束位。

        記錄結束標誌。