操作系統——4.設備管理

第四章 設備管理

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章