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...