程序是乙個動態的實體,所以它是有生命的,從建立到消亡,是乙個程序的整個生命週期。一般有三個狀態
1.就緒態 : 程序已經獲得所需的其他資源,正在申請處理器資源,準備開始執行,這種情況下,稱程序處於就緒態
2.阻塞態(休眠態或者等待態) 程序需要等待所需資源而放棄處理器,或者是程序不擁有處理器而且其他資源也沒有滿足,從而即使得到處理器也不能執行的狀態
3.執行態 程序得到了處理器,並不需要等待其他任何資源,正在執行的狀態,稱之為執行態,只有在執行態時,程序才可以使用所申請的資源
linux系統中,將各種狀態進行了重新組織,得到了5種狀態
(1)running :正在執行或者在就緒佇列中等待執行的程序,也就是上面提到的執行態和就緒態的綜合,乙個程序處於running並不代表他一定在被執行,由於在多工系統中,各個就緒程序需要併發執行,所以某個特定時刻,這些處於running狀態的程序中,只有乙個能得到處理器,而其他程序必須有乙個就緒佇列中等待,即使在多處理器的系統中,linux只能同時讓乙個處理器執行任務
(2)uninterruptable:不可中斷阻塞狀態,處於這種狀態的程序正在等待佇列中,當資源有效時,可以由作業系統喚醒,否則一直處於等待狀態
(3)interruptable:可中斷阻塞狀態,與不可中斷阻塞狀態一樣,處於這種狀態的程序在等待佇列中,當資源有效時,可以由作業系統進行喚醒,與不可中斷阻塞狀態區別是:處於此狀態中的程序也可以被其他程序所喚醒
(4)stopped:掛起狀態,程序被暫停,需要通過其它程序的訊號才能被喚醒,導致這種狀態的原因有兩個 1.受到相關訊號的反應 2.受到父程序ptrace呼叫的控制,而暫時將處理器交給控制程序
(5)zombie:殭屍狀態。表示程序結束但尚未消亡的一種狀態,此時程序已經結束執行並釋放掉大部分資源,但尚未釋放程序控制塊
程序的狀態
三態模型 在多道程式系統中,程序在處理器上交替執行,狀態也不斷地發生變化。程序一般有3種基本狀態 執行 就緒和阻塞。1 執行 當乙個程序在處理機上執行時,則稱該程序處於執行狀態。處於此狀態的程序的數目小於等於處理器的數目,對於單處理機系統,處於執行狀態的程序只有乙個。在沒有其他程序可以執行時 如所有...
程序的狀態
執行狀態 當乙個程序在處理機上執行時,則該程序處於執行狀態。處於次狀態的程序的數目小於等於處理器的數目,在單處理系統中,處於執行態的程序只有乙個。就緒狀態 當乙個程序獲得了除cpu以外的任何資源,一旦獲得cpu,便可立即執行,則該程序處於就緒狀態。乙個系統中處於就緒狀態的程序可能有多個,通常它們按優...
程序的狀態
為了弄清楚正在執行的程序是什麼意思,我們需要知道程序的不同的狀態。乙個程序可以有 7個狀態 在linux核心中,程序有時也叫作任務 下面的狀態在fs proc array.c檔案中定義 執行狀態 running 並不意味著程序一定在執行中,它表明程序要麼是在執行中要麼在執行佇列裡。睡眠狀態 slee...