野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7074|回复: 3

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

[复制链接]
发表于 2018-11-1 13:21:11 | 显示全部楼层 |阅读模式
看了两遍才懂

三个线程分别是 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线程的执行时间。

回复

使用道具 举报

发表于 2018-11-1 13:37:00 | 显示全部楼层
回复

使用道具 举报

发表于 2018-11-1 17:03:42 | 显示全部楼层
牛逼,两遍就懂了,还总结了,这章写得怎么样
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-1 20:38:27 | 显示全部楼层
杰杰 发表于 2018-11-1 17:03
牛逼,两遍就懂了,还总结了,这章写得怎么样

哈哈,我大言不惭了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-25 11:40 , Processed in 0.030868 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表