1. I/O設備的分類
塊設備和字符設備
塊設備把信息存儲在固定大小的塊中,每個塊有自己的地址。
字符設備以字符爲單位發送或接受一個字符流。字符設備所以不可尋址的,也沒有任何尋址操作。打印機、網絡接口、鼠標等式字符設備。
時鐘例外:不是塊可尋址、也不產生或接收字符流。它按預先規定好的時間間隔產生中斷。
2. 設備控制器
I/O設備由機械部件和電子部件兩部分組成。
電子部件稱設備控制器或適配器。
任務:把串行的位流轉換成字節塊,並進行必要的錯誤校正工作,再複製到主存中。
3. 內存映射I/O
CPU與設備的控制寄存器和數據緩衝區(如視頻RAM)的通訊的方式:
(a) 單獨的I/O和內存空間(每個控制寄存器被分配一個I/O port 號,所有的I/O端口形成I/O端口空間,普通用戶程序不能對其進行訪問)(如大型主機)
(b) 內存映射I/O(所有控制寄存器映射到內存地址中,每個控制器被分配唯一的一個內存地址)(如PDP-11)
(c) 混合方案(Memory-mapped I/O &Separate I/O port)(具有內存映射I/O的數據緩衝區,而控制寄存器則具有單獨的I/O端口)(如Pentium處理器)
4. 中斷
精確中斷和不精確中斷
5. I/O軟件的目標
1) 設備獨立性
2) 統一命名
3) 錯誤處理
4) 同步(即阻塞)和異步(即中斷驅動)傳輸
5) 緩衝
6) 共享設備和獨佔設備
6. I/O的三種不同的實現方式
1) 程序控制I/O
輪詢/忙等待:CPU不斷查詢設備以瞭解它是否就緒準備接收另一字符,直到全部I/O完成前要佔用CPU的全部時間。
2) 中斷驅動I/O
啓動一個I/O操作的驅動程序阻塞起來,直到I/O操作完成且產生一箇中斷。
3) 使用DMA的I/O
DMA做全部工作,將中斷的次數從打印每個字符一次減少到打印每個緩衝區一次。
7. I/O軟件層次
用戶級I/O軟件-與設備無關的操作系統軟件-設備驅動程序-中斷處理程序-硬件
中斷處理程序:將啓動一個I/O操作的驅動程序阻塞起來,直到I/O操作完成且產生一箇中斷。
設備驅動程序:控制設備的特定代碼,一般由設備製造商編寫提供。每個設備驅動程序通常處理一種類型的設備。一般功能包括:接受請求、對設備進行初始化、管理電源需求和日誌事件。
8. 磁盤調度算法
磁盤調度的影響因素:尋道時間(主導)/旋轉延遲/實際數據傳輸時間
算法:
1) FCFS先來先服務
2) SSF最短尋道優先
3) 電梯算法