




已阅读5页,还剩52页未读, 继续免费阅读
(计算机应用技术专业论文)基于微内核的地址空间架构的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江工业大学硕士学位论文 基于微内核的地址空间架构的研究 摘要 微内核技术与传统的宏内核相比,微内核将操作系统服务及驱动移出内核的模块化设 计大大提高了操作系统的可靠性,安全性,可扩展性和移植性,体现出操作系统发展的一 种趋势,因此,微内核技术也逐渐成了研究的热点,在未来操作系统的发展中将发挥着巨 大的作用。 目前,微内核还没有形成一个标准,基本上还处在策略研究层面上。影响其发展的最 大因素就是性能低下,而最大影响性能的地方在于频繁的地址空间切换和在此基础之上的 进程间通信的速度过慢。本文在分析研究了现有微内核优缺点的情况下,主要在优化微内 核的地址空间架构的基础上,来改进进程间通信和地址空间切换的效率,并研究设计了自 己的微内核- m y o s 。 本文的主要研究内容包括: ( 1 ) 研究了现有的微内核结构,真正从微内核的角度去思考问题,研究并设计了一种新 的微内核结构,并在此基础之上对部分性能做了测试。 ( 2 ) 研究了现有微内核进程间通信的性能,采用临时映射拷贝的方法对进程间通信的主 要手段消息传递做出了改进。 ( 3 ) 研究并实现了微内核的内存管理服务:微内核内部的地址空间管理和微内核外的内 存管理服务。并针对微内核的结构设计,通过引入小地址空间概念,对地址空间的设计做 出了改进。 在系统测试中,m y o s 表现出了良好的性能,但距离操作系统的实际应用尚有距离。 在以后的工作中我们将不断改进系统设计及其功能,完善系统的安全性和稳定性。 关键字:微内核,进程间通信,消息传递,地址空间,m y o s 浙江工业大学硕士学位论文 a nr e s e a r c ho fm i c r o k e r n e l b a s e d s t r u c t u r eo fa d d r e s ss p a c e a b s t r a c t m i c r 0 - k e m e lc o m p a r e dw i t ht h et r a d i t i o n a lc o r eo ft h em a c r 0 ,t l l ec o r e r v i c e sw i l lb e d r i v e no u to fm i c r 0 一k e m e lo p e r a t i n gs y s t e m 鲫dt h em o d u l a rd e s i g l lo ft 1 1 e0 p e r a t i n gs y s t e mh 硒 g r c a t l ye n h a n c e dt t l er e l i a b i l i 吼s e c u r i 吼s c a l a b i l i 妙a n dp o r 油i l i 吼n i si s at r e n do ft h e d e v e l o p m e n to fo p e r a t i n gs y s t e m s ,m i c r 0 - k e m e lt e c h n o l o g yh 船g r a d u a l l yb e c o m eah o tr e s e a r c h a n dd e v e l o p m e n ti nt h en e x t0 p e r a t i n g y 呶釉,a n di tw i l lb ep 1 8 y i n gav e r yi m p o r t a n tr o l e a tp r e s e 鸲t h em i c r o k e m e li sl a c ko fas t a n d a r d ,e s s e n t i a l l yi t i ss t i l li nt h es t r a t e g y r e s e a r c hl e v e l t l h eb i g g e s t 向l c t o rw h i c hi m p a c ti t sd e v e l o p m e n ti st h el o w e rp e r f - o 咖绷c e ,锄d t h eg r e a t e s ti m p a c to np e r f b m a n c ei st h a t 丘e q u e n ts w i t c h i n go fa d d r e s ss p a c ea n do nt h i sb a s i s o fi n t e r - p r o c e s sc o m m u n i c a t i o ni sm u c ht o os l o w b a s e d0 nm e 卸a l y s i so fe x i s t i n gr e s e a r c ho f t h es t r e n g t h s 锄dw e a l ( n e s s e si 1 1m i c r 0 一k e m e l ,t h i sa r t i c l ew i l im a i n l yi nt h eo p t i m i z a t i o no ft h e s n u c t u r eo fa d d r e s ss p a c ei nm i c r 0 k e m e l ,锄do nt h eb a s i so ft l l i s ,i tw i l li m p r 0 v et h ee 伍c i e n c y o fi n t e r - p r o c e s sc o m m u n i c a t i o n 锄da d d r e s s s p a c e - s w i t c h i n a tt h es 锄et i m e ,w er e s e a r c ha n d d e s i g no u ro w nm i c r o k e m e l 一- m y o s t h i sa r t i c l ei n c l u d e st h ef o l l 0 w i n gs t u d i e s : ( 1 ) t h ea r t i c l e 咖d i e ds o m es t r i l c t u r eo fm i c r o k e m e l s ,a n dc o n s i d e rt h ep r o b l e m sf 硒mt h e p o i n to f v i e wi nm i c r o - k e m e l ,i tr e s e a r c ha n dd e s i g nan e wm i c r 0 - s 价j c t u r co ft h ec o r e ,卸dd o 协e t e s t s f o rs o m e p a r t s o n t h i s b a s i s ( 2 ) t h ea r t i c l es t u d i e dt l l e i n t e 卜p r o c e s sc o m m u n i c a t i o np e r f i o m 锄c e i nt h ee x i s t i n g m i c r o - k e m e l ,u s i n gt h em e t h o do fd i r e c t 仃锄s f e rb yt e m p o r a r ym a p p i n gt 0i m p r o v et h em a i n m e 柚so f i n t e 卜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 i n g ( 3 ) t 1 1 ea n i c l er e s e a r c ha n dc 鲫呵o u to ft h em i c r o k e m e lm e m o 叫m 锄a g e m e n ts e r v i c e s ,i t i n c l u d e d :i m e m a lm i c r o k e m e l sa d d r e s ss p a c em a n a g e m e n t柚de x t e m a lm i c r o k e m e l s m e m o r ym a n a g e m e n ts e r v i c e s a n da i m e da tt h em i c r 0 一k e m e ls t 】r u c t u r a ld e s i g n i n g ,b y i n t r o d u c i n gt h ec o n c e p to fs m a l l - a d d r e s s s p a c e ,i m p r o v et h ed e s i g no f a d d r e s ss p a c e i nt h es y s t e mt e s t ,m y o ss h o w sag o o dp e r f 0 舶1 a n c e ,b u tt h e r ea r es t i l lh a v eal o n gd i s t a n c e i 浙江工业大学硕士学位论文 i l lp r a c t i c a lo fo p e r a t i n gs y s t e m i nm e 如t u r ew o r i ( ,w ew i l lc o n t i n u et oi m p r o v et | l es y s t e m d e s i g i l 锄df h n c t i o n s ,锄di m p r 0 v et h ee x i s t i n gs y s t e i n ss a f e 哆锄ds t a b i l i 妙 l ( e yw o r d s : m i c r 0 k e m e l ,i m e 卜p r o c e s sc 伽m u n i c a t i o n ,m e s s a g e 仃锄s f e r ,a d d r e s ss p a c e , m y o s 浙江工业大学 学位论文原创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进行研究工作 所取得的研究成果。除文中已经加以标注引用的内容外,本论文不包含其他个人或 集体已经发表或撰写过的研究成果,也不含为获得浙江工业大学或其它教育机构的 学位证书而使用过的材料。对本文的研究作出重要贡献的个人和集体,均已在文中 以明确方式标明。本人承担本声明的法律责任。 作者签名:彳童 吼纱瞬7 三月 2 弘 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留 并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本 人授权浙江工业大学可以将本学位论文的全部或部分内容编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 本学位论文属于 l 、保密口,在年解密后适用本授权书。 2 、不保密耐。 ( 请在以上相应方框内打“”) 作者签名: 导师签名: 钎延 啊彦甜 1 日期:汐缮仁月所日 日期:撇k 月功日 f 浙江工业大学硕士学位论文 1 1 研究背景和意义 第1 章绪论 随着网络技术的不断发展,信息安全越来越显得重要。操作系统作为各种应用软件的 平台,它是各种软件能够正常运行的最基本保障,要求具有良好的兼容性、安全性、可靠 性以及可扩展性。 自6 0 年代第1 款操作系统诞生以来,操作系统的发展经历了手工操作、早期批处理 阶段、执行系统阶段、多道程序系统阶段、分时系统、实时系统以及通用操作系统。 这些操作系统包括目前比较流行的如晰n d o w s 和l i n u x 都是采用宏内核的设计思想, 所谓宏内核即内核包括了整个的操作系统,所有的系统模块都运行在内核的地址空间中, 模块之间的通讯方法是直接的函数调用。这种方法最主要的优点是效率较高,模块之间的 通讯运行开销很小。但是随着集成电路、计算机网络、分布式处理、多机并行处理等技术 的迅速发展,对于面向单处理机,不可抢占式的传统操作系统为适应新的需求,对于内核 的修改越来越大,越来越复杂,必须不断地往内核中添加相关的模块,使得内核的代码量 急剧膨胀,可移植性和灵活性大大降低,一旦有某个模块出现问题便会影响到整个系统而 导致系统崩溃【1 1 。过于庞大的内核使得人们对于内核的理解和维护也带来了很大的困难。 错误分布研究【2 】【3 】【4 】表明每l o o o 行可执行代码包含6 1 6 个b u g s ,对于有百万行代码的宏 内核来说这其中的错误便不可小觑,对于有2 5 0 万行的l i n u x 代码来说至少有2 5 万个错误, 而晰n d o w s 至少是它的两倍。还有一个相关的问题便是第三方代码,例如设备驱动,在宏 内核的设计中它是内核的重要组成部分,驱动的代码占了操作系统的7 0 ,而它的出错率 却是普通内核代码的3 到7 倍,可以说大部分的系统崩溃都是直接或间接地由驱动造成的, 在w i n d o w sx p 中有8 5 的系统崩溃就是由驱动造成的1 5 】。 相对于宏内核操作系统出现的问题,发展出了微内核思想。微内核可以追溯到2 0 世 纪7 0 年代f 6 1 ,n u c l e u s 系统【7 1 是第一个以微内核思想设计的操作系统。微内核的基本定义 是:操作系统的大部分功能都运行在单独的进程中,而且多数在内核之外。用户进程与服 1 浙江工业大学硕士学位论文 务器进程之间通过消息传递来通信,内核的任务是处理消息传递,中断处理以及底层的进 程管理。微内核可以说是操作系统的一个高度抽象,又被称为“操作系统的操作系统”。 其中,宏内核与微内核的结构比较如图1 1 所示。 v s i p c ,f i l 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 m l p l h a r d w 娥 s v s t e m c a l l u s e r m o d e k e m e l m o d e s c h e d u l e ,i p c ,i n t e m j p l h a r d w a r e 图1 1宏内核( 左) 与微内核( 右) 的比较图 由图1 1 可知,宏内核中集合了操作系统的大部分功能模块,而在微内核中只保留了 少数的功能,大部分功能运行在内核之上,相互间通过i p c ( 进程间通信) 进行交流。 微内核的这种设计使得操作系统有较好的灵活性,由于内核代码很小,所有与处理器 相关的代码都被封装在微内核中,从而使得操作系统具有较好的移植性。它真正的模块化 设计使得大部分执行操作系统功能的服务以模块化的方式单独运行在用户空间,减少了内 核的负担,而不同的服务或是新模块的加入都将以用户进程的方式加载在内核之上,使得 系统具有良好的可扩展性,同时系统的安全性和可靠性也得到了保障。 目前微内核技术尚未形成标准,在国际市场上也还没有相对成熟的产品,国内在基于 微内核的操作系统的研发方面差距更大。 目前,微内核的研究还存在着不少困难。8 0 年代末到9 0 年代初表现在性能很差,这 也一度让学术界丧失了兴趣【8 1 。在9 0 年代中期,l i e d t k e 【1 0 】证明了微内核性能表现差的主要 原因是由于微内核操作系统使用进程来隔离系统组件,使得运行需要依靠调用在不同地址 空间的系统服务,因此进程间通信( i p c ) 就变得非常重要,而i p c 是非常耗时的。并且 证明了基于微内核操作系统的性能是可以得到改进的【9 1 ,使得近几年来研究微内核的人逐 渐增多,随之而出现的一些系统也开始增多。同时,由于微内核具有良好的兼容性、安全 性、可靠性、可移植性以及可扩展性,可以预见它在不久的将来会在嵌入式、分布式、桌 面系统等不同领域占据一席之地【】0 1 。 7 浙江工业大学硕士学位论文 1 2 国内外研究现状 微内核的概念最早是由r i c h a r dr - a s h i d 在卡内基梅隆( c 锄e g i e m e l l o n ) 大学开发m a c h 操作系统时提出的,目标是建立一个基于消息传送机制的最小内核,以便在此基础上建造 对其它操作系统的模拟层来模拟其它操作系统的特性。微内核设计带来的一个重要优点是 大大提高了操作系统的兼容性,安全性和可扩展性。微内核只提供对操作系统绝对必要的 功能,而把其它属于传统操作系统内核部分的功能留给用户进程来实现。这就是微内核机 制与策略相分离的思想。 国外从8 0 年代就开始了对微内核技术的研究,但是由于受到宏内核的影响,使得早期 微内核性能并不是那么理想,直到9 0 年代末,微内核才逐渐成了研究的热点,在此期间涌 现出一些基于微内核的操作系统。 m a c h 【1 1 】【1 2 】:是卡内基梅隆( c a m e g i e m e l l o n ) 大学在2 0 世纪8 0 年代开发的操作系统, 最普遍的版本是m a c h 2 5 ,是许多商业u n i x 如d e co s f 1 ,n e x t s t e p 等的基础。m a c h 属于 第一代微内核操作系统,在性能表现上较差。m a c h 的早期版本是由b s du n i x 改造而来,由 于是通过宏内核操作系统修改而成,因此并不是一个微内核思想的良好实现。在进程间通 信方面,微内核先将发送进程中的消息从发送进程的地址空间拷贝到内核缓冲中,然后执 行地址空间的切换,最后将数据缓冲区的消息从内核拷贝到接收进程的地址空间去。对进 程间通信的改进上,m a c h 微内核首次提出了合成消息的策略,在一定程度上对i p c 进行了 优化。但在架构上,m a c h3 o 将很多服务器进程移到内核内部运行,如a f s 缓存管理和所 有的驱动程序等。因此,它破坏了微内核的设计初衷,微内核所带来的高可靠性和高稳定 性被大打折扫。丛垒堂3 o 才是真正纯粹的完全微内核化版本。 m i n 她竺竺! ! :) 1 3 】:是荷兰阿姆斯特丹的v r i j e 大学计算机科学系的a n d r e ws t a n e n b a u m 教授所发展的一个类u n i x 操作系统,最初是他用来教学的系统,经过几次改写 之后,目前最新的版本是m i n i x 3 ,其内核仅包含4 0 0 0 行可执行代码。m i n i x 可以说是纯粹的 微内核,从m i n i x 3 开始,他将内存管理,文件系统,驱动等系统服务统统移出了内核,内 核中只保留了简单的进程调度,中断管理等,而时钟管理和内核调用则以单独进程的形式 被编译进内核空间。不过m i n i x 的初衷是为了教学,作者写微内核的目的是为了使代码条理 清晰,并没有对系统进行优化,也没有提供很复杂的结构功能,比方说m i n i x 只支持i n t e l 的分段机制,他是个纯分段的操作系统,这在实现上相对分页机制要简单的多,他的每个 进程的内存空间是固定的,不能再扩展的,或者说是会带来很大的系统开销。而对于现代 1 塑垩三些奎兰婴主兰垡笙奎 操作系统来说,一个不支持分页的操作系统所能够实现的功能太少了,根本就不足以适应 现代应用的需求,除非是在一些小型的嵌入式系统中。 q n x 【14 】【1 5 】:是由q ( 软件系统有限公司开发的一个分布式、嵌入式、可规模扩展的 实时操作系统。其中q n xn e u 仃i n or 1 、o s 版本是一个基于微内核的操作系统,他的设计目 标是能够适应从资源有限的嵌入式系统到高端的分布式计算环境。他以模块化和性能作为 首要指标,其核心提供了如下几种服务:进程调度、进程间通信、内存管理、底层网络通 信和中断处理,从某种意义上来说他并没有做到只在内核中实现系统服务的最小集合,但 是大部分执行操作系统功能的服务作为独立的进程运行在内核之外,就总体来说,他还是 一个小巧灵活的内核。他在进程间通信方面也有自己特殊的方法,他支持可变长的消息, 通过聚合的方式将简单的多条消息聚合成一条复杂的消息进行发送,消息的每一部分称为 i o v ( i n p u 讹u t p u tv e c t o r ) ,通过这种方式,消除了多条消息传递引发的额外开销,同时, 也增加了消息传递的灵活性。 l 4 【16 】【1 7 】【1 8 】:由德国的g m d ( 德国国家信息技术研究院) 设计。它的两个基本设计原 则是:1 ) 高性能和灵活性的要求决定微内核必须尽可能缩到最小,2 ) 微内核实现本身取 决于硬件结构,它是不可移植的。l 4 内核支持三种抽象概念:地址空间,线程,和i p c 。 l 4 可谓是第2 代微内核的典范,他对微内核的i p c 性能作出了很大的改进,他提出了通过页 面映射实现1 次消息拷贝的方法,同时,他也使用了各种硬件的特性来传递消息,让每个 调用都最大化的利用硬件特性,例如通过寄存器来传递消息等。而这些设计正是需要对内 核的重新设计才能实现,因此,这些特性也将充分地体现在我们的系统设计中。 e x o k e m e l 【1 9 】 2 0 】:是麻省理工开发的一个微内核系统,相对于l 4 微内核,e x 0 k e m e l 微 内核是一个更加激进的设计,e x o k e m e l 微内核的核心观点是:只要内核还提供对系统资源 的抽象,就不能实现性能的最大优化内核应该支持一个最小的、高度优化的原语集, 而不是提供对系统资源的抽象。系统抽象通过l i b r a l yo p e r a t i n gs y s t e m 完成。e x o k e m e l 也 被称作外核,而外核的目标就是让应用程序直接请求一块特定的物理空间,一块特定的磁 盘块等等。系统本身只保证被请求的资源当前是空闲的,应用程序就允许直接访问它。既 然外核系统只提供了比较低级的硬件操作,而没有像其他系统一样提供高级的硬件抽象, 那么就需要增加额外的运行库支持。这些运行库运行在外核之上,给用户程序提供了完整 的功能,这就是l i b o s ,由图1 2 所示。 浙江工业大学硕士学位论文 图1 2 公共库实现结构 e x o k e m e l 为实现微内核和l i b 0 s 的资源管理和保护提供了一套完整的原则和方法。因 此,他可以用来解决微内核在资源管理上存在的问题,提高微内核操作系统在面对嵌入式 应用的多样性时的灵活性。但是就目前来说,外核的设计还停留在研究阶段,没有任何一 个商业系统采用了这种设计。 国内对于操作系统的研究尚处于起步阶段,很少有相关微内核方面的资料,虽然也有 部分高校对微内核进行研究,但是大部分都是建立在现有的微内核系统之上的一些改进, 并没有真正属于自己的内核。 s m a r l o s :浙江大学2 0 0 3 年在嵌入式系统领域提出了子构件体系结构,称为s m a r t 体系。它采用了微内核的思想,提出微内核“流水线内核”架构。 w 6 l fo s :南开大学研发的一款采用微内核技术的嵌入式系统,主要应用于手持移动 设备。 还有哈尔滨工业大学和上海交通大学等几所高校也有对微内核的相关研究。 1 3 存在的问题 自从8 0 年代微内核被提出以来,人们不断探索微内核的实质,微内核的初衷就是要达 到一个精简的内核,它设计的一个目标就是内核只提供对操作系统绝对必要的功能,而把 其它属于传统操作系统内核部分的功能留给用户进程来实现。人们在宏内核的基础上不断 探索,将不同的系统模块移出内核,期望达到一个最佳的状态。但是它的执行效率远远不 如单内核系统,主要有以下几个方面的问题【l 】【1 3 】【2 l 】存在: 、( 1 ) 第1 代微内核操作系统的结构受到传统宏内核操作系统的影响。由于第1 代微内核是 在宏内核的基础之上裁减而来,因此,从本质上来说他仍然是宏内核,只是功能相对精简 而已,他的一些内部结构设计仍然留有宏内核的痕迹。 ( 2 ) 微内核中提供的功能集合不合理。微内核的思想是构造一个尽量精简的内核,内核 中只保留基本的进程调度,中断管理和进程间通信。对于第1 代微内核来说,内核功能的 杂乱导致了微内核不“微”,并没有实现将机制与策略的相分离。 气 浙江工业大学硕士学位论文 ( 3 ) 不能动态调整和替换系统的结构和模块。产生这个问题的主要原因也是由于微内核 是构建在现有宏内核的基础之上导致的,使得系统结构紊乱,模块结构不清晰,系统服务 与内核间没有相对统一的接口。 ( 4 ) 系统中提供的抽象集合以及抽象的结构不合理。微内核提供的应该是对底层硬件的 最基本的抽象,由于第l 代微内核结构设计的不合理,实现的内部功能过于庞大,结构臃 肿,使得对于底层硬件的抽象相对高级。 ( 5 ) 不合理的结构设计引起频繁发生上下文切换以及地址空间转换。微内核将大部分系 统服务移出内核,每个进程又运行在自己独立的地址空间中,进程间通信势必引起地址空 间的切换,频繁的进程间通信便成了影响系统性能的首要问题,而第1 代微内核并没有专 门针对微内核自身的结构对地址空间及进程间通信做出优化,这也是性能下降的主要原 因。 总结以上问题,归根到底第l 代微内核性能差的主要原因就是微内核受宏内核影响, 结构设计的不合理,因此,第2 代微内核被提出,他的设计思想就是从本质上改变微内核 原有的设计,抛弃原有微内核,从内核结构设计的角度出发,重新设计内核,只在内核中 实现基本的进程管理、地址空间管理以及i p c 。这种进一步的抽象真正做到内核只提供机 制,而把实现策略留给用户进程。 但是,即使是重新设计内核,相比较宏内核而言,微内核在性能上跟宏内核还是存在 着差距,毕竟宏内核执行一条系统调用只需要简单的陷入内核语句,而微内核则需要在服 务进程与用户进程间转发消息。我们所要做的就是尽量减少这之间的性能差距,通过合理 地设计微内核结构,在性能与安全性,可靠性,可扩展性之间做出折中,使得在性能有少 许损失的情况下能够大幅度地提升系统整体的优势,毕竟性能只是衡量操作系统好坏的其 中一个指标。 1 4 研究的内容 本文旨在研究微内核的结构,通过对现有微内核系统结构与性能的分析,研究出提升 微内核性能的方法。 本文的主要工作体现在以下几个方面: ( 1 ) 研究和吸取了现有微内核的一些优点,真正从微内核的角度去思考问题,从内部抛 弃原有宏内核的影响,从零开始研究设计了自己的微内核- m y o s ,并在此基础之上对 部分性能做了测试。 6 浙江工业大学硕士学位论文 ( 2 ) 研究了影响微内核性能的两大因素:进程间通信( i p c ) 和地址空间切换。微内核 将系统服务移出内核的设计使得进程间的通信变得遥不可及,同时,进程间通信变得更加 频繁。本文通过研究现有微内核的空间结构,在改进地址空间的同时对进程间通信也作出 了改进。 ( 3 ) 研究并实现了微内核的内存管理服务。该部分同时包括了两个部分:内核内部的地 址空间管理和内核外的内存管理服务。本文主要针对系统的结构设计,实现了内存管理与 内核的衔接,并在内存管理服务中实现了简单的内存管理算法。 1 5 本文的结构 全文的内容安排如下: 第1 章介绍了本项目的研究背景和意义,研究了目前国内外微内核的发展状况,并针 对目前所存在的一些问题,本文所做的研究。 第2 章主要研究了微内核的特点与结构,究竟微内核的微体现在哪里,不仅仅是体现 在代码量上,他的微主要是体现在机制与策略相分离的思想,使得内核中只保留最基本的 功能,我们所要做的就是让内核尽量精简,在这个思想上,我们设计并给出了m y o s 微内 核的大致框架。 第3 章主要研究了微内核中进程间通信所产生的问题,在微内核中,消息传递是进程 间通信的主要手段,因此,消息传递的效率直接影响了系统的整体性能,我们在通过分析 以往的消息传递方法,并结合现有微内核的结构特点,在m y o s 中对进程间通信的主要手 段消息传递机制进行了改进。 第4 章主要研究了微内核中内存管理的设计,在这部分主要通过两个部分来研究:内 核内部的地址空间管理和内核外的内存管理服务。并在此基础之上改进了原有的内存模 型,引入小地址空间的概念,提升了用户进程请求系统服务的性能。 第5 章主要对系统的性能做了测试,测试了改进后的i p c 的性能,并在i b mp c 机上通过 对系统调用的测试来间接地比较了地址空间改进前后的性能。同时,还给出了系统的演示。 第6 章总结了所有的工作,并对该系统未来的改进方向提出了展望。 浙江工业大学硕士学位论文 2 1 微内核概述 第2 章微内核的研究与设计 传统意义上来说,内核是操作系统的一个组件,他是用来管理所有的软件以及在基本 的硬件体系上执行某些特权级指令的层次【2 2 1 。从体系结构的角度出发,可以将操作系统大 致地分为宏内核操作系统、层次型操作系统以及基于客户机朋艮务器架构的微内核操作系统 【2 3 1 。微内核中“微”这个字的含义是指在内核中只保留最为核心的一部分功能,其余部分被 划分成一个个独立的子系统,并且被从内核中剥离出来,以服务器的方式实现在核外,也 就是说微内核应该小而灵活【2 4 1 。通过这种设计上的改变,微内核操作系统获得了比传统的 单一内核操作系统更大的灵活性,因此微内核操作系统目前已经成为了现代操作系统的主 流与趋势【2 5 】,这也正是我们在选择课题时的一个基本立足点。 微内核的理论依据是:操作系统的设计与实现是非常复杂的,所以需要通过模块化对 其进行分解从而减小复杂性。微内核方法的原则是:让内核成为核心的核心,绝不把不必 要的东西放到内核中去。 2 2 微内核的特点与结构 2 2 1 微内核的特点 微内核的思想认为,操作系统内核应该提供尽可能少的功能,大部分提供操作系统功 能的服务应该在用户进程中实现。微内核只提供简单的机制,策略则由用户进程来实现。 这也是微内核所提倡的机制与策略相分离思想。 在微内核中一般只提供以下几种最小服务: ( 1 ) 简单的进程调度; ( 2 ) 简单的内存管理( 即地址空间的管理) ; 浙江工业大学硕士学位论文 ( 3 ) 低级的i o 操作( 包括简单的中断) ; ( 4 ) 进程间通信( i p c ) 。 微内核所提供的服务都是很基本的,也必须在特权级下实现的功能,一旦放在用户进 程会造成很大的开销或是根本不可能实现。而其他一些高级的操作系统功能完全可以通过 这些底层的机制在用户层实现各自的服务。 微内核技术的主要优点【1 3 】【2 l 】: 一、策略与机制相分离 所谓机制【2 6 1 是指底层提供何种功能,而策略则是指如何来使用这种功能,显然这两者 有着本质上的区别。在软件设计时显式地将机制与策略划分开,并且用不同的模块分别处 理这两者是构造良好软件的一个重要因素【2 7 1 。通过把策略从机制中分离出来以后,即使后 期策略发生了重大变化,软件系统整体的修改也不会很大。 在操作系统中,机制是由底层硬件提供的,而策略则是在软件层面做出的决定,它往 往是与具体应用个案相关的。在不同的应用领域中,软件设计人员常常会根据具体的应用 需求采取不同的策略。 传统的宏内核操作系统中,内核涵盖了物理硬件之上系统调用之下的一切,包括处理 机调度、内存管理、设备驱动以及文件系统管理等所有服务,不但实现了策略而且还同时 实现了机制。在这种架构下策略与机制被紧密地祸合在了一起,所有运行在操作系统上的 应用程序都被内核中的策略所支配着,内核完全没有办法根据应用程序的需求来改变相应 的策略,也就是说内核是个“盲目”的内核。 与宏内核不同,微内核只专注于提供一些最基本的机制,并且使得底层硬件操作对上 层的应用保持透明,各种不同的策略则由不同的服务器来实现,或者说是将关于行为的选 择决定挪到了应用层。由于实现了策略与机制的相分离,在一个微内核操作系统中不同策 略的同类服务器甚至可以同时存在。 微内核操作系统中,微内核部分是相对固定不变的,而核外服务器则是易变部分。采 用这种软件架构模式的软件系统提高了系统的灵活性,系统可以很方便地适应不断变化着 的新需求。另外,微内核除了提供一些核心服务以外不绑定到任何应用,所以内核可以也 应该是小的。 二、高度的模块化 微内核操作系统的第二个特征是高度的模块化。传统的宏内核操作系统中所有的系统 服务都被塞到了内核中,而在微内核结构的操作系统中,内核、各个服务器以及用户程序 都被设计成了独立的模块,并且各个模块之间通过定义好的接口以客户机服务器的方式进 o 浙江工业大学硕士学位论文 行通讯。这种高度的模块化带来了以下三个优势: ( 1 ) 高度模块化的第一个优势是可扩展性。这里的可扩展性指的是动态可扩展性,即在 不对内核本身做任何修改和编译的前提下为操作系统增加新的服务与功能。微内核操作系 统中各个服务器可以像搭积木一样地被“安装”到微内核上面,并通过消息传递与其他模 块进行通讯。由于各个服务器与内核一样被独立地编译成二进制可执行代码,因此添加、 替换这些服务器不会对微内核的核心功能有任何影响。 ( 2 ) 可配置性是模块化的第二个优势。微内核操作系统可以很容易地根据各种不同应用 需求进行配置,使得用户可以按具体情况定制所需的操作系统。宏内核操作系统l i n u x 的 m a l ( ec o n f i g 工具虽然也具备了类似的特征,但本质上这两者是不同的。l i i l u x 在针对某一特 定应用进行配置并编译产生一个新内核以后,各个模块和组件仍然运行在内核中,当应用 需求发生变化时仍然需要重新编译内核。而在微内核操作系统中因为各个模块己经被搬到 核外以服务器的形式存在,所以可以很容易地解决这一问题。 ( 3 ) 微内核操作系统在健壮性方面也要比宏内核操作系统强。传统的单一内核操作系统 的结构正在变得越来越复杂,代码量也越来越大,伴随而来的就是可维护性变得越来越差, 出错也越来越多。在微内核操作系统中,所有的用户空间服务器都运行在各自的地址空间 内,因此即使这些服务器本身出了错,这些错误也只会局限在自己的地址空间中而不会导 致系统整体的崩溃,从而提供了一个比宏内核健壮得多的系统。 三、迈向分布式计算与移动计算的关键 随着计算机软硬件技术的发展,分布式计算与移动计算已经成为现代计算机的两个重 要发展方向。微内核技术在这两个领域也大有用武之地。一个理想的分布式操作系统应该 是一个运行在松偶合硬件环境下的紧偶合软件。这个系统的目标是要给用户这样一个印 象,即整个异构的松偶合硬件系统是一个分时系统,而不是一些互不相同的机器的集合。 将微内核用于分布式操作系统可以说再恰当不过了。使用微内核技术的分布式操作系统 中,硬件的异构性被隐藏了,每个节点上系统代码的规模也被极大地缩小了,因而操作系 统显得更加轻巧。如图2 1 所示,分布式环境下,在每个节点上只需要运行内核以及必要的 服务器进程,其中每个服务都有一组定义良好的接口并且对所有的授权客户进程来说都是 可以访问的,而且客户进程无须关心物理上该服务器在哪里。大量的操作系统服务可以从 用户级服务器上获得,而内核中只需要提供那些如果在其他地方提供它们很困难或者代价 很昂贵的服务。因此有专家学者指出“微内核系统将逐渐主宰分布式系统设计,宏内核将 最终消失或融入微内核中 【2 5 j 。 浙江工业大学硕士学位论文 服务器1服务器2服务器3用户 微内核微内核 微内核微内核 图2 1 微内核在分布式环境中的应用 微内核操作系统在移动计算方面也有着不可替代优势。对于后p c 时代和普及计算时代 而言,嵌入式系统将无处不在,而嵌入式操作系统则是其中的软件核心技术。对于嵌入式 系统来说,由于在系统资源上受到的限制,使得它对内核的规模提出了较高的要求。因为 微内核设计精巧、扩展灵活、内存占用少,所以现在很多流行的嵌入式操作系统都采用了 微内核的设计方法。其中最为著名的就是加拿大q n xs o 胁a r e s y s t e m 公司的产品q n x 。 同时,微内核提供的多服务器功能,使得微内核可以作为其他操作系统的载体,可以 更好地与虚拟化技术相结合【2 8 】【2 9 1 。 目前,采用微内核技术实现新一代操作系统已经成为了学术界与产业界的一个共识 f 3 0 1 ,但是微内核操作系统也存在着一些有待改进的地方,其中最为主要的就是效率低下的 问题。由于微内核操作系统采用了客户机服务器模型,客户访问服务器提供的服务是通过 消息传递的方式来实现的,而消息传递引入了大量进出内核的过程,因而导致了频繁的进 程切换和消息数据的拷贝,这些都带来了很大的额外开销【3 l 】,从而影响了系统的性能。可 以看出,在微内核操作系统中,微内核能否提供一种高效率的不同地址空间之间的通讯机 制,直接关系到微内核操作系统本身的性能与效率。通过合理的结构设计,可以使得性能 的损失降到最低,随着硬件技术的发展,这些性能的损失已不是什么很大的问题,安全性、 可靠性成了日益庞大的系统的主要问题。当前,这个性能低下问题仍然是该领域学术界的 研究热点【3 0 】【3 2 1 。 事实上很多操作系统都在努力朝着微内核的方向发展,w i n d o w sx p 极其后继产品便 是其中的一员。 2 2 2 微内核的应用结构 由图2 2 可知,根据不同的应用,微内核主要又分为三种不同的结构: 浙江工业大学硕士学位论文 革自# m * #8 驱自* 自动 图2 2 微内核的二种不同应用结构 ( 1 ) 基于特定操作系统的单服务器应用( 图2 2 左) :在这种结构中,微内核作为其他操 作系统的载体,使得其他宏内核操作系统( l i n u x 等) 跑在他的上面这个应用主要是作 为个实验的平台,研究并测试操作系统的相关性能。例如l 4 l m u x 等。 ( 2 ) 多服务器应用图2 - 2 中) :在这种结构中,执行操作系统功能的服务作为服务器跑 在微内核之上,这也是普遍意义下的一种方式,这种方式更加适台于分布式的系统。例如 g u n h u r d 便是跑在l 4 之e 。 ( 3 ) 嵌入式及实时系统的应用( 图2 2 右) :在这种结构中,微内核被应用在嵌入式的系 统l ,他自身固有的特性使得微内核能够很好的适应这种结构,非常便于在不同的嵌入式 平台上移植,裁减以及扩展。例如0 n x ,v x w o r k s 。 2 3 微内核的设计 在m y o s 系统的设训中,大致将他分为四层结构,理想的目标结构如图2 3 所示 浙江工业大学碗士学位论文 用户进程 用户进程用户进程用户进程 刘 进程管理 内存管理1 l 羔i 鎏基i 主:i 鋈兰羔二i 羔蓬壅耋錾萋嚣耋薹鐾! 夔爨 圈2 3m v o s 的结构设计 在m y o s 微内核中只实现了阻下几种基本的机制: ( 1 ) 地址空间管理。不同的进程运行在相互独立的地址空司,地址空间的相互隔离能够 有效的隔离错误和保护数据,地址空间隔离的基本机制由硬件的m m u ( 内存管理单元) 模块来实现,曲核作为硬件的直接支配者,直接管理着m m u 模块。内核只实现最基本的 管理,他只为e 层服务提供晟基本的地址空间映射原语,仅仅是完成物理地址到虚拟地址 的映射,而具体的映射策略则由上层服务来完成。 ( 2 ) 中断管理,中断的响应必须在高特权级下,因此,内核必须提供对r p 断的管理,但 是,内核内部并不提供对中断的具体处理,内核只提供对中断的封装,将中断封装成一条 消息,并将消息转发给相应的中断处理进程。 ( 3 ) 进程调度。对于任何分时多任务操作系统来说,进程调度都是必不可少的,而进程 调度往往同地址宅问的切换密切相关,因此,进程调度只能在内核中实现,内核中只实现 简单的进程调度。 ( 4 ) 进程间通信( i p c ) 。在基于微内梭的操作系统中,由于服务器进程被运行在内核之 上,固此,内核成了进程问通信的中转站,进程间通信也成了微内核的重要组成部分,实 现快速而有效的进程间通信手段便成了提升系统性能的关键, ( 5 ) 简单的进程管理( u 】d 管理) 。徽内核作为操作系统的核心,必须能够感知各个进 程的存在,幽此,在内核中必须实现简学的进程管理,内核所关注的仅仅是不同进程的地 址跳射关系,他并不负责实现对进程的具体管理。 同时在内核的地址空问中还要实现荫个内核进程。个是时钟任务,一个是系统暨务。 1 浙江工业大学硕士学位论文 他们作为独立的进程被编译进内核地址空间。 其他一些执行操作系统功能的服务以及驱动被移出内核,他们作为独立的进程运行在 用户空间,如同其他用户进程一样,对于内核来说,他们只是普通用户进程,不享有特权 级的服务。 制作独立于主系统部件的内核外部进程的结果是,他们被禁止执行实际的i o 操作, 也不能改动系统表及完成其他操作系统一般都有的功能。例如,f o r k 系统调用是由进程管 理器来处理的,当一个新的进程被创建后,内核必须能感知他以便调度。那么一个进程管 理器是如何通知内核的呢? 解决这个问题的方法是让内核为驱动程序和服务器提供一组服务。这些对普通用户进 程可用的服务,允许驱动程序和服务器执行实际i o 操作,存取内核表以及其他他们所需 要的功能,而不需要在内核内部。 这些专门的服务便由系统任务进行处理。尽管他被编译进了内核,但他是作为一个独 立的进程参与调度。 时钟对于任何分时系统或是实时系统来说都是很重要的。从某种意义上来说他是一种 驱动,但是他又不同于其他的块设备和字符设备。所以并没将时钟跟其他驱动一样放到内 核之外,他也将作为一个独立参与调度的进程被编译进内核。而外部进程对时钟的访问都 将通过系统任务间接地访问时钟。 进程根据层次的高低,他们将授予不同的特权。其中驱动层为上层服务提供设备驱动 程序,他们可以请求系统任务代表他们来执行i o 指令。在驱动层之上的一层为执行操作 系统功能的服务,他们是真正实现操作系统策略的部分,用户进程所执行的一些系统调用 都将由这些提供功能的服务器来完成。 2 4 本章小结 本章主要介绍了微内核的特点以及结构,微内核所提倡的机制与策略相分离的思想, 使得微内核可以小而灵活,同时,微内核的客户端服务器端设计使得微内核能够有更加广 泛的应用,尤其是在分布式应用中,更能发挥他的长处。最后给出了m y 0 s 的系统设计结 构,研究并设计了微内核中所实现的基本机制,以及内核外一些系统服务、驱动及用户进 程的功能以及相互间的层次关系。 浙江工
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高科技产业园区厂房抵押贷款合同范本
- 2025年新型环保材料庭院草坪绿化工程承包协议
- 2025年咖啡厅品牌使用权及经营管理合作协议
- 2025年大型企业团餐定制化服务管理协议
- 2025年中老两国边境旅游区共同开发投资合作协议
- 2025年度高新技术产业知识产权质押融资服务协议
- 2025年学校体育馆运动场地绿化设计评估报告
- 2025搬运承揽合同范文
- 2025年天然气水合物(可燃冰)开采技术深海地质风险防控与应急管理研究报告
- 健脑操陈昱亨有动作图原名教师职业压力管理讲课文档
- 商学院课程总结与展望
- 《集中用餐单位落实食品安全主体责任监督管理规定》解读与培训
- 2025年(幼儿园)教师资格考试《保教知识与能力》模拟测试题及答案(共三套)
- 足球比赛裁判培训
- 2025年职工职业技能竞赛(制图员赛项)参考试题库(含答案)
- 胖东来管理制度
- 学校教育用地土地租赁合同
- 大学意识形态安全教育
- 原材料不合格预防措施
- 高压氧护理进修汇报
- 中国神经病理性疼痛诊疗指南(2024版)解读
评论
0/150
提交评论