作業系統最重要的一點是要有多道程式處理能力。單個使用者通常不能總是使用CPU和I/O裝置都忙。
一、多道程式設計
多道程式設計通過組織作業使CPU總有一個作業可執行,從而提高CPU的利用率。
它的思想如下:作業系統同時將多個任務儲存在記憶體中,該作業集可以是作業池中作業集的子集(作業池中包括所有進入系統的作業)。作業系統選擇一個位於記憶體中的作業並開始執行。最終,該作業可能必須等待另一個任務如I/O操作的完成,這時對於非多道程式系統,CPU就會空閑;而對於多道程式系統,CPU會簡單地切換到另一個作業並執行。當該作業需要等待時,CPU會切換到另一個作業。最後,第一個作業完成等待並且重新獲得CPU。只要有一個任務可以執行,CPU就絕不會空閑。
缺點:多道程式系統提供了一個可以充分使用各種系統資源的環境。但是它們沒有提供與電腦系統直接互動的能力。
二、分時系統
分時系統是多道程式設計的延伸。在分時系統中,雖然CPU還是通過在作業之間的切換來執行多個作業,但是由於切換頻率很高,使用者可以在程式運行期間與之進行互動。
共用需要一種互動電腦系統,它能提供使用者與系統之間的通訊。使用者通過輸入裝置,如鍵盤或滑鼠,向作業系統或程式直接發出指令,並等待輸出裝置的即時性輸出結果。相應地,回應時間應該比較短,通常小於1s。
分時系統允許許多使用者同時共用電腦。由於分時系統的每個動作或者命令都比較短,因而每個使用者只要少量的CPU時間。隨著系統從一個使用者快速切換到另一個使用者,每個使用者會感到整個系統只為自己所用。
分時系統採用CPU調度和多道程式設計以提供給每個使用者一個分時電腦的一小部分。每個使用者在記憶體中至少有一個程式。裝入到記憶體並執行的程式通常稱為進程。當進程執行時,它通常只執行較短的一段時間,此時它並完成或者需要進行I/O操作,I/O可能是互動的,但是由於互動I/O通常按人的速度來運行,因此它需要很長時間完成,但是這對電腦來說相當慢了。在使用者互動輸入時,作業系統為了不讓CPU空閑,會將CPU切換到其他使用者的程式。
三、作業調度
分時和多道程式設計需要在儲存空間中同時儲存有幾個作業。通常由於主存太小而不能容納太多作業,因此這些作業剛開開始儲存在磁碟的作業池(job pool)中。該池由所有駐留在磁碟中需要等待分配記憶體的工作群組成。如果多個作業需要調入記憶體但沒有足夠的記憶體,那麼系統必須在這些作業中做出選擇,這樣的決策被稱為作業調度。
四、CPU調度
如果有多個任務同時需要執行,那麼系統必須要做出選擇,這樣的選擇稱為CPU調度。
五、虛擬記憶體
在分時作業系統中,作業系統必須保證合理的回應時間,這有時需要通過交換來得到。交換時進程被換入記憶體或者由記憶體換出到磁碟。實現這一目的更常用方法是使用虛擬記憶體(virtual memory),虛擬記憶體允許將一個執行的作業不完全放在記憶體中。
優點:程式可以比實體記憶體大,其次,它將記憶體抽象成一個龐大且統一的儲存數組,將使用者所理解的邏輯記憶體與真正的實體記憶體區分開來。這種安排使得程式不必為記憶體空間的限制而擔心。
六、檔案系統
分時系統也必須提供檔案系統。檔案系統駐留在一組磁碟上,因此必須提供磁碟管理。另外,分時系統需提供一種資源以防止不當使用的機制。為了確保有序執行,系統必須提供實現作業同步和通訊的機制,它也確保作業不會進入死結,進而無盡地相互等待。