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

SPOOLing技術

鎖定
虛擬性是OS的四大特性之一。如果説可以通過多道程序技術將一台物理CPU虛擬為多台邏輯CPU,從而允許多個用户共享一台主機,那麼,通過SPOOling技術便可將一台物理I/O設備虛擬為多台邏輯I/O設備,同樣允許多個用户共享一台物理I/O設備。 [1] 
中文名
SPOOLing技術
外文名
Simultaneous Peripheral Operation On-Line
分    類
技術名詞
也    稱
假脱機真聯機
學    科
計算機科學

SPOOLing技術技術介紹

SPOOLing技術是低速輸入輸出設備與主機交換的一種技術,通常也稱為“假脱機真聯機”,他的核心思想是以聯機的方式得到脱機的效果。低速設備經通道和外設在主機內存的緩衝存儲器與高速設備相聯,該高速設備通常是輔存。為了存放從低速設備上輸入的信息,或者存放將要輸出到低速設備上的信息(來自內存),在輔存分別開闢一固定區域,叫“輸出井”(對輸出),或者“輸入井”(對輸入)。簡單來説就是在內存中形成緩衝區,在高級設備形成輸出井和輸入井,傳遞的時候,從低速設備傳入緩衝區,再傳到高速設備的輸入井,再從高速設備的輸出井,傳到緩衝區,再傳到低速設備。
SPOOLing是Simultaneous Peripheral Operation On-Line (即外部設備聯機並行操作)的縮寫,它是關於慢速字符設備如何與計算機主機交換信息的一種技術,通常稱為“假脱機技術”。
SPOOLing系統既不同於脱機方式,也不同於直接藕合方式,SPOOLing技術實際上是一種外圍設備同時聯機操作技術,又稱為排隊轉儲技術。它在輸入和輸出之間增加了“輸入井”和“輸出井”的排隊轉儲環節,以消除用户的“聯機”等待時間。在系統輸入模塊收到作業輸入請求信號後,輸入管理模塊中的讀過程負責將信息從輸入裝置中讀入輸入井緩衝區。當緩衝區滿時,由寫過程將信息從緩衝區寫到外存的輸入井中,讀過程和寫過程反覆循環,直到一個作業輸入完畢。當讀過程讀到一個硬件結束標誌之後,系統再次驅動寫過程把最後一批信息寫入外存輸入井並調用中斷處理程序結束該次輸入。然後,系統為該作業建立作業控制塊,從而使輸入井中的作業進入作業等待隊列,等待作業調度程序選中後進入內存運行。系統在管理輸入井過程中可以“不斷”讀入輸入的作業,直到輸入結束或輸入井滿而暫停。若系統的某台台行式打印機採用了虛擬設備技術,那麼若有進程要求對它打印輸出時,SPOOLing系統並不是將這台打印機直接分配給進程,而是在共享設備(磁盤)上的輸出,SPOOLing存儲區中為其分配一塊存儲空間,進程的輸出數據以文件形式表示的。各進程的數據輸出文件形成了一個輸出隊列,由輸出POOLing系統控制這台打印機進程,依次將隊列中的輸出文件實際打印輸出。在SPOOLing系統中,實際上並沒有為任何進程分配,而只是在輸入井和輸出井中,為進程分配一存儲區和建立一章I/O請求表。這樣,便把獨佔設備改造為共享設備。
將一台獨享打印機改造為可供多個用户共享的打印機,是應用SPOOLing技術的典型實例。具體做法是:系統對於用户的打印輸出,但並不真正把打印機分配給該用户進程,而是先在輸出井中申請一個空閒盤塊區,並將要打印的數據送入其中;然後為用户申請並填寫請求打印表,將該表掛到請求打印隊列上。若打印機空閒,輸出程序從請求打印隊首取表,將要打印的數據從輸出井傳送到內存緩衝區,再進行打印,直到打印隊列為空。

SPOOLing技術系統組成

由上所述得知,SPOOLing技術是對脱機輸入、輸出系統的模擬。相應地,SPOOLing系統必須建立在具有多道程序功能的操作系統上,而且還應有高速隨機外存的支持,這通常是採用磁盤存儲技術。
SPOOLing系統主要有以下三部分:
(1)輸入井和輸出井。這是在磁盤上開闢的兩個大存儲空間。輸入井是模擬脱機輸入時的磁盤設備,用於暫存I/O設備輸入的數據;輸出井是模擬脱機輸出時的磁盤,用於暫存用户程序的輸出數據。
(2)輸入緩衝區和輸出緩衝區。為了緩和和CPU和磁盤之間速度不匹配的矛盾,在內存中要開闢兩個緩衝區;輸入緩衝區和輸出緩衝區。輸入緩衝區用於暫存由輸入設備送來的數據,以後再傳送到輸入井。輸出緩衝區用與暫存從輸出井送來的數據,以後在傳送給輸出設備。
(3)輸入進程SPi 和輸出進程SP0。 [2]  這裏利用兩個進程來模擬脱機I/O時的外圍控制機。其中,進程SPi模擬脱機輸入時的外圍控制機,將用户要求的數據從輸入機通過輸入緩衝區再送到輸入井,當CPU需要輸入數據時,直接從輸入井讀入內存;進程SP0模擬脱機輸出時的外圍控制機,把用户要求輸出的數據從先內存送到輸出井,待輸出設備空閒時,再將輸出井中的數據經過輸出緩衝區送到輸出設備上。
SPOOLing系統的組成 SPOOLing系統的組成 [1]

SPOOLing技術技術特點

(1)提高了I/O速度。從對低速I/O設備進行的I/O操作變為對輸入井或輸出井的操作,如同脱機操作一樣,提高了I/O速度,緩和了CPU與低速I/O設備速度不匹配的矛盾。
(2)將獨佔設備改造為共享設備。因為在SPOOLing系統的系統中,實際上並沒為任何進程分配設備,而只是在輸入井或輸出井中為進程分配一個存儲區和建立一張I/O請求表。這樣,便把獨佔設備改造為共享設備。
(3)實現了虛擬設備功能。多個進程同時使用一獨享設備,而對每一進程而言,都認為自己獨佔這一設備,從而實現了設備的虛擬分配。不過,該設備是邏輯上的設備。
SPOOLing除了是一種速度匹配技術外,也是一種虛擬設備技術。用一種物理設備模擬另一類物理設備,使各作業在執行期間只使用虛擬的設備,而不直接使用物理的獨佔設備。這種技術可使獨佔的設備變成可共享的設備,使得設備的利用率和系統效率都能得到提高。
參考資料
  • 1.    湯小丹 梁紅兵 哲鳳屏.計算機操作系統:西安電子科技大學出版社,2007年2月
  • 2.    趙敬編著. 操作系統 第2版[M]. 北京:中國鐵道出版社, 2012.03.P185.