作業系統原理之I/O裝置管理(第六章上半部分下)
五、I/O軟體原理
輸入輸出軟體的總體目標是將軟體組織成一種層次結構
- 低層軟體用來遮蔽硬體的具體細節
- 高層軟體則主要是為使用者提供一個簡潔、規範的介面
裝置管理的4個層次:
- 使用者層軟體 -》向系統發出I/O請求,顯示I/O操作的結果,提供⽤戶與裝置的接⼝
- 與裝置無關的軟體層-》完成裝置命名、裝置分配、裝置獨⽴性和緩衝管理等功能
- 裝置驅動程式-》與硬體關係最密切,包括裝置服務程式和中斷處理程式
- 中斷處理程式(底層)-》
裝置管理軟體的功能:
(1)實現I/O裝置的獨⽴性
(2)錯誤處理
(3)非同步傳輸
(4)緩衝管理
(5)裝置的分配和釋放
(6)實現I/O控制⽅式
中斷處理程式
中斷處理程式的作⽤:I/O中斷處理程式的作⽤是將發出I/O請求⽽被阻塞的程序喚醒
裝置驅動程式:
與硬體⽆關的I/O軟體:
與裝置⽆關的I/O軟體的功能如下:
(1)裝置命名
(2)裝置保護
(3)提供獨⽴於裝置的塊⼤⼩
(4)為塊裝置和字元裝置提供必要的緩衝技術
(5)塊裝置的儲存分配
(6)分配和釋放獨⽴裝置
(7)錯誤處理
六、 磁碟管理
- 磁碟儲存器容量⼤,存取速度快,⽽且可以實現隨機存取,是存放⼤量程式和資料的理想裝置;
- 磁碟管理的重要⽬標是提⾼磁碟空間利⽤率和磁碟訪問速度
磁碟結構:
⼀個物理記錄儲存在⼀個扇區上,磁碟儲存的物理記錄數⽬是由扇區數、磁軌數及 磁碟⾯數決定的。
磁碟型別:
- 固定頭磁碟 在每條磁軌上都有讀/寫磁頭
- 活動頭磁碟 (移動頭):每⼀個盤⾯僅配有⼀個磁頭
磁碟訪問時間:
磁碟排程
磁碟排程的一個重要目標是使磁碟的平均尋道時間最少
磁碟排程演算法
- 先來先服務 (First Come First Served, FCFS)
- 最簡單的磁碟排程演算法 根據程序請求訪問磁碟的先後順序進⾏排程
- 優點:公平、簡單,且每個程序的請求都能依次得到處理,不會出現某⼀ 程序的請求⻓期得不到滿⾜的情況
- 缺點:平均尋道時間較⻓
- 最短尋道時間優先 (Shortest Seek Time First, SSTF)
- 該演算法選擇的程序:其要求訪問的磁軌與當前磁頭所在的磁軌距離最近, 以使每次的尋道時間最短。
- 優點:每次的尋道時間最短,較之FCFS有更好的尋道效能
- 缺點:可能導致某個程序發⽣“飢餓”現象
- 掃描演算法 (SCAN)
不僅考慮到要訪問的磁軌與當前磁軌的距離,更優先考慮磁頭當前的移動⽅向。
優點:有較好的尋道效能,防⽌“飢餓”現象
缺點:有時候程序請求被⼤⼤推遲
- 迴圈掃描演算法 (CSCAN)
在掃描演算法的基礎上,規定磁頭是單向移動的。將最⼩磁軌號緊接著最⼤磁軌號構成迴圈,進⾏迴圈掃描。
- NStepSCAN和FSCAN排程演算法
這兩種演算法可以避免磁臂粘著
計算題
假設磁碟有1000個磁軌,若磁碟請求是一些隨機請求,它們按照到達的次序分別處於 811、 348、153、968、407、580、233、679、801、121磁軌。當前磁頭在656號 磁軌上,並且讀寫磁頭正在向磁軌號增加的方向移動。
要求: 1.給出用FCFS演算法進行磁碟排程時滿足請求的次序,並計算出它們的平均尋道長度。
2.給出用SSTF演算法進行磁碟排程時滿足請求的次序,並計算出它們的平均尋道長度。
假設磁碟有1000個磁軌,若磁碟請求是一些隨機請求,它們按照到達的次序分別處於150、 160、 184、90、58、55、39、38、18磁軌。當前磁頭100號磁軌上,並且讀寫磁頭正在向磁軌號增 加的方向移動。
要求: 1.給出用SCAN演算法進行磁碟排程時滿足請求的次序,並計算出它們的平均尋道長度。
2.給出用CSCAN演算法進行磁碟排程時滿足請求的次序,並計算出它們的平均尋道長度。
提⾼磁碟I/O速度的⽅法
為了提高磁碟I/O速度,用來暫存從磁碟中讀出的一系列盤塊中的資訊的方 法是磁碟快取記憶體
&n