設備管理 | 設備分配
來自專欄 操作系統筆記
設備分配概述
(1)設備控制塊
系統為每一台設備都配置了一個用來記錄設備的硬體特性、連接和使用情況的一組數據,稱為設備控制塊。
① 設備名
設備的系統名,即設備的物理名。
② 設備屬性
描述設備硬體特性、連接情況等。
③ 設備開關表
轉換表包含設備特定的I/O常式入口地址,不具備相應功能的設備在其常式地址上可以填「-1」。
(2)設備分配演算法
- 先來先服務
- 優先順序高者優先
(3)設備分配中的安全性
- 安全分配方式 (系統不會出現死鎖,如靜態分配)
- 不安全分配方式 (可能出現死鎖,如動態分配)
(4)設備分配方式
- 獨佔分配:靜態分配,在作業調度一級 :獨佔設備。雖然安全,但是會降低設備的利用率。
- 共享分配: 動態分配:高速、大容量的直接存取存儲設備。如磁碟。
- 虛擬分配:利用共享設備實現獨佔設備的功能:SPOOLing
系統首先由輸入將A、B兩個進程所需要的數據提前放到磁碟上,當A、B兩個進程真的需要輸入數據時,直接從磁碟上進行輸入而不是通過輸入機進行輸入。由於磁碟是共享設備,所以運行A、B兩個進程同時訪問。
對於C、D進程輸出時也是同樣,輸出時系統在磁碟上為其進程分配列印空間,把要列印的數據送到磁碟上進行存放,以後在系統的控制下通過印表機進行輸出。
設備虛擬技術:SPOOLing技術
SPOOLing系統提供外圍設備同時聯機操作的功能。
(1)設計思想
① 預輸入
由OS預先將程序所需數據輸入到輔存輸入井存放;當應用程序 (或進程) 需要數據時,可直接從輔存中讀入主存。避免了從低速的輸入設備上進行輸入。
② 緩輸出
在應用程序執行時,將輸出數據寫入輔存輸出井中。以後適當時候,由操作系統將數據輸出。
(2)SPOOLING系統
利用通道和中斷技術,在主機控制之下,由通道完成輸入輸出工作。系統提供一個軟體系統 (包括預輸入程序、緩輸出程序、井管理程序、預輸入表、緩輸出表)來完成輸入收存和輸出發送的功能,使外部設備可以並行操作。
這一軟硬體系統稱為SPOOLING系統。
(3)實現SPOOLING系統的基礎
① 大容量的輔存空間
在輔存上需開闢兩個較大的輸入井和輸出井,用以存放大量應用程序的輸入信息和輸出信息。
② 通道裝置、中斷系統 的硬體支持。
通道裝置負責控制輸入設備和輸出設備完成具體的IO操作。
中斷系統負責完成IO操作過程中的中斷處理。
③ 數據結構
預輸入表、緩輸出表:描述輔存輸入井和輸出井的狀態變化
如: 輸入信息從哪台設備輸入,存放在輔存輸入井什麼位置;輸出信息存放在輔存輸出井什麼位置,從哪台輸出設備輸出。
④ 所需的軟體程序
- 預輸入程序(輸入進程): 控制信息從獨佔設備輸入到輔存(輸入井)
- 緩輸出程序(輸出進程): 控制信息從輔存(輸出井)輸出到獨佔設備
- 井管理程序:控制用戶程序和輔存之間的信息交換(輸入井讀和輸出井寫)
(4)SPOOLING系統的工作原理
當系統在恰當的時候控制輸入設備將數據送到輸入井中存放起來。在作業運行過程中,如果要輸入代碼或者數據,由井管理程序從輸入井裡面輸入數據給運行的作業。如果有進程需要輸出,由井管理程序將輸出暫時存放在輸出井裡面,當輸出設備空閑的時候,由輸出進程式控制制輸出設備輸出輸出井中的數據。即把數據從輸出井中提取出來送到內存的輸出緩衝區中,最終通過輸出設備進行輸出。
(5)SPOOLing系統的特點
- 提高了I/O速度。 (使作業在運行時進行輸入輸出的設備從低速的輸入機輸出設備變成了高速的磁碟設備)
- 提高了設備利用率和系統的吞吐量。(實現了設備的虛擬分配,允許多個進程動態的申請獨佔設備,提高了利用率和吞吐量)
- 實現了對獨佔設備的改造,提高了進程的並發度和執行效率。(將獨佔設備改造成多個邏輯上的對應物,使得多個進程可以並行的申請這些設備)
(6)共享印表機的實現
① 當用戶進程請求列印時, SPOOLing系統為它做兩件事:
- 在輸出井中為之申請一個空閑磁碟分區, 並將要列印的數據送入其中;
- 再為用戶進程申請一張空白的用戶請求列印表,並將用戶的列印要求填入其中,再將該表掛到列印請求隊列上。
② 印表機空閑時:輸出進程取出一張列印請求表,再從輸出井中取出列印數據到輸出緩衝區,通過印表機進行列印
推薦閱讀:
※Linux 系統安全啟動
※你需要熟練運用的12個命令行工具
※操作系統精髓與設計原理讀書筆記9
※設備管理 | I/O軟體
※命令行中四個常見命令的使用
TAG:操作系統 |