打印

在ARM中信号量指令是什么

[复制链接]
2549|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
money1919|  楼主 | 2010-9-26 19:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ciniao| | 2010-9-28 08:44 | 只看该作者
arm中的信号量?信号量一般是在操作系统中的一种说法,用于进程同步和进程间通信
原子操作我想就是位操作吧?

使用特权

评论回复
板凳
xinzha| | 2010-9-28 10:05 | 只看该作者
原子操作一般指不可被打断的操作,比如说如果指令集不提供信号量操作的话,有些互斥就会做成这样:
1、if(FREE == testbit)
2、    testbit = BUSY;
如果执行完第一句后被高优先级任务或者中断打断,而高优先级任务或者中断也判断这一位的话,此时这一位依然是FREE,也处于可操作状态,等回到低优先级任务时,由于已经判断完成,同样认为是可操作状态,于是就出现了冲突。
为了解决这种冲突,有些实现是在操作这种关键量前关闭中断,这样的操作效率低并且容易产生问题,于是就开始有些指令集提供了一个周期内实现test and increse这一类的指令来确保这些互斥量不会因为优先级或者中断的问题发生混乱。
信号量不止互斥一种,详细内容买本书或者搜一下吧。

使用特权

评论回复
地板
lelee007| | 2010-9-28 13:58 | 只看该作者
信号量是用于临界区操作的,互斥访问可以用信号量

使用特权

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

本版积分规则

0

主题

7

帖子

1

粉丝