how to find scheduling delay for a process in c
我在linux上有一个C程序。 在执行我的程序期间,如果进程面临超过阈值的调度延迟,我想做出一些决定。
关于我如何找到这个统计数据的任何建议?
P.S。:通过调度延迟,我指的是等待调度的进程所花费的时间,即在调度程序队列中花费的时间。
-
"调度延迟"是什么意思? 你能详细说明吗?
-
我的意思是进程在调度程序队列中花费了多少时间,即等待调度所花费的时间。
-
@Siddharth:您应该编辑您的问题以改进它而不是在评论中回答。
-
@Siddharth - 它等待转弯时进程所处的就绪队列,并且调度延迟的技术名称是"等待时间"。 等待时间所依赖的一些因素是:1。使用的调度算法。 2.当前运行的进程数。 看看这个链接.. stackoverflow.com/questions/10265162/…
-
@Abhishek请阅读问题。 我知道哪些因素导致调度延迟。 问题是如何计算延迟值。 无论如何,佛朗哥已经回答了。
time()功能允许您测量"挂钟"时间:http://linux.die.net/man/2/time
另一方面,clock()功能允许您测量进程使用的CPU时间:http://linux.die.net/man/3/clock
通过减去这两个,您可以得到您所要求的近似值。
PS:为了更准确的测量(时间有第二个分辨率),你可以使用clock_gettime:http://linux.die.net/man/3/clock_gettime
您可以将计时器设置为关闭,比如每分钟或任何适当的间隔,然后使用getrusage()收集统计数据并根据这些结果(连续值之间的差异),您可以做出决定然后