OS
I/O裝置在功能與速度方面變化極大(滑鼠、硬碟、光碟機),因此需要許多不同的功能來控制
I/O裝置目前存有兩個相互衝突的方展方向
裝置驅動程式(device driver):代表一個與I/O子系統相通知統一裝置存取介面
阜(port):裝置和機器藉此互通訊息
匯流排(bus):由一組纜線組成,並使用嚴謹定義之協定,規定一組可在纜線上傳送的訊息組成
菊花鏈(daisy chain):裝置A有纜線連接裝置B,裝置B有纜線連接裝置C,裝置C有纜線連接電腦阜,通常以匯流排方式操作
PCI匯流排(PCI bus):負責處理處理器-記憶體(processor-memory)子系統與快速裝置的連接
控制器(controller):可操控連接阜、匯流排或裝置的電子零件,擁有一個或多個暫存器
I/O連接阜包含四個暫存器
輪詢(polling)/忙碌等待(busy-waiting)
中斷(interrupt)
直接記憶體存取(DMA,Direct Memory Access)
介面(interface):將一般性特徵由一組標準化功能加以存取
每種作業系統都有自己適用的裝置驅動器介面
大部分的作業系統有跳脫(escape)/後門(backdoor)可以原封不動的將來自某應用程式之任意指令傳給裝置驅動器
區段與字元裝置
網路裝置(Network devices)
時鐘與計時器(Clocks and Timers)
阻隔與非阻隔I/O(Blocking and Nonblocking I/O)
向量I/O(vectored I/O)
I/O排班程式
緩衝(buffer)
快取(cache)
spooling 和裝置預約
錯誤處理(error handle)
I/O保護(I/O Protection)
核心資料結構(Kernel Data Structures)
考慮一個行程從磁碟讀取一個檔案
I/O要求的生命週期
讓應用程式能夠動態組合驅動程式之程式碼的管線(pipeline)
STREAMS I/O是非同步
STREAMS 提供一個架構以模組化漸進式的方法來撰寫裝置驅動模式和網路協定
I/O是影響系統性能的主要原因
改進I/O之執行效率
應用程式層開發彈性較高,但內容轉換可能造成額外的負擔