Linux
Linux上的PCB在哪裡
PCB或過程控制塊,在維基百科上是這樣定義的
過程控制塊(PCB,也稱為任務控制塊,
$$ 1 $$ Task Struct 或 Switchframe)是作業系統核心中的一種資料結構,包含管理特定程序所需的資訊。PCB是“一個程序在作業系統中的體現
其職責是:
Process identification data Processor state data Process control data
那麼在哪裡可以找到一個工藝的PCB呢?
在 Linux 核心中,每個程序都由一個
task_struct
雙向鍊錶中的 a 表示,其頭部是init_task
(pid 0,而不是 pid 1)。這就是通常所說的程序表。在使用者模式下,程序表對普通使用者可見
/proc
。為你的問題取標題:
- 程序標識數據是程序 ID(位於 path 中
/proc/<process-id>/...
)、命令行 (cmd
) 以及可能的其他屬性,具體取決於您對“標識”的定義。- 程序狀態數據包括調度數據(
sched
和stat
)schedstat
、程序目前正在等待的內容(wchan
)、其環境(environ
)等。- 過程控制數據可以說是它的憑證(
uid_map
)和資源限制(limits
)。所以這一切都取決於你如何定義你的術語……但一般來說,關於一個過程的所有數據都可以在
/proc
.