打印

求助:uCOSII 关中断开中断作为互斥条件的问题

[复制链接]
4258|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
afterqcd|  楼主 | 2008-9-21 11:11 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
关中断只是屏蔽了中断,并没有阻止任务切换,高优先级的任务任然可以抢占CPU并访问临界区和共享变量啊

为什么关中断开中断可以作为互斥条件,而且是最粗暴的方式呢?

谢谢,在线等

相关帖子

沙发
afterqcd|  楼主 | 2008-9-22 12:00 | 显示全部楼层

谢谢了

使用特权

评论回复
板凳
afterqcd|  楼主 | 2008-9-24 14:01 | 显示全部楼层

谢谢John_Lee,谢谢各位哈

不过我还是不太明白,我好好看下然后再上来和大家讨论

使用特权

评论回复
地板
afterqcd|  楼主 | 2008-9-24 15:24 | 显示全部楼层

好像想明白了

正在运行的任务是所有就绪任务中优先级最高的,如果要运行其它优先级更高的任务,就只有发生了某些事件使得更高优先级的任务进入了就绪状态,而这些事件只有在两种情况下发生:
1. 中断改变了任务状态
2. 运行中的任务主动使优先级更高的任务进入就绪状态

2 相当于是主动放弃CPU占有权,所以说抢占是由中断引起的,是异步调度的结果

所以就是你说的结论,关中断只是关了抢占,而运行中的任务依然可以主动做任务调度。这里uC/OS有一个非常重要的前提条件,就是 运行中的任务是所有就绪任务中优先级最高的,如果没有事件发生就会一直运行直到完成。

John_Lee,我理解的对不?

使用特权

评论回复
5
afterqcd|  楼主 | 2008-9-25 14:08 | 显示全部楼层

又受教了

谢谢

使用特权

评论回复
6
afterqcd|  楼主 | 2008-9-27 18:23 | 显示全部楼层

没有啊

我只是在看书,还在看理论

使用特权

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

本版积分规则

3

主题

10

帖子

0

粉丝