基于位域标识优先级OSEK任务调度算法实现.docVIP

基于位域标识优先级OSEK任务调度算法实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于位域标识优先级OSEK任务调度算法实现

基于位域标识优先级OSEK任务调度算法实现   摘要:基于OSEK标准,构建位域标识优先级的任务调度算法,并在TinyOSEK操作系统中具体实现。通过在系统中定义不同优先级的调度任务,设计试验得出不同优先级的任务调度在商业OSEK和TinyOSEK系统中的时间调度开销,分析并论证基于位域标识优先级的OSEK任务调度算法的实时性和有效性。   关键词:OSEK标准;任务调度;优先级;TinyOSEK   中图分类号:TP312文献标识码:A文章编号:1672??7800(2014)007??0038??03      0引言   为满足日益复杂的汽车电子控制软件“水平分业开放型”开发需要,实现应用软件的可移植性和不同厂商控制模块间的可兼容性,1993年德国汽车工业界提出了OSEK(德文:Offene Systeme and deren Schnittstellen fur die Elektronik im Kraftfahr-zeug)体系[1]。现在流行的嵌入式系统多遵循OSEK标准。该系统调度算法的效率问题一直为学者们所关注。毛成勇、刘祥志、成巍[2]在OSEK/VDX的基础上,提出了任务管理机制和任务调度算法,提高了系统的实时性。蒋建春、张慧[3]通过分析OSEK系统的任务调度机制,提出了一种补偿低优先级任务的补偿调度算法,并证明了算法的可行性。朱宗斌、杜中军[4]运用遗传算法,提出了考虑时间-成本的任务调度机制。学者们对任务调度算法的研究大多集中在提高算法的调度效率,考虑具体实施方案可行性的研究并不多。因此,研究具体的应用环境并提高算法调度效率,尤为必要。本文在单片机上对基于位域标识优先级的任务调度算法进行了具体实现,对其有效性和实时性进行了试验分析。   1基于“位域标识优先级”的调度策略及TinyOSEK 操作系统介绍对用户定义的所有任务,根据优先级别对位域标识优先级的调度策略统一管理命名,并使用32个位域(long word)标识各任务状态(按照优先级依次排列),当操作系统(OS)检测到调度点时,通过库函数获取32个位域的最高非零位,然后执行调度。该策略显然缩减了调度时间开销,同时不同优先级任务之间的开销差别不大。该调度策略大大优化了调度过程,从而节约了调度中的堆栈开销及时间开销,具有良好的动态性能。   本文对位域标识优先级调度算法的具体实现采用TinyOSEK操作系统。TinyOSEK由2个主要部分组成:TinyOSEK操作系统(OS)和 TinyOSEK通信(COM)。其中,TinyOSEK操作系统可以单独运行。如用户要使用通信功能,就要在OIL文件中包含通信内容,需要TinyOSEK(COM)通信加入运行。TinyOSEK通信(COM)是基于TinyOSEK的内部任务消息传递协议。它符合OSEK通信(COM)的CCCA和CCCB模式。TinyOSEK操作系统(OS)是抢占式操作系统,它符合OSEK BCC1任务模式,即只支持基本任务,所有任务有不同的优先级别,每个任务只有一个激活请求,同一优先级只有一个任务。   TinyOSEK的内核使用标准C语言数据类型,使用宏定义来实现系统配置。这样使得TinyOSEK定义的数据结构简单而高效,可读性和可移植性强。   2试验设计   本文以实时系统中定义的不同优先级10ms任务、100ms任务为载体,对任务调度中时间开销进行试验研究,得出两种任务的时间开销,从而分析其实时性。10ms任务和100ms任务均基于协同模式,其中10ms任务优先级高于100ms。两种任务在操作系统配置文件.oil中定义如下:   TASK TASK_T1_10MS {   PRIORITY = 4;   SCHEDULE = FULL;   ACTIVATION = 2;   AUTOSTART = FALSE;   RESOURCE = COOPERATIVE_RESOURCE;   TASK TASK_T1_100MS {   PRIORITY = 3;   SCHEDULE = FULL;   ACTIVATION = 2;   AUTOSTART = FALSE;   RESOURCE = COOPERATIVE_RESOURCE;   (1) 100ms执行过程中,间隔一定的时间会插入一个调度点,从而实现高优先级10ms任务的插入;否则10ms无法“抢占”100ms任务,直到任务结束才通过Terminate Task来调度。   (2)10ms执行过程中,即使出现调度点,低优先级100ms任务也无法插入,直到任务结束才通过10ms任务的Terminate Task来调度。   使用单片机上两个数字输出通道分别模拟10ms任务

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档