(计算机应用技术专业论文)基于osekvdx规范的实时操作系统内核的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于osekvdx规范的实时操作系统内核的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于osekvdx规范的实时操作系统内核的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于osekvdx规范的实时操作系统内核的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于osekvdx规范的实时操作系统内核的设计与实现.pdf_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

摘要 随着科技的进步及微电子技术的迅速发展,微处理器的价格逐渐下降,性能与可 靠性日益提高。与此同时,人们对汽车的安全性、舒适性、环保及智能度等方面的要 求不断增加,汽车应用软件的开发变得更加复杂和困难。各汽车生产商在开发汽车应 用软件时采用的标准及接口不一致,造成汽车应用软件移植十分困难,甚至于不可能 移植。 为了解决上述问题,欧洲汽车行业于1 9 9 5 年提出了o s e 啪x 规范。0 s e k ,v d x 规范是国际汽车行业先进开发技术的总结,基于该规范的汽车应用软件具有良好的可 移植性及扩展性,可以实现现有软件的重用。采用o s e k ,v d x 规范能够标准化具有不 同结构电控单元的接口特征,有效地减少软件的开发费用及时间,提高软件质量。 o s e k 厂v d x 规范已经通过了i s 0 组织审议,即将成为汽车应用软件开发的国际标准。 我国已经将符合o s e k , r d x 规范的汽车嵌入式软件平台的开发及其关键技术的 研究作为重大研究项目。在汽车软件开发中符合o s e k ,) x 规范,促进我国汽车行业 迅速发展并打入国际市场,是我国汽车业界所面临的紧迫任务。 本文研究o s e 啪x 操作系统规范的主要特征及实时任务间的同步机制,分析 0 s e 目v d x 通信规范中消息的传输过程和通知机制,说明基于o s e l 叽,d x 规范的应 用软件开发过程及如何利用0 s e k 厂v d x 实现语言对实时任务进行配置。 本文介绍基于o s e 目v d x 规范的实时操作系统内核的设计与实现,给出主要的数 据结构及主要函数的实现。本文分析报警器示例及资源访问控制事例的运行过程,说 明实时操作系统内核符合o s 日玑,d x 操作系统规范的要求。 关键词:实时操作系统;内核;o s e k ,、,d x ;l lc o s i i a b s t r a c t w i t ht h er a p i dd e v e l o p m e mo fs c i e n c ea n dm i c r 0 - e l e c t r o n i c st ec :h n 0 1 0 9 y ,t l l ep r i c co f m i a d p r o c e s s o ri sd e c l i l l i n g ,w h i l ei t sp e r f o 锄a i l c ea dr e l i a b i l i t yi si m p r o v i n g m e a n w h j l e , p e o p l e sd e m a n df o rt h es a f e t y r e l i a b i l i t y e n v 岫e n t a lp r o t e c t i o n a i l di m e u i g e n c eo f a u t o m o b i l ei si n 汀e a s i n g t 1 l e r e f o r e ,t h ed e v e l 叩m c n to fa u t o m o t i v ea p p l i c a t i o ns o f t 、张r ci s m o r ea n d 功o r cc o m p l e xa l l dd 词i c u h d i 丘e r e n ts t a l l d a r d sa n di m e r f a c e sa d o p t e db y d i 雎r e ma u t o m o b i l em a 肌f a c t u r e r sw h e nd e v e l o p i n ga u t o m o t i v ea p p l i c a t i o ns o f 旧a r eh a v e c a u s e dg r c a td i 签c u l t yw h e np o m n g 也es o f 晰a r eo re v e nm a k ei ti m p o s s i b l e h lo r d c rt or e s o l v et h ei s s u e sd i s c u s s e da b o v e ,t h ee u m p e a na u t o m o b i l ei n d u s t r yp u t f b 州a r do s e 剐v d xi n1 9 9 5 。0 s e 科v d xe m b o d i e s 也ea d v a n c c dt e c l l n o l o g yo f i m e m a t i o n a la u t o m o b i l em a i l u f 撕r i l l g a u t o m o t i v ea p p l i c a t i o ns o f m a r ec o n f o m l i i l gt 0 t h i ss t a n d a r dh a sb e t t e rp o r t a b i l i t y ,e x t e n d a b i l i t y ,a sw e l l 勰r e u s a b i l i t y 0 s e k ,v i ) xc a n e f f i c i e n t l yr e d u c et h ec o s t 如dt i m ef o rd e v e l o p 幻gs o f t w a r e ,i m p r o v et h eq u a l i t yo fs o f t w 盯e , a i l ds t a n d a r d i z ej 1 1 t e i f a c ef e a t u r e s 锄o n ge l e c t r o n i c 锨1 t r o lu n i t sw i md i f f e r e n ta r c h i t e c t i l r e s o s e k ,、巾xh a sa l r e a d yp a s s e dt h ee x a m i n a t i o no “s o ,a i l dw i l ls 0 0 nb e c o m ej i l t e m a t i o n a l s t a n d a r d sf o rt h ed e v e l o p m e n to fa u t o m o t i v e 印p l i c a t i o ns o f 研a r e a a i n ah a sd l r c a d yr e f e r r e dt ot h ed e v e l o p m e n t0 fa u t o m o t i v ee m b e d d e ds o f t w a r e p l a t f o r n lc o n f 0 皿i n gt ot h e0 s e k d xa n dt h er e s e a r c hi t 0t h ek e yt e c h n 0 1 0 垂e sr e l a t e d a si i n p o n a mr e s e a r c hp r o j e c t c o n f 0 皿i n gt oo s e 剐v d xw h e nd c v e l 叩i n g 孤t o m o t i v e s o f 啊a r c ,p r o m o t i n gp m 夸e s si 1 1n a t i o n a la u t o m o t i v ei n d u s t r y a 1 1 dp u t t i n go u ra u t o m o b i l e s 协t ot h ej n t 啪a t j o n a lm a i k e ta i ee m e r 磬i tt 鹄k sf a c e db yn a t i o n a la u t o m 嘶v em d u s t r y t h i sd i s s e n a t i o ns t u d i e st h em a i l lf e a t u r e s 柚dt 1 1 es y n c h m i z a t i o nm e c h a n i s ma i i l o n g r e 小t i m et a s 虹o ft ko s e k d xo p e r a t i n gs y s t c m m e s s a g et r a n s m i s s i o n p m c e s s , n o t i f i c a t i o nm c c h a l l i s mi 1 1o s e k ,v d xc o m m u n i c a t i o n 姐dt h c 印p l i c a t i o ns 0 脚盯e d e v e l o p i n gp r o c e s sb a s c do no s e k 彻x a r ei n t d u c e d e 印k a t i o no h o wt oc o n f i 舒i r e t h er e a l - t i m et a s k su t i h z i i l go s e k ,v d xi m p l e m e n t a t i o nl a n g u a g ei sm a d e t h i sd i s s c n a t i o np r e s c n t st h ed e s i 四a n dd e v e l o p m e mo fr e a l t i i i l eo p e r a t i gs y s t e m k e m e lc o n f o r m i gt oo s e k ,v d x ,a sw e ua st h em a i nd a t as t m c t u r ea n df l l n c t i o n s n l c r u 皿i 1 1 9p r o g r e s so fd e m o n s t r a t i o n sf o ra l a ma 1 1 dr e s o 毗c ea c c e s sc o n 昀la r ee x p l a i e d , w h i c hp r 0 v e st 1 1 a tt h er c a l - t i l l l eo p e r a t i n gs y s t e mk e m c is a t i s f i e st h ed 锄蛆do fo s e k ,、,d x o p e “n i n gs y s t e ms t a n d a r d s k e y w o r k s :r e a l - 血n eo p e 阳t j i l gs y s t e m ;k e m e l ;o s e l i v d x ;uc o s i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究 工作及取得的研究成果。据我所知,除了文中特别加以标注和致 谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果, 也不包含为获得东北师范大学或其他教育机构的学位或证书而使 用过的材料。与我一同工作的同志对本研究所做的任何贡献均已 在论文中作了明确的说明并表示谢意。 学位论文作者签名:盘奎! 丛日期: o s 号d 学位论文版权使用授权书 本学位论文作者完全了解东北师范大学有关保留、使用学位 论文的规定,即:东北师范大学有权保留并向国家有关部门或机 构送交学位论文的复印件和磁盘,允许论文被查阅和借阅。本人 授权东北师范大学可以将学位论文的全部或部分内容编入有关数 据库进行检索,可以采用影印、缩印或其它复制手段保存、汇编 学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名- 熊里指导教师签名:学位论文作者签名簿障吼指导教师签名: 日 期:趁型:量:乡日期:丝:堇:塑 学位论文作者毕业后去向: 工作单位: 通讯地址: 电话: 邮编: 引言 目前,实时系统的应用日益广泛,与人们日常生活的联系也更加密切,如交通指 挥系统、汽车发动机控制系统、飞机管理系统及电信系统等等。实时系统所包含的任 务之间通常存在着复杂的逻辑关系。有时它们是顺序执行的,表现为一个任务执行结 束后另一个任务开始执行;有时,它们不定期地反复执行;有时,这些任务之间需要 协作,它们之间必须进行通信、同步和互斥控制。这些特性极大地增加了实时系统软 件开发的复杂性。 实时操作系统的出现为实时系统软件的开发提供了强有力的支持。实时操作系统 的多任务调度、进行间通讯、中断的快速响应、内存分配等多个技术都可以在实时系 统软件中获得应用,从而极大地提高实时系统软件的开发效率。实时操作系统对于实 时理论有比较全面的支持,如提供了基于优先级抢占的调度机制,可靠的任务调度机 制使得对实时系统中众多任务的安排变得容易,而且结构清晰。 欧洲汽车行业提出的o s e 啪x 规范规定了适用于汽车实时控制的实时操作系 统的主要功能。基于该规范的汽车应用软件具有良好的可移植性及扩展性,可以实现 现有软件的重用。本文的主要工作就是开发基于o s e k ,、,d x 规范的实时操作系统内 核,以促进我国汽车应用软件开发的标准化进程。 第一章介绍实时系统的基本概念,结合实时系统结构图,阐述实时系统的基本运 行过程,说明实时系统任务的主要特征。 第二章首先阐明实时操作系统与实时系统之间的关系,然后介绍实时操作系统的 主要发展阶段及研究方向。最后说明肛d o s 的主要特征及运行原理。 第三章首先分析o s e k d x 操作系统规范,如任务管理、事件机制、资源访问控 制、报警管理和中断管理,然后介绍通信规范的概念模型,用于实现通信过程的消息 发送及接收机制,及通信过程为应用程序提供的通知机制,最后讲解o s ,d x 实现 语言的主要功能及使用方法。 第四章主要说明符合0 s e k ,v d x 规范的实时操作系统内核的设计及开发方法,重 点介绍与任务管理、时问管理及资源管理相关的数据结构及主要函数的运行机理和使 用方法。 第五章详细分析报警器示例及资源访问控制示例的运行过程。 第一章实时系统概述 1 1 实时系统的基本概念 1 1 1 嵌入式系统 嵌入式系统指的是同时将操作系统和功能软件集成于计算机硬件系统之中的一种 系统。简单地说就是应用软件、操作系统与硬件系统一体化,类似于基本输入输出系 统( b i o s ) 的工作方式。这种系统具有软件代码小、高度自动化、响应速度快等特点。 特别适合于要求实时的多任务系统。 在通信领域中,嵌入式系统早在2 0 世纪6 0 年代后期就被用于控制电话的电子式 机械交换并被称为“存储程序控制系统”。所谓的存储程序是指那些放有程序和路由信 息的内存。用软件来存储这些控制逻辑而不是用硬件来实现,这是观念上的一种突破。 为了适应各个不同的应用,这些嵌入式系统被按照特定需求定做出来。简面言之,这 些嵌入式系统是面向应用的。按今天的标准来看,它们有着奇怪的专用指令以及与主 要计算引擎集成在一起的设备。c p u 的出现,使得嵌入式系统可以通过c p u 在大 型系统中像搭积木那样,将系统的各个功能部件集成在一起。它利用总线的方式将不 同外设所构建的严格的硬件体系结构挂接在一起,并提供一个可以简化编程的通用目 的编程模型1 4 j 。 1 1 2 实时系统 实时系统【1 】与非实时系统的本质区别在于实时系统中的任务都有时间限制。实 时系统的基本特征是它的实时操作模式,实际应用中人们对实时系统的理解往往不尽 相同,从而导致实时系统一直没有一个标准的定义。c m k r i s h n a 和勋n gg s h i n 在他们所著的实时系统中将实时系统定义为:“任何一个对于外界的刺激都能由计 算机给出及时响应的系统就是一个实时系统”【l l o 德国工业标准将其定义为:“当外界 数据到来时,计算机系统能够立即进行数据处理,以使处理的结果能够满足预定的时 间要求;数据到来的时间随机分布并且能依据不同的应用需求进行有效的数据处理。” 在这种操作模式下,对计算机的性能要求与具体的外部应用有关。计算机的处理时间 必须与外部事件同步,所以实时系统通常被作为嵌入式系统应用在一个大的环境中, 因而又被称为嵌入式实时系统1 4 】。 1 1 3 实时系统的分类 按实时系统的应用目的来划分,实时系统可分为实时控制系统和实时信息处理系 2 统。按实时系统应用特点来划分,实时系统可分为集中式和分布式系统两类h 。 1 实时控制系统 实时控制系统通常应用在以计算机为中心的生产过程控制系统和武器控制系统 中。这类系统要求实时采集现场数据,并对所采集的数据进行及时地处理,从而自动 控制相应的对象,使它的运行参数( 如方位、角度、温度等) 能按照一定规律变化。 在实时控制系统中,计算机通过特定的外围设备与被控制对象发生联系,被控对象的 信息经加工后,一般通过屏幕向控制人员显示或向被控对象发出指示,实现对被控对 象的控制。 2 实时信息处理系统 实时信息处理系统通常指一台或多台主机通过通信线路连接成百上千个远程终 端,计算机接收从远程终端发来的请求,根据用户提出的问题,对信息进行检索和处 理,并在很短的时间内为用户做出正确的回答。例如:火车联售票系统、可视电话成 像系统等等。在实时信息处理系统中,用户通过终端设备向系统提出服务请求,系统 完成服务后通过终端回答用户。 3 集中式实时系统 在集中式系统中,处理器被放在单个系统节点上,而相对于处理器的执行时间来 说进程间通信的时间显得微不足道。集中式系统的一个例子是具有共享内存的多处理 器系统。 4 实时分布式系统 在分布式系统中处理器被分布在系统的各个节点上,但这时进程问通信的时间相 对于处理器执行时间来说则不能忽略,局域网就是这类系统的一个例子。 1 2 实时系统的基本结构 图1 1 显示了一个实时系统控制某个进程的原理框图【1 1 。被控制的进程和操作的状 态( 例如,压力、温度、速度和高度) 通过传感器来获得,作为输入提供给控制器( 即 实时的计算机) 。每个传感器的数据速率依赖于测量参数的变化快慢,它通常会小于 1 蜘。实时系统有一个确定的应用任务( 或工作) 的集合,即图1 1 中的“工作菜单”。 处理这些任务的软件预先载入计算机。如果这个计算机有一个共享的主存,则全部软 件都将被载入。相反,如果它包含一系列属于各个处理器的私有内存相应的问题就 会出现了,即每个任务应该被载入哪个内存。这个问题与任务的分配与调度有关。“触 发生成器”是一种机制的表示,用来触发每个任务的执行。它并不真是一个单独的硬 件单元,一般来讲它是执行软件的一部分。很多任务都是周期性的( 即它们有规律地 执行) 。这些任务的进度表可以脱机获得,并且作为一个查找表载入供调度器使用。任 务可以根据被控制进程的状态或者操作环境进行初始化。例如,当化工厂中锅炉的压 强高出闽值或飞机的高度低于一定的阈值时,可能需要每x 毫秒执行一次某个任务。 最后,任务可以根据操作者的输入面板的命令进行初始化。 3 图1 1 实时系统结构框图 计算机的输出被提供给执行机构和显示器。容错技术确保即使计算机输出有一些 小错误,执行机构也会被正确地设置。执行机构一般有一个机械或液动部件,因此它 们的时间常数很高,导致执行机构数据速率很低,平均每2 5 毫秒一个命令是很正常的。 一个控制计算机根据数据速率会表现出二义性。传感器与执行机构以相对低的数 据速率运行。计算机本身必须速度很快,足以处理控制算法,要求能够超过每秒5 千 万条指令的计算能力。这导致系统分成三个区域:一个外部的低速区域,包括传感器、 执行机构、显示器和输入面板;一个中或外围区域,包括对出入本层的数据的正确格 式化的必要处理;执行控制算法的中央处理器集合。图1 2 描述了这种逻辑分解关系【1 l 。 被控制的进程经常经过不同的阶段,每个阶段定义了所需要的控制任务的集合、任务 的优先级和时间限。 1 2 实时控制计算机的分析示意图 1 3 实时系统任务的分类 可以按两种方法对任务进行分类:按它们到达的可预测性分类和按它们不能及时 执行的结果分类【。 周期性和非周期性任务:实时系统中有很多任务需要重复执行。例如,一个任务 可能希望每1 0 0 毫秒监测一下飞行器的速度、高度和空间方位角。这个传感器的信息 4 将被周期性的任务用来控制飞行器的控制表面,以保持稳定和其他期望的特性。这些 任务的周期性是设计者所熟知的,因此这些任务可以被预先调度。 相反,有很多其他任务是非周期性的,它们只是偶尔发生。例如,当飞行员希望 转弯时,很多与这个操作相关的子任务将被设置。由于非周期性任务的突然性,它们 不能被预测,所以必须预留足够的计算机资源来实时地执行它们。 关键和非关键任务:实时任务也可以按照它们没有被按时执行的结果进行分类。 关键任务是那些对实时执行要求严格的任务,如果错过了时间限,将会发生灾难。例 如生命攸关的系统和飞机的稳定性控制。尽管它们的特性是关键的,并不意味着这些 关键任务的每一次重复都要在一个给定的时间限内成功地被执行。关键任务经常要以 很高的频率执行,远远超过实际所需的情况。这造成了时间冗余,从而保证关键的周 期任务的多次重复出现能成功地运行一次,这就足以保证系统的安全。 非关键实时( 或弱实时) 任务。就像它的名字一样,对于应用是不起关键任务的。 然而,它们确实处理随时间变化的数据,所以如果不能在时间限内完成就起不到作用 了。调度这些任务的目的就是最大化在其时间限内被成功执行的任务的百分比。 5 第二章实时操作系统 2 1 实时操作系统与实时系统的关系 实时操作系统由来已久。但是直到近几年才开始获得重视并在各行各业中获得越 来越多的应用。尤其是在嵌入式应用场合,基于c 语言的实时嵌入式操作系统已经逐 渐替代了原来的利用汇编语言加上任务顺序执行的传统编程方法。 一个系统即使采用了实时操作系统作为开发平台之后,也并不能说这个系统就是 一个实时系统。实时系统本质的特点是要保证系统中的关键任务的时间特征,也就是 说任务的执行时间必须小于它的时间限制。而这一点必须由系统的设计者来保证,任 何一个实时操作系统都是无法保证的。 在没有实时操作系统的时候,实时系统的设计者完全由自己根据实时理论,通过 自己的编程来实现系统设计,利用实时理论来对系统的性能进行分析,通过对系统输 入输出以及运行环境的仔细分析来对系统的运行状态做出评估。而在采用了实时操作 系统之后,实时系统的设计者依然不能避免这些工作。所以从这个角度讲,实时嵌入 式操作系统只是实时系统设计的一个工具。实时系统的设计者必须具有很强的实时理 论与背景,同进对系统有深入的了解,再加上对实时操作系统的全面掌握,才能设计 出一个可靠的实时系统。 从另一个方面来讲,如果能够用好实时操作系统,那么对于实时系统的设计是有 巨大好处的。因为实时操作系统的多任务调度、进行间通讯、中断的快速响应、内存 分配等多个技术都可以在实时系统中获得应用,从而极大地提高实时系统的开发效率。 实时操作系统对于实时理论有比较全面的支持,如提供了基于优先级抢占的调度机制, 使得实时调度理论能够很容易地在实时系统上实现。可靠的任务调度机制使得对系统 中众多任务的安排变得容易,且结构清晰。由于采用了c 语言等高级语言的编程模式, 使得一个可靠的实时操作系统可以进一步提高实时系统的可靠性。在传统的实时系统 设计中,完全靠设计人员手工实现这些功能,因此对于系统的升级、维护以及移植都 造成了极大的不便。即使在有的实时系统设计中,设计者专门设计了操作系统,但这 些操作系统一般都比较简单,和现有实时操作系统的功能还是无法相比的。因此,在 处理器以及环境条件允许的情况下,实时系统的设计者应该尽可能地采用成熟可靠的 实时操作系统来进行系统的设计【5 】。 2 2 实时操作系统的主要发展阶段 实时操作系统的研究是从2 0 世纪6 0 年代开始的,差不多是随着嵌入式系统同时 6 出现的。从系统结构上看,实时操作系统到现在经历了如下三个阶段【6 】。 1 早期的实时操作系统 早期的实时操作系统还不能称为真正的实时操作系统,它只是小而简单的、带有 一定专用性的软件,功能较弱,可以认为是一种实时监控程序。一般为用户提供对系 统的初始化管理以及简单的实时时钟管理,有的实时监控程序也引入了任务调度及简 单的任务间协调等功能。这个时期,实时应用较简单,实时性要求也不高。应用程序、 实时监控程序和硬件运行平台往往是紧密联系在一起的,开发工具也很简单,主要是 用创建和调试软件。由于编译器经常有很多错误而且也缺乏功能强大的调试器,这些 软件差不多总是用汇编语言或宏语言来编写。 2 专用实时操作系统 随着应用的发展,早期的实时操作系统己越来越显示出明显的不足。有些实时系 统的开发者为了满足实时应用的需要,自己研制与特定硬件相匹配的实时操作系统。 这类专用实时操作系统中的许多是用汇编语言实现的,并且仅能用于为其编写的微处 理器上。当这些微处理器变得过时的时候,它们使用的操作系统也面临着相同的厄运, 只能在新的处理器上重新写出一遍才能运行。它是在早期用户为满足自身需要而研制 的,它一般只能适用于特定的硬件环境,且缺乏严格的评测,移植性也不是很好。 3 通用实时操作系统 在各专用实时操作系统中,一些任务的机制如基于优先级的调度、实时时钟管理、 任务间的通信、同步互斥等基本上是相同的,不同的只是面向各自的硬件环境与应用 目标。实际上,相同的多任务机制是能够共享的。因而可以把这部分很好的组织起来, 形成一个通用的实时操作系统内核。 在c 语言出现后,操作系统可以用一种高效的,稳定的和可移植的方式来编写。 这种方式对使用和经营有直接的吸引力,因为它承载着人们当微处理废弃不用时能保 护他们的软件投资的希望。用c 来编写的操作系统已经成了一种标准直至今天。总之, 软件的可复用性已经为人接受而且正在很好地发挥作用。 在2 0 世纪8 0 年代早期的w j n d o n 操作系统是一个开发套件,使用者可以通过选 择一些组件来构建自己的操作系统。比如,可以从库中的多个可彳亍选项列表中精选出 一种任务调度算法和内存管理方案。这类实时操作系统大多采用软组件结构,以一个 个软件“标准组件”构成通用的实时操作系统。一方面,在实时操作系统内核的最底 层将不同的硬件特性屏蔽掉;另一方面,对不同的应用环境提供了标准的、可裁剪的 系统服务软组件。这使得用户可根据不同的实时应用要求及硬件环境选择不同的软组 件,也使得实时操作系统的开发过程减少了重复性的工作。 2 3 实时操作系统研究方向 实时操作系统经过多年的发展,先后从实模式进化到保护模式,从微内核技术进 化到超微内核技术,在系统规模上也从单处理器的实时操作系统发展到支持多处理器 7 的实时操作系统和网络实时操作系统,在操作研究领域中形成了一个重要的分支。实 时操作系统的研究方向主要集中在如下三个方面【6 j 。 1 实时操作系统的标准化 如今国际上的实时操作系统的主要开发商有数十家,提供了上百个实时操作系统, 它们各具特色。但这也给应用开发者带来难题,首先是应用代码的重用性难,当选择 不同的实时操作系统开发时,不能保护用户已有的软件投资,实时操作系统的标准化 研究越来越被重视。美国m e e 协会在u n i x 基础上,制定了实时u n i ) 【系统的标准 p o s 1 0 0 1 4 系列协议。汽车业界于1 9 9 5 提出了适用汽车应用软件的实时操作系统标 准o s e m x 操作系统规范( 详见第三章) 。 2 多处理器结构实时操作系统和分布式实时操作系统 实时应用的飞速发展,对实时操作系统的性能提出了更高的要求。单处理器的计 算机系统已不能很好地满足某些复杂实时应用系统的需要,开发支持多处理器结构的 实时操作系统已经成为发展方面。这方面比较成功的系统有p s 0 s 等。至于分布式实 时操作系统,国外一些厂家虽已推出部分产品,如q n x 、a l o m s 、p l a n 9 等。但分布 式实时操作系统的研究还未完全成熟,特别是在网络实时性和多处理器间任务调算法 上还需进一步研究。 3 集成开放式实时系统开发环境 实时操作系统研究的另一个重要方向是集成开发环境的研究。开发实时应用系统, 只有实对操作系统是不够的,需要集编辑、编译、调试、模拟仿真等功能为一体的集 成开发环境的支持。开发环境的研究还包括网络上多主机间协作开发与调试应用技术 的研究、实时操作系统与环境的无缝连接技术等。 2 4 嵌入式实时操作系统uc o s i i uc o s i i 1 是由j e 卸j l a b r o s s e 于1 9 9 2 年编写的一个嵌入式多任务实时操作系 统。该操作系统开始称为uc o s ,后来经过近1 0 年的应用和修改,在1 9 9 9 年j e a n j l a b r o s s e 推出了ua o s i i ,并在2 0 0 0 年得到了美国联邦航空管理局对用于商用飞机 的、符合r t c a - 1 7 8 b 标准的认证,从而证明u 吖o s 具有足够的稳定性和安全性。 i lc o s i i 已经在世界范围内得到广泛的应用【9 ,1 0 t 1 1 ,1 2 ,1 ”,包括诸多领域,如手机、路 由器、集线器、飞行器、医疗设备及工业控制等等。 2 4 1 文件结构 图2 1 表明了l lc o s - i i 的文件结构以及与硬件的关系川。在应用程序中使用 uc o s i i 时,需用户提供应用软件和uc o s 一的配置部分( 0 s _ c f g h ) 。i lc o s i i 的大部分代码都是用c 语言编写,只有极少部分与处理器相关的代码( o sc p ita a s m ) 是用汇编语言编写的,所以用户只要用很少的工作就可以把它移植到各类8 位、1 6 位 和3 2 位嵌入式处理器上。uc o s 的源代码是开放的,可以免费下载。 8 软件 硬件 2 4 2 任务管理 图2 1 uc o s m 的文件结构 uc o s 可以管理多达6 4 个任务,但目前版本的u d o s 有2 个任务已经被内 核占用。必须给每个任务赋予不同的优先级。优先级可以为o 至o s l o e w s t j r i o 2 。 任务的优先级值越低,优先级就越高。uc o s 一支持运行期间改变任务的优先级。图 2 2 表明了l lc o s 一控制下的任务状态转换酬7 1 。在任一结定时刻,任务的状态一定 是在以下5 种状态之一。 睡眠状态任务此时驻留在程序空间,还没有交给l lc o s 来管理。 就绪状态 任务一旦建立就进入就绪态,准备运行。 运行状态 优先级最高的任务将获得处理器使用权,进入运行态。 等待状态当任务执行延时或等待的事件未发生时就会进入等待态。 中断服务态正在运行的任务是可以被中断的。被中断了的任务将会进入中断 服务态。响应中断时,正在执行的任务被挂起,中断服务子程序控制处理器 的使用权。 当所有的任务都在等待事件发生或等待延迟时间的结束时,ud o s 执行被称为 空闲任务的内部任务。l ia o s h 总是运行进入就绪态的优先级最高的任务,由调度器 决定下一次将运行的任务。uc o s 的任务切换由以下两步完成:将被挂起任务的处 理器寄存器推入堆栈:然后将较高优先级任务的寄存器值从栈中恢复到寄存器中。在 uc 0 s - i i 中就绪任务的栈结构总是看起来跟刚刚发生过中断一样,所有处理器的寄存 器都保存在栈中。为了执行任务切换蛰c o s 模仿了一次中断。多数处理器由软中断 指令或者指令陷阱来实现任务切换。 uc o s 一主要提供了以下三种方法用于任务间的同步与通信; 9 信号量:为共享资源设置一个表示该资源被占用情况的标志e 任务首先访问 该标志以了解该资源的被占用情况,然后再决定是否使用该资源。 消息邮箱:可以使一个任务或者中断服务子程序向另一个任务发送一个指针 变量。通常该指针变量指向一个包含着消息的特定数据结构。 消息队列:可以使一个任务或者中断服务子程序向另一个任务发送多个指针 变量。每个指针变量指向的包含消息的数据结构可以不同。 2 4 3 中断及时间 图2 2uc o s i i 的任务状态 当uc o s 接收到中断请求后,如果此时处理器处于中断允许状态,系统就会中 止正在运行的任务,根据中断向量运行相应的中断服务子程序;当中断服务子程序的 运行结束后,系统将会根据当前各任务状态,或返回到被中止的任务继续运行,或运 行另一个具有更高优先级的就绪任务。 ud o s i i 与大多数实时操作系统一样,利用硬件定时器产生一个周期为毫秒级的 周期性中断来实现系统时钟。最小的时钟单位就是两次中断之间间隔的时间。硬件定 时器以时钟节拍为周期定时地产生中断,该中断的中断服务子程序通过调用相应的函 数来完成系统在每个时钟节拍需要做的工作【8 】o 1 0 第三章o s e 啪x 规范 随着科技的进步及微电子技术的迅速发展,电控单元( e l e c t r d n i cc t r o lu 血: e c u ) 的价格逐渐下降,性能与可靠性日益提高。与此同时,人们对汽车的安全性、 舒适性、环保及智能度等方面的要求不断增加,导致汽车电控单元的使用量不断增加, 汽车电子软件的开发变得更加复杂和困难。各汽车生产商在开发汽车电子软件时采用 的标准及接口不一致,造成汽车电子软件的移植十分困难,甚至于不可能植移。 为了解决上述问题,1 9 9 3 年德国汽车工业界提出了o s e k ( 0 6 髓es y s t c m eu n d d e r e ns c h i l i t t s t e l l e nf u rd i ee i c k t r o n i ki mk r a f t f a l l r z e u g ) 体系,其含义是汽车电子开放式 系统及其接口。这个体系的最早倡导者有:宝马、欧宝、西门子、大众和卡尔斯鲁厄 大学的工业信息技术研究所。法国的汽车制造商标致和雷诺于1 9 9 4 年加入了0 s e k 体系,并将法国汽车工业使用的汽车分布式运行系统( v e h i c l ed i s t r i b u t e de x e c i l t i v e : v d x ) 也纳入这一体系。在1 9 9 5 年召开的研讨会上,众多厂商对0 s e k 和v d x 达成 了共识,正式产生了0 s e k ,、l ,d x 规范。它主要由四部分组成:操作系统规范【l ”、通 信规范【1 6 1 、网络管理规划1 7 l 和实现语言【1 8 1 。 o s e k d x 规范是国际汽车行业先进开发技术的总结,提供了将各种先进汽车电 子设备有机集合在一起的网络化嵌入式计算机系统开发规范。基于该规范的实时操作 系统内核的开发涉及到实时系统理论、操作系统理论,嵌入式系统理论及汽车控制理 论。基于o s e 啪x 规范的应用软件也可以应用于其他领域,这些领域中的应用被静 态的定义,且需要一个紧凑的分布式实时系统,如太空飞行器控制,加工制造设备的 实时控制。由于o s e k d x 规范的优点及许多国际上著名嵌入式软件公司的加盟,它 逐渐占据了汽车电子软件平台的主导地位。o s e l w d x 规范已经正式经过i s o 组织审 核,将很快成为国际标准。 从o s e k d x 规范1 9 9 5 提出至今,国际上已经有很多研究机构深入研究了该标 准,如德国的卡尔斯鲁厄大学渊、美国的密西根大学1 2 3 埘省2 6 1 、美国的卡内基梅隆太 掣明等。迄令为止,共举办了三次关于o s e i 【、,d x 规范的国际研讨会。第一次研讨 会于1 9 9 5 年举行,会议对0 s e k ,、,d x 规范达成了同识,并正式产生了o s e w d x 规范;第二次研讨会于1 9 9 7 年举行,会议讨论了0 s e 啪x 规范第二版的主要内容: 第三次研讨会于2 0 0 0 年举行,会议介绍了o s e k ,、,d x 规范当前的情况及结构,交流 了开发基于该规范的嵌入式平台的经验。本文以下部分将0 s e k x 简称为o s e k 。 我国已经将符合o s e k 规范的汽车电子嵌入式软件平台的开发及其关键技术的研 究作为“十五”期间8 6 3 重大研究项目。在汽车电子软件开发中符合o s e k 规范,使 我国汽车行业顺利发展并打入国际市场,是我国汽车生产所面临的一个紧迫任务。目 前,清华大学f 3 0 3 1 3 2 ,3 3 1 、浙江大学【3 4 3 5 问、上海交通大学p 7 】、同济大学【3 8 】、北京航空 航天大学【3 9 1 、北京理工大学【船4 1 l 等高校均展开了对o s e k 规范的学习与研究。我国目 1 1 前对该规范的研究和应用仍处于初级阶段。因此,深入学习与研究该标准并将该标准 应用于汽车及相关行业中就显得非常必要与紧迫。 目前,已经有一些公司开发出符合o s e k 规范的集成开发环境,如美国风河公司 的o s e l 【w o r k s ,美国m e t r o w e r k s 公司的o s e k m r b o ,美国a c c e l e r a t e dt c c h n o l o g y 公 司开发的n u d e u so s e k ,德国v c c t o r 公司开发的o s o 蝌等。但出于商业利益,这些 公司并不提供其核心技术的源代码。0 s e k 规范发展至今,全球已有5 0 多家企业加入 到这一行列中,欧洲以德国、法国为代表,美国和日本也有不少公司加入。我国现在 还没有公司加入这一体系。 3 1 操作系统规范 o s e k 操作系统( o p e r a t i n gs y s t e m :o s ) 规范【1 4 】定义了一个统一的运行环境。该 环境支持汽车控制单元软件对资源的高效利用。汽车应用软件具有严格的实时性要求, 因此操作系统提供了必须的功能阻支持事件驱动系统。o s e k 的目标之一就是支持应 用软件的可移植性和可重用性。因此应用软件与操作系统之间的接口被定义为标准系 统服务调用,并通过标准系统服务调用来减轻维护、移植应用软件的工作量。应用软 件与操作系统之间的关系见图3 1 口应用软件位于操作系统以及和操作系统平行的具体 应用相关的输入输出系统之上。应用软件的模块可能拥有多个接口。这些接口可以用 来调用操作系统服务,也可以用来访问其他软件模块或直接访问硬件。 应 用 用 软 件 ll 喇黼阁p i l j t 百了n可 0 8 腿操作系统 l 输入廊出系统 i 了t丁亡 微控制器 l 图3 1 应用软件与e c u 的接口 不同的应用软件对于操作系统的服务的需求可能是不相同的。为了满足不同应用 软件的需要,操作系统规范定义了一个独特的新概念符合类( c 0 n f 0 加a n c ec l a 鹳: c c ) 。根据任务的多重激活性、任务的类型( 参见3 1 1 ) 和每个优先级的所允许的任 务数,o s e k 操作系统规范一共定义了四种符合类: 基本符合类1 :只包括基本任务,每个任务只能激活一次,每个任务都有一个优先 级且不同任务的优先级不同。 基本符合类2 :包括基本符合类1 的要求,且允许同一任务的多次激活及允许多个 1 2 任务具有相同的优先级。 扩展符合类1 :包括基本符合类1 的要求,且允许有扩展任务。 基本符合类2 :包括扩展符合类1 的要求,且允许同一任务的多次激活及允许多个 任务的具有相同的优先级。 3 1 1 任务管理 操作系统规范中的任务主要分为两类:基本任务和扩展任务。这两类任务的主要 区别在于扩展任务可以利用事件进行同步而基本任务则不能。操作系统规范中任务主 要包括四个状态:运行、就绪、阻塞和等待( 仅适用于扩展任务) 。任务状态转换情况 参见图3 2 ,其中虚线所表示的状态及状态转换过程仅适用于扩展任务,等待状态是指 扩展任务由于所需的事件没有产生而不能继续执行时的状态。 3 2 任务状态转换 调度器根据任务优先级决定下一个获准执行的任务。任务的优先级取值越大则优 先级越高,0 被定义为最低优先级。为了追求效率,操作系统规范不支持动态优先级, 即任务的优先级是静态定义的。不能在运行期间改变任务的优先级。然丽,在特殊情 况下,操作系统可以提升一个任务的优先级( 参见3 1 3 ) 。具有相同优先级的任务按照 它们被激活的顺序进行调度,因此处于等待状态的扩展任务不能阻止后继的、具有楣 同优先级的扩展任务的执行。一个被抢占的任务被置于相同优先级任务等待队列的队 尾,而将要执行的任务是该优先级等待队尾的队首,即调度器按照先进先出的顺序对 同等优先级的任务进行调度。图3 3 表明了调度器的运行情况,此时处于就绪态的任 务的优先级是不相同的,即三个优先级为3 的任务、一个优先级为2 的任务、一个优 先级为1 的任务、两个优先级为0 的任务处于就绪态。先进先出队列中等待时间最长 的任务处于队列的最低端。假设此时处理器完成了当前任务,则调度器将选择优先级 为3 的先进先出队列中最低端的任务执行。根据任务的可抢断性可以将调度策略分为 三类: 1 完全可抢断调度 这种调度策略意味着当前处于运行态的任务在任何时刻都可能由于重新调度的发 生而失去处理器的使用权。只要具有更高优先级的任务处于就绪态,完全可抢断调度 就会终止当前的任务,转而去执行更高优先级的任务。被抢断的任务的上下文需要被 保存,以确保下次获准执行时能够从被抢断点执行。在完全可抢断调度略策下,一个 任务的延迟时间与低优先级任务的执行无关。这种策略将需要更多的内存以保存被抢 断任务的上下文,同时也增加了不同任务间同步的复杂性。 2 不可抢断调度 在这种调度策略下,只有当前处于运行态的任务已经结束,或明确声明可以进行 调度的情况下,任务切换才会发生。不可抢断调度策略增加对了任务时间要求的限制, 而且可能会延迟高优先级就绪任务的执行。 3 混合抢断调度 如果同一系统中既存在着可抢断任务又存在着不可抢断任务,则

温馨提示

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

评论

0/150

提交评论