OSEK/VDX标准的产生 1993年5月,几家德国汽车制造商同意在适用于汽车且通用的实时分布式操作系统的规范化方面进行合作,产物就是OSEK(OSEK:Offense systeme und deren Schnit-stellen fur ide Elek im Kraftfahrzeug)。

Slides:



Advertisements
Similar presentations
定 格 入 格 破 格 —— 新诗仿写复习训练 仿照下列句子,再把 “ 人生 ” 比喻成 “ 大海 ”“ 天空 ” , 造两个句子。 如果说人生是一首优美的乐曲,那么痛苦则 是其中一个不可或缺的音符。 参考答案: 1 、如果说人生是一望无际的大海,那么挫折则 是其中一个骤然翻起的浪花。 2 、如果说人生是一片湛蓝的天空,那么失意则.
Advertisements

一、中国湿地面临的威胁 目前,湿地污染严重,湖泊 富营养化问题突出。随着社 会经济的快速发展,湿地污 染在很长时期内依然严重。 湿地污染 1.
股指期货的风险及防范.
专题二:城市化与城乡规划 授课教师:周栋文.
普陀区税务局 营业税改征增值税试点 最新政策 货物和劳务税科 2013年7月.
会计要素与会计恒等式 Accounting Elements and Equation
延庆县“十二五”时期城乡基础设施 建设规划 2011年03月.
滚 滚 长 江 安匠初中:李艳阁.
长江的开发 惠州市河南岸中学 谢国文.
英文打字入門 大華技術學院 資訊管理系 指導老師:陳信如 老師 學生:資五A 李姿諭.
第四章 保税货物的通关(上).
产学研项目财务管理若干问题 鲁春艳
色达县药材基地建设项目.
Foundations of Computer Science
-矿产资源勘查开采的有关法律知识介绍 四川省国土资源厅 陈东辉
IT原理与应用(1)-电脑系统 IT Principles and Applications (1) - Computer System
“罗马曾三次征服世界,第一次是以武力,第二次是以宗教,第三次则是以法律。而第三次征服也许是其中最为平和,最为持久的征服。”
长江.
特於每周一上午於一樓長青門診中心開立男性健康特別門診
加快数据中心运转速度 — 加速业务发展 约翰•福勒 甲骨文公司系统事业部执行副总裁. 加快数据中心运转速度 — 加速业务发展 约翰•福勒 甲骨文公司系统事业部执行副总裁.
诸葛亮广场.
103年高雄市自然與生活科技學習領域教學研習 動物單元的 教學理念與實踐 講師:屏東縣和平國小 周鳳文.
关注品德与生活课的 探究性学习和微课程的发展
熟男大敵 「攝護腺癌」 《攝護腺長怎樣》 攝護腺又稱為前列腺 ,是男性身上特有的 一種性腺,正常大小 約與栗子一般大小, 重量約20公克。
东京城市建设史简述.
操作系统结构.
雅思大作文的结构 Presented by: 总统秘书王富贵.
主讲:江西财经职业学院傅文清 联系电话: 教学模式与课程教学设计 主讲:江西财经职业学院傅文清 联系电话:
22 第 课 增强自我保护的意识和能力.
在课题探索中成长 东风东路小学 王洁华 全国红领巾示范学校 广东省一级学校
教育信息化建设诊断评价与改进一级指标体系构建
关注女职工劳动保护,维护女职工合法权益 ——《女职工劳动保护特别规定》解读
第六课 我们的 中华文化.
企业引进顶级人才之门, 人才跨上顶级职业之路 。
学习雷锋好榜样 ——高一年12班主题班会.
第5讲 电子控制防抱死制动系统 (ABS).
科學科 污染 空氣 成因 的 : 題目 及 減少空氣污染的方法 陳玉玲 (4) 姓名 : 去到目錄.
霸气车辆.
Operating System CPU Scheduing - 2 Monday, August 11, 2008.
Operating System CPU Scheduing - 3 Monday, August 11, 2008.
YARN & MapReduce 2.0 Boyu Diao
Coruscant 台中.
也許你很疑惑: 最近升官的同事,專業能力又沒你強! 情場得意的朋友,長的又沒你帥或美! 小曹要交新朋友,為什麼就是比較簡單!
Consumer Memory 指導老師 莊勝雄 MA4D0102郭虹汝MA4D0201吳宜臻.
第六章 应用程序结构.
作業系統 補充: 雲端運算.
Applied Operating System Concepts
電腦硬體裝修丙級 萬能工商 資訊科 許藝璋 老師 編製.
電腦硬體裝修 授課數位教材.
第五章 MSP430中斷式數位I/O.
HLA - Time Management 陳昱豪.
ICT RTOS Research Group 胡伟平,王剑
陈香兰 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009.
和諧社區資訊服務推廣計畫 -軟體雲端社區 資訊研習營
邹佳恒 第十八届全国科学计算与信息化会议 • 威海,
詩文的形成 有意義的字詞 句子 段落 一首詩文的形成,是由有意義的字詞組成句子,再由句子組成段落。
Operating System Principles 作業系統原理
第3章 認識處理元.
Real-Time System Software Group Lab 408 Wireless Networking and Embedded Systems Laboratory Virtualization, Parallelization, Service 實驗室主要是以系統軟體設計為主,
Operation System(OS).
RTOS.
虚 拟 仪 器 virtual instrument
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
水利绿色发展问题与建议 姜文来 中国农业科学院农业资源与农业区划研究所.
CHAPTER 6 Concurrency:deadlock And Starvation
资源分配与调度 第5章 资源分配与调度.
李元金 计算机与信息工程学院 第 12 讲 存储器管理(1) 李元金 计算机与信息工程学院 1/
彰化花壇【高速公路戰備跑道啟用】參觀點 時間:96年5月15日 時
嵌入式系统及应用 OSEK/AUTOSAR OS简介
第六章 直接成本法.
Presentation transcript:

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在启动时由用户配置指令生成,以后不支持任务的动态生成。 支持符合类(见后面详细介绍)和不同的调度策略。 几乎所有的API都返回一个StatusType类型,有几个例外。(StartOS()、ShutdownOS()、GetActiveApplica-tionMode()、EnterISR()、LeaveISR()) 标准状态模式(API只返回E_OK)和扩展状态模式(可以返回错误码),一般系统测试阶段采用扩展状态模式,发布的时候采用标准状态模式。 回调函数和应用程序模式。

