• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

ucos中的事件和信号量有本质的区别?

DengQilong 2017-12-09 浏览量:1304
用信号量实现的任务同步用事件也能解决,这2个有什么不同的特殊用法吗?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 信号量,在ucos-ii中都通过相同的事件控制块即ECB这个数据结构来实现
    你说的事件是不是事件标志组,事件标志组是标志信号量的状态的。
    • 发布于 2017-12-09
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了 :没有找到此料的规格书,上传的规格书供参考 回复

其他答案 数量:4
  • http://blog.jobbole.com/86709/这个博客有对这个问题的具体探讨
    • 发布于2017-12-09
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :没有区别,尾缀含义的请看衔接https://www.infineon.com/cms/en/product/search/opn/orderable-part-number-opn-translation-table/?redirId=117956 回复

  • 事件用来进行任务间的同步,而信号量是一种对资源共享的保护机制
    • 发布于2017-12-09
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :有黑色盖子 回复

  • 信号量可以设置一个数值,允许最多有几个任务同时访问共享资源。比如说设置这个数值是5,那么最多可以有5个任务同时访问共享资源;每个任务在获得信号量的时候把信号量计数器减去1,这样在第5个任务获得信号量的时候,计数器是0,当第 6 个任务要去访问信号量的时候,就只能等待了,等到之前的任务发出来一个信号出来的时候,这样第六个任务才能去访问共享资源。

    等待信号量的任务在有信号以后也是按照等待列表中优先级最高的任务先得到信号处理。

    信号量、互斥信号量,都是用来同步任务对共享资源的访问,防止冲突而设立的。事件标志组--它是用来同步几个任务,协同几个任务工作而设立的。打个比方说,你现在要打电话,打电话这个任务要执行,你必须有手机,你首先要执行买手机这个任务,你手机有了,没有花费最终的打电话还是无法执行,也就是说打电话这个任务要等买手机这个任务和充话费这个任务完成以后,你才能够去执行打电话这个任务。时间标志组就是用来标志买手机或者充话费这两个任务完成了没有。完成了的话他们会相应地置位事件标志组里面的某些标志位。 再比如说,你想要读取数据,你你肯定要等到数据采集更新好后,你去读取才有意义,所以数据采集和读取数据这两个任务也可以用 事件标志组来实现。当然事件标志组不一定只用于两个任务之间,通过对头文件件的修改,可以让事件标志组达到32位,你可以用事件标志组来协同多个任务的合理运行,达到你预期达到的目标!事件标志组就是专门为这个而设立的。

    每一个时间标志组都维护它自己的一个等待队列的双向链表。每个事件标志组的结点里面都有一个指针和相应的任务控制块ECB一一对应。

    • 发布于2017-12-10
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :没有找到替代,找采购找一下这颗料 回复

  • 事件和信号量都是进程间传递信息的手段。

    • 发布于2018-01-29
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :DMN53D0LDW-7 Diodes Incorporated,1.漏源电压(Vdss)50V 25°C 时电流 - 连续漏极 (Id) 360mA,功率310mW,原型号漏源电压(Vdss)30V,25°C 时电流 - 连续漏极 (Id) 1.8A,功率800mW,没有参数完全一样的替代,参数需要确认一下 回复

相关问题

问题达人换一批

ucos中的事件和信号量有本质的区别?