EDA365电子论坛网
标题:
信号量的概念问题
[打印本页]
作者:
Dollche
时间:
2023-1-30 10:29
标题:
信号量的概念问题
请教信号量的概念问题. 我准备用信号量来编写一个 ARM 程序,但我没有完全理解信号量的概念.
; \& O1 @. M) I- \
例如:现在有 4 个任务:TASK1,TASK2,TASK3 和 TASK4,任务的要求是:TASK1 和 TASK2
1 v5 A+ @( S8 E5 W
之间需有信号量传递信息;TASK3 和 TASK4 之间需也有信号量传递信息.
2 D) n& w3 E/ { O7 L L' {' s- y. d
假定 TASK1 和 TASK2 之中已建立了一个信号量为
5 \7 k& s1 u* I
RandomSem = OSSemCreate(1);
; M+ z6 F0 S! N& P* W6 d
我要问的问题是:TASK3 和 TASK4 之中的信号量是否需重新建立一个 例如,加一条
$ v1 ] Y, x" p/ ], U1 Q: }
RandomSem1 = OSSemCreate(1);
& J+ s: F4 ~$ L7 n4 c1 U# }2 D
换一个问法:即若 TASK1 和 TASK2 之间需有信号量传递信息;
* }0 ?. ]) u5 D
TASK3 和 TASK4 之间需也有信号量传递信息,我只需在运行这 4 个任务之前的初始化程
) H6 ^5 }" g5 F' h; g
序中有一条指令即可:RandomSem = OSSemCreate(1);
9 ^7 i) D0 y. Y/ s( |: Z
( B( Y5 W9 K5 ^& E. l
作者:
名字好听吗
时间:
2023-1-30 11:03
用两个信号量,你第一个说法对了
作者:
niubility
时间:
2023-1-30 11:17
是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量。
作者:
dragongfly
时间:
2023-1-30 13:25
同共享内存一样,系统中同样需要为信号量集定制一系列专有的操作函数。
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2