一种osek操作系统内核动态过程静态化方法

文档序号:6526511阅读:176来源:国知局
一种osek操作系统内核动态过程静态化方法
【专利摘要】本发明提供了一种OSEK操作系统内核动态过程静态化方法,即将OSEK操作系统内核对优先级位图和就绪列队的插入和删除操作转由操作系统配置工具来完成:配置工具将任务优先级分成若干优先级组,对每一优先级组中的优先级值进行排序,并计算某一任务的优先级组数值及其在该优先级组中的屏蔽位,以此作为某一任务的优先级索引和掩码。本发明的技术方案强化了配置工具功能,简化了OSEK操作系统内核的位图结构,节约了内存资源,最大程度简化了OS内核动态运算过程,提高了内核实时性和可靠性。
【专利说明】一种OSEK操作系统内核动态过程静态化方法
【技术领域】
[0001]本发明属于设备控制领域,涉及一种任务优先级处理方法,尤其涉及一种汽车电子OSEK操作系统内核动态过程静态化方法。
【背景技术】
[0002]操作系统能够根据用户的实际需求提供丰富的控制策略。操作系统各个任务之间,既保持了相对的独立性,又保证了系统的可靠性,并且能通过特别的调度策略保证系统具有较高的实时性。所以在复杂的、实时性要求高的环境中,RTOS (实时操作系统)得到了广泛的应用。为了满足日益庞大且复杂的汽车电子控制软件的开发需要,实现应用软件的可移植性和不同厂商控制模块间的兼容性,1993年德国汽车工业界联合推出了汽车电子的开放式系统及接口 一 OSEK/VDX (Open Systems and the Corresponding Interfaces ForAutomotive Electronics)规范,旨在为汽车上的分布的控制单元提供一个开放结构的工业标准,本质上说,这也是汽车电子行业各个产业链利益协调的结果。OSEK规范从实时操作系统(Real-Time Operating System, RT0S)、软件接口、通讯和网络管理等方面对汽车的电子控制软件开发平台作了较为全面的定义与规定。满足该规范的实时操作系统我们可以统称为OSEK操作系统。
[0003]汽车电子行业引入操作系统的目的在于为汽车电子类嵌入式开发提供通用的运行环境。在汽车电子操作系统遵循的行业规范——OSEK规范中,对任务、事件、资源、计数器、中断等OS对象的管理进行了明确的说明,还制定了标准的API接口和参数类型。而一个完全符合该规范的操作系统,必然能够提高整个汽车电子基础软件平台的标准化程度,从而增强其应用系统的可移植性、减少后期维护和扩展的开销。
[0004]为了满足汽车电子领域广泛的应用需求,OSEK操作系统内核需要根据需求进行裁剪(如分为不同的符合类),再确定内核的抢占机制。OSEK操作系统需要具备这种灵活多变的内核架构,从而增强可适性和可移植性,真正达到服务需求的目的。要做到这点,必须对应用需求进行解析,抽象,使得成为内核裁剪的依据。
[0005]作为基本的操作系统对象,OSEK操作系统的任务管理单元需要为用户模块化的功能需求提供丰富的解决方案。操作系统要根据需求的逻辑特性,选择不同的任务来实现,而内核通过结合资源和事件,对任务进行激活、抢占、终止等操作,完成任务状态管理、任务转换以及任务间的互操作和同步。尤为重要的是OSEK操作系统的任务是静态设计的,所以这种策略会减少系统中不必要的耦合度,提高系统的安全性。另外,在应用OSEK操作系统时,必须借助汽车电子行业优秀的开发工具(如Matlab等)使其真正做到任务配置的最优化。
[0006]在汽车电子领域会存在大量线程同步和互斥的需求,这是任务互操作的两类表现形式。OSEK操作系统的事件和资源为应用的任务同步,资源共享与互斥提供了有效的管理机制。这里事件具有丰富的内容,如是否接收某一个信息;一个超时信号;或有效资源的占有权等。同样,资源可以是实际的硬件设备,也可以是某一段程序,或者是具体的存贮空间。这些选择和机制为控制系统流程的优化带来了不小的启示。[0007]为了应对汽车电子周期性的功能需求,OSEK操作系统提供了基于定时器和告警的服务。这里定时器可以由一个全局的时钟源引出,形成一个软件的定时器,而告警则基于该定时器延伸出不同的行为。通过设置定时器的计数频率,告警器会触发不同类型的服务,如激活任务、设置某一个事件,或者直接调用一个由用户维护的回调函数。正是有了回调函数,OSEK操作系统大大的增强了用户的自定义行为,也为用户使用操作系统其他服务提供了更多的选择。
[0008]无论是前后台系统,还是OSEK操作系统,都必须对实时性高的中断进行处理。区别在于:0SEK系统将中断纳入到与任务、事件、资源相似的体系中进行管理。这种方式不仅继承了中断高实时性的优点,还充分将这种基于硬件的实时性扩展到任务和资源的体系中(如使用天花板优先级管理机制),使得任务优先级获得提升,从而增强了实时性。
[0009]在现有技术的传统内核中,对优先级的处理是实时并反复的,这种处理模式在应对强实时应用时就会暴露出有效负载低、系统实时性不强等弱点。

