(计算机应用技术专业论文)面向嵌入式实时应用的内存管理技术研究.pdf_第1页
(计算机应用技术专业论文)面向嵌入式实时应用的内存管理技术研究.pdf_第2页
(计算机应用技术专业论文)面向嵌入式实时应用的内存管理技术研究.pdf_第3页
(计算机应用技术专业论文)面向嵌入式实时应用的内存管理技术研究.pdf_第4页
(计算机应用技术专业论文)面向嵌入式实时应用的内存管理技术研究.pdf_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

浙江大学硕士学位论义 摘要 随着多媒体信息技术和互联网的飞速发展,以及消费类电子产品智能化趋势的加强,嵌 入式系统得到越来越广泛和深入的应用。在航空航天、工业控制、医疗等重要领域中,嵌入 式系统的安全性和可靠性显得尤为重要。为保证嵌入式实时系统中数据存储的安全性厕1i j 靠 性,对内存管理技术的研究具有重要意义。 本文面向嵌入式实时应用需求,提出并实现了一系列有助于提高系统安全性和可靠性的 内存管理技术解决方法,包括:动态内存泄漏检测及回收、内存冗余分配、内存冗余编i - 和 内存保护技术,并对其实现技术展开较为深入的研究。 本文首先介绍嵌入式实时系统和内存管理技术,包括嵌入式实时系统的概念,国内夕j 、的 研究现状和研究方向,嵌入式实时系统中内存模式和内存管理的特点,并在此基础上提l 本 文的研究目标和研究内容。 第二部分,在介绍s r o s 实时操作系统的体系结构和内核结构的基础上,论述了内存数 据存储的可靠性和安全性的迫切需求。 第三部分,论述动态内存泄漏检钡9 及回收技术。在介绍动态内存管理模型和内存泄漏的 基础上,提出动态内存泄漏的检测方法,包括动态内存跟踪和离线日志分析,最后详细论述 r 泄漏内存的回收技术。 第四部分,论述内存冗余分配和内存冗余编码技术。首先介绍冗余容错技术和海明码, 在此基础上详细论述了内存冗余分配过程及读取冗余变量时的比对策略,然后详细论证内存 冗余编码技术,最后给出内存冗余编码性能测试数据。 第五部分,在介绍x 8 6 体系结构的基础上,对s r o s 中内存保护技术进行了详细论述, 包括内存保护初始化,任务堆栈段保护,中断向量表保护,系统代码段保护和共享数据保 护。 最后,对面向嵌入式实时应用的内存管理技术进行了总结,并对今后的研究方向和待改 进部分作了展望。 关键词:嵌入式实时操作系统内存管理内存泄漏检测内存冗余分配内存冗余编码 内存保护 浙江大学硪t 学位论文 a b s t r a c t w i t ht h ed e v e l o p m e n to fm u l t i m e d i at e c h n o l o g ya n dt h ei n t e m e t ,a n dt 量1 ee n h a n c e m e n i ( ,| 、 i n t e l l i g e n c ef o re l e c t r o n i cp r o d u c t ,e m b e d d e ds y s t e mw a sm o r ea n dm o r ep o p u l a r f h es a f e t ya l l ,i r e l i a b i l i t yo f e m b e d d e ds y s t e mw e r ec r u c i a li nk e yf i e l ds u c ha ss p a c e f l i g h t ,i n d u s t r yc o n t r o la n d m e d i c i n e i no r d e rt oi m p r o v et h es a t b t ya n dr e l i a b i l i t yo fd a t as t o r a g ei n r e a l t i m ee m b e d d e l l s y s t e m ,r e s e a r c ho nm e m o r ym a n a g e m e n tf o re m b e d d e ds y s t e mw a sp a r t i c u l a r l ys i g n i f i c a n t w i t ht h er e q u i r e m e n to f r e a l - t i m ee m b e d d e da p p l i c a t i o n ,as e r i e so f m e m o r ym a n a g e m e n t t e c h n o l o g yt oi m p r o v es a f e t ya n dr e l i a b i l i t yf o re m b e d d e ds y s t e mw e r ep r o p o s e da n di m p l e n c n t c d i nt 1 et h e s i s ,i n c l u d i n gm e m o r yl e a kd e t e c t i o na n dc o l l e c t i o n ,m e m o r yr e d u n d a n c ya l l o c a t i o u m e m o r yr e d u n d a n c ye n c o d i n ga n dm e m o r yp r o t e c t i o n ,t h e nt h ek e yt e c h n o l o g yo f t h e s ew a s r e s e a r c h e da n di m p l e m e n t e d a tf i r s t ,as y s t e m a t i cs u r v e yo f r e s e a r c hi nt h ed o m a i no f e m b e d d e dr e a d t i m ea n dm e m 、) r v m a n a g e m e n tw a sg i v e n ,i n c l u d i n gt h ec o n c e p to f r e a l t i m ee m b e d d e ds y s t e m ,t h er e s e a r c hs t a t u s a n dt e n d e n c yo f r e a l - t i m ee m b e d d e ds y s t e m ,t h ec h a r a c t e r i s t i co f m e m o r ym o d e la n dm e m o r y m a n a g e m e n t i nr e a l t i m ee m b e d d e ds y s t e m t h e nt h es t u d yo b j e c t i v e sa n dc o n t e n t so f t h et h e s i s w e r ep r e s e n t e d s e c o n d l y ,t h et h e s i si n t r o d u c e dt h ek e m e la r c h i t e c t u r eo fs r o se m b e d d e ds y s t e m ,t h e n p r e s e n t e dt h ei m p o r t a n c eo fs a f e t ya n dr e l i a b i l i t yf o rd a t as t o r a g ei nm e m o r y f h i r d l y ,t h et e c h n o l o g yo f m e m o r yl e a kd e t e c t i o na n dc o l l e c t i o nw a sr e s e a r c h e d o nt h eb a i s o fc o n c e p to fm e m o r ym a n a g e m e n tm o d e la n dm e m o r yl e a k ,at e c h n o l o g yt od e t e c td y n a m i c m e m o i yl e a kw a sd e s i g n e da n di m p l e m e n t e d ,i n c l u d i n gd y n a m i cm e m o r yt r a c ea n do f f - l i n e a n a l y s i s t h e nt h et e c h n o l o g yt oc o l l e c tl e a k e dm e m o r yi sr e s e a r c h e d f o u r t h l y ,t h et e c h n o l o g yo f m e m o r yr e d u n d a n c ya l l o c a t i o na n dm e m o r yr e d u n d a n c ye n c o d i n g w e r er e s e a r c h e d 0 nt h eb a s i so f f a u l t t o l e r a n c ea n dh a m m i n gc o d e t h et e c h n o l o g yo f m e m o r y r e d u n d a n c ya l l o c a t i o na n dm e m o r yr e d u n d a n c ye n c o d i n gw e r ed e s i g n e da n di m p l e m e n t e d ,t h e nt h e t e s tc a s eo fm e m o r yr e d u n d a n c ye n c o d i n gw a sg i v e n f i f t h l y ,w i t ht h ei n t r o d u c t i o no fx 8 6a r c h i t e c t u r e ,t h et e c h n o l o g yo f m e m o r yp r o t e c t i o nw a s r e s e a r c h e da n di m p l e m e n t e d ,i n c l u d i n gt h ep r o t e c t i o no f r u s ks t a c k ,i n t e r r u p tv e c t o rt a b l e ,p r o g r a m c o d ea n ds h a r e dd a t a f i n a l l y ,t h et h e s i sm a d eac o n c l u s i o na b o u tt h em e m o r ym a n a g e m e n tt e c h n o l o g yf o rr e a l t i m e e m b e d d e ds y s t e ma n di t se v o l u t i o nt e n d e n c yi nt h ef u t u r e k e yw o r d s :r e a l - t i m e ,e m b e d d e d ,m e m o r ym a n a g e m e n t ,d e t e c t i o no f m e m o r yl e a k ,m e m o r y r e d u n d a n c ya l l o c a t i o n ,m e m o r yr e d u n d a n c ye n c o d i n g ,m e m o r yp r o t e c t i o n 4 - 浙江大学硕士学位论文 1 1 嵌入式实时操作系统 第一章绪论 1 1 1 实时操作系统定义和分类 随着多媒体信息技术和互联网的飞速发展,以及消费类电子产品智能化趋势的加强,嵌 入式操作系统以其占用内存少,高性能,和具有可伸缩性,性能稳定的特点得到越来越厂泛 的应用。而嵌入式实时操作系统在军事、航天等领域更是有实际的应用价值。目前世界f j :共 有8 ( 】多家公司致力于嵌入式实时操作系统的开发,其应用包括工业自动化,网络通讯,航 天,医疗仪器,核监控设备以及智能家电等领域。 实时操作系统根据时限要求和对超时错误的容忍程度分为硬实时系统和软实时系统。硬 实时系统具有一个刚性的、不可改变的时间限制,它不允许任何超出时限的错误,超时错误 会导致灾难性后果。软实时系统具有一个柔性灵活的时间限制,超时错误只造成性能下降爪j 不会造成严重后果“1 。 实时性和可预测性是实时系统最本质,最关键的特征。实时性是指系统对实时任务的时 间约束提供保障。实时任务的实时属性包括任务截止期的粒度和严格度,任务的松缓度,时 间优先顺序限制等等。可预测性是指保证系统在任务执行时间可预测的情况下运行。例女, 在处理一个重要实时任务之前,系统如果要等待一段时间,则等待时间必须有一个上限,古 则难以保证在规定的时限内完成任务的处理。动态的确定实时任务的可预测性是很困难的, 因为系统中存在着很多不可预测的动态因素,例如任务执行顺序的数据状态依赖性,共享数 据与资源的冲突,分页以及i o ,新的随机任务的到达与执行,任务间各种相关性的影响, 任务的意外终止以及引起的还原与重新启动,通信延迟等。因此,为实时应用提供支持并不 是一件容易的事情,可以对已有的非实时操作系统进行改造,建立新的操作系统平台,1 :f 【是 已有的非实时操作系统在资源管理方面采用的技术在实时环境中显得很不合适,而且很多系 统不能进行彻底的改造。或者重新建立一个实时操作系统,同时支持实时性和可预测行。 浙龃:大学硕士学位论文 嵌入式实时操作系统( r e a lt i m ee m b e d d e do p e r a t i n gs y s t e m ) 是一种实时的、支持援 入式实时应用的操作系统软件,它是嵌入式系统( 包括硬、软件系统) 极为重要的组成部努。 在功能j 二,它能够支持多任务模型下的任务管理、内存管理、同步通信和中断时钟管理笔功 能:在系统性能上,它具备一定的可预测性、较强的外部响应能力和较高的时问精度:mj 在 体积j :,具有体积小、可配置、能适用于不同的嵌入式环境等特点。 1 1 2 国内外研究现状 从上世纪八十年代起,在世界范围内就开始进行一些商用嵌入式系统和专用实时操作系 统的开发。目前世界上已有8 0 多种嵌入式实时操作系统,应用范围也十分广泛,以下是一 些典型的嵌入式实时系统。 w i n d o w sc e ”1 是一个简洁的,高效率的多平台系统。是从整体上为有限资源的平台设计 的多线程,完整优先级,多任务的操作系统。在技术角度上,它并不算是一个优秀的实时操 作系统,酋先它很难实现产品的定制,其次它占用过多的内存,同时基本内核需要至少 2 0 0 k 的r o m ( r e a do n l ym e m o r y ) ,而且不具备真正的实时性能,没有足够的多任务支持能 力。 v x w o r k s l ”】是目前嵌入式领域中使用最广泛,市场占有率最高的系统。v x w o r k s 有如f 特点:高性能的实时核心,微内核结构( 最小结构 8 k b ) ,具有微秒中断处理的能力,支持多 处理器,满足t c p i p 网络协议,具有灵活的从r o m 、磁盘或网络的引导能力,快速灵活的 l ( ) 系统以及灵活的任务间通信,大部分a p i 遵循1 0 0 3 1 b 标准,采用g n u 的编译和凋试 器。 p s o s 5 。与v x w o r k s 一样,也是一个非常成熟的实时操作系统。它是一个模块化,高性能 的实时操作系统,专为嵌入式微处理器设计,提供一个完全多任务环境,在定制的或是商业 化的硬件上提供高性能和高可靠性。开发者可以将操作系统的功能和内存需求定制成每一个 应用所需的系统。开发者可以利用它来实现从简单的单个独立设备到复杂的、网络化的多处 理系统。 刚x ”。是一个实时的,可扩充的操作系统,它遵循p o s i x 1 ( 程序接口) 和p o s i x 2 、s h e 【i 和工具) 、部分遵循p o s i x 1 b ( 实时扩展) 。它提供了一个很小的微内核以及一些可选| 1 勺配合 进程。其内核仅提供4 种服务:进程调度、进程间通信、底层网络通信和中断处理。所葶i 其 他的操作系统服务,都实现为协作的用户进程,因此q n x 内核非常小巧( q n x 4 x 大约为1 2 k i ” 塑坚奎兰堡主兰篁堡兰一, 而且运行速度极快。这个灵活的结构可以使用户根据实际的需求将系统配置成微小的嵌入式 操作系统或是包括几百个处理器的超级虚拟计算机。 1 y n x o s ”1 是一个分布式、嵌入式、可规模扩展的实时操作系统。它遵循p o s i x h 、 p o six 】b 和p o s i x 1 c 标准。l y n x o s 支持线程概念,提供2 5 6 个全局用户线程优先级。提供 一些传统的,非实时系统的服务特征,包括基于调用需求的虚拟内存,一个基于m o l _ i 的用 户图形界面,与工业标准兼容的网络系统以及应用开发工具。 国内的嵌入式系统开发也已经取得了一定的成绩,包括科银京城的d e l t ao s ,中科院 的e e o s ,凯思集团的h o p e no s 等等。但是国内的产品很大程度上只是国外公司的附属和扩 充,技术含量相对较低,通用性不强。 1 1 3 国内外研究方向 目前,国内外的r t o s ( r e a l t i m eo p e r a t jn gs y s t e m ) 研究方向主要集中在以下几个方 面: ( 1 ) 超微内核( n a n o k e r n e l ) “ 近几年,国外发展了一种基于微内核思想设计的精巧的嵌入式微内核,即实时超微内 核。超微内核是一种非常紧凑的基本内核代码层,为嵌入式应用提供可抢占、快而准确自,j 实 时服务,在它的基础上可以灵活地构造各种类型的、与现有系统兼容的、可伸缩的嵌入式实 时操作系统,能满足应用代码的可重用性和可伸缩性( s c a l a b i l j t y ) 的需求。m r i 公司丌发 的v r t x 系统,具有更强的功能,实时性和可靠性有很大改进。 ( 2 ) 增强操作系统的可预测性和实时性 这方面的研究涉及硬件系统结构平台和软件系统设计各个方面。多处理器结构雕o s 、 分布式实时操作系统、实时网络的研究和实时应用的飞速发展“,对r t o s 的性能提f 0 了更 高的要求。单处理器的计算机系统己不能很好的满足某些复杂实时应用系统的需求,开发支 持多处理器结构的r t o s 已成为发展方向。分布式实时操作系统目前还处于研究阶段,还未 完全成熟,特别是在网络实时i 生和多处理器间的任务调度算法上还需进一步研究。 ( 3 ) 州【) s 的标准化研究”“ 目前国外的r t o s 开发商有数十家,提供了上百个r t o s ,它们各具特色。但这也给应硐 丌发者带来困难。其中最重要的一点就是软件的可移植性和代码重用性低,当选择不矧的 r t ( ) s 时,不能保护用户已有的软件投资。r t o s 的标准化研究越来越被重视,i e e e 协会在 浙 _ := 大学碗l 学位论,空: 而且运行速度极快。这个灵活的结构可以使用户根据实际的需求将系统配置成微小的嵌 j _ i : 操作系统或是包括几百个处珲器的超级虚拟计算机。 y n x ( s 。“是一个分巾式、嵌入式、可规模扩展的实时操作系统。它遵循p o s i xi p ( i s ixlb 和m s 限lc 标准。l y n x o s 支持线程概念,提供2 5 6 个全局用户线程优先级。挺供 一些传统的,_ l _ 实时系统的服务特征,包括基于调用需求的虚拟内存,一个基于m c 的用 户图形界面,与1 业标准兼容的网络系统吼及应用开发工只。 国内的嵌入式系统开发也已经取得了一定的成绩,包括科银京城的b ej t ao s ,丌科院 的e e o s ,凯思集团的h o p e no s 等等。但是国内的产品很大程度上只是国外公司的附属和扩 充,技术含量柏对较低,通用性币强。 1 1 3 国内外研究方向 目前,国内外的r t o s ( r e a lt i m eo p e r a t i n gs y s t e m ) 研究方向主要集中在以下几个方 面: ( j ) 超微i :| 核( n a n o k e r n e l ) ”1 近几年,国外发展了一种基于微内核思想设计的精巧的嵌入式微内核,即实时超微p i 核。超微内核是一种非常紧凑的基本内核代码层,为嵌入式应用提供可抢占、快缸推确j 蛮 时服务,在它的基础上可以灵活地构造各种类型的、与现有系统兼容的、可伸缩的嵌入式实 时操作系统,熊满足应用代码的可重用性和可伸缩性( s c a l a b i l i t y ) 的需求。g r t 公丌j 丌发 的v i x 系统,具有更强的功能,实时性和可靠性有很大改进。 ( 2 ) 增强操作系统的可预测性和实时性 这方萄的研究涉及硬件系统结构平台和软件系统设计各个方面。多处理器结构j ( 凤 分布式实叫操作系统、实时网络的研究和实时应用的飞速发展“,对r t 0 s 的性能提 _ r 更 高的要求。单处理器的计算机系统已不能很好的满足某些复杂实时应用系统的需求,开发支 持多处理器结构的r 1 0 s 已成为发展方向。分布式实时操作系统目前还处于研究阶段,述禾 完令成熟,特别是在网络实时性和多处理器间的任务调度算法上还需进一步研究。 ( 3 ) r j o s 的标准化研究1 目前国外的r t o sj r 发商有数十家,提供了上百个r t o s ,它 j 各具特色。但这也给应用 开发者带来困难。其中最重要的一点就是软件的可移植性和代码重用性低,当选择不f j 的 肌( ) s 刚,不能保护用户已有的软件投资。r t o s 的标准化研究越来越被蘑视,j e e e 协会在 肌( ) s 时,4 ;能保护用户已有的软件投资。r t o s 的标准化研究越来越被蓐视,i e e e 协会在 浙江人学硕士学位论文 i 川x 的基础上,制定了实时u n t x 系统的标准p o s i xl 0 0 1 4 系列协议。但还有许多 作i 待完成。 ( 4 ) 改善实时系统应用的开发环境”。 集成的开放式实时系统开发环境的研究已成为r t o s 研究的另一个重要方向。开发实时 应用系统,只有l 1 0 s 是不够的,需要集编辑、编译、调试、模拟仿真等功能为一体的集域 开发环境的支持,提供支持多种硬件平台的交叉编译器、调试器和仿真机,支持标准实时 】,支持面向对象编程等。 1 2 嵌入式实时系统的内存管理 1 2 1 实时系统内存管理特性 内存管理是计算机科学中一个重要且复杂的方面,它也是众多计算机科学家一直以来研 究的课题之一,并且已经开发出许多使内存管理更有效的技术“。内存管理模块管理着系统 的物理内存,以及对应的一些硬件机制,向操作系统其它部分提供服务。在嵌入式实时系统 中,内存管理机制是一个重点和难点的问题,内存管理机制必须满足以下几个特性。1 : ( 1 ) 实时性。从实时性的角度出发,要求内存分配过程要尽可能地快。因此,在敝入式 系统中,不可能采用通用操作系统的一些复杂而完善的内存分配策略,一般没有段页式的虚 存管理机制,而是采用简单、快速的内存分配方案,其分配方案也因程序对实时性的要出向 异。例如,v x w o r k s 系统采用简单的“首次适应,立即聚合”方法;v r t x 中采用多个固定尺 寸存储块的b i n n i n g 方案。 ( 2 ) 可靠性。嵌入式系统应用的环境千变万化,在有些特定情况下,对系统的司靠怡:要 求极高,内存分配的请求必须得到满足,如果分配失败则可能会带来灾难性的后果。比如, 飞机的燃油检测系统。在飞机飞行过程中,如果燃料发生泄漏,系统应该立即检测到,字发 出相应的警报等待飞行员及时处理。如果因为内存分配失败而不能相应地操作,就司能发生 机毁人亡的事故。 ( 3 ) 高效性。内存分配要尽可能地减少浪费。不可能为了保证满足所有的内存分配请求 而将内存配置得很大。一方面,嵌入式系统对成本的要求使得内存在其中只是一种很有限的 资源;另一方面,即使不考虑成本的因素,系统硬件环境有限的空间和有限的板面积决定了 可配簧的内存容量是很有限的。 r 浙江大学硕t 学位论文 1 2 2 内存分配方案 在一般的嵌入式系统的内存管理中,最基本的内存分配方案有两种静态分配和酬态 分配。静态分配是指在编译或链接时将程序所需的内存空间分配好,采用这种分配方案的 程序段,其人小一般在编译时就能够确定;而动态分配是指系统运行时根据需要动态地分配 内存。这两种策略的选取一直是嵌入式系统设计中一个令人头痛的问题。 一般的嵌入式系统都支持静态分配,因为像中断向量表、操作系统映像这类的狸序段, 其程序大小在编译和链接时是可以确定的。而是否支持动态分配主要基于两个方面的考虑: 首先是实时性和可靠性的要求,其次是成本的要求。对于实时性和可靠性要求极高的系统 ( 硬实时系统) ,不允许延时或者分配失效,必须采用静态内存分配,如航天器上的嵌入式系 统多采用静态内存分配。除了基于成本的考虑外,用于汽车电子和工业自动化领域的些系 统也没有动态内存分配,比如w i n d r i v e r 著名的o s e k w o r k s 系统。然而,仅仅采用静态分 配,使系统失去了灵活性。必须在设计阶段就预先知道所需要的内存并对之作出分配;必须 在设计阶段就预先考虑到所有可能的情况,因为一旦出现没有考虑到的情况,正在运行舒膘 统就无法处理。这样的分配方案必然导致很大的浪费。因为内存分配必须按照最坏情况进行 最大的配置,而实际运行时很可能只使用其中的- 4 , 部分;而且在硬件平台不变的情况下, 不可能灵活地为系统添加功能,从而使得系统的升级变得困难。 虽然动态内存分配会导致响应和执行时间不确定、内存碎片等问题,但是它的实现t jl , 帝4 灵活,给程序实现带来极大的方便,有的应用环境中动态内存分配甚至最必不可少的。比 如,嵌入式系统中使用的网络协议栈,在特定的平台下,为了比较灵活地调整系统的功能, 在系统中各个功能之间作出权衡,必须支持动态内存分配。例如,为了使系统能够及时地在 支持的v l a n 数和支持的路由条目数之间作出调整,或者为了使不同的版本支持不同的协 议,类似于r e a l l o c 和f r e e 这类的函数是必不可少的。虽然动态内存分配给程序编写带来了 极夫的灵活性,但是由之引起的内存泄漏也是目前困扰着程序员的一个很大的难题。 1 2 3 实时系统中的内存模式 常见的实时操作系统内存空间模式分为两种:无保护模式和保护模式“。 ( 1 ) 无保护模式 无保护模式中,内核系统和用户空间之间没有任何保护。系统中只有两个段,代鹳段和 浙江人学硕上学位论文 数据段,这两段数据共享整个物理内存。每个段从物理地址o 开始,到系统中实际物理pj 存 的最高地址结束。此时,操作系统不需要对地址空间和保护模式进行管理。 ( 2 ) 保护模式 在保护模式中,又可以分为系统用户保护模式和私有保护模式。在系统用户保护棱式 中,内存保护是通过页式保护机制来实现的。分配给内核系统的页面拥有超级属性,表圳j 所 有者有很高的特权级,是系统模式。分配给用户的页面标明所有者为某个用户,拥有胜的 特权级,为用户模式。这样,内核系统就会被保护起来,不会被不具有权限的用户应削程序 访问。页式保护机制通过m m u ( m e m o r ym a n a g e m e n tu n it ) 来实现地址转换,同时对页l 自 进行 模式检查,以确认当前进程是否有对该页面的访问权限。在私有保护模式中,所有的进j f ! ,! 部 运行在私有的虚拟地址空间中,每个进程都有自己的段和段描述符。操作系统的任务就是管 理每个进程的段描述符。当分页机制和交换机制结合的情况下,进程的虚拟地址空间可以超 出系统的实际物理内存。但是交换机制存在一定的不确定性,所以在实时系统中一般足不可 接受的。段页式保护机制全部启动的模式也称为完全保护模式。 在嵌入式实时系统中,无保护内存空间模式更为常见。以v x w o r k s 为例,它支持多任 务,每个任务的执行环境包括c p u 寄存器、堆栈、定时器、i o 分配、信号处理程序和核心 控制块等。所有任务共享一个内存地址空间,也就是所有的任务( 包括内核) 都在一个单一+ 的 地址空间中执行。当程序执行时,不需要进行虚拟地址到物理地址的转换,每个任务可以存 取任何物理地址的内存单元。由于所有任务和操作系统同处于一个地址空间中,彼此之间没 有任何保护,任务的正确执行完全依赖于程序员编写正确无误的程序。一个任务的错误可能 会导致其他任务无法执行,甚至时整个系统的瘫痪。因此,如何在这种无保护、支持动态内 存的模式下,提高系统的可靠性和安全性,已经成为需要迫切解决的问题。 1 3 论文研究背景和内容 在嵌入式实时应用场合,尤其是航空、航天、军事等重要部门和恶劣工作环境下,如侗 保证系统能安全、可靠地运行,是需要重点解决的关键问题之一,这就需要系统提供安全可 靠的内存管理机制。 本论文属于国防预研资助项目研究内容的一部分,主要基于嵌入式实时操作系统 s r ( ) s ,研究面向嵌入式实时应用的内存管理技术。包括内存泄漏的检测和回收,内存冗糸分 配和内存冗余编码,基于m m u 的内存保护三个部分: 浙江大学硕士学位论文 ( 1 ) 通过在测试期间对动态内存的跟踪,记录动态内存分配释放的日志,分析日志文件 以检测动态内存的泄漏。在系统运行期间,通过特殊的m a ll o c 和f r e e 结构,达到列任务泄 漏内存的回收。 ( 2 ) 内存t 余分配和内存冗余编码是保证嵌入式实时系统可靠性的重要手段。通过列关 键数据冗余分配内存以及冗余编码,提高系统的容错能力。 ( : ) 由于嵌入式应用运行于同一地址空间中,所以数据容易被破坏。本系统通过基j : m m u 的内存保护,实现了对任务堆栈段、代码段、中断向量表和共享数据的保护,保;:系统 数据完整性,提高了系统的可靠性。 1 。4 论文组织结构 全文共分六章。第一章介绍实时操作系统和内存管理概念,第二章介绍s r o s 体系结构 和内核结构,第三章论述了动态内存泄漏检测及回收技术,第四章研究内存冗余分配和内存 冗余编码技术,第五章研究基于删的内存保护技术,第六章总结与展望。具体如下: 第一章,介绍嵌入式实时系统和内存管理技术,包括嵌入式实时系统的概念,国内外的 研究现状和研究方向,嵌入式实时系统中内存模式和内存管理的特点,并在此基础上提 :本 文的研究目标和研究内容。 第二章,在介绍s r o s 实时操作系统的体系结构和内核结构的基础上,论述了内存数据 存储的可靠性和安全性的迫切需求。 第三章,论述动态内存泄漏检测及回收技术。在介绍动态内存管理模型和内存泄漏的皋 础上,提出动态内存泄漏的检测方法,包括动态内存跟踪和离线日志分析,最后详细论述了 泄漏内存的回收技术。 第四章,论述内存冗余分配和内存冗余编码技术。首先介绍冗余容错技术和海明码,在 此基础上详细论述了内存冗余分配过程及读取冗余变量时的比对策略,然后详细论证内存冗 余编码技术,最后给出内存冗余编码性能测试数据。 第五章,在介绍x 8 6 体系结构的基础上,对s r o s 中内存保护技术进行了详细论述。包 括内存保护初始化,任务堆栈段保护,中断向量表保护,系统代码段保护和共享数据保护。 第六章,对面向嵌入式实时应用的内存管理技术进行了总结,并对今后的研究方向和待 改进部分作了展望。 浙江大学硕士学位论文 第二章s r o s 操作系统体系结构 2 1s r o s 的体系结构 操作系统内核是操作系统的核心,它提供系统运行的基本功能,是实现操作系统环境中 其它子系统的基础。例如,u nj x 操作系统的内核包括任务管理、中断处理、内存管理、设 备驱动程序和文件系统等。常见的操作系统结构内核模式可以分为两种:单一内核模式;f | j 微 内核模式”。 ( 1 ) 单内核模式“” 单一内核模式的操作系统是一个包括了不同模块的整体内核。一个模块代表一个功能, 各个模块之间是平等的关系,不同的之间通过直接的相互调用来互相提供服务。单一内核模 式的操作系统一个很大的缺点就是调试困难。当其中的一个模块有变化时,会对其他的模块 产生很大的影响。当系统中的模块数增多时,楣互之间的关系显得更为复杂,调试的难度电 成几何级数增加。当然由于操作系统都是采用直接调用的方式,所以运行效率相对较高,早 期的操作系统几乎都是采用这种模式。 ( 2 ) 微内核模式 微内核结构操作系统的思想是使操作系统核心容纳尽量少的基本功能,其它的功能干1 :为 系统线程或者任务来提供。微内核的思想首先在c m u 开发的m a c h “1 操作系统中得到成功鹿 用,微内核结构也已经成为操作系统研究的热点。 基于微内核结构的操作系统和传统的操作系统相比,具有以下的特点:j ) 内核精巧。通 常内核只由任务管理、内存管理和进程问通信三个部分组成。传统操作系统内核中的湃多部 分都被移出内核,采取服务的方式实现。2 ) 可靠性高。随着软件规模的增大,代码的可靠性 就越难以得到保证。采用微内核设计为代码的可靠性带来很大的好处。首先,小巧的微【夫l 核 本身容易得到严格的测试。其次,它提供的数量有限的编程接口减小了系统程序员的学习 量,同时使核外服务模块和其它系统部分的交互也得到有效的控制。3 ) 可扩展性强。微内核 的体系结构,使得一些新的服务可以以用户任务的形式加到系统中来。同时,对于同一个系 统功能,还可以提供几种互补冲突的服务形式供用户选择,不需要对系统内核进行任似修 1 2 浙江大学硬士学位论文 改。同时,由于内核结构的简单,用户也可以更方便对内核进行裁剪。4 ) 可移植性强。存微 内核系统中,和处理器相关的代码都在微内核中实现,因此进行系统移植时需要修改的f 1 :码 量相对比较少,而且其逻辑清晰的代码组织也使得移植比较容易。 s i t ( ) s 就是基于微内核的嵌入式实时操作系统。它提供了一个非常精简的内核,其它功 能都通过核外的服务进程协作来完成,任务之间通过内核提供的方式迸行通信,从而使系统 具有模块化、结构清晰、可移植性强和裁剪性好的特点。 2 2s r o s 的内核结构 针对嵌入式实时应用的需求,s r o s 系统设计原则如下: ( 1 ) 层次化和模块化原则。在系统中,尽可能定义明确的层次关系,减小功能模块问的 依赖性,从而为用户提供可配置代码,由用户决定所需模块并进行最终定制; ( 2 ) 接口柔性化原则。以c 语言函数库的方式提供系统调用接口,该接口与内核功能相 对应,并可由用户根据需要进行定制; ( 3 ) 精简设计原则。对内核功能及代码进行大幅度的简化,保证内核大小的合理性; ( 4 ) 实时原则。从进程调度、中断处理、内存分配和信号量等环节保证系统对相应时i 叫 的临界要求,提供硬实时服务; ( 5 ) 可靠性原则。在设计过程中充分考虑系统的可靠性,保证极端条件下系统不会崩 溃,保证进程间互不干扰。 s r o s 内核按照功能模块划分结构如图2 - 1 所示,包含了操作系统中必要的基本管理功 能,主要由任务管理和调度、进程同步和通信、内存管理、中断管理和时钟管理5 个部分组 成。 浙江大学硕l 学位论文 2 2 1 任务管理与调度 图2 - 1 内核体系结构 任务管理和调度模块负责任务的创建和退出,及其相关信息如调度策略、上下文信息、 时间属性、标识和状态信息等等的管理。嵌入式实时应用通常组织成为互相协作而又各t i 独 立的程序,每个这样的程序在执行时,称为任务( t a s k ) 。在系统中,任务对大多数资源军。着 直接、共享的访问,同时也维护足够的上下文环境来保持各个程序控制的独立执行。多右:务 机制使得系统能够响应现实世界中多样的、离散的事件,系统的实时内核提供了基本的多任 务环境。多任务环境能够产生多个任务同时执行的表象,而实际上是内核依据调度算法依次 执行任务。多任务环境下,每个任务都有自己的上下文环境,通常包括c p u 环境、程序谤数 器、时间片计数器等等,而这些环境在任务切换时被存储在任务控制块( t c b ) 中。在、r 0 中,任务被分为挂起、阻塞、就绪、延迟四个状态。 当个任务被创建时,它进入挂起状态,为了让一个被创建的任务进入就绪状态,必须 激活它。任务可以在任何状态下被删除。s r o s 内核缺省使用基于优先级的抢占式调度算 法,但也可以选择在同一优先级的任务之间使用时间片轮转调度。使用一个基于优先级的抢 占式调度器时,每个任务都有一个优先级,内核将保证具有最高优先级的就绪任务占有 c 凡,因为调度是抢占式的,如果此时有一个优先级更高的任务变为就绪态,内核立刻将 c p u 的执行权限交给这个任务。基于优先级的抢占式调度如图2 2 所示,在图中任务t 1 被 更高优先级的任务t 2 抢占了,接着,它又被t 3 抢占了。当t 3 完成了以后,t 2 接着运行, 当l 2 完成后,t l 接着运行。 瑚u 人手似_ 上千性毗工 i 一一一 0 煳田 lf 图2 2 优先级抢占调度 时间片轮转调度使用时间切片使多个具有相同优先级的任务能够公平分配c p u ,其原理 如下图所示,若一个任务在它的时间片内被一个高优先级的任务抢占时,它的时间计数器被 保存下来并且当它再次因为条件具备而运行的时候被恢复。图2 3 显示了三个具有相同优先 级的任务t l ,t 2 ,t 3 的时间片轮转调度。7 r 2 被一个高优先级的任务t 4 抢占并且当t 4 结束时 在离开时的时间计数器上恢复执行。 低 2 2 2 进程问同步与通信 图2 - 3 时间片轮转优先级调度 进程间的同步与通信是多任务系统的必需功能。s r o s 内核以互斥锁与信号量实现任务同 步,并提供消息传递机制以实现进程间通信。同步机制主要涉及系统资源共享与事件等待, 内核同步可采用中断屏蔽实现,也可利用与应用程序相同的同步原语。互斥锁和信号量都存 在一个优先级反转的问题,优先级反转是指低优先级的进程拥有高优先级进程所需的资源, 而阻塞了后者的执行。优先级反转原理如图2 4 所示:当一个高优先级的任务被强制等待 段刁i 确定的时间以让一个低优先级的任务完成时就发生了优先级反转。考虑这样的一个情 景,t l ,t 2 ,t 3 分别是三个具有高,中,低优先级的任务。t 3 通过获取相应的二元信,量获 1 5 及 一 浙旺大学碗 学位论文 得r 某个资源。当t 1 抢先了t 3 并尝试获取同一个资源时,它被阻塞。若我们能保证 塞的时间不会长于t 3 通常用来使用这个资源的时间,则没有任何问题,因为资源是习;能皱 抢占的。 然而,1 ,3 是极有可能被t 2 所抢先的,这可能会让t 3 无法释放资源。这种情况司能会 持续发生,导致t 1 阻塞一段不确定的时间。系统将使用优先级继承来解决这个问题,即在 商优先级进程企图获得被占用的资源时,给占有资源的低优先级进程赋予与自己相同的优先 级。优先级继承原理如图2 - 5 所示: !t 1 - 乃 t 1 | 多 。 t 2 i t , 圈2 - 5 优先级继承 进程同步机制对实时进程调度有深刻的影响,具体体现在临界时间的满足、优先级的动 态变化、一l zf 文切换的频率以及任务集的负载等方面。系统还提供了4 种进程间通信机制, 共享内存、信号量、消息队列和管道、信号。共享内存是任务间通信最直接的方式,因为系 统中所有的任务都同处一个线性地址空间中,所以为共享内存提供了便利。信号量是解拶! 进 程间同步和瓦斥的主要手段,系统内核提供二元信号量、互斥信号量、计数信号量三种信号 量。消息队列允许在队列中保持可变数目可变长度的消息,多个任务通过向队列发送消息和 从队列接收消息来实现进程间通信。管道提供了通过系统的i o 系统访问消息队列的个接 口,管道是一个虚拟设各。信号异步的改变任务的控制流,通常用作异常和错误处理。 浙江大学颂士学位论文 2 2 3 内存管理 内存管理模块管理所有的物理内存,并为内核中的其它模块及用户进程分配内存。舀 s r o s 中,内存管理模块和系统其它模块关系如图2 - 6 所示: 图2 - 6 内存管理模块和其它模块关系 在s r o s 中,内存采用平坦模式,即内核及所有用户进程共享一个地址空间,整个物理 内存对系统的每一部分都是可见的。内存管理模块的主要功能包括静态数据结构的内存分 配、堆栈管理、堆管理、泄漏内存的回收、内存冗余分配和冗余编码、内存保护等。系统使 用最先适配算法来分配动态内存,并提供了与a n s ic 一致的接口m a l l o c0 和f t e e0 。番:任 务被意外中i 卜时,可能会有内存残留在堆上为被释放,泄漏内存的回收就是指系统能够叫收 这些泄漏的内存。内存冗余分配和冗余编码是为一个请求分配多块相同的内存并进行编码, 以提高可靠性。对于由于平坦内存模式而可能产生的数据错误,系统采用了基于r m u 的内存 保护方法来确保数据不被非法访问。 2 2 4 中断管理 中断管理是实时系统中至关重要的一个模块,因为通常外部事件是通过中断来通知实时 系统的。在s r o s 中,为了最快的相应中断,中断处理程序运行在不同于任何任务的上下史 环境中,所有开放的中断服务相应信号均将在最短的1 0 i xs 左右的时间之内得到相应,而j 优 先级较低的中断可选地被优先级较高的中断嵌套。在i n t e lx 8 6 体系结构下,所有的中断服 务程序使用相同的中断堆栈,这个堆栈是由系统在引导阶段分配并初始化的。为了保持实吲 性,中断服务程序与一般任务相比有一些限制,例如在中断服务程序中不能使用信号量等, 浙江大学硕士学位论文 对于要求高可靠性的场合,s r o s 提供可选的w a t c h d o g 机制,以防止用户程序进入死循聊、, 同时提供了一个时钟库给用户,用户可以生成,设置及删除定时器。 2 3 内存管理需求的提出 在嵌入式实时系统中,内存管理是其中一个至关重要的模块

温馨提示

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

评论

0/150

提交评论