打印
[应用相关]

于RT-thread 互斥量中优先级继承机制

[复制链接]
953|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
线程还可以设置优先级,看来要好好学习一下

是啊,这个不难

使用特权

评论回复
5
一路向北lm|  楼主 | 2018-11-1 20:41 | 只看该作者

使用特权

评论回复
6
幸福小强| | 2018-11-5 21:35 | 只看该作者
听说要搞研讨会,还是周六,我要看看有空没,报个名去

使用特权

评论回复
7
捉虫天师| | 2018-11-5 23:16 | 只看该作者
这两年这个系统挺火,

使用特权

评论回复
8
小灵通2018| | 2018-11-6 09:13 | 只看该作者
我要去看看这个系统的教程。

使用特权

评论回复
9
renzheshengui| | 2018-11-6 15:04 | 只看该作者
优先级还能继承?

使用特权

评论回复
10
wakayi| | 2018-11-6 15:09 | 只看该作者
很好感谢分享

使用特权

评论回复
11
一路向北lm|  楼主 | 2018-11-6 23:44 | 只看该作者
小灵通2018 发表于 2018-11-6 09:13
我要去看看这个系统的教程。

学习一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

277

主题

3815

帖子

76

粉丝