複製鏈接
請複製以下鏈接發送給好友

SPOOLing系統

鎖定
虛擬性是操作系統的重要特性之一。在多道程序出現後,可以利用多道技術將一台物理CPU虛擬為多個邏輯CPU,從而允許多個用户共享一台主機。同樣,SPOOLing技術可以將一台物理I/O設備虛擬為多台邏輯I/O設備,從而允許多個用户共享一台I/O設備。
中文名
SPOOLing系統
外文名
SPOOLing
別    名
假脱機操作

目錄

SPOOLing系統簡介

SPOOLing(Simultaneous Peripheral Operations On Line)的直譯意思是“聯機情況下同時進行的外圍設備操作”,通常稱其為“假脱機操作”。SPOOLing系統是虛擬設備最典型的代表,包括假脱機輸入系統和假脱機輸出系統兩個部分,是對脱機輸入/輸出技術的改進。
脱機操作需要衞星以及操作員的來回走動並裝卸磁帶,假脱機操作則不需要衞星機以及操作員工作。假脱機操作時在中斷系統和I/O通道的支持下,利用多道程序技術,完成了脱機操作的功能,故稱作假脱機操作。它的基本工作原理是,使用一道程序管理通道,完成從低速的I/O設備輸入數據到高速的磁盤上;使用另一道程序管理通道,完成將數據從高速的磁盤輸出到低速的I/O設備上;同時,其他進程可進行數據處理。

SPOOLing系統組成

圖1 SPOOLing系統組成原理 圖1 SPOOLing系統組成原理
SPOOLing系統由輸入/輸出設備和通道、輸入井和輸出井、輸入井和輸出井管理程序、假脱機輸入程序以及假脱機輸出程序等幾部分組成,如圖1所示:
輸入和輸出設備和通道
輸入設備是數據的真正來源,輸出設備是數據的最終到達地點,負責實現將其他形式(例如卡片上的孔)的數據到內存數據的轉換以及從內存數據到其他形式(例如紙張上的彩色圖像)數據的轉換,顯然是必不可少的。通道是執行通道程序,完成數據在設備與內存空間交換的硬件,是假脱機系統的基本支持硬件。
輸入井和輸出井
輸入井和輸出井由磁盤或磁鼓上的一個區域構成,是假脱機系統中的虛擬設備的承載實體,完成輸入數據和輸出數據的暫存。輸入井和輸出井可以以磁盤上的塊為單位組成,此時需要對這些塊的使用進行管理,一個虛擬設備對應若干個磁盤塊,也可以利用文件系統來實現,此時的一個虛擬設備則對應一個或多個文件。
輸入井和輸出井管理程序
由於輸入井和輸出井負責實現多個虛擬設備,一個虛擬設備對應一個或多個磁盤塊(或文件),而且虛擬設備是動態產生和消失,每次大小均不一樣,與輸入/輸出的數據多少有關,因而輸入井和輸出井需要相應的程序來進行空間管理。
假脱機輸入程序
假脱機輸入程序是操作系統的一部分,位於系統高層,通常以進程模式運行,屬於系統進程。必須指出,假脱機輸入程序是整個系統只有一個,但運行該程序的進程卻可能有多個。事實上,對應每一台輸入機都有一個假脱機輸入進程,負責對應輸入機的輸入操作,將作業數據由設備傳送到輸入井中。當輸入機上無作業數據等待輸入時,相應的假脱機輸入進程等待;當操作員將待輸入的作業數據放到輸入機上並啓動設備時,產生一箇中斷信號,使得對應的假脱機輸入進程被喚醒。
假脱機輸出程序
假脱機輸出程序是操作系統的一部分,位於系統高層,通常以進程模式運行,屬於系統進程。與假脱機輸入程序相似,假脱機輸出程序整個系統也只有一個,但運行該程序的進程可能有多個。實際上,對應每一台輸出機都有一個假脱機輸出進程,負責對應輸出機的輸出操作,將結果由輸出井傳到輸出機上。