转载自:
https://blog.csdn.net/qq_32811489/article/details/70768264
linux内核的三种调度方法
1.SCHED_OTHER
分时调度策略
2.SCHED_FIFO 实时调度策略,先到先服务,一旦占用cpu则一直运行,直到有更高优先级任务到达或自己放弃
3.SCHED_RR
实时调度策略,时间片轮转,当进程的时间片用完,系统将重新分配时间片,并置于就绪队列尾,保证了所有具有相同优先级的RR任务的 调度公平
实时进程:得到优先调用,实时进程根据 实时优先级决定调度权值
分时进程:曾经使用cpu最少的进程将会得到优先调度
既有分时调度,又有时间片轮转调度和先进先出调度
1.当实时进程准备就绪,如果当前cpu正运行非实时进程,则 实时进程立即抢占非实时进程
2.RR进程和FIFO进程都采用实时优先级做为调度的权值
3.对于FIFO,如果两个进程的优先级一样,则这两个优级一样的进程具体执行哪一个是由其在队列中的位置决定的,这样导致一些不公正性
4.对于RR,两个优先级一样的任务可以循环执行,保证了公平