新闻中心

EEPW首页>嵌入式系统>设计应用> 互斥型信号量专

互斥型信号量专

作者: 时间:2016-09-12 来源:网络 收藏

1.互斥型信号量(mutex)

本文引用地址://m.amcfsurvey.com/article/201609/304507.htm

互斥型信号量具备uc/os-ii信号量的所有机制,但还具有其他一些特性。

任务可利用互斥型信号量来实现对共享资源的独占处理。

Mutex是二值信号量,1表示资源是可以使用的。

2.关于优先级反转(PIP)

下面概述优先级反转原理:

假设有三个任务,分别命名为A,B,C;A的优先级最高,C的优先级最低。任务A和任务B处于挂起状态(请注意这条件),等待某一事件的发生,任务C正在运行。当任务C等待到共享资源(命名为S1)并使用后,如果任务A等待得事件到来之后,由于A的优先级最高,所以就会剥夺任务C的CPU使用权。运行过程中,任务A也要使用资源S1,但S1的信号量还被任务C占用着,所有任务A只能进入挂起状态,等待任务C对S1的信号量的释放。此时任务C得以继续运行。

同理,任务B的事件到来后,会剥夺任务C的CPU使用权。任务B把事情搞定以后,把CPU使用权归还给任务B。任务B又得以继续运行,任务B认真处理完毕资源S1后,终于可以释放S1的信号量。而处于等待该信号量的任务A马上得到信号量并开始处理共享资源S1。

综述上面情况,任务C和任务A的优先级发生了反转。而互斥型信号量就是具有解决优先级反转问题的特性。

3.UC/OS-II的互斥型信号量由三个部分组成:

◆一个标志,指示mutex是否可以使用(0或1)

◆一个优先级,准备一旦高优先级的任务需要这个mutex,赋予给占有mutex的任务。

◆一个等待该mutex的任务列表。



关键词:

评论


相关推荐

技术专区

关闭