任务的优先级-Read.PPT

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
任务的优先级-Read

OSEK/VDX标准的产生 1993年5月,几家德国汽车制造商同意在适用于汽车且通用的实时分布式操作系统的规范化方面进行合作,产物就是OSEK(OSEK:Offense systeme und deren Schnit-stellen fur ide Elek im Kraftfahrzeug)。 与此同时,法国的PSA和Renault开发了一个类似的系统,该系统被成为VDX(VDX:Vehicle Distributed eXecu-tive)。 1994年,两项目合并,1995年,OSEK/VDX面世,译文大意是用于汽车电子的、带有接口的开放式系统。 OSEK/VDX是什么? OSEK/VDX是用于分布式实时结构的一组标准,它包含四个标准:操作系统(OS)、通信(COM)、网络管理(NM)和OSEK实现语言(OIL)。 虽然OSEK/VDX是欧洲汽车工业开发的,但它并不只是一个用于汽车的实时操作系统。基于这个标准的系统能够并且将要用于其他应用中,只要这些应用是被静态定义且需要一个紧凑的分布式实时系统。 我们所主要关心的是其中的操作系统标准部分。 OSEK工作组于2000年11月推出OS Specification V2.1r1版本 OSEK的几个要点 OS在单处理器上运行 OS在启动时由用户配置指令生成,以后不支持任务的动态生成。 OS提供的服务提供了标准接口,对于不同的处理器实现接口必须相同,即通常所说的OS的移植。 支持符合类(见后面详细介绍)和不同的调度策略。 几乎所有的API都返回一个StatusType类型,有几个例外。(StartOS()、ShutdownOS()、GetActiveApplica-tionMode()、EnterISR()、LeaveISR()) 标准状态模式(API只返回E_OK)和扩展状态模式(可以返回错误码),一般系统测试阶段采用扩展状态模式,发布的时候采用标准状态模式。 回调函数和应用程序模式。 OSEK OS体系结构 OS标准中定义的服务被两种实体来使用:中断服务程序(ISR)和任务(Task) 标准定义了三个处理级别:中断Level、调度Level、任务Level。以下分别翻译成:中断层、调度层、任务层。图示如下: OSEK OS体系结构 优先级规则 中断的优先级要高于任务 中断处理层可以包含一个或多个中断优先级 ISR的中断优先级是静态分配的 ISR的优先级的分配与具体实现或硬件体系结构有关 对于任务的优先级和资源的天花板优先级来说,大的数字指较高的优先级。For task priorities and resource ceiling-priorities bigger numbers refer to higher priorities. 任务的优先级由用户(应用程序开发人员)指定 OSEK体系结构 在OS标准里,符合类也算作了体系结构的一部分 四个符合类: BCC1(基本符合类1) BCC2(基本符合类2) ECC1(扩展符合类1) ECC2(扩展符合类2) 因牵涉到很多任务的具体概念,每个符合类的定义放在任务之后再说。 任务-任务的类型 任务有两种类型:基本任务(BT)和扩展任务(ET)。 基本任务只在以下三种情况释放CPU: 一、任务结束 二、OS切换到高优先级的任务去运行 三、产生中断,CPU去执行ISR。 区别于基本任务,扩展任务可调用WaitEvent()服务进入等待(Waitiing)状态,等待状态下的任务释放CPU,允许原本比它低优先级的任务去执行。 扩展任务状态转换 基本任务状态转换 两种任务类型的比较 基本任务没有等待状态,仅在任务开始和结束形成同步点(Synchronisation points),如果应用程序需要内部同步点,可以用两个以上任务实现。 标准中有这样一句:An advantage of basic tasks is their moderate requirement regarding run time context (RAM).(??) 扩展任务的有点是:可以由一个任务完成一个连贯的工作,即使有同步需求。当扩展任务缺少继续往下运行需要的信息时,便进入等待状态。当具有需要的信息(事件被设置或者数据被更新)时,脱离等待状态。 任务的优先级 OS标准中的任务具有静态定义的优先级,它不能被应用程序修改。 有一种特殊情况,就是优先级天花板协议有效时,操作系统能改变一个任务的优先级。 标准中定义0是最低的优先级,没有定义最高优先级,定义太多的优先级将会影响应用程序的可移植性 如果允许多个任务具有相同的优先级,则需要多级任务队列。同优先级按照FIFO进行调度。 见下图: 任务的激活 激活将会使任务从挂

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档