標籤:style color 資料 2014 工作 問題
時間:2014.05.28
地點:基地
-------------------------------------------------------------------------------
一、進程的三種基本狀態
進程的三種基本狀態包括:就緒狀態,執行狀態,阻塞狀態
1.就緒狀態
當進程分配得到除CPU之外的所有必要資源後,只要再獲得CPU就可以立即執行了,萬事俱備只欠東風而已。該狀態即就緒狀態,一個系統中處於就緒狀態的進程可能有很多,將他們排成一個隊列,形成一個就緒隊列。
2.執行狀態
正如上面所說,進程一旦獲得CPU就可以執行,正在執行的進程處於就緒狀態。單處理機只有一個進程處於執行狀態,多處理機則可以有多個。
3.阻塞狀態
某個正在執行的進程由於發生某事件而暫時無法繼續執行時,便放棄處理機處於暫停狀態,即進程的執行受阻塞,該狀態為阻塞狀態,等待狀態或封鎖狀態都可以。導致這樣的迫使進程由執行狀態轉為阻塞狀態的事件通常有:I/O請求、申請緩衝空間等。處於阻塞狀態的進程可能也有好多,將它們也排成一個隊列,或者根據阻塞原因的不同還可排成多個隊列。
-------------------------------------------------------------------------------
二、進程三種基本狀態的之間的切換 2.1就緒-執行
處於就緒狀態的進程,當進程發送器按一種選定的策略選中一個就緒狀態的進程,為它分配處理機後進程便可執行,狀態轉為執行狀態。 【就緒狀態——(進程調度)——執行狀態】。
2.2執行-就緒正在執行的當前進程,如果因為分配給它的時間片已用完而被暫停執行,則該進程由執行狀態又切換回就緒狀態。 【執行狀態——(時間片用完)——就緒狀態】
2.3執行-阻塞正雜執行的當前進程,如果因為某等待事件(I/O請求等待外部裝置的資訊傳輸,申請緩衝,訪問臨界資源等從而進行資源等待)發生而迫使進程執行受阻而無法繼續執行,則轉為阻塞狀態。 【執行狀態——(等待事件發生)——阻塞狀態】2.4阻塞-就緒
處於阻塞狀態的進程,再等待的事件已完成,比如輸入輸出完成、資源得到滿足,處於阻塞狀態的進程並不馬上轉入執行狀態,而是切換到就緒狀態,等待系統發送器在合適的時候對進程進行調度再轉換為執行狀態。 【阻塞狀態——(等待事件完成)——就緒狀態】
-------------------------------------------------------------------------------
三、掛起狀態
掛起狀態相當是一個修飾符,可將就緒狀態分為活動就緒狀態和靜止就緒狀態,還可將阻塞狀態分為活動阻塞和靜止阻塞。
3.1引入掛起狀態的原因
1.終端使用者的請求。
當終端使用者在程式運行期間發現可疑問題時,希望暫時使自己的程式靜下來,使正在執行的進程暫停執行。此時若進程處於就緒狀態而未執行則程式暫時不接受調度,以便使用者考查執行情況對程式進行修改。
2.父進程的請求
有時父進程也希望掛起某個子進程,希望子進程靜下來,以便考查和修改子進程或者協調各子進程的活動
3.負荷調節的需要
當即時系統中的工作負載較重,可能影響到即時任務的控制時,也可
4.作業系統的需要
-------------------------------------------------------------------------------
四、建立狀態和終止狀態4.1建立狀態
建立進程的兩個步驟:
1.為一個新進程建立PCB,並填寫必要的管理資訊(比如進程標識等)
2.把進程轉入就緒狀態並插入就緒隊列之中
處於建立狀態的進程由於所必須的資源或其他資訊比如主存資源還未被分配等,此時進程只是有了自己的PCB,但進程本身還沒有進入主存,所以進程還不能被調用運行,這個階段進程所處的狀態即建立狀態。建立狀態的進程,獲得了其所必須的資源以及PCB初始化工作完成後,便可轉入就緒狀態。其中噹噹前系統的效能和記憶體的容量均允許的情況下,建立狀態的進程將轉換為活動就緒狀態,若是當前系統資源緊張效能不足,無法給建立狀態的進程分配所需的資源,此時進程轉為靜止就緒狀態。
4.2終止狀態
進程終止的兩個步驟:
1.等待作業系統進行善後處理
2.將PCB清零,並將PCB返回給作業系統
進程終止的條件:a.進程達到了自然結束點 b.進程運行出現了無法剋制的錯誤 c.進程被作業系統終結 d.進程被其他有終止權的進程終結
進程進入終止狀態後停止執行,這樣我們知道只有正在執行的進程才會轉為終止狀態,【執行——(釋放)——終止】,轉入終止狀態的進程,作業系統依然保留了一個記錄,其中儲存有狀態代碼和一些計時統計資料,供其它進程收集,當其它進程完成了對終止狀態進程的這些資訊提取之後,作業系統便刪除該進程。