pidstat:任务和进程之间的区别?

pidstat:任务和进程之间的区别?

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。

相关内容