Linux 程序控制塊PCB

2021-08-19 02:37:50 字數 2182 閱讀 3899

想要有順序地學習linux,入口在這裡哦:linux:目錄索引

學了作業系統後,我們都知道作業系統要想管理乙個物件,它不是直接進行管理的,而是通過得到被管理者的一些有效資訊加以管理的,因此在這裡我們也可以這樣理解,作業系統管理程序,實則是將程序的有效資訊提取出來然後通過管理這些資訊來管理程序,而所有的程序資訊被存放在乙個叫做程序控制塊的資料結構中(可以理解為程序屬性的集合),這也就是即將要介紹的程序控制塊(pcb).

pcb(process control block),程序控制塊,它用於管理系統的程序

一般情況下,pcb中包含4個部分

1.程序標識資訊

2.處理機狀態

3.程序排程資訊

4.程序控制資訊

詳細如下圖:

程序標識資訊用於唯一地標識乙個程序,乙個程序通常有兩種識別符號:內部標誌符&外部識別符號。

內部標誌符: 由作業系統賦予每個程序的乙個唯一的數字識別符號,它通常為乙個程序的序號,方便了系統使用。

外部識別符號: 由建立者產生,是由字母和數字組成的字串,為使用者程序訪問該程序提供方便。

為了描述程序間的家族關係,通常還設有父程序標識和子程序標識,以表示程序間的家族關係。

此外,還設有使用者名稱或使用者標識號表示該程序屬於哪個使用者。

處理機狀態資訊主要由處理機的各個暫存器內的資訊組成。 程序執行時的許多資訊均存放在處理機的各種暫存器中。其中程式狀態字(psw)是相當重要的,處理機根據程式狀態暫存器中的psw來控制程式的執行。

pcb中還存放著一些與程序排程有關的資訊。

程序狀態:標識程序的當前狀態(就緒、執行、阻塞),作為程序排程的依據。

程序優先順序:表示程序獲得處理機的優先程度。

為程序排程演算法提供依據的其他資訊:例如,程序等待時間、程序已經獲得處理器的總時間和程序占用記憶體的時間等。

事件:是指程序由某一狀態轉變為另一狀態所等待發生的事件。(比如等待i/o釋放)

程式和資料位址:是指組成程序的程式和資料所在記憶體或外存中的首位址,以便在排程該程序時能從其pcb中找到相應的程式和資料。

程序同步和通訊機制:指實現程序同步和通訊時所採取的機制,如訊息佇列指標和訊號量等,他們可以全部或部分存在pcb中。

資源清單:列出了程序所需的全部資源 及 已經分配給該程序的資源,但不包括cpu.

鏈結指標:它給出了處於同一佇列中的下乙個pcb的首位址。

識別符號:與程序相關的唯一識別符號,用來區別正在執行的程序和其他程序。

狀態:描述程序的狀態,因為程序有掛起,阻塞,執行等好幾個狀態,所以都有個識別符號來記錄程序的執行狀態。

優先順序:如果有好幾個程序正在執行,就涉及到程序被執行的先後順序的問題,這和程序優先順序這個識別符號有關。

程式計數器:程式中即將被執行的下一條指令的位址。

記憶體指標:程式**和程序相關資料的指標。

上下文資料:程序執行時處理器的暫存器中的資料。

i/o狀態資訊:包括顯示的i/o請求,分配給程序的i/o裝置和被程序使用的檔案列表等。

記賬資訊:包括處理器的時間總和,記賬號等等。

程序控制塊(PCB)

為了描述和控制程序的執行,系統為每乙個程序定義了乙個資料結構 程序控制塊。它是程序實體的一部分,是作業系統中最重要的記錄型資料結構。或者說,os是根據pcb來對併發程式的程序進行控制和管理的。總而言之,pcb是程序存在的唯一標誌。程序控制塊中的資訊包括程序識別符號 處理機狀態 程序排程資訊 程序控制...

程序控制塊 PCB

程序控制塊是作業系統中最重要的資料結構,每個程序控制塊包含了作業系統在排程 資源分配 中斷處理 效能監控和分析所需的關於程序的所有資訊。程序控制塊資訊可以分為三類 程序標識資訊 處理器狀態資訊 程序控制資訊。程序識別符號主要包括 當前程序的識別符號 process id,pid 建立這個程序的父程序...

程序控制塊 PCB

程序控制塊 pcb 是系統為了管理程序設定的乙個專門的資料結構。系統用它來記錄程序的外部特徵,描述程序的運動變化過程。同時,系統可以利用pcb來管理和控制程序,所以說,pcb是系統感知程序存在的唯一標識。linux系統下的pcb包含了很多引數,每個pcb約佔1kb的記憶體空間大小。主要包含的內容 1...