(计算机应用技术专业论文)嵌入式操作系统面向行业应用扩展技术的研究与实现.pdf_第1页
(计算机应用技术专业论文)嵌入式操作系统面向行业应用扩展技术的研究与实现.pdf_第2页
(计算机应用技术专业论文)嵌入式操作系统面向行业应用扩展技术的研究与实现.pdf_第3页
(计算机应用技术专业论文)嵌入式操作系统面向行业应用扩展技术的研究与实现.pdf_第4页
(计算机应用技术专业论文)嵌入式操作系统面向行业应用扩展技术的研究与实现.pdf_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

摘要 微电子技术的发展,为嵌入式系统在提高硬件的性能、降低系统成本上提供 了有利条件;另一方面,各种在p c 上业已成熟的软件思想也向嵌入式领域逐渐 渗透。更为重要的是,潜在市场的不断挖掘成为促成嵌入式系统愈加繁荣的根本 动力。 本文首先分析嵌入式系统在应用目的、体系结构、软硬件环境等特点,以此 为基础,论述了其相互间的作用。作为计算应用的典型,嵌入式系统充分体现了 其以“应用”为核心的指导思想。以“应用”为核心的嵌入式系统,系统的“专 用性”的特点似乎与当今计算机行业中所倡导的“开放”与“通用”的系统思想 不能暗合。但事实上却是,在应用需求接近的行业内部、企业内部,嵌入式软件 架构正在开始“结盟”。 面向领域的嵌入式操作系统扩展技术,正是此趋势下所做出的研究。本文在 第二、三章中,对面向领域的嵌入式操作系统扩展技术的实质、意义、关键技术, 做了更深入的讨论,并对国内外的类似技术进行分析和比较。 为了使面向领域的前提有所实指,在本课题中,以个人通信终端为目标领域, 对该领域的行业特征、行业需求做出了分析,并且围绕其一系列的特点,给出了 面向个人通信终端行业的嵌入式操作系统扩展库的总体架构,以及主要模块的设 计与分析。在设计中,力图紧密围绕行业的特点,将设计与分析结合起来,互为 比照,以揭示所谓面向领域的实质。 本课题的另一尝试是,通过引入组件技术对操作系统进行抽象与封装,从而 使本系统中的设计,具有硬件无关,高可移植的特点,提高整个系统的通用性。 操作系统的抽象和封装,作为操作系统扩展技术的基础,并非全新的课题,该技 术的发展,也因为硬件性价比、应用需求的提升而备受重视。面向对象的设计思 想也被溶入其中,而组件技术,作为一个更加完备的面向对象的设计手段,被应 用到操作系统的抽象和封装上,尚属创新。 关键词:嵌入式操作系统面向行业移动通信终端a p i 封装 1 1 1 a b s t r a c t w i t ht h e d e v e l o p m e n to fm i c r o e l e c t r o n i ct e c h n o l o g y , e m b e d d e ds y s t e mi s b e i n g e n h a n c e d b yh i g h c a p a b i l i t y a n d l o w c o s t i n g h a r d w a r et h a td e c i d e si t a c c e p t a b l eo rn o t o nt h eo t h e rh a n d ,a l lk i n d so fa d v a n c e dt h o u g h t so n c eu s e do np c a r ei n t r o d u c e di n t ot h i sa r e a ,s u c ha s0 0 ,j a v a i n f a c t ,g r e a tp o t e n t i a lm a r k e t i st h e r o o tc a u s eo f a b s o r b i n g m o s tc o n c e r na n d p u s h i n g i tq u i c k l y h e r es o m ef e a t u r e sa r ed i s c u s s e df i r s ts u c ha s a p p l i c a t i o np u r p o s e ,s y s t e m a r c h i t e c t u r e ,a n dh a r d w a r e s o f t w a r ee n v i r o n m e n t b a s i n go ni t ,t h er e l a t i o n s h i po f i n t e r a c t i o ni st r i e dt oe x p o s ea m o n gt h e m e m b e d d e ds y s t e m ,a sa t y p i c a la p p l i c a t i o n o fc o m p u t e rs c i e n c e ,i sa l w a y sa r o u n dt h ec o r eo f “a p p l i c a t i o n - p u r p o s e d ”f r o mt h e a p p e a r a n c e ,i t ss p e c i a l i s mc o n f l i c t sw i t ht h ep o p u l a r v i e w t h a t o p e n a n d u n i v e r s a l c o m p u t e rs y s t e ma r c h i t e c t u r eb e n e f i t sa p p l i c a t i o n s h o w e v e r , t h et r u t hi st h eu n i o ni s b r i n g i n gu pa m o n g t h ef i e l da n dc o r p i n s i d e u n d e rt h i sc o n d i t i o n ,f i e l d o r i e n t e de x t e n s i o no fe m b e d d e do p e r a t i n gs y s t e m b e g i n s t ob e r e s e a r c h e d c a p t e r2a n d 3t r yt oa n s w e rw h a ti sf i e l d - o r i e n t e de x t e n s i o n o fe m b e d d e do p e r a t i n gs y s t e m f u r t h e r a n a l y s i so ni t se s s e m i a lm a dk e yt e c h n i c hi s b a s i n go n t h ec o m p a r e t i o nw i t h s p e c i np r o d u c t s i nt h er e s e a r c ho nf i e l d o r i e n t e de x t e n s i o no fe m b e d d e do p e r a t i n gs y s t e m , f o c u si sl o c k e do nt h ea r e ao fp e r s o n a lc o m m i n i c a t i o nt e r m i n a l a c c o r d i n gt ot h e b a s i cc h a r a c t e r i c sa n dr e q u i r e m e n t s ,s y s t e ma r c h i t e c t u r ed e s i g ni sp r o v i d e d m u c h e f f o r ti sp u to na s s o c i a t i n gt h ef i e l dc h a r a c t e r i c sa n ds y s t e mi m p l e m e n t a sa n o t h e r a t t e m p t a t i o n ,t h ep o l i c yo fe n c a p s u l a t i o no f o sf o l l o w st h es t a n d a r e d o fm i c r o s o f lc o m k e y w o r d s :e m b e d d e do p e r a t i n gs y s t e m ;f i e l d o r i e n t e de x t e n s i o n ; a p i e n c a p s u l a t i o n ;m o b i l ec o m m u n i c a t i o n 1 v 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:翌! 丕日期:励尹年垆月矽日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:盘f 盔 导师签名: 1 1 日期:0 仞中年牛月2 9 日 第一章前言 1 1 嵌入式系统与嵌入式软件的发展 嵌入式系统( e m b e d e ds y s t e m ) 即嵌入式计算机系统,是相对于通用计算机 而苦,以应用为核心,以计算机技术为基础,软4 牛硬件可裁减,适应应用系统对 功能、可靠性,成本、体积和功耗严格要求的专用计算机系统。在这种系统中, 计算机( 或者处理器) 是作为某个专用系统中的个部件而存在,其本身的存在 并非目的而只是手段。计算机的嵌入,不是机械的安装,而是指为目标系统构筑 起合适的计算系统,再有机的植入,甚至融入到目标系统中。嵌入式系统一般存 在如下特点: 首先是对可靠性和稳定性有比较高的要求。元器件的工艺质量,可靠性,允 许的外部温度环境都是需要考虑的重要因素。有的系统还需要有“容错”的技术, 如自动保护切换。 嵌入式系统要求尽可能的降低功耗。同时,为了能够植入到目的系统中去, 在物理尺寸上也有一定的要求。 在系统配置上,嵌入式系统对c p u 的计算能力要求不是很高,存储空间也 比较有限,一般不带大容量的存储设备。因为很多嵌入式用于控制目的,外设接 口比较多样,人机界面常常也比较特殊。 随着微电子技术和计算机技术的发展,微控制器芯片功能越来越强大,而嵌 入微控制器芯片的设备和系统越来越多,从而使得这种技术得到了极大的发展。 嵌入式操作系统指用于嵌入式计算机的操作系统称为嵌入式操作系统。基于 嵌入式系统的特殊性,嵌入式操作系统也有别与普通操作系统。下面仅列举两点 做一些说明。 首先,许多嵌入式操作系统不划分系统空间和用户空间,也就是说,c p u 一直是在同一运行状态( 或者称为c p u 模式) 下运行的。所谓的系统调用,不 是通过“自陷”的调用方式,而是直接的子函数调用。这样有利于提高调度效率, 但由于不能提供越界访问保护,也为系统带来不安全因素。信号量,互斥量等保 护机制就显得尤其重要。对全局函数也要求具备“可重入性”。其次,许多嵌入 式系统出于实时和硬件特性( 闪存不易读写) 的考虑不采用存储管理技术,不存 在虚拟存储,即便采用了页式管理,也极少有页面的换入换出。 虽然我们也可以从众多的嵌入式操作系统中归纳出一些特点,但是,嵌入式 操作系统是一个大的范畴,从最简单的监控程序,到运用到嵌入式计算机中的常 规操作系统,都可以划分在这个范畴之中,嵌入式操作系统的差异是多方面的, 由于应用领域、硬件环境、成本、性能以及其他非技术性原因,种类繁多,除了 比较流行的商用系统p s o s 、v x w o r k s 、i r m x 、q n x 、w i n c e 等,开源系统e c o s 、 “c o s - i i 、嵌入式l i n u x 等,很多实验室和大的商家都针对自己产品的特点开 出与之相适应的嵌入式操作系统。有了嵌入式操作系统,可以开发出更加复杂的 应用。由于硬件性能的提高和操作系统的支持,使得实现复杂功能的嵌入式软件 成为可能。比如一个通信协议栈,往往需要运行上百个任务,没有操作系统的支 持,这几乎就是不可能的。 另一方面,软件的复杂性也对软件的结构提出了新的要求。早期的嵌入式系 统,主要用在控制方面,软件逻辑较为简单,软硬件的耦合度较高。嵌入式操作 系统的使用,在一定程度上改善了这种情况,并且提供一个系统对象调度管理的 平台。但是,由于操作系统本身也存在多样性的问题,如何更进一步的降低软件 耦合度,提高上层应用程序的可复用性,进一步增强软件平台的功能,以适应更 加复杂的嵌入式应用,成为继嵌入式操作系统之后的另一个课题,在这种需求的 刺激下,嵌入式编程中间孕育而生。编程中间件的产生,一方面,使得应用与硬 件之间更加独立,比如说,通过隔离封装的方法,提高了软件的可复用性,另 方面,针对行业应用的相似性,尽可能的在行业之中提供一个相对面向行业的开 发平台,比如集成行业函数库,提供面向行业的系统服务,从而提高软件开发的 效率,缩短开发的周期,提高产品的性能。因而,面向行业的编程中间件,正在 成为嵌入式软件平台的一个发展方向。在这个过程中,面向对象的语言如c + + , j a v a ,以及其他多种在p c 上发展得较为成熟的技术,经过改头换面,也被逐步 引入到嵌入式领域。 1 2 什么是“面向行业的操作系统扩展库” 如前所述,嵌入式操作系统,具有多样性的特点。造成这一结果,有多种原 因。 ( 1 ) 首先,嵌入式系统本身具有的硬件环境多样性、硬软件紧密藕合性等 特点。在嵌入式系统中,因为嵌入的目标系统不同,为了能有机的融入到目的系 统中去,对硬件的功能,结构等等都必须量身定制。即便目标系统相同,应用的 环境和条件改变了,对硬件的性能,工艺等等都会提出不同的要求,硬件的设计 也要做出相应的变化,如此,决定了嵌入式操作系统必然是多种多样的。在系统 资源有限、硬件种类繁多以及硬件环境为配合硬件的多样的性,使得软硬件的耦 合度增强。 ( 2 ) 这些嵌入式操作系统各有特点,不同的嵌入式应用出于成本和性能的考 虑选择也不一样,体现嵌入式操作系统的选择上,也是多种多样的。有的嵌入式 产品开发者干脆自己编写,以配合硬件设计和上层应用的需要,或达到节省成本 的目的。 ( 3 ) 操作系统多样性带来的影响。这样的结果,往往造成即使是同一个公 司内部不同的产品系列也可能使用不同的操作系统。由于不同操作系统的功能和 调用接口往往不一样,这样,一方面造成嵌入式应用程序移植成本过高,另一方面 程序员往往需要熟悉许多不同的开发环境,从而大大增加了嵌入式软件的开发成 本。因此,屏蔽下层不同操作系统,提供统一调用接口的操作系统扩展层成为必 要。 面向行业操作系统扩展库其实质是一种嵌入式中间件技术。面向行业操作 系统扩展库( o s e ) 的首要目的,是为了隔离下层操作系统的差别,从而给程序 员提供一个与下层具体操作系统无关的统一的接口,这一点与操作系统为了隔离 具体的硬件环境而设计出硬件抽象层具有类似设计思想。由于应用程序对具体的 嵌入式操作系统的依赖减少,从而有利于上层应用软件在不同操作系统之间移 植。在一定程度上,改变在软硬件紧密耦合的传统设计模式下,也嵌入式软件的 可移植性相对较差的缺点。 o s e 层位于嵌入式操作系统与应用程序之间,深入参与对象的管理,可以根 据行业需要,向用户提供程序跟踪的调用。以获得靠近内核的信息,对原有操作 系统的适用性和效率都有所提高,而且可提供丰富的调试手段和实时监控功能。 另一方面,由于嵌入式产品的设计必须适应于具体的应用需求,不同的应用 领域,对成本,嵌入式产品的应用大多在环境恶劣,软硬件资源有限,成本严格 控制的情况下,针对特定的功能、性能要求所设计,虽然统称为嵌入式应用,其 差别却是相当大的。一个普遍适用的开发平台尚在期望之中,但在实际的应用中 却还难以实现。本设计中的操作系统扩展库,是面向特定行业需求,考虑行业内 的在功能和性能上需求的相似性,集成了相应的扩展服务,同时对操作系统的某 些特性和功能做了扩展,因此称为面向行业的操作系统扩展库。 1 3 必要性分析 操作系统多样性是嵌入式应用所要面对得的一个现实性问题。为提高应用软 件的可重用性,我们把操作系统接口的封装与抽象作为重要目标,其作用表现在: 1 、屏蔽了底层操作系统之间的差异,为上层应用提供规范统一的编程接口, 降低了上层嵌入式应用软件开发的难度和复杂性 嵌入式操作系统封装层将具体的底层实现细节封装起来,上层应用软件通过 调用统一的编程接口来实现具体的操作。上层软件模块的开发人员不需要了解操 作系统的具体实现细节,仅需掌握规范统一编程接口即可开始工作。这样,大大 降低了应用软件开发人员的开发难度,同时也可将精力集中在业务本身的实现 上,而不必对烦琐的环境细节过于关心。 2 、开发出的应用软件有较好的可移植性、可维护性和代码可继承性 嵌入式操作系统扩展层使上层软件通过标准规范的接口来实现,而不依赖于 具体的操作系统,也屏蔽了底层硬件的实现细节,因此当系统需要重新选择不同的 操作系统或硬件重定制的时候上层应用程序不用作或只作极小的改动,这种方 式,有利于程序的移植和代码的继承。不同的操作系统提供了不同的a p i ,如果 直接在操作系统之上开发上层应用,应用将与操作系统耦合得太紧,给将来的程序 移植带来困难,甚至于无法移植。 3 、程序的可调试性增强,有利于早期发现故障 由于大多数商用实时操作系统的核心部分没有开放源码,这样无法对它的任 务调度、内存管理等方面进行深入的剖析和跟踪,这是在调试过程中经常遇到的 难题。但如果在使用的嵌入式操作系统扩展层,就可以在扩展层中一般会对进程 调度、内存分配等功能进行重新定义,增加程序跟踪的探针等手段,应用方可以 调用这些重程序跟踪的函数,增加调试点,加快故障定位。 4 、提高了关键应用的效率 操作系统扩展层对操作系统内核原有的一些核心功能进行重新封装,可以针 对应用作相应的优化。例如在某些应用的实现中,需要频繁的分配和释放大量的 小块内存。如果直接使用操作系统内核提供的内存分配接口,效率往往很低,如 果在封装层中提供专门的高效的小块内存分配功与释放算法,则效率会提高很 多。 5 、缩短项目的开发时间 4 由于嵌入式实时操作系统封装层的使用可以降低上层软件开发的难度,加快 故障定位速度,故而可以明显地缩短新项目的开发时间。此外,由于上层软件模块 不依赖于具体的实时操作系统,也使得很多以前项目的软件模块可以方便地移植 到新的项目中,从而缩短新项目的开发周期。 6 、增强软件的稳定性 由于嵌入式实时操作系统封装层的使用,使得一个项目中很多基本功能都可 以在这个封 装层实现,而这个封装层是一个经过测试的、可重用的模块,它基本上是比较 可靠的。一个软件的核心部分比较可靠,可以大大增加该软件的稳定性。 7 、集成行业函数库与行业服务应用进程,增强平台功能 在操作系统扩展层中,除了对操作系统内核本身的改进以外,以此为基础, 集成行业函数库( 比如通信行业中的信号处理算法) ,或者行业服务进程( 如通 信协议栈) ,增强平台的功能。将行业中反复使用的资源加以整合、优化,这样 做的收益在于: ( 1 ) 提高该类资源的质量。可以集中人力,物力,对核心问题做专门研究 和优化,对具体模块单独管理、测试,从而确保关键组件的性能。 ( 2 ) 提高系统整体性能。由于核心函数、服务的质量得到了保证,整个系 统的性能都可以得到相应的提升。 ( 3 ) 提高核心模块的可重用性、可移植性。基于核心函数,服务的模块, 由于核心函数、服务本身的稳定性,即,操作系统扩展库不变,则此类模块的可 移植性将会得到很好的保证,由于核心函数、服务本身来源与对行业的资源梳理, 具有很强的针对性,可重用性比较高。 ( 4 ) 降低开发成本,简化开发过程,缩短开发周期。由于集成了部分核心 功能,对应用而言,可以省去或是简化某些模块的开发,缩短开发周期,降低开 发成本。 1 4 对国外相关技术的分析与讨论 随着嵌入式系统在各个应用领域的深入发展,面向领域的嵌入式中间件逐渐 形成了一个新的发展方向。除了规模较大的公司,专门开发了针对本行业的中间 件( 或日行业开发平台) 以外,也出现了商用面向不同行业和领域的嵌入式中间 件,如,欧洲汽车电子行业推出的o s e k v d x 规范:美国高通公司开发的面向 移动终端的b r e w ;s u n 公司开发的j 2 m e 等等。面向行业领域的嵌入式中间件 技术的涌现,一方面反应了嵌入式应用对软件在功能和性能方面提出了更高的要 求,另一方面,也是嵌入式技术在该行业中有较普遍、较深入的应用。这些行业 往往是:个人通信设备、电子设备,复杂的自动控制、过程控制等。 1 5 课题的来源、任务和论文内容安排 本课题来源于“十五”项目。通过了解典型的操作系统扩展案例,从可移植 性和面向行业两个方面研究嵌入式操作系统面向领域的扩展方式,完成c t r o s i i 面向个人通信设各领域的扩展的设计方案。 第一章引言介绍了本文中的相关概念和应用背景。 第二章析了嵌入式操作系统面向领域的扩展典型案例分析,比较了汽车电 子领域的o s e k v d x 规范和移动终端领域的b r e w 以及某工程项目的操作系统 扩展库o s e 的结构于特性。 第三章分析应用与本次设计的关键性问题:系统封装与组件技术以及和个人 通信领域的主要特性。 第四章和第五章介绍了面向个人通信领域的扩展设计方案。 第六章对本文以及本次毕业课题做了总结。 第二章国内外相关技术的研究与分析 在应用层和操作系统层之间,编程中间件起着承上启下的关键作用。嵌入式 平台的系统的易用性,很大程度上决定于该系统提供的中间件的丰富程度和易用 程度。嵌入式操作系统面向领域的编程中间件,可以是一个技术包括嵌入式操作 系统的功能扩展库及抽象程度更高的用户应用编程接口( a p p l i c a t i o n p r o g r a m m i n gi n t e r f a c e ) 。国外众多研究机构、公司,纷纷出台本行业、领域的 a p i 规范和协议。比较大的商业化的产品有面向汽车工业0 s e k 协议,美国高通 公司的面向手机行业的b r e w 系统。下面,我们就几种面向行业的嵌入式编程中 间件产品进行讨论。 2 1o s e k v d x 在汽车制造领域,嵌入式应用主要体现在自动控制和车载电子设备上,而自 动控制的特点主要体现在,实时性要求高,控制逻辑简单,硬件资源有限。 汽车控制单元常使用8 位、1 6 位和3 2 位的处理器。由各个厂家独立生产的 控制模块组成的汽车电子系统存在以下弱点: 系统管理难度提高。各个模块并发工作,相互之间需要同步和通信;系统的控制单元 越多,管理难度越高。 控制单元兼容差。许多控制部件来自不同的生产厂家,采用了不同的接口和通信协议, 系统整合难度大,可靠性和稳定性差。 o s e k v d x 是一组专门为分布式,实时结构定制的标准。由欧洲汽车制造, 供应商与德国的k a r l s r u h e 大学联合开发。主要针对汽车工业中的各种嵌入式应 用,也可用于非汽车工业。协议主要包括四个部分: 操作系统o p e r a t i n gs y s t e m ( 0 s ) ; 通信c o m m u n i c a t i o n ( c o m ) ; 网络管理n e t w o r km a n a g e m e m ( n m ) ; o s e k 实例化语言o s e ki m p l e m e n t a t i o nl a n g u a g e ( o i l ) o s e k v d x 中主要关心的是前三个问题。需要说明的是,在o s e k v d x 提 供的四个模块,都是可选的。用户可以根据自身需要进行配置。 其系统关系如下 图1o s e k 的系统模块 从上图我们可以看出,与通常系统概念不同,o s 与c o m ,n m 三个部分是 并行的,而非包含和涵盖的关系,这是因为在控制逻辑比较简单的情况下,常常 并没有使用到操作系统。o s e k v d x 希望能够做到,在没有操作系统的情况下, 也能进行通信和网络连接,这样在设计中,充分考虑到了通信的独立性。从上图 我们还可以发现,o s 与c o m 之间的灰色模块进程间通信,一般操作系统中都 包含有进程内的通信机制,对于o s e k v d x 而言,这个模块可以被视作操作系 统的内的范畴,也认为是通信模块的子模块。 首先我们从o s e k v d x 的操作系统来进行分析。 汽车应用是强实时的嵌入式应用,0 s e k 操作系统提供支持事件驱动的必要 功能。o s e k v d x 的操作系统要用在许多控制单元上,要在广泛的硬件的基础 上支持时间关键应用,系统将这些不同的配置划分为不同的c c ( c o m f o r m a n c e c l a s s ) 。o s e k 用不同的调度机制和配置特点来满足不同的c c 的要求,比如说: 在o s e k 任务分为基本任务和扩展任务:基本任务只有三种状态:r e a d y , r u n n i n g , s u s p e n d e d 。而扩展任务( e x t e n d e d 协1 ( s ) 在以上三种状态的基础上,还具有w a i t i n g , t r i g g e r 两种状态 抢占机制包括三种:非抢占,完全抢占,混合抢占。在任务的定义中可以将任务定义 成抢占或非抢占。在系统中如果完全是由非强占的任务构成,调度机制就是非抢占的 调度,反之,则为抢占机制。两种属性的任务都具有,则为混合抢占。系统抢占与否, 需要根据当前任务的属性来决定。 中断也被分为三种类型:一类中断,二类中断,三类中断。一类中断不需要调用o s a p l ,是执行最快的中断;二类中断,通常会使用一些开销比较小的系统调用。第三 类中断包含了前面两种情况,只是在内部定义了开关中断区。 上面列举的几点,可以说,都是加强实时性和可配置性的措施。o s e k v d x 的通信模块( c o m ) 为应用提供通用的通信接口。通信分为内部通信( i n t e m a l c o m m u n i c a t i o n ) ,这跟一般的操作系统中的通信相类似,主要用于同一节点上的 进程间通信;外部通信( e x t e m a lc o m m u n i c a t i o n ) ,用于不同节点间任务与任务 的通信。o s e kc o m 的通信接口屏蔽了总线、通信协议和网络的差异,也屏蔽 了内部通信和外部通信之间的差异。不论是通过内部通信还是外部通信,其对应 用程序的通信接口是相同的。 o s e k v d x 通信部分,对照i s o 的七层协议只定义了三层:作用层( 相当 于应用层) ,网络层,数据链路层。和为应用接口提供消息服务。当发生外部通 信时,作用层调用网络层和数据链路层为通信服务;当发生内部通信时,作用层 直接处理来自控制单元内部的通信。 网络层( n e t w o nl a y e r ) 为作用层提供消息响应、消息分割重组服务。网 络层处理不同的消息通信协议,提供流控机制,实现两个处理对等节点之间的信 息流动。它依赖于数据链路层提供数据连接服务。 数据链路层( d a t al i n kl a y e r ) 为网络层、作用层和网络管理模块提供未经 确认的数据报( 帧) 传递服务。o s e kc o m 只定义数据链路层服务需求集合。 网络管理( n m ) 模块为e c u 提供正常运行的环境和防止冲突的机制,保 证系统的安全性和可靠性。联网的e c u 接收网络管理软件的监测;须有一定的 容错性,能应付短暂的系统失效;能为网络管理模块提供诊断支持。 根据系统对相应能力的要求,网络管理模块提供了两种网络监控的机制:通 过监视应用消息实现间接监控;通过专门的n m 通信信令实现直接监控。 网络管理规范描述了节点管理和全局网络管理的方法。网络模块具体实现要 根据下层的通信协议和资源分配策略作相应调整。o s e k n m 规范包括a p i 接口、 节点监控算法、n m 和c o m 的通信接口、睡眠状态转换算法、n m 数据通信协 议。网络管理规范具有开放性,能够适应不同的总线接口。比如c a n ,v a n ,等, 并能够适应不同的硬件需求。 2 2 手机解决方案“b r e w ” 美国高通互联网服务公司的主要产品b r e w 即无线二进制运行环境( b i n a r y r u n t i m ee n v i r o n m e n tf o rw i r e l e s s ) 是专为无线设备设计的应用程序执行环境。这 个产品来源于高通公司作为c d m a 手机制造商在研发过程中的,自然产生的雏 形。为了提高效率,高通公司在内部开发了一个应用程序的执行环境,为每种设 9 备提供了一个通用平台。在此基础上,高通专门成立了个子公司即高通互联网 服务公司( q i s ) ,从事b r e w 的开发。这就是b r e w 的缘起。从中,我们不难 看到,b r e w 的产生基于以下两点需求:第一:屏蔽设备间差异,向开发商( 包 括硬件商和软件商) 提供一个通用的平台。第二:提供一个功能强大的编程环境, 刺激软件开发。 b r e w 包括三个方面的产品:运行环境,开发环境,软件分发系统。所谓 运行环境,是指开发完成以后的b r e w 设备,比如手机,软件硬件的总称,b r e w 免费向制造商提供b r e w 的标准以及运行平台软件。开发环境,主要是b r e w 提供的应用程序的开发软件s d k 。它所面向的是软件的开发人员。软件分发 系统:支持运营商向最终用户提供下载,并提供一种第三方软件商与运营商之间 的服务、付款方式。该系统显然是面向运营商而言。 2 2 1 运行环境: 下图为无线终端上的软件结构图 图2b r e w 的运行环境 首先,b r e w 是一层驻留在无线设备中芯片系统软件和应用程序之间的软 件接口层。终端用户可以通过无线方式下载应用程序并运行在基于b r e w 的设 各上。 1 0 2 2 2 模块与接口 模块 b r e w 模块可以包含一个或多个应用程序或类模块。每个模块必须对应一 个相关的m i f 。m i f 中包含与模块相关的信息,例如支持的类、支持的小程序 * r i d , 程序的细节:标题图标等。m i f 是通过b r e wm i f 编辑器创建的。 另外模块可以从b r e w 资源文件读取数据。应用程序可以存取资源文件中 的字符串、位图、对话框等。b r e w 的资源文件,由b r e w 资源编辑器生成。 b r e w 中包含多个a e e ( a p p l i c a t i o n e x e c u t i o n e n v i r o m e n t ) 接口如l s h e l l i d i s p l a y 和i m e n u c t l ,每个接口都封装了一组资源和允许管理这些资源的方法。 接口是由3 2 位的接口i d 来识别的。在使用接口之前必须通过调用i s h e l l 接 口的c r e a t e i n s t a n c e 0 方法创建一个实例,从而获得对应的全局性唯一标识符,该 标识符相当于个指向接口的指针。下面简要介绍了几种关键性的接口。之所以 谈到它们,是因为它们关于接口的很多重要思想,在本客厅的设计中,也同样的 使用到了。 i b a s e 接口 i b a s e 接口类可定义所有a e e 类对象包含的基本结构,同在公共类定义中 定义的前两个接口一样,每个a e e 接口类或结构都包含1 b a s e 函数或方法。 a e ei b a s e 类提供了两个基本的功能域,由于a e e 对象能够动态分配因此必须 使用一个独立于特定内存管理器的机制,来释放对象。i b a s e 接1 3 的a d d r e f 和 r e l e a s e 方法可以分配或解除分配接口对象。 i s h e l l 接口 模块和小程序可以使用从i s h e l l 根接口中找到的接口,来访问所有的外部 服务。模块接口将传递给加载函数,并为该模块的函数初始化。通过i s h e l l 接 口,小程序和模块可以请求指向所需要的其他接口的指针,每个接口都拥有一个 唯一的i d 来识别。该接口使用唯一的接口标识符,可以调用i s h e l l 接口的 c r e a t e i n s t a n c e 0 方法来获取该接口的指针。 i m o d u l e 和i a p p l e t 接1 3 i m o d u l e 和i a p p l e t 与其他接口的根本不同在于,它们实现的是应用程序提 供的服务,而不是应用程序使用的服务,它们为外壳提供一个加载管理事件,以 及将事件传递给应用程序的机制。b r e ws d k 默认执行i m o d u l e 和i a p p l e t 接 口。 其他接口:包括控件接口,u i 接口,多媒体接口,文件接口,数据库接口, 网络通信接口,电话管理接口等等 2 3 某军用项目中的操作系统扩展库版本0 $ e 由于本课题的设计与实现参照十五国防科技预研项目操作系统扩展库o s e 的软件需求说明和顶层设计文档,并且实现其o s e 以及a p i 标准的嵌入式版, 下面我们对该系统做一个简要的分析。 该工程包含由分布式计算机结构控制的一簇系统。这些计算机通过以太网段 相连。 为了对应用编程者隐藏不同操作系统之间的差异,并且增加一些功能,开发 了操作系统扩展( o s e ) 库。o s e 是一组对系统中所有计算机而言都是通用的函 数,这些函数完成系统功能,如文件存取,参数控制,内存管理,以及辅助调试。 于是o s e 使单个应用编程者不必去处理复杂的系统操作。 o s e 是运行在其驻留的操作系统之上的一个软件层。该软件层向上定义了 统一向上接口,向下支持多钟操作系统( 如u n i x ,p s o s 以及计划任务中的 c r t o s2 o ) 增强和扩展了已有的( 其驻留的) 系统调用。o s e 库运行在一个进 程环境( 上下文) 中,另外还创建附加的进程后台程序用来实现部分功能。 系统中的每一个节点,可以工作在两种模式下。 一种单机工作模式。在单机工作模式下,一台计算机独立工作,不与网络作 任何连接。磁盘操作是通过本地盘进行的。系统中的一台计算机,多台计算机或 所有计算机都可被定义在单机工作模式。 还有一种就是网络模式,在网络模式中,应用系统( 工程) 由许多被以太网 线连接的计算机所组成。系统中有一台计算机,称为m c s ( 任务计算机) ,是主 控制计算机,该机负责维护和管理整个系统,并且提供某些预定义服务。 下图所示为单个节点中,软件系统的结构示意图。 1 2 2 4 小结 固3 某军用操作系统扩展库结构 上面我们分析了两种面向行业的编程中间件。它们分别侧重于不同领域:汽 车工业,手机制造。通过比较可以看到以下的异同。 首先,从操作系统与编程中间的关系的角度来分析。对于o s e 而言,编程 中间件是位于操作系统上,完全独立的一层。其独立性表现在,独立于具体操作 系统,包含对操作系统调用的封装,但不包含操作系统 这样做有利于适应复杂的应用的环境,应用在整个应用系统( 包括网络环境) 中,不同的下层操作系统,不同硬件配置,以及不同的应用且的的工作站之间获 得支持。并且可以很方便的实现计算机与计算机之间的任务级透明通信,系统同 步等重要功能。一个主控计算机,可以实现对整个系统的控制,尽管这个系统的 计算机并没有使用同一种操作系统。同时,基于o s e 开发出来的程序,具有较 高的可移植性。这样较大的提高了代码的利用率。对于编程人员而言,也避免了 考虑不同操作系统之间的差异性,因此也是提高编程效率的重要方式。 而对于o s e k v d x 而言,o s 是其中一个模块之一,虽然o s e k n d x 只是 一套标准,而非真正的软件,但根据该标准开发出来的软件。必须包含o s 这个 模块的实现不论是用什么方式来实现的。同时,协议中的o s 标准不仅仅是 接口标准,对o s 的内部机制也做了严格的定义,所以实现该标准,就等于是要 实现操作系统本身,而不是仅仅实现操作系统接口的重定义。 b r e w 就没有具备操作系统a p i 的功能。b r e w 虽然可以被操作系统所回调 ( c a l l b a c k s ) ,但与操作系统之间的不存在特别典型的封装与包裹的关系。 我们可以这样来看三种编程中阀件在这个问题上的不同处理方式,o s e 用 于工程项目( 在前面我们已经简要说明了系统的概况) ,在整个系统的,有配置 差异非常大的各种站点,比如主任务计算机,以及挂接在网络上的嵌入式设备, 出于不同的目的,在系统中充当不同的角色,从而,构成一个为实现某一系统功 能的整体。系统中必然存在着不同的操作系统,o s e 必须面对不同操作系统的 屏蔽问题。o s e k v d x 面向纯粹的工业控制环境,采用一种操作系统( 或者没 有操作系统) 就基本上可以完成全套系统的设计与实现。而对于b r e w ,应用环 境单一,所有的程序都用菜单的形式连接到主画面上,点击时执行,b r e w 以上 的应用一般不存在多线程的情况,应用与应用之间也没有通信,同步,调度等问 题。 也就是说,嵌入式应用中的编程中间件采用什么样的软件结构,需要根据实 际的情况来决定,另一方面也可以看出,嵌入式应用的一个重要特点:那就是与 硬件环境、应用需求结合的紧密性。 其次,从面向领域的体现来分析。面向领域的特点贯穿在整个设计中。包括 我们前面讨论到的软件体系结构的问题。有一个更加明显的体现就是:应用工具 包。 o s e 中包含了单独的应用工具模块:程序入口出口追踪,队列支持,监控 数据的外部输出,系统级关机,发送和收集系统级的事件,空闲时间测量。这些 都是典型的更加应用领域抽象出来的系统工具。b r e w 中的接口类更是体现了面 向领域的功能特点,比如对图形,声音,菜单等的支持。并且,由于是基于手机 应用,在对上述功能的支持的同时,非常周密的考虑到了下层硬件的特点。这一 切都是面向领域的特点。 o s e k v d x 没有定义特别的软件包,事实上,o s e k v d x 是完全可以用到 一般实时应用中去的。但是,我们也可以看到o s e k v d x 面向领域的特色,比 如说对c a n 的支持和管理,明显的属于工业控制领域。在n e t w o r k m a n a g e m e n t 组件中,这一点还体现得很多。 2 4 1 对本课题的借鉴 对操作系统的屏蔽 本实时操作系统编程中间件将通过屏蔽各种复杂的技术细节,以及各种操作 系统之间的差异,提供面向某工程控制n n - n n g n 。在该实时操作系统编程 中间件基础上,应用软件可以不直接关注操作系统最底层细节,开发人员不再担 心操作系统的多样性、安全问题,不一致性问题,而是致力于应用系统本身的开 发。实时操作系统编程中间件增加了实时操作系统的易用性。 面向行业的特性 首先是对行业本身的分析,对行业应用的抽象与提升。在设计专业中间件的 时候,必须充分考虑行业特性,比如应用目的,软硬件环境,软硬件的系统结构 等等。基于这种考虑获得的设计,将充分发挥其应用优势。 3 1 操作系统的封装 第三章技术要点分析 操作系统扩展层的设计与实现首先得考虑给上层应用提供个什么样的与 具体平台无关的调用接口集,这也是面向领域的操作系统扩展实现的基础。一般 而言,嵌入式操作系统需提供消息队列、调度控制、内存管理、时钟管理、i 0 驱 动等基本接口。具体的实现上,考虑到操作系统一般都有自己的c 库,因此操作系 统扩展层实现主要考虑标准c 库以外的功能接口的实现。应用程序只需调用扩 展层提供的标准功能接口,直接或间接地路由到下层具体操作系统提供的相应接 口调用。 如何实现路由,基于不同类型的程序语言,可以有多种实现办法。下面列举 了三种,分别以条件编译,函数回调,纯虚类为核心,简要说明了其实现方法和 主要的有缺点。其中前面两种方法基于结构化语言( 例如c ) 的实现,后面种 基于面向对象的设计思想来讨论。由于在本课题中,实现的是最后后一种,在后 继章节中,还将详细论述组件及其实现。 3 t 1 条件编译 一般来说,无论汇编还是高级语言的编译都会使用到条件编译。条件编译是 在程序预处理阶段,编译器根据不同的条件,选择指定的代码段,从而产生不同 目标代码。 条件编译是通过编译器的伪指令,指定条件,在程序编译的阶段,完成抽象 层到实际代码的路由。首先定义函数的原型,然后用不同的宏把不同版本的实现 括起来,在编译阶段,指定宏名即可得到特定段代码,而其他版本的函数实现, 穆不会参与编译,与最终二进制文件不发生关系。下面以c 语言为例,说明了 其实现思想: v o i df u n c i ( d a t a i p ep a r a m e t e r a ,d a t a t y p ep a r a m e t e r b 一) # i f d e fc t r o s j i i m p l e m e n tf u n c lw i t hc t r o s _ i ih e r e 6 ) # e l s e i fr l l i n u x i m p l e m e n tf u n c lw i t hr t _ l i n u xh e r e ) # e l s e i fv x w o r k s i m p e m e n tf u n c lw i t h 卯( - w o r k sh e r e ) | o t h e ro p e r a t i n gs y s t e mi m p l e m e n t a t i o n 带e n d i f 3 1 2 函数回调 对于某些高级语言,常常用到一个概念:函数指针。“函数指针”是指向函 数的指针

温馨提示

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

评论

0/150

提交评论