Linux程序的三態及其之間的相互轉換

2021-07-23 09:24:31 字數 607 閱讀 7947

linux程序在執行中不斷改變其執行狀態,而執行的程序有三個基本狀態。

1、就緒狀態:當程序已分配到除cpu以外所有必要的資源,只要獲得處理器便可立即執行。

2、執行狀態:當程序已獲得處理器,其程式正在處理器上執行。

3、阻塞狀態:正在執行的程序,由於等待某個事件發生而無法執行時,便放棄處理機而處於阻塞狀態,而引起程序阻塞的事件可能有很多種,如等待i/o完成,申請緩衝區不能滿足、等待訊號等。

而乙個程序在執行期間,會不斷地從乙個狀態轉換到另乙個狀態。於是便有了程序的三種基本狀態間的相互轉換,如下示意圖:

1)就緒->執行:處於就緒狀態的程序,當程序排程程式為之分配了處理器後,該程序便由就緒狀態轉變為執行狀態。

2)執行->就緒:處於執行狀態的程序在其執行程序中,因分配給它的乙個時間片已用完而不得不讓處理器,於是程序從執行狀態轉換成就緒狀態。

3)執行->阻塞:正在執行的程序因等待某種事件發生而無法繼續執行時,便從執行狀態變成阻塞狀態。

4)阻塞->就緒:處於阻塞狀態的程序,若其等待的事件已經發生,於是程序由阻塞狀態轉變為就緒狀態。

程序的三態模型

程序一般有3種基本狀態 執行 就緒和阻塞。1 執行 當乙個程序在處理機上執行時,則稱該程序處於執行狀態。處於此狀態的程序的數目小於等於處理器的數目,對於單處理機系統,處於執行狀態的程序只有乙個。在沒有其他程序可以執行時 如所有程序都在阻塞狀態 通常會自動執行系統的空閒程序。2 就緒 當乙個程序獲得了...

三態門(三態緩衝器)的工作原理

於 為減少資訊傳輸線的數目,大多數計算機中的資訊傳輸線均採用匯流排形式,即凡要傳輸的同類資訊都走同一組傳輸線,且資訊是分時傳送的。在計算機中一般有三組匯流排,即資料匯流排 位址匯流排和控制匯流排。為防止資訊相互干擾,要求凡掛在匯流排上的暫存器或儲存器等,它的傳輸端不僅能呈現0 1兩個資訊狀態,而且還...

認識MCU的GPIO輸出三態

數位電路有三種狀態 高電平 低電平 和高阻狀態,有些應用場合不希望出現高阻狀態,可以通過上拉電阻或下拉電阻的方式使處於穩定狀態,具體視設計要求而定 上拉就是將不確定的訊號通過乙個電阻嵌位在高電平!電阻同時起限流作用 下拉同理!高電平,低電平可以由內部電路拉高和拉低。而高阻態時引腳對地電阻無窮,此時讀...