不同型別的程序排程程式
程序排程根據排程演算法處理選擇程序到處理器以及從處理器中移除程序。它是多道程式設計作業系統的關鍵部分。
程序排程中使用許多排程佇列。當程序進入系統時,它們被放入作業佇列。準備在主存中執行的程序儲存在就緒佇列中。等待 I/O 裝置的程序儲存在 I/O 裝置佇列中。
用於程序排程的不同調度程式如下:
長期排程程式
作業排程程式或長期排程程式從輔助儲存器中的儲存池中選擇程序,並將它們載入到主儲存器中的就緒佇列中以供執行。
長期排程程式控制多道程式設計的程度。它必須選擇 I/O 繫結和 CPU 繫結程序的謹慎組合,以產生最佳的系統吞吐量。如果它選擇了太多 CPU 繫結程序,則 I/O 裝置處於空閒狀態;如果它選擇了太多 I/O 繫結程序,則處理器將無事可做。
長期排程程式的工作非常重要,並且會長期直接影響系統。
短期排程程式
短期排程程式從就緒佇列中選擇一個程序並將其安排執行。排程演算法用於決定接下來哪個程序將被安排執行。
短期排程程式的執行頻率遠高於長期排程程式,因為程序可能只執行幾毫秒。
短期排程程式的選擇非常重要。如果它選擇了一個具有較長突發時間的程序,那麼之後的所有程序都將不得不等待很長時間才能進入就緒佇列。這被稱為飢餓,如果短期排程程式做出了錯誤的決定,則可能會發生這種情況。
演示長期和短期排程程式的圖表如下:
中期排程程式
中期排程程式將程序從主存中交換出去。它可以稍後從程序停止執行的位置再次交換入該程序。這也可以稱為掛起和恢復程序。
這有助於降低多道程式設計的程度。交換也有助於改善記憶體中 I/O 繫結和 CPU 繫結程序的混合。
演示中期排程的圖表如下:
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP