第四章 設備管理
4.1 I/O系統
★ 設備管理的基本功能
- 爲進程管理計算機系統提供接口;
- 按照相關算法分配和釋放I/O設備;
- 實現CPU和I/O設備之間、I/O設備和I/O設備之間的並行操作;
- 實現其它功能,如緩衝區的管理、實現設備的獨立性、虛擬性等。
★ 設備的分類
- 使用特性(存儲設備、輸入輸出設備)
- 傳輸速率(低速,中速,高速)
- 信息交換單位(塊設備、字符設備)
- 共享屬性(獨佔設備、共享設備、虛擬設備)
★ 塊設備 vs 字符設備
塊設備 :用於存儲信息;信息存取的基本單位是數據塊;傳輸速率高且可尋址
字符設備:用於數據的輸入輸出;基本單位是字符;傳輸速率較低且不可尋址
★ 設備控制器
概念:CPU與I/O設備之間的接口;可控制一個或多個設備;可編址設備,設備地址與設備一一對應
基本功能包括:接收和識別命令、數據交換、標識和報告設備的狀態、地址識別、數據緩衝和差錯控制。
4.2 I/O控制方式
★ 程序I/O方式
CPU代表進程給I/O模塊發送I/O命令,該進程進入忙等待,等待操作完成,纔可以繼續執行。
★ 中斷驅動I/O
CPU代表進程給I/O模塊發送I/O命令,然後,如果該進程不需要等待I/O,則繼續執行後續指令,否則當前進程阻塞,CPU調度其他進程。I/O模塊完成操作後,處理器被該模塊中斷。
★ DMA控制方式
在外圍設備和內存之間開闢直接的數據交換通路,成批地進行數據交換,減輕 CPU處理負擔。(基本單位:數據塊)
(即可以在沒有處理器參與的情況下,從內存中移出或者往內存中移入一塊數據,僅在傳送開始和結束時要用到處理器)
. | 無中斷 | 使用中斷 |
---|---|---|
通過處理器實現I/O和內存間的傳送 | 程序控制I/O | 中斷驅動I/O |
I/O和內存間直接傳送 | 直接存儲器訪問 | (DMA) |
★ DMA控制方式與中斷控制方式的區別:
. | DMA控制方式 | 中斷驅動方式 |
---|---|---|
中斷頻率 | 一塊數據全部傳送結束時才中斷CPU | 每次傳輸一個數據即產生中斷 |
數據傳輸 | 數據傳送在DMA控制器的控制下完成 | 數據傳送在中斷處理時由CPU控制完成 |
★ I/O通道控制方式
通道通過執行通道程序,並與設備控制器共同實現對I/O設備的控制的。通道程序由一系列通道指令(或稱爲通道命令)所構成的。
與DMA控制方式的區別:
DMA控制方式需要CPU來控制傳輸的方向、數據塊大小和傳輸的內存位置,而通道控
製程序中這些信息是由通道控制的。
4.3 緩衝管理
★ 緩衝的引入
(如果一個進程發出一個I/O命令並被掛起等待結果,然後在開始I/O操作前被換出,那麼該進程被阻塞,其等待I/O事件的發生,I/O操作也被阻塞,它等待該進程被換入。爲避免死鎖,在發出I/O請求前,參與I/O操作的用戶存儲空間必須被立即鎖定在內存中,即使這個I/O操作正在排隊,並且在一段時間內不會執行。同樣的考慮也適用於輸出操作。所以,爲避免這些開銷和低效操作,在輸入請求發出前就開始執行輸入傳送,並且在輸出請求發出一段時間之後纔開始執行輸出傳送。)
- 緩和CPU與I/O設備之間速度不匹配的矛盾
- 減少對CPU的中斷頻率
- 提高CPU和I/O設備之間的並行性
★ 緩衝的類型
無緩衝:
單緩衝:
輸入傳送的數據被放到系統緩衝區中。當傳送完成時,進程把該塊移到用戶空間,並立即請求另一塊(這叫做預讀或預先輸入)。這樣做的原因時期望這塊數據最終會被使用。由於輸入發生在系統內存中而不是用戶進程內存,因此操作系統可以將該進程換出。
雙緩衝/緩衝對換:
多緩衝(循環緩衝、多緩衝隊列)
★ SPOOLing技術(磁盤中的緩衝)
在磁盤中建立I/O緩衝區,緩和CPU的高速性與I/O設備低速性間的矛盾。
在聯機(即CPU控制)情況下實現的同時外圍操作稱爲SPOOLing,或稱爲假脫機操作;
通過SPOOLing技術便可將一臺獨佔物理I/O設備虛擬爲多臺邏輯I/O設備,從而允許多個用戶共享一臺物理I/O設備。
組成:輸入(輸出)進程;輸入(輸出)井;輸入(輸出)緩衝
4.4 設備管理軟件層次結構
(1)用戶進程
(2)設備硬件無關層:實現設備映射功能,把邏輯I/O設備映射到物理I/O設備
設備獨立性/設備無關性:應用程序獨立於具體使用的物理設備
(3)設備硬件相關層:實現設備驅動功能,控制物理I/O設備以便完成實際的I/O操作
(4)設備硬件
4.5 設備分配
設備分配算法:
- 先來先服務
- 優先級高者優先
安全性: - 安全分配方式
- 不安全分配方式
4.6 磁盤存儲器管理
磁盤訪問時間 = 尋道時間 + 旋轉延遲時間 + 傳輸時間
尋道時間TS = m * n + s (m-常數,n-移動磁道數,s-啓動磁臂時間)
旋轉延遲Tr = 1/(2r) (r-磁盤轉速-單位:轉數/單位時間)
傳輸時間Tt= b/(rN) (b-每次讀寫的字節數,r-磁盤轉速,N-一條磁道上的字節數)
磁盤調度算法:
4.7 RAID
由來:輔存性能的提高速度遠遠低於處理器和內存性能的提高速度,那麼可以通過使用多個並行的組件來獲得額外的性能。-------> 獨立並行運行的磁盤陣列的開發
獨立磁盤冗餘陣列(Redundant Array of Independent Disks)RAID