在計算機系統中,除了處理器和內存之外,其他的大部分硬設備稱為外部設備。它包括輸入/輸出設備,輔存設備及終端設備等。這些設備種類繁多,特性各異,操作方式的差異很大,從而使操作系統的設備管理變得十分繁雜。在架構師考試中,設備管理需要掌握的知識內容較少,主要為兩個方面:
1.數據傳輸控制方式
設備管理的主要任務之一是控制設備和內存或 CPU 之間的數據傳送。
選擇和衡量控制方式的原則如下:
(1)數據傳送速度足夠高,能滿足用戶的需要但又不丟失數據。
(2)系統開銷小,所需的處理控制程序少。
(3)能充分發揮硬件資源的能力,使得 I/O 設備盡量處于使用狀態中,而 CPU 等待時間少。
外圍設備和內存之間常用的數據傳送控制方式主要有以下幾種:
(1)程序控制方式。處理器啟動數據傳輸,然后等設備完成。
(2)中斷方式。程序控制方式不能實現并發。中斷方式的數據傳輸過程是這樣的,進程啟動數據傳輸(如讀)后,該進程放棄處理器,當數據傳輸完成,設備控制器產生中斷請求,中斷處理程序對數據傳輸工作處理之后,讓相應進程成為就緒狀態。以后,該進程就可以得到所需要的數據。
(3)直接存儲訪問(Direct Memory Access,DMA)方式。指外部設備和內存之間開辟直接的數據交換通路。除了控制狀態寄存器和數據緩沖寄存器外,DMA 控制器中還包括傳輸字節計數器、內存地址寄存器等。DMA 方式采用竊取(或挪用)處理器的工作周期和控制總線而實現輔助存儲器和內存之間的數據交換。有的 DMA 方式也采用總線浮起方式傳輸大批量數據。
(4)通道方式。通道又稱為輸入/輸出處理器(Input/Output Processor,IOP),可以獨立完成系統交付的輸入/輸出任務,通過執行自身的輸入/輸出專用程序(稱通道程序)進行內存和外設之間的數據傳輸。主要有 3 種通道:字節多路通道、選擇通道和成組多路通道。
2.虛設備與 SPOOLING 技術
采用假脫機技術,可以將低速的獨占設備改造成一種可共享的設備,而且一臺物理設備可以對應若干臺虛擬的同類設備。假脫機(Simultaneous Peripheral Operation On Line,SPOOLING)的意思是外部設備同時聯機操作,又稱為假脫機輸入/輸出操作,采用一組程序或進程模擬一臺輸入/輸出處理器。
SPOOLING 系統的組成如圖 2-8 所示。該技術利用了專門的外圍控制機將低速 I/O 設備上的數據傳送到高速設備上,或者相反。但是當引入多道程序后,完全可以利用其中的一道程序來模擬脫機輸入時的外圍控制機的功能,把低速的 I/O 設備上的數據傳送到高速磁盤上;再利用另一道程序來模擬脫機輸出時外圍控制機的功能,把高速磁盤上的數據傳送到低速的 I/O 設備上。這樣便可以在主機的控制下實現脫機輸入、輸出的功能。此時的外圍操作與 CPU 對數據的處理同時進行。
采用假脫機技術,可以將低速的獨占設備改造成一種可共享的設備,而且一臺物理設備可以對應若干臺虛擬的同類設備。SPOOLING 系統必須有高速、大容量并且可隨機存取的外存(例如,磁盤或磁鼓)支持。
在現代計算機系統中,還可以用一臺設備來模擬自身。例如,常見的多窗口技術,即在一個終端上開多個窗口,每個窗口可以獨立地進行顯示,以監視用戶不同任務的執行情況。這是通過縮小顯示區域、平鋪或重疊顯示來模擬多個顯示器的。