Linux:地球上/ proc / [pid] / stat中的starttime字段使用HZ(jiffies)或USER_HZ(_SC_CLK_TCK)

时间:2013-12-14 15:13:39

标签: linux proc

我不想在Linux上测量此过程之外的进程的执行持续时间。我发现/ proc / [pid] / state有一个名为starttime的字段,在man page页面上描述为“系统启动后进程启动时的jiffies时间”。

另外,我发现/ proc / uptime提供自系统启动以来以秒为单位的经过时间ET。从理论上讲,我可以通过这两个文件获取运行时间 运行时间= ET - starttime /(每秒jiffies)。

至于jiffies,我认为它指的是内核的CONFIG_HZ(ubuntu 12.04上的250)而不是USER_HZ(ubuntu 12.04上的100,由“getconf CLK_TCK”获取),如http://www.makelinux.net/books/lkd2/ch10lev1sec3中所述。但是,我测试它并发现实际上starttime在ubuntu 12.04上使用USER_HZ。我对此感到困惑。有人可以向我解释一下吗?非常感谢!

1 个答案:

答案 0 :(得分:1)

您的man页面在您检索时可能已过时。这是一个more current page,其中说明了以下内容:

  

(22) starttime %llu

      The time the process started after system boot.  In
      kernels before Linux 2.6, this value was expressed
      in jiffies.  Since Linux 2.6, the value is expressed
      in clock ticks (divide by sysconf(_SC_CLK_TCK)).

在较旧的内核中(在Linux 2.6之前),时间确实在内核jiffies中表示。但是,此行为已更改为现在提供时钟滴答的时间 - jiffies按照您的预期通过USER_HZ常量缩放。