SCHED_FIFO一旦占用cpu则一直运行。一直运行直到有更高优先级任务到达或自己放弃。
假如有相同优先级的实时进程(根据优先级计算的调度权值是相同的)已准备好,FIFO时必须等待该进程主动放弃后才能够运行这个优先级相同的任务。而RR能够让每个任务都执行一段时间。
相同点:
RR和FIFO都只用于实时任务。
创建时优先级大于0(1-99)。
按照可抢占优先级调度算法进行。
就绪态的实时任务立即抢占非实时任务。
任何任务都采用linux分时调度策略时。
1,创建任务指定采用分时调度策略,并指定优先级nice值(-20~19)。
2,将根据每个任务的nice值确定在cpu上的执行时间(counter)。
3,假如没有等待资源,则将该任务加入到就绪队列中。
4,调度程式遍历就绪队列中的任务,通过对每个任务动态优先级的计算(counter 20-nice)结果,选择计算结果最大的一个去运行,当这个时间片用完后(counter减至0)或主动放弃cpu时,该任务将被放在就绪队列末尾(时间片用完)或等待队列
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




