1. 程式人生 > >程序的狀態以及程序的優先順序

程序的狀態以及程序的優先順序

程序共有5種狀態,即:建立、就緒,執行,阻塞、終止

è¿éåå¾çæè¿°

建立狀態:程序在建立時需要申請一個空白PCB,向其中填寫控制和管理程序的資訊,完成資源分配。如果建立工作無法完成,比如資源無法滿足,就無法被排程執行,把此時程序所處狀態稱為建立狀態

就緒狀態:程序已經準備好,已分配到所需資源,只要分配到CPU就能夠立即執行

執行狀態:程序處於就緒狀態被排程後,程序進入執行狀態

阻塞狀態:正在執行的程序由於某些事件(I/O請求,申請快取區失敗)而暫時無法執行,程序受到阻塞。在滿足請求時進入就緒狀態等待系統呼叫

終止狀態:程序結束,或出現錯誤,或被系統終止,進入終止狀態。無法再執行

每個程序

都有相應的優先順序,優先順序決定它何時執行和接收多少 CPU 時間。最終的優先順序共 32 級,是從 0 31 的數值,稱為基本優先級別(Base Priority Level)

系統按照不同的優先順序排程程序的執行,0-15 級是普通優先順序,程序的優先順序可以動態變化,高優先順序程序優先執行,只有高優先順序程序不執行時,才排程低優先順序程序執行,優先順序相同的程序按照時間片輪流執行。程序的優先值越低,程序的優先順序越高。16-31 級是實時優先順序,實時優先順序與普通優先順序的最大區別在於相同優先順序程序的執行不按照時間片輪轉,而是先執行的程序就先控制 CPU,如果它不主動放棄控制,同級或低優先順序的程序就無法執行