嵌入式技术论坛
直播中

而无返还

9年用户 1320经验值
擅长:光电显示
私信 关注
[问答]

消息队列理解为任务之间互相传递的参数,但信号量怎样理解呢

请教:在 rtos51 解释的概念里的"信号量"比较难懂,"消息队列"可以理解为任务之间互相传递的参数,但"信号量"怎样理解呢 具体一点,谢谢!

回帖(2)

杨福林

2023-2-28 14:17:48
信号量是 60 年代中期 Edgser dijkstra 发明的,它实际上是一种程序间的约定机制,
这种约定决 定那个程序(任务)可以执行.在多任务内核中普遍使用信号量用于:
1.控制共享资源的使用权(满足互斥条件);
2.标志某事件的发生;
3.使两个任务的行为同步.
举报

杨万富

2023-2-28 14:17:56
信号量像是通行证,且通行证的数目是有限的.任务要运行下去,要先拿到通行证.如果信号量 已被别的任务占用,该任务只得被挂起,直到信号量被当前使用者释放掉.信号量的值可以是 0 到 255 或 0 到 65535,或 0 到 4294967295,取决于信号量规约机制使用的是 8 位,16 位还是 32 位.到底是几位,实际上是取决于用的那种内核.根据信号量的值,内核跟踪那些等待信号量的任务.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分