【发明内容】

[0010]有鉴于此,本发明的目的是提供一种强化配置工具功能,使其能够最大程度简化OS内核动态运算过程,进而提高的内核实时性和可靠性的设计方法。
[0011]为达到上述目的,具体技术方案如下:
[0012]一种OSEK操作系统内核动态过程静态化方法,包括以下步骤:
[0013]步骤I,利用OSEK操作系统配置工具完成若干任务优先级值配置;
[0014]步骤2,所述配置工具将所述若干任务优先级值分成若干优先级组,并定义优先级组数值;
[0015]步骤3,所述配置工具将每一优先级组中的优先级值排序;
[0016]步骤4,所述配置工具计算某一任务的优先级组数值及其在优先级组中的屏蔽位;
[0017]步骤5,所述配置工具根据优先级数值和算法生成操作系统任务优先级索引和掩码。
[0018]优选的,还包括步骤6,所述OSEK操作系统内核根据配置工具生成的优先级索引和掩码进行“或”与“非”运算,以实现任务优先级位图以及就绪列队的插入和删除操作。
[0019]优选的,所述步骤3中按从小到大的顺序将每一优先级组中的优先级值排序。
[0020]优选的,所述步骤I中若干任务的优先级值为若干连续的相对优先级值。
[0021]相对于现有技术,本发明的技术方案的优点有:
[0022]本发明的技术方案简化了位图结构,节约内存资源,强化了配置工具功能,最大程度简化了 OS内核动态运算过程,提高了内核实时性和可靠性。
【专利附图】

