緩沖技術
- 單緩沖區:初始:工作區滿,緩沖區空
每塊用時max(處理時間, 輸入時間) + 傳送時間
- 雙緩沖區:先裝1,1滿才裝2。初始:工作區空,1空,2滿
每塊用時max(處理時間, 傳送時間) + 輸入時間
- 若 處理時間 + 傳送時間 < 輸入時間,可使塊設備連續輸入
- 若 處理時間 + 傳送時間 > 輸入時間,可使CPU不必等設備輸入
- 緩沖池:多個系統公用的緩沖區。
- 真題:
- 鍵盤中斷(按一次觸發一次中斷)服務例程執行結束時,所輸入的數據存放位置是:
- CPU通用寄存器:是程序處理內部暫存
- 鍵盤控制器數據緩沖區:它的功能是,按多個鍵記錄手同時按了誰,比如ctrl+shift,然后整體發出
- 內核緩沖區:先做下一步處理再給用戶看 √
- 用戶緩沖區
- 三隊列
- 空緩沖隊列
- 輸入隊列:裝滿輸入數據的緩沖隊列
- 輸出隊列:裝滿輸出數據的緩沖隊列
- 四工作緩沖區
- 收容輸入工作緩沖區
- 提取輸入工作緩沖區
- 收容輸出工作緩沖區
- 提取輸出工作緩沖區
- 三隊列+四區工作流程:
- 當輸入進程要輸入數據,從空緩沖隊列首部取一,作為收容輸入放入數據,裝滿后掛到輸入隊列隊尾。
- 當計算進程要使用數據,從輸入隊列首部取一,作為提取輸入拿走數據,用完后掛到空緩沖隊列隊尾。
- 當計算進程要輸出數據,從空緩沖隊列首部取一,作為收容輸出放入數據,裝滿后掛到輸出隊列隊尾。
- 當輸出進程要輸出數據,從輸出隊列首部取一,作為提取輸出拿走數據,用完后掛到空緩沖隊列隊尾。
SPOOLing技術
關鍵點 | 內容 |
---|---|
核心思想 | 通過輸入/輸出井虛擬化獨占設備,實現共享,即讓多個作業共享一臺獨占設備 |
依賴條件 | 1. 外存(井文件) 2. 多道程序設計 |
虛擬實現 | 多道程序技術+磁盤緩沖 |
數據流方向 | 輸入設備 → 輸入井 → CPU → 輸出井 → 輸出設備 |
用戶權限 | 僅操作內存緩沖區的數據讀寫,設備與井的傳輸由系統OS后臺進程管理。 |
典型應用 | 打印機共享,批量作業處理,磁帶機操作 |
不適合應用 | 不適用于交互式I/O(如鍵盤輸入),僅適合批處理作業 |
對比緩沖技術 | SPOOLing持久化到磁盤,緩沖僅暫存于內存 |
- 輸入/輸出井:本質是磁盤緩沖,必須依賴外存(如硬盤)
- 輸入/輸出進程:本質是后臺進程,負責設備與井之間的數據傳輸(SPOOLing技術/系統控制,用戶不感知)。由操作系統內核管理,用戶無權直接干預。
- 井管理程序就是用戶進程,只負責自己的緩沖區。
- 目標:空間換時間,用戶與物理設備解耦,傳輸對用戶透明。
- 請求隊列:多個用戶作業共享設備時的排隊機制(如打印隊列)。排隊可能調度:FIFO、優先級。
- 外圍控制機將 低速IO設備上數據 傳到 高速磁盤上:外圍控制機是專門管理低速I/O設備(如打印機、卡片閱讀器)與高速磁盤(SPOOLing緩沖區)之間數據傳輸的硬件控制器或專用處理機。它的工作有:
- 數據中轉:將低速設備的數據預先傳輸到磁盤(輸入井)或從磁盤(輸出井)傳回設備。
- 調度管理:協調多臺I/O設備的并發操作,避免主機等待。
- 緩沖機制:通過磁盤緩沖實現速度匹配(低速設備vs高速CPU/磁盤)。
- 與緩沖技術的區別:
- 緩沖(Buffer):僅解決速度差異(如CPU vs 內存),數據不持久。
- SPOOLing:解決設備獨占性,數據持久化到磁盤(井文件)。
- 性能影響:
- 優點:提高I/O速度、減少空閑時間、支持多作業并發。
- 缺點:占用額外磁盤空間、增加系統復雜度。
- 與DMA的對比:
對比項 | SPOOLing | DMA (Direct Memory Access) |
---|---|---|
控制主體 | 操作系統(軟件) | DMA 控制器(硬件) |
數據目標 | 磁盤(輸入/輸出井) | 內存 |
速度匹配 | 解決低速設備與 CPU 的矛盾 | 解決高速設備與內存的矛盾 |
傳輸單位 | 文件/作業級 | 數據塊級(如磁盤扇區) |
CPU 干預 | 需要調度和管理進程 | 傳輸期間完全不需要 CPU 參與 |
典型應用 | 打印機共享、批處理作業 | 磁盤、網卡、顯卡等高速設備 |
依賴條件 | 需要多道程序設計和外存 | 需要 DMA 控制器和總線支持 |
- 與傳統IO的對比:
特性 | SPOOLing 系統 | 傳統 I/O 方式 |
---|---|---|
設備共享性 | 虛擬共享(多作業并發使用) | 獨占(單作業獨占設備) |
CPU 利用率 | 高(CPU 不等待 I/O) | 低(CPU 需等待 I/O 完成) |
用戶控制層級 | 用戶僅控制內存緩沖區,設備傳輸由系統管理 | 用戶直接控制設備 |
依賴技術 | 多道程序設計 + 外存支持 | 無特殊要求 |
數據持久性 | 數據暫存于磁盤(井文件) | 數據不持久 |
適用場景 | 打印機、磁帶機等獨占設備 | 簡單交互式 I/O |
- 做題
對于SPOOLing技術的描述,錯誤的是:
A、 只能在多任務操作系統上使用
B、 可以將物理上的獨占設備抽象成邏輯上的共享設備
C、 輸出數據由輸出進程送入輸出井中保存
D、 輸入數據由輸入進程送入輸入井中保存
根據SPOOLing技術的工作原理和特點,我們分析各選項:
正確答案:AC
詳細解析:
選項 | 分析 | 結論 |
---|---|---|
A | SPOOLing技術可以在單任務系統(如早期批處理系統)上實現,并非必須多任務環境 | 錯誤 |
B | 正確描述,通過輸入/輸出井實現物理獨占設備→邏輯共享設備的轉換 | 正確 |
C | 輸出方向應為:用戶進程→輸出井→輸出設備(選項描述反了) | 錯誤 |
D | 輸入方向正確:輸入設備→輸入井→用戶進程 | 正確 |
關鍵點說明:
SPOOLing核心組件:
- 輸入井/輸出井(磁盤空間)
- 輸入/輸出進程(后臺守護進程)
- 設備分配表(記錄虛擬-物理映射)
技術本質圖解: