(计算机应用技术专业论文)微内核进程间通信的优化与实现.pdf_第1页
(计算机应用技术专业论文)微内核进程间通信的优化与实现.pdf_第2页
(计算机应用技术专业论文)微内核进程间通信的优化与实现.pdf_第3页
(计算机应用技术专业论文)微内核进程间通信的优化与实现.pdf_第4页
(计算机应用技术专业论文)微内核进程间通信的优化与实现.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(计算机应用技术专业论文)微内核进程间通信的优化与实现.pdf.pdf 免费下载

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

文档简介

浙江工业大学硕士学位论文 微内核进程间通信的优化与实现 摘要 相对于宏内核操作系统,微内核操作系统将操作系统的内核进行模块化,各模块之间 通过进程间通信互相联系。这种模块化的设计方法带来了很大的灵活性,同时提高了安全 性、稳定性与可靠性。这是操作系统发展的一种趋势。因此微内核技术也逐渐成为了研究 的热点。 当前微内核已发展到第二代,并且仅仅只是一个策略,没有真正的实现标准。影响其 发展的最大因素就是性能低下。而导致性能低下的两个主要原因则是进程间通信的速度过 慢和由此导致的地址空间切换过于频繁。如果能够将微内核性能提高到一定程度,微内核 完全有能力取代宏内核,发挥其高灵活性、高安全性、高稳定性与高可靠性的优势。为了 提高微内核的性能,本文着重对微内核的进程间通信进行研究,在研究的基础上从三个方 面其做出了优化,并设计实现了自己的微内核操作系统m y o s 。本文的主要工作和成 果如下: ( 1 ) 本文对3 个典型微内核操作系统m a t h 、m i n i x3 和l 4 进行了详细的研究。分析了 这三个微内核操作系统的结构,并详细阐述了这三个微内核中的进程间通信。分别总结出 这3 个微内核中进程间通信的优缺点与影响性能的主要因素。 ( 2 ) 在对上述3 个典型微内核研究的基础上,从三个方面分别对进程间通信进行了优 化和改进,这三个方面分别是:对进程调度进行优化,引入快速映射与引入小地址空间。 其中对进程调度进行优化的方法又分为了惰性调度以及直接进程切换两个方面。通过这些 方法,使得微内核中进程间通信的性能有了很大的提高。 ( 3 ) 在对微内核进行研究与对进程间通信优化改进的基础上,本文提出了一个新的微 内核设计方案,并在队3 2 体系结构下设计开发出了自己的微内核操作系统m v o s 。 ( 4 ) 在m y o s 下对进程间通信的性能进行了测试,并与m i n i x3 操作系统进行了对比。 实验证明m y o s 在在保证微内核的高可靠性与高稳定性的基础上,对系统整体性能有了很 大的提高。 浙江工业大学硕士学位论文 下一步工作可以不断完善m y o s 的内核功能与服务器组件,加强系统的安全性、可靠 性与稳定性。 关键词:微内核,进程间通信,消息机制,地址空间 浙江工业大学硕士学位论文 t h ei m p l e m e n t 厶l t i o na n do p t i m i z a t i o no f 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 nt h em i c r o k e r n e l a b s t r a c t c o m p a r e dt ot h em o n o l i t h i ck e r n e lb a s e do p e r a t i n gs y s t e m ,am i c r o - k e r n e lc o n s i s t so fa n u m b e ro fm o d u l e s ,c o n n e c t e db yt h ei n t e r - p r o c e s sc o m m u n i c a t i o n t h i sm u l t i - m o d u l es t r u c t u r e g a i n sa d v a n t a g e s ,l i k ef l e x i b i l i t y , s e c u r i t y , s t a b i l i t ya n dr e l i a b i l i t y i ti sc o n s i d e r e da st h et r e n do f o p e r a t i n gs y s t e md e v e l o p m e n ta n di sah o tt o p i ci nt h er e s e a r c ha r e a t h em i c r o - k e r n e li si nt h es e c o n dg e n e r a t i o n i ti sas t r a t e g ym o r et h a na ni m p l e m e n t a t i o n s t a n d a r d i t sd e v e l o p m e n ti ss l o wd u et oi t sl o wp e r f o r m a n c e t h el o ws p e e do fi n t e r - p r o c e s s c o m m u n i c a t i o nl e a d st oaf r e q u e n te x c h a n g eo fa d d r e s ss p a c e ,w h i c hr e d u c e st h ep e r f o r m a n c e i nt h i st h e s i s ,t h ei n t e r - p r o c e s sc o m m u n i c a t i o no ft h em i c r o - k e r n e li si n v e s t i g a t e d t h r e ea s p e c t s o ft h e m i c r o k e r n e lw e r eo p t i m i z e d an e wm i c r o - k e r n e l ,m y o s ,w a sd e s i g n e d t h em a i n c o n t r i b u t i o n sa r e 1 t h r e ec o m m o n l yu s e dm i c r o - k e r n e l sa r ei n v e s t i g a t e d t h e i rs t r u c t u r e sa r ee x a m i n e d , e s p e c i a l l yt h ei n t e r - p r o c e s sc o m m u n i c a t i o nm e c h a n i s m t h ea d v a n t a g e sa n dd i s a d v a n t a g e sa r e i l l u s t r a t e d t h ek e y a s p e c t s ,w h i c hi n f l u e n c et h ep e r f o r m a n c e ,a r ec o n c l u d e d 2 b a s e do nt h er e s e a r c ho nt h ei n t e r - p r o c e s sc o m m u n i c a t i o n ,t h r e ea s p e c t so fw o r kw e r e d o n eo nt h ei n t e r - p r o c e s sc o m m u n i c a t i o n :o p t i m i z a t i o no ft h es c h e d u l i n ga l g o r i t h m ,i n t r o d u c t i o n o ft h ef a s tm a p p i n ga n di n t r o d u c t i o no fs m a l l e ra d d r e s ss p a c e s t h ea p p r o a c h e sf o rt h e o p t i m i z a t i o no ft h es c h e d u l i n ga l g o r i t h mc o n s i s to fl a z ys c h e d u l i n ga n dd i r e c tc o n t e x ts w i t c h i n g a sar e s u l t ,t h ep e r f o r m a n c eo f i n t e r - p r o c e s sc o m m u n i c a t i o ni m p r o v e sa l o t 3 i nt h i st h e s i s ,an e w w a y o fd e s i g n i n gt h em i c r o - k e r n e li si n t r o d u c e d an e wm i c r o k e r n e l , c a l l e dm y o s ,i sd e v e l o p e du n d e rt h ei a 一3 2a r c h i t e c t u r e 4 t h ep e r f o r m a n c eo f i n t e r - p r o c e s sc o m m u n i c a t i o no fm y o sw a sm e a s u r e da n dc o m p a r e d t ot h ep e r f o r m a n c eo fm i n i x3o p e r a t i n gs y s t e m i tw a ss h o w nt h a tm y o s i m p r o v e dt h es y s t e m p e r f o r m a n c eg r e a t l ya n dk e p tah i 曲s t a b i l i t ya n dh i g hr e l i a b i l i t yi nt h es a m et i m e 浙江工业大学硕士学位论文 t h en e x ts t e pi st om o d i f yt h ek e r n e l sf u n c t i o na n ds e r v e rm o d u l e s ,a n di m p r o v et h e p e r f o r m a n c eo fs e c u r i t y , s t a b i l i t ya n dr e l i a b i l i t yo fm y o s k e yw o r d s :m i c r o - k e r n e l ,i n t e r - p r o c e s sc o m m u n i c a t i o n ,m e s s a g em e c h a n i s m ,a d d r e s s 浙江工业大学 学位论文原创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进行研究工作 所取得的研究成果。除文中已经加以标注引用的内容外,本论文不包含其他个人或 集体已经发表或撰写过的研究成果,也不含为获得浙江工业大学或其它教育机构的 学位证书而使用过的材料。对本文的研究作出重要贡献的个人和集体,均己在文中 以明确方式标明。本人承担本声明的法律责任。 储魏弘牡隰碌朋,7 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留 并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本 人授权浙江工业大学可以将本学位论文的全部或部分内容编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 本学位论文属于 l 、保密口,在年解密后适用本授权书。 , 2 、不保密讲 ( 请在以上相应方框内打“”) 作者签名: 导师签名: 日期:纠罗i z ,月廖日 日期:b 书年二月i8 日 浙江工业大学硕士学位论文 1 1 问题的背景 第1 章绪论 大部分通用操作系统都是基于宏内核的设计思想实现的 1 1 ,例女n u n i x ,l i n u x 等。随着 计算机的发展,操作系统逐渐的变成一个巨大且复杂的系统。 宏内核几乎包括了整个操作系统,并且工作在同一地址空间的最高特权级下,内核内 部包括不同的模块,不同的模块之间又互相联系,一旦一个模块出现问题便会影响到整个 系统而导致系统崩测2 1 。错误分布研究【3 】【4 】 5 】表明每1 0 0 0 行可执行代码包含6 1 6 个b u g , 对于有百万行代码的宏内核来说这其中的错误便不可小觑。例如对于有2 5 0 万行的l i n u x 代码来说至少有2 5 0 0 0 个错误,而w i n d o w s 至少是它的两倍。 还有一个相关问题便是第三方代码,例如设备驱动程序。l i n u x 中第三方代码超过了 7 0 【6 j 。在宏内核的设计中它是内核的重要组成部分,驱动的代码可以占操作系统的7 0 , 而它的出错率却是普通内核代码的3 到7 倍,可以说大部分的系统崩溃都是直接或间接地 由驱动造成的,例如在w i n d o w sx p 中有8 5 的系统崩溃就是由驱动造成的【刀。 基于宏内核的操作系统存在如此多的问题,因此微内核的思想被提出。微内核可以追 溯到2 0 世纪7 0 年代【8 1 ,n u c l e u s 系统【9 】是第一个以微内核思想设计的操作系统。微内核的基 本定义是:操作系统的大部分组件都运行为单独的进程,而且多数在内核之外。它们之间 通过消息传递来通信,内核的任务是处理消息传递,中断处理以及底层的进程管理。 然而,基于微内核的操作系统在发展中也存在很大的问题,8 0 年代末至l j 9 0 年代初表现 在性能很差,不能被真正的应用,这也一度让学术界失去了兴趣【1 0 】。但在9 0 年代中期, l i e d t k e 教授证明了微内核操作系统性能表现差的主要原因是由于微内核操作系统使用进 程来隔离系统组件,使得运行需要依靠调用在不同地址空间的系统服务,因此进程间通信 就变得非常重要,而进程间通信是非常耗时的,这是造成微内核性能较差的主要原因之一。 并且l i e d t k e 教授还证明了基于微内核操作系统的性能是可以得到改进的【l l 】。这使得近几年 来研究微内核的人逐渐增多,微内核操作系统的实现也开始增多,并且逐渐开始运用在了 实际应用中。 一1一 新江工业大学硕士学位论文 圈曰田园曰田圈曰曰 幽1 - 】微内核与宏内核操作系统的对比 l 2研究现状和存在的问题 12 1现存的微内核操作系统 经历t 2 0 年左右的研究和发展,很多大学和组织在微内核思想的基础上编写了自己的 微内核与微内核操作系统,并分别对微内核操作系统进行了优化和改进。现对一些典型微 内核及微内核操作系统分析如下: 1 9 8 5 年,卡内基梅隆大学开始研发m a c h i “i 。蚬在m a c h 被用于g n u h u r d t m a c o s x 。 并且还有许多商业化的m a c h 项目,例如o s f 1 h n e x t s t e p 都是基于m a c h 微内核开发的。 m a c h 属于第一代微内核操作系统,在性能表现上较差。主要原因是它的早期版本是由 b s d u n i x 宏内桉改造而来,因此可以| 兑并不是一个微内核思想的良好实现。在进程日通信 方面,微内核先将发送进程中的消息从发送进程的地址空闻拷贝到内核缓冲中,然后执行 发送进程与接收进程之间的地址空刈切换,最后将数据缓冲区的消息从内核拷贝到接收进 程的地址空曰去。这种通过两次拷贝吏现消息传递的方式大大影响了内核的性能,也是 m a c h 性能较差的主要原因。对进程问通信的改进上,m a c h 微内梭首次提出了合成消息的 策略,在一定程度上x , t l p c 进行了优化。但因为其性能表现实在不尽如人意,因此没计 者将撒多服务器进程重新移回到内核内部运行,o l i a f s 缓存管理和所有的驱动程序等。运 种方法破坏了微内核的设计初衷,撒内核所带米的高可靠性和高稳定性被大打折扣。因为 m a c h 是第代微内核的典型实现,因此本文将对m a c h 做- - 定的研究。 1 9 9 6 年,i b mw a t s o n 研究中一i l , 的 o c h e nl i e d t k e 在第一代微内核l 3 _ f “的基础上设计7 : 浙江工业大学硕士学位论文 发了第二代微内核:l 4 。目前l 4 已经变成微内核的设计标准之一,围绕这个标准,有很多 的l 4 的实现。这些实现被统称为l 4 家族。虽然l 4 是开源软件,但由于l 4 的原始版本已经不 可申请获得,因此很难通过l 4 的初始源代码来对l 4 的进程间通信进行评价。我们通过l 4 的其他实现f i a s c o 与l i e d t k e 的所写的大量文档对l 4 进行研究。在进程间通信上,原先的l 3 微内核的实现与m a c h 基本相似,同样是通过在内核中开辟缓冲区两次复制消息传递。因此, l i e d t k e 在此基础上首次提出了通过一次拷贝进行消息传递的思想,即通过临时映射直接传 递【l 。这种思想使得每次消息传递,内核只需要将消息复制一次,相比以前的两次复制, 效率得到了很大的提升。本文主要在理解j o c h e nl i e d t k e 的设计思想与实现手段的基础上, 并对自己的系统加以改进。 荷兰v r i j e 大学计算机科学系的a n d r e ws t a n e n b a u m 教授开发出的m i n i x 最初用在了 教学上,2 0 0 4 年t a n e n b a u m 与他的学生重新设计m i n i x l 勾核,推出j m i n i x3 1 2 1 6 】。该系统属 于第二代微内核。m i n i x3 对微内核操作系统的贡献在于设计实现了一个稳定,自修复的第 二代微内核操作系统f 1 7 】f l s 】。主要由2 个特殊的服务器实现:再生服务器和数据存储服务器。 但由于m i n i x 的设计目标定位于教学用的操作系统,目标是使代码尽量减少,且在存储管理 部分,编写者为了提高效率,实现简单,仅仅使用了分段机制而没有实现分页机制。这种 设计手段与单一地址空间非常相似,但因为队3 2 体系结构是3 2 位硬件结构,因此并不能给 m i n i x3 系统带来单一地址空间所拥有的优势。m i n i x3 的进程间通信采用了基于固定消息, 聚合通信的方式。由于采用的是分段存储管理,微内核被编译到了物理内存最低端,并对 全部物理内存空间可见。当发生进程间通信时,微内核将发送进程地址空间的消息复制到 接受进程的地址空间相应位置中。m i n i x3 也是本文的主要参考系统之一。 加拿大的q n x 公司设计开发的q n x 也是一个微内核实时操作系统【i9 1 ,其核心仅提供 4 种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间 运行。所有其它o s 服务,都实现为协作的用户进程,因此q n x 核心非常小巧,而且运行速 度极快。在进程间通信上,q n x 的微内核n e u t r i n o 也采用了合成消息的策略,并初步提出 了直接进程切换的思想。 e x o k e m e l f l j 麻省理工学院m i t 在1 9 9 4 9 5 年开发,是一个小巧的微内核,核心观点是: 只要内核还提供对系统资源的抽象,就不能实现性能的最大优化,内核应该支持一个最小 的、高度优化的原语集,而不是提供对系统资源的抽象【2 0 】。e x o k e m e l 也被称作外核,而外 核的目标就是让应用程序直接请求一块特定的物理空间,一块特定的磁盘块等等。系统本 身只保证被请求的资源当前是空闲的,应用程序就允许直接访问它。既然外核系统只提供 浙江工业大学硕士学位论文 了比较低级的硬件操作,而没有像其他系统样提供高级的硬件抽象,那么就需要增加额 外的运行库支持。这些运行库运行在外核之上,给用户程序提供了完整的功能,这就是 l i b o s 。e x o k e r n e l 为实现微内核和l i b o s 的资源管理和保护提供了一套完整的原则和方法。 因此,他可以用来解决微内核在资源管理e 存在的问题,提高微内核操作系统在面对嵌八 式应用的多样性时的灵活性。但是就目前来说,外核的设计还停留在研究阶段,没有任何 一个商业系统采用了这种设计。e x o k e m e l 有3 种进程间通信手段:管道,共享内存和长r p c 方式,究其本质,仍然是依靠消息传递。 上述典型的微内核操作系统的结构与实现都很不相同,这是因为微内核的初衷只是要 达到一个精简的内核,并没有给出一个标准。它设计的一个目标就是内核只提供对操作系 统提供绝对必要的功能,而把其它属于传统操作系统内核部分的功能留给用户态的进程来 宾现。 12 2微内核操作系统的应用 虽然微内核在性能表现上比较差,但是由于微内核所带来的灵活性,高可靠性、高安 全性与高稳定性的巨大优势,使得微内核操作系统还是占据了一定的市场。微内核操作系 统的应用主要分成3 种结构。 篓酱国 ”奄勰慵8 * * m 幕于特定操作系统 的单服务器应崩 目l 七徽内核的不同赢用 ( 1 ) 基于特定操作系统的单服务器应用:在这种结构中,微内核作为其他操作系统的 载体,使得其他老内核操作系统运行在用户态跑在它上面。通过这种方式适当的提高操作 系统的安全性与可靠性。l 4 l i n u x 是这种应用结构的典型。 浙江工业大学硕士学位论文 ( 2 ) 多服务器应用:在这种结构中,执行操作系统功能的服务作为服务器跑在微内核 之上,这也是普遍意义下的一种方式,这种方式更加适合于分布式的系统。例如g i h u r d 便是跑在i a 之上。 ( 3 ) 嵌入式及实时系统的应用:在这种结构中,微内核被应用在嵌入式的系统上,他 自身固有的特性使得微内核能够很好的适应这种结构,非常便于在不同的嵌入式平台上移 植,裁减以及扩展。例如q n x ,v x w o r k s 等嵌入式操作系统。 可见,如果能够对微内核性能有所改善,那微内核的应用前景将会更广泛,更能够发 挥其高灵活性、高安全性、高稳定性与高可靠性的巨大优势, 1 2 3 存在的问题 微内核自从7 0 年代被提出以来,并没有一个真正的设计标准来说明微内核中提供哪些 功能和哪些抽象集合。因此学者们在微内核结构方面做了很多研究,也不断地试验,将不 同的系统模块移出内核,以期望达到一个最佳的状态。但总体来讲,微内核中所存在的抽 象还是过多。因此9 0 年代,l i e d t k e 教授提出了微内核中必须实现4 个机制:线程模型,进( 线) 程间通信,进( 线) 程调度,地址空间的抽象。本课题基于l i e d t k e 教授的提议,对最小化内 核的性能进行研究。 在微内核的性能方面,学者们发现影响性能的地方主要在于进程间通信的速度过慢和 由此导致的地址空间切换过于频繁,所以试图提高进程间通信速度以达到改进微内核性 能。对微内核操作系统性能的研究中,l i e d t k e 教授做出了巨大的贡献,他对微内核进行了 详细的研究,提出了几个微内核中存在的问题: 微内核提供的功能集合不合理,导致微内核太臃肿,代码量太大。微内核必须尽量 小,将所有非必须的服务组件移出内核,内核只提供必须的服务2 1 1 。 在进程间通信中,论述通过修改调度算法可以适当的提高进程间通信的效率【2 2 】。 提出了微内核中进程间通信通过两次消息复制的方法太费时,并将其改进为通过一 次消息复制完成进程间通信 】。 进程间通信的消息传递机制的安全性也应该得到改进【2 3 】。 提出了可以引入多地址空间的方法对进程间通信进行适当的改进刚。 同时,h e i s e r 教授【2 5 】【2 6 】及v o c h t e l o o 【2 7 】,e l p h i n s t o n e 2 8 1 ,w i l k i n s o n 2 9 】等提出了一种通过 单一地址空间的方式改进微内核操作系统的性能,并对单一地址空间的安全性进行了改 进。但是这种单一地址空间的方式只适用于6 4 位c p u ,并不适合于队3 2 体系结构。 浙江工业大学硕+ 学位论文 综合上述问题,本人认为在结构方面影响微内核操作系统性能的因素有以下几个方面 【1 3 】【3 0 】 3 l 】: ( 1 ) 微内核操作系统的结构受到宏内核操作系统的影响。并不是真正按照微内核思想 来实现的。必须真正按照微核心思想,对操作系统的结构进行全新设计。 ( 2 ) 微内核中提供的功能集合不合理。在微核心操作系统中,包含在内核中的功能集 合是否合理对系统性能影响较大。 ( 3 ) 系统中提供的抽象集合以及抽象的结构不合理。微内核中究竟应该提供哪些抽 象,目前还没有一个为大多数研究者所公认的集合。但为了使微内核操作系统结构合理, 性能优化,不应将系统中所有的抽象都封装于内核之中,而应使内核与核外服务进程以及 应用程序相互配合。 ( 4 ) 不合理的结构和功能分配导致频繁发生硬件状态切换。在结构不合理的微内核操 作系统中,机器硬件会在内核态和用户态之间进行频繁切换。设计良好的微内核结构可以 有效降低机器状态切换频率。 ( 5 ) 进程间通信的效率过低,微内核的结构导致了进程间通信的频率非常高,因此从 很大程度上讲,进程间通信的效率决定了微内核的效率,必须对进程间通信进行优化改进。 ( 6 ) 进程间通信会引起频繁发生上下文切换以及地址空间转换。大量进行上下文切换 和地址空间转换会造成严重的系统额外开销,这是影响系统性能的一个重要因素。 本课题将对进程间通信与地址空间切换的问题进行研究,优化微内核的进程间通信, 提高微内核的性能。 1 3本文研究的主要内容 在微内核中,困扰性能的两大因素主要是微内核结构所带来的大量进程间通信的消耗 以及由此带来的进程间切换的消耗。因此提高微内核性能的首要途径是对微内核中进程间 通信进行优化。本课题旨在研究微内核中进程间通信的改进与优化,并用真正的微内核思 想实现一个微内核操作系统。主要研究内容如下: ( 1 ) 对第一代微内核m a e h 与第二代微内核m i n i x3 ,i a 三个微内核操作系统进行了 详细的研究。工欲善其事,必先利其器,必须对一些典型微内核进程间通信进行研究,了 解前人的实现手段与影响性能的原因,才能进行优化、设计实现自己的微内核。在对这三 个典型微内核操作系统研究主要通过大量的论文文献了解各微内核的设计思想与操作系 统结构,然后详细阅读源代码对这些微内核进行深入了解,了解微内核的实现方法,尤其 一6 一 浙江工业大学硕士学位论文 在其进程调度机制,消息传递机制,设备驱动与底层的i o 操作这几方面。最后通过文献 与测评对其中进程间通信的性能进行评价,总结出各种实现的优点与缺点。 , ( 2 ) 对进程间通信进行优化。微内核的结构导致了频繁的进程间通信。通过更改微内 核结构,例如将涉及大量进程间通信的服务器进程重新放回内核中这种方法虽然能够有效 的减少进程间通信,但这种方法违背了微内核的设计思想,同时增加了系统的不稳定性。 因此本课题将主要研究内容放在如何减少进程间通信的消耗上,而并非减少进程间通信的 频率上。本课题主要在三个方面对进程间通信进行了优化:对进程调度进行优化、引入快 速映射方法以及引入小地址空间的方法。其中对进程调度进行优化的方法又分为了惰性调 度以及直接进程切换两个方面。 ( 3 ) 在这种优化的基础上,提出了一个新的微内核设计方案,并在认3 2 体系结构下 设计开发出了自己的微内核操作系统m y o s 。m y o s 的微内核设计参考了m i n i x3 与 l 4 这两个微内核操作系统的结构和一些设计细节,并在m y o s 的微内核中实现了所有对 进程间通信优化的所有内容。 ( 4 ) 最后,对自己的微内核做测试,在进程间通信的性能上与m i n i x3 操作系统做了 比较。实验证明m y o s 在在保证微内核的高可靠性与高稳定性的基础上,对系统整体性 能有了很大的提高。 1 4作者所做的工作 作者所做的主要工作包括: ( 1 ) 深入研究了宏内核操作系统与微内核操作系统的进程间通信。阅读了l i n u x0 1 l , m i n i x3 的源代码与l 4 、m a t h 涉及进程间通信的源代码。 ( 2 ) 总结分析了m i n i x3 ,i a ,m a c h 三个微内核中影响进程间通信效率的主要原因。 ( 3 ) 对认3 2 体系结构进行了深入研究。为了设计性能良好的微内核,必须非常了解 微内核所在的硬件系统。 ( 4 ) 详细研究了微内核的地址空间,以及地址空间切换。 ( 5 ) 从三个不同的角度对其中的进程间通信进行了优化、改进。 ( 6 ) 合作实现了一个自己的微内核操作系统m y o s 。 ( 7 ) 开发了测试程序,对本微内核的进程间通信进行了测试。 浙江工业大学硕十学位论文 1 5论文章节安排 以上述研究及实践为基础,作者撰写了本文。本文的主要结构如下: 第一章,简单介绍了微内核操作系统产生的历史背景,列举分析了几个比较典型的微 内核操作系统。并分析了微内核及其进程间通信存在的问题与需要做的优化。最后概括了 本文主要的内容和作者所作的工作。 第二章,首先详细阐述了微内核的思想。然后介绍了本文所需要的相关技术点。操作 系统涉及了大量的技术知识,本章对微内核以及微内核中进程间通信必须涉及的几个技术 难点进行了说明。 第三章,本章详细对微内核中进程间通信进行了研究。包括对早期第一代微内核m a c h 做了分析,并详细介绍了第二代微内核操作系统的2 个典型代表:m i n i x3 和l 4 。最后总 结概括了这些内核进程间通信的优缺点。 第四章,本章在进程间通信上对原有微内核做了一定的优化与改进。分别从三个方面 对进程间通信进行了优化:对进程调度进行优化、引入快速映射的方法以及引入小地址空 间的方法。其中对进程调度进行优化的方法又分为惰性调度以及直接进程切换两个方面。 第五章,简单介绍了m y o s 操作系统。对m y o s 微内核的进程间通信进行t n 试, 并将m y o s 操作系统的微内核与m i n i x3 的进程间通信做了比较。最后对m y o s 微内核 的进程间通信做了一定的评价。 第六章,对本文工作进行了总结并对未来需做的工作做了一些展望。 浙江工业大学硕士学位论文 第2 章相关技术背景 虽然微内核思想的提出比较早,但至今用于实际应用的并不是很多。其实质仅仅是一 个设计的思想,并没有真正的实现标准,因此有必要对微内核这个思想进行详细的剖析。 而相对于宏内核来说,微内核用地址空间将操作系统的各个服务组件与驱动程序相隔开, 因此在微内核最重要且复杂的概念之一就是地址空间,而地址空间涉及了大量的存储技 术,因此必须深刻的理解段页式存储,才能真正设计实现性能高的微内核。本章详细研究 并介绍了微内核的概况与段页式存储。 2 1 微内核概况 从体系结构的角度出发,可以将操作系统大致地分为宏内核操作系统和微内核操作系 统。微内核操作系统与宏内核操作系统结构比较如图2 1 所示。微内核中只保留最为核心 的一部分功能,其余部分被划分成一个个独立的子系统,并且被从内核中剥离出来,以服 务器的方式实现在内核以外。 u s e r s j a p p l i c a t i o n ,一。 0 , i p c ,f il es y s t e m s c h e d u e ,m m d r i v e r ,i n t e r r u p t h a r d w a r e u s e r m o d e k e r n e l m o d e f i l eu s 盯 d r i v e rm m s y s t e ma p p l i e a t i o n s c h e d u l e ,i p c ,i n t e r r u p t h a r d w a r e 图2 1微内核操作系统与宏内核操作系统结构比较 以l 4 的作者j o c h e nl i e d t k e 的话来描述:am i c r o k e m e ld o e sn or e a lw o r k 。即 一9 一 i p c 浙江工业大学硕十学位论文 微内核只提供内核所不可避免的机制 并不对微内核中的内容进行强制限定 通过这种设计上的改变微内核操作系统获得了比传统的宏内核操作系统更大的灵活 性,因此目前微内核操作系统已经成为了现代操作系统研究的主流与趋势【3 2 1 。 微内核的理论依据是:操作系统的设计与实现是非常复杂的,所以需要通过模块化对 其进行分解从而减小复杂性。微内核方法的原则就是让内核成为核心的核心,绝不把不必 要的东西放到内核中去。归纳而言,微内核操作系统具有以下优势: 一、策略与机制相分离 所谓机制【3 3 】是指底层提供何种功能,而策略则是指如何来使用这种功能,显然这两 者有着本质上的区别。在软件设计时显式地将机制与策略划分开,并且用不同的模块分别 处理这两者是构造良好软件的一个重要因素【3 4 1 。通过把策略从机制中分离出来以后,即 使后期策略发生了重大变化,软件系统整体的修改也不会很大。 在操作系统中,机制是由底层硬件提供的,而策略则是在软件层面做出的决定,它往 往是与具体应用个案相关的。在不同的应用领域中,软件设计人员常常会根据具体的应用 需求采取不同的策略。 传统的宏内核操作系统中,内核涵盖了物理硬件之上系统调用之下的一切,包括处理 机调度、内存管理、设备驱动以及文件系统管理等所有服务,不但实现了策略而且还同时 实现了机制。在这种架构下策略与机制被紧密地结合在了一起,所有运行在操作系统上的 应用程序都被内核中的策略所支配着,内核完全没有办法根据应用程序的需求来改变相应 的策略,也就是说内核是个“盲目”的内核。 与宏内核不同,微内核只专注于提供一些最基本的机制,并且使得底层硬件操作对上 层的应用保持透明,各种不同的策略则由不同的服务器来实现,或者说是将关于行为的选 择决定挪到了应用层。由于实现了策略与机制的相分离,在一个微内核操作系统中不同策 略的同类服务器甚至可以同时存在。 微内核操作系统中,微内核部分是相对固定不变的,而核外服务器则是易变部分。采 用这种软件架构模式的软件系统提高了系统的灵活性,系统可以很方便地适应不断变化着 的新需求。另外,微内核除了提供一些核心服务以外不绑定到任何应用,所以内核应该是 最小化的。 二、高度的模块化 微内核操作系统的第二个特征是高度的模块化。传统的宏内核操作系统中所有的系统 浙江工业大学硕士学位论文 服务都被塞到了内核中,而在微内核结构的操作系统中,内核、各个服务器以及用户程序 都被设计成了独立的模块,并且各个模块之间通过定义好的接口以客户机服务器的方式 进行通讯。这种高度的模块化带来了以下三个优势: ( 1 ) 高度模块化的第一个优势是可扩展性。这里的可扩展性指的是动态可扩展性,即 在不对内核本身做任何修改和编译的前提下为操作系统增加新的服务与功能。微内核操作 系统中各个服务器可以像搭积木一样地被“安装”到微内核上面,并通过进程间通信的消 息传递与其他模块进行通讯。由于各个服务器与内核一样被独立地编译成二进制可执行代 码,因此添加、替换这些服务器不会对微内核的核心功能有任何影响。 ( 2 ) 可配置性是模块化的第二个优势。微内核操作系统可以很容易地根据各种不同应 用需求进行配置,使得用户可以按具体情况定制所需的操作系统。宏内核操作系统l i n u x 的虽然也具备了类似的特征,但本质上这两者是不同的。l i n u x 在针对某一特定应用进行 配置并编译产生一个新内核以后,各个模块和组件仍然运行在内核中,当应用需求发生变 化时仍然需要重新编译内核。而在微内核操作系统中因为各个模块己经被搬到核外以服务 器的形式存在,所以可以很容易地解决这一问题。 ( 3 ) 微内核操作系统在健壮性方面也要比宏内核操作系统强。传统的宏内核操作系统 结构越来越复杂,代码量也越来越大,伴随而来的就是可维护性变得越来越差,出错也越 来越多。 三、迈向分布式计算与移动计算的关键 随着计算机软硬件技术的发展,分布式计算与移动计算已经成为现代计算机的两个重 要发展方向。微内核技术在这两个领域也大有用武之地。 一个理想的分布式操作系统应该是一个运行在松耦合硬件环境下的紧耦合软件。这个 系统的目标是要给用户这样一个印象,即整个异构的松耦合硬件系统是一个分时系统,而 不是一些互不相同的机器的集合。将微内核用于分布式操作系统可以说再恰当不过了。使 用微内核技术的分布式操作系统中,硬件的异构性被隐藏了,每个节点上系统代码的规模 也被极大地缩小了,因而操作系统显得更加轻巧。分布式环境下,在每个节点上只需要运 行内核以及必要的服务器进程,其中每个服务都有一组定义良好的接口并且对所有的授权 客户进程来说都是可以访问的,而且客户进程无须关心物理上该服务器在哪里。大量的操 作系统服务可以从用户级服务器上获得,而内核中只需要提供那些如果在其他地方提供它 们很困难或者代价很昂贵的服务。因此m i n i x3 的作者t a n e n b a u m 指出:微内核系统将逐 渐主宰分布式系统设计,宏内核将最终消失或融入微内核中【3 2 】。 浙江丁业大学硕士学位论文 微内核操作系统在移动计算方面也有着不可替代优势。对于后p c 时代和计算时代而 言,嵌入式系统将无处不在,而嵌入式操作系统则是其中的软件核心技术。对于嵌入式系 统来说,由于在系统资源上受到的限制,使得它对内核的规模提出了较高的要求。因为微 内核设计精巧、扩展灵活、内存占用少,所以现在很多流行的嵌入式操作系统都采用了微 内核的设计方法。其中最为著名的就是加拿大q n xs o f t w a r es y s t e m 公司的产品q n x 。 目前,采用微内核技术实现新一代操作系统己经成为了学术界与产业界的一个共识 【3 0 1 ,但是微内核操作系统也存在着一些有待改进的地方,其中最为主要的就是效率低下 的问题。由于微内核操作系统采用了客户机服务器模型,客户访问服务器提供的服务是 通过消息传递的方式来实现的,而消息传递引入了大量进出内核的过程,因而导致了频繁 的进程切换和消息数据的拷贝,这些都带来了很大的额外开销【3 4 1 ,从而影响了系统的性 能。可以看出,在微内核操作系统中,微内核能否提供一种高效率的不同地址空间之间的 通信机制,直接关系到微内核操作系统本身的性能与效率。当前,这个问题仍然是该领域 学术界的研究热点【3 0 】【3 5 1 。 2 2段页式存储介绍 2 2 1段页式存储 内存分段系统中,一个程序的逻辑地址是通过分段机制自动地映射到中间层的线性地 址空间中。程序每次对内存的引用都是对内存段中内存的引用。当程序引用一个内存地址 时,通过把相应的段基址加到逻辑地址上就形成了一个对应的线性地址。此时若没有启用 分页机制,则该线性地址就被送到c p u 的外部地址总线上,用于直接寻址对应的物理地 址。 若采用了分页机制,则此时线性地址只是一个中间结果,通过分页机制进行变换,最 终在映射到实际物理内存上。与分段机制类似,分页机制允许我们重定向每次内存引用, 以适应特殊要求。使用分页机制最普遍的场合是当系统内存实际上被分成许多凌乱的快 时,可以建立一个大而连续的内存空间映像。分页机制增强了分段机制的性能。另外,页 地址变换建立在段变换基础之上,任何分页机制的保护措施并不会取代段变换的保护措施 而只是进行更进一步的检查操作。 控制寄存器c r 3 保存着当前页目录表在屋里内存中的基地址。3 2 位的线性地址被分 成三个部分,分别用来在页目录表和页表中定位对应的页目录项和页表项以及在对应的物 浙江工业大学硕十学位论文 理内存页面中指定页面内的偏移位置。因为一个页表可有1 0 2 4 项,因此一个页表最多可 以映射1 0 2 4 x 4 k b - - 4 m b 内存;又因为一个页目录表最多有1 0 2 4 项,对应1 0 2 4 个二级页 表,因此一个页目录表最多可以映射1 0 2 4 x 4 m b = 4 g b 容量的内存。即一个页目录表就可 以映射整个线性地址空间范围。 2 2 2t l b 介绍 p h y s i c a ls p a c e p h y s i c a la d d r e s s 图2 - 2i a 3 2 下段页存储示意图 由于页表是存放在内存中的,c p u 每次读取一个数据都要访问3 次内存,耗费大量时间, 为解决这个问题,硬件设计者引入了t l b ( t r a n s l a t i o nl o o k a s i d eb u f f e r ) 来保存部分地址 映射的集合。t l b 是一种硬件缓存,存储了页表中的实体,也即物理页面与虚拟页面的映 射关系,是真正页表的一部分备份。 在开启了虚拟存储的情况下,m m u 会首先查找t l b 中虚拟页面与物理页面的映射关 一1 3 一 浙江工业大学硕士学位论文 系,如果找到了,m m u 会验证一系列合法性,然后直接读取该页所对应的物理块页面。 如果在t l b 中未找到有效的映射,就意味着一次t l b 未命中,需要重新访问内存中的页表, 并重新放入t l b 中,这个过程被称为t l b 刷新。如果t l b 无法被刷新,则是因为页表中并 没有包含有效的映射,那么一次页面异常就发生了。页面异常由操作系统来处理。 m m u 查找t l b 只需几个c p u 周期,查找主存却要花费几十甚至几百个c p u 周期, 因此,t l b 的性能就直接影响了c p u 的执行效率,也直接影响了内核的性能。 从结构上t l b 又可以分) b t a g g e d t l b 和u n t a g g e d t l b ,t a g g e d - t l

温馨提示

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

最新文档

评论

0/150

提交评论