[嵌入式linux] ucosiii任务切换问题

[复制链接]
1801|4
 楼主| pttptt85 发表于 2014-8-25 15:56 | 显示全部楼层 |阅读模式
我在一个任务中加入了一个循环如:j = 0;while(j < 1000)j++;
结果任务在此发生了切换,执行了其他任务后返回,我本想不要切换.不知道是什么原因.谢谢
 楼主| pttptt85 发表于 2014-8-25 17:09 | 显示全部楼层
我在该任务中加了调度锁,如果只包含循环体,那一退出循环体就发生切换,加在整个任务中就可行,我有一个问题没有想明白,难道在低任务中随时有可能被就绪的高优先权的任务抢占吗?我一直认为是无论在什么任务中,只有执行如:OSTimeDly等延时程序中才切换去执行更高级的就绪的任务.难道不是?如果如此,那不是执行低优先级的任务不加调度锁就会出错,有谁能解释一下吗?
hgjinwei 发表于 2014-8-25 19:40 | 显示全部楼层
什么叫抢占型内核呢?就是不管你愿不愿意,只要我认为该咋样了,那就咋样了。
UC中,只要高优先级就绪,除非低优先级呼叫了调度保护,否则绝对被抢占。
sulg 发表于 2014-8-27 23:04 | 显示全部楼层
在系统的时基中断里会把就绪的高优先级任务进行调度。
岚夜 发表于 2014-8-28 01:43 | 显示全部楼层
貌似你是新手啊,任务调度还不明白吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

45

主题

110

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部