CRTOS——互斥信号量

互斥信号量等待操作:

1、等待互斥信号量,互斥信号量未被占有(锁定次数为0),占有过程中将信号量拥有者指向任务,并锁定次数加1;

2、等待互斥信号量,信号量被任务自身占用,将锁定次数加1;

3、等待互斥信号量,信号量被高优先级任务占用,低优先级任务欲获得信号量,则将低优先级任务插入等待队列

4、等待互斥信号量,信号量被低优先级任务占用,高优先级任务欲获得信号量,则将高优先级任务插入等待队列,将低优先级任务优先级提高与高优先级任务相同,利用优先级继承机制解决优先级反转问题。

互斥信号量释放操作:

1、没有优先级继承,将信号量释放,并直接从等待队列中唤醒任务;

2、若有优先级继承,先从等待队列中唤醒任务,释放原信号量拥有者,将其优先级恢复;

你可能感兴趣的:(CRTOS——互斥信号量)