我正在尝试使用 RaspberryPi 开发一个多进程系统,我想在其中监视所有主要进程以及它们如何使用 Linux 进行调度。也就是说,获取调度程序状态、开始时间、发布时间等。为了找到这样的信息,我一直在弄乱“/proc”文件夹,但到目前为止我还没有找到任何真正有用的东西。
例如,如果您进入 /proc/pid/task/pid 您可以看到:
se.exec_start
se.vruntime
se.sum_exec_runtime
se.statistics.wait_start
se.statistics.sleep_start
se.statistics.block_start
se.statistics.sleep_max
se.statistics.block_max
se.statistics.iowait_sum
se.statistics.wakeups
等等。现在看来我在做某事,但还不够清楚。我只想看看进程是如何在核心中调度的。即,进程 1 在 0.30 释放,然后进程 2 在 0.70(系统计时器值)启动,等等。
通过监视“/proc”等内核文件夹是否可以实现类似的操作?如果不是,有没有办法使用其他 Linux 跟踪工具或调度程序工具来确定这一点?
非常感谢任何指导。请告诉我是否还需要提供其他信息。
提前致谢。
答案1
每个进程的启动方式以及结束方式/原因都是不同的。看起来您想要做的事情实际上是不可能的,除非您想查看进程正在进行的调用,在这种情况下您可以使用strace
输出并对输出进行排序以查看它到底在做什么。