当我linux有多个任务,采用CFS调度时,如何求一个任务在受其他任务影响下的响应时间?
基于Monster 组和GPT的调写:
可以使用以下步骤:
- 让该任务和其他任务同时运行,让它们在 CFS 调度器上竞争 CPU 时间。
- 计算该任务的响应时间,即结束时间减去开始时间。如果该任务被其他任务抢占了 CPU 时间,则需要考虑这部分时间。
- 如果你需要求该任务在受多个其他任务影响下的响应时间,可以将以上步骤重复多次,每次让不同的一组任务同时运行。这样可以得到多个响应时间,从而更加全面地评估该任务的响应时间。
不知道你这个问题是否已经解决, 如果还没有解决的话:
- 看下这篇博客,也许你就懂了,链接:为什么Linux CFS调度器没有带来惊艳的碾压效果
- 除此之外, 这篇博客: Linux优先级时间片调度中的 Linux上的CFS算法主要有以下步骤 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
- 计算每个进程的vruntime,通过update_curr()函数更新进程的vruntime。
- 选择具有最小vruntime的进程投入运行。
- 进程运行完后,更新进程的vruntime,转入步骤2.
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^