操作系统的SPOOLING技术
SPOOLING技術(Simultaneous Peripheral Operating On Line)
同時聯機外圍操作技術,它是關于慢速字符設備如何與計算機主機進行數據交換的一種技術,通常又稱假脫機技術。
在多道程序環境下,利用多道程序中的一道或者兩道程序來模擬脫機輸入/輸出中的外圍控制機的功能,以達到“脫機”輸入/輸出的目的。
利用這種技術可把獨占設備轉變成共享的虛擬設備,從而提高獨占設備的利用率和進程的推進速度。
SPOOLING系統 是對脫機輸入/輸出工作的模擬,它必須有大容量的且可隨機存取的存儲器的支持。
其主要思想是在聯機的條件下,進行兩個方向的操作,在數據輸入時,將數據從輸入設備傳送到磁盤或磁帶(塊設備),然后把這些塊設備與主機相連;反過來,在數據輸出時,將輸出數據傳送到磁盤或磁帶上,再從磁盤或磁帶傳送到輸出設備。
這樣,可以將一臺獨占的物理設備虛擬為并行使用的多態邏輯設備,從而使該物理設備被多個進程共享。
輸入進程SPI是模擬脫機輸入時的外圍控制機,它將用戶要求處理的數據從輸入設備通過輸入緩沖區再送到輸入井(磁盤上開辟的一塊區域),當CPU處理這些數據數據時,就直接從輸入井讀入內存。
輸出進程SPO是模擬脫機輸出時的外圍控制機,把用戶要求輸出的數據,先從內存送到輸出井,待輸出設備空閑時,再將輸出井中的數據通過輸出緩沖區(內存中一塊區域)傳送到輸出設備上。
實例:利用打印機實現打印機共享
已經被廣泛用于多用戶系統和計算機網絡中,它實際上就是利用SPOOLING技術將獨占的打印機改造為一臺供做個用戶共享的設備,只要有足夠的外存空間和多道程序操作系統的支持即可。
1、當用戶進程請求打印輸出時,SPOOLING系統立即同意為該進程執行打印輸出,但并不是真正地把打印機分配給該用戶進程,而只是為該進程做兩項工作: 一項是由輸出進程SPO在輸出井中為之申請一個空閑的存儲空間,并將要打印的數據傳送其中存放;另一項工作就是由輸出進程SPO再為用戶進程申請一張空白的用戶請求打印表,并將用戶的打印請求填入其中,然后將該表掛到打印機的請求隊列上。這時,如果還有另一個進程請求打印機時,則系統仍同意為該進程執行打印輸出,當然,系統所做的工作仍是以上兩項內容。
2、在打印機執行實際打印時,如果打印機空閑,輸出進程SPO將從請求打印隊列的隊首取出一張打印表,根據打印表中的要求將要打印的數據從輸出井傳送到內存輸出緩沖區,再傳送到打印機打印。打印完后,輸出進程SPO將再檢查請求打印隊列中是否還有待打印的請求表,若有則再取出一張請求打印表,將新的但因要求繼續打印。如此反復,直到請求打印隊列空為止,輸出進程才將自己阻塞起來,并在下次再有打印請求時被喚醒。
總結
以上是生活随笔為你收集整理的操作系统的SPOOLING技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#利用反射将实体类ListT转化为Da
- 下一篇: 计算机图形学颜色表示,计算机图形学 颜色