2.1.2進程的狀態與轉換


進程的狀態與轉換

image-20210916181914789

一、進程的狀態--三種基本狀態

​ 進程是程序的一次執行。在這個執行過程中,有時進程正在被CPU處理,有時又需要等待CPU服務,可見,進程的狀態是會有各種變化。為了方便對各個進程的管理,操作系統需要將進程合理地划分為幾種狀態。

image-20210916182114238

​ 注意:單核處理機環境下,每一時刻最多只有一個進程處於運行態。(雙核環境下可以同時有兩個進程處於運行態)

​ 就緒態:進程己經擁有了除處理機之外所有需要的資源,一旦獲得處理機,即可立即進入運行態開始運行。即:萬事俱備,只欠CPU

​ 阻塞態:如:等待操作系統分配打印機、等待讀磁盤操作的結果。CPU是計算機中最昂貴的部件,為了提高CPU的利用率,需要先將其他進程需要的資源。分配到位,才能得到CPU的服務


另外兩種狀態

​ 操作系統需要完成創建進程。操作系統為該進程分配所需的內存空間等系統資源,並為其創建、初始化PCB(如:為進程分配PID)

​ 進程運行結束(或者由於bug導致進程無法繼續執行下去,比如數組越界錯誤),需要撤銷進程。

​ 操作系統需要完成撤銷進程相關的工作。完成將分配給進程的資源回收,撤銷進程PCB等工作。

image-20210916182638228



進程狀態的轉換

image-20210916182918660

注意:不能由阻塞態直接轉換為運行態,也不能由就緒態直接轉換為阻塞態(因為進入阻塞態是進程主動請求的,必然需要進程在運行時才能發出這種請求)

​ 運行態→終止態:進程運行結束,運行過程中遇到不可修復的錯誤



image-20210916183223610


免責聲明!

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



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