OSEK OS体系结构 OS标准中定义的服务被两种实体来使用:中断服务程序(ISR)和任务(Task) 标准定义了三个处理级别:中断Level、调度Level、任务Level。以下分别翻译成:中断层、调度层、任务层。图示如下:

优先级的划分必须满足下列条件,k……m分配给ISR,j分配给调度程序,0……i分配给任务,其中0≤i<j<k≤m OSEK OS体系结构 调度层:调度任务,所有的调度活动处在这一层。

优先级规则 中断的优先级要高于任务 中断处理层可以包含一个或多个中断优先级 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进行调度。 见下图:

任务的激活 激活将会使任务从挂起状态到就绪状态。 基本任务有一个独特的特性:多重激活,应用程序可以对基本任务提出多重激活请求(“Multiple requesting of task activation”)。意思是操作系统接收并记录已激活基本任务的并发激活请求。操作系统生成阶段会有一个激活次数的最大值。 基本任务状态转换图中的特殊情况:当一个基本任务处于非挂起状态时,激活并立即不进入就绪状态。 多重激活允许一个任务终止后然后立即在执行。 缺点:需要(??)一个包含所有优先级的多任务队列。

符合类 一个符合类被定义为操作系统要求的一个具体实现这样要求包括一个由应用指定的属性集。 属性 BCC1 BCC2 ECC1 ECC2 基本任务激活数 1 ≥1 每个优先级任务数 基本任务 Yes 扩展任务 No

符合类 任务是向上兼容的:任何为BCCx符合类开发的任务可在可在一个ECCx符合类中使用,任何为xCC1符合类编写的任务可在xCC2符合类中使用。

符合类 具体开发OSEKOS,支持一个符合类即可。标准中为每个符合类的属性定义了一组最小的需求数值,超过这组数字将会影响可移植性。

调度策略 调度策略分三种:非抢占、全抢占、混合抢占 软件开发人员或者系统集成者通过给每个任务分配优先级并且把是否可抢占作为一个任务的属性来决定任务的执行顺序。 调度函数Schedule()检查就绪的最高优先级的任务,把处理器交给它。 如果OS API(或者称系统服务)正在运行,调度可能要推迟到这个API完成之后。

非抢占调度

非抢占调度的调度点 非抢占调度的调度点: 一个任务的成功结束(调用TerminateTask) 一个任务成功结束并显示激活一个任务(当前任务调用ChainTask()) 显示调用调度函数Schedule() 一个任务调用WaitEvent(),并转入等待状态。

全抢占调度策略

全抢占调度的调度点 调度点: 一个任务的成功结束(当前任务调用TerminateTask()一个任务要结束必须调用它) 一个任务成功结束并显示激活一个任务(当前任务调用ChainTask()) 在任务层激活一个任务 显示的调用WaitEvent(),并转入等待转态 在任务层设置了某个任务正在等待的事件 任务层资源的释放 从中断层转到任务层运行

混合抢占任务调度 如果应用程序中的一些任务被指定为抢占任务,而另一些被指定为非抢占任务,则该程序采用混合抢占任务调度策略。 在这种策略下,操作系统根据当前运行任务允许的抢占类型决定是否启动调度程序。 非抢占任务在混合调度中的意义: 如果任务的执行时间和上下文切换时间差不多 如果为保存任务的上下文需耗费大量内存 应用程序中某个任务被强制指定为非抢占

