已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
兰州大学硕士学位论文 摘要 随着嵌入式实时操作系统的发展,各种架构的嵌入式操作作系统越来越广泛 的被应用于各种各样的场合,从航天航空、军工企业到人们日常生活所用的智能 家电,嵌入式实时系统无处不在。随着其应用领域的多样化,对嵌入式实时操作 系统的要求也越来越高,并且朝着可定制、小型化和高效化的方面发展。原有的 一体化内核已经不能完全适应嵌入式实时操作系统在以上方面的要求,并且一体 化内核在于安全可靠性方面存在着无法弥补的缺陷。早期的微内核架构的操作系 统由于性能低下,而未能引起人们的重视。提高早期的微内核系统的性能就是要 解决其性能的瓶颈问题i p c 的效率。 本文着重讨论了微内核中i p c 的重要性和特点。并通过对i p c 的研究,实现 一个与i p c 类似的域间通讯( i n t e r - d o m a i nc o m m u n i c a t i o n ) 工具x m f i f o ,深 入研究和探讨嵌入式实时系统中的实时i d c 的特性以及如何完成一个符合实时 系统要求的高效的i d c 。通过对实时f i f o 的设计、实现过程,应用软件工程的 方法,完成一个超微内核架构下的先进先出队列,用于在超微内核架构的操作系 统上完成不同域间的通信,对其性能进行测试,对不同策略对其造成的影响进行 评估。并在其基础上完成一个实时控制的应用实例。 关键词:超微内核;i d c ;实时 兰州大学硕士学位论文 a b s t r a c t w i t ht h ed e v e l o p m e n to fe m b e d d e dd e v i c e sa n dc o m p u t e rs c i e n c e ,r e a l - t i m e s y s t e m sa r eu s e de v e r y w h e r e ,f r o ma e r o s p a c ea n dd e f e n s ec o m p a n i e st o t h ed a i l y l i v e so fp e o p l ew i t hs m a r th o u s e h o l de l e c t r i c i t ya p p l i a n c e s w i t ht h ed i v e r s i f i c a t i o no f i t sa p p l i c a t i o n sa r e a , t h ep e r f o r m a n c eo fe m b e d d e dr e a l - t i m eo p e r a t i n gs y s t e m r e q m r e m e m sh i g h e ra n dh i g h e r , a n du s e r sa l s or e q u i r e st h a ti ts h o u l dc u s t o m i z a b l e , m i n i a t u r i z e da n de f f i c i e n t n o w a d a y st h eo r i g i n a lm o n o l i t h i cc o r eb e c o m e sl a r g e ra n d l a r g e rw h i c hi sn o ts u i t a b l ef o r t h er e q u i r e m e n t s a n dt h em o n o l i t h i cc o r eh a ss o m e d e f i c i e n c i e sw h i c ha r en o te a s yt ob ef i x e du po i ls e c u r i t ya n ds a f e t y t ok e 印t h e k e r n e ls m a l la n de f f i c i e n t ,t h ei d e ao fm i c r o k e r n e li sc o m i n gu p b u te a r l yg e n e r a t i o n o p e r a t i n gs y s t e mu s i n gm i c r o k e m e la r c h i t e c t l l r ef a i l e dt oa r o u s ea t t e n t i o n sa sar e s u l t o fl o wp e r f o r m a n c e a n dt h ek e yp o i n to fe n h a n c et h ee a r l yp e r f o r m a n c eo ft h e m i c r o k e m e lo p e r a t i n gs y s t e mi st oi m p r o v et h ee f f i c i e n c yo fl p c s t h i sp a p e rf o c u s e so nt h er e a l t i m ei d ci nt h en a n o k e m e lo p e r a t i n gs y s t e m s , t h r o u g ht h er e s e a r c ho ni p c s ,w ei n v e s t i g a t et h ep r o p e r t i e so fi d c si nr e a l t i m e o p e r a t i n gs y s t e m s ,a sw e l la sh o w t oc o m p l e t ee f f i c i e n ti d cf o rar e a l t i m es y s t e m s w et r e a tt h i sj u s tl i k eap r o j e c tf o l l o w i n gt h em e t h o do fs o f t w a r ee n g i n e e r i n g , i n c l u d i n gd e s i g n ,c o d e ,t e s t i n ga n dt h ei t e r a t i o no ft h es o f t w a r e l i f ec y c l e w e i m p l e m e n taf i f of o ran a n o k e m e lc o r et ot r a n s f e rd a t ab e t w e e nd i f f e r e n td o m a i n s i n c l u d i n gr e a l - t i m ea n dn o n r e a l - t i m ed o m a i n s s e v e r a lm e c h a n i s m sw i l lb ea d o p t e d i n t oo u ri m p l e m e n t , a n dw ew i l lc o m p a r et h ep e r f o r m a n c eo fd i f f e r e n tv e r s i o no f f i f 0t oe v a l u a t et h ei n f l u e n c eo ft h e s em e c h a n i s m s a tl a s tb u tn o tl e a s tas m a l l r e a l t i m ec o n t r o ls y s t e mb a s e do nf i f ow i l lb es h o w e da sa ne x a m p l e k e yw o r d s :n a n o k e r n e l ;i d c ;r e a l - t i m e i i 兰州大学硕士学位论文 原创性声明 本人郑重声明:本人所呈交的学位论文,是在导师的指导下独立 进行研究所取得的成果。学位论文中凡引用他人已经发表或未发表的 成果、数据、观点等,均已明确著名出处。除文中已经注明引用的内 容外,不包含任何其他个人或集体已经发表或撰写过的科研成果。对 本文的研究成果做出重要贡献的个人和集体,均已在文中以明确方式 标明。 本声明的法律责任由本人承担。 论文作者签名:吐豪乏趣日期:二芝兰! 要b 兰州大学硕士学位论文 关于学位论文使用授权的声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权归 属兰州大学。本人完全了解兰州大学有关保存、使用学位论文的规定, 同意学校保存或向国家有关部门或机构送交论文的纸质版和电子版, 允许论文被查阅和借阅;本人授权兰州大学可以将本学位论文的全部 或部分内容编入有关数据库进行检索,可以采用任何复制手段保存和 汇编本学位论文。本人离校后发表、使用学位论文或与该论文直接相 关的学术论文或成果时,第一署名单位仍然为兰州大学。 保密论文的解密后应遵守此规定。 论文作者签名:? 舔师签名:鲫日期:趁一 兰州大学硕士学位论文 1 1实时系统简介 第1 章绪论 随着硬件的发展,各种各样的嵌入式电子设备越来越多的应用于生活的各个 方面,例如:手机、汽车引擎、家用电器、医疗设备以及航空航天领域。以往的 通用系统如:w i n d o w sn t 和l i n u x ,主要着眼于系统的平均性能,一般使用在个 人计算机、服务器以及大型机上,需要大量的内存和其他硬件资源,这就使得这 样的系统无法满足一些特定的使用环境,于是从上世纪四十年代开始实时操作系 统开始发展起来。从最早期的小的实时监控程序到现在的可以面向不同应用的通 用实时操作系统,在短短的几十年的时间里实时系统的研究取得了长足的发展。 实时系统 1 是指可以对系统中的任务做出及时响应的系统。根据系统是否 能够保证在时间限内完成任务,可以将实时系统分为硬实时和软实时两类。硬实 时系统是指系统对于系统中的每一项任务都可以在其时间限内完成,这类系统主 要应用于航空航天、军事、核工业等关键领域,如果系统不能及时给出输出,会 导致严重后果。软实时系统只要满足大部分任务在时间限内完成即可,这个比例 根据实际应用的不同可能会略有不同,这类系统主要应用于多媒体、通讯以及服 务领域。 1 1 1 实时操作系统的特点 现代的实时操作系统 2 3 广泛的应用于嵌入式系统当中,通常也称为嵌入 式实时系统。它与通用操作系统相同具备以下特点: 多任务。与通用操作系统相同,现代的嵌入式实时系统也是多线程多任 务的系统。在一个系统中可以同时存在实时任务和非实时任务,要使用 不同的方式去调度和管理。 软硬件资源管理。作为操作系统,实时操作系统与通用系统一样都提供 软硬件资源的管理,并且在用户空间为用户提供相应的管理工具或者接 口函数。 提供底层服务。操作系统都为上层应用提供可以与底层硬件交互的接 口,最为典型的是系统调用。 兰州大学硕士学位论文 为上层软件应用提供硬件抽象。现代的操作系统强调操作系统对底层硬 件的封装,不管底层硬件如何,均为上层的应用提供统一的应用接口, 使得上层软件不用针对不同硬件做出不同实现。 除了这些以外,针对其特定系统的硬件条件和软件需求,嵌入式实时系统还 有如下的特点: 简洁。嵌入式实时系统往往只是应用于一个小的单元,实现较为单一的 任务,整个系统资源有限,这就决定了嵌入式实时系统要占用较少的系 统资源。 可固化。嵌入式设备一般很少使用辅助存储设备,这就要求嵌入式实时 系统应该可以被写进嵌入式设备的只读存储设备中,即嵌入式实时系统 应该提供可选的文件系统管理机制。 可移植。嵌入式系统应用根据不同环境,往往使用不同的硬件平台和芯 片,所以嵌入式实时系统一般都支持各种各样的运行平台,并有相应的 编译调试工具。 维护策略。由于部分应用替换成本太高,所以不考虑维护。但是如果考 虑其可维护性就要提供好的诊断借口和自诊断策略。 交互能力。嵌入式实时系统常常作为一个整体系统的一个单元,这就要 求考虑其交互能力,信息的传递要求尽量的简单、健壮。现在的嵌入式 实时系统往往提供统一的遵从p o s i x 标准的交互接口。 可靠性。嵌入式实时系统经常应用于各种各样恶劣的环境当中,并且工 作过程缺乏人为干预,要求嵌入式实时系统有较高的可靠性,并且部分 系统应该具备一定的容错能力。 可定制。嵌入式操作系统的应用实例多种多样,并且运行环境,软硬件 条件千差万别。这就要求嵌入式实时系统要具备良好的可裁减定制的能 力,方便用户根据自己的需求定制合适的系统。 实时调度策略。通用操作系统的调度策略通常考虑的是系统的平均性 能,很可能导致任务的延迟,这在实时操作系统中是不允许的,实时操 作系统通常都提供实时调度策略,以保证实时任务得到及时的响应和处 坪。 兰州大学硕士学位论文 静态结构。在硬实时系统中,通常整个系统都是使用在一个已知的状态 环境当中,即已知系统运行中的所有状态和条件,可以在系统设计阶段 对整个系统进行验证。在系统中尽量少的涉及复杂的动态软件机制,减 少资源的浪费,降低错误处理的失败,避免没有必要的复杂实现。 1 1 2实时调度 为满足实时系统的实时性和可预测性的要求,嵌入式实时系统对c p u 以及其 他系统资源的调度管理有着其特别的策略和机制。实时调度 4 5 包括调度策略 和系统在特定调度策略下是否可调度的验证方法。 在实时系统中,实时任务和系统资源是已知的,调度就是通过特定的策略确 定出每个任务的执行时间和顺序,尽可能的满足每个任务的时间约束,以使系统 可以对外部事件及时的做出反应。根据不同的划分方式又可以将实时调度划分为 抢占式调度和非抢占式调度,或者静态表驱动策略和优先级驱动策略。 抢占式调度和非抢占式调度。 抢占式调度允许系统中正在执行的任务被中断。在抢占式调度中每个任务都 有其优先级,根据调度算法的不同这个优先级可以是静态的也可以动态的。系统 执行的任务一定是当前就绪任务中优先级最高的,当一个高优先级的任务处于就 绪状态的时候,如果当前系统正在执行一个较低优先级的任务,那么低优先级的 任务将被挂起,系统优先处理高优先级的任务。抢占式调度的优点是可以保证高 优先级任务的时间约束,是实时性能好,缺点是有可能引起频繁的任务切换,增 加系统负担。 非抢占式调度不允许任务在执行的时候被中断,一旦系统中有任务在执行, 系统将不能对任务进行调度直到任务完成或者自己挂起。这样的调度避免了上下 文频繁切换,但是相应的影响了实时性能。 静态表驱动策略和优先级驱动策略 静态表驱动策略是一类离线调度策略,即在系统运行之前就根据系统中任务 的约束关系根据某种策略生成一张调度表,在该表中各任务的运行起始时刻和运 行时间都是确定的。系统运行时就根据这一调度表来对启动相应的任务。静态表 驱动策略的优点是相对来说整个系统的运行状态已知,整个系统的可靠性增强, 缺点是对于一系列任务来说不一定存在着一个这样的调度,并且生成静态表的算 兰州大学硕士学位论文 法对于系统来说也极为重要。 优先级驱动策略即根据任务的重要程度,给系统中的每个任务指定相对应的 优先级,系统按照任务的优先级高低来确定任务的执行顺序。优先级驱动策略又 可以分为动态优先级调度和静态优先级调度两种。静态优先级调度在为一个任务 指定好优先级后就不再改变而动态优先级调度中任务的优先级有可能随着系统 状态的改变而改变。优先级驱动策略不用预先知道系统中所有任务的需求,使得 系统的应用更为灵活。但是这种调度策略存在着一个严重的问题:优先级倒置。 在一个低优先级任务占用某个或者多个i 临界资源的时候,有可能会阻塞一个高优 先级的任务。这一问题可以通过优先级置项等多种方法来解决。 1 2 实时系统与虚拟技术 虚拟技术 6 7 从上世纪六十年代的硬件分区技术发展到几天的虚拟操作 系统经历了几个阶段的发展和变迁。虚拟化技术泛指那些在将应用和计算运行于 虚拟基础上的技术,经历了从硬件分区到全虚拟化技术到准虚拟化技术再到现在 的虚拟操作系统。虚拟化技术可以提高硬件资源的利用率,并且简化软件的开发 和配置。 最早的虚拟化技术来源于分区技术 8 ,即将硬件资源划分为几个分区,每 个分区都有独立的c p u 、内存等资源,并安装独立的操作系统。这就使得在一台 机器上同时存在多个操作系统,面向多个不同方面的应用,充分利用系统资源, 并且由于资源是事先分配好的,可以保证提供相对稳定的服务。另一方面,由于 一旦分区划分确定后,再重新分配资源需要对整个系统进行改造,缺乏灵活性, 不能根据应用的运行情况对系统资源作出有效的调配。随着技术的发展,现在的 硬件分区技术对资源划分的细度也逐渐提高。目前这一技术仍然被广泛的应用于 金融等领域中,其代表产品是以i b m 、h p 等厂商底工的大型机,服务器。 全虚拟技术 6 9 不再将硬件系统划分为独立空间,而是在硬件与操作系统 之间增加一个虚拟机( v i r t u a lm a c h i n em o n i t o r ) ,由这个虚拟机为上层的系统 提供一套虚拟的独立设备,如c p u 、内存、网络等硬件资源,其架构如图所示。 这一方式,能够在一个主机上安装多个不同类型的操作系统,动态的分配系统资 源,但是由于其对硬件的虚拟增加了系统负担,降低了整个系统的性能。其代表 兰州大学硕士学位论文 产品有v m w a r e 、。 准虚拟化 1 0 1 1 ( p a r a v i r t u a l i z a t i o n ) 技术的出现改善了全虚拟化技 术的性能。准虚拟化技术的虚拟层可以被称为h y p e r v i s o r ,它为上层的操作系统 提供一个软件接口界面,而并不是模拟硬件,准虚拟化技术通过对主系统内核做 出修改,使得系统可以和系统管理程序协同工作大大的提高了系统的性能。其主 要代表系统是x e n 、以及一系列实时操作系统如l 4 、x t r a t u m 等。 虚拟操作系统 1 2 是将独立的系统管理程序的工作做并入操作系统中,由操 作系统提供虚拟化平台,将系统划分成为多个独立的操作系统,或者称为虚拟环 境。在虚拟操作系统启动之后,可以启动多个这样的独立的操作系统。这样避免 了硬件设备的虚拟,性能大幅提升,但是在一个系统中,多个虚拟环境以模板的 方式分享一个文件系统,这就决定了一个节点只能运行同一结构的多个虚拟环境 降低了灵活性。其代表系统为v i r t u o z z o o p e n v z 。 虚拟化技术使得上层的应用不再与具体的硬件相关,这一特性很好的满足了 嵌入式实时系统对于各种各样硬件的支持的要求,并且随着虚拟化技术的发展, 其性能也得以大大的提高能够满足实时系统的需求,使得近年以来越来越多的实 时系统都采用了虚拟化技术。 1 3实时系统主要架构 现在的实时操作系统架构按照内核的类型可以分为一体化内核、微内核和超 微内核。这也是实时内核的发展历程。 一体化内核 1 3 ( m o n o l i t h i ck e r n e l ) 又称为宏内核,该种架构将操作系 统的内核作为一个整体的监管者,负责与底层硬件交互,并为上层提供一系列虚 拟的交互接口以及一组系统调使得上层应用可以方便的完成自己的功能。一体化 内核也将内核提供的服务分为几个部分如:进程管理、设备驱动、系统调用、内 存管理、文件系统管理等,但是这些服务之间的联系紧密,并且运行于同一地址 空间。由于一体化内核的发展时间较长,其设计开发技术较为完善,使得一体化 内核的效率较高,但是由于一体化内核的高内聚性使得内核中一旦有任何一个部 分出现问题容易导致整个内核的崩溃。典型的一体化内核有d o s ,类u n i x 系统的 l i n u x ,s y l l a b l e ,m a co s 以及微软的w i n d o w s 系列。其中类u n i x 系统的内核对于 兰州大学硕士学位论文 内核中的某些服务功能可以以模块化的形式实现,特别是对于设备以及文件系统 的支持完伞可以做成模块,通过动态的载入卸载的机制使得系统支持相关的设 备。这样使得操作系统可以轻松的完成扩展、升级或者裁剪阻适应不同应用的需 求。使用一体化内核的实时系统有r t l i n u x 。 随着硬件的发展,系统内核越来越复杂,并且变得越来越不易理解。徽内核 1 4 1 5 的l h 现解决了这一问题,其将一体化内核简化,把不必要的部分从内核 中剥离出来,使得内核中只包括个非常简单的硬件抽象层和一组关键的服务, 如线程管理、进程间通信等,将其他部分作为用户空间服务来实现。这种实现方 式同时还增强了整个系统的稳定性和安全性。由于微内核将部分服务从内核中分 离出来,以服务的形式提供给用户,这些服务互相独立存在于自己的地址空问, 旦某部分发生故障那么将不会危机整个系统。但是由有这些服务都是相互独 立的,系统中的各部分的交互消耗了一定的系统资源,对系统的效率构成了定 的影响。卜图可以看到一体化内核和微内核的不同。由德国德累斯顿上业大学开 发的实时操作系统l 4 就是个微内核架构的系统。 m o n o l i t h i ck e r n e i b a s e do p e r a t i n gs y s t e m m i c r o k e r n e i b a s e do p e r a t i n gs y s t e m 圈1 - 1 微内核和体化内核系统架构比较【1 6 】 微内核架构的系统将内核进行裁剪以控制内核的大小和复杂度。接着又出现 了更小的内核,被称为超微内核( n a n o k e r n e l ) 。超微内核 1 7 可以看作是微内 核的一个进阶版本,超微内核进一步的将内核中的服务分离出去。我们可以将超 微内核等价于一个硬件虚拟层,用于硬件虚拟或者用于为通用操作系统提供实时 兰州大学硕士学位论文 特性,例如a d e o s 1 8 。 1 4 微内核与i p c 典型的微内核架构如图所示: 图l - 2 微内核系统架构 其中可以看到硬件抽象层仅用于完成一些重要的功能,如内存管理、调度等, 上层应用根据其功能划分成为许多模块,这些模块实际上相互独立,某一模块的 崩溃不会引起整个系统的崩溃。这种结构提高了系统的灵活性和稳定性。这一结 构早在上世纪九十年代就被提出了,可是在早期这种结构的操作系统因为其性能 的原因而被认为是缺乏实用价值的。而制约其性能的一个重要因素就是i p c 的效 率问题。i p c 是i n t e r p r o c e s sc o m m u n i c a t i o n 的缩写,即进程间通信。微内核架 构为了加强系统的稳定性、缩小内核的大小,将更多的服务和功能通过微内核外 的模块进行实现,但是这些服务和功能需要用到内核提供或者其他模块提供的信 息,这就使得在整个系统中有大量信息要通过i p c 来传递,降低了系统的性能, 在微内核发展的初期甚至成为了微内核系统发展的一大障碍。所以i p c 的发展对 于微内核技术的发展起到了至关重要的作用。 i p c i l 9 是一种允许独立的两个或者多个进程进行通讯的机制。早期的i p c 只是用来在进程间传递信息,但是随着微内核概念的提出,现代的i p c 通常都带 8 兰州大学硕士学位论文 有显著的微内核特征,即现在的i p c 不仅允许进程间的通讯,而且还允许在同一 系统内不同应用间的通讯。现在的操作系统中的外围设备多使用这种方式进行管 理。 i p c 又分为同步通讯和异步通讯两种。异步i p c 类在发送方发出消息后继续执 行,接受方通过某种通知策略获取消息,异步i p c 要求系统为i p c 建立缓冲区或者 队列以存放信息,在系统中会同时存在两条相同的消息:发送方的消息和接收方 的消息。同步i p c 则要求发送和接收消息的进程同时处理消息,即如果其中一方 没有准备好,另一方就会被阻塞直到进行通讯。这类i p c 不需要缓冲区或者队列, 并且可以对通讯中的情况进行及时的处理,但是很有可能对系统的效率造成影 响。所以更多时候编程者更喜欢将异步的发送方和同步的接收方组合在一起使 用。 第一代的微内核系统同时支持这两类i p c ,但是前面提到过这些i p c 的效率非 常的糟糕,以至成为微内核发展的障碍。直至l j j o c h e nl i e d t k e 在他的l 4 微内核中 设计并实现了一系列较为高效的i p c ,这一问题才得以缓解。l 4 1 2 0 中使用了一 系列技术使得i p c 的性能成指数级上升 2 1 。在l 4 中,同时实现了接收和发送的 i p c 系统调用,使得其上的i p c 全部变成同步i p c ,并且尽量使用寄存器传递数据, 免去了数据复制所消耗的系统资源和时间。并且l i e d t k e 使用了一种直接交换的 技术来提高i p c 效率,即在发送信息的同时完成由发送方到接收方的上下文切换。 并且这些技术可以免去调用调度器,使得远程调用类型的i p c 的效率得到很大的 提高。l 4 中的i p c 还有一个优点是l 4 系统中遵循一种惰性调度的原则,并不标记 在i p c 通讯期间被阻塞的进程为阻塞状态,而是将其放在就绪队列中,避免了很 多调度队列的切换。这一改进对i p c 的发展起到了重大的影响。 随着l 4 的发展,以及被工业界的肯定,其后发展出的微内核系统基本上在内 核态只提供同步的i p c 实现,而异步的i p c 通常经由上层的应用通过其底层的同步 i p c 机制加以实现。 由于同步i p c 自身存在着阻塞状态,这就使得系统中很可能产生死锁进程。 并且用户可以通过发送一个发送请求而不对接收方作出响应的方式攻击内核,消 耗系统资源,甚至导致系统崩溃。所以同步i p c 必须提供响应的防止阻塞的保护 措施,最简单的就是设置响应超时。但是如何确定一个合适的超时时限在实际应 兰州大学硕士学位论文 用中非常困难。通常系统为服务方设置的超时时限为0 ,而对客户端的超时时限 则由具体的应用决定,可以是无穷或者是任意值。如果服务就绪后,客户端没有 响应则立即放弃。这就使得客户端无法通过i p c 攻击服务器。 下面将介绍几种常用的i p c i 2 2 以及其优缺点。 信号量。 信号量通常用于解决同步、互斥问题,信号量是一个整数,其大于或者等于 零的时候代表可供并发进程使用资源的实体数,小于零时表示正在等待的进程 数。只能通过p 操作和v 操作进行修改。p 操作和v 操作是一组原子操作,p 操作用 于使得一个信号量的值减一,而v 操作用于使得一个信号量的值加一。通过信号 量机制可以完成进程间的同步通讯机制,但是存在死锁和竞争问题,特别是在整 个系统复杂的环境中,存在大量可能带来死锁的进程和资源,不存在一个简单的 方法避免死锁,因此大多数情况下需要使用的应用特别的注意 信号。 信号广泛的应用于类u n i x 系统中,用于通知一个进程发生了一个重要事件, 如外部设备产生的中断、内存访问出错、关机等。通常根据系统具体的实现有所 不同,通常使用一个或者几个字节来代表所有信号,每个信号占用一位,当表示 这一信号的位被置为一时,进程将会停止当前操作执行相应的处理程序。所以一 个系统中能过设置的信号的数量是有限的,并且信号的系统开销较大,过程中会 使用到系统调用,造成上下文环境切换。 管道。 管道是一种最为常用的i p c 。又分为匿名管道和命名管道。匿名管道由进程 创建,用于其父子进程以及同族的进程共享数据,在进程注销的时候,匿名管道 所使用的资源也一同被回收。命名管道也就是我们所说的f i f o 。类似于一个类 u n i x 系统中的普通文件,其操作方式与匿名管道类似但是,在使用之前必须已经 存在于系统中。管道由于其先进先出特性,使得其访问顺序受到限制,而且每次 读取都将数据从管道中移除,使得管道不支持广播模式。管道只限制了访问顺序, 但是没有限制数据块的格式和大小,使得在使用的时候只能通过应用程序来确 定。 消息队列。 兰州大学硕士学位论文 消息队列一般用于进程间传递不同格式和长度的数据。是一种异步i p c ,实 现简单,根据不同类型的消息会进行分类,对相同类型的消息采取先到先处理的 方式排序。由于存在着数据复制过程,传输少量信息时可以保证较高的效率,但 是对于大量的数据特别是频繁操作的时候其缺点就暴露出来了。并且同管道一样 消息队列也不能实现广播。 共享内存。 共享内存用于高效的分享大块的数据的方式,通过共享不同进程的部分数据 或者地址空间的方式实现。这个共享通过将两个或者多个进程的虚拟地址映射到 同一物理地址的方式完成。每一个进程都可以通过它自己的虚拟地址对这段内存 进行访问,可以随意修改该段内存中任意位置的数据。可以看出共享内存的方式 效率高并且可以实现广播机制,但是在这种方式无法提供进程间同步机制,只能 靠应用程序自己完成。 1 5 论文工作及结构 本文在对实时嵌入式系统的发展和特点,特别是对超微内核实时嵌入式系统 研究的基础上,选取由西班牙瓦伦西亚理工大学主导开发的超微内核 x t r a t u m p a r t i k l e ,以设计并实现实时系统中的域间通信模块f i f o 为实例, 对实时i p c 的开发和性能做出研究。 第二章主要介绍x t r a t u m p a r t i k l e 系统的架构,以及优缺点。x d - f i f o 的设 计中主要考虑的问题以及涉及概念。 第三章主要介绍开发过程中每个版本的优缺点,以及其改进方式。 第四章讨论了x m - f i f o 的性能测试方案以及结果,并对其对系统的实时性能 影响做出结论。 第五章使用x m - f i f o 在x t r a t u m p a r t i k l e 架构下完成一个小的示例应用。 第六章结论与展望主要对整个工作做出总结并且对后续工作做出陈述。 兰州大学硕士学位论文 第2 章x m f i f o 设计 i p c 在微内核和超微内核架构的系统中对系统性能有这至关重要的影响。 ) ( m f i f o 是针对x t r a t u m p a r t i k l e 系统实现的实时先进先出队列,主要用于实时 域和非实时域之间交换数据。由于其针对嵌入式实时系统,以及f i f o 本身的适用 于传输固定的短小的数据结构这一特点,x m - f i f o 被定义为一组1 6 个大小为4 k 的 可被x t r a t u m 之上的实时和非实时域同时访问的先进先出队列。x m - f i f o 的接口应 该兼容p o s i x 标准,可以使用o p e n 、c l o s e 、r e a d 、w r i t e 操作进行访问。 2 1 1系统架构 x t r a t u m 2 4 2 5 是一个超微内核架构的系统,我们可以认为x t r a t u m 是一个 面向嵌入式实时应用的h y p e r v i s o r 系统。它的设计初衷是优化r t l i n u x 的虚拟化 机制,但是考虑至u x t r a t u m 是面向嵌入式实时应用环境,这就决定了x t r a t u m 的设 计要在将内核尽量减小的同时保证系统的实时性能。所以x t r a t u m 没有将虚拟所 有的底层硬件,而是主要着眼于那些实时系统必须使用的共享设备: 中断:x t r a t u m 同其他实时系统一样,也直接对硬件中断进行管理,并且 x t r a t u m 可以判断中断的来源,并且根据产生中断域的实时特性为其提 供相应的中断处理入口程序。运行在x t r a t u m 之上的操作系统只与虚拟 的中断接口进行交互。 定时器:现在的x t r a t u m 针对x 8 6 架构的处理器,提供了两种定时器:可 编程间隔定时器( p r o g r a m m a b l ei n t e r v a lt i m e r ) 和高级可编程中断 控制器( a d v a n c e dp r o g r a m m a b l ei n t e r r u p tc o n t r o l l e r ) 两种定时器, 并且为每种定时器提供了一组应用程序接口,方便上层应用对定时器进 行配置和使用。 虚拟内存:与其他的实时嵌入式系统如r t a i 、r t l i n u x 相比较,x t r a t u m 的一大特点是为其上运行的域提供独立的地址空间,b o x t r a t u m 会为其 上的操作系统创建独立的内存映射表。这就使得x t r a t u m 可以保障运行 于其上的实时域不受其他域的影响,加强了系统的健壮性。但是这样的 独立机制也使得x t r a t u m 之上的各操作系统之间难以协同工作,这就需 兰州大学硕士学位论文 要在x t r a t u m 上实现一系列高效的i d c ( i n t e r d o m a i nc o n l m u n l c a t i o n 域 间通信模块) 。这些i d c 与i p c 相似,只是主要作为域问而非进程问通讯 手段,二者的功能及特点都是极为相似的。 x t r a t u m 作为一个实时嵌入式操作系统实现了其自身的实时调度簧略 2 5 。 x t r a t u mv 1 0 使用一种基于固定优先级的调度策略。x t r a t u w q h 各个域的优先级 都在进行初始化的时候分配,整个系统将根据各个域所申请的优先级对其进行调 度,这种调度策略保证了高优先级任务的执行效率并且易于实现。但是这种策略 不够灵活,并且在系统负载比较大的时候会造成低优先级任务的失败。 p a r t i k l e 2 6 2 7 2 8 是由西班牙瓦伦西亚理工大学开发的一个嵌入式实 时操作系统。随着r t l i n u x 的日益庞大,使得r t l i n u x 越来越难以维护目前的 r t l i n u x g p l 的开发工作已经几乎停止了。p a r t i k l e 系统沿用t r t l i n u x g p l 的部 分设计理念,但是降低了r t l i n u x g p l 的复杂性,提高了整个系统的可定制性、 可维护性和简洁性,可阻看作是新代酐 r t l i n u x 0 p l 。p a r t i k i e 被设计为一种 可咀运行于多种环境中并且可以支持多种语言的操作系统。 u s erf a p p l i c a t i o n 罂型翌墨当 罔2 - 1 图3p a r t i k i e 系统架构口7 】 p a r t i k l e 雕j 架构图如上,我们可以看到该系统与l i n u x 一样有其自己的内核 空闻和用户空间。如上图所示,p a r t i k l e 主要实现了以下几个子系统: 兰州大学硕士学位论文 调度器:目前的p a r t i k l e 只实现了单调速率调度,这一缺陷将在以后的 开发中进行完善。 物理内存管理模块:用于管理系统中空闲的可用物理内存。 时间管理模块:用于管理硬件的定时器和时钟,为内核进程或者用户程 序提供多种虚拟定时器,以及相应的操作接口。 系统调用:实现了与l i n u x 相似的系统调用机制,通过一个入口地址提供 内核服务,用户态程序与内核态进程通信必须通过系统调用。 内核c 语言库:用于支持内核程序运行的最小化的c 语言库,用户态进程 无法访问。 由于p a r t i k l e 在内核空间实现的c 语言库无法被用户程序访问,因此 p a r t i k l e 在用户空间实现了多种语言库包括:c 、c + + 、a d a 和j a v a 。极大的方便 了开发者在p a r t i k i e 下进行应用开发,开发者可以用自己熟悉的语言进行开发, 只是在编译的时,使用p a r t i k l e 自带的库进行编译。 与r t l i n u x 不同的是p a r t i k i e 被设计为一个独立的实时操作系统,并且可以 在三种不同的环境中运行: 作为一个实时域运行于x t r a t u m 之上。此时x t r a t u m 相当于一个为 p a r t i k i e 提供硬件虚拟的系统管理程序,可以支持多个操作系统同时运 行。此时的系统结构如图所示。x t r a t u m 的硬件抽象层包括了直接与硬 件打交道的中断和定时器驱动模块和与其根域交互的内存管理和输出 模块。通过x t r a t u m 对硬件计时器的管理为其上层运行的域提供了多种 多样的虚拟计时器,满足各种应用不同的需求。在x t r a t u mv 1 0 中,实 现了使用固定优先级策略的调度器。也就是说,在这个系统中每个运行 于x t r a t u m 之上的域在其初始化的时候都被指定了一个不可以改变的优 先级,在其加载之后,x t r a t u m 将根据其优先级的高低对其进行调度。 x t r a t u m 和其上运行的p a r t i k l e 可以通过使用h y p e r c a l l 和触发虚拟事 件的方式进行交互。 兰州大学硕士学位论文 仨x md o m a i n ) () 广酊。害 童 a p l 。一 s y s t e mc a l l s v i r t u a le v e n t s 。- 一 - 一! s c h e d u l e r | | v i r t u a lt i m e r :s c r e e n ;p h y m e m o r y 图2 - 2 x t r a t u m 系统架构图【2 7 】 作为l i n u x 的一个进程,这种情况下p a r t i k l e 将被作为l i n u x 的一个普通 的进程执行。p a r t i k l e 可以直接访问硬件设备,但是其实时性能被完全 得不到保障,只是用于对其进行调试。 作为一个独立的操作系统直接运行于裸机之上,此时的p a r t i k l e 可以直 接访问和管理硬件资源,所以其实时性能也是最为理想的,但是由于 p a r t i k i e 本身系统比较简单,不能完成那些非常复杂的应用,是一种典 型的嵌入式实时系统的应用。 当p a r t i k i e 做为x t r a t u m 的一个域运行与x t r a t u m 之上时,p a r t i k i e 完成实时 任务,同时l i n u x 也作为x t r a t u m 的一个域完成非实时地任务。实际应用往往是由 多个不同优先级的模块组成,又非实时模块也有不同优先级的实时任务,这些模 块互相独立,可以由多个独立的域完成,特别是非实时的模块,完全可以在l i n u x 上实现,这样可以充分利用l i n u x 原有资源。但是一个系统中的各模块之间常常 需要交换数据,原有的x t r a t u m p a r t i k l e 系统中,各个域都使用自己独立的地址 空间,只与底层的x t r a t u m 系统管理程序打交道,而域间相对独立,系统中缺乏 域间通讯的机制,这就需要我们实现一种适用于实时任务地i d c 。通常在实时系 统中常用的i d c 有f i f o 和s h a r e dm e m o r y 。我们选取f i f o 来进行实时i d c 的研究。 由于x t r a t u m p a r t i k l e 架构的特点,x m - f i f o 也相应的分为三个实现部分: ) ( m f i f o 的底层驱动、p a r t i k i e 和l i n u x 部分的面向上层应用的设备驱动。其系统 架构如图所示。 兰州大学硕士学位论文 图2 - 3 x m f i f o 系统架构图 x m f i f o 这三个部分的主要功能主要描述如下: 共享f i f o :主要实现内存管理,f i f o 的创建及注销。 l i n u x 上和p a r t i k l e 上的x m - f i f o 的设备驱动:分别为l i n u x 和p a r t i k l e 的用 户空间程序提供对f i f o 的读写、申请等操作的接口,完成f i f o 的调度策略部分。 2 2 基本概念 x m - f i f o 作为一个设备驱动,其主要功能是向用户提供一组可以在用户空间 使用的接口,使用户可以使用先进先出的方式对内存中一部分空间进行数据读 写,它要在内核空间完成对内存的管理。为了实现x m f i f o 的功能,并尽量的提 高其实时性能和效率,我们将使用到以下策略和机制。 2 2 1 系统调用 系统调用 2 9 是l i n u x 系统的一个重要特点,它是操作系统提供给用户的一 组接口,用来让用户可以获得内核提供的服务。它将用户的需求传递给内核,并 且在内核处理完后摆结果反馈给用户空间的程序。l i n u x 可以分为用户空间和内 兰州人学硕士学位论文 核空间,这两部分各自运行在自己的地址空间中,通常在用户空间的进程无法访 问内核空间,用户空间的进程只能通过系统调用这一特殊接口跳转到系统的特定 部分,并且按照系统预先定义好的方式执行。这样保证了系统内核的稳定。 x t r a t u m 和p a r t i k i e 也同样引入了系统调用的机制。 x t r a t u m 的主模块可以通过i n s m o d 命令插入内核,因此x t r a t u m 与l i n u x 内核 运行于同一地址空间。为了确保x t r a t u m 和l i n u x 内核运行的稳定性,x t r a t u m 内 核和其上的域运行与不同的地址空间,直接部内直接访问。因此x t r a t u m 内核和 运行于其上的域之间存在着这样的一个h y p e r c a ll 的接口。运行与x t r a t u m 之上的 操作系统仅可以通过x t r a t u m 提供的h y
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 塑木折叠晾衣架创新创业项目商业计划书
- (2025)国家开放大学电大专科《市场营销学》期末试题及答案
- 2025年跨学科肿瘤科(乳腺癌)靶向治疗(肿瘤内+病理+影像)路径优化考核试卷
- 人教版(2024)八年级上册英语Unit 3 Same or Different 单元复习练习题(含答案)
- 2024年六安霍山县消防救援局招聘政府专职消防员真题
- 2025年秀山土家族苗族自治县辅警招聘考试真题含答案详解(预热题)
- 2025年濮阳辅警协警招聘考试真题附答案详解(模拟题)
- 2025年铁岭辅警招聘考试题库附答案详解(完整版)
- 2025年遵义辅警协警招聘考试真题及1套参考答案详解
- 2025年漳州辅警协警招聘考试真题及一套答案详解
- 2024年国家开放大学电大开放英语考试题题库
- 《涡流检测》课件
- 数电票商品税收分类编码表
- MOOC 光学发展与人类文明-华南师范大学 中国大学慕课答案
- 设备安装监理细则
- 大创申报答辩ppt
- 《活出最乐观的自己》读书笔记思维导图PPT模板下载
- 高中地理 人教版 选修二《资源、环境与区域发展》第五课时:玉门之变-玉门市的转型发展
- 催化加氢技术(药物合成技术课件)
- 近三年(2023-2023年)广西物理学业水平考试试题
- 建筑结构检测与加固课程复习考试试题及答案B
评论
0/150
提交评论