天天看點

程序與線程-1、程序狀态+PCB

參考哈工大李治軍老師公開課。

程序:就是正在被計算機執行的程式,比如word,ppt等,都是一個程序。

計算機系統在某一個時刻,當隻有一個CPU工作時,它隻執行一個程序,但是使用者在使用計算機時回打開多個進行,這樣就涉及到了程序的不同狀态。程序可以被分為5個狀态,分别是:建立态、就緒态、運作态、終止态、阻塞态。他們之間的轉換關系如下圖所示:

程式與線程-1、程式狀态+PCB

圖一:程序狀态的轉換關系

對于每一個程序,作業系統都使用一個特定的程序控制塊(PCB)來表示,它包含了許多與一個特定程序相關的資訊,例子如下:

程式與線程-1、程式狀态+PCB

圖二:程序控制塊(PCB)

在PCB中,一般包括如下資訊:

1、 程序的狀态:狀态科包括建立态、就緒态、運作态、終止态、阻塞态。

2、 程式計數器:用于記錄程序要執行的下一條指令的位址。

3、 CPU寄存器這些資訊CPU寄存器包括累加器,索引寄存器,堆棧指針,通用寄存器和其他一些條件碼資訊寄存器。這些資訊描述了程式執行的狀态,與程式計數器一起儲存,以便程序以後的正确執行。

4、 CPU排程資訊:這類資訊包括程序的優先級,排程隊列的指針和其他排程參數,為作業系統管理程序并進行排程提供支援。

5、 記憶體管理資訊:根據作業系統對記憶體的使用情況,記錄下基址,界限寄存器,頁表、段表等資訊。

6、 記賬資訊:包括CPU時間,實際使用時間,時間界限,使用資料,記賬資料,作業和程序數量等。

7、 I/O狀态資訊包括配置設定給程序的I/O裝置表,打開的檔案清單等。