天天看點

聊聊SPOOLing技術

SPOOLing系統組成

由上所述得知,SPOOLing技術是對脫機輸入、輸出系統的模拟。相應地,SPOOLing系統必須建立在具有多道程式功能的作業系統上,而且還應有高速随機外存的支援,這通常是采用磁盤存儲技術。

SPOOLing系統主要有以下三部分:

聊聊SPOOLing技術

圖檔發自簡書App

(1)輸入井和輸出井。這是在磁盤上開辟的兩個大存儲空間。輸入井是模拟脫機輸入時的磁盤裝置,用于暫存I/Q裝置輸入的資料;輸出井是模拟脫機輸出時的磁盤,用于暫存使用者程式的輸出資料。

(2)輸入緩沖區和輸出緩沖區。為了緩和和CPU和磁盤之間速度不比對的沖突,在記憶體中要開辟兩個緩沖區;輸入緩沖區和輸出緩沖區。輸入緩沖區用于暫存由輸入裝置送來的資料,以後再傳送到輸入井。輸出緩沖區用與暫存從輸出井送來的資料,以後在傳送給輸出裝置。

(3)輸入程序SPi 和輸入程序SP0。這裡利用兩個程序來模拟脫機I/O時的外圍控制機。其中,程序SPi模拟脫機輸入時的外圍控制機,将使用者要求的資料從輸入機通過輸入緩沖區再送到輸入井,當CPU需要輸入資料時,直接從輸入井讀入記憶體;程序SP0模拟脫機輸出時的外圍控制機,把使用者要求輸出的資料從先記憶體送到輸出井,待輸出裝置空閑時,在将輸出井中的資料經過輸出緩沖區送到輸出裝置上。

SPOOLing系統原理

SPOOLing系統既不同于脫機方式,也不同于直接藕合方式,SPOOLing技術實際上是一種外圍裝置同時聯機操作技術,又稱為排隊轉儲技術。

它在輸入和輸出之間增加了“輸入井”和“輸出井”的排隊轉儲環節,以消除使用者的“聯機”等待時間。

在系統輸入子產品收到作業輸入請求信号後,輸入管理子產品中的讀過程負責将資訊從輸入裝置中讀入輸入井緩沖區。當緩沖區滿時,由寫過程将資訊從緩沖區寫到外存的輸入井中,讀過程和寫過程反複循環,直到一個作業輸入完畢。

當讀過程讀到一個硬體結束标志之後,系統再次驅動寫過程把最後一批資訊寫入外存輸入井并調用中斷處理程式結束該次輸入。然後,系統為該作業建立作業控制塊,進而使輸入井中的作業進入作業等待隊列,等待作業排程程式選中後進入記憶體運作。

系統在管理輸入井過程中可以“不斷”讀入輸入的作業,直到輸入結束或輸入井滿而暫停。若系統的某台台行式列印機采用了虛拟裝置技術,那麼若有程序要求對它列印輸出時,SPOOLing系統并不是将這台列印機直接配置設定給程序,而是在共享裝置(磁盤)上的輸出,SPOOLing存儲區中為其配置設定一塊存儲空間,程序的輸出資料以檔案形式表示的。

SPOOLing技術的特點: