假離線服務(SPOOLing service)
1. 基本含義
SPOOLing 是 Simultaneous Peripheral(外設) Operation On-Line(聯機) 的縮寫,是關於慢速字元裝置(慢速外設,比如印表機)如何與計算機主機交換資訊的一種技術,通常稱為“假離線技術”。
舉例來說,當一個大公司執行賬單核對,計算的工作僅需數秒或幾分鐘,列印卻需要數小時之久。此賬單程式將無法執行其他的計算任務,直到所有的賬單列印完畢。類似地,在 PC 作業系統未採用“假離線技術”之前,當低速的列印程式未結束時,字處理程式不能做其他的任何任務,包括和使用者的互動。
2. 組成
1.輸入井和輸出井:輸入井和輸出井的儲存區域是在磁碟
2.輸入緩衝區和輸出緩衝區:輸入緩衝區和輸出緩衝區的儲存區域是在記憶體中開闢出來的。主要用於緩和CPU和磁碟之間速度不匹配的矛盾。輸入緩衝區用於暫存有輸入裝置傳送的資料,之後再傳送到輸入井;輸出緩衝區 同理。
3.輸入程序和輸出程序:輸入程序也稱為預輸入程序,用於模擬離線輸入時的外圍控制機,將使用者要求的資料從輸入裝置傳送到輸入緩衝區,再存放到輸入井。當CPU需要的時候,直接從輸入井將資料讀入記憶體。反之,輸出的同理。
4.井管理程式:
3. 特點
1.提高了I/O的速度:,對資料執行的I/O操作,已從對低速I/O裝置執行的I/O操作演變為對磁碟緩衝區中資料的存取,如同離線輸入輸出一樣,提高了I/O速度,緩和了CPU和低速的I/Os裝置之間速度的不匹配的矛盾。
將獨佔裝置改造成了共享裝置:因為在假離線印表機系統中,實際上並沒有為任何程序分配裝置,而只是在磁碟緩衝區中為程序分配了一個空閒盤塊和建立了一張I/O請求表。
實現了虛擬裝置功能:巨集觀上,對於每一個程序而言,它們認為是自己獨佔了一個裝置,即使實際上是多個程序在同時使用一臺獨佔裝置。也可以說,假離線系統,實現了將獨佔裝置變換為若干臺對應的邏輯裝置的功能。
4. 例項
將一臺獨享印表機改造為可供多個使用者共享的印表機,是應用 SPOOLing技術的典型例項。
具體做法是:系統對於使用者的列印輸出,並不真正把印表機分配給該使用者程序,而是先在輸出井中申請一個空閒盤塊區,並將要列印的資料送入其中;然後為使用者申請並填寫請求打印表,將該表掛到請求列印佇列上。若印表機空閒,輸出程式從請求列印隊首取表,將要列印的資料從輸出井傳送到記憶體緩衝區,再進行列印,直到列印佇列為空。