Linux
pidstat:任務和程序之間的區別?
該
pidstat
命令具有與任務相關的選項和與程序相關的其他選項(例如-C
和-G
)。有什麼不同?
Linux程序是另一個共享執行緒組 ID的**任務。
程序是一個執行程序。任務是 Linux 安排的,一切都是任務。執行緒是可調度執行單元的另一個名稱,有時每個程序有多個輕量級執行緒。雖然,Linux 更像是另一種方式,即程序是“重量級”執行緒。
任務狀態文件將它們描述為:
“pid”、“tid”和“task”可以互換使用,指的是由 struct task_struct 定義的標準 Linux 任務。per-pid stats 與 per-task stats 相同。
“tgid”、“程序”和“執行緒組”可以互換使用,指的是共享一個 mm_struct 的任務,即傳統的 Unix 程序。
許多人認為的 UNIX pid 在技術上是 tgid。task_struct 中有一個 pid 欄位可以被認為是一個任務 ID。
pidstat 具有查詢詳細資訊的能力。一個好的 UI 使用使用者期望的術語,在這種情況下是程序和執行緒。pidstat -p 將報告為 PID,但 pidstat -p -t 將報告為 TGID,以及所有具有 TID 的執行緒。展示一個程序如何使用超過 100% 的 CPU 的巧妙技巧。