一种优化嵌入式系统中优先级反转方法技术方案

技术编号:26689432 阅读:19 留言:0更新日期:2020-12-12 02:38
本发明专利技术涉及计算机信息处理技术领域,特别涉及一种优化嵌入式系统中优先级反转方法,所述优化嵌入式系统中优先级反转方法为将被访问时带有锁定功能的对外寄存器更改为可重复访问的对外寄存器,以使所述对外寄存器可以同时被多个任务访问;且所述对外寄存器仅在资源更新的特定时段会被锁定。采用本发明专利技术提供的优化嵌入式系统中优先级反转方法,可以有效避免因多核系统存在的各个内核的优先级机制不同导致无法确认最高优先级的情况,同时避免了因更新任务导致的数据资源长期被霸占使得其他任务无法快速运行下去的弊端,具有广泛的市场应用前景。

【技术实现步骤摘要】
一种优化嵌入式系统中优先级反转方法
本专利技术涉及计算机信息处理
,特别涉及一种优化嵌入式系统中优先级反转方法。
技术介绍
在多任务并发的环境里,从概念上看,是有多个任务在同时执行,但是,事实上,任何时刻只能有一个任务处于执行状态,因此,操作系统需要识别哪些任务需要优先执行、哪些任务暂时等待,这也是本领域中经常出现的有关任务调度的问题。在嵌入式系统中,为防止程序重复访问,关键变量资源等都带有锁定功能,也就是说,当有任务访问该变量时,该变量不允许其他任务访问。低优先级任务可能会占据变量资源,使得高优先级任务进入持续等待现象,这种现象叫做优先级反转,也因此造成许多高优先级任务被许多较低有相机任务阻塞,实时性难以得到保障;例如:如图1所示,存在任务A,B,C,其中A任务优先级最高,B任务次高,C任务最低。由于C任务在执行时,锁定了资源,使得其他任务不得调度此任务。A任务虽然打断C任务,但是由于资源被锁定,只能退出任务。使得B任务优于A任务被执行,直到C任务调度后,才执行A任务。虽然A任务的优先级比较高,但是在本例中,其优先级程度反而不如B任务和C任务。申请号为201710501881.9的《任务的优先级处理方法和处理装置》公开了一种任务的优先级处理方法和处理装置,其公开日为2019年1月3日,该任务的优先级处理方法中,所述任务包括第一任务、第二任务和第三任务,所述的第一任务的优先级高于所述第二任务和所述第三任务;所述方法包括:当所述第一任务由于访问第一临界区失败而被阻塞时,提升与所述第一任务共享第一临界区且正在访问所述第一临界区的第二任务的优先级;判断是否存在与第二任务共享第二临界区且正在访问所述第二临界区的第三任务;当存在所述第三任务时,提升所述第三任务的优先级。本申请实施例提供的方案避免了优先级低的第三任务拖延第二任务的执行,从而避免优先级高的第一任务延迟执行造成的优先级反转;但是,事实上,在多核系统中,由于运算内核不止一个,各内核的优先级机制不同,某一运算内核中较低优先级任务的优先级并不能确定是所有内核中允许的最高优先级,由此导致的优先级反转问题,并未得到很好的解决。
技术实现思路
为解决上述
技术介绍
中提及的多任务处理中存在优先级反转的问题,本专利技术提供一种优化嵌入式系统中优先级反转方法,将被访问时带有锁定功能的对外寄存器更改为可重复访问的对外寄存器,以使所述对外寄存器可以同时被多个任务访问;且所述对外寄存器仅在更新的特定时段会被锁定。在上述方案的基础上,进一步地,所述对外寄存器上设有影子寄存器,所述影子寄存器的内容为当前所述对外寄存器的值或者更新后所述对外寄存器的值。在上述方案的基础上,进一步地,所述更新任务对所述对外寄存器更新的特定时段,依据对外寄存器的访问情况设定。在上述方案的基础上,进一步地,当所述对外寄存器未被其他更高优先级的任务占用时,所述对外寄存器锁定,并直接对对外寄存器的数据进行更新。在上述方案的基础上,进一步地,当所述对外寄存器被其他优先级高于所述更新任务的任务占用时,所述更新任务则锁定所述影子寄存器,并对所述影子寄存器内的值进行更新,以便后续直接将所述影子寄存器内更新后的值直接更新至所述对外寄存器内。在上述方案的基础上,进一步地,当更新任务访问所述对外寄存器时,存在其他更高优先级的任务需要访问所述对外寄存器时,所述更新任务被中断,并改为访问所述对外寄存器的影子寄存器,以使更高优先级的任务不会因更新任务锁定对外寄存器而无法访问,同时对所述影子寄存器内的值进行更新,以便后续直接将所述影子寄存器内更新后的值直接更新至所述对外寄存器内。在上述方案的基础上,进一步地,当访问的任务需要改写寄存器时,以绝对变量形式存储于其他单元;所述绝对变量在更新任务对影子寄存器或者对外寄存器进行更新时会对更新的值进行修订。在上述方案的基础上,进一步地,有且只有1个用于更新所述对外寄存器内资源的第一函数。在上述方案的基础上,进一步地,存在1个或多个用于针对所述第一函数的值进行修订的第二函数,所述第二函数无法对第一函数进行修改。在上述方案的基础上,进一步地,所述特定时段的时间周期少于5-6个指令周期。在上述方案的基础上,进一步地,所述系统为单核或者多核系统。本专利技术提供的优化嵌入式系统中优先级反转方法与现有的技术相比,具有以下的效果:可以有效避免多核系统中,由于运算内核不止一个,各内核的优先级机制不同,某一内核中的较低优先级任务的优先级无法确定是允许的最高优先级,同时也能适用于单核系统,避免出现优先级反转的问题。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术提供的一种优先级翻转示例的示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术提供一种优化嵌入式系统中优先级反转方法,将被访问时带有锁定功能的对外寄存器更改为可重复访问的对外寄存器,以使所述对外寄存器可以同时被多个任务访问;且所述对外寄存器仅在资源更新的特定时段会被锁定。具体实施时,在嵌入式系统中,为防止程序重复访问,关键变量资源等都带有锁定功能,也就是说,当有任务访问该变量时,该变量不允许其他任务访问,由此导致低优先级任务可能会占据变量资源,使得高优先级任务进入持续等待现象,这种现象叫做优先级反转。然而,本专利技术中被访问时带有锁定功能的对外寄存器更改为可重复访问的对外寄存器,从而提升访问效率,尤其在多核系统中,可允许其他内核访问该变量资源,缩短访问时间;与此同时,为了避免由此导致的无法对所述对外寄存器进行数据更新,由此设定某一特定时段可以对所述对外寄存器进行数据或资源的更新;需要说明的是,所述特定时段需根据所述对外寄存器的被访问或修改频率,在某个被访问或修改几率较低的时段进行更新;亦或者,根据更新任务的进度来判断。优选地,所述对外寄存器上设有影子寄存器,所述影子寄存器的内容为当前所述对外寄存器的值或者更新后所述对外寄存器的值。具体实施时,在系统中,将在对外寄存器上增设一个影子寄存器,同时将对外寄存器内的变量或值放在可访问地址中,影子寄存器内容为当前或更新的所述对外寄存器的值;在特殊时段,对所述对外寄存器的值进行更新,而这个时间点一般不会超过一定的指令周期,所述指令周期优选为5-6个。这样,在非更新的时间点,任何内核和程序均可本文档来自技高网
...

