这pidstat
命令有与任务相关的选项,也有与流程相关的选项(例如-C
和-G
)。有什么区别?
答案1
Linux进程还有另一个任务共享线程组ID。
进程是正在执行的程序。任务是 Linux 调度的,一切都是任务。线程是可调度执行单元的另一个名称,有时每个进程有多个轻量级线程。不过,Linux 更倾向于另一种方式,即进程是“重量级”线程。
任务状态文档将其描述为:
“pid”、“tid” 和“task” 可互换使用,指的是 struct task_struct 定义的标准 Linux 任务。每个 pid 的统计数据与每个任务的统计数据相同。
“tgid”、“进程”和“线程组”可互换使用,指的是共享 mm_struct 的任务,即传统的 Unix 进程。
许多人认为的 UNIX pid 在技术上就是 tgid。task_struct 中有一个 pid 字段可以被视为任务 ID。
pidstat 具有查询详细信息的功能。良好的 UI 使用用户期望的术语,在本例中为进程和线程。pidstat -p 将报告为 PID,但 pidstat -p -t 将报告为 TGID,以及所有具有 TID 的线程。巧妙的技巧,用于显示一个进程如何使用超过 100% 的 CPU。