任务的终止 在OSEK操作系统中,一个任务只能被它自己终止。 OSEK标准定义了一个API ChainTask();允许在当前任务终止后立即再激活参数中指定的任务,当然可以指定任务自己。 每个任务在它的代码最后必须结束它自己。或者调用TermiateTask();或者调用ChainTask(Task);Ending the task without a call to Terminate- Task or ChainTask is strictly forbidden!

应用程序模式(APPMODE) 操作系统启动时需提供要运行的APPMODE 一种OSEK标准的实现至少要支持一种APPMODE APPMODE被应用程序用于定义当前的操作环境,The application mode is a means to structure the software running in the ECU according to those different conditions。用户可以按某种APPMODE来决定是否启动某个任务或ISR。就是说,某些任务和ISR只有在特定的APPMODE下才启动 OSEK OS标准并未规定各个API和APPMODE的关系,纯粹是为应用程序提供另一种层次的信息和控制。

APPMODE的特性(characteristics) 标准中提到三个特性:Start up performance,Support of exclusive applications,Supported by all conformance classes。 因为检查当前APPMODE的开销很小,所有的符合类均支持APPMODE。 在启动OS之前,用户需决定要启动的APPMODE,然后将其作为一个参数传递给操作系统。(在StartOS()作为参数传递)。

中断分类 中断服务程序(ISR)分为三类:1类ISR,2类ISR和3类ISR。 1类ISR:此类中断不需要调用API。对任务管理没有影响。 2类ISR:需要调用API。典型地,这类中断需要增加计数器的值、激活任务,设置时间和发送消息。操作系统为这类ISR提供了准备其运行环境的框架,在框架内执行用户编写的中断处理程序。 3类ISR:这类中断在满足一定条件时会调用API,也有可能不调用API。但调用时必须调用EnterISR()和LeaveISR()。图示如下:

中断分类

中断 在ISR内部不会调度。 调度发生在2类ISR和3类ISR返回时,没有其它要处理的中断且该中断是在一个可抢占任务运行时发生的。 此时的调度应根据全抢占调度策略的调度点去调度任务。 中断的调度顺序是由具体硬件来决定的。 可被任务和ISR使用的中断服务如下图:

事件机制 事件用于任务同步 操作系统只为扩展任务提供事件机制,每个事件均被分配给某个任务,每个任务可以拥有有限个事件。 事件机制激发任务进入或者脱离等待状态。 以下两图为全抢占和非抢占情况下设置事件对任务调度的影响:

资源管理 资源管理对四个符合类都是必须的。 资源管理的目标: 两个任务不能同时占有同一资源(互斥)。 不出现优先级反转 不能出现死锁 访问资源的任务不能进入等待状态。 ISR只有在其所需要的资源全部可用的时候才执行。The OSEK operating system ensures also that an interrupt service routine is only processed if all resources which might be occupied by that interrupt service routine during its execution have been released。

调度程序作为资源 如果一个任务在执行期间不想被打断,可以锁定调度程序。 在系统生成的时候,系统生成一个资源RES_SHEDULE。 由于中断层的优先级高于调度者,所以中断不会受到调度资源被上锁的影响。

优先级反转

死锁

资源的优先级天花板协议

资源的优先级天花板协议

资源的优先级天花板协议

报警(ALARM) 计数器(Counter):计数器由计数器的值(滴答数)来衡量,OSEK OS必须提供一个计数器(硬件或者软件定时器)。 OSEK标准没有提供标准对计数器操作的API 报警会与一个计数器和一个任务/事件相关联,当计数器值达到预定义的数值时,就会激活相关联的任务或设置相应的事件。 OSEK标准提供了设置报警何时触发的相关API 报警例子如下:

报警 用户定义计数器和报警 Counter1 { MaxValue=500;MinCycle=10;} Alarm1 { Counter=Counter1; Task=Task1;} SetAbsAlarm(alarm1,100,50); SetRelAlarm(alarm1,80,50); Abs-绝对计数器值 Rel-相对计数器值,如果最后一个参数被设置为0,不是周期报警。

报警与OS

系统的启动 ②调用StratOS,APPMODE作为参数 ③操作系统调用内部启动代码,比如找到优先级最高的任务置为就绪,但并不调度。 ①执行硬件相关代码,比如关掉2类和3类中断,到阶段⑤再开中断 ②调用StratOS,APPMODE作为参数 系统的启动 ③操作系统调用内部启动代码,比如找到优先级最高的任务置为就绪,但并不调度。 ④调用StartupHook()

回调函数和错误处理 操作系统在合适的地方调用如下回调函数: StartupHook() ShutDownHook() ErrorHook() PreTaskHook() PostTaskHook() 错误处理:应用错误、致命错误 如果操作系统提供的服务结果不正确,但是内部数据没有破坏,则认为是应用错误。比如一个基本任务等待事件。 认为内部数据不正确则认为是致命错误,此时要关闭OS。比如在调度新任务执行时,所有任务处于非就绪状态。

OS的关闭和调试 OSEK标准中定义了一个关闭操作系统的系统调用ShutdownOS(),在其中调用ShutdownHook()。