Linux

pidstat:任務和程序之間的區別?

  • May 17, 2020

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 的巧妙技巧。

引用自:https://serverfault.com/questions/1017430