当一个互斥信号量被一个低任务使用,而此时高任务也想获取这个信号量,高任务就会被阻塞,不过高任务会将低任务提升到与自己相同的优先级。
优先级继承尽可能的降低了高任务处于阻塞太的时间,并将“优先级反转”的影响降到最低。
注意:
1.互斥信号量只能用在任务中,不能用于中断服务函数。
2.中断服务函数中,不能因为等待互斥信号量而进入阻塞太。
实验:
中任务运行
低任务获取到互斥信号量运行
高任务请求互斥信号量,此时需要等待低任务释放互斥信号量。
但是中任务不会运行。
递归互斥信号量:
对于普通的互斥信号量,已经获取了互斥信号量的任务就不能再次获取这个互斥信号量。但是递归互斥信号量可以再次获取。