【附图说明】
[0023]构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0024]图1是本发明的实施例的位图的结构示意图。【具体实施方式】
[0025]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0026]需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相
互组合。
[0027]以下将结合附图对本发明的实施例做具体阐释。
[0028]如图1所示的本发明的实施例的一种OSEK操作系统内核动态过程静态化方法,OSEK操作系统包括执行若干任务的优先级位图以及就绪列队的插入和删除操作的配置工具,包括以下步骤:
[0029]步骤I,若干任务配置有若干不同的优先级值;
[0030]步骤2,配置工具将若干任务分成若干优先级组,并定义优先级组数值:
[0031]步骤3,配置工具将每一优先级组中的优先级值排序;
[0032]步骤4和5,配置工具计算某一任务的优先级组数值及其在优先级组中的屏蔽位,并生成某一任务的优先级索引和掩码。
[0033]本发明主要围绕OSEK操作系统内核的强实时性等方面来展开,针对现有内核设计策略中动态性过多从而导致系统整体实时性下降这一不足,提出了一种强化配置工具功能,使其能够最大程度简化OS内核动态运算过程,进而提高的内核实时性和可靠性的方法。
[0034]内核动态过程主要分为内核状态变换和上下文切换两部分,后者与硬件平台相关,所以难以实现静态化。内核状态变换主要包括优先级计算、就绪队列插入与删除,参数判断、对象状态设置等内容。作为一个严格遵循OSEK规范的操作系统,其内核参数判断和对象状态设置的方法和步骤是相对稳定的,所以内核状态变换动态过程的优化主要就集中在优先级处理、就绪队列插入与删除两个方面。
[0035]在传统内核中,对优先级的处理是实时并反复的,这种处理模式在应对强实时应用时就会暴露出有效负载低、系统实时性不强等弱点。本发明的实施例使用OS配置工具对优先级处理过程进行剥离,将用户配置的优先级数值转化为OS内核可直接处理的索引值(Os_TaskPrioIndex [object])和掩码(Os_TaskReadyPrioSet [object]),减少 了优先级处理过程中反复进行的优先级数值-优先级掩码-优先级索引转换动作,从而实现了 OS内核动态过程的静态化即实时性的提升。
[0036]位图的操作主要包含置位和清除,它们均以OS对象的优先级为基础。本发明的实施例使用配置工具对优先级索弓丨(如Os_TaskPrioIndex[object])和掩码(0s_TaskReadyPrioSet [object])进行赋值,使得优先级位图的插入和删除操作过程简化为基本的“与” “或”运算:
[0037]因此,本发明的实施例通过对OS内核动态过程的静态优化,使内核整体的实时性得到显著的提高。
[0038]在本发明的实施例中,优先级均为相对优先级,且从O开始,数值越大,优先级越高。举例来说,如果用户配置两个任务TaskO和Taskl ,TaskO优先级低于Taskl,那么配置工具会为两个任务分配的优先级依次为O和I。
[0039]假设用户配置了 17个任务,每一个任务的优先级均不相同,其中任务I的ID为0,优先级为O ;任务2的ID为I,优先级为7 ;任务17的ID为16,优先级为16。对于上述配置而言,17个优先级按照每16个连续的不同优先级为一组的方式分为两组(数组的标号从O开始,所以这里组号也从O开始计数,到I为止,共计2组),为了应用方便,配置工具定义并生成一个宏PR10RITY_GR0UP来表示优先级组的数值。
[0040]如图1中所示,在本发明的实施例中,其中,数值为0-15的优先级属于组0,数值为16的优先级属于组I。同时配置工具会对每组优先级进行排序,并计算每组优先级所在的优先级组和优先级屏蔽位(按照任务ID的大小顺序进行),结果保存在前面已定义的两个数组(Os_TaskPrioIndex和Os_TaskReadyPrioSet)中。而每个任务均可通过ID来查询其优先级所在的组和优先级屏蔽位信息。
[0041]本发明的实施例的位图(Os_ReadyMap)的空间大小(即PR10RITY_GR0UP)可根据应用需求灵活配置,从而减少了 ROM的占用量。另外,由于OS优先级算法只与任务、资源相关,因此在本发明的实施例中,内核根据配置工具计算出的任务优先级和资源优先级的索引Os_TaskPrioIndex、掩码Os_TaskReadyPrioSet和位图处理算法实现了任务ID、资源ID与位图Os_ReadyMap的关联。
[0042]根据上述原理,任务I和任务2的优先级应在优先级组0,其优先级屏蔽位为分别为0x0001和0x0080 ;而任务17的优先级应在优先级组I中,其优先级屏蔽位为0x0001。配置工具生成文件中相关的信息如下:
[0043]
【权利要求】
1.一种OSEK操作系统内核动态过程静态化方法,其特征在于,包括以下步骤: 步骤1,利用OSEK操作系统配置工具完成若干任务优先级值配置; 步骤2,所述配置工具将所述若干任务优先级值分成若干优先级组,并定义优先级组数值; 步骤3,所述配置工具将每一优先级组中的优先级值排序; 步骤4,所述配置工具计算某一任务的优先级组数值及其在优先级组中的屏蔽位; 步骤5,所述配置工具根据优先级数值和算法生成操作系统任务优先级索引和掩码。
2.如权利要求1所述的OSEK操作系统内核动态过程静态化方法,其特征在于,还包括步骤6,所述OSEK操作系统内核根据配置工具生成的优先级索引和掩码进行“或”与“非”运算,以实现任务优先级位图以及就绪列队的插入和删除操作。
3.如权利要求2所述的OSEK操作系统内核动态过程静态化方法,其特征在于,所述步骤3中按从小到大的顺序将每一优先级组中的优先级值排序。
4.如权利要求3所述的OSEK操作系统内核动态过程静态化方法,其特征在于,所述步骤I中若干任务的优先级值为若干连续的相对优先级值。
【文档编号】G06F9/48GK103729245SQ201310743373
【公开日】2014年4月16日 申请日期:2013年12月27日 优先权日:2013年12月27日
【发明者】华明 申请人:普华基础软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1