VxWorks学习笔记 -- 信号量
一.信号量的概念
是实现任务互斥、同步操作的主要机制。VxWorks提供的信号量经过了高度优化,在所有任务间通信机制中,速度最快。
二.信号量的分类
Binary Semaphores(二进制):完成互斥、同步操作的最佳方式;速度最快,最常用。
Mutual Exclusion Semaphores(互斥):一种特殊的二进制信号量,专门针对互斥操作进行了优化。
Counting Semaphores(计数):类似于二进制信号量,可记录信号量释放的次数,可监视同一资源上的多个实例。
三.Binary Semaphores(二进制信号量)
Task经常会等待事件或需获取资源。查询(polling)在RealTime系统中原则上不允许,最好采用Pending,等待事件或资源。
状态图:
说明:
1.为某个资源调用semBCreate()创建一个binary semaphore 并规定:
SEM_Full (资源可用) SEM_Empty (资源不可用).
2.资源不可用时Task