立即學習:https://edu.csdn.net/course/play/7883/161192?utm_source=blogtoedu
3.4 設備管理
計算機系統的一個重要組成部分是I/O系統.
I/O系統包括:
- 輸入\輸出設備(鼠標,鍵盤,音箱)
- 存儲功能的設備(磁盤)
- 設備控制器(顯卡,聲卡)
一.設備管理的概念
設備管理程序提供下述功能
- 提供和進程管理系統的接口
- 進行設備分配
- 實現設備和設備之間\設備和CPU之間的並行操作
- 進行緩衝區管理
二.I/O控制方式
(1) 程序I/O方式
(2) 中斷控制I/O方式
(3) 直接存儲器訪問(DMA)方式
(4) I/O通道控制方式
- 字節多路通道
- 選擇通道
- 成組多路通道
三.緩衝管理
(1) 單緩衝
(2) 多緩衝
(3) 循環緩衝
(4) 緩衝池(Buffer Pool)
引入緩衝區的主要原因歸結爲以下幾點;
- 緩和CPU和I/O設備間速度不匹配的矛盾.
- 減少對CPU的中斷頻率,放寬對CPU中斷響應時間的限制
- 提高CPU和I/O設備之間的並行性.
(1) 單緩衝(Single Buffer)
在單緩衝情況下,每當用戶進程發出一I/O請求時,OS便在主存中爲之分配一緩衝區.
在字符設備輸入時,緩衝區用於暫存用戶輸入的一行數據,在輸入期間,用戶進程被掛起以等待數據輸入完畢;在輸出時,用戶進程將一行數據輸入到緩衝區後,繼續執行處理.當用戶進程已有第二行數據輸出時,如果第一行數據尚未被提取完畢,則此時用戶進程應阻塞.
(2) 雙緩衝(Double Buffer)
爲了加快輸入和輸出速度,提高設備利用率,人們又引入了雙緩衝區機制,也稱爲緩衝對換(Buffer Swapping).在設備輸入時,先將數據送入第一緩衝區,裝滿後便轉向第二緩衝區.此時OS可以從第一緩衝區移出數據,並送入用戶進程.
(3) 循環緩衝區
循環緩衝有多個大小相同的緩衝區,緩衝區有三種類型:
- 用於裝輸入數據的空緩衝區R
- 已裝滿數據的緩衝區G
- 計算進程正在使用的現行工作緩衝區C
(4) 緩衝池
對於既可輸入又可輸出的公用緩衝池,至少應含三種類型緩衝區:
- 空緩衝區;
- 裝滿輸入數據的緩衝區;
- 裝滿輸出數據的緩衝區;
四.設備的分配
1.設備分配原則
- 靜態分配(一次性全分配,不會發生死鎖)
- 動態分配(按需分配,分配不當可能造成死鎖)
2.設備分配策略
- 先請求先分配
- 優先級高者先分配