作業系統 第六章 2 中斷 + 裝置驅動程式
1、中斷是I/O系統最低的一層,也是裝置管理的基礎。
2、中斷和陷入 區分:
- 中斷:CPU對I/O裝置發來的中斷訊號的一種響應,中斷是由外部設備引起的,又稱外中斷。
- 陷入:由CPU內部事件所引起的中斷,通常把這類中斷稱為內中斷或陷入(trap)。
舉例內中斷:系統呼叫、缺頁中斷
中斷和陷入的主要區別:是訊號的來源。
3、中斷向量表:
為每種裝置配以相應的中斷處理程式,並把該程式的入口地址,放在中斷向量表的一個表項中,併為每一個裝置的中斷請求,規定一箇中斷號,它直接對應於中斷向量表的一個表項中。
4、對多中斷源的處理方式
①遮蔽(禁止)中斷:所有中斷都將按順序依次處理
②巢狀中斷:當同時有多個不同優先順序的中斷請求時,CPU優先響應最高優先順序的中斷請求;
5、.中斷處理程式工作:
①進行程序上下文的切換 ②對處理中斷訊號源進行測試 ③讀取裝置狀態 ④修改程序狀態
6、中斷處理:
- 測定是否有未響應的中斷訊號
- 保護被中斷程序的CPU環境
- 轉入相應的裝置處理程式
- 中斷處理
- 恢復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 通道指令
操作碼。
記憶體地址。
計數。
通道程式結束位。
記錄結束標誌。