1. 程式人生 > >作業系統之——輸入輸出系統

作業系統之——輸入輸出系統

I/O系統的基本功能

1. 隱藏物理裝置的細節
2. 與裝置的無關性
3. 提高處理機和I/O裝置的利用率
4. 對I/O裝置進行控制
5. 確保對裝置的正確共享
6. 錯誤處理

I/O系統的分層

(1) 中斷處理程式。
(2) 裝置驅動程式。

(3) 裝置獨立性軟體。 


假離線技術   

緩和CPU的高速性與I/O裝置低速性間的矛盾,而引入了離線輸入、離線輸出技術。
利用專門的外圍控制機,先將低速I/O裝置上的資料傳送到高速磁碟上,或者相反。

磁碟儲存器的效能和排程

資料的組織和格式

磁碟裝置可包括一個或多個物理碟片,每個磁碟片分一個或兩個儲存面,每個盤面上有若干個磁軌,磁軌之間留有必要的間隙。

磁碟訪問時間

磁碟裝置在工作時以恆定速率旋轉。
為了讀或寫,磁頭必須能移動到所指定的磁軌上,並等待所指定的扇區的開始位置旋轉到磁頭下,然後再開始讀或寫資料。 

早期的磁碟排程演算法 

先來先服務(FCFS)

根據程序請求訪問磁碟的先後次序進行排程。

最短尋道時間優先(SSTF)

要求訪問的磁軌與當前磁頭所在的磁軌距離最近,以使每次的尋道時間最短,但這種演算法不能保證平均尋道時間最短。
會產生飢餓現象。

基於掃描的磁碟排程演算法

掃描(SCAN)演算法

從頭至尾,從尾至頭。
單向到頭的SSTF演算法(電梯演算法),避免飢餓。

迴圈掃描(CSCAN)演算法(磁頭單向運動)

從頭至尾,跳回到頭,繼續從頭至尾

 NStepSCAN演算法

在SSTF、SCAN及CSCAN幾種排程演算法中,都可能出現磁臂停留在某處不動的情況
一個或幾個程序對某一磁軌有較高的訪問頻率,即這個(些)程序反覆請求對某一磁軌的I/O操作,從而壟斷了整個磁碟裝置。
將請求分為若干個長度為N的佇列,每個佇列中用scan演算法,一個佇列處理完之後再去處理下一個佇列。

FSCAN演算法

簡化的NStepSCAN演算法,分為兩個佇列,在進行一次掃描時新來的請求放入新佇列。