1,创建任务时指定调度参数为RR,并配置任务的实时优先级和nice值(nice值将会转换为该任务的时间片的长度)。
2,假如没有等待资源,则将该任务加入到就绪队列中。
3,调度程式遍历就绪队列,根据实时优先级计算调度权值(1000 rt_priority),选择权值最高的任务使用cpu。
4,假如就绪队列中的RR任务时间片为0,则会根据nice值配置该任务的时间片,同时将该任务放入就绪队列的末尾。重复步骤3。
5,当前任务由于等待资源而主动退出cpu,则其加入等待队列中。重复步骤3。
系统中既有分时调度,又有时间片轮转调度和先进先出调度
1,RR调度和FIFO调度的进程属于实时进程,以分时调度的进程是非实时进程。
2,当实时进程准备就绪后,假如当前cpu正在运行非实时进程,则实时进程立即抢占非实时进程。
3,RR进程和FIFO进程都采用实时优先级做为调度的权值标准,RR是FIFO的一个延伸。FIFO时,假如两个进程的优先级相同,则这两个优先级相同的进程具体执行哪一个是由其在队列中的未知决定的,这样导致一些不公正性(优先级是相同的,为什么要让您一直运行?),假如将两个优先级相同的任务的调度策略都设为RR,则确保了这两个任务能够循环执行,确保了公平。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




