首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FreeRTOS与优先级反演

FreeRTOS与优先级反演
EN

Stack Overflow用户
提问于 2015-03-27 05:41:47
回答 2查看 2.6K关注 0票数 1

配置为抢占式调度时,FreeRTOS是否支持优先级反转?我无法从FreeRTOS网站上找到这些信息。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-27 09:01:33

优先级反转是使用RTOS的应用程序的一种特性,而不是RTOS的特性,因此没有RTOS‘支持’优先级反转。然而,RTOSes支持诸如优先级继承和优先级上限算法等功能,以将其影响降到最低。文献会告诉你,这些算法消除了优先级反转,这当然是胡说八道,为了触发算法,倒置必须已经存在。这些算法所做的是使反演时间有界--如果可能的话,最好首先尽量避免反演。

FreeRTOS互斥量(http://www.freertos.org/Real-time-embedded-RTOS-mutexes.html)使用优先级继承来实现有时间限制的优先级反转。

票数 4
EN

Stack Overflow用户

发布于 2015-03-27 10:21:04

Freertos支持优先级继承作为解决优先级反转的一种机制。请检查freertos源代码的tasks.c文件,并参考任务控制块的结构:

代码语言:javascript
复制
 #if ( configUSE_MUTEXES == 1 )
unsigned portBASE_TYPE uxBasePriority;                /* The priority last 
                                                         assigned to the task - 
                                                         used by the priority 
                                                         inheritance mechanism. */

每个任务的任务控制块都有一个变量来保存实际(基本)优先级,如果低优先级任务继承了高优先级任务(顺便说一下)的优先级,它也在等待与低优先级任务相同的资源。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29294049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档