5,此时调度程式重复上面计算过程,转到第4步。
6,当调度程式发现任何就绪任务计算所得的权值都为不大于0时,重复第2步。
任何任务都采用FIFO时,
1,创建进程时指定采用FIFO,并配置实时优先级rt_priority(1-99)。
2,假如没有等待资源,则将该任务加入到就绪队列中。
3,调度程式遍历就绪队列,根据实时优先级计算调度权值(1000 rt_priority),选择权值最高的任务使用cpu,该FIFO任务将一直占有cpu直到有优先级更高的任务就绪(即使优先级相同也不行)或主动放弃(等待资源)。
4,调度程式发现有优先级更高的任务到达(高优先级任务可能被中断或定时器任务唤醒,再或被当前运行的任务唤醒,等等),则调度程式立即在当前任务堆栈中保存当前cpu寄存器的任何数据,重新从高优先级任务的堆栈中加载寄存器数据到cpu,此时高优先级的任务开始运行。重复第3步。
5,假如当前任务因等待资源而主动放弃cpu使用权,则该任务将从就绪队列中删除,加入等待队列,此时重复第3步。
任何任务都采用RR
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




