【发布时间】:2012-09-27 00:44:42
【问题描述】:
我正在开发一个具有进程监控功能的 C++ 应用程序,它基于此模型监控状态变化:http://www.macdesign.net/capella/it4813/images/stallings-Linux_process-thread_states-f4.18.png
但是,由于 /proc/pid/status 将“就绪”和“正在执行”状态结合为“正在运行”,我不知道如何找出进程实际处于这些状态中的哪一个. 任何人都可以就我如何发现这一点提供任何建议吗?
【问题讨论】:
-
在低端单核机器上 -e.g.便宜的上网本——在给定的时刻只有一个进程在运行,那就是你的监控进程(在多核机器上,情况不同)。因此,您实际上想要测量给定进程是否在最后几个 jiffies 期间一直在运行,即。可能在最后十秒内。
标签: c++ linux process file-descriptor proc