打印

µC-OS/III操作系统是怎么调度的呢

[复制链接]
1032|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
heping517|  楼主 | 2015-10-22 09:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
µC-OS/III操作系统是怎么调度的呢?
沙发
huihui520| | 2015-10-22 09:17 | 只看该作者
(1)ISR服务设备,代替给任务发送信号或者发送消息,μc/OS-III(通过POST调用)将POST调用放置到特殊的队列中,使高优先级的任务进行运行。这个任务称为ISR句柄任务。
    (2)当ISR完成它的工作时,进行μc/OS-III的系统调用。
    (3,4)由于ISR使得准备运行ISR句柄任务,则μc/OS-III切换到该任务。
    (5,6)ISR句柄任务从消息队列中去除post调用,然后重新发布post调用。这次是在任务级,而不是在ISR级上。这个额外的步骤是保证中断禁止时间尽可能的短。
       当两个以上的任务具有相同的优先级时,μc/OS-III允许使用一个任务运行一个预先定义的时间(叫做时间单元)。这个过程称为轮循调度或者时间片。

使用特权

评论回复
板凳
zb0830| | 2015-10-22 09:23 | 只看该作者
当μc/OS-III确定运行不同的任务时,将保存当前任务的上下文(现场),典型地包括:CPU寄存器,到当前任务的堆栈中,恢复新任务的现场,然后继续执行这个任务。这个过程称之为上下文切换。
        上下文切换会增加开销。CPU的寄存器越多,开销就越大。执行上下文切换所需要的时间通常由需要保存和恢复的寄存器数量所决定。

使用特权

评论回复
地板
zheng522| | 2015-10-22 09:28 | 只看该作者
操作系统的没有在实战中用过

使用特权

评论回复
5
zhengbo7hui| | 2015-10-22 10:18 | 只看该作者
OSCtxSw()       当任务级的调度器确定需要执行新的高优先级的任务时,调用该函数。

使用特权

评论回复
6
关小波522| | 2015-10-22 14:44 | 只看该作者
OSIntCtxSw()        当ISR级的调度器确定需要执行新的高优先级的任务时,调用该函数。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

90

主题

648

帖子

0

粉丝