
【計】 process identification table
進程識别表(Process Identification Table) 是操作系統内核中用于管理和跟蹤所有活動進程的關鍵數據結構。其核心功能是維護系統中每個進程的唯一标識符(Process ID, PID)及其關聯的元數據,确保操作系統能高效調度資源、控制進程狀态并實現進程間通信。
術語對照與基礎定義
該表存儲每個進程的 PID(唯一整數标識符)、父進程 PID(PPID)、進程狀态(運行/就緒/阻塞等)、優先級、内存映射信息及文件描述符表指針等關鍵數據。操作系統通過 PID 快速定位進程控制塊(PCB),實現對進程的精确控制。
技術實現機制
在類 Unix 系統(如 Linux)中,PID 表以哈希表或數組形式存在于内核空間。當新進程通過 fork
系統調用創建時,内核動态分配一個未使用的 PID 并更新該表。PID 的分配通常采用循環遞增策略(如 Linux 默認範圍 300–32768),避免 ID 沖突。
進程生命周期管理
PID 表記錄進程的創建、終止及狀态變遷。例如,當進程調用 exit
終止時,其 PID 會被标記為可複用狀态,但會保留至父進程通過 wait
讀取終止狀态後才釋放,防止出現“僵屍進程”。
資源監控與系統調用支持
工具如 ps
、top
通過讀取 PID 表生成進程列表。系統調用如 getpid
(獲取當前進程 PID)、kill
(向指定 PID 發送信號)均依賴該表實現精準操作。
安全與權限控制
在權限校驗(如文件訪問)時,内核通過 PID 表檢索進程的用戶/組 ID(UID/GID),結合訪問控制列表(ACL)實施安全策略。
操作系統 | PID 表實現方式 | PID 範圍 | 特性 |
---|---|---|---|
Linux | 動态哈希表 | 默認 300–32768 | 支持 PID namespaces 隔離 |
Windows | 句柄表(Handle Table) | 0–65535 | 與線程 ID(TID)協同管理 |
FreeBSD | 數組+鍊表 | 1–99999 | 支持進程調試寄存器快照 |
詳解 PID 分配機制與進程控制原語,見第 8 章 "Process Control"。
描述 PID 表在内核源碼(kernel/pid.c
)中的哈希桶實現。
分析 PID 回收策略及僵屍進程處理邏輯。
對比 Windows 句柄表與 Unix PID 表的差異。
以上内容綜合操作系統核心原理與權威技術文檔,确保術語解釋的準确性和工程實踐指導性。
進程識别表(Process Identification Table)是操作系統中用于管理和追蹤進程的核心數據結構之一。以下是對其含義、作用及特點的詳細解釋:
進程識别表是操作系統内核維護的一張全局表,記錄系統中所有活躍進程的标識符(PID)及其關鍵信息。每個進程在創建時會被分配唯一的PID,并通過該表實現系統級的資源調度與狀态監控。
ps
、top
命令依賴該表展示運行中的進程信息。總結來看,進程識别表是操作系統實現多任務管理的基石,通過維護進程的唯一标識和元數據,确保系統資源的合理分配與高效調度。如需進一步了解具體實現,可參考操作系統内核源碼(如Linux的task_struct
結構)。
【别人正在浏覽】