学习UCOS之信号量
1.
信号量常用于任务的同步,通过该信号,就能够控制某个任务的执行,这个信号具有计数值,因此,可以称为计数信号量。
计数信号量可以用于资源管理,允许多个任务获取信号量访问共享资源,但会限制任务的最大数目。访问的任务数达到可支持的最大数目时,会阻塞其他试图获取该信号量的任务,直到有任务释放了信号量。这就是计数型信号量的运作机制,虽然计数信号量允许多个任务访问同一个资源,但是也有限定,比如某个资源限定只能有 3 个任务访问,那么第 4 个任务访问的时候,会因为获取不到信号量而进入阻塞,等到有任务(比如任务 1)释放掉该资源的时候,第 4 个任务才能获取到信号量从而进行资源的访问,
3.,参数设置OS_OPT_POST_ALL,可以对所有等待该信号量的任务进行广播,这样所有等待该信号量的任务都变成了就绪态。调用函数OSSemPost()发送信号量的时候如果选择参数OS_OPT_POST_ALL,可不是给信号量值加一!而是加上等待这个信号量的任务数!所以你A任务Pend一次不可能将信号量pend完。重点重点。注意注意。
微信扫码关注
更新实时通知