1. 程式人生 > >程序狀態與各狀態間的切換

程序狀態與各狀態間的切換

程序的狀態簡單分為ready, running, wait。(就緒,執行,等待)

當程序在cpu上執行時,程序處於執行狀態,程序獲取所有必要資源,只剩下等待cpu去排程時,程序處於就緒狀態,一個執行中的程序有時會需要等待某個事件,此時會有執行狀態變換成阻塞狀態,例如I/O請求。當等待的事件發生後,狀態切換為就緒狀態。

程序狀態細分時,加入了兩個狀態,create,和stop(這個詞不知道用的對不對)。

程序被建立的過程,首先是建立PCB(程序控制塊)的必要資訊,然後讓該程序進入就緒狀態。

終止狀態表示程序要結束執行,首先系統對程序做相關處理,然後釋放掉相應記憶體。

如果程序不斷的被建立,或者說系統資源不能夠分配給所有的程序,就需要將某些程序掛起,暫時不參加排程,來維持系統平衡。

活躍就緒表示程序在主存上,一切準備就緒,等待被系統排程。

靜止就緒表示程序被兌換到輔存時的就緒狀態,一旦主存沒有了活躍程序,或者輔存程序有高優先順序,輔存程序就會調回到主存,而且狀態切換為活躍就緒。

活躍阻塞,類似阻塞狀態,等待某個事件發生,發生後進入活躍就緒狀態。

靜止阻塞,輔存程序等待某個事件發生,發生後進入靜止就緒狀態。