想知道这里是否有任何知情的Linux大师可以回答我的问题。我一直在为我的操作系统类进行统计分析,调度程序对CPU和IO绑定进程的效率/效率更高。我从GNU时间得到的一个结果是我无法解释为什么在SCHED_OTHER下运行的相同进程在比SCHED_RR和SCHED_FIFO(对于CPU绑定进程)更少的用户时间内完成。我认为用户时间与计划政策无关。任何人都可以点亮或指向一个可以解释这个问题的资源(除了通过源代码,它只是一个本科课程)。
我正在使用的数据是在多次运行中收集的,其中许多并发运行的CPU绑定进程因此数据应该相当准确。感谢。
答案 0 :(得分:1)
这可能是由于缓存效应(在这样的性能比较中经常出现)。
每个上下文切换都会失去一大块缓存,因为交换进程(和内核)会占用你的一些缓存行。
答案 1 :(得分:0)
可以想象,CPU绑定的SCHED_FIFO
实时进程不会为其他进程提供启动异步读取的机会。而SCHED_OTHER
使用更多进程启动异步读取,从而花费更少的总时间等待数据。