程序狀態和佇列的型別有哪些?
讓我們首先了解程序狀態的型別。
程序狀態型別
程序狀態有以下幾種型別:
新建 - 程序即將在此狀態下建立,但尚未建立,它是存在於輔助儲存器中的程式,將由作業系統選擇來建立程序。
就緒 - 程序在建立後進入就緒狀態,這意味著程序已載入到主記憶體中。
執行 - 程序被 CPU 選擇用於執行指令和程序內的執行,並且它們由任何一個可用的 CPU 核心執行。
等待 - 每當程序請求訪問 I/O 或需要使用者的輸入或需要訪問臨界區時,它就會進入阻塞或等待狀態。
終止 - 程序被終止,並且 PCB(程序控制塊)被刪除。
掛起就緒 - 最初處於就緒狀態的程序,如果此時有許多程序進入就緒狀態,則主記憶體資源可用性較低,因此一些程序將被掛起並移動到輔助儲存器,即掛起就緒狀態。
掛起等待或掛起阻塞 - 與掛起就緒類似,但使用的是正在執行 I/O 操作的程序,並且由於主記憶體不足導致它們移動到輔助儲存器。工作完成後,它可能會進入掛起就緒狀態。
因此,在程序執行中使用到的所有狀態如下所示:
佇列型別
現在讓我們學習程序排程中三種類型的佇列。
作業佇列 - 用於儲存系統中的所有程序。它包含駐留在海量儲存/輔助儲存器上並等待主記憶體分配的程序列表。當程序駐留在作業佇列中時,程序的狀態為新建狀態。
就緒佇列 - 它是所有已準備好並等待在核心/CPU 上排程的程序的佇列。當程序駐留在就緒佇列中時,程序的狀態為就緒狀態。
裝置佇列 - 由於 I/O 裝置不可用而被阻塞的程序構成此佇列。因此,此佇列包含所有被阻塞的程序,並等待 I/O。當程序駐留在裝置佇列中時,程序的狀態為阻塞狀態或等待狀態。
佇列型別在下圖中給出:
廣告