945863658 发表于 2016-4-6 09:08

谁能帮我解答下ucos ii 信号量的疑问

最近在学习UCOS II,看书看资料有一个星期了,可是还是不理解信号量的作用,到底信号量是干什么用的,怎么用呀?资料上说是对共享资源的访问,到底是怎样进行访问的,还是不理解,有没有大神帮我解答解答。

Leeone 发表于 2016-4-7 09:32

任务1:
while(信号量!=1);//等信号量,没有信号量发送过来这个任务就挂起,while后面的都不会执行

任务2:
信号量=1;//这个地方信号量置位了,任务1查询到信号量置位,就开始执行while后面的程序

Leeone 发表于 2016-4-7 09:33

只是比喻,说白了就是个标志位。只是它加入了些调度功能。

youxiang123 发表于 2016-4-8 10:42

信号量对资源进行保护,

xstong 发表于 2016-4-15 11:07

信号量是多个线程之间协调工作的一个机制,还有互斥量!!这只是一个概念,不要咬文嚼字。举个例子:
信号量:你开个旅馆,能容纳100个人,客房未满,则客人来了就能入住。 如果满了,那么这时候,只能走一个人,才能再进一个人。
互斥量:你进入房间后,如果没反锁门,那房客有可能走错房间,会进入你的房间,如果你反锁了即便房客迷糊找不到自己的房间也不会进错屋。

这里面房间就是你的资源,需要做好合理的安排。
到底走了几个房客,能允许几个人入住,这是你任务该处理的工作。
页: [1]
查看完整版本: 谁能帮我解答下ucos ii 信号量的疑问