(计算机软件与理论专业论文)基于osek标准的操作系统中若干问题的研究.pdf_第1页
(计算机软件与理论专业论文)基于osek标准的操作系统中若干问题的研究.pdf_第2页
(计算机软件与理论专业论文)基于osek标准的操作系统中若干问题的研究.pdf_第3页
(计算机软件与理论专业论文)基于osek标准的操作系统中若干问题的研究.pdf_第4页
(计算机软件与理论专业论文)基于osek标准的操作系统中若干问题的研究.pdf_第5页
已阅读5页,还剩78页未读 继续免费阅读

(计算机软件与理论专业论文)基于osek标准的操作系统中若干问题的研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 随着汽车工业的发展,人们对汽车的环保、安全、通信质量和舒适度等方面 的性能要求不断提高。同时,应用于汽车上的电子电控单元( e l e c t r o n i cc o n t r o lu n i t , e c u ) 的数量也越来越多,汽车内部的硬件结构和设计程序的复杂性也急剧上升。 为了给开发汽车嵌入式系统提供统一的公用平台和应用编程接口,欧共体汽车产 业联盟制定了o s e k v d x 标准,此标准为汽车电子领域创造了前所未有的发展 空间。 o s e k 操作系统是针对汽车应用特点而专门制定的一个小型实时操作系统规 范,主要有以下几个方面特点:可移植性,o s e k 标准定了大量的接口函数,给 操作系统提供统一的规范,便于开发商在不同的硬件平台下进行移植;可扩展性, o s e k 标准提供了许多模块化的设计方案,模块与模块之间耦合度比较小,为开 发商在扩展方面提供了许多的便利。 由于o s e k 项目的需求,本文把o s e k v d x 标准作为研究对象,基于i _ t c o s i i 操作系统为参考模型,研究与开发符合o s e k v d x 标准的微型操作系统 斗c o s e k ,力求把o s e k v d x 标准中模糊的概念形象化、具体化,把o s e k v d x 标准中没有提到的细节完整化。 本文的主要工作包括:给出了i t c o s e k 操作系统重要的工作流程、系统模 型和数据结构;设计实现了o s e k 实现语言的工具链,g c o s e k 的通信管理和 网络管理部分;分析了o s e k v d x 标准存在的不足,如其所用的天花板协议降 低了实时性,在o s e k 通信中消息会由于被新到的消息覆盖而容易造成丢失,在 o s e k 网络管理中出错节点可能没有被外部网关监听到等问题,并在g c o s e k 操作系统中对上述问题进行了改进和优化。目前以上工作均己经在l i n u x 下仿真 实现,为进一步的研究工作奠定了良好基础。 关键字:o s e k v d x 标准汽车电子实时性 a b s t r a c t w i t ht h ei n c r e a s i n gd e m a n d so fs e c u r i t y , e n v i r o n m e n tp r o t e c t i o n ,c o m f o r t a b l e f - e e l i n ga n de c o n o m i c a lp r i c eo fv e h i c l e s ,t h en u m b e r o fe l e c t r o n i cc o n t r o lu n i t s ( e c u ) h a sb e c a m eb i g g e ra n db i g g e r ,a n dt h ec o m p l e x i t yh a sa d d e de i t h e r u s i n gm a n y e c u sa n dc o m p l e xc o n t r o l l e dp r o g r a mb r o u g h tg r e a ti m p r e s st om a n u f a c t u r e r s s o , d e v e l o p i n ge f f e c t i v eo p e r a t i n gs y s t e m sw h i c h a r ea b l et om a n g e rt h em e m o n e so i e c u sa n dr e s o u r c e so fc p u sh a v eb e c a m eu r g e n t t h es t a n d a r d s n a m e do s e k n d x e s t a b l i s h e db ya u t o m o t i v ei n d u s t r y a l l i a n c eo fe u r o p e a nc o m m u n i t yt od e v e l o p e m b e d d e ds y s t e m sa n di n t e r f a c eo fa p p l i c a t i o n sc o u l dd e c r e a s ep r o d u c i n gp e r i o d sa n d s h a r es o f t w a r er e s o u r c e s 。 o s e ko p e r a t i n gs y s t e mi sar e a l t i m ee m b e d d e ds y s t e mw h i c h w a sd e s i g n e df o r v e h i d ee l e c t r o n i ci n d u s t r y i th a ss e v e r a lf e a t u r e s ,o n ei sp o r t a b i l i t y ,o s e ko p e r a t i n g s v s t e r np r o v i d e sm a n yc o h e r e n ti n t e r f a c e sf o rf u n c t i o n s ;a n o t h e ri se x p a n s i b i l i t y , u s e r s a r ea b l et oc o n f i g u r ep r o p e r t i e si ns y s t e mf o ro s e k s t a n d a r d s t h i sp a p e rt e n d st om a k et h eo b s c u r ec o n c e p ti no s e ks t a n d a r d sc l e a ra n d c o n c r e t e ,m a k et h ed e t a i l si nt h eo s e k s t a n d a r d sp e r f e c ta n dd e v e l o pt h eo p e r a t i n g s y s t e mn a m e dp c o s e k t h i sd a p e rp r o p o s e ds e v e r a lw o r k f l o w s ,s y s t e mm o d e l sa n d d a t as t r u c t u r e sb a s e d o n c o s e ks y s t e r n ,d e s i g n e d a n di m p l e m e n t e d o i lt o o l c h a i n ,o s e k c o m h m n i c a t i o nm a n a n g e m e n ta n do s e k n e t w o r km a n a n g e m e n t a tt h es a m et l n l e , b e e 3 u s et l :es t a n d 3 r d sh a zj u 宝tc a m eo u ti nr e c e n ty e a r s ,i te x i s t ss o m ed e f e c t s ,s u c h a s , c e i l i n gp r o t o c 0 1i sn o ta l w a y ss u i tf o ra l lc o n d i t i o n ,m e s s a g e sw o u l d b ed i s c a r d e di n c o m m u n i c a t i o nf o rt w oe c u s ,i tw o u l do c c u rs o m e t h i n gw r o n gw h e nt h es y s t e m d e a l i n 2w i t ht h en o d e sw h i c hh a de r r o r s t h e s ed e f e c t sw o u l d m a k et h es y s t e m c o l l a p s e di ne m e r g e n c y t h i sp a p e ra i m e da tt h e s ep r o b l e m sa b o v e a l l ,o p t i m i z e dt h e d e f e c t si ns t a n d a r d s a tp r e s e n t ,t h ea u t h o rh a si m p l e m e n t e da l lt h e s ew o r ki n l i n u x e n v i r o n m e n t k e yw o r d s :o s e k v d xs t a n d a r d s v e h i c l ee l e c t r o n i c r e a l t i m e i i i 插图目录 插图目录 图2 1o i l 工具链框图7 图2 2o i l 解释器流程7 图2 3o i l 文件总数据结构8 图2 4i m p l e m e t i o n 部分数据定义8 图2 5i m p l e m e t i o n 部分中的o b j e c t 的数据结构1 0 图2 6a p p l i c a t i o n 部分数据结构1l 图2 7a p p l i c a t i o n 部分中的o b j e c t 数据结构1 1 图2 8o i l 配置器设计流程图1 2 图2 9o i l 配置器界面:1 3 图2 。1 0o i l 配置器配置过程图1 3 图3 1 基本任务状态转换图18 图3 2 扩展任务状态转换图1 9 图3 3 抢占任务顺序图2 0 图3 4 非抢占任务顺序图2 0 图3 5 任务队列模型图2 1 图3 6 完全抢占任务时间机制2 2 图3 7 非抢占任务时间机制2 3 图3 8 优先级任务队列图( 1 ) 2 4 图3 9 优先级任务队列图( 2 ) 2 5 图3 1 0 任务实时性测试输出结果( 1 ) 一2 9 图3 1 l 任务实时性测试输出结果( 2 ) 2 9 图3 1 2 实验数据分析图3 0 图4 1o s e k 通信分层图3 2 图4 2 直接发送消息模式3 5 图4 3 周期性发送消息模式3 5 图4 4 混合发送消息模式( 1 ) 3 6 图4 s 混合发送消患模式( 2 j 3 7 图4 6 死限控制( 1 ) 3 7 图4 7 死限控制( 2 ) 3 8 图4 8 消息发送接收模型4 0 图4 9 消息发送流程图4 1 图4 1 0 消息接收流程图4 2 图4 1 l 消息通信时丢失测试输出结果4 4 图4 。1 2 周期性发送时消息测试输出结果4 4 图4 1 3 优化后消息发送测试输出结果4 5 图5 1 网络管理组件4 8 图5 2 网络管理消息格式4 9 图5 ,3 网络管理消息运行流稃图5 4 图5 4 网络管理总线睡眠流程图5 5 图5 5 链路层发送出错处理5 7 图5 5 发送节点测试输出结果5 8 v i i 插图目录 图5 6 接收节点测试输出结果5 9 图5 7 优化后的测试输出结果6 0 v i l l 表格目录 表格目录 表3 1 基本任务转换描述1 8 表3 2 扩展任务转换描述1 9 表3 3 符合类限定2 2 表5 1o s e k 网络管理报警器4 9 表5 2n e t m a n a g e r 数据结构51 表5 3n o d e 数据结构5 2 i x 中国科学技术大学学位论文原创性声明 本人声明所呈交的学位论文,是本人在导师指导下进行研究工作所取得的成 果。除己特别加以标注和致谢的地方外,论文中不包含任何他人已经发表或撰写 过的研究成果。与我一同工作的同志对本研究所做的贡献均己在论文中作了明确 的说明。 作者签名:签字日期:迦止! 曼! 三 中国科学技术大学学位论文授权使用声明 作为申请学位的条件之一,学位论文著作权拥有者授权中国科学技术大学拥 有学位论文的部分使用权,即:学校有权按有关规定向国家有关部门或机构送交 论文的复印件和电子版,允许论文被查阅和借阅,可以将学位论文编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。本人 提交的电子文档的内容和纸质论文的内容相一致。 保密的学位论文在解密后也遵守此规定。 眇开 口保密( 年) 作者签名:鞋导师签名: 签字日期: 迎211 垒:弓 签字目期: 牲 盘f 竺:鱼: 第1 章绪论 第1 章绪论 o s e k 标准是近几年来问世的一个用于汽车电子的标准,为汽车电子在操作 系统方面提供了统一的规范,同时也为致力于汽车电子领域的研究者提供了一个 良好的参考系统,也为嵌入式的发展提供了一个新颖的研究平台。 将o s e k 标准应用于汽车电子在历史上对汽车产业有着极大的推动作用,统 一的接口和规范为汽车电子的发展提供了良好的平台,同时也为开发商提供了良 好的移植性。对o s e k 标准的研究无疑将可以更好的促进汽车工业的进步,为我 国的汽车电子事业提供更好的前景和发展。 根据实验室项目的需求,针对o s e k 标准中的不足,本文提出了自行设计的 牡c o s e k 操作系统设计方案,并针对o s e k 标准中的缺陷,提出了优化方案。 1 1研究背景和意义 1 1 1 汽车工业的发展概况 作为现代汽车工业的先驱者之一,人称“汽车之父”的卡尔本茨在1 8 3 9 年 成功地将电池和电动机装在了他的马车上,成为世界上第一辆电动车,之后他又 将火线圈和蓄电池所组成的点火装置应用到了电动车中,成为世界上第一辆所谓 的“电气系统的汽车。在2 0 世纪3 0 年代第一次出现了汽车电子技术,由于当时 汽车内的电子管收音机存在体积大、不抗震、耗电多等多种缺陷,这些问题严重 阻碍了汽车工业的发展和推广。1 9 4 8 年晶体管的问世和1 9 5 8 年第一块集成电路的 出现才引领了汽车电子技术真正的发展道路,成为了汽车工业发展的转折点。 汽车电子的产生被认为是现代汽车技术发展进程中的一次史无前例的进步, 衡量现代汽车技术水平的重要标志之一就是汽车电子的发展水平,在汽车工业界 里,汽车电子的发展将是未来汽车产业的主要目标。 与传统的汽车工业相比,汽车电子工业都有着绝对的优势,例如:能源消耗 低、发动机的效率高、环境污染少、实时性高等优点【1 】。汽车电子产业在未来 的主要发展目标是环保性的提高、安全性的提高和连通通信能力的提高。 1 1 2o s e k 标准的问世以及研究现状 随着汽车电子行业的不断发展,信息技术在汽车工业的各方面得到了广泛应 用,其中包括了电子控制单元( e l e c t r o n i cc o n t r o lu n i t ,e c u ) 在汽车领域中的 第】章绪论 广泛应用。但是由于各种厂商的e c u 都有不同的规范和协议,为此开发商在利用 各种不同规格的e c u 做开发的时候需要做很多移植和扩展的工作,因此会出现很 多重复劳动力,降低了开发效率。为了有效的解决该问题,德国汽车工业界制定 了一个用于汽车电子的开放式系统o s e k v d x 规范【2 】。这些标准给汽车电子工 业界提供了一个统一的嵌入式网络接口和规范,使得汽车领域各种开发应用能够 得到兼容和协调工作,从而提高了软件开发的效率和可移植性 3 】。整个o s e k 标 准体系中包括操作系统部分标准( 0 s e ko s ) 、通信部分标准( o s e kc o m ) 、 网络管理部分标准( o s e kn e t w o r km a n a g e m e n t ) 和实现语言部分( o s e k i m p l e m e n t a t i o nl a n g u a g eo i l ) 。 目前,汽车产业已经成为我国国民经济的支柱产业之一,而汽车电子工业更 是汽车工业的重要组成部分【4 。为了加速我国经济的发展和汽车产业的推进, 目前国内很多厂商和高校已经开始研究o s e k v d x 规范的研究和改进,并开发 出基于o s e k d x 规范的各种软件。例如:基于o s e k 标准的国产自行研发的 嵌入式操作系统a u t o o s e k 5 1 ,浙江大学嵌入式系统研发中心在8 6 3 软件专项支 持下的重要成果之一的s m a r t o s e k 操作系统【6 】。 1 1 3o s e k 标准简介 目前o s e k v d x 标准已经成为汽车电子领域内公认的规范,它为全世界汽 车电子的开发提供了统一的接口和标准,方便开发厂商进行不同设备之间的软件 移植。由于o s e k v d x 标准问世不久,存在一些模糊不清的概念和尚未完善的 机制。研究o s e k v d x 标准有利于完善汽车电子开发过程中存在的弊病,同时 也利于开发厂商的个性化的创新。 o s e k v d x 标准中的o s 部分是整个o s e k 系统的核心部分【7 】,主要负责 操作系统内部的运行。o s e k 操作系统主要分为任务管理、资源管理、事件管理、 和报警器等几个部分。 任务管理类似l i n u x 中的进程管理【8 】,用来调用程序的运行和切换。在o s e k 系统中具体将运行哪些任务和具体任务的数量、功能都是由用户自行配制的,也 就是说在操作系统运行中任务的数量不会再增加也不会再减少。o s e k v d x 标 准把任务看成最小的调度单位,一旦一个任务被调度运行,它就一直运行到任务 终止,中途不会出现类似时间片轮转的调度策略,只有等到一个任务终止后才会 调度下一个任务( 不考虑抢占方式) 。 资源是任何操作系统中都出现的概念,在o s e k 系统中资源就是可用的变 量属性或者外部设备。当一个任务占有了一个资源的时候,这个资源就不会被别 的任务所占有。操作系统使用同步和互斥的策略来实现这个过程。 2 第1 章绪论 事件在不同的操作系统中有不同的概念,在o s e k 系统中指的是一个动作 的发生或者一个变量的赋值。例如:当中断产生的时候会出现一个事件通知某个 任务。 报警器在o s e k 系统中的作用和定时器的作用类似。 以上机制在o s e k 系统中都有着不可替代的作用,每一部分都有自己的特 性,为了给予汽车电子工业最好的支持,这些机制都在不同程度上的精简化,为 的是尽可能的减少内核的大和提高实时性【9 】。 1 2 本文工作 在o s e k 操作系统项目的支持下和在对o s e k 标准深入研究的基础上,本 文对o s e k 标准进行了深入分析,对其中的o i l 规范、o s 规范、c o m 规范以 及n m 规范进行了设计实现,并且成功地借鉴g c o si i 操作系统设计出了自行 开发的g c o s e k 操作系统,并对o s e k 标准的不足之处提出了优化方案,本文 的工作主要包含如下几个部分: 本文实现了o s e ko i l 部分的使用工具,包括o i l 配置器和o i l 解释器, 此后,通过测试用例成功完成工具的设计。 在对o s e ko s 的研究上,本文给出了b c o s e k 操作系统的任务管理、资源 管理等机制的设计流程和数据结构,优先级天花板协议的优化方案,最后给出测 试用例,实验结果表明方案可行。 在o s e k 通信机制的研究中,本文设计了消息发送和接收的流程,给出了 结合p c o s e k 操作系统实现的数据结构,并针对发送消息时候容易丢失消息的 弊病,提出了优化方案,最后通过实验验证了该方案。 在对o s e k 网络通信的研究中,本文成功实现了网络管理的所有系统初始 化和工作流程,并且针对网络管理在处理l i m p h o m e 消息时的缺陷提出了优化方 案。 以上工作均在l i n u x 下的q e m u 模拟器下仿真实现,最后给出测试用例,实 验结果表明方案可行。 1 3 本文组织 本文对o s e k 标准的每个部分做了详细的研究,针对o s e k 标准中提出的 各种机制给出设计方案和优化策略。 第二章重点介绍了o i l 解释器和o i l 配置器在整个o s e k 工程中的地位, 3 第1 章绪论 o i l 解释器的作用和工作原理。最后给出测试用例,测试o i l 解释器的功能。 第三章主要介绍操作系统中的重要概念,提出了o s e k o s 在实际应用中的 设计方案,例如:任务管理中任务的数据结构和任务对列的数据结构。并针对天 花板协议应用于资源管理时的缺陷提出了改进的方案,并以实例作为说明,最后 给出了实验结果。 第四章着重分析了o s e k 通信机制,给出了详细的通信机制的过程。在此 基础上本章给出了o s e k 消息发送和接收的步骤和设计流程图,并对消息传送 时出现的消息丢失的缺陷提出了优化方案。同时本文提出了基于i - t c o s e k 操作 系统的o s e k 消息通信机制中部分重要的数据结构,例如:消息对象的数据结 构,最后通过实验验证了该方案的有效性。 第五章重点研究了o s e k 网络管理中一些模糊的概念,并使之具体化。同 时,结合斗c o s e k 操作系统,提出了本文的设计流程和数据结构,例如:o s e k 网络管理逻辑环运行过程设计。最后针对网络管理存在的处理l i m p h o m e 节点时 的缺陷提出了优化方案,最后给出实验结果证明方案可行。 第六章总结本文工作。下一步的工作主要包括o s e k 标准的裁减机制、相 关设计方案的优化,以及在真实环境下的应用。 4 第2 章o s e ko i l 的介绍和设计 第2 章 g c o s e k0 il 工具链的设计与实现 在介绍o s e k 操作系统之前,本文将先介绍o s e k 配置语言o i l ,因为o i l 语言是o s e k 操作系统的主要特征。o i l 语言既可以完全独立于o s e k 操作系 统也可以为操作系统提供用户属性定义。本章将主要介绍o s e ko i l 的相关概 念,同时给出了本文在项目实践中设计的o i l 工具链( o i l 配置器和o i l 解释 器) 。本章最后给出一个测试用例,测试o i l 工具功能正确性。 2 10 s e k0il 概念 o i l 作为o s e k 的实现语言 1 0 】,主要完成操作系统提供给用户自由配置的 静态参数的描述。这些静态参数独立于操作系统而由用户自行赋值( 这些静态参 数实际上是操作系统内部的变量) 。 o i l 文件从整体上可以分为定义部分和实现部分,定义部分主要是对操作系 统内部参数进行定义,定义规则是由操作系统开发者给出,其中包括这部分参数 的类型、取值范围、具体参数名、和具体的用户定义的参数值。而实现部分主要 是对这些参数进行用户的自定义配置以便满足用户的需求。因此,整个操作系统 可以灵活的根据用户自定义需求实现不同的功能,而不必去修改操作系统的内 核。 以下是一个具体的例子: 5 第2 章o s e ko i l 的介绍和设计 以上的i m p l e m e n t a t i o no i l 是o i l 文件的定义部分,其中的c p uo i l 是具体的实现部分,它是对定义部分的具体赋值。 o s e ko s 操作系统集成开发工具由两个主要工具组成,分别是o i l 配置器 和o i l 解释器。由于o i l 文件是独立于o s e k 操作系统的部分,用户在进行配 置o i l 文件中操作系统参数( 属性) 时,可以用高级应用软件开发的工具完成, 例如:i a v a 语言或者基于x m l 的开发工具。而当o i l 文件的配置过程结束后, 需要把这个o i l 文件中用户定义的部分融入到操作系统中去,本文建议把生成 的o i l 文件通过适当的编译器( o i l 解释器) 编译成c 文件,最终这个c 文件和 操作系统内核代码一起编译生成操作系统镜像。o i l 配置器和o i l 解释器具体功 能如下: o i l 配置器:主要对o i l 文件进行可视化配置,并调用第三方编译工具将操 作系统编译成可用的o 模块。 o i l 解释器:主要对o i l 文件进行翻译,将操作系统不能认知的o i l 文件 翻译成c 文件。 o i l 配置工具和o i l 解释工具在开发中的流程如图2 1 。 6 第2 章o s e ko i l 的介绍和设计 图2 1o i l 工具链框图 2 2 t x c o s e k0 1 l 解释器设计与实现 o i l 解释器用来生成最终需要的c 语言代码,本文实现的o i l 解释器通过 l e x 和y a c c 经过编译生成,见图2 2 。 o i l y y t a b h y y p a r s e ) y t a b e l e x y y c y ! e x o i l 解释嚣 袭终形成的c 语髫 图2 2o i l 解释器流程 图2 2 中的o i l - l 和o i l y 文件分别是o i l 解释器的词法分析和语法分析文件, 7 伴 院,中 戚 第2 章o s e ko i l 的介绍和设计 o i l v 经过y a c c ( 语法分析) 后生成y t a b h 和v t a b c oo i l 1 经过l e x ( 词法分析) 后生成l e x y y c 文件。再把y t a b h 和l e x y y c 经过g c c 编译后生成o i l 解释器。然 后以o i l 文件作为输入,经过o i l 解释器之后生成最终需要的c 语言文件,这个c 语言文件是最终和操作系统内核代码一起编译的。 o i l 解释器的数据结构主要包括o i l 1 和o i l y 的数据结构,o i l 1 是词法分析 的文件,o i l y 是语法分析的文件。这两个文件中的数据结构主要是对o i l 文件 中的参数对象进行词义和语义的分析。具体结构如图2 3 和图2 4 所示: 总的。娃文件包含的数据结构 图2 3o i l 文件总数据结构 i h 咖脏卫咖定义部分的结构 图2 4i m p l e m e t i o n 部分数据定义 8 口田园田园田口团口口曰固 第2 章o s e ko i l 的介绍和设计 其中i m p l e m e t i o n 部分为属性定义部分,它包括o s 、t a s k 、c o u n t e r 、 a l a r m 、r e s o u r c e 、e v e n t 、i s r 、m e s s a g e 、c o m 、n m 、i p d u 、a p p m o d e 这些对象,它们称为o b j e c t ,这些对象的具体作用如下: o s :每个o s e ko s 只有一个o s 对象,它定义了一个o s e k 应用拥有的 o s e ko s 性质。o s 对象的主要属性如下: s t a t u s :s t a t u s 属性表明系统中每个a p i 的返回值是标准的还 是扩展的。这个属性不支持自动赋值,是一个枚举变量,可能的值 为:s t a n d a r d 或者e x t e n d e d 。 u s e r e s s c h e d u l e r :定义了系统中是否提供了r e s + s c h e d u l e 资源。 v a p p m o d e :定义了系统的应用模式。 t a s k :一个t a s k 对象代表了o s e k 的一个任务。 p r i o r i t y :定义任务优先级,最低优先级为0 ,数字越大,优先级 越高 s c h e d u l e :f u l l 代表任务是一个可抢占的任务,n o n 则相反。 如果s c h e d u l e 为n o n ,则此任务不能使用内部资源。 a c t i v a t i o n :定义了一个任务的最大的排队请求激活次数。为1 表明此任务在任何时候只能被激活一次。 a u t o s t a r t :b o o l e a n ,定义了一个任务在系统启动时是否已 经激活。 r e s o u r c e :定义了任务访问的资源列表。 e v e n t :定义了任务访问的事件列表。 m e s s a g e :定义了任务访问的资源列表。 c o u n l e r :定时器是报警器机帝| j 的基础。 m a x a l l o w e d v a l u e :定义了定时器允许的最大值 t i c k s p e r b a s e :定义了达到定时器指定需要的时钟嘀嗒数。 v m 1 n c y c l e :指出了与此定时器相关的报警器允许的最小的周期 值。 a l a r m :报警器可以异步通知或者激活一个指定的任务。根据应用模式, 可以在系统启动的时候就自动启动报警器。 c o u n t e r , 定义了报警器依赖的定时器。每个报警器只有一个定 时器,+ 任何报警器都必须指定一个定时器。 a c t i o n :定义了报警器超时的通知方式。 a u t o s t a r t :定义了报警器在系统启动时是否根据应用模式自动 9 第2 章o s e ko i l 的介绍和设计 启动。 r e s o u r c e :同步任务和中断对同一个资源的访问,例如调度器、内存或 者硬件区域。有一个类型为e n u m 的属性定义来指出r e s o u r c ep r o p e r t y ( 资源属性) 。这个属性可以有以下的值: s t a n d a r d :普通的资源,没有链接到其他资源,也不是内部资源 l i n k e d :链接到一个属性为s t a n d a r d 或者l i n k e d 的资源。 i n t e r n a l :内部资源,应用不能访问 e n e n t :一个事件由掩码来表示。事件的名字是它的掩码的代名词。相同 的事件可能设置到不同的任务。相同名字的事件是一样的,因此掩码也是一致的。 拥有相同掩码的事件可能不是一样的,它们的名字可能不同。 m a s k :事件的掩码是一个整数掩码,还可以设置事件的m a s k 为 a u t o ,在这种情况下,会自动设置一位作为事件的掩码。对于使 用这个事件的任务来说,这一位是唯一的。 i s r :定义了中断服务例程。 c a t e g o r y :表明i s r 的类别,只允许为1 或者2 。 r e s o u r c e :表明中断使用的资源链表 m e s s a g e :表明中断使用的消息列表 o b j e c t 有具体的数据结构,具体如图2 5 。 图2 5i m p l e m e t i o n 部分中的o b j e c t 的数据结构 每一个o b j e c t 都包含t y p e 、r a n g e 、a t t r i b u t e 、e f a u l t 这四个基 本的部分( 当然还可以进行扩展) 。t y p e 是对象中一个具体属性的类型,r a n g e 则是属性的取值范围,a t t r i b u t e 是具体的属性名,e f a u l t 是初始化的默认 值。这些定义都是操作系统给出的,用户不能进行对其修改。 a p p l i c a t i o n 是o i l 文件中具体的实现部分,其数据结构如图2 6 所示: 1 0 第2 章o s e ko i l 的介绍和设计 图2 6a p p l i c a t i o n 部分数据结构 o i l 的a p p l i c a t i o n 实现部分和i m p l e m e i o n 定义部分的结构基本上是 相同的,不同的是实现部分主要是用来用户自定义赋值。 a p p l i c a t i o n 实现部分中的o b j e c t 只包含属性名和配置值两个部分, 具体结构如图2 7 昕示 图2 7a p p l i c a t i o n 部分中的o b j e c t 数据结构 o i l 解释器将以上的o i l 文件中的数据结构经过词法和语法分析,分析过程 如下: 第2 章o s e ko i l 的介绍和设计 以上程序中,左边部分是语义推到,用来判断o i l 文件的语法是否符合规 范。右边部分是语义动作,主要根据用户的需求生成c 代码。具体的o i l 解释 器的代码见附录a 。 2 3 p c o s e ko i l 配置器设计与实现 o i l 配置器采用可视化工具作为开发环境 1 1 】,例如:j a v a 作为开发语言。 考虑到o i l 配置器的界面对用户的友好性,本文采用跨平台的j a v a 语言作为开 发工具,a 、 ,t 、s w i n g 作为框架来进行图形化界面的开发。图形界面通过f r a m e 、 p a n e l 、b u r o n 等控件来编辑可视化的图形界面。 o i l 文件是文本文件,对o i l 文件的配置需要先对文本文件进行解析。j a v a 语言对于读取文本文件和解析文本文件提供了一定的类和库函数。 图2 8o i l 配置器设计流程图 图2 8 中的f i l e r e a d e r 用来读取字符型文本的接口类,它的任务是把o i l 文 本读入到b u f f e r e d 缓冲流中以便于每次操作都不必从文件中读取,b u f f e r e d 是个 缓冲流。s t r e a m t o k e n i z e r 流用来读取文本中的字符,它返回流中下一个符号的类 1 2 第2 章o s e k o i l 的彳r 绍和设计 型。此后,读取的字符经过一系列判断之后将显示在用户界面上( 开始初始化好 的控件) 。此后,用户可匕上根据显示出来的信息进行查看和修改。 其效果如下图2 8 所示,其配置过程如图2 9 所示。其核心代码见附录b 。 。,l _ v 】。 ! 旦叵堡型 a d dn e wc p ur e i n 图29o i l 配置器界面 图2 1 0o i l ,配置器配置过程图 23 测试用倒和实验结果 本节主要工作是测试o i l 解释器的功能o i l 解释器采用的是f e z 和y a e c 实现的,运行在l i n u x 环境下。将o i l 解释器的代码编译生成后得到 o i l i n t e r p r e t e r a 。本章用到的测试用例测试o i l 解释器能否正常工作,具体的 第2 章o s e ko i l 的介绍和设计 o i l 文件如下: 运行o i l _ i n t e r p r e t e r a 之后将测试用例经过解释器,得到c 文件如下: 1 4 第2 章o s e ko i l 的介绍和设计 经过o i l 解释器之后成功将o i l 文件中的o i l 语言解释成操作系统能认知 的c 语言。将o i l 定义部分的i m p l e m e n t a t i o no i l 解释成结构体变量,将 o i l 中的c p uo i l 解释成赋值的函数,通过以上测试可以得出方案可行。 2 4 本章小结 o i l 语言是提供o s e k 操作系统的工具化语言,本童介绍了o s e k 语言0 1 1 , 以及配置和解释o i l 语言的工具。 本章重点介绍了o i l 解释器和o i l 配置器在整个o s e k 工程中的地位,o i l 解释器的作用和工作原理。最后给出测试用例,测试o i l 解释器的功能。 1 5 第3 章o s e k 操作系统研究设计和改进 第3 章uc o s e k 中对天花板优先级的设计和改进 o s e k 操作系统在o s e k 标准中是最为关键的部分,也是整个系统的核心。 由于o s e k 操作系统的进程模型和资源、事件等机制不适应于通用操作系统, 主要用于移植到嵌入式操作系统 1 2 ,例如:“c o si i 【1 3 ,a e m s 等小型的嵌入 式系统。本章在每- d , 节首先介绍o s e k 操作系统的常用概念,接着基于o s e k 规范和心o si l 嵌入式操作系统模型【1 4 】,深入分析相关机制的设计与实现,给 出了相关模块和数据结构的设计【1 5 】,最后针对o s e k 操作系统标准中的不足, 提出了若干改进和优化方案,并设计实验来验证方案的可行性。 3 1 0 s e k 操作系统概念 o s e k 标准定义的操作系统是一个简单而高效的操作系统,系统中大量的参 数和属性都是静态定义的,例如:任务的数量、任务优先级、任务所占用的资源 个数、中断个数等,免去了操作系统中的大量初始化工作,提高了系统实时性。 o s e k 操作系统的整体框架类似p c o si i 操作系统,从根本上可以看成一个任务 调度器,因此,以g c o si i 为参考开发自行的o s e k 操作系统是个最佳的选择 【1 6 。 o s e k 操作系统为任务管理、事件管理、资源管理、中断管理和报警器管理 等各方面都作了详细的规范【1 7 ,其中任务管理和资源管理是整个操作系统的核 心,也是本章研究的重点。 3 1 1o s e k 任务管理 1 ) 基本任务和扩展任务 o s e k 规范将任务分为基本任务和扩展任务,一个基本任务可以一直运行到 结束除非被一个优先级高的任务给抢占。o s e k 任务调度不允许时间片调度,时 间片的调度会影响系统的实时性【1 8 】。 o s e k 基本任务具有三种状态:运行、就绪和阻塞。状态之间转换需要通过 事件触发,具体转换如图3 。1 : 1 7 第3 章o s e k 操作系统研究设计和改进 抢 图3 1 基本任务状态转换图 基本任务具体的转换需要的条件和转换的描述如表3 1 所示: 表3 1 基本任务转换描述 状态转换之前状态新状态描述 系统服务将一个新的任务设置成就绪状 激活 阻塞就绪态,o s e k 操作系统允许任务从第一条指 令开始执行。 调度器选择一个就绪状态的任务开始执 开始 就绪运行 行。 调度器决定去开始执行另一个任务,这个 抢占 运行就绪 任务就从运行状态转换到就绪状态。 系统服务将运行状态的任务转换到阻塞 终结 运行阻塞 状态。 基本任务只在开始和结束时才有同步点,基本任务不仅禁止低优先级的任务 而且也禁止同等优先级任务被抢占,所以其需要的资源少 1 9 】。 扩展任务除了基本任务所拥有的三种状态外,还具有等待这个附加状态。在 基本任务的基础上添加两个相关的事件【2 0 】。与基本任务类似,其状态转换如图 3 2 所示: 1 8 第3 章o s e k 操作系统研究设计和改进 图3 2 扩展任务状态转换图 扩展任务具体的转换需要的条件和转换的描述如表3 2 : 表3 2 扩展任务转换描述 状态转换之前状态新状态描述 系统服务将一个新的任务设置成就 激活 阻塞 就绪绪状态,o s e k 操作系统允许任务从 第一条指令开始执行。 调度器选择一个就绪状态的任务开 开始就绪运

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论