linux内核是不是发布进程状态更改事件?
Posted
技术标签:
【中文标题】linux内核是不是发布进程状态更改事件?【英文标题】:Does linux kernel publish process state change events?linux内核是否发布进程状态更改事件? 【发布时间】:2012-08-08 20:43:58 【问题描述】:我正在运行一个多线程 Java 应用程序。我想知道我的应用程序利用多核 cpu 的效果如何。 Linux中是否有提供以下信息的工具或api?
进程 ID、线程名称、状态、核心、时间。
linux内核会发布进程状态改变事件吗?
【问题讨论】:
是的,实际上有大量信息通过 /proc 文件系统发布。我不知道状态信息想要的确切位置,但可能在每个进程的 /proc 子文件夹中 @MarcB /proc/ 确实有大量信息。但是我们不想轮询这些文件来查看进程状态的变化。如果线程在轮询周期之间从 R->S->R-S->R 运行,我们可能会丢失信息。上述更改将被视为带有轮询的简单“R”。但是,如果我们监听事件,它可以真实地了解线程发生了什么。 【参考方案1】:看看 ftrace 或 SystemTap。或者,如果您想要精美的图表,KernelShark。
【讨论】:
以上是关于linux内核是不是发布进程状态更改事件?的主要内容,如果未能解决你的问题,请参考以下文章
Linux 内核进程管理 ( Linux 中进程的 CPU 资源调度 | 进程生命周期 | 创建状态 | 就绪状态 | 执行状态 | 阻塞状态 | 终止状态 | 进程生命周期之间的转换 )
Linux 内核进程管理 ( Linux 内核中的进程状态 | TASK_RUNNING | TASK_INTERRUPTIBLE | __TASK_STOPPED | EXIT_ZOMBIE )
Linux 内核进程管理 ( 进程状态 | 进程创建 | 进程终止 | 调用 exit 系统调用函数主动退出 | main 函数返回自动退出 | kill 杀死进程 | 执行异常退出 )