OS筆記 7 程序控制塊PCB詳解

2021-10-09 05:50:34 字數 1511 閱讀 8942

pcb是用以記錄與程序相關資訊的主存區,是程序存在的唯一標誌。

1. 程序識別符號

作用:用於唯一地標識乙個程序

• 程序本身:外標識、內部標識

• 家族資訊:父程序、子程序資訊

2. 處理機狀態

處理機狀態資訊也稱為處理機的上下文(context),主要是由處理機的各種暫存器中的內容組成的。

也就是中斷現場的保留區,當程序被切換時,處理機狀態資訊必須都儲存在相應的pcb中,以便該程序在重新執行時能再從斷點繼續執行。

3. 程序排程資訊

在os進行排程時,必須了解程序的狀態以及有關程序排程的資訊。這些資訊包括:

① 程序狀態

就緒、執行、阻塞等,是程序排程和對換的依據

② 程序優先順序

是分配cpu的重要依據

③ 其它資訊

比如程序已等待cpu的時間總和、已執行的時間總和等

④ 事件

指的是阻塞原因(即程式由執行狀態變為阻塞狀態的原因)

4. 程序控制資訊

① 程式和資料的首位址

排程到該程序的時候,可以找到其程式和資料

② 程序同步和通訊機制

如訊息佇列指標、訊號量等,以後的程序同步中會學到

③ 資源清單

列出了該程序在執行期間所需的全部資源(cpu除外),另外還有一張該程序已分配的資源清單

④ 鏈結指標

1. 線性方式

系統中所有pcb都組織在一張線性表中,表的首位址存放在記憶體專用區

優點:實現簡單、開銷小

缺點:每次查詢時都要掃瞄一整張表,因此適合程序數目不多的系統

2. 鏈結方式

具有相同狀態程序的pcb分別通過pcb中的鏈結字鏈結成乙個佇列

3. 索引方式

系統根據所有程序狀態的不同,建立幾張索引表,並把索引表的首位址記錄在記憶體的專用單元中。在每個索引表的表目中,記錄具有相應狀態的pcb在pcb表中的首位址

(其實就是改進版的線性方式,分類之後,變成了很多子表,不需要把整個pcb表都掃瞄一遍,只需要先根據程序狀態找到對應的子表,然後再掃瞄子表就行了)

程序控制塊(PCB)

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

程序控制塊 PCB

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

程序控制塊 PCB

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