I/O系統
I/O設備的類型
####### 按傳輸速率分類
-
低速設備
(1) 每秒一個字節至數百字節
(2) 如鍵盤、鼠標、語言輸入輸出設備等 -
中速設備
(1) 每秒數千至數萬字節
(2) 如行式打印機、激光打印機等 -
高速設備
(1) 每秒數百k至數十M字節
(2) 如磁盤機,磁帶機等
####### 按信息交換的單位分類
-
塊設備
(1) 信息存取總是以數據塊爲單位
(2) 基本特徵是傳輸速率較高,通常每秒爲幾兆位
(3) 可尋址,即對它可隨機讀/寫任一塊 -
字符設備
(1) 基本單位是字符
(2) 基本特徵是其傳輸速度低,通常爲幾千字節到數千字節
(3) 不可尋址
(4) 如交互式終端,打印機
按設備的共享屬性分類
-
獨佔設備(臨界資源)
(1) 如打印機 -
共享設備
(1) 可供多個進程同時訪問,如磁盤
(2) 共享設備必須是可尋址的和可隨機訪問設備 -
虛擬設備
(1) 通過虛擬技術將一臺獨佔設備變換爲若干個邏輯設備,供若干進程同時使用
設備控制器
設備控制器的組成
-
設備控制器與處理機的接口
(1) 該接口用於實現設備控制器與CPU之間的通信。在該接口中有三類信號線: 數據線、地址線、控制線 -
設備控制器與設備的接口
(1) 在一個設備控制器上,可以連接一臺或多臺設備。所以,在控制器匯中就有一個或多個設備接口,一個接口連接一個設備,每個接口中都有數據、控制和狀態三種類型信號 -
I/O邏輯
(1) 控制器對設備的控制通過I/O邏輯實現的
I/O通道
I/O通道說明
- 一種特殊處理機,專門負責輸入/輸出工作
- 有自己簡單的指令系統(只有數據傳送指令和設備控制指令)
- 通道與一般處理機的區別:
(1) 指令類型單一,侷限於I/O操作有關指令
(2) 沒有獨立的內存,通道與CPU共享內存
I/O通道類型
-
字節多路通道
(1) 一個主通道連接多個子通道,以時間片的方式共享主通道
(2) 每個子通道每次只傳送一個字節,連接中低速設備 -
數組選擇通道
(1) 以數組方式工作,高速傳送數據
(2) 可以連接多臺高速設備
(3) 每次只有一臺設備進行數據傳送,形成獨佔 -
數組多路通道
(1) 將數組選擇通道傳輸效率高和字節多路分時並行操作優點相結合
(2) 以數組方式工作,高速傳送數據
(3) 採用分時傳送多個非分配型子通道
I/O控制方式
中斷驅動
-
說明:當進程要啓動某個I/O設備工作時,便由CPU向相應的設備控制器發出一條I/O命令,然後立即返回繼續執行原來的任務
-
特點:
(1)設備控制器按命令要求去控制指定的I/O設備,完成後,通過中斷向CPU發送一箇中斷信號
(2) 每次傳送一個字符
MDA控制器
- 特點:
(1)數據傳輸的基本單位是數據塊(連續);
(2)大大減少中斷次數
(3)所傳送的數據是從設備直接送入內存的,或者相反
(4)僅在傳送一個或多個數據塊的開始和結束才需要CPU干涉
緩衝池的工作方式
-
收容輸入
-
提取輸入
-
收容輸出
-
提取輸出
設備分配
分配時的四張表
設備控制表DCT
-
說明: 系統爲每個設備配置一張設備控制表,用於記錄設備的特性及I/O控制器的情況; 每個設備一張,記錄本設備的情況
-
狀態
(1) 設備類型: type
(2) 設備標識符: deviceid
(3) 設備狀態: 等待/不等待 忙/閒
(4) 指向控制器表的指針
(5) 重複執行的次數或時間
(6) 設備隊列的隊首指針
控制器控制表COCT
-
說明: 每個控制器配置一張表,它反映控制器的使用狀態以及通道的連接狀態,如果控制器忙則到控制器隊列排隊; 每個控制器一張,記錄一個控制器的情況
-
狀態:
(1) 控制器標識符: controllerid
(2) 控制器狀態: 忙/閒
(3) 與控制器連接的通道表指針
(4) 控制器隊列的隊首指針
(5) 控制器隊列的隊尾指針
通道控制表CHCT
-
說明: 爲每個通道配置一張表,它反映通道的使用狀態,如果控制器忙則到通道隊列排隊; 一個通道一張表
-
狀態:
(1) 通道標識符: channelid
(2) 通道狀態: 忙/閒
(3) 與通道連接的控制器表首地址
(4) 通道隊列的隊首指針
(5) 通道隊列的隊尾指針
系統設備表SDT
- 說明: 它記錄已連接到系統中的所有物理設備情況,每個物理設備佔一個表目;整個系統配置一張
設備分配程序
分配設備
分配控制器
分配通道
SPOOLing技術
-
說明: 在多道程序環境下,其中的一進程模擬脫機輸入時的外圍控制機功能,把低速的I/O設備上的數據傳送到高速磁盤上;再用另一進程來模擬脫機輸出時的外圍控制機把數據從磁盤傳送到低速輸出設備上
-
組成:
輸入和輸出井
(1)在磁盤上的兩個存儲空間
(2) 輸入井模擬脫機輸入,暫存輸入數據
(3) 輸出井模擬脫機輸出,暫存輸出數據輸入緩衝區和輸出緩衝區(內存中)
(1) 用來緩和CPU與磁盤之間的速度的矛盾輸入進程SPi和輸出進程SPo
(1) 模擬脫機I/O時外圍控制
-
應用(共享打印機)
(1) 打印機爲獨佔設備,利用SPOOLing技術,可將之改造爲共享設備
(2) 用戶請求打印時,SPOOLing系統會做如下操作
1. 由輸出進程在輸入井中爲之申請一個空閒磁盤塊區,並將要打印的數據送入其中
2. 輸出進程再爲用戶進程申請一張空白的用戶請求打印表,並將用戶的打印要求填入表中,再將該表掛到請求隊列上 -
優點:
(1) 提高了I/O的速度
(2) 將獨佔設備改造爲共享設備
(3) 實現了虛擬設備的功能: 由於SPOOLing技術實現了多個用戶進程共同使用打印機這個獨佔設備情況,從而實現了吧一個設備當成多個設備來使用的情況,即虛擬設備的功能 -
缺點:
(1) 佔用大量的內存作爲外設傳送信息的輸入緩存區和輸出緩存區
(2) 佔用大量磁盤空間作爲輸入井和輸出井
(3) 增加系統的複雜性
磁盤存儲器管理
磁盤的類型
-
固定頭磁盤
(1) 這種磁盤在每條磁道上都有一讀/寫磁盤頭,所有的磁頭都被裝在一剛性磁臂中;有效提高I/O速度,成本高 -
移動頭磁盤
(1) 每一個盤面僅配有一個磁頭,也被裝入磁臂中; 速度較低,成本低
磁盤調度
-
先來先服務算法FCFS
(1) 根據進程訪問磁盤的先後次序進行調度
(2) 簡單、公平、每個進程得到滿足
(3) 適合請求磁盤進程數目少 -
最短尋道時間優先SSTF
(1) 與當前磁頭所在磁道距離最近
(2) 每次尋道時間最短
(3) 不能保證平均尋道時間最短
(4) 有"飢餓"現象 -
掃描算法(SCAN)
(1) SCAN算法不僅考慮欲訪問的磁道與當前磁道的距離,更先考慮的是磁頭的方向
(2) 可以防止進程出現"飢餓"形象
(3) 又稱"電梯調度算法" -
循環掃描算法(CSCAN)算法
(1) 規定磁頭單向移動
(2) 減少剛移動的磁道的等到時間 -
N-Step-SCAN算法
(1) 將磁盤請求隊列分成若干個長度爲N的子隊列,磁盤調度將按FCFS算法依次處理這些子隊列。將每個隊列看作一個整體,用先來先服務算法,在隊列內部使用循環掃描算法
磁盤高速緩存(Disk Cache)
磁盤高速緩存的形式
- 利用內存中的儲存空間,來暫存磁盤中讀出的一系列磁塊中的信息
- 高速緩存是一組在邏輯上屬於磁盤,而物理上是駐留在內存的盤塊
####### 數據交付方式
-
說明: 數據交付是指將磁盤高速緩存中的數據傳送給請求者進程; 當有進程請求訪問某個盤塊時,選查看磁盤高速緩存
-
採取的方式
(1) 數據交付: 直接將高速緩存中的數據傳送到請求者進程的內存工作區
(2) 指針交付: 直接將高速緩存中的某個區域的指針交給請求的進程