進程控制塊PCB簡介

發表時間:2020-09-24 09:24:47 人氣:563

進程控制塊(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的時間等。


此文關鍵字: pcb行業