【技术保护点】
1.一种优化嵌入式系统中优先级反转方法,其特征在于:将被访问时带有锁定功能的对外寄存器更改为可重复访问的对外寄存器,以使所述对外寄存器可以同时被多个任务访问;/n且所述对外寄存器仅在资源更新的特定时段会被锁定。/n

【技术特征摘要】
1.一种优化嵌入式系统中优先级反转方法,其特征在于:将被访问时带有锁定功能的对外寄存器更改为可重复访问的对外寄存器,以使所述对外寄存器可以同时被多个任务访问;
且所述对外寄存器仅在资源更新的特定时段会被锁定。


2.根据权利要求1所述的优化嵌入式系统中优先级反转方法,其特征在于:所述对外寄存器上设有影子寄存器,所述影子寄存器的内容为当前所述对外寄存器的值或者更新后所述对外寄存器的值。


3.根据权利要求2所述的优化嵌入式系统中优先级反转方法,包括更新任务,其特征在于:所述更新任务对所述对外寄存器更新的特定时段,依据对外寄存器的访问情况设定。


4.根据权利要求3所述的优化嵌入式系统中优先级反转方法,其特征在于:当所述对外寄存器未被其他更高优先级的任务占用时,所述对外寄存器锁定,并直接对对外寄存器的数据进行更新。


5.根据权利要求3所述的优化嵌入式系统中优先级反转方法,其特征在于:当所述对外寄存器被其他优先级高于所述更新任务的任务占用时,所述更新任务则锁定所述影子寄存器,并对所述影子寄存器内的值进行更新,以便后续直接将所述影子寄存器内更新后的值直接更新至所述对外寄存器内。

...

【专利技术属性】
技术研发人员:陈文龙周青山宁荣华苏明
申请(专利权)人:厦门势拓御能科技有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1