SPOOLing系統簡介
SPOOLing(Simultaneous Peripheral Operations On Line)的直譯意思是“在線上情況下同時進行的外圍設備操作”,通常稱其為“假脫機操作”。SPOOLing系統是虛擬設備最典型的代表,包括假脫機輸入系統和假脫機輸出系統兩個部分,是對脫機輸入/輸出技術的改進。
脫機操作需要衛星以及操作員的來回走動並裝卸磁帶,假脫機操作則不需要衛星機以及操作員工作。假脫機操作時在中斷系統和I/O通道的支持下,利用多道程式技術,完成了脫機操作的功能,故稱作假脫機操作。它的基本工作原理是,使用一道程式管理通道,完成從低速的I/O設備輸入數據到高速的磁碟上;使用另一道程式管理通道,完成將數據從高速的磁碟輸出到低速的I/O設備上;同時,其他進程可進行數據處理。
SPOOLing系統的組成
SPOOLing系統由輸入/輸出設備和通道、輸入井和輸出井、輸入井和輸出井管理程式、假脫機輸入程式以及假脫機輸出程式等幾部分組成,如圖所示:
輸入和輸出設備和通道
輸入設備是數據的真正來源,輸出設備是數據的最終到達地點,負責實現將其他形式(例如卡片上的孔)的數據到記憶體數據的轉換以及從記憶體數據到其他形式(例如紙張上的彩色圖像)數據的轉換,顯然是必不可少的。通道是執行通道程式,完成數據在設備與記憶體空間交換的硬體,是假脫機系統的基本支持硬體。
輸入井和輸出井
輸入井和輸出井由磁碟或磁鼓上的一個區域構成,是假脫機系統中的虛擬設備的承載實體,完成輸入數據和輸出數據的暫存。輸入井和輸出井可以以磁碟上的塊為單位組成,此時需要對這些塊的使用進行管理,一個虛擬設備對應若干個磁碟塊,也可以利用檔案系統來實現,此時的一個虛擬設備則對應一個或多個檔案。
輸入井和輸出井管理程式
由於輸入井和輸出井負責實現多個虛擬設備,一個虛擬設備對應一個或多個磁碟塊(或檔案),而且虛擬設備是動態產生和消失,每次大小均不一樣,與輸入/輸出的數據多少有關,因而輸入井和輸出井需要相應的程式來進行空間管理。
假脫機輸入程式
假脫機輸入程式時作業系統的一部分,位於系統高層,通常以進程模式運行,屬於系統進程。必須指出,假脫機輸入程式是整個系統只有一個,但運行該程式的進程卻可能有多個。事實上,對應每一台輸入機都有一個假脫機輸入進程,負責對應輸入機的輸入操作,將作業數據由設備傳送到輸入井中。當輸入機上無作業數據等待輸入時,相應的假脫機輸入進程等待;當操作員將待輸入的作業數據放到輸入機上並啟動設備時,產生一個中斷信號,使得對應的假脫機輸入進程被喚醒。
假脫機輸出程式
假脫機輸出程式是作業系統的一部分,位於系統高層,通常以進程模式運行,屬於系統進程。與假脫機輸入程式相似,假脫機輸出程式整個系統也只有一個,但運行該程式的進程可能有多個。實際上,對應每一台輸出機都有一個假脫機輸出進程,負責對應輸出機的輸出操作,將結果由輸出進傳到輸出機上。