1. 程式人生 > >程序控制塊(PCB)的結構

程序控制塊(PCB)的結構

程序控制塊 PCB (Process Control Block):

存放程序的管理和控制資訊的資料結構稱為程序控制塊。它是程序管理和控制的最重要的資料結構,每一個程序均有一個PCB,在建立程序時,建立PCB,伴隨程序執行的全過程,直到程序撤消而撤消。

在不同的作業系統中對程序的控制和管理機制不同,PCB中的資訊多少也不一樣,通常PCB應包含如下一些資訊。

1、程序識別符號 name:

  每個程序都必須有一個唯一的識別符號,可以是字串,也可以是一個數字,UNIX系統中就是一個整型數,在程序建立時由系統賦予。

2、程序當前狀態 status:

       說明程序當前所處的狀態。為了管理的方便,系統設計時會將相同的狀態的程序組成一個佇列,如就緒程序佇列,等待程序則要根據等待的事件組成

多個等待佇列,如等待印表機佇列、等待磁碟I/O完成佇列等等。

3、程序相應的程式和資料地址,以便把PCB與其程式和資料聯絡起來。

4、程序資源清單。列出所擁有的除CPU外的資源記錄,如擁有的I/O裝置,開啟的檔案列表等。

5、程序優先順序 priority:

       程序的優先順序反映程序的緊迫程式,通常由使用者指定和系統設定。UNIX系統採用使用者設定和系統計算相結合的方式確定程序的優先順序 。

6、CPU現場保護區 cpustatus:

       當程序因某種原因不能繼續佔用CPU時(等待印表機),釋放CPU,這時就要將CPU的各種狀態資訊保護起來,為將來再次得到處理機恢復CPU的各種狀態,繼續執行。

7、程序同步與通訊機制,用於實現程序間互斥、同步和通訊所需的訊號量等。

8、程序所在佇列PCB的連結字,根據程序所處的現行狀態,程序相應的PCB參加到不同佇列中。PCB連結字指出該程序所在佇列中下一個程序PCB的首地址。

9、與程序有關的其他資訊。 如程序記賬資訊,程序佔用CPU的時間等。