即使I/0的硬件視角在電子-硬件布局規範的級別上被承認是複雜的,但我們剛剛描述的思想足以使我們了解許多I/0特性
操作係統的。讓我們來看看大多數概念:
- 一輛公共汽車
- 一個控製器
- I/0端口及其寄存器
- 主機和工具控製器之間的握手關係。
- 在輪詢循環期間或通過中斷執行此握手。
- 將這項工作卸載到DMA控製器進行巨大的傳輸。
在本節之前,我們提供了發生在設備控製器和主機之間的握手的基本標準。實際上,各種各樣的設備使操作係統實現者陷入了困境。每種係統都有自己的一套能力、控製位描述和與所有者通信的協議,而且它們都是不同的。如何設計操作係統,使我們可以在不編輯操作係統的情況下將新設備連接到計算機上?當設備差異如此之大時,操作係統如何為應用程序提供方便、統一的I/0接口呢?下麵我們將討論這些問題。
操作係統的關鍵任務之一是調節多個I/O設備,如鼠標、鍵盤和on。I/O係統對於推動應用程序I/O調用並將其發送到真正的設備,然後獲取從設備返回的響應並將其發送到計算機是必不可少的。I/O設備通常分為兩類
- 塊設備:塊設備是通過提供完整的信息塊與驅動力相互作用的設備。例如,硬盤,USB攝像頭,磁盤on - key等。
- 字符設備-字符設備是驅動力通過發送和接收單個字符(字節,八位字節)進行交流的設備。例如,串口,並口,聲卡等。
- 設備控製器——設備驅動程序是將插入操作係統以控製特定設備的軟件模塊。OS需要設備驅動程序的幫助來管理每個I/O設備。設備控製器就像工具和工具驅動程序之間的接口。I/O單元,如鍵盤、鼠標、打印機等,通常包含一個自動組件和一個電子組件,其中電子組件被命名為設備控製器。
每個設備都有一個工具控製器和一個工具驅動程序與操作係統對話。工具控製器也可以準備好處理多個設備。作為一個接口,它的主要任務是將串行位流轉換為字節壩,並根據需要進行糾錯。
任何連接到pc的設備都通過一個插頭和插座連接,因此插座連接到工具控製器。給出了連接CPU、內存、控製器和I/O設備的圖像,其中CPU和設備控製器都使用標準總線進行通信。