OSEK-操作系统规范v2[1].2.3(上).docVIP

  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/VDX操作系统规范2.2.3

OSEK/VDX

操作系统

2.2.3版

2月17日,2005

前言

OSEK/VDX是汽车工业界的一个联合项目。目标是建立车用分布式控制单元的开放体系结构。

关于OSEK项目的目标和参与方,详见《OSEK版本规范》。

本文介绍了一个支持多任务处理的实时操作系统的概念,该系统可以用于汽车。本文不是针对某个特定的系统实现的产品介绍。

本文还详细介绍了OSEK操作系统的应用程序接口(API)。

通用的约定,术语及缩写的解释见《OSEK版本规范》术语表。

关于系统的实现和生成方面,参见《OSEK实现语言(OIL)规范》。

目录

TOC\o1-3\h\z\u前言 2

8资源管理 4

8.1访问被占用资源时的行为 4

8.2使用资源的限制 5

8.3调度器也是一种资源 5

8.4同步机制的常见问题 5

8.4.1优先级反转的解释 5

8.4.2死锁 5

8.5优先级限定协议 6

8.6OSEK优先级限定协议在中断级的扩展 7

8.7内部资源 9

9警告 11

9.1计数器 11

9.2警告管理 11

9.3警告回调例程 12

10消息 13

11错误处理,陷入和调试 14

11.1钩子例程 14

11.2错误处理 14

11.3系统启动 17

11.4系统关闭 18

11.5调试 18

12系统服务概述 19

12.1系统对象的定义 19

12.2公约 19

12.2.1调用的类型 19

12.2.2错误特征 20

8资源管理

资源管理用来协调不同优先级的任务对共享资源的并发访问,例如:管理实体(调度器)。程序序列,内存或硬件区域。

对所有的一致类,资源管理都是强制要求的。

资源管理可配置为扩展支持协同并发访问多任务和中断服务函数。

资源管理保证了:

两个任务不能同时占用同一资源。

不发生优先级反转。

使用资源时不发送死锁。

对资源的访问不会使任务进入等待状态。

如果资源管理扩展到中断级,可以进一步确保:

两个任务或者中断服务函数同时占用同一资源。

资源管理功能在以下情况有用:

可抢占任务

非可抢占任务,如果用户试图也希望应用程序代码在其他的调度策略下运行

资源在任务与中断服务函数之间共享

资源在中断服务函数之间共享

如果用户需要防止由任务或者中断造成的执行被打断,用户能使用系统服务来使能/禁止中断,而不会造成重新调度(见第6章,中断处理,和第13.3节,中断处理)。

8.1访问被占用资源时的行为

OSEKOS定义了OSEK优先级限定协议(见8.5节)。因而,不会发送一个任务或者中断试图访问被占用资源的情况。

如果资源的概念应用于任务和中断的协调,那么OSEK操作系统就保证了中断服务函数只在释放了所有该中断服务函数在执行时可能占用的资源后,才能执行。

OSEK严格地禁止对同一资源的嵌套访问。在极少数情况下,需要嵌套访问时,推荐使用与该资源具有同样行为的第二个资源。OIL语言支持定义具有相同行为的不同资源(称为关联资源linkedresources)。

8.2使用资源的限制

当终止任务(TerminateTask),串联任务(ChainTask),调度(Schedule),等待事件(WaitEvent)占用了一个资源时,不能被调用。

一个任务占用多个资源的情况,用户应该按照LIFO原则(类似栈)请求和使用资源。

8.3调度器也是一种资源

如果一个任务要保证自身不被其他任务抢占,它可以锁定调度器。调度器被当作是所有任务都能访问的一种资源。因此,自动生成了命名为“RES_SCHEDULER”的资源。

8.4同步机制的常见问题

8.4.1优先级反转的解释

普通的同步机制(例如,使用信号量)的一种典型问题是优先级反转问题。

优先级反转就是低优先级任务延误了更高优先级任务的执行。OSEK定义了OSEK优先级限制协议(OSEKPriorityCeilingProtocol)(见8.5节)以避免优先级反转。

图8-1说明了两个任务访问信号量的常见顺序(在弯曲抢占式系统中,任务T1有最高优先级)。

图8-1占有信号量情况下的优先级反转

优先级低的任务T4,占有信号量S1。T1抢占了T4,并请求同一个信号量。由于信号量S1已经被占有,T1进入等待态。这时,T4被中断,并且被优先级介于T1和T4之间的一个任务抢占。T1只有在所有比它优先级低的任务都执行完了之后,并且信号量S1被释放后,才能执行。尽管T2和T3不使用信号量S1,它们却在

文档评论(0)

138****9307 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档