最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

小心信号量常被用过了头

工作和技术 crifan 1800浏览 0评论


声明:下列内容摘自吕进华整理的uC/OS-II 2.0 的chm格式的电子书中。

小心信号量常被用过了头

处理简单的共享变量也使用信号量则是多余的。请求和释放信号量的过程是要花相当的时间的。有时这种额外的负荷是不必要的。用户可能只需要关中断、开中断来处理简单共享变量,以提高效率。(参见2.18.0.1 关中断和开中断)。假如两个任务共享一个32位的整数变量,一个任务给这个变量加1,另一个任务给这个变量清0。如果注意到不管哪种操作,对微处理器来说,只花极短的时间,就不会使用信号量来满足互斥条件了。每个任务只需操作这个任务前关中断,之后再开中断就可以了。然而,如果这个变量是浮点数,而相应微处理器又没有硬件的浮点协处理器,浮点运算的时间相当长,关中断时间长了会影响中断延迟时间,这种情况下就有必要使用信号量了。

总结:

ucOS/II中,对于简单变量等的互斥操作,使用开关中断来实现互斥即可。

对于操作时间长的,如浮点数的处理,则使用信号量来实现互斥访问。

转载请注明:在路上 » 小心信号量常被用过了头

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
79 queries in 0.182 seconds, using 22.10MB memory