程序管理
程序是一個正在執行的程式,即正在執行的程式。它包含程式程式碼、程式計數器、程序堆疊、暫存器等。
程序狀態
程序在其執行期間所處的不同狀態,如下所示:
- 新建 - 程序在建立後處於新建狀態。
- 就緒 - 程序正在等待由短期排程程式分配處理器。
- 執行 - 程序指令正在由處理器執行。
- 等待 - 程序正在等待某些事件發生,例如 I/O。
- 終止 - 程序已完成執行。
程序控制塊
每個程序都與一個程序控制塊相關聯。它包含有關該特定程序的重要詳細資訊,如下所示:
- 程序狀態 - 指定程序狀態,即新建、就緒、執行、等待或終止。
- 程序號 - 顯示特定程序的編號。
- 程式計數器 - 包含需要在程序中執行的下一條指令的地址。
- 暫存器 - 指定程序使用的暫存器。它們可能包括累加器、索引暫存器、堆疊指標、通用暫存器等。
- 檔案列表 - 這些是與程序相關的不同檔案。
程序排程
許多排程佇列用於處理程序。當程序進入系統時,它們被放入作業佇列。準備在主記憶體中執行的程序儲存在就緒佇列中。等待 I/O 裝置的程序儲存在裝置佇列中。
用於程序排程的不同調度程式是
長期排程程式
作業排程程式或長期排程程式從儲存池中選擇程序並將其載入到記憶體中以進行執行。作業排程程式必須選擇 I/O 繫結和 CPU 繫結程序的仔細混合,以產生最佳的系統吞吐量。如果它選擇過多的 CPU 繫結程序,則 I/O 裝置空閒;如果它選擇過多的 I/O 繫結程序,則處理器無事可做。
短期排程程式
短期排程程式從就緒佇列中選擇一個程序並安排其執行。短期排程程式比長期排程程式執行得頻繁得多,因為程序可能只執行幾毫秒。
中期排程程式
中期排程程式將程序從主記憶體中交換出去。它以後可以從停止執行的點再次調入程序。這有助於減少多道程式設計的程度。交換也有助於改進記憶體中 I/O 繫結和 CPU 繫結程序的組合。
上下文切換
從 CPU 中移除一個程序並排程另一個程序需要儲存舊程序的狀態並載入新程序的狀態。這稱為上下文切換。程序的上下文儲存在程序控制塊 (PCB) 中,幷包含程序暫存器資訊、程序狀態和記憶體資訊。
排程程式負責上下文切換。它儲存舊程序的上下文,並將 CPU 的控制權交給短期排程程式選擇的程序。
廣告