
- 作業系統教程
- 作業系統 - 首頁
- 作業系統 - 需求
- 作業系統 - 概述
- 作業系統 - 歷史
- 作業系統 - 組成部分
- 作業系統 - 結構
- 作業系統 - 架構
- 作業系統 - 服務
- 作業系統 - 屬性
- 作業系統 - 週轉時間 & 等待時間
- 作業系統程序
- 作業系統 - 程序
- 作業系統 - 程序排程
- 作業系統 - 排程演算法
- 先來先服務排程演算法 (FCFS)
- 最短作業優先排程演算法 (SJF)
- 輪轉排程演算法
- 最高響應比優先排程演算法 (HRRN)
- 優先順序排程演算法
- 多級佇列排程
- 上下文切換
- 程序操作
- 彩票程序排程
- 預測 SJF 排程演算法的突發時間
- 競爭條件漏洞
- 臨界區同步
- 互斥同步
- 程序控制塊
- 程序間通訊
- 搶佔式和非搶佔式排程
- 作業系統同步
- 程序同步
- 作業系統記憶體管理
- 作業系統 - 記憶體管理
- 作業系統 - 虛擬記憶體
- 作業系統儲存管理
- 作業系統 - 檔案系統
- 作業系統型別
- 作業系統 - 型別
- 作業系統雜項
- 作業系統 - 多執行緒
- 作業系統 - I/O 硬體
- 作業系統 - I/O 軟體
- 作業系統 - 安全
- 作業系統 - Linux
- 考試題庫及答案
- 考試題庫及答案
- 作業系統有用資源
- 作業系統 - 快速指南
- 作業系統 - 有用資源
- 作業系統 - 討論
作業系統 - 程序控制塊
程序控制塊 (PCB) 是一種資料結構,包含與程序相關的各種資訊。程序控制塊也稱為程序描述符或任務控制塊。不同程序的 PCB 儲存在作業系統核心的程序表中。
當建立一個新程序時,作業系統會為其初始化一個程序控制塊,該塊儲存與程序相關的引數值,並跟蹤程序狀態(例如:新建、就緒、執行、等待或終止)。
PCB 對於幾乎所有與程序相關的活動中的程序管理都非常重要。排程程式和資源管理器等許多實用程式都會訪問和/或更新它們。由於 PCB 跟蹤程序狀態資訊,因此它們在上下文切換中發揮著至關重要的作用。
程序控制塊的結構
程序控制塊儲存許多有效程序管理所需的資料項。以下將透過圖表解釋其中一些資料項:

以下是一些資料項:
- 程序號或 ID - 顯示特定程序的標識號。
- 程序狀態 - 指定程序狀態,例如新建、就緒、執行、等待或終止。
- 程式計數器 - 包含程序中需要執行的下一條指令的地址。
- 暫存器 - 指定程序使用的暫存器。包括累加器、索引暫存器、堆疊指標、通用暫存器等。
- 開啟檔案列表 - 與程序關聯的不同檔案。
- CPU 排程資訊 - PCB 中包含的 CPU 排程資訊包括程序優先順序、排程佇列指標等。這也可能包括任何其他排程引數。
- 記憶體管理資訊 - 記憶體管理資訊包括頁表或段表(取決於所使用的記憶體系統)。它還包含基暫存器、界限暫存器等的值。
- I/O 狀態資訊 - 此資訊包括程序使用的 I/O 裝置列表、檔案列表等。
- 會計資訊 - 時間限制、帳號、使用的 CPU 量、程序號等都是 PCB 會計資訊的一部分。
- 程序控制塊的位置 - 程序控制塊儲存在一個受保護的記憶體區域中,防止普通使用者訪問。這是因為其中包含重要的程序資訊。一些作業系統將 PCB 放在程序的核心堆疊的開頭,因為它是一個安全的位置。
利用 PCB 的程序管理任務
程序控制塊在執行各種程序管理活動中發揮著重要作用,因為它們儲存與程序相關的關鍵資訊。以下是經常訪問 PCB 中儲存的詳細資訊的一些主要操作:
上下文切換
在上下文切換期間,正在執行程序的程序狀態儲存在 CPU 暫存器中,並將其副本儲存在相應的 PCB 中。下一個被選中執行的程序的狀態從其 PCB 中獲取,以便它可以執行。
程序排程
作業系統使用 PCB 的內容(例如程序優先順序、程序狀態和使用的資源)來排程就緒佇列中的程序。透過評估優先順序和其他相關資訊,排程程式確定程序執行的順序。
多工處理
作業系統可以藉助 PCB 中儲存的資訊(如資源分配、程序排程和程序同步)來同時執行多個程序。
資源共享
PCB 中儲存的資訊包括分配給程序的資源,例如開啟的檔案、共享變數、公共表和記憶體空間。當新程序請求資源時,作業系統會在 PCB 中搜索已分配的程序,檢查它們是否可共享,並相應地分配資源。因此,PCB 在資源共享中起著重要作用。
廣告