進程管理(七)-進程狀態與轉換


進程管理(七)-進程狀態與轉換

進程的狀態

一個進程的生命期可以划分為一組狀態,這些狀態刻划了整個進程。系統根據PCB 結構中的狀態值控制進程。

在進程的生命期內,一個進程至少具有三種基本狀態:執行狀態、等待狀態和就緒狀態。

執行狀態

單CPU系統中,任一時刻處於執行狀態的進程只能有一個。

就緒狀態

就緒狀態的進程已經得到除 CPU之外的其他資源,只要經由調度得到處理機,便可立即投入執行。

有些系統為了有效利用內存,就緒狀態進一步分為內存就緒狀態和外存就緒狀態。但是這也增加了系統開銷和系統復雜性。

內存就緒狀態

只有處於內存就緒狀態的進程在得到處理機后才能立即投入執行

外存就緒狀態

處於外存就緒狀態的進程只有先成為內存就緒狀態后,才可能被調度執行

阻塞狀態

進程因等待某個事件發生而放棄處理機進入等待(阻塞)狀態。

阻塞狀態按照條件划分

等待狀態可根據等待事件的種類進一步划分為不同的子狀態,例如內存等待、設備等待、文件等待和數據等待等。

好處:
這樣做的好處是系統控制簡單,發現和喚醒相應的進程較為容易。

壞處:
但系統中設置過多的狀態會造成系統參數和狀態轉換過程的增加。

進程的狀態轉換

轉換條件

1.進程狀態反映進程執行過程的變化。
2.這些狀態隨着進程的執行和外界條件發生變化和轉換。
3.進程的狀態轉換除了要使用不同的控制過程,有時還要借助於硬件觸發器才能完成。

掛起操作

什么是掛起操作

進程暫時被淘汰出內存

引入原因

1.終端用戶的需要
2.父進程請求
3.負荷調節需要
4.操作系統需要,引入進程“掛起”操作(進程暫時被淘汰出內存)

掛起過程可能發生狀態轉換

1.活動就緒→靜止就緒
2.活動阻塞→靜止阻塞
3.靜止就緒→活動就緒
4.靜止阻塞→活動阻塞。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM