11.1 列出並簡單定義執行I/O的三種技術。
可編程I/O:處理器代表進程給I/O模塊發送給一個I/O命令,該進程進入忙等待,等待操作的完成,然後纔可以繼續執行。
中斷驅動I/O:處理器代表進程向I/O模塊發送一個I/O命令,然後繼續執行後續指令,當I/O模塊完成工作後,處理器被該模塊中斷。如果該進程不需要等待I/O完成,則後續指令可以仍是該進程中的指令,否則,該進程在這個中斷上被掛起,處理器執行其他工作。
直接存儲器訪問(DMA):一個DMA模塊控制主存和I/O模塊之間的數據交換。爲傳送一塊數據,處理器給DMA模塊發送請求,只有當整個數據塊傳送完成後,處理器才被中斷。
11.2 邏輯I/O和設備I/O有什麼區別?
邏輯I/O:邏輯I/O模塊把設備當作一個邏輯資源來處理,它並不關心實際控制設備的細節。邏輯I/O模塊代表用戶進程管理的一般I/O功能,允許它們根據設備標識符以及諸如打開、關閉、讀、寫之類的簡單命令與設備打交道。
設備I/O:請求的操作和數據(緩衝的數據、記錄等)被轉換成適當的I/O指令序列、通道命令和控制器命令。可以使用緩衝技術,以提高使用率。
11.3 面向塊的設備和麪向流的設備有什麼區別?請舉例說明。
面向塊的設備將信息保存在塊中,塊的大小通常是固定的,傳輸過程中一次傳送一塊。通常可以通過塊號訪問數據。磁盤和磁帶都是面向塊的設備。
面向流的設備以字節流的方式輸入輸出數據,其末使用塊結構。終端、打印機通信端口、鼠標和其他指示設備以及大多數非輔存的其他設備,都屬於面向流的設備。
11.4 爲什麼希望用雙緩衝區而不是單緩衝區來提高I/O的性能?
雙緩衝允許兩個操作並行處理,而不是依次處理。典型的,在一個進程往一個緩衝區中傳送數據(從這個緩衝區中取數據)的同時,操作系統正在清空(或者填充)另一個緩衝區。
11.5 在磁盤讀或寫時有哪些延遲因素?
尋道時間,旋轉延遲,傳送時間
11.6 簡單定義圖11.7中描述的磁盤調度策略。
FIFO:按照先來先服務的順序處理隊列中的項目。
SSTF:選擇使磁頭臂從當前位置開始移動最少的磁盤I/O請求。
SCAN:磁頭臂僅僅沿一個方向移動,並在途中滿足所有未完成的請求,直到它到達這個方向上最後一個磁道,或者在這個方向上沒有其他請求爲止。接着反轉服務方向,沿相反方向掃描,同樣按順序完成所有請求。
C-SCAN:類似於SCAN,
11.7 簡單定義圖7層RAID。
0:非冗餘
1:被鏡像;每個磁盤都有一個包含相同數據的鏡像磁盤。
2:通過漢明碼實現冗餘;對每個數據磁盤中的相應都計算一個錯誤校正碼,並且這個碼位保存在多個奇偶校驗磁盤中相應的文件。
3:交錯位奇偶校驗;類似於第二層,不同之處在於RAID3爲所有數據磁盤中同一位置的位的集合計算一個簡單的奇偶校驗位,而不是錯誤校正碼。
4:交錯塊分佈奇偶校驗;對每個數據磁盤中相應的條帶計算一個逐位奇偶。
5:交錯塊分佈奇偶校驗;類似於第四層,但把奇偶校驗條帶分佈在所有磁盤中。
6:交錯塊雙重分佈奇偶校驗;兩種不同的奇偶校驗計算保存在不同磁盤的不同塊中。
11.8 典型的磁盤扇區大小是多少?
512比特