如何在c中找到进程的调度延迟

时间:2014-09-12 18:47:23

标签: c linux scheduling

我在linux上有一个C程序。在执行我的程序期间,如果进程面临超过阈值的调度延迟,我想做出一些决定。

有关我如何找到此统计信息的任何建议?

P.S。:通过调度延迟,我指的是等待调度的进程所花费的时间,即在调度程序队列中花费的时间。

2 个答案:

答案 0 :(得分:2)

您可以将计时器设置为关闭,比如每分钟或任何适当的间隔,然后使用getrusage()收集统计数据并根据这些结果(连续值之间的差异),您可以做出决定然后

答案 1 :(得分:2)

time()功能可让您测量“挂钟”时间:http://linux.die.net/man/2/time 另一方面,clock()功能允许您测量流程使用的CPU时间:http://linux.die.net/man/3/clock

通过减去这两个,你可以得到你所要求的近似值。

PS:为了获得更准确的测量结果(时间有第二个分辨率),您可以使用clock_gettimehttp://linux.die.net/man/3/clock_gettime