什么是RTOS中的优先级反转

描述

当一个高优先级任务正在等待一个资源,但一个低优先级任务正在持有它,一个中等优先级任务继续在中间运行时,就会发生优先级反转——阻止低优先级任务释放它。

如此有效→低优先级任务阻止高优先级任务。

示例

任务H→高优先级任务(需要UART)。

任务L→低优先级任务(目前持有UART互斥)。

任务M→中等优先级任务(不使用UART,但继续运行)。

1.任务L锁定UART互斥。

2.任务H唤醒并尝试锁定UART→,但它被阻止了,因为任务L保留了它。

3.任务M(中等优先级)继续运行,因为它的优先级高于任务L。

4.任务L永远不会获得释放互斥的CPU时间。

5.任务H(高优先级)仍然卡住→优先级反转。

解决方案→优先继承

RTOS暂时提高了任务L的优先级,以匹配任务H,因此它可以快速完成并释放互斥。然后任务H继续。

结论

当高优先级任务被阻止时,就会发生优先级反转,因为低优先级任务持有它所需的资源,而中优先级任务阻止了低优先级任务。这可能会导致系统停滞。RTOS通常通过优先级继承来解决它,低优先级任务的优先级被暂时提高,使其能够快速释放资源。

9月11日及9月17日,STM32研讨会将走进北京和上海。作为ST合作伙伴,麦克泰将在本次研讨会展示功能安全嵌入式实时操作系统SAFERTOS和Flexible Safety RTOS。欢迎报名并现场沟通您的功能安全RTOS需求。

麦克泰技术走过了30年发展历程(1995-2025),秉承“让嵌入式软件开发更容易”的理念,致力于推广嵌入式软件开发工具、测试软件和嵌入式操作系统。麦克泰技术通过举办嵌入式软件和操作系统研讨会、开设培训课程、出版图书,撰写博客文章,倡导和宣传开放和开源的嵌入式软件、操作系统以及开发技术,包括VRTX(90年代)、µC/OS(2000年),Montavista Linux(2010年)和FreeRTOS(2010年)以及IAR/BDI/J-Link等知名的产品和技术。

麦克泰技术具有丰富嵌入式软件项目开发、行业应用与服务经验。今天,我们依托欧美嵌入式软件商业团队支持,提供嵌入式软件商业授权和服务。包括(不限于)SEGGER嵌入式软件开发和编程工具(J-Link/Flasher),OS分析工具Tracealyzer,WITTENSTEIN公司的SafeRTOS(FreeRTOS)、Flexible Safety RTOS(µC/OS-II MPU)以及新一代PX5 RTOS。麦克泰技术专注预认证功能安全操作系统在汽车、轨交、医疗和工业领域的应用以及RISC-V处理器嵌入式开发生态建设。我们正在以开放开源+商业软件的支持,服务产业客户。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分