我在学习操作系统。我有个疑问。例如,如果某个进程集(集合1)的调度策略是SCHED_RR,而对其他一些进程集(集2)的调度策略是SCHED_FIFO。
现在,当内核必须从这2组中选择某个进程时,Linux使用哪种调度策略?
是否有可能改变这一政策?如果是这样的话,怎么做呢?
发布于 2016-11-19 09:00:06
man sched
从概念上讲,调度程序为每个可能的sched_priority值维护一个可运行线程列表。为了确定接下来运行哪个线程,调度程序查找具有最高静态优先级的非空列表,并在该列表的顶部选择线程。线程的调度策略决定它将被插入到具有相同静态优先级的线程列表中的位置,以及它将如何在此列表中移动。
尽管有一个更多的实时策略,其中的优先级不是(在任何时候?)显着
为了实现当线程被接纳为SCHED_DEADLINE策略时所做的保证,SCHED_DEADLINE线程是系统中最高优先级(用户可控的)线程;如果任何SCHED_DEADLINE线程都是可运行的,它将抢占其他策略下调度的任何线程。
https://unix.stackexchange.com/questions/324466
复制相似问题