什麼是多道程式作業系統?
多道程式作業系統 (Multiprogramming OS) 是一種作業系統的能力,它可以使用單處理器機器執行多個程式。
在同一時間點,主記憶體中存在多個任務、程式或作業。
緩衝和卷繞可以重疊 I/O 和 CPU 任務以提高系統性能,但它也有一些限制,即單個使用者不能始終讓 CPU 或 I/O 保持忙碌狀態。
為了提高資源利用率,採用了多道程式設計方法。
| 作業系統 |
| 作業1 |
| 作業2 |
| --- |
| 作業N |
| 空閒空間 |
作業系統可以選擇並開始執行記憶體中的一個作業,當作業不需要 CPU 時(這意味著作業正在進行 I/O 操作),CPU 在此時處於空閒狀態,作業系統切換到記憶體中的另一個作業,CPU 執行該作業的一部分,直到作業發出 I/O 請求,依此類推。
假設 P1 和 P2 是主記憶體中的兩個程式。作業系統選擇一個程式並開始執行它。
如果在執行過程中 P1 程式需要 I/O 操作,則作業系統將簡單地切換到 P2 程式。如果 p2 程式需要 I/O,則再次切換到 P3,依此類推。
如果在 P3 之後沒有其他程式剩餘,則 CPU 將把控制權返回給之前的程式。
優點
多道程式作業系統的優點如下:
CPU 利用率高,因為 CPU 永遠不會進入空閒狀態。
記憶體利用率高。
CPU 吞吐量高,並且支援多個互動式使用者終端。
缺點
多道程式作業系統的缺點如下:
CPU 排程是必須的,因為許多作業同時準備在 CPU 上執行。
作業執行時,使用者無法與之互動。
程式設計師也無法修改正在執行的程式。
如果主記憶體中有多個作業準備就緒,而空間不足以容納所有作業,則系統必須透過決策來選擇它們,此過程稱為作業排程。
當作業系統從作業組中選擇一個作業並將其載入到記憶體中以進行執行時,因此它需要記憶體管理;如果有多個這樣的作業準備就緒,則需要 CPU 排程。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP