[应用相关] 于RT-thread 互斥量中优先级继承机制

[复制链接]
1249|10
 楼主| 一路向北lm 发表于 2018-11-1 13:21 | 显示全部楼层 |阅读模式
三个线程分别是 H线程、M线程、L线程  
1.三个线程的优先级顺序是:H线程 > M线程 > L线程;
2.正常运行的时候H线程可以打断M线程与L线程, M线程可以打断L线程;
3.假设系统有一个资源被保护了,此时该资源被L线程在使用,某一时刻H线程需要使用该资源,但L线程还未使用完,H线程申请不到而进入阻塞态,此时已出现优先级翻转现象;

没有优先级继承机制的时候:

如果L线程执行的时候,M线程刚好被唤醒了,由于M线程的优先级比较高,会打断L线程,抢占CPU使用权,直到M线程执行完成;
M线程将CPU的使用权给L线程,L线程继续执行,L执行完后释放该资源;
H线程得到该资源,从阻塞态解除;
这个过程,高优先级的H等待了M线程+L线程的时间,如果有更多线程的时候,那系统就崩溃了,等不起的!

有优先级继承机制的时候:
在H贤臣申请资源的时候由于申请不到资源进入阻塞态,系统会把当前使用资源的L线程的优先级临时提高到与H线程的优先级相同
此时M线程被唤醒也不会打断L线程;
L线程执行完毕,释放资源,H线程获取资源被继续执行,H线程等待的时间只是L线程的执行时间。
1021256354 发表于 2018-11-1 13:36 | 显示全部楼层
mutex seg
幸福小强 发表于 2018-11-1 16:45 | 显示全部楼层
线程还可以设置优先级,看来要好好学习一下
 楼主| 一路向北lm 发表于 2018-11-1 20:41 | 显示全部楼层
幸福小强 发表于 2018-11-1 16:45
线程还可以设置优先级,看来要好好学习一下

是啊,这个不难
 楼主| 一路向北lm 发表于 2018-11-1 20:41 | 显示全部楼层
幸福小强 发表于 2018-11-5 21:35 | 显示全部楼层
听说要搞研讨会,还是周六,我要看看有空没,报个名去
捉虫天师 发表于 2018-11-5 23:16 | 显示全部楼层
这两年这个系统挺火,
小灵通2018 发表于 2018-11-6 09:13 | 显示全部楼层
我要去看看这个系统的教程。
renzheshengui 发表于 2018-11-6 15:04 | 显示全部楼层
优先级还能继承?
wakayi 发表于 2018-11-6 15:09 | 显示全部楼层
很好感谢分享
 楼主| 一路向北lm 发表于 2018-11-6 23:44 | 显示全部楼层
小灵通2018 发表于 2018-11-6 09:13
我要去看看这个系统的教程。

学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

293

主题

3837

帖子

81

粉丝
快速回复 在线客服 返回列表 返回顶部