操作系統 SPOOling技術

SPOOling技術便可將一臺物理I/O設備虛擬爲多臺邏輯I/O設備,同樣允許多個用戶共享一臺物理I/O設備(生活中最常見的就是多臺電腦共享同一個打印機)

目的:爲了緩和CPU的高速性與I/O設備低速性之間的矛盾而引入了脫機輸入/輸出技術。該技術是利用專門的外圍控制機,將低速I/O設備上的數據傳送到高速磁盤上;或者相反。 SPOOLing的意思是外部設備同時聯機操作,又稱爲假脫機輸入/輸出操作,是操作系統中釆 用的一項將獨佔設備改造成共享設備的技術。

例子:共享打印機是使用SPOOLing技術的一個實例,這項技術已被廣泛地用於多用戶系統和 局域網絡中。當用戶進程請求打印輸出時,SPOOLing系統同意爲它打印輸出,但並不真正 立即把打印機分配給該用戶進程,而只爲它做兩件事:

  • 由輸出進程在輸出井中爲之申請一個空閒磁盤塊區,並將要打印的數據送入其中。
  • 輸出進程再爲用戶進程申請一張空白的用戶請求打印表,並將用戶的打印要求填入 其中,再將該表掛到請求打印隊列上。
    在這裏插入圖片描述
  • SPOOLing組成:
    (1) 輸入井和輸出井。這是在磁盤上開闢出來的兩個存儲區域。輸入井模擬脫機輸入時的磁盤,用於收容I/O設備輸入的數據。輸出井模擬脫機輸出時的磁盤,用於收容用戶程序的輸出數據。輸入/輸出井中的數據一般以文件的形式組織管理,我們把這些文件稱爲井文件。一個文件僅存放某一個京城的輸入(或者輸出)數據,所有進程的數據輸入(或輸出)文件鏈接稱爲一個輸入(或輸出)隊列。

(2)輸入緩衝區和輸出緩衝區。這是在內存中開闢的兩個緩衝區,用於緩和CPU和磁盤之間速度不匹配的矛盾。輸入緩衝區用於暫存由輸入設備傳送的數據,之後再傳送到輸入井。輸出緩衝區用於暫存從輸出井傳送的數據,之後再傳送到輸出設備。

**(3)輸入進程和輸出進程。**輸入進程也稱爲預輸入進程,用於模擬脫機輸入時的外圍控制機,將用戶要求的數據從輸入設備傳送到輸入緩衝區,再存放到輸入井。當CPU需要輸入設備時,直接從輸入井讀入內存。輸出進程也稱爲緩輸出進程,用於模擬脫機輸出時的外圍控制機,把用戶要求輸入的數據從內存傳送並存放到輸出井,待輸出設備空閒時,再將輸出井中的數據經過輸出緩衝區輸出至輸出設備上。

**(4)井管理程序。**用於控制作業與磁盤井之間信息的交換。當作業執行過程中向某臺設備發出啓動輸入或輸出操作請求時,由操作系統調用井管理程序,由其控制從輸入井讀取信息或將信息輸出至輸出井。

組成圖:
在這裏插入圖片描述

SPOOLing技術的特點:
**(1)提高了I/O速度。**從對低速I/O設備進行的I/O操作變爲對輸入井或輸出井的操作,如同脫機操作一樣,提高了I/O速度,緩和了CPU與低速I/O設備速度不匹配的矛盾。
**(2)將獨佔設備改造爲共享設備。**因爲在SPOOLing系統的系統中,實際上並沒爲任何進程分配設備,而知識在輸入井或輸出井中爲進程分配一個存儲區和建立一張I/O請求表。這樣,便把獨佔設備改造爲共享設備。
**(3)實現了虛擬設備功能。**多個進程同時使用一獨享設備,而對每一進程而言,都認爲自己獨佔這一設備,從而實現了設備的虛擬分配。不過,該設備是邏輯上的設備。
在這裏插入圖片描述

SPOOLing除了是一種速度匹配技術外,也是一種虛擬設備技術。用一種物理設備模擬另一類物理設備,使各作業在執行期間只使用虛擬的設備,而不直接使用物理的獨佔設備。這種技術可使獨佔的設備變成可共享的設備,使得設備的利用率和系統效率都能得到提高
————————————————
版權聲明:本文爲CSDN博主「柳婼」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/liuchuo/article/details/51986149

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章