什么是假脫機技術,它可以解決什么問題?
什么是脫機技術
要回答什么是假脫機技術,首先我們需要知道什么是脫機技術。《計算機操作系統(第四版)》寫道:
為了解決人機矛盾及CPU和I/O設備之間速度不匹配的矛盾,20世紀50年代末出現了脫機I/O技術。該技術是將事先裝有用戶程序和數據的紙袋裝入紙帶輸入機,在一台外圍機的控制下,把紙帶(卡片)上的數據(程序)輸入道磁帶上。當CPU需要這些程序和數據時,再從磁帶上高速地調入內存。
在脫機技術加持下,程序和數據的輸入輸出都是在外圍機的控制下完成的,也就是說,他們是在脫離主機的情況下進行的,所以稱這種方式為脫機輸入/輸出方式。
假脫機
假脫機技術,又稱SPOOLing(Simultaneous Peripheral Operation On-Line)技術,是用軟件的方式模擬脫機技術。SPOOLing系統的組成如下圖所示。
明確一點:要實現SPOOLing技術,必須要有多道程序技術的支持。系統會建立“輸入進程”和“輸出進程”。
輸入進程模擬脫機輸入時的外圍控制機;輸出進程模擬脫機輸出時的外圍控制機。
所以,SPOOLing技術是用軟件的方式實現了數據的預輸入和緩輸出。
假脫機技術的實現原理
SPOOLing系統主要由以下四部分組成:
-
輸入井和輸出井
這是在磁盤上開辟出來的兩個存儲區域。輸入井模擬脫機輸入時的磁盤,用於收容I/O設備輸入的數據。輸出井模擬脫機輸出時的磁盤,用於收容用戶程序的輸出數據。輸入/輸出井中的數據一般以文件的形式組織管理,我們把這些文件成為井文件。一個文件僅存放某一個進程的輸入或者輸出數據,所有進程的輸入或者輸出文件鏈接成為一個輸入(或輸出)隊列。
-
輸入緩沖區和輸出緩沖區
這是在內存中開辟的兩個緩沖區,用於緩和CPU和磁盤之間速度不匹配的矛盾。輸入緩沖區用於暫存由輸入設備傳送的數據,之后再傳送到輸入井。輸出緩沖器用於暫存從輸出井傳送的數據,之后再傳送到輸出設備。
-
輸入進程和輸出進程
輸入進程也稱預輸入進程,用於模擬脫機輸入時的外圍控制機,將用戶要求的數據從輸入設備傳送到輸入緩沖區,再存放到輸入井。當CPU需要輸入設備時,直接從輸入井讀入內存。輸出進程也稱緩輸出進程,用於模擬脫機輸出時的外圍控制機,把用戶要求輸入的數據從內存傳送並存放到輸出井,待輸出設備空閑時,再將輸出井中的數據經過輸出緩沖區輸出至輸出設備上。
-
井管理程序
用於控制作業與磁盤之間信息的交換。當作業執行過程中向某台設備發出啟動輸入或輸出操作請求時,由操作系統調用井管理程序,由其控制從輸入井讀取信息或將信息輸出至輸出井。
工作原理圖
SPOOLing系統的工作原理如下圖所示