1. 程式人生 > >作業系統—裝置管理

作業系統—裝置管理

I/O裝置

I/O裝置可以分為儲存裝置或輸入輸出裝置;塊裝置或字元裝置;低速中速高速裝置。
I/O裝置不是直接和cpu進行通訊,而是通過裝置控制器和cpu進行間接通訊,cpu通過裝置控制器去控制一個或多個裝置。
裝置控制器功能:①接收和識別cpu的命令;②資料交換;③標識和報告裝置的狀態;④地址識別;⑤資料快取;⑥差錯控制;
這裡寫圖片描述
如上所示是裝置控制器的結構圖,主要分為與cpu的介面,與I/O裝置的介面和I/O邏輯控制,I/O邏輯控制會對收到的地址進行譯碼。
I/O通道
I/O通道的引入是為了解決當外設多時,cpu任務負擔重的問題,I/O通道裝置是建立在cpu和設計控制器之間。I/O通道裝置使得cpu從io任務中解放出來。當cpu 發出io指令後,io通道執行通道程式完成io任務,完成後向cpu發出中斷訊號。

I/O控制方式

I/O控制方法由四種:程式I/O方式(查詢方式),中斷方式,DMA方式,I/O通道控制方式。
①程式I/O方式:這種方式也可以稱為查詢方式,cpu不斷地去查詢裝置控制器是否將資料放到了資料儲存器中,或者從資料儲存器存到裝置中,當完成IO時cpu才能去幹別的事。
②中斷方式:這種方式當cpu發出指令後就可以去幹別的事,當裝置控制器把資料存在資料儲存器後,向cpu發出中斷請求,然後cpu再來處理這部分資料。
③DMA方式:雖然中斷方式提高了cpu的利用率,但是資料暫存器有限,中斷是以位元組單位進行中斷,也就是說讀取或儲存一個位元組後就需要進行中斷,那麼其實cpu的利用率還是很低的,所以就誕生了DMA方式,這種方式由DMA控制器直接將裝置中的資料以資料塊為單位直接傳輸到記憶體中,當傳輸結束後才向cpu發起中斷。
④IO通道控制方式

:DMA雖然大大地提升了cpu的利用率,但是DMA只能傳輸一個連續的資料塊。所以引入了IO通道的控制方式,IO通道控制方式可以傳輸不連續的資料塊,減少了cpu干預。cpu通過對IO通道發出指令,然後讓IO通道自己工作,等資料傳輸完才向cpu發起中斷。

緩衝

緩衝可以緩和cpu和IO裝置速度不匹配的問題,減少對cpu的中斷頻率。
緩衝又分為單緩衝,雙緩衝,迴圈緩衝。緩衝使得裝置控制器在搬運資料的同時使得cpu也能同時進行計算工作,大大地提升了cpu的利用率。
不過現在用的比較多的是緩衝池,緩衝池中包含多個緩衝區。緩衝區又分為空緩衝區,裝載輸出資料的緩衝區和裝載輸入資料的緩衝區。

IO軟體

io軟體需要達到以下幾個目標:與具體裝置無關、統一命名、對錯誤的處理、緩衝技術、裝置的分配與釋放、遮蔽io控制方式的差異。
io軟體又分為以下幾個層次:使用者層軟體、裝置獨立性軟體、裝置驅動程式、中斷處理程式。
使用者層軟體負責向上層使用者提供介面。
裝置獨立性軟體負責邏輯裝置和物理裝置的對映、緩衝、裝置保護、裝置分配及釋放。
裝置驅動程式負責驅動io裝置工作。
spooling技術
spooling技術是緩和高速cpu和低速io裝置速度不匹配的問題。通過外圍控制機,以高速磁碟為介質來做離線操作。也就是說把高速磁碟作為了一箇中間介質來提升低速io裝置的速度問題。同時spooling系統將獨佔裝置變成了虛擬的邏輯共享裝置。

磁碟儲存器管理

①物理構成:
磁碟包括多個物理碟片,每個碟片有一個或兩個儲存面。每個磁碟被組織成多個同心環,稱為磁軌,每個磁軌可儲存相同位數的二進位制位。每個磁軌又被分為若干個扇區,每個扇區包含資料欄位和控制欄位。
②磁碟排程:
在磁碟中讀取資料時,磁碟的尋道時間遠遠超過了資料傳輸時間。
那麼磁碟排程就是要減少磁碟的平均尋道時間。
先來先服務:該排程演算法未對磁碟尋道進行優化,只適合磁碟io請求少的情況。
最短尋道時間優先:該尋道方式是先訪問近的磁軌。
掃描演算法:雖然最短尋道時間保證了每次尋道時間最短,但是可能會造成某些程序需要的資料一直距離磁頭的位置比較遠,造成長時間獲取不到資料。這種演算法又可以稱為電梯演算法,沿一個方向尋找最近的資料,直到該方向的磁軌上沒有請求。
迴圈掃描演算法:迴圈掃描演算法規定了磁碟的單向移動,例如只能從最裡掃到最外,這樣防止了剛被掃描過的磁碟又要被訪問,而等待很長時間。
NStepSCAN演算法和FSCAN演算法:在前幾種演算法中會出現磁臂粘著的情況,如果在處理該磁軌的時候,又有該磁軌的請求,那麼就會一直處理下去,使得無法處理別的請求。
NStepSCAN演算法是將SCAN演算法分成了N個佇列,對一個佇列採用SCAN演算法,按FCFS演算法處理這些佇列。
FSCAN演算法是對N步SCAN演算法的化簡,只分成了兩個佇列。
③磁碟快取
磁碟快取其實是記憶體中的一個空間。
④提高磁碟io的方法
提前讀、延遲寫、優化物理塊的分佈、虛擬盤