已阅读5页,还剩52页未读, 继续免费阅读
(计算机软件与理论专业论文)嵌入式实时操作系统的内存管理.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文 摘要 嵌入式实时操作系统由于自身的实时性,可预测性等特点,对内存管理的要求与 通用操作系统相差很大。通用操作系统中内存管理的目标是提高系统的整体性能,而 实时操作系统内存管理的目标是维护系统执行的可预测性,保证硬实时任务在截止期 限前执行完成。 a r t s - o s 是一个自行开发的采用微内核技术的嵌入式实时操作系统。a r t s o s 的内存管理分为两个部分,任务地址空间管理和内存的分配和回收管理。任务地址空 间管理在不同的实时操作系统中差别很大。一些实时操作系统中每个任务和核心都有 自己的虚拟地址空间,地址空间管理是系统必不可缺的一部分。而很多实时操作系统 中核心和任务共享一个统一的物理地址,无需地址空间管理。a r t s o s 支持基于保护 机制的任务地址空间管理。分析表明,只要合理的管理和使用保护机制,不会给实时 系统的执行带来不确定性。) l 。 内存的分配和回收策略在通用操作系统中已经研究地很透彻了,但是这些策略都 不完全适用于实时操作系统,因为它们没有考虑实时性。a r t s o s 的适应管理策略根 据任务的优先级来调度内存的分配与回收,很好的保证了系统中硬实时任务按期完 成。同时,内存的动态分配会产生内存碎片的问题,内存的回收又存在着递归合并的 问题。a r t s o s 采用的l a z y 伙伴系统内存分配策略对上述问题有较好的解决方法。 最后,实现了基于微内核的嵌入式实时操作系统a r t s o s 的实时内存管理。 关键词;嵌入式实时操作系统;微内核;内存模式;匦至逝垂嚣矿7 一 l 华中科技大学硕士学位论文 a b s t r a c t h a v i n gt h ec h a r a c t e r so fr e a l - t i m ea n dp r e d i c t a b i l i t y , e m b e d d e dr e a l - t i m eo p e r a t i n g s y s t e m ( o s ) h a s d i f f e r e n tr e q u i r e m e n t sf o rm e m o r ym a n a g e m e n t ( m m ) f r o m g e n e r a lo s t h em a i no b j e c t i v eo f g e n e r a lm m i st oi n c r e a s et h ew h o l ep e r f o r m a n c eo f s y s t e m w h i l e t h em a i no b j e c t i v eo fr e a l - t i m em mi st om a i n t a i nt h ep r e d i c t a b i l i t yo fs y s t e m a n d g u a r a n t e e t h a th a r dr e a l t i m et a s k sc a nb ef i n i s h e db e f o r et h ed e a d l i n e a r t s - o si sa ne m b e d d e dm i c r o k e m e lr e a l t i m eo p e r a t i n gs y s t e md e v e l o p e db yu s m mo fa r t s - o sh a st w op a r t s o n ei st a s ka d d r e s ss p a c em a n a g e m e n t t h eo t h e ri s m e m o r ya l l o c a t i o na n dc o l l e c t i o nm a n a g e m e n t i ti sv e r yd i f f e r e n tf o rt a s ka d d r e s ss p a c e m a n a g e m e n t i nd i f f e r e n tr e a l - t i m eo p e r a t i n gs y s t e m s i ns o m e o p e r a t i n gs y s t e m s ,e a c ht a s k a n dt h ek e m e lh a v ei n d i v i d u a la d d r e s ss p a c e s s ot a s ka d d r e s s s p a c em a n a g e m e n ti s i n d i s p e n s a b l e w h i l ei ns o m eo p e r a t i n gs y s t e m s ,t h ek e r n e la n da l l t a s k ss h a r eas i n g l e p h y s i c a l a d d r e s ss p a c e t h e r ei sn on e e do ft a s ka d d r e s ss p a c em a n a g e m e n t a r t s o s s u p p o r t st a s ka d d r e s ss p a c em a n a g e m e n tb a s e do np r o t e c t i o nm e c h a n i s m b e c a u s et h e a n a l y s i ss h o w st h a ta sl o n ga si ti sr e a s o n a b l ym a n a g e da n du s e d ,p r o t e c t i o nm e c h a n i s m w i l ln o tb r i n g u n c e r t a i n t y t or e a l t i m es y s t e m t h e r ea r cm a n ym e m o r ya l l o c a t i o na n dc o l l e c t i o na l g o r i t h m si n g e n e r a lo p e r a t i n g s y s t e m s b u tn o n eo f t h e mi sq u i t es u i t a b l ef o rr e a l t i m es y s t e m sb e c a u s et h e yi g n o r et h e t i m e l i n e s s a r t s - o su s e sa d a p t i n gm a n a g e m e n ta l g o r i t h m ,w h i c hm a n a g e sm e m o r y a l l o c a t i o na n dc o l l e c t i o na c c o r d i n gt a s kp r i o r i t yt og u a r a n t e er e a l - t i m et a s k st ob ef i n i s h e d i nt i m e a tt h es a m e t i m e ,d y n a m i cm e m o r y a l l o c a t i o na n dc o l l e c t i o nw i l lr e s e ti nm e m o r y f r a g m e n t a t i o na n dr e c u r s i v ec o l l e c t i o n a r t s - o sa d o p t sl a z yb u d d ys y s t e m ,w h i c hh a s s o m e i m p r o v e m e n t s o n m e m o r yf r a g m e n t a t i o n a n dr e c u r s i v ec o l l e c t i o n a tl a s t t h er e a l t i m em mo f a r t s - o si si m p l e m e n t e d k e y w o r d s :e m b e d d e d r e a l - t i m eo p e r a t i n gs y s t e m ;m i c r o k e r n e l :m e m o r ym o d e l ;m e m o r y a l l c a t i o na l g o r i t h m ;m e m o r yd i s p l a c e m e n ta l g o r i t h m i i 华中科技大学硕士学位论文 = ;= = = = = = = = = = = = = = = = = = = = = = = = = = = :一= 1 1 嵌入式实时操作系统 1绪论 随着多媒体信息技术和互连网的飞速发展,以及消费类电子产品智能化趋势的加 强,嵌入式操作系统以其占用内存少,高性能,和具有可伸缩性,性能稳定的特点得 到越来越广泛的应用。而实时系统在军用系统中更是有实际的应用价值。目前世界上 共有8 0 多家公司致力于开发嵌入式实时操作系统。其应用主要集中在包括工业自动 化,网络通讯,航空,医疗仪器,自动收款机,核监控设备以及消费类电子产品的领 域。 实时系统根据时限要求的严格程度和遗漏一次处理所带来的后果可以分为硬实 时系统和软实时系统。硬实时系统是指系统中所有的截至期限必须被严格的保证,否 则将导致灾难性后果。而软实时系统的截至期限被错过的情况下,只造成性能下降而 不会造成严重后果。按照对外界响应方式的特点又可以分为事件触发系统和时间触发 系统【u l 。事件触发是指,如果外界发生了某个事件,当它被传感器检测到后,就向相 连的c p u 发送一个中断信号,因此,事件触发也叫中断驱动。时间触发是指系统每 隔一个时间值t 就产生一个时钟中断,在时钟中断处理程序中取样检测传感器的状 态,并且作出响应。 实时性和可预测性 3 t 是实时系统最本质,最关键的特征。实时性是指系统对实时 任务的时间约束提供保障。实时任务的实时属性包括任务截止期的粒度和严格度,任 务的松缓度,时间优先顺序限制等等。可预测性是指保证系统在任务执行时间可预测 的情况下运行。例如,在处理一个重要实时任务之前,系统如果要等待一段时间,则 等待时间必须有一个上限,否则难以保证在规定的时限内完成任务的处理。动态的确 定实时任务的可预测性是很困难的,因为系统中存在着不少不可预测的动态因素,例 如任务执行顺序的数据状态依赖性,共享数据与资源的冲突,分页以及i 0 ,新的随 机任务的到达与执行,任务间各种相关性的影响,任务的夭折以及引起的还原与重新 启动,通信延迟等等。所以,为实时应用提供支持并不是一件容易的事情,可以对已 有的非实时操作系统进行改造,建立新的操作系统平台,但是已有的非实时操作系统 华中科技大学硕士学位论文 ;= = = = = = = = = = = = = 目= = = = = 自= = = = = = = = 一:一= 在资源管理方面采用的技术在实时环境中显得很不适用,而且很多系统不能进行彻底 的改造。或者重新建立一个实时操作系统,同时支持实时性和可预测性。 嵌入式实时操作系统h 5 】( e 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 ) 就是传统的嵌 入式软件特征和实时操作系统的结合。在功能上,它能够支持多任务模型下的任务管 理、内存管理、同步通信和中断时钟管理等功能;在系统性能上,它具备了一定的可 预测性、较强的外部响应能力和较高的时间精度;而在体积上,具有体积小、可配置、 能适用于不同的嵌入式环境等特点。 1 2 国内外研究状况 从八十年代起,国际上就开始进行一些商用嵌入式系统和专有实时操作系统的开 发。他们开发嵌入式实时系统已经有二十多年的经验,目前的应用范围也比较广泛, 下面介绍一些著名的嵌入式实时系统。 w i n d o w sc e l 6 是一个简洁的,高效率的多平台操作系统。是从整体上为有限资源 的平台设计的多线程,完整优先级,多任务的操作系统。在技术角度上,它并不算是 一个优秀的实时操作系统,首先它很难实现产品的定制,其次它占用过多的内存,同 时基本内核需要至少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 【7 ,8 】是目前嵌入式系统领域中使用最广泛,市场占有率最高的系统。 v x w o r k s 有如下特点:高性能的实时核心,微内核结构( 最小结构 s i z c o f ( t d ,其中1 i q m ,1 1 1 为系统 中内存等级数 2 v 兄,瓦d i ,如果p d o d t y o f ( l ) 0 ,转步骤2 。 4 返回a d d r 为空。 从上面可以看出,返回的a d d r 有可能是空值,此时如果系统中设置了备用内存 区,则该任务可以从备用内存区空间得到所需的内存。在该任务完成或者天折之后, 需要将内存区归还给备用内存区空间,以保持一定数量的备用内存区可用。 上述这个算法是基于前提条件3 的限制,分配的物理空间必须是连续的,所以没 有考虑置换多个低优先级任务的内存空间,来容纳新任务的情况。实际应用中,可以 放宽这些前提设定来处理更实际的情况。 华中科技大学硕士学位论文 没有哪种算法对于所有系统而言都是最合适的。所谓的最合适算法,只是针对某 一类特定的系统。实践证明,当系统中实时任务的程序映像大小变化不是很巨大时, 算法4 1 的性能比常见的内存置换算法l r u 等的性能都好,比p l r u 的性能也要好。 但是当系统中实时任务的程序映像大小反差巨大时,则算法4 1 的性能略差于p l r u 。 针对于嵌入式实时系统的应用需求来说,嵌入式系统中任务程序映像一般都不会差别 很大,所以,算法4 1 在嵌入式实时系统有着很好的应用前景。这种将优先级与内存 资源分配结合起来的方法,可以更好的响应硬实时任务的内存分配请求,尤其是在硬 实时任务繁忙的情况下,可以更好的完成实时任务的时间限制。 4 5 3 内存分块 段式内存管理可以根据任务对内存的实际需要大小进行分区分配,但这种动态 划分的内存分配策略存在这一个非常严重的问题,碎片问题。根据申请按段分配内存, 容易造成整个内存空间的碎片化。在系统运行一段时间后,会出现这样的情况,虽然 此时总的自由内存总和大于新任务所需内存量,但是没有单个自由内存能够装下新任 务。解决这个问题的一个方法是采用拼接技术。但是拼接技术耗费大量的c p u 时间 和系统资源,并且在拼接进行时,系统必须停止所有的其他任务,以及和外界的交互, 这在实时系统是坚决不允许的。解决碎片问题的另一个技术是将内存分成一系列相等 大小的块,在内存分配和回收时取整按照整数个内存块来分配,这样不会导致整个内 存空间的碎片化,碎片只存在已分配块的内部。这样当这些内存块释放时,这些块内 碎片也即不存在了,整个块又成为一个可用的内存块。现代系统中,符合这种思想的 内存块称为页,页的大小不同的平台不尽相同,典型的i n t e l 平台上,页的大小一般 是4 k 。 在适应管理策略中,内存块按照大小分为不同的等级,一是为了解决整个内存空 间的碎片化,二是为了内存回收的时候合并方便。内存回收一般都会引起递归合并的 问题。在动态内存分配的系统中,内存的递归合并是不可避免的。将内存块按照大小 分等级可以较好的缓解这个问题。内存分块的策略一般可以参考伙伴系统【3 6 3 7 1 ,伙伴 系统是一种将空闲块合并技术融入2 次幂算法的分配方法。它的基本思想是通过不断 地对分大内存块来获得小内存块,并尽可能地合并空闲块,当一个内存块被对分后, 每一部分称为另一个部分的伙伴。如图4 3 所示。 华申科技大学硕士学位论文 圈4 ,3 伙伴系统 在伙伴系统中,系统初始化时,整个内存就是一个内狂块,举例来说,例虫爨图4 3 中,整个内存是2 ”5 大小的页块,系统最小的分配请求是2 ”大,j 、的熨块: 1 分配2 ”3 大小内孬页块:将2 ”5 的页块对分为耀令伙伴l 魏l ,垮l 魉 入2 ”4 大小的窆阕链袭中,然后憋l 分为2 敷2 ,烽2 加入2 ”岵大小靛空阂链表 孛,烙2 返圈申请者。 2 。释放2 m + 3 大小蠹存茭块:将2 m + 3 大小志存夏块热入2 ”犬夺豹空阕链表中, 这瓣注意到2 瞧是空辩黔,劳鼹2 稷薪趣入静空辩癌存页块是耀邻豹,蘧帮将2 和新 热入赘空闲块合并,称为l ,将l 烟入2 “大,j 、静空闺链表率,然后发现1 稳是 空闲静,势置相邻,秀次合并得到裙始静2 ”5 内存块。 这是茯俘系统中内存受面浃分配和释放的蕻鏊行为。伙伴系统的分配与回收有如 下的特点: 1 分配请求必须先被取熬为2 的整次幂内存页竣。这样系统中的碎片都保留 在页块中,随着页块的释放再j f 0 用,碎片也就可以再利用了。 2 对于上例中的请求,对应的空闲镳表起始是空的。在实际的系统中,大多 数情况下不是这样的。如果对成的空羽链表有w 用的内存块,将直接使用分配,只有 当空闲链袭为空时才进行对分。 伙伴系统非常适合于台并空闲块,提供了非常好的灵活性,使内存可以以不同的 尺寸再利用。不过伙伴系统每释放一次内存块,都溪进行可能的合并,当分配与释放 交替进行时,可能剐合并完内存块,马上就又要把宦对分。合并的过程是递归进行的, 在最坏情况下可能导致极蓑的性能。在正常的情况下,内存使用处于平稳状态,正在 使用的内存块数目保持在一定范围之内,在这样的情况下,合并不会带来付么好处, 华中科技大学硕士学位论文 相反却浪费了很多时间,合并仅在突发情况下才是必须的。并且,在突发情况,内存 块的使用模式有很大的临时性的变化。所以,个可能的方法是延缓合并的发生,直 到有必要合并时才尽可能的合并内存块,这样虽然可以减少分配和释放的平均时间, 但是少数几个引起合并的操作会变得非常的慢。我们希望能够既延缓合并,又不等到 非做不可的时候才去做,将合并的代价均匀的分散到所有请求中去,这样才能估算物 理内存分配与释放在最坏情况下的执行时间,使得物理内存的分配与释放是可预测 的。下面介绍在s v r 4 系统中使用的l a z y 合并技术 3 8 , 3 9 。 将内存块的释放分为两个步骤,步骤一:将内存块加入对应的空闲链表中,设置 局部空闲标记,以便其他请求可以再次使用它。步骤二:有必要时将其与其伙伴合并。 在步骤一中,标记内存块为局部空闲( 不能合并) 。在任何时候,系统中一类相同大 小的内存块共有n 个,其中a 个内存块是活动占用的,l 个是局部空闲的,g 个是全 局空闲的( 即可以合并的) 。因此有n = a + l + g 。根据这些参数的不同值,一个内存块 类有三种状态: l a z y 内存块的消耗处于平稳状态,没有必要进行合并 r e c l a i m i n g 内存消耗进入临界状态,需要进行合并 a c c e l e r a t e d 消耗进入不稳定状态,必须更快的进行合并 决定这些状态的关键参数称为s l a c k ,定义为s l a c k = n l g ,当s l a c k 大于等于2 时,内存块类处于l a z y 状态,当s l a c k 等于1 时,内存块类处于r e c l a i m i n g 状态,当 s l a c k 小于等于0 时,内存块类处于a c c e l e r a t e d 状态。 释放一个内存块时,针对上面所述步骤二,如果对应内存块类处于l a z y 状态, 则什么都不做。如果内存块类处于r e c l a i m i n g 状态,则将内存块标记为全局空闲标志。 如果内存块类处于a c c e l e r a t e d 状态,将内存块标记为全局空闲标志,同时合并2 个全 局空闲内存块,将合并后的内存块释放给下一级尺寸的空闲链表,然后在检查新内存 块类的状态,并决定是否继续合并,所有的这些操作都修改s l a c k 值,重新计算该参 数。 文献 3 8 1 中分析了在不同模拟情况下,伙伴系统和l a z y 伙伴系统的性能,其结 果标明,l a z y 伙伴系统的平均性能比基本伙伴系统好1 0 到3 2 。并且l a z y 伙伴系 统将内存递归合并的系统消耗平均的分散到所有请求中去,这样有利于估算内存分配 与释放在最坏情况下的执行时间,使得物理内存的分配与释放是可预测的。 华中科技大学硕士学位论文 4 6 夺结 内存分配与回收管理包括物理走存管理和堆管理薅个方鼷。零章燕先分捞了磺实 时任务不皮该动态使嬲堆分配的原匿。然艨讨论了足秘物理内存分配策略秘矍换繁略 熬佬缺点,分椽了它钓不逡会实孵操佟系统懿原爨,农越綦戳上,绘爨了逶应管理策 略。势且分辑了逶应管理策略对实融瞧静支持。 2 塞 华中科技大学硕士学位论文 ;= = = ;= = = = = = = = ;= = ;= = ;= = 目= = = = = = # = = 一 : 5 基于i n t e l 平台的实时内存管理实现 本章介绍i n t d x 8 6 平台上a r t s - o s 实时内存管理的实现。实时内存管理的实现 和系统实时任务管理的实现是密不可分的。实时内存管理和实时任务管理相辅相成, 互相联系。不同的任务模型实现有不同的内存管理。下面先介绍a r t s o s 的任务模 型,即进程,线程模型。 5 1 a r r s 0 s 的任务模型 实时任务与普通任务的显著区别就是它带有许多内在的时间限制和属性,其中最 典型的就是任务的截止期。实时系统的根本设计目标就是要满足实时任务的时间限制 ( 截止期) 。本节讨论支持实时任务的a r t s o s 任务模型。 图5 1 实时任务模型 为了提高指令的执行效率,实时操作系统的设计者往往选择多线程方式。这样所 有任务就放置在同一个地址空间,任务间没有地址访问的保护。这样的设计方案虽然 能减小系统的运行开销,却在一定程度上牺牲了系统的稳定性。由于对复杂软件系统 的正确性验证十分困难,提供运行时的地址保护能避免许多由于程序设计问题带来的 损失。因此,在a r t s o s 中采用了进程线程模型。进程是任务使用的计算机资源的 容器,它包含任务的地址空间和包括线程在内的各种资源;而线程则对应于任务中的 执行流。在任何一个进程中至少包含一个线程,而任何一个线程只能属于一个进程。 如图5 1 所示,进程的空间是彼此隔离的,同一个进程中的所有线程可以共享访问该 华中科技大学硕士学位论文 描= = 黼罱篇麓= 尝= = 粘= 邕喾穹幽篇皇黼毒皇端皇哉黼= 毒昔葛攀= = 端=: 5 基于i n t e l 平叁的实时内存管理实现 本章会绍i n t e l x 8 6 乎念上a r t s - o s 实时内存管理的实璎。实时虑枣管理戆实现 秘系绞实时任务管理豹实现是密不可分她。实对凑存镑理翔实射程务管理耀辅提成, 巨翘联系。不阕的任务模型实现鸯不鄹戆凑存管理。下瑟先会缓a r t s - o s 躲任务模 型,邳进程钱程模型。, 5 1 a r t s - o s 的任务模型 实时任务与普通任务的显著区别就是宦带有许多内在的时间限制和属性,其中最 典型的就是任务的截止期。实时系统的根本设计耳标就是要满足实时任务盼时间嫩制 ( 截止期) 。本节讨论支持实时任务的a r t s - o s 任务模型。 潮5 1 实辩任务模登 为了提高指令的执行效率,实对搽作系统的设计者往往选择多线程方式。这样所 有任务就放置在弼个逾璇空间,任务阔没有谶垃访闯的保护。这样的设计方案鼓然 能减小系统的运行开销,却在一定程度上牺牲了系统酌稳定瞧。由于对复杂软件系统 的正确性验证十分困难,提供运行时的地址傈护能避免许多由于稳序设计问题带采的 损失。因此,在a r t s o s 中采用了进程,线程模型。送程燕任务使用的计算机资源的 容器,它包含任务的地址空间和包括线程在内的各种资源;而线稷则对应于任务中的 执行流。在任何一个进程中至少包含一个线程,而任何一个线程必能属于一个进程。 如图5 1 所示,进程的空间是彼此隔离的,同一个进程中的所有线程可以共享访问该 华中科技大学硕士学位论文 # # = ;= _ = # 2 = = = 2 = ;= # = = # ;2 一 进程内的联有瓷源,丽不网进程阆煦交互只能通过系统提供的进稳闽邋信方式进行。 此终,a r t s - o s 的线稷是嚏核见灼线程,和其它用户线程库提供鲍线程管理不同, 宅提供了翼正驰进程嚏多执蠢漉。 和赝鸯提镞空闼保护的操嚣系绫橡露,a r t s o s 瓣特权坟态分为糕辩:核心态 秘耀户态。搡髂系统穰关键黪孛凝处理程序运籍予凑孩态,蠢建户经务运学手瓣户态。 逡程,线程模型靛实褒镪括2 个方瑟,一是进程缝程懿管璎,毽攒进髹,线程鳇创 建、蓊| | 除,获取标谈帮父子进稔,线程谂怠,设鬟霸获敬线程铙先缀、对阖片,+ 挂越线 程,重新调度线程等等;舅一个方褥是多避程途缝空闯帮傺护豹实现,帮确保一个进 程不能随意访润另外一个进程翡邃垃空漓。第三节针对i n t e l x 8 6 平台讨论a r t s - o s 中和处理器相关静缝鞋空阉及獒保护同题等静实现。 5 。2 a r t s o s 核肉内存管理结构 内存篱理模块受爨对整个系绕物理内存邀霉管理,包挺瘫存空间的分配魏释放 ( 包括保护投鼹蠹孽维护) ,平台裙必嚣任务缝娥空阕懿蕾璎,逻辑缝鬣与物理缝建之 间鼢映射管理等等。 a r t s o s 的任务模型楚进程,线程模型,对应于进程,绫程模登,a r t s - o s 的内存 模型是基于地址空间保护的保护内存模型。即每个进裰都商自己的私有地址空间,进 程内的多个线程共享所属进程的地址空间,及其其他的资源。进程之间不能直接互相 访润,只熊通过消息、共事穴莓、信号基等等进稳闯邋信机制来同步或者共享信息。 操佟系统核心葶爨遘程处于不同戆处理器优先级。操作系统能访阀遴程救地址空闽,读 取进程的数据,僵是不能执行进程豹各耪执行体。进程不链存教搽佟系统梭心空闷, 不能读取核心数据,戗是酊以通过核心提供的系统服务接日来获取核心提供韵服务。 这种基于地址空间保护的内存模型提高了系统的稳定性,一个进程的执行错误不会影 响到其他进程的执行,也不会损害操作系统核心本身。当然,基于地址空间僳护的内 存模型也增加了系统执行的开销,因为她纰空间的保护使得操作系统提供的服务都必 须以软中叛熬方式来实现,这羧弓l 起了核内核步 上下文切换的拜锬。网时,多进程之 瓣熬协作嚣要逶过进程趣逶信桩铡来实现,簧要遴过游患投判,这样媳增加了系绞鲍 华中科技大学硕士学位论文 = = = = = = = = = = = = # = = = = = = = ;= = = ;= 一= 一 进程内的所有资源,而不同进程间的交互只能通过系统提供的进程间通信方式进行。 此外,a r t s - o s 的线程是内核可见的线程,和其它用户线程库提供的线程管理不同, 它提供了真正的进程内多执行流。 和所有提供空间保护的操作系统相同,a r t s o s 的特权状态分为两种:核心态 和用户态。操作系统和关键的中断处理程序运行于内核态,而用户任务运行于用户态。 进程线程模型的实现包括2 个方面,一是进程线程的管理,包括进程线程的创 建、删除,获取标识和父子进程,线程信息,设置和获取线程优先级、时间片,挂起线 程,重新调度线程等等;另一个方面是多进程地址空间和保护的实现,即确保一个进 程不能随意访问另外一个进程的地址空间。第三节针对i n t e l x 8 6 平台讨论a r t s o s 中和处理器相关的地址空间及其保护问题等的实现。 5 2 a r t s o s 核内内存管理结构 内存管理模块负责对整个系统物理内存进行管理,包括内存空间的分配和释放 ( 包括保护权限的维护) ,平台相关的任务地址空间的管理,逻辑地址与物理地址之 间的映射管理等等。 a r t s o s 的任务模型是进程线程模型,对应于进程线程模型,a r t s o s 的内存 j 模型是基于地址空间保护的保护内存模型。即每个进程都有自己的私有地址空间,进 程内的多个线程共享所属进程的地址空间,及其其他的资源。进程之阆不能直接互相 访问,只能通过消息、共享内存、信号量等等进程间通信机制来同步或者共享信息。 操作系统核心和进程处于不同的处理器优先级。操作系统能访问进程的地址空间,读 取进程的数据,但是不能执行进程的各种执行体。进程不能存取操作系统核心空间, 不能读取核心数据,但是可以通过核心提供的系统服务接口来获取核心提供的服务。 这种基于地址空间保护的内存模型提高了系统的稳定性,一个进程的执行错误不会影 响到其他进程的执行,也不会损害操作系统核心本身。当然,基于地址空间保护的内 存模型也增加了系统执行的开销,因为地址空间的保护使得操作系统提供的服务都必 须以软中断的方式来实现,这就引起了核内核外上下文切换的开销。同时,多进程之 间的协作需要通过进程间通信机制来实现,需要通过消息机制,这样也增加了系统的 华中科技大学硕士学位论文 开销。 和许多微内核在核外实现内存管理的设计不同,a r t s o s 采用了内核线程的方式 在内核中实现了内存管理的功能,这样一方面保持了清晰的结构,另一方面因减少了 核心态和用户态的切换次数,在一定程度上提高了系统的性能。 和微内核消息驱动的结构相适应,内存管理内核线程的主体结构是一个消息接 收和处理的无限循环,它不断接收来自系统其它线程的服务请求,并逐个进行处理, 如图5 2 所示。由于a r t s - o s 的实时消息是支持优先级继承的,因此各种服务请求也 能按照实时优先级关系调度并防止了优先级颠倒的问题。 内存管理内核线程: 1 取消息 2 判断消息类型 3 执行相应的服务 4 o o t 0 1 图5 2 内存管理内核线程的消思循环 内存管理内核线程从a r t s 0 s 系统启动开始就开始运行,直到系统终止运行的 时候才退出,因此它是一个无限循环的过程。整个核内内存管理的结构如图5 3 所示。 进程地址空间保护管理是基于h a t e l x 8 6 平台保护机制【2 4 0 5 0 q 的地址空间管理,管 理不同地址之间的映射。 系统物理内存管理在系统接纳新任务时,分配给必须的内存空间来容纳任务的映 像,当系统中的自由内存不足以装下任务的映像时,则必须将其他任务的一部分内存 释放,以容纳新任务。当任务执行完成退出时,释放任务占用的物理内存。 进程内存区域块是将进程地址空间中相关区域作为一个操作整体,来管理各个 部分的操作和属性的一神机制,以便合理乖j 用进程地址空间。进程内存区域块管理管 理内存区域块的分配、回收、移动和设置保护码等操作。 华中科技大学硕士学位论文 = # = = = = = ;= ;= ;= = = ;= = = ;= ;= = = = = 一= : : 图5 3 核内内存管理结构 5 3i n t e l 平台上的内存保护机制 i n t e l 平台主要支持两类保护类别1 4 0 】:一是通过给每个任务分配不同的虚拟地址空 间,使任务之间完全隔离。每个任务有不同的虚拟 物理地址转换映射。另一类是任 务内的保护机制,保护操作系统存储段及专用的处理器寄存器,使其不能被应用程序 华中科技大学硕士学位论文 访问。 1 特权级保护 特权级保护主要应用于同一个任务内的保护。在一个任务之内,可以定义四种执 行特权级别,用来限制对任务中段进行访问。特权级别用数字3 表示,0 表示最高 特权级,而3 代表最低特权级。在任何时候,运行程序都处在由e f l a g s ( 状态和控 制标志寄存器) 中的两位所指的某个特权级上,称为当前特权级。而对于每个内存 段,处理器也都要求操作系统赋予它一个请求特权级,即规定访问该内存段至少要具 备的运行特权级。这样,通过将处理器的当前运行特权级与试图访问的内存段特权级 进行比较就能判断内存访问是否合法。i n t e l x 8 6 处理器规定处于高特权级的代码可以 访问低于或等于它特权级的内存段;而低特权级则不能访问特权级高于自己的内存 段。如果试图访问不具备权限的数据,则会产生一个异常,向操作系统报告这违反 特权规则的操作。 图5 4 是一种典型的应用,在0 级是操作系统内核、i o 处理、内存管理等关键 操作。在l 级和2 级是其他可选的操作系统服务,例如系统调用、共享库等。用户程 序运行在级别3 上,受到的保护最少。这样,操作系统的内核得以保护而不被其他部 分所访问。 图5 4i n t e l x 8 6 处理器保护环 在a r t s o s 中,使用了i n t e l x 8 6 平台的特权级0 和特权级3 。a r t s - o s 核心位 于0 级特权级,任务进程位于3 级特权级。这样,堰- t s - o s 核心能访问进程的地址空 间,读取进程的数据,但是不能执行进程的各种执行体。而任务进程不能存取舢h 一o s 华中科技大学硕士学位论文 核心空间,不能读取核心数据,但是可以通过核心提供的系统服务接口来获取核心提 供的服务。这样提高了系统的稳定性,一个进程的执行错误不会损害a r t s o s 核心。 2 不同任务之间的保护 保护的一个重要方面,是应用程序之间保护。在i n t e l x 8 6 平台上,通过赋予每个 任务不同的虚拟物理地址转换映射,即段表和页表,把每个任务放置在不同的虚拟 地址空间的办法来实现。每个任务都有自己的段表和页表,对同一虚拟地址的访问, 实际上转换为不同的物理地址。当执行新的任务进行处理器切换时,切换任务的地址 转换表,是任务切换的一个重要部分。下面介绍i n t e l x 8 6 平台的段机制和页机制。 5 3 1段机制 段机制是把虚拟存储器组织成大小可变的容量单位,称为段。段模式使用具有两 个部分的虚拟地址,段部分和偏移部分。段是形成虚拟线性地址转换的基础。在实 模式下,段的参数只包括段的长度和起始地址。在保护模式下,个段有三个参数定 义,它们是: 段的基地址:规定了线性地址空间中段的开始地址。基地址是线性地址对应 于段内偏移量为0 的虚拟地址。 段的界限:表示在虚拟地址中,段内可以使用的最大偏移量,界限定义了段 的大小。 段的属性:表示段的特性,例如是否可读、是否可写、是否可执行等。 段的基址,界限及保护属性,由段的描述符来表示。段描述符,是描述段的属性 的一个8 字节存储单元。段的描述符存储在段的描述符表中。 段描述符可以用来描述用户段,也可以用来描述系统段。用户段主要包括数据段、 代码段和堆栈段。用户段的长度可以从0 - - 4 0 不等。系统段的种类比较多,共1 6 种, 有调用门、任务门、中断门和陷阱门等。调用门主要用于将程序控制转移到一个更高 的特权级,任务门用于切换任务,它只能涉及任务状态段t s s ( t a s ks t a t u ss e g m e n t ) 。 中断门和陷阱门用于中断处理,其中的地址指向中断或者陷阱处理子程序起点,中断 门禁止中断( i f = 0 ) ,而陷阱门不禁止中断。 在没有分页操作时,存取一个存储器操作数,虚拟地址到物理地址的转换过程为: l 。在段选择器中装入1 6 位选择予同时绘出3 2 位地址偏移i 。 华中科技大学硕士学位论文 = = = = = ;= = = 。= = = = = = = ;= = = = 日= = = = = = = = = = = = 一一 2 根据段选择器中酌索甬值、1 l 及r p l 值。再根据对瘦描述捋表寄存器中的 段地址静界限。进行一系确合法性检查( 特权级检查界限检查等) ? 若无异常就 默出柏虚的插述符教入段描述符高速缓冲寄存器中, 3 将描述符中的3 2 位段基址和3 2 位地址偏穆量相加就得翻3 2 位物理地址, 系统中所有的描述符存储在描述符表中。描述符表定义了系统中所有段的情况。 所有的描述符表占据1 个字节数为8 的倍数的存储器空间,空间大小在8 字节( 至少 1 个描述符) 到6 4 k ( 最多8 k 个描述符) 之间。系统中的描述符表主要有以下三种: 全局描述符表g d t ( g l o b a ld e s c r i p t o rt a b l e ) 除了任务门、中断门和陷阱门描述符外,包含着系统中所有任务都可用的描述符。 全局描述符表的第一个8 字节位置没有使用。 中断描述符表i d t ( i n t e r r u p td e s c r i p t o rt a b l e ) 可以包含2 5 6 个描述符,每个描述符为8 字节。i d t 表只能包含任务门、中断门 和陷阱门描述符,虽然它最长也可以为6 4 k ,但只能存取2 k 字节以内的描述符,即 2 5 6 个。因为i n t e l 公司保留了3 2 个中断描述符,所以中断描述符表最少有2 5 6 字节。 这些都是为了和早期机器向前兼容。系统中每个中断在i d t 中都有一项。 局部描述符表l d t ( l o c a ld e s c r i p t o rt a b l e ) 包含了和一个特定任务相关的描述符。每个任务可以有一个自己的l d t ,也可以 没有。 任务状态段t s s ,是一个特殊的固定格式的段,包含任务与之相连的允许嵌套的 任务的所有状态信息。在a r t s - o s 系统中,任务状态段的作用主要是在中断时提供 堆栈切换。中断向量表是系统的关键资源,它记录了所有中断处理服务例程的入口地 址。当中断到达时,系统硬件将自动识别中断向量并转入相应的中断处理程序。由于 这些代码对系统的正常运行至关重要,因此应该保证它们的请求特权级为系统0 级。 而i n t e l x 8 6 处理器的保护机制为了避免由于低特权级任务的堆栈空间不够造成中断处 理失败,或由于共享堆栈造成的低优先级任务对高优先级任务的影响,特别规定当发 生低特权级向高特权级的控制流转换时必须进行堆栈切换。堆栈切换的目标堆栈由系 统数据结构任务状态段中的不同特权级堆栈描述来决定。一个i n t e l x 8 6 的任务状态段 中的字段s s 0 :e s p 0 到s s 2 :e s p 2 分别定义了堆栈切换时特权级0 到2 级的目标堆 栈地址。 华中科技大学硕士学位论文 根据操作系统实现的不同,可以让一个线程对应于一个任务状态段,或一个进程 对应于一个任务状态段。在a r t s o s 的实现中,为了适应嵌入式环境资源有限的特 点,经过特别的设计,整个系统只使用了2 个任务状态段:操作系统核心代码对应一 个任务状态段,所有的用户进程对应一个任务状态段。在用户的任务状态段中将s s o : e s p 0 定义为个位于核心的堆栈保留地址,这样不仅节约了空间,而且还保证了中 断处理的正确执行。 在a r t s - o s 系统中,每个任务进程和a r t s o s 核心各有自己的代码段、数据段 和堆栈段。支持进程的各个段之间,进程之间及进程和操作系统核心之间的保护。系 统有一个全局描述符表,存放a r t s - o s 核心代码段描述符,数据段描述符和堆栈段 描述符,以及其他进程的t s s 描述符。为了精简核心,减少段表的内存占用,a r t s o s 不使用局部描述符表,所有进程的描述符都存储在全局描述符表中。这样既减少了段 表的内存占用,又能够享受段机制带来的硬件保护机制。所有的中断描述符存储在中 断描述符表中。同时,全局描述符表和中断描述符表也作为独立的段进行存取。全局 描述表和中断描述符表由核内内存管理来管理,用户不能够存取。a r t s - o s 的全局描 述符表如表格5 1 所示。 表格5 1a r t s - o s 的全局描述符表 序号内容起始物理地址段长度特权级 0n u l l l 内核代码段 o x 2 0 0 0 0o x l c 0 0 0 0 0 2 内核数据段0 x 2 0 0 0 0 o x l e 0 0 0 00 3全局数据段0 4 g0 4v i d e o 段0 x o b 8 0 0 0 o x o f c o0 5g d t 段0 x 1 0 0 0 o x l 0 0 0 00 6 d t 段0 x 1 0 0 0 0 0 0 x 1 0 0 0 0 7 核心t s s 段 o x l e 0 0 01 0 4 0 8用户t s s 段0 x l d 0 0 0 1 0 40 8 + 2 i进程i 代码段 待定待定 3 9 + 2 i进程i 数据段待定 待定 3 表格5 1 中,所有段的起始地址和长度在系统初始化的时候都是可以配置的,并 华中科技大学项士学位论文 不一定按照表格中的值。表格5 1 中各值是系统中各段的默认值。a r t s o s 的系统核 心占用了物理内存的1 2 8 k 到2 m 之间的空间。g d t 表作为一个内存段来存取,占用 的物理内存从4 k 开始,总长度为6 4 k ,总共可以容纳6 4 1 0 2 4 8 = 8 1 9 2 个段描述符, 和1 6 位描述子能够表示的描述符个数相等。i d t 表也作为一个内存段来存取,占用 物理内存从1 m 开始的4 k 字节。还有用户t s s 段和核心t s s 段,分别占用了1 0 4 字 节。v i d e o 段是基本视频i o 所占用的区域。全局数据段包含了所有可能的物理内存。 系统实现的段机制管理主要包括全局描述符表的初始化,全局描述符的设置与释 放,描述符基址的设景与获取,描述符长度的设置与获取,中断描述符表的初始化, 中断描述符的设置,系统t s s 的设置,t s s 描述符的设置
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 买房付款的合同范本
- 树木订购合同协议范本
- 2026-2031年中国砂轮机行业市场分析及投资前景研究预测报告
- 农业类公务员题库及答案
- 模具制造加工协议书
- 施工环保责任协议书
- 校内店铺租赁合同范本
- 景区演员试题带答案
- 基于校本课程开发的小学生创新能力培养探索与实践
- 基于机组实际运行特性的电力系统动态经济调度研究
- 2025年大学《林学-森林生态学》考试备考题库及答案解析
- 2025年宁夏海阅城市开发集团招聘工作人员笔试考试参考题库及答案解析
- bz-高标准农田建设项目勘察设计技术投标方案210
- 2025年广西专业技术人员继续教育公需科目(三)答案
- 华为H12-611 V1.0 HCIA-openEuler认证备考试题库及答案(高分刷题版)
- 职业道德与法律中职PPT完整全套教学课件
- 2022年包头市中小学教师招聘考试真题
- 娱乐场所安全保卫工作方案
- 数据中心基础设施管理系统DCIM技术方案
- 宾客期望的酒店管理
- GB/T 18033-2007无缝铜水管和铜气管
评论
0/150
提交评论