ucos-iii学习之抢占式调度以及调度点

来源:互联网 发布:枪神纪刷枪软件2017 编辑:程序博客网 时间:2024/06/13 07:45

1.抢占式调度
调度器决定了任务的运行顺序。
uC/OS-III 通过两种方法处理中断提交的事件:直接提交或延迟提交。
这两种方法产生的结果是一样的:最高优先级就绪任务会占用CPU。
(1)直接提交
低优先中断在执行时遇到高优先级中断,直接暂停执行高优先级。
(2)延迟提交
低优先中断在执行时遇到高优先级中断,先执行完低优先级再执行高优先级。
2.调度点
(1)任务被标记或发送消息给另一个任务时会发生调度
任务调用提交服务函数 OS???Post(),发送信号量或消息给其它任务时调度发生。调度在 OS???Post()函数的结束时发生。
(2)任务调用 OSTimeDly()或 OSTimeDlyHMSM()
(3)任务所等待的事件发生或超时
(4)任务取消挂起
(5)新任务被创建
(6)任务被删除
(7)内核对象被删除
(8)任务改变自身的优先级或其它任务的优先级
(9)当任务通过调用 OSTaskSuspend()停止自身
(10)任务调用 OSTaskResume()恢复其它停止了的任务
(11)退出中断服务程序
(12)通过调用 OSSchedUnlock()调度器被解锁
(13)调用 OSSchedRoundRobinYield()任务放弃了分配给它的时间片
(14)用户调用 OSSched()

原创粉丝点击