当前位置:首页 > 嵌入式 > 嵌入式分享
[导读]通常情况下,任务的优先级是根据其重要性和紧急性来设定的。但是,在并发系统或多任务环境中,确实存在一种被称为“优先级反转”的现象。


在这篇文章中,小编将为大家带来嵌入式实时操作系统中的优先级反转问题的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。


一、什么是嵌入式操作系统实时操作系统

嵌入式实时操作系统(Embedded Real-time Operation System,RTOS)。嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”。

当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。

注:在工业控制、 军事设备、 航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。我们常常说的嵌入式操作系统都是嵌入式实时操作系统。比如μC/OS-II、eCOS和Linux、HOPEN OS。故对嵌入式实时操作系统的理解应该建立在对嵌入式系统的理解之上加入对响应时间的要求。

二、嵌入式实时操作系统中的优先级反转问题

通常情况下,任务的优先级是根据其重要性和紧急性来设定的。但是,在并发系统或多任务环境中,确实存在一种被称为“优先级反转”的现象。

什么时候会遇到这种现象?解决资源争用问题时。

死锁预防是实时系统设计中的一个重要因素。不幸的是,即使使用安全排除技术,这可能也不是困难的终点。在解决资源争用问题时,可能引入新的优先级翻转问题。

电电侠   能详细解释下优先级反转的原理吗?优先级翻转的基本原理可以通过一个简单的两任务(A 和 B)系统的行为来解释。

假设任务A 正在使用一个锁定的资源,此时调度程序决定进行任务交换,新任务B希望使用 A 持有的资源。在检查访问机制时,发现资源不可用,因此任务 B 挂起。互斥机制按计划执行。但是如果 B的优先级高于 A 呢? 结果仍然相同,B仍然被阻塞。结果是低优先级的任务 A 阻塞了高优先级的任务B;在 A 释放锁定资源之前,B不能执行。系统的行为表现得好像优先级颠倒了一样,即优先级翻转。然而,这种行为正是使用互斥时所期望的,没什么异常。

电电侠   (若有所思)在双任务系统中,性能下降可能不是一个大问题。   但是看下图的情况。

嵌入式实时操作系统中的优先级反转问题如何引起的

这是一个四任务系统,由任务 A、B、C和 D(按照优先级顺序)组成。系统还包括两个共享资源 W 和 X。请注意,为了简化对系统行为的解释,做了以下假设。

(1)上下文切换(重新调度)仅在滴答(tick)时间发生。

(2)任务可以随时挂起。

(3)任务可以随时就绪。

一个运行时场景

上图示例的一个运行时场景,如下图所示。在t0时刻,任务 D正在执行,其他任务处于挂起状态。在下一个滴答中断(t1时刻)发生之前,D锁定资源W。

注意:所有其他任务都已就绪。

在t1时刻,任务A抢占D,任务D重新进入就绪(等待运行)状态。不久之后,A 试图使用资源W 但发现它被锁定,因此任务A 挂起。t2时刻,任务 B被激活,运行至完成,然后挂起。在t3时刻,任务C运行至完成并挂起。然后在t4时刻,D 再次执行。只有当任务 D释放资源锁时,A 才能执行(t5时刻)。

嵌入式实时操作系统中的优先级反转问题如何引起的

在此设计中,任务A被赋予最高优先级,因为它是一项重要的任务。然而由于互斥机制锁,任务A只能被迫等待所有其他任务完成后才能执行。

电电侠   显然这种表现是不能接受的, 如何才能防止“连锁”优先级翻转情况的发生?   这个问题可以通过两种方式解决,都涉及临时提升任务优先级。

运行任务的优先级可以提高到通过优先继承技术获取的确定值。

为共享资源分配优先级,然后将正在运行的任务的优先级提高到资源优先级值,这种方式称为优先级天花板技术。

三、嵌入式实时操作系统实时性影响因素

1、缩短中断响应时间。

几乎所有的实时事件都是通过中断上报的,当中断来临时,必须停止当前的一切任务,响应中断,把中断分成两部分:上半部分与下半部分,或者快中断部分与慢中断部分。上半部分屏蔽其他中断,处理那些紧急任务,如清除某些寄存器,保存中断现场,给相应进程发送消息等, 其他不太紧急的部分放在下半部分,此时所有中断打开,不影响其他任务的完成。

2、缩短进程上下文切换时间。

当CPU在执行某个任务时,实时任务到来,需要马上执行实时任务,不能等到当前任务时间片用完才去执行实时任务,必须在中断来临之时马上能够切换过去,保存当前进程的上下文如寄存器,内存,文件,信号等上下文,恢复实时任务的上下文。保存恢复上下文越快越好,这就要求两个进程的上下文共享的资源越少越好,如每个任务的内存是独立的,甚至寄存器也是独立的,这样互不干扰,切换最快了。

3、缩短实时进程调度时间。

一般进程都是按照优先级调度的,实时进程的优先级当然要比非实时的高, 不同实时进程按紧急度不同优先级也不同,实时进程调度算法最好与非实时部分有所区别,算法复杂度最好是O(1)。

以上便是小编此次想要和大家共同分享的内容,如果你对本文内容感到满意,不妨持续关注我们网站哟。最后,十分感谢大家的阅读,have a nice day


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