好的,所以对于我的编程任务(是的,我们都可以求助于我们认为合适的任何资源)我必须找出进程花费了多少时间阻塞/睡眠/运行。
我的第一次尝试是创建一个 bash 脚本......看起来像这样:
for i in `ls /proc/ | egrep [0-9]+`
do
cat /proc/$i/status | grep State
done
但随后所有的问题都在报告睡眠状态。再加上这种方法会要求我像疯了一样投票......所以运行测试可能会改变结果......(呃)
现在,使用系统调用或跟踪进程状态的方法来编译新版本的 linux 并非不可能。我唯一担心的是试图找出如何跟踪不断变化的进程状态并确保我不会错过任何东西......