I/O Subsystem

Objective

OS 的目標是讓用戶不去看到那些 hardware devices 的奇怪細節,I/O subsystem 便是為使用者提供了 device 的抽象層

Feature of I/O Subsystem

1. Memory Management of I/O: Buffering, Caching, Spooling

  • Buffering:在資料傳輸過程中,Buffer 便是一個緩衝墊,當我們下載資料時網路不穩定,OS 會先將資料下載到 Buffer,等使用者需要用到時再將其拿出使用
  • Caching:將常用的資料放到更快的儲存層以提升性能
  • Spooling:處理「一次只能服務一個工作的裝置」的問題,像是印表機一次只能有一個人用,OS 會先將資料存下來然後依次處理一份

2. General Device-Driver Interface

不同廠商硬體千奇百怪,OS 定義了統一的 device-driver interface 規定所有的 driver 都必須提供一些函式。而 OS kernel 只和這套介面溝通而不用去知道他是什麼裝置

3. Drivers for Specific Hardware Devices

這就是 2. 說的那套介面,由硬體廠商自己實作,讓 OS 知道怎麼控制這個硬體