




已阅读5页,还剩89页未读, 继续免费阅读
(计算机软件与理论专业论文)一种实时嵌入式操作系统内核deltacore的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
丝坐! ! 一! ! 竺 学科专业:汁;:机软件与理论 论文题目: 摘要 y3 6 3 8 3 1 一种实时、嵌入式操作系统内核d e l t a c o r e 的设计与实现 硕士生:程红蓉导师:熊光泽教授 ”f 随着网络、通信的普及,并向家庭领域不断扩展,嵌入式系统再度成为研 究与应用的热点。目前,国内广为使用的商用实时、嵌入式操作系统几乎都来 自国外。由于系统在安全保密方面没有保障,加上价格高、技术服务差,我们 教研室决一f i , 以十年从事实时、嵌入式系统软件设计所积累的经验,致力于具有 自主产权的商用实时、嵌入式操作系统的研发。 一个实时、嵌入式操作系统一般由几部分组成。有些部分,例如网络、文 件系统可以根据需求剪裁掉,但是其内核必不可少。内核的质量和性能对于整 个实时、嵌入式操作系统来说至关重要,其体系结构的设计决定了实时操作系 统其它部分与内核的衔接关系。y 本课题就是在对几个主流商业实时操作系统内 核机制细致分析的基础上,扬长避短、加入自己的技术特色,设计并实现种 在功能、性能上与之都具可比性的实时、嵌入式内核d e l t a c o r e 。 关键词:嵌入式系统实时嵌入式操作系统实时、嵌入式操作系统内矽 d e l t a c o r e 丝! 箜! 一丝塾 ab s t r a c t s p e c i a l i 【y :c o m p u t c rs o f b a r e t h e o r y t h e d e s i g n & i m p l e m e n t a t i o n o fa nr e a l - t i m e e m b e d d e d o p e r a t i n gs y s t e m k e r n e ld e l t a c o r e 、m a s t e r :c h e n gh o n g r o n g a d v i s o r :p r o f x i o n gg u a n g z e w i t ht h ep o p u l a r i z a t i o no fi n t e r n e ta n dc o m m u n i c a t i o n ,i ti sp e n e u a t i n gt h ef i e l d o f f a m i l ye m b e d d e ds y s t e m b e c o m e st h ef o c u so fr e s e a r c ha n d a p p l i c a t i o n a g a i n n o w a d a y s t h e s ec o m m e r c i a lr e a l - t i m ee m b e d d e do p e r a t i n gs y s t e m s ( r t e o s ) w eu s e da h n o s t l yp r o d u c e db yo v e r s e a sc o r p o r a t i o n s b e c a u s eo ft h eh i g hp r i c e ,p o o r t e c h n o l o g y s e r v i c ea n dt h en e e do fs y s t e m s e c u r i t y ,w e d e d i c a t eo u r t e n y e a r e x p e r i e n c ei nr t e o s t od e v e l o p i n gt h eh i g i l - p e r f o r m a n c er t e o sw i t ht h ep r o p e r i t y r i g h t r t e o si s g e n e r a l l yc o m p o s e do fs o m ec o m p o n e n t s ,s u c ha sk e r n e l ,f i l es y s t e m a n d n e t w o r k i n ge t ce x c e p tf o rk e r n e l ,t h eo t h e rc o m p o n e t s c a l lb es c a l e dt os a t i s f y d i f f e r e n ta p p l i c a t i o n st or t e o s ,t h eq u a l i t ya n dp e r f o r m a n c eo fk e r n e li s v e r y i m p o r t a n t t h ea r c h i t e c t u r eo f k e r n e ld e c i d e st h er e l a t i o n s h i pb e t w e e nk e r n e la n do t h e r c o m p o n e t so u r t a s ki st o d e s i g n a n d i m p l e m e n t a c o m p a r a b l er t e o sk e m e l d e l t a c o r ea f t e rw e c a r e f u l l ya n a l y z es o m ep o p u l a rc o m m e r c i a lr t o s i nt h ed e s i g n a n di m p l e m e n t a t i o no fd e l t a c o r e ,w ec a r r yt h ee x c e l l e n c ef o r w a r da n dl i m i t et h e s h o r t a g ea n da d ds o m ef e a t u r e k e yw o r d s :e m b e d d e ds y s t e mip e a l t i m ee m b e d d e d o p e r a t i n gs y s t e m | i t e a l f i m ee m b e d d e d o p e r a t i n gs y s t e mk e r n e l d e l t a c o r e 【i - 1 1 课题背景 第一章绪论 计算机技术随糟时代的发展在各行各业中得到了广泛的应用。操作系统作 为各种应用软件的底层平台,有着十分重要的作用和地位。自六十年代中期操 作系统( o p e r a t i n gs y s t e m ) 形成发展到现在广泛使用的有三种操作系统,即多 道批处理操作系统、分时操作系统以及实时操作系统。 随着实h - t 算( r e a l t i m ec o m p u t i n g ) 渗透到越来越多的领域,包括过程控 制、核电站、智能车辆公路系统、航空、飞行控制、通信、多媒体、办公自动 化、自动化控制、计算机外设、消费电子、实时模拟、虚拟现实、医疗应用、 军事等等,实时操作系统得到了广泛地应用和发展。 伴随着网络、通讯技术的发展,国内外的i t 界提出了信息智能家电的概念。 从对机顶盒、能上网的微波炉、多功能d v d ,到微软的维纳斯计划、女娲计划 等的报道,我们可以看到实时,嵌入式这一领域的发展前途十分巨大。 目前流行的商业实时操作系统有w i n dr i v e rs y s t e m 公司( w r s ) 的 v x w o r k s 、p s o s y s t e m ,m e n t o rg r a p h i c s 公司的v r t x ,m i c r o s o f t 公司支持w i n 3 2 a p i 编程接口的w i n d o w sc e 。这些操作系统都是比较成熟的产品,稳定性都有 保证,但是它们都是国外的产品,我们国家不了解产品的技术细节。当使用这 些操作系统,特别是系统连接了i n t e m e t 时,我们不能保证操作系统是否会泄露 一些重要信息,也不能保证系统是否存在安全漏洞。这些国外的商业实时操作 系统对我们来说就像一个庞大的黑箱子。 我们教研室作为实时嵌入式系统软件设计中心,有十年从事实时、嵌入式 系统软件研发的经验。而对国外市场中的技术垄断,和国内高、精、尖领域对 实时操作系统安全性的需求,我们教研室迈出了“产、学、研”三结合的步伐, 致力于= 有自主产权的实时、嵌入式操作系统的研发。 一个实时操作系统可能出几部分组成,有些部分例如网络、文件系统可 以根据应用的需求蜉裁掉,但是其核心,又称内核却是必不可少的。内核的质 研,越| j 2 绪论 量和性能对于整个实i f , j 操作系统来说至关重要,其体系结构的设计决定了实时 操作系统它部分与内核的衔接关系。本课题的目的就是在对几个主流商业实 时操作系统内核工作机制仔细分析的基础上,扬长避短、加入自己的技术特色, 设计并实现一种在功能、性能上与这几个主流商业实时操作系统内核都具可比 性的实寸内核d e l t a c o r e 。d e l t a c o r e 是实时操作系统d e l t a 的核心。目前,除 了d e l t a c o r e 以外,d e l t a 还包括文件系统、网络、窗口图形系统和浏览器。 1 2 进入课题的准备 进入本课题前,我对实时、嵌入式的基本概念和内核的工作机制已有清楚 和深刻的理解。已圆满完成“八五”军事预研成果c r t o s px 8 6 s r ) m 的技 术支持工作和“九五”军事预研项目超微内核实时、嵌入式操作系统c r t o s m i c r ox 8 6 s p m 内核的研发工作。在这些工作经验的基础上,展开了本课题的研 究,并取得预期结果。 1 3 本文章节安排 第一章简要介绍本课题的一些背景情况。第二章对实时系统、实时操作系 统、实时嵌入式操作系统的基本概念进行简单地阐述。第三章深入分析了几种 主流商业实时操作系统内核的工作机理。内核技术发展到今天,已经形成一套 成熟的理论体系。所以,第三章阐述的大多数概念和算法思想是第四章讨论 d e l t a c o r e 的理论依据。第四章在第三章分析工作的基础上,提出一种实时、 嵌入式操作系统内核d e i t a c o r e 的设计方案并详细阐述了其实现的技术细节。 第五章对d e i t a c o r e 进行时间性能的测试。在相同测试标准下对v x w o r k sv 5 4 的内核w i n d 的部分系统调用也进行了测试,并针对测试结果做了分析。第六 章对全文进行总结。 丝丝!塑墅咝堂 第二章实时系统概论 2 1 实时应用概述 实时计算( r e a l t i m ec o m p u t i n g ) 是许多重要应用领域中的关键技术。这些 领域包括:过程控制、核电站、智能车辆公路系统、航空、飞行控制、通信、 多媒体、办公自动化、自动化控制、计算机外设、消费电子、实时模拟、虚拟 现实、医疗应用和军事等。几乎所有的安全关键( s a f e t yc r i t i c a l ) 系统和许多嵌 入式计算机系统都是实时系统。实时计算正变得越来越重要和普遍。 实时系统对响应时间的要求依赖于特定的实时应用。图2 - 1 显示了一些典 型实时应用对响应时间的不同需求。 2 2 实时系统的定义 图2 1实时应用对响应时间的需求 实时系统是对外来事件在限定时间内能做出反应的系统。限定时间的范围 很广可以从微秒级( 如信号处理) 到分级( 如联机查询系统) 。 实时系统的正确性不仅依赖于系统计算的逻辑结果。还依赖于产生这个结 。 _ 呈 胁 m 型丝苎 一型型苎笙 果的时m 。实时系统这领域的基本特征是实时操作模式。实时操作模式是指: 在计算机系统内部,j f j 于处f l ! 从外部到达的数据的程序总处于就绪状态,而这 些程序的运行结果只在确定的时问范围内有效。 按实时性的强弱( 即根据系统响应时间的长短) 可将实时系统大致分为以下几 种: 1 强实u j 系统,其系统1 1 向应时间在毫秒或微秒级。 2 一般实时系统,其系统响应时间在几秒数量级,对实时性的要求比强实 时系统要差一些。 3 弱实时系统,其系统响应时间约为数十秒或更长。这种系统的响应时间 可能随系统负载的轻重而变化,即负载轻时系统响应时间可能较短,实 时性好一些,反之系统响应时间可能加长。 实时系统通常作为一种智能部件被嵌入到个较大的环境中。这种情况下 的实时系统称为嵌入式、实时系统。 - ;f r i t 错误的观点认为:如果某种应用没有用户界面,从而用户不能直接地 和它交互,那么它就是嵌入式系统。举个反例,电梯控制系统是嵌入式系统, 但它却有一个用户界面:选择楼层的按钮和显示电梯正到达几层的指示器。 2 3 实时系统的要求 实时操作引入明确的时间特性,因此有别于其他数据处理形式。这从用户 的两个基本要求中可以看出来:及时性( t i m e l i n e s s ) 和并发特性 ( s i m u l t a n e o u s n e s s ) 。即使在极限负载条件下,实时系统也必须实现这两个要求。 另外还有两个同等重要的特性:可预测性( p r e d i c t a b i l i t y ) 和可靠性 ( d e p e n d a b i l i t y ) ,来补充说明这两个要求。 遵照从外部过程来的请求,数据采集、处理和恰当的反应必须按时完成, 这是实时系统的第一个要求,而这不仅仅是处理速度能决定的。在预先确定和 可预测的时n l j 界限内反应的及时性也必须加以考虑。因此,实时系统的特征是 其功能n 矿确性不仅依赖于处理结果,还依赖于这些实例什么时候有效,而不 是象批处删羽j 分时系统巾的那样,被动服从计算机的处理速度。 硬 论证 实时暴缝概论 根据外部过程,环境i r 以分为两类:硬时间约束的环境和软时蒯约束的环 境。它们i 【i 墟反时j 要求而造成的后果来区分。对于软实时环境,当产生的结 果延迟,延久时,付出的代价也在逐渐增长,而这样的延迟在硬实时环境中的任 何情况f 那1 i 允许:。因为迟到的反应要么已经无,用要么是危险的。换句话说, 硬实时坷、境中的死限( d e a d l i n e ) 丢失的代价是无限高的。 第二个要求( 同时处理外部过程请求) 意味着实时系统本质上必须是分布 的,并且必须提供并行处理能力。 可预测性和确定性( d e t e r m i n i s m ) 的含义可以通过下面一个例子来理解: 我们不知道火灾什么时候发生,但是我们期望消防队在接到报警后能在较短的 时间内到达火灾现场。系统行为的可预测性对实时操作模式来说非常重要。可 预测性是系统时间要求的补充,因为只有当系统行为在时间和对外部事件的反 应上都是精确可预测时,时问要求才能得到保证。 2 4 实时操作系统 实时操作系统是事件驱动的( e v e n l d r i v c n ) ,能对来自外界的作用和信号在 限定的时间范围内作出响应。它强调的是实时性、可靠性,为应用软件提供良 好的软件运行环境。 i e e e 的实时u n i x 分委会认为实时操作系统应具备以下几点: 1 刑异步事件的响应 为了能在限定时间内响应异步事件,实时操作系统需要具有中断处理能力。 2 任务切换时间和中断延迟时间确定 3 优先级任务 必须允许用户定义任务的优先级。 4 抢占式调度 为确保响应时问,必须允许高优先级任务一旦准备好就可马上抢占低优先 级仃务的运行。 5 内存锁定 必须具有将程序或部分程序锁定在内存的能力,锁定在内存的程序减少了 为获取该程序而访问盘的时问,从而确保了及时、确定的响应时间。 鼬t j 沁立 实对最统概论 6 连续文件 应捉 i 存取舭上数据的优化方法,使得存取数据时查找时间最少。通常要 求把数据存储在连续文件上。 7 同步与互斥 提供州步与m 调共享数掘使用的手段。 根拼 实时系统的场合嗣i 丌发过程,实时操作系统可分为两种:一般实时操 作系统和嵌入式实时操作系统。一般实时操作系统应用于实时查询等实时性较 弱的系统,并且开发、调试、运用环境一致。而嵌入式实时操作系统应用于实 时性要求高的控制系统,采用交叉开发环境,即开发环境与调试、运行环境不 一致。嵌入式实时操作系统具有规模小( 一般在几十k 内) 、实时性强( 在毫秒或 微秒数量级上) 、可固化等特点。 2 5 实时、嵌入式操作系统的发展 近十年来,实时操作系统得到飞速的发展,从支持8 位微处理器到1 6 位、 3 2 位甚至6 4 位,从支持单一品种的微处理器芯片到支持多品种微处理器芯片, 从只有实时内核到除了内核外还提供其他功能模块,如高速文件系统,t c p i p 网络系统,窗口系统等等。 据嵌入式系统杂志( e m b e d d e ds y s t e m sp r o g r a m m i n g ) 报告,世界各国有四十 多家公司,已成功推出2 0 0 余种可供嵌入式应用的实时操作系统。其中几个著 名的实时、嵌入式操作系统是w i n dr i v e rs y s t e m 公司( w r s ) 的v x w o r k s 、p s o s , m e n t o rg r a p h i c s 公司的v r t x ,m i c r o s o f t 公司支持w i n 3 2a p i 编程接口的 w i n d o w s c e ,m i c r o w a r e 公司的o s 9 ,3 c o m 公司的p a l m o s 。 实时、嵌入式操作系统及其应用开发环境的发展动向是: 1 提供丌放的操作系统应用程序接口( a p i ) 商用实时、嵌入式操作系统为了支持开发商根据需要自行开发所需的应用 程序,除了提供自身的套a p i 以外,还要提供支持p o s i x 标准、i t r o n 标h 的a p f 。 2 丽向i n t e r n e t 、面向特定应用是实时、嵌入式操作系统的重要发展趋势。 伴随衍通_ r | j j 型实时、嵌入式操作系统的发展,一个面向i n t e m e t 网络、面向 拙t 论k 姿时系境概论 特定应用的实时、嵌入式操作系统正日益引起人们的重视。嵌入式系统与 i n t e n l c t 的结合、嵌入式操作系统与应用设备的无缝结合代表着嵌入式操作 系统发展的真一未来。 3 实| | 、f 、嵌入式l i n u x 成为实时、嵌入式操作系统领域的新热点。 实时、嵌入式l i n u x 操作系统的迅速崛起,主要由于人们对自由软件的渴望 和嵌入式应用的特制性对系统源代码的需求。实时、嵌入式l i n u x 正适应了 这一需求。它具有开放的源代码、精巧,高效的内核、完整的网络功能、 良好的可剪裁性,非常适合信息家电一类的嵌入式系统的开发。 4 丌发环境向开放的、集成化的方向发展 由于嵌入式应用软件的特殊性,往往要求应用程序的设计者具有定实时 操作系统的专门知识,能合理划分任务,合理配置系统以及目标联机的调 试。因此,要设计实现一个高性能的实时应用软件,需要强有力的交叉开 发工具的支持。国外十分重视发展与实时操作系统配合的嵌入式应用的集 成开发环境,现已发展到第三代,它以客户一服务器的系统结构为基础, 具有运行系统的无关性、连接的无关性、开放的软件接口( 与实时、嵌入式 操作系统的接口、与开发工具的接口、与目标环境的接口) 、环境的一致性、 宿主机上目标仿真等特点。 硝,越 d 任务被【l e l m k i s i , :一t 2 1 e a t e 创建但还未通过d e l t a t a s k s t a r t 系统调用就绪。 d r 任务通过d e h al a s ks t a r t 系统调用就绪。 r e 任务陂删!扯得c p u 。 e - - r 任务漱抡li 1 j i 拜c p u 。 e b 任务破;| 王,、 b r 任务蚓目1 2 i 祭f _ i | 玻解除。 i 卜_ b 就绪任务被运 任务通过d e l t at a s ks u s p e n d 调用挂起。 d 一 i 任务被d e l t at a s kd e l e t e 调用删除。 r _ i 任务被d e h at a s kd e l e t e 调用删除。 e i 任务被d e l t at a s l d e l e t e 调用删除。 b i 任务被d e l t at a s kd e l e t e 调用删除。 4 , 4 3 任务的特性 d e l t a c o r e 定义的博个任务都包括独立的任务名、全局唯一标识号、任务 状态、任务优先级、任务属性、任务模式、任务记事本和任务变量。 4 4 3 1 任务名和壬务标识 d e l t a c o r e 定义的f f 务在创建时由用户指定一个任务名,同时系统为它分 配一个全局唯的标识号,以后对该任务的操作都依据标识号实现。系统中, 任务名可以不唯一,但标t 号定唯一。系统调用d e l t a _ t a s k _ i d e n t 用于根据任 务名获得相应的任务轫:以号。对于任务名不唯一的情形,仅返回第一个匹配的 标识号。 4 4 3 2 任务属性 d e l t a c o r e 定义的侮个任务都有独立的任务属性。任务属性在任务创建时 指定,以后在谚仃锌甜圳缘之前不能被更改。任务的属性包括以下两方面的内 容: 1 浮点数1 7 向支持( 二选一) 堡! :丝竺 一 二型! 丝:! 坠:塑丝垂笪堕苎丝丝! 鱼堕卫型塑量! i ! 墼 对j :j “npj 毁条仆的系统( 硬件浮点数支持或者软件浮点数支持) , d e i t a c o r e 胜u l 以【、宏;义用于选择任务是否需要浮点数的支持。 d e u i an 、) c1a - li n gp o i n t该任务不使用浮点数( d e l _ t a c o r e 默认定义) d e l t af i 【1a t li n gp o i n t该任务使用浮点数 d “t a c o r e 、e j j 点数支持方面采取了优化,其优化思想参见4 2 1 节。 d e i t a c o r e 通t :述佯f l 3 优化避免了不必要的协处理器上下文切换t 节省了 系统开销,茸效地 堪高丁效率,这也是d e l t a c o r e 的特色之一。 2 本地还赴全习f l 务( 二选一) 虽然,fj6 口d c 、lc a c o r e 仅针对单处理器实现,但是考虑到今后的发展, 我们提供了以f 宏定义。所有任务暂时都作为本地任务来处理。 d e l ,r a10 ( 、a :为本地任务( d e l t a c o r e 的默认值) d e l t 、( ,l 。o b l 。为全局任务( 暂不支持) 4 4 3 3 任务优;吾级 基于优先级唰瞍的系统,任务的优先级决定了同一处理器上任务相对的重 要程度。d e l t a c o r e 提供0 - 2 5 5 共2 5 6 级优先级,其中0 级被保留,1 的优先 级最高,2 5 5 的优先绂最低。处于同一优先级的任务数没有限制。d e l t a c o r e 定义的每个任务郜其有- 个可变的优先级( 动态优先级) 。任务创建时会指定一 个优先级,以后可以通过d e l t a _ t a s k _ s e t _ p r i o f i t y 系统调用修改。 4 4 3 4 任务模式 d e l t a c o r e 定义的f i 个任务都有独立的任务模式。任务模式在任务创建时 指定,以后可以通过d e l t a t a s k _ m o d e 系统调用修改。任务模式包括以下三方面 内容: 1 选择仃务训j z 机制( 二选一) d 脚t a 一1 ,刚i y j 允许任务抢占( d e lt a c o r e 的默认值) d e i ,r n o e ,t 不允许任务抢占 硕l 论艾 一种实时嵌入j 揆佑羲境内拽跏l l n c o r e 的设计1 i 璺i 堕 肌h 、【) 】、不允许相同优先级就绪任务按时问片轮转 ( d e l t a c o r e 的默认值) d 乩il l , i u ? 、i : 允许相同优先级就绪任务按时间片轮转 d 。1t u c o r ihf t 务i j 【9 度方式的选择具体到每一个任务,不同的任务可 以选择不同l 变式。 2 异步信号的“ ( _ 选一) d l :1 7 r 、a 洲i & 任务允许a s r 处理( d e l t a c o r e 的默认值) d 吼t a a 、r该任务禁止a s r 处理 3 中断线 d e l 。t al 啪e r r iml e v e l ( 0 ) 开放所有的中断( d e l t a c o r e 的默认值) 阢1 。t 、1 w 】 i l l ! v e l ( i i ) 开放中断n 级以上的中断 4 4 3 5 任务记事本 d e l t a c o r e 定义的样个任务都包括独立的1 6 个笔记本由宏d e l t a _ n o t e p a do 到d e l t a n o t 印a d i 51 * 定,用于记录任务需要的信息。d e l t a _ s e t _ n o t e 和 d e l t a _ g e tn o d e 系统圳j 目分刖用于设置和获得任务的记事本。 4 4 3 6 任务变量 d e l t a c o r e 定义的徘个任务都包括一段私有的变量区域,用于保存任务私有 的信息。这段区域槭于任务上下文的一部分。d e l t at a s kv a r i a b l e _ a d d 、 d e l t at a s kv a r i a b l e _ d e l e t e 和d e l t a t a s k _ v a r i a b l e g e t 系统调用用于增加、删除和 获得任务的变量。 4 4 4 任务调度 d e l t a 系统巾允许川i i , i 阿多个任务处于就绪态。对于目前单处理器上的 d e l t a ,宏j | ! l ! 上表现为多个任务同时运行,微观上还是通过一定的调度机制将c p u 分配给某一个仟务独山。段时间。任务的调度基于任务当前的状态和它的优先 级。 硬j 论空 一种实时嵌八武操柞系境内 耋d e l t a c o r e 磴 卜l | t 凄琨 d e l t a c o r e 默认调度机制是基于优先级的可抢占调度,另外还提供了可选的 同优先级时州片轮转调度机制。运行任务还可通过d e l t a t a s kd i s a b l ed i s p a t c h 系统调用暂时关闭调度器的工作,然后通过d e l l a t a s ke n a b l e _ d i s p a t c h 系统调用 将其打开。有关优先级调度的概念参见3 4 节。 d e l t a c o r e 中任务调度采用优先级位图算法确保调度时间的确定性。 4 5 信号量机制的设计与实现 信号量用于实现任务与任务之间、任务与中断处理程序之间的同步与互斥。 有关信号量的概念参见3 6 1 节。 4 5 1 信号量机制提供的a p i d e l t a c o r e 的信号量管理提供以下a p i d e l t as e m a p h o r ec r e a t e d e l t a _ s e m a p h o r e _ i d e n t d e l t a _ s e m a p h o r e _ o b t a i n d e l t as e m a p h o r e _ r e l e a s e d e l t as e m a p h o r e _ d e l e t e d e l t as e m a p h o r ef l u s h 因篇幅原因,仅以d e l t as e m a p h o r e _ c r e a t e 为例,展示它的接口定义。 d e l t as t a t u s c o d e d e l t a _ s e m a p h o r e t r e a t e ( d e h a _ n d l l t e n a a e j u n s i g n e d 3 2c o t m t j d e l l a _ a t t r i b u t e a t t r 2 b u t e s e t , d e i t a _ t a s k p r i o r i t yp r i o r l t y _ c e i l i n g , o b j e c t s i d * i d 4 5 2 信号量的特性 4 5 2 1 信号的类型 d e l t a c o r e 定义了两类信号量:二值信号量和计数信号量。其中,二值信 号量又分为简单二值信号量和一般二值信号量两种。 墒单二值信号量用于实现同步机制,不能嵌套访问。一般二值信号量既可 硝,蘑j 种? g - a t 嗽八j 弋糖作最境内檀d e l t a c o r e 鞠设计| i 唼现 以实现同步,也可以实现互斥,且可以嵌套访问。 1 简单二值信号量 仅用于实现同步机制,初始值为0 。一个任务调用d e l t a _ s e m a p h o r e _ o b t a i n 等待另一个任务的到来。另一个任务到达同步点时,调用 d e l t as e m a p h o r er e l e a s e 唤醒等待的任务。 2 一般二值信号量 可实现同步或者互斥机制。用于同步时初始值为0 ,用于互斥时初始值 为l 。用于互斥机制时,任务进入保护区前,需执行d e l t as e m a p h o r eo b t a i n 防止其它任务进入,退出保护区前,需执行d e l t a _ s e m a p h o r e _ r e l e a s e 允许其 它任务进入。 3 计数信号量,初始值为非负整数。 控制若干资源的访问 4 5 2 2 嵌套资源访问 嵌套访问是指某个任务再次申请自身已占用的二值信号量时,二进制信号 量的嵌套层数增加l 。二进制信号量的嵌套层数反映了该资源被同一个任务嵌 套访问的次数。释放该二进制信号量时,仅当释放到最后层时,才真正释放 该信号量的使用权限,即其他申请此信号量的任务能得它。实现时,每个 d e l t a _ s e m a p h o r e _ o b t a i n 调用必须与d e l t a _ s e m a p h o r er e l e a s e 匹配。当最外层的 d e l t a _ s e m a p h o r eo b t a i n 与d e l t a _ s e m a p h o r e _ r e l e a s e 匹配时,该信号量才允许被其 它任务访问。对于不支持嵌套访问的二进制信号量,任务在上述操作下会被永 久阻塞,因为该信号量正被这个任务占用,同时,这个任务又在等待它被释放, 阻塞条件永远不会解除。 d e l t a c o r e 的一般二值信号量支持嵌套访问,简单二值信号量不支持嵌套 访问,只能用于任务同步。 4 5 2 3 信号属性 d e l t a c o r e 定义的信号量包括如下属性,包括选择信号量的类型、任务等 - 5 0 - 待信号量的方式、优先级反转问题的解决方法( 每一类只能选择一种方式) : d e l t af i f o任务按先进先出顺序等待( d e l t a c o r e 的默认值) d e l t ap r i o r i t y任务按优先级等待 d e l t ab i n a r ys e m a p h o r e值限制在0 和1 ( d e l t a c o r e 的默认值) d e l t ac o u n t i n gs e m a p h o r e对值没有限制 d e l t as i m p l eb i n a r ys e m a p h o r e限制值为o s n l ,不允许嵌套访 问,使用时可以被删除 d e i j an oi n h e r i tp r i o r i t y d e l l ai n h e r i tp r l 0 r i t y d e i 工ap r i o r i t yc e i l i n g d e i t an op r i o r i t yc e i l i n g 不使用优先级继承( d e l t a c o r e 默认值) 使用优先级继承 使用优先级天花板 不用优先级天花板( d e i t a c o r e 默认值1 4 b 2 4 解决互斥量中优先级反转的算法 与v r t x s a 、p s o s + 和w i n d 不同,d e l t a c o r e 提供优先级继承和优先级 天花板两种算法解决优先级反转问题,为应用提供了更大的选择空间。应用可 以参考3 6 1 5 节有关优先级继承和优先级天花板的比较,联系实际情况选择最 合适的方法。这也是d e l t a c o r e 的特色之一。 4 5 2 5 申请信号量的选项 申请信号量时,可以有以下两者之的选择: d e l t a _ w a i t等待信号量( d e l t a c o r e 的默认值) d e l t a _ n o _ w a i t 不等待 中断服务程序申请信号量必须选择d e l t a n 0 w a l t ,以免中断服务程序 被阻塞。 4 6 消息机制的设计与实现 消息机制提供任务之间、任务与中断服务程序之f j 通信机制。有关消息 的概念参见3 6 2 节。d e l t a c o r e 提供双向同步消息机制,定义的消息是一段长 研,蹬上 一种实融曦入a 摄柞系境内挂d e l t a c o r e 的i l l 计l i 宴瓒 度可变的缓冲区,其内容可以是实际的数据或者是数据块的指针。有关双向同 步的概念参见3 6 2 i 节。 d e l t a c o r e 按照消息的紧急程度,分为普通消息和紧急消息。发送的普通 消息排放在消息队列尾部,发送的紧急消息排放在消息队列的头部。 4 6 1 消息机制提供的a p i d e l t a c o r e 的消息机制提供以下a p i d e l t a _ m e s s a g eq u e u ec :r e a t ed e l t a _ m e s s a g e _ q u e u e _ r e c e i v e d e l t a _ m e s s a g eq u e u e _ d e l e t ed e l t a _ m e s s a g e _ q u e u e _ f l u s h d e l t a _ m e s s a g eq u e u e _ i d e n td e l t a _ m e s s a g e _ q u e u e _ b r o a d c a s t d e l t a _ m e s s a g eq u e u e _ s e n dd e l t a _ m e s s a g e _ q u e u e _ u r g e n t d e l t a m e s s a g eq u e u e _ g e t - n u m b e r _ p e n d i n g 因篇幅原因,仅以d e l t a _ m e s s a g e _ q u e u e _ c r e a t e 为例,展示它的接口定义。 4 6 2 消息队列的状态 随着任务不断地向( 从) 消息队列发送( 接收) 消息,消息队列的状态不 断转换。d e l t a c o r e 定义的消息队列有以下四种状态: 1 消息队列为空 此时,消息队列没有存放一条消息。 2 消息队列为空且有任务等待接收消息 3 消息队列有消息,但未满 4 消息队列满,且有任务等待向它发送消息 m , 一 涵。 耻 譬 m 嚣 蒸妒 曲刚 呲 轧l n d 忠嚣翳 nl弘an l n 磐n n p m ;吼m ;曲 4 , 6 3 消息队列的属性 消息队列的属性用于选择任务等待消息的方式,以下两种只能选其一。 d e l t af i f o任务按f i f o 方式等待( d e l t a c o r e 的默认值) d e l t ap r i o r i t y任务按优先级方式等待 4 , 6 4 接收消息的选项 接收消息时,可以有以下两者之一的选择: d e l t a 、 ,a i t等待接收消息( d e lt a c o r e 的默认值) d e l t an ow a i t不等待 中断服务程序接收消息时必须选择d e l t a n o w a i t ,以免中断服务程序 被阻塞。 4 7 事件机制的设计与实现 一个事件实际上就是一个标记,用于任务间的简单同步。有关事件的概念 参见3 6 3 节。d e l t a c o r e 定义的事件有以下特点: 1 事件只与任务相关,事件间相互独立 d e l i a c o r e 定义的每个任务拥有d e l t ae v e n t0 到 d e l t ae v e n t3 1 ,共3 2 个事件标记,用一个3 2 - b i t 无符号整形数记 录,每一个b i t 代表一个事件。若干个事件构成一个事件组。 2 事件仅用于同步,不提供数据传输功能 3 事件无队列,即多次向任务发送同一事件,其效果等同于只发送一次。 4 7 i 事件机制提供的a p i d e l t a c o r e 的事件机制提供以下a p i : d e l t a _ e v e n t _ s e n d 1 发送事件 源任务构造一个事件组将其发往目标任务。如果目标任务没在等待事 研士+ 越卫 二墼实对、艘 j c 操佧蓑境内 熏d e h o c o r e 漤汁,实税 件,就将该事件组按“或”操作,保存到目标任务的待处理事件组中。如 果目标任务正在等待事件组,就会判断是否为正在等待的事件组,如果满 足唤醒条件,目标任务转为就绪态:否则将该事件组按或”操作,保存 到目标任务的待处理事件组中,目标任务继续等待。 d e h a _ e v e n t _ r e c e i v e 2 接收事件 目标任务根据接收事件选项,检测待处理事件组中是否包含正希望发生 的事件组。如果存在,接收事件的操作成功返回;否则,根据接收事件选 项确定是否进入等待状态。 因篇幅原因,仅以d e l t a e v e n t s e n d 为例,展示它的接口定义。 4 7 2 事件组的构成 d e l t a _ e v e n t 一8 e n d ( i 也 e v e n _ t i n 事件之间是按位或的关系,彼此互不相关。事件组的构成如以下例子所示: d e l t a _ e v e n t _ 3 id e l t ae v e n t _ 1 5 1d e l t a _ e v e n t _ 2 2 1d e l t a _ e v e n t _ 3 1 这是 一个包括事件3 、1 5 、2 2 、3 1 的事件组。 4 7 3 接收事件的选项 接收事件时有如下选择方式,每一类只能选择其: d e l t a _ w a i t 等待接收事件 d e l t a n o w a i t 不等待接收事件 d e l t a _ e v e n t _ a l l 等待的事件必须全部发生才算满足唤醒条件 d i :l 1 a - e v e n t _ _ a n y 等待的事件只要发生任何一件就算满足唤醒条件 4 8 异步信号机制的设计与实现 异步信号机制用于任务之间、任务与i s r s 之间的异步操作。有关异步信号 s 如 酞 j 静酣破o i 暑 酞n a l nn 洮 ; 曲 , 竺! 堂苎 二翌! 堕:些垒! 壁! 竺墨塑苎旦幽型- 竺丝生:! ! 翌 的概念参见3 6 4 节。 4 8 1 d e l t a c o r e 中异步信号机制与中断机制的比较 异步信号机制与中断机制非常相似,但各自又有特点。以下是d e l t a c o r e 中异步信号机制与中断机制的比较: 1 相同点 1 ) 具有中断性 对中断的处理和对异步信号量的处理都要先暂时地中断当前任务的运 行。 2 )有相应的服务程序 根据中断向量,有一段与之对应的服务程序,称为i s r ( i n t e r r u p ts e r v i c e r o u t i n e ) 。 根据异步信号量的编号,有一段与之对应的服务程序,成为a s r ( a s y n c h r o n i o u ss e r v i c er o u t i n e ) 3 )可以屏蔽响应 外部硬件中断可以通过相应的寄存器操作屏蔽中断。 任务对异步信号量的响应可以通过选择任务模式中的d e l t a n o _ a s r 来屏 蔽对异步信号量的响应。 2 不同点 1 ) 实质不同 虽然异步信号量机制又称为软中断机制,这只是强调异步信号量也 具有中断性,它们有不同的实质。中断由硬件或者特定的指令产生,不 受任务调度的控制。异步信号量由系统调用产生,依赖于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业废气治理系统编程程序员编程能力考核试卷
- 2025年虚拟电厂数字化管理系统合规考核试卷
- 光催化制氢材料研发进展与应用考核试卷
- 考点解析人教版八年级物理上册第4章光现象综合练习试卷(含答案详解)
- 2025年物流数字化转型跨境供应链可视化合规考核试卷
- 2025年医学影像技术(中级)《CT诊断学》AI辅助脑静脉窦血栓CT影像诊断考核试卷
- 难点详解人教版八年级物理上册第5章透镜及其应用专项练习试题(解析卷)
- 解析卷-人教版八年级物理上册第5章透镜及其应用-透镜达标测试试题(含答案解析)
- 兴趣撬动儿童数学思维的支点
- 难点解析人教版八年级物理上册第5章透镜及其应用-透镜定向攻克试卷(解析版)
- 苗族传统体育表演项目“滚山珠”的研究和分析
- 2025年电商平台生鲜配送售后服务标准范本3篇
- DB36-T 1941-2024 老年人轻度认知障碍筛查与干预指南
- 2024年09月2024秋季中国工商银行湖南分行校园招聘620人笔试历年参考题库附带答案详解
- 儿童青少年行为和情绪障碍的护理
- DB45T 2178-2020 甘蔗产量现场测定操作规程
- 实验设计DOE培训
- 第9课-秦统一中国【课件】(共30张课件)
- 智算中心发展创新指南
- 成都中医药大学《诊断学基本技能训练(一)》2021-2022学年第一学期期末试卷
- 2025年九省联考新高考 英语试卷(含答案解析)
评论
0/150
提交评论