作業系統型別(上篇)
0、無作業系統計算機系統
缺點:計算機資源的利用率低,即存在CPU等待人工操作和高速CPU與低速I/O間矛盾等問題
1、批處理系統 (Batch System)
1)、初級單道批處理系統
目標:為了解決人工操作(無作業系統)嚴重降低了計算機資源的利用率的問題,即解決CPU等待人工操作和高速CPU與低速I/O間矛盾等問題。
離線輸入輸出技術:該技術利用一臺外圍機,脫離主機先將低速輸入裝置(如紙帶機)的資料,輸入到較高速大容量的輸入裝置(如磁帶)上。
批處理技術:它利用磁帶容量較大的特點,先將一批作業按序以離線方式輸入到磁帶上。主機在監督程式控制下,根據卡片機讀入控制作業操作資訊,逐個從磁帶上讀入作業到記憶體,調入彙編/編釋程式將源程式翻譯成目的碼,連線裝配後執行,結果輸出列印。執行完畢後再調入下一個作業,系統就這樣自動地一個一個作業地進行處理,直至完成,這是早期單道批處理系統,它解決了作業自動轉換,從而減少作業建立和人工操作時間。
基本控制卡片,是現代作業控制語言和命令直譯器的先驅
2)、現代多道批處理系統
目標:為了進一步提高資源利用率,在硬體採用通道和中斷技術支援並行操作的情況下,引入了多道程式設計技術,由此引入多道批處理系統。
多道程式設計技術:
它是在計算機記憶體同時存放幾道相互獨立的程式,這幾道程式都處於執行過程中,它們先後開始了各自的執行,但都未執行完畢。多道程式在巨集觀上並行執行,而在微觀上多道程式在某個部件上(如CPU、I/O)是序列,即多道程式輪流地使用部件,交替執行。
一個有一個CPU和二個I/O裝置(磁碟和磁帶)的二道批處理系統執行情況如下圖所示:
上圖說明:
- 在計算機記憶體同時存放幾道程式(程式A、 B和監督程式(排程和分配)
- 系統各部件(如CPU、IOA、IOB)支援並行工作,在某個時刻各部件可執行不同的程式。
- 多道程式(程式A、 B和監督程式)在某個部件上(如CPU、IOA、IOB)是序列工作。
- 在多道程式中,監督程式(作業系統)是控制中心,程式要使用某個部件(CPU、IOA、IOB),必須由監督程式排程和分配。
(一)、從圖中可看出CPU與I/O A(磁碟)、I/O B(磁帶)裝置可並行工作,而對系統的某個部件如CPU,二個程式A、 B和作業系統(監督程式)都是序列,即交替執行。程式在CPU與I/O裝置間切換,CPU執行哪個程式由監督程式控制,並根據一定的演算法排程,對I/O裝置排程採用非搶佔方式即一旦將該I/O裝置分配給某程序,那就要等該程式I/O完成後再進行分配,而CPU排程可採用二種方式
(二)、圖中開始時程式A、 B都在記憶體中,先執行程式A。當程式A要請求盤輸入時,轉由CPU執行監督程式來啟動盤,啟動成功後I/O A(磁碟)進行程式A盤輸入。
這時CPU空閒,CPU執行監督程式來排程程式 B,接著CPU執行程式B。同時,I/O A(磁碟)進行程式A盤輸入。
程式B執行一段時間後請求帶輸入時,轉由CPU執行監督程式來啟動磁帶,啟動成功後I/O B(磁帶)進行程式B磁帶輸入。
此時I/O A(磁碟)進行程式A盤輸入,I/O B(磁帶)進行程式B磁帶輸入,CPU空操作。CPU空操作到I/O A(磁碟)結束程式A盤輸入,產生中斷。轉由CPU執行監督程式的中斷處理程式處理程式A中斷,處理後排程程式A,接著執行程式A。
在程式A執行時,I/O B(磁帶)結束程式B磁帶輸入,產生中斷。CPU暫停正在CPU上執行的程式A轉而執行監督程式的中斷處理程式處理程式B中斷,處理後根據一定的演算法排程程式A或B,這裡排程程式B,接著執行程式B。
2、分時系統( Time Sharing System)
1)、分時系統原理
目標:分時系統的形成和發展的動力是使用者的需要。使用者希望自己能直接控制程式的執行及時進行人-機互動,以便能方便地修改程式的錯誤。使用者希望一臺計算機能為多臺使用者共享,解決當時(六十年代)計算機昂貴而缺少的矛盾,方便使用者上機。
實現原理:分時系統是指在一臺主機上連線了多個帶有顯示器和鍵盤的終端,它同時允許許多使用者通過終端以互動方式使用計算機共享主機中的資源。所謂分時是指多個使用者分時共享使用同一臺計算機,也就是說把計算機的系統資源(尤其是CPU時間)進行時間上分割,即將整個工作時間分成一個個的時間片,每個時間片分給一個使用者使用,這樣將CPU工作時間分別提供給多個使用者使用,每個使用者依次地輪流使用一個時間片。
2)、分時系統的實現
- 採用調進/調出的單道分時系統
在單道分時系統記憶體中只駐留一道程式,其餘程式都在外存上。每當記憶體中一個程式執行一個時間片後,便調至外存(稱為調出)。再從外存中選一個程式裝入記憶體(稱為調進)並執行一個時間片,依此方法使所有的作業都能在一規定的時間內輪流執行一個時間片,這樣便能使所有的使用者都能與自己的作業互動。在多個作業的輪流執行過程中,每個作業往往可能頻繁地調進調出多次,開銷大,故使系統的效能較差。
- 基於多道程式設計的多道分時系統
由於現代計算機系統採用大容量記憶體並採用記憶體與磁碟對換技術擴充記憶體,現代分時系統引入多道程式設計技術,在記憶體中存放多道作業排成一個佇列,依次輪流地獲得一個時間片來執行。
由於切換作業就在記憶體,不要花費大量時間用於調進調出,故多道分時系統具有較好的系統性能。作業排程演算法也不限於時間片不變,次序不變的簡單輪轉。像UNIX作業系統對系統中各程序採用可搶佔的動態優先順序排程演算法,它也實現了各作業分時共享計算機,但時間片大小和輪轉次序都在變化。
批處理系統和分時系統都是多道程式系統,是屬於處理使用者作業的系統。系統本身沒有要完成的作業,它只是起著管理排程系統資源,向用戶提供服務的作用,這類系統可以說是“通用系統”。
3)、分時系統的特徵
- 多路性:允許在一臺主機上同時聯接多臺聯機終端,系統按分時原則為每個使用者服務。巨集觀上是多個使用者同時工作,共享系統資源,而微觀上則是每個使用者作業輪流執行一個時間片。多路性即同時性,它提高了資源利用率,從而促進了計算機更廣泛的應用。
- 獨立性:每個使用者各佔一個終端,彼此獨立操作,互不干擾。因此使用者會感覺到就象他一人獨佔主機。
- 互動性:使用者可通過終端與系統進行廣泛的人機對話。使用者可以請求系統提供多方面服務,如檔案編輯,資料處理和資源共享等。
- 及時性:使用者的請求能在很短時間內獲得響應,此時間間隔是以人們所能接受的等待時間來確定的,通常為1-2秒。
4)、分時系統的重要指標――響應時間
響應時間是分時系統的重要指標,它是使用者發生終端命令到系統開始作出響應間的時間間隔。系統的響應時間主要是根據使用者所能接受的等待時間確定的。假設分時系統中使用者數為n,每個使用者的執行時間片為q,則系統的響應時間為t=n×q。每個使用者分到的時間片q由二部分組成,用於對換時間S和用於真正處理時間T(處理)。
- t= n × q
- q = S(對換) + T(處理)
- 分時系統中時間片q的選擇是一個複雜和關鍵的任務。如時間片選得過大,造成響應時間不變時使用者數減少,或造成響應時間過長,當時間片過小時,在一個時間片內切換開銷相對增加,一個程序相對要花費更多的時間片才能執行結束,一個程序在系統中的週轉時間大大增長。最佳的時間片值應既能使分時使用者得到好的響應時間,同時又要使在一個時間片內切換開銷相對較小可忽略。
- UNIX系統是典型的分時系統,UNIX系統是一個多使用者,多工作業系統。
3、實時系統( Real-Time Systems )
目標:為了提高系統的響應時間,對隨機發生的外部事件作出及時響應並對其進行處理。
1)、實時系統分類
- 實時控制系統:此類實時控制系統主要用於生產過程的自動控制,實驗資料自動採集,武器的控制、包括火炮自動控制、飛機自動駕駛、導彈的制導系統。
- 實時資訊處理系統:這類系統主要用於實時資訊處理,象飛機訂票系統、情報檢索系統。
2)、實時系統特徵
- 快速的響應時間:實時系統是為了提高系統響應時間而設計的作業系統,特別是實時控制系統,對外部事件的響應要十分及時迅速。實時系統的響應時間則是由控制物件所能接受的時延確定的。外部事件往往以中斷方式通知系統,系統有較強的中斷處理能力,實時系統的設計也以“事件驅動”方式來設計。
- 有限的互動能力:批處理系統和分時系統是“通用系統”,實時系統一般是專用系統,它為專門的應用而設計,系統本身就包含有控制某實時過程和處理實時資訊的專用應用程式。實時系統(如實時資訊處息系統)它能提供人機互動方式,但使用者只能訪問系統中某些特定的專用服務程式,不能象分時系統一般向終端使用者提供多方面服務。
- 高可靠性:批處理系統和分時系統雖也要求系統可靠,相比之下,實時系統則要求系統高度可靠。因此實時系統中往都採用雙機系統,多級容錯措施來保證系統和資料的安全。