作業系統中程序的五種基本狀態及其轉換

2021-09-29 11:31:56 字數 1026 閱讀 8454

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

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

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

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

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

如果程序執行時間片使用完也會進入就緒狀態,或者程序正在執行,但被更高優先順序的程序搶先了,也會由running轉為ready

另外為使用者觀察需要,程序還有掛起和啟用兩種操作。掛起後程序處於靜止狀態程序不再被系統呼叫,對於操作是啟用操作。

在程序排程時,上圖中,標有黃色標註的地方都有可能發生程序排程。

其中,1和4是非搶占式排程。

而2、3、3』是搶占式排程(搶占式排程會保證在任意時刻,占有處理機的程序都是當前程序中優先順序最高的程序)。

程序的五種基本狀態 作業系統

建立狀態 程序在建立時需要申請乙個空白pcb,向其中填寫控制和管理程序的資訊,完成資源分配。如果建立工作無法完成,比如資源無法滿足,就無法被排程執行,把此時程序所處狀態稱為建立狀態 就緒狀態 程序已經準備好,已分配到所需資源,只要分配到cpu就能夠立即執行 執行狀態 程序處於就緒狀態被排程後,程序進...

作業系統中程序的實現

程序控制結構體 pcb 用來管理程序 struct tack struct struct mm struct 用於保留現場 struct thread struct 在linux核心中,將task truct結構體和程序的核心層棧空間融為一體,低位址存放task struct結構體,餘下的存放程序的...

作業系統 程序的狀態及轉換

1.為什麼要分開就緒和阻塞狀態 答 因為就緒態只需要等待處理機,而阻塞態可能在等待輸入輸出,即使分配給處理機也是徒勞,所以兩狀態圖不妥。對於排程程序,只需要等待就緒佇列裡的程序,因為阻塞狀態可以轉換到就緒佇列裡去。2.程序五狀態 1 新狀態 程序已經建立,但未被os接納為可執行程序。還沒有申請到相應...