1. 程式人生 > >假離線服務(SPOOLing service)

假離線服務(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技術的典型例項。

具體做法是:系統對於使用者的列印輸出,並不真正把印表機分配給該使用者程序,而是先在輸出井中申請一個空閒盤塊區,並將要列印的資料送入其中;然後為使用者申請並填寫請求打印表,將該表掛到請求列印佇列上。若印表機空閒,輸出程式從請求列印隊首取表,將要列印的資料從輸出井傳送到記憶體緩衝區,再進行列印,直到列印佇列為空。