




已阅读5页,还剩52页未读, 继续免费阅读
(计算机科学与技术专业论文)可扩展操作系统中存储管理子系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国防科学技术大学研究生院学位论文 墒尊 随着科学技术的飞速发展,新领域的应用对操作系统提出了新的要求。目前的操作系 统虽然能够在一定程度上支持般性的应用,但对于特殊应用,如网络多媒体、大型数据 库和分布式计算等,却无法保证满足其需求。在这种应用背景下,可扩展操作系统被提出 并得到了发展。 本文首先介绍了可扩展操作系统的历史背景。然后,分析了可扩展操作系统结构下设 计存储管理子系统的三个关键问题:性能、可扩展性和完整性。并且,对存储管理子系统 的扩展和安全模型进行了分类研究。 在此研究基础上,我们采用了垂直结构的可扩展存储管理系统模型。系统结构分为两 层,分别为应用相关层和应用无关层。功能上,应用相关层管理存储系统的高级抽象,应 用无关层提供机器相关的资源接口和服务接口。模型采用基于事件的向上调用机制,增强 了系统的可扩展能力并提高了系统性能;采用基于c a p a b i l i t y 的保护机制,保证了系统资源 的安全复用。 基于u v m 系统,我们设计并实现了一种可行的支持自分页的存储管理系统,提出了 全新的系统结构和设计方案。为了支持可扩展性,我们对物理地址空间和虚地址空间采用 新抽象,并将其直接向上暴露;为了节约不必要的空间和时间开销,我们实现了一种怠惰 的虚地址空间管理机制;为了实现自分页,我们提出了用户级缓冲的管理策略,提高了系 统性能;由于改变了u v m 的结构,我们对物理映射和内核地址空间的管理作了重新设计。 最后,对存储管理子系统就性能、可扩展性和完整性进行了分析并进行了简单的性能 测试。 关键词:可扩展,垂直结构,向上调用,c a p a b i l i t y ,自分页,怠惰算法,用户级缓冲 国防科学技术大学研究生院学位论文 a b s t r a c t w i t ht h ed e v e l o p m e n to fs c i e n c ea n dt e c h n o l o g y , a p p l i c a t i o n si nr e c e n ts c o p e sb r i n gf o r w a r d m u c hn e wr e q u i r e m e n t o p e r a t i n gs y s t e m sa tp r e s e n tc a ns u p p o r tg e n e r a la p p l i c a t i o n st oc e r t a i n e x t e n d s ,a l t h o u g ht h e yc a nn o tg u a r a n t e es o m es p e c i a la p p l i c a t i o n s ,s u c ha sm u l t i m e d i ab a s e do n n e t w o r k , l a r g e - s c a l ed b m s ,d i s t r i b u t e dc o m p u t i n ga n ds oo nu n d e rt h i sb a c k g r o u n d ,e x t e n s i b l e o p e r a t i n gs y s t e mi se v o l v e da n di np r o g r e s s f i r s t l y , t h i sp a p e ri n t r o d u c e st h eh i s t o r yo f e x t e n s i b l eo s ,a n dt h e na n a l y s e st h r e ek e yi s s u e si n m e m o r ym a n a g e m e n tu n d e re x t e n s i b l eo s ,w h i c ha r ep e r f o r m a n c e ,e x t e n s i b i l i t ya n di n t e g r i t y a n dw ee x p l o r et h em o d e l so f e x t e n s i b i l i t ya n ds a f e t yi nd i f f e r e n tc a t e g o r i e s , s e c o n d l y , b a s e do nt h es t u d y , w ea d o p t ao r t h o g o n a lm o d e lo fm e m o r ym a n a g e m e n t s u b s y s t e mu n d e r e x t e n s i b l eo s t h em o d e li sc o m p r i s e do ft w ol a y e r s , w h i c h a r e a p p l i c a t i o n d e p e n d e n ta n da p p l i c a t i o n - i n d e p e n d e n ta c c o r d i n gt ot h ef u n c t i o n s ,t h el a y e ro f a p p l i c a t i o n - d e p e n d e n th a n d l e sw i t ht h eh i l g h l e v e la b s t r a c t s ;t h el a y e ro fa p p l i c a t i o n i n d e p e n d e n t s u p p l i e st h em a c h i n e - d e p e n d e n ti n t e r f a c e so fr e s o u r c e sa n ds e w e r s i nt h em o d e l ,w eu s ea n u p c a l lm e c h a n i s mb a s e do ne v e n t ,w h i c ha d v a n c e st h ee x t e n s i b i l i t ya n dp e r f o r m a n c eo ft h e s y s t e m ;u s eap r o t e c t i o nm e c h a n i s mb a s e do nc a p a b i l i t y , w h i c hg u a r a n t e e st h es e c u r em u l t i p l e x o fr e s o u r c e si nt h es y s t e m t h i r d l y , w ed e s i g na n di m p l e m e n ta n e x e c u t a b l em e m o r ym a n a g e m e n ts u b s y s t e mt h a t s u p p o r t ss e l f - p a g i n g i nt h i ss u b s y s t e m ,w ep r e s e n ta b r a n n e wa r c h i t e c t u r ea n ds c h e m eo f d e s i g n t os u p p o r te x t e n s i b i l i t y , w ea b s t r a c tt h ep h y s i c a la d d r e s ss p a c ea n dt h ev i r t u a la d d r e s ss p a c ei na d i f f e r e n tw a y ;a tt h es a m :t i m ew ee x p o s et h e s ea b s t r a c t st 0s a v et h ec o s to fs p a c ea n dt i m e ,w e i m p l e m e n tak i n do f l a z ym a n a g e m e n tm e c h a n i s mo f a p p l i c a t i o n c a c h eo nv i r t u a la d d r e s ss p a c e t oi m p l e m e n ts e l f - p a g i n g ,an e ws t r a t e g yi sg i v e nt h a tc a c h e sp h y s i c a lp a g e si na p p l i c a t i o nl e v e l a n dk e r n e ll e v e l ,w h i c hi m p r o v e st h ep e r f o r m a n c eo ft h es u b s y s t e m b e c a u s eo fc h a n g i n gt h e s t r u c t u r eo f u v m ,w ed e s i g nt h ep h y s i c a lm a p p i n ga n dt h em a n a g e m e n to f k e r n e la d d r e s ss p a c e o v e ra g a i n l a s t l y , w ea n a l y z et h es u b s y s t e mi na s p e c to fp e r f o r m a n c e ,e x t e n s i b i l i t ya n di n t e g r i t yw ea l s o t a k es i m p l et e s t sa b o u ti t k e y w o r d s :e x t e n s i h l e ,o r t h u g n n a ls t r u c t u r e ,u p c a l l ,c a p a b i l i t y , s e l f - p a g i n g ,l a z ya l g o r i t h m , a p p l i c a t i o n c a c h e 国防科学技术大学研究生院学位论文 国防科学技术大学研究生院学位论文 表4 - 13 2 - b i t 虚地址空间组织结构 表5 - 1 页故障处理时间 表目录 3 8 4 6 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意 学位论文题目:丑芷匮攫笠丞统生盔篮篮垄王丞统曲珏窥皇塞趣 ,7 , 学位论文作者签名:丝鱼日期:2 喇峰年,2 月卫6 日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书) 学位论文题目:互芷展搓佳丕统生壶储笪翌王丞统啦受盔量塞理 学位论文作者签名 作者指导教师签名 日期:卫口形年1 2 月形日 日期:a 。4 年i 月a 0 日 国防科学技术大学研究生院学位论文 第一章绪论 传统操作系统中的内核试图为各种应用提供各种通用的服务,因此迫使不具有某些特 性的应用仍然为不必要的服务支付高额的代价。这种呆板的抽象阻碍了应用在某些特定方 面的优化。例如,传统操作系统中的磁盘缓冲和分页算法就不能很好地适用于数据库应用 ”】;通用网络协议的实现常常不能支持高性能并行计算弘1 ;缓冲机制不能适应多媒体的需 求p 1 等等。为了解决这些问题,人们在传统操作系统的基础上开始了扩展技术的研究,并 且在设备驱动、文件系统、网络协议等方面实现了可扩展性,提出了短周期、低代价的扩 展方法1 4 j 但是这些扩展功能的增加并不能很好地满足大部分应用的需求。首先,这些扩 展相对于整个系统来说只是部分模块的可扩展;其次,这些扩展并没有对内核的安全提供 足够的保证。针对操作系统的实现或接口不能很好地满足众多应用需求的现状,上世纪九 十年代,研究者们提出了可扩展操作系统( e x t e n s i b l eo p e r a t i n gs y s t e m ) 的概念。从现有的 几个实验型可扩展操作系统的状况来看这类系统对于一些看似很难支持的应用如网络多 媒体系统表现出很高的性能j 。 1 1 课题背景 在某些计算机应用领域中如多媒体、图像处理、分布式计算等,应用程序希望能够从 整个计算机系统获得很高的性能。目前硬件处理速度已得到了很大的提高,但是操作系统 的设计和实现仍然比较落后,使得操作系统性能低下,很难满足这些特殊领域应用的需求。 一种普遍的观点认为不必要的数据复制形成了操作系统性能瓶颈1 1 2 i 。操作系统的数据复制 代价主要包括: 1 主存带宽有限,每次拷贝都受此限制。当前的c p u 带宽是g b s ,网络带宽己达到 g b s 的量级,而主存带宽最高只能达到3 0 0 m b s ,数据的多次复制增加了额外的系 统开销。 2 为了复制数据,c p u 必须将数据逐字节地从源缓冲区移动到目标缓冲区。然而c p u 这种珍贵的系统资源过多地忙于移动数据,这对于用户来说是不经济的。 3 数据复制通常会造成c a c h e 中有用的信息被丢弃。通常,c p u 通过c a c h e 访问数据, 在数据复制过程中c a c h e 会被复制的数据所填充。对未采取特殊措施的c a c h e ,复 制之前的有用数据往往被复制的数据所替换,造成信息丢失。 典型地,将磁盘数据经网络传送就受到了不必要的数据复制的开销。首先,服务器发 出读请求,为了满足该请求,内核需要将数据从磁盘拷贝到第一个内核缓冲区,然后复制 到用户缓冲区。服务器读出数据后,立即将数据写到网络端口。这时需要将数据从用户缓 冲区复制到第二个内核缓冲区。最后内核将数据写到网络端口并完成发送。 现代操作系统中,以数据复制为基础的存储管理策略阻碍了计算机系统的性能发挥。 与此同时,存储管理机制上的缺陷已经越来越受到人们的关注。首先,应用无法知道它可 用的物理内存大小。当可用的内存数量改变时,内核并未向应用提供任何信息。其次,应 用无法有效地控制所分配的物理内存的内容。当应用试图管理某些特定物理页时,由于无 法越过内核的界限而失败。最后,应用无法简单地控制预读、写回和内存回收。u n i x 和 w i n d o w s 等商业操作系统的主要目的是使得资源在应用中的分配达到公平和高效。它们部 第1 页 国防科学技术大学研究生院学位论文 采取尽力( b e s te f f o r t s ) 的工作方式,但对于应用来说,它的需求能否得到满足是不可知 的。许多任务如数据库管理( d b m s ) 、垃圾回收和多媒体应用等都未得到很好的服务。究 其原因,主要是因为这些操作系统内核1 二完善的抽象和一般化的服务接1 2 不能很好地支持 应用对存储特定的需求。 然而,在可扩展操作系统当中,内核通常采用一种新的资源抽象方式:最大限度地降 低物理资源的抽象陋1 。对于存储资源可以直接暴露物理页甚至更细粒度的内存空阕。同时, 因为物理内存是很有限的,因此还需要保证有限资源在不同应用之间的安全复用,经过这 样的抽象,应用能利用内核向上暴露的低级资源接v i ,定制特殊的管理策略,满足自身的 特殊需求。许多实验可扩展系统已经证明:指定或调整存储管理策略可以使系统获得明显 的性能提升,这些策略往往要求能够透过存储管理系统暴露的接口而直接访问物理瓷源 1 1 0 1 。 多媒体应用往往对时间比较敏感,要求在短时间内能够得到大量的内存空间。在视频 点播系统中,由于硬件响应上的硬实时限制,服务器应保留足够的资源以保证将视频数据 连续发送给客户,因此缓冲机制是必不可少的【3 】。而庞大的视频数据也决定操作系统必须 采用高效的缓冲策略。如果简单的按照普通交互式应用处理,必然无法满足多客户的需求。 数据库应用也对存储管理提出新的要求。取数据总要通过系统调用来完成,对于拷贝 语义的系统就存在着额外的内核缓冲到应用缓冲的开销。现代操作系统认为正确的管理文 件的方法是将文件映射到内存,但同样存在问题。有些数据库文件实在是太大以至于内存 无法容纳,甚至无法容纳该文件的页表,所以,现代的d b m s 的实现往往绕过操作系统提 供的服务,而自行处理数据的存取。例如,t h o r 数据库服务器使用类型安全语言来编写扩 展模块”。 此外,为了满足新的应用需求,人们提出了许多解决各应用领域问题的策略和机制。 然而,由于目前操作系统的设计缺陷,无法将这些策略或机制实现到操作系统当中。如果 采用可扩展技术由应用自己决定应当采用何种存储策略,那么操作系统无论是在性能上或 灵活性上都将得到较大的提高。 1 2 课题研究内容和主要贡献 课题对可扩展操作系统的一般原理、技术和体系结构进行了研究。重点是设计和实现 可扩展操作系统的存储管理子系统( 以下简称存储管理子系统) 。 1 2 1 可扩展操作系统及存储管理子系统的研究 可扩展操作系统概念的提出使人们对操作系统有了全新的认识。操作系统不再是一个 不为应用所知的“黑匣子”,而完全可以由应用按自身要求定制。本课题对可扩展操作系 统作了深入、细致的研究,并就存储管理子系统设计的几个核心问题进行了细致的讨论。 这些核心问题主要包括: 1 性能:性能是操作系统的根本问题之一。影响子系统性能的因素有以下几点: 执行扩展模块带来的性能提高; 引入扩展机制带来的运行时开销; 引入安全机制带来的运行时开销; 第2 页 国防科学技术大学研究生院学位论文 模块局部的设计优化。 2 可扩展性:设计可扩展系统的一个重要目的是能够使应用方便、灵活地修改或裁 减系统的行为,从而让用户能很方便地使用系统。而实现这个目标往往并不依赖 于系统的结构或机制,仅仅需要系统实现的支持【。因此,在子系统的实现过程 中必须提供适当的硬件、软件资源接口和服务。 3 完整性:所谓完整性,是指系统建立和维护个不变化的资源集合,以此保证系 统内部行为的正确性并履行对客户的承诺【7 1 。完整性可以通过两种实现方式:认证 和保护。认证可能包含软件认证技术,也可能仅仅是一种管理上的决策。保护用 来保证扩展运行时的行为适合规范,或者当规范不能制约时,限制其破坏程度。 1 2 2 存储管理子系统的扩展模型和安全模型 可扩展性和安全性始终是伴随存储管理子系统设计的两个核心问题。扩展模型在很大 程度上决定了扩展在实现上难易度、透明度和执行时效率。可扩展操作系统的安全模型与 传统操作系统的安全模型有很大差异。它不仅要实现诸如资源保护、安全认证等一般行为, 而且还要防护扩展对系统的恶意行为。因此一个宽松的扩展模型和严密的安全模型对于设 计一个可扩展系统是十分重要的。 课题在比较传统操作系统设计的基础上,对现有的几个典型可扩展操作系统中存储管 理子系统的扩展和安全模型进行了分析。最后,总结这些模型存在的优缺点,提出存储管 理子系统的模型。 1 2 3 存储管理子系统的设计与实现 存储管理子系统基于u v m 系统,但是在结构和功能上作了重新设计。u v m 系统是 o p e n b s d i ”】、n e t b s d 等b s d 最新版本所采用的新型存储管理系统。本文分析了u v m 系 统,在此基础上对存储管理子系统进行了设计。设计过程中首先按应用相关性建立了三层 结构的系统模型,然后按照对可扩展性和安全性的要求提出了新的通信和安全机制,最后 给出了一种可行的设计方案。 在这个子系统中,我们对内核功能作了重新划分,并给出了全新的接口。基于此接口, 我们重新实现了库操作系统。在实现中,主要作了以下几点创新: 1 采用了自分页的设计思想,有效改善了存储效率: 2 对物理地址空间和虚拟地址空间进行新的抽象,并将其暴露给应用; 3 提出了物理页分级管理的方案,提高了分页处理速度; 4 在新的资源抽象基础上,对内核内存管理作了相应改进。 1 3 论文结构 论文余下的部分对课题研究的内容和设计思想以及技术方法进行了详细的阐述。 第一章为绪论。首先分析了课题研究背景。介绍了科学技术的发展中,应用对操作系 统提出了新的要求,然而现代操作系统却不能满足这种需求。随后分析了不能满足的原因。 主要是现代操作系统不恰当的内核抽象和所提供的一般化服务不能满足应用需求。最后介 第3 页 国防科学技术大学研究生院学位论文 绍了本课题主要研究目标和主要贡献及创新点。 第二章首先介绍了操作系统的发展背景,分析研究和设计可扩展操作系统的必要性, 并总结了可扩展操作系统的基本结构。然后,围绕存储管理子系统,从性能、可扩展性和 完整性角度探讨了设计的要点。 第三章是在第二章的基础上继续分析可扩展存储管理当中的扩展和安全模型。结合现 有的几种可扩展操作系统,我们对它们的扩展和安全模型进行分类阐述。最后,提出了 y z k e m e l 存储管理子系统的模型,分析了这种模型的特点。 第四章介绍了我们设计的可扩展存储管理子系统。首先介绍了u v m 系统,并对其基 本结构进行分析。随后按照可扩展操作系统的基本原则,我们提出了一种可行的存储管理 子系统的设计方案。按照存储管理子系统的设计结构,对u v m 系统进行改造,重新实现 了可扩展的存储管理子系统。包括:资源抽象的接口、高级对象的映射、物理内存的管理、 物理内存管理和内核空间管理。最后给出了一些关键的算法和接口。 第五章从性能、可扩展性和完整性角度分析了存储管理子系统的优点和缺陷,并给出 了一定的实验结果。 第六章总结了本文的工作,并对今后的工作提出了展望。 第4 页 国防科学技术大学研究生院学位论文 第二章可扩展操作系统综述 人们对操作系统的研究经历了个漫长的时期,同时也产生了众多经典系统,如d o s , u n i x 和m a t h 等。每一种操作系统的产生往往都是基于当时的应用背景。可扩展操作系统 的产生反映了这样的现状:随着应用复杂性增加,任何操作系统都不能同时满足各种应用 对其核心服务和性能的需求。 2 1 发展背景 纵观操作系统的历史,它的研究和发展经历了漫长的演变过程。操作系统一直与机器 的体系结构相关,因而自身的结构也存在着多样的形式。按操作系统的发展过程及其结构 分类主要有以下几种。 2 1 1 集成式系统 这种操作系统的典型代表是m s - d o s 以及m a co s 的早期版本。通常是单用户操作系 统,但可以同时支持多个任务。用户的任务与操作系统没有明显界限,直接建立在硬件基 础之上,整个系统是一个大进程,处于特权级。把操作系统组织成一个过程集,并且允许 任一过程调用其他过程。这种结构( 如图2 - 1 ) 并不强迫数据隐藏在操作系统中,它把有 关系统与应用如何协调一致的设想嵌入在整个操作系统代码中。然而它们没有对操作系统 提供特殊的保护,在这种类型的系统中,任何人都可以独占系统,因而也能轻易破坏整个 系统。扩展这类系统也是一件很困难的工作,因为修改一个过程可能导致若干看起来与系 统无关的错误【”1 。 图2 - 1 集成式系统结构 第5 页 国防科学技术大学研究生院学位论文 2 ,1 2 单内核系统 单内核系统将所有的抽象与服务均实现在内核中,它的典型代表有u n i x 的各种变体 ( 如b s d 、l i n u x 等) 、w i n d o w sn t 和v m s 等。这类系统以结构化程序设计理论为基础, 内核被划分为若干逻辑模块,即处理器管理器、存储器管理器、设备管理器和文件管理器 等,模块之间的连接是通过直接调用其他模块提供的函数来实现。现代的单内核系统大都 采用分层结构如图2 2 ,模块一层接一层地放在其他层的项上,在任何特定层次上的代码 只能调用较低层次上的代码h j 。 图2 - 2 单内核系统结构 单内核系统的优点在于执行效率比较高,层次式的结构使得设计及维护比较容易, 个层可以被替代而不会影响系统其他部分。然而缺点也很明显,应用处于系统之外,互相 并不了解,所有的协商要通过内核完成;应用不了解系统资源的分配情况,因此干涉不了 资源的调度;所有服务都由内核提供,有些应用可能无法得到想要的高效服务。 2 13 微内核系统 微内核系统把传统单内核系统中的某些模块( 服务) 尽可能地从内核当中分离出来, 移动到独立的保护域和进程中,从而使内核变得简洁可靠,图2 3 。这些服务包括:存储 管理服务、进程生成服务、文件系统服务、设备管理服务、网络协议服务等。每个服务运 行在用户态,不定期检查是否有客户请求服务。客户可能是另一操作系统成分,也可能是 一个应用程序,它通过发送请求( 消息、事件等) 给服务器来获得项服务。由于系统的 工作过程存在于两种实体之间,这种结构的系统通常也称之为客户n 务器模型。这类系统 的典型代表是c a r n e g i em e l l o n 大学的m a c h 。 微内核的实现基础是操作系统在理论上的逻辑功能划分。因为几大功能模块在理论上 是相互独立的,所以在长期的单内核设计中逐渐形成了按逻辑划分,功能界限明显的格局, 微内核系统就此脱颖而出。通常微内核只管理较少量的功能,包括:进程的管理和调度、 第6 页 国舫科学技术大学研究生院学位论文 i p c 、内核所需的内存管理、部分硬件相关的设备管理p ”。因此,较之于单内核系统相比, 微内核系统具有以下优点: 充分的模块化,使得模块独立更换而不影响其他模块,方便第三方的开发者设计 模块: 未被使用的模块功能不必运行,因而能大量减少系统的存储访问,从另一个角度 降低了存储管理的负担; 具有很高的可移植性,理论上只需要对微内核部分进行移植即可,因此花费小; 将尽可能多的模块移出内核使其成为共享服务; 模型方式更适合于建立分布式操作系统。 图2 - 3 微内核系统结构 但也正是由于这种结构带来了微内核系统不可避免的缺陷: 所有的过程调用开销比较大,而且需要多次跨越保护边界; 要合理控制每个共享服务器必须安排优化的调度器,而这是很困难的,因为某些 客户可能一直占用某个服务器。 2 。2 。可扩展操作系统的基本结构 微内核系统对操作系统的功能进行了拆分,将系统服务分为核心服务和扩展服务。这 种作法在很大程度上增强了操作系统的灵活性。但是,由于不同的服务处于不同的保护域, 增加了相互调用的开销。再则,微内核的功能划分尚停留在粗粒度上,应用所获得的可定 制性( c u s t o m i z a b i l i t y ) 仍然有限。 在这种情况下,可扩展操作系统应运而生。可扩展操作系统包含一组接口及其实现, 一个或一组应用能按照其特定的需求增加或裁剪系统行为【4 i 。可扩展性则是对这种行为的 难易度和透明性的一种描述。 总体上看,传统操作系统都存在着性能与可扩展性的权衡。或者性能占优,或者可扩 第7 页 国防科学技术大学研究生院学位论文 展性占优。正是这种权衡导致了操作系统在体系结构上出现了差异。从集成式系统到单内 核分层系统、微内核的发展过程中,都反映出操作系统对可扩展性的追求。只是可扩展操 作系统找到了这个平衡点,它打破了原本可扩展性与性能的对立,促成了二者的统一。可 扩展操作系统低级的资源抽象让应用获得了更高的资源控制权,这不仅使系统获得高性能 同时兼顾了可扩展性。 由于设计目标上的差异,不同的可扩展操作系统具有不同的结构形式。s p i n 将安全语 言编写的扩展模块放置在用户地址空间,只有当需要时才动态链接到内核空间执行。应用 程序以过程调用的方式调用扩展所提供的服务。n e m e s i s 在一种称为m i d l 的接e l 定义语 言基础上编写了库操作系统【1 “。库操作系统是能被所有域( 用户地址空间的组织形式,相当 于u n i x 的进程) 所共享的一组模块,可提供诸如域间调度、文件系统和虚存管理等操作系 统服务。库操作系统可由用户白行编写,同时n e m e s i s 也提供了默认的服务接v i 供用户选 择。内核向上调用( u p c a l l ) 库操作系统的服务,各模块之间则以过程调用的方式引用。v i n o 以重构思想构建操作系统,内核被分解成可以重用的类【1 “,这些核态类构成了v i n o 基本 的功能。在核态类之上应用可以自己定制自己的策略,因此所有策略可由应用显式决定。 内核还提供了一些粒度较大的子系统供用户重构如c a c h i n g 、l o g g i n g 和持久性存储等。 综上所述,现代可扩展操作系统的大都采用垂直结构,但是在实现上有所不同。大体 可分两种: 客户一服务器结构 这种结构的系统将扩展实现为单个的服务存储在用户空间,只有当运行时才调入内核 空间,或者仍在用户空间,但通过某种通信方式( 如i p c 、r p c ) 被其他扩展调用,如 图2 4 ( a ) 。每个服务都作为独立的进程( 线程) 来运行。这些系统的优点在于设计的 模块化强,每个扩展可以独立的模块存在,结构清晰。但是它们往往要借助某些接口 语言或者类似语言来辅助完成。 | f 、。r 矗1 1 图2 - 4 可扩展操作系统结构比较 内核一库操作系统结构 建立于内核一库操作系统结构的操作系统上的每个应用,从应用代码到系统代码都浑 然一体,内核只提供体系结构相关的抽象和服务,如上图2 - 4 ( b ) 。系统代码也常常组 织成可被共享的库操作系统,提供应用所需的服务函数。库操作系统作为扩展的主体 第8 页 国防科学技术大学研究生院学位论文 可以带来很多优势,表现在: 1 在库操作系统中实现系统的撼象比在内核实现更容易而且更具针对性: 2 库操作系统可以信任应用,与应用同处用户级,因此进入内核的次数相应减少; 3 库操作系统可以提供更大的可移植性和兼容性。因为应用可以自由地添加或定 制满足需要的服务吲。 典型地,在n e m e s i s 中就运用了这种结构,内核被称为n t s c 提供基本硬件服务, 处于内核级。在此之上的代码都处于各域当中。垂直结构的系统扩展性较好,降低硬 件抽象让系统性能得到了保证。采用共享库,使得对现有系统的支持比较容易实现。 但是这种结构的系统必须采用向上调用的通信机制实现内核与应用或共享库的会话。 传统向上调用的延迟也是比较大的。另外,应用对共享库的依赖性很大,对操作系统 的设计者来说,这是一个很大的挑战。 2 3 存储管理子系统设计的关键问题 可扩展操作系统的设计始终围绕一条原则:系统可以被应用定制( c u s t o m i z e d ) 以最 大程度地满足应用需求。因此,应用必须可以自行编写存储管理子系统,或者操作系统提 供相应的扩展模块供应用选择。然而,在存储管理子系统中引入可扩展性不可避免地会影 响操作系统的其他特性。例如,在引入某些机制的同时,也因为机制的执行带来部分性能 损失。这一节我们讨论有关可扩展操作系统设计过程中需重点考虑的几个问题。 2 31 性能 操作系统是硬件的扩展,因而性能是操作系统的核心所在【2 6 】。早期的操作系统对性能 的片面追求,导致大量采用集中式方案。存储管理系统的功能和策略都固化在内核当中, 产生了集成式系统和单内核系统。这些系统的设计者考虑的是提供什么功能、使用什么策 略才能保证“大多数”应用能够被合理有效地支持。因此,一些符合系统设计决策的应用 可能运行效果很好,然而那些非常规方式使用资源的应用如数据库,则不能被很好地支持, 性能差强人意。它们仅仅采用几个一般性的策略和功能以此获得操作系统的通用性,这种 设计思想是存在缺陷的m 】。 可扩展操作系统将决策权交给应用管理,解决了通用性问题。但在设计存储管理子系 统时,设计者需要做一个重要的权衡:引入扩展代码( 以下简称扩展) 是否能够抵消引入 支持可扩展性的机制的开销。通常,引入扩展模块是为了帮助应用更好地满足自身的性能 要求。只有应用定制的存储管理子系统才是最合适的。面对应的机制的引入是为了解决子 系统的扩展性和安全性要求。然而某些机制本身的运行时开销也会损耗相当部分性能。在 客户一服务结构系统中,系统为了满足科学计算的要求,将分布式存储管理模块下载到内核 地址空间执行。扩展模块实现了科学计算对性能的要求,但下载代码的过程同时增加了系 统开销。所以,设计者必须要在采用的机卷0 所能带来的好处( 追求的目标) 和性能之间做 好认真的比较才能决定究竟该如何设计系统。 在可扩展操作系统模型下,存储管理子系统中存在以下几个性能关键点: 第9 页 国防科学技术大学研究生院学位论文 扩展机制引入:扩展按其运行级别不同,可分为内核级扩展和用户级扩展,它们分 别在内核和用户地址空问中运行。内核级扩展通常要将扩展下载或动态链接到内核 空问,因此下载或动态链接机制带来的开销是影响系统性能的一个重要因素。对于 应用级扩展同样存在性能损耗问题,因为在用户空间执行的扩展往往需要内核提供 的信息来完成对应用程序的服务,所以有必要选择一个轻量级通信机铝q 作为内核与 扩展的桥梁。 保护机制引入:在可扩展操作系统中存在两种保护,第一种是扩展与内核之间的保 护,其次是扩展与扩展( 应用与应用) 之间的保护。扩展一直被内核认为是不可信 的代码( 严格按照安全语言如j a v a 编写的代码在某些系统中被认为是可信的) ,因 此对于下载到内核空间的代码必须要进行安全性检查或者限制其运行空间 ( s a n d b o x i n g ) 。即使扩展与扩展之间也具有不同私有权,因此应当提供适当的 保护机制实现不同扩展之间的分离。对于基于硬件的保护还存在着应用请求访问权 与实际访问权的验证。 另外,存储管理子系统局部设计的优化也不容忽视,现代可扩展操作系统在结构上与 传统系统有很大的差异,因此局部设计可以采用适合自身的独特方式。例如,分级的物理 内存管理可以减少系统调用的使用( 见5l 节) :无页表参与的对象映射可以提高数据库访 问效率;支持q o s 的内存分配能更好满足多媒体应用p i ;等等。 2 3 2 可扩展性和接口 现代操作系统,如微内核系统m a c h 只支持部分关键模块的可扩展,因而只有一定量 的策略可以被定制,比如调度策略、存储管理策略等。设计可扩展操作系统的目的是要求 在整个系统都提供应用可定制,这样每个重要的策略都可以被替换。从而,不同的应用都 能够按照自己的要求定制系统更好地帮助应用完成功能。 设计可扩展系统的另一个重要目的是,修改或裁减系统的行为比较方便,使得用户能 很灵活地使用系统,这种特性被称为易增性( i n c r e m e n t a l i t y ) 1 6 ) 。理想情况下,对系统行 为较小的改变应该只影响少量代码的修改。面向对象、基于代理等技术已经在可扩展操作 系统的设计当中体现出了很高的易增性,只是它们对不可信代码的处理还存在不足1 7 1 。比 较成功的可扩展操作系统都采用了降低硬件抽象的策略,甚至希望完全消除硬件抽象【8 1 , 使得应用能获得更多的资源管理权。获得控制权,意味着应用自身的职能更高,可以调节 资源管理粒度,进而提高易增性。易增性的实现往往依赖于系统的具体实现而不依赖系统 的框架结构或系统所采用的机制。因此,在存储管理子系统的实现过程中,设计者必须提 供适当的资源和服务接口以方便应用使用。一般在存储管理子系统的实现中包含两种接 口: l 、硬件资源接口 在存储管理子系统中,最重要的一类软件接口是那些提供对硬件资源访问的接口。某 个存储管理子系统可能提供下列标准硬件接口:t l b 管理、设备管理、中断、自陷等。这 些封装硬件结构的接口构成了存储管理子系统的扩展平台,同时决定了系统的扩展能力, 因为所有的高级抽象都必须依赖于它们。这些接口对于提高底层硬件服务的易增性效果很 好,硬件服务程序可以按需要控制硬件资源的使用。然而,对于上层的服务,如果简单地 依靠它们构建是比较困难的。例如,扩展个文件系统来支持数据压缩很难简单地通过基 第1 0 页 国防科学技术大学研究生院学位论文 本的设备访问接口来完成。因此,我们还需要另外类对软件资源的接口。 2 、软件资源接口 这类接口是指那些能提供可扩展性的软件资源接1 :3 ,而对于如文件系统、网络协议、 进程管理之类的接1 :3 对易增性的支持比较困难。在我们的实验系统中,虚地址空间抽象 r e g i o n 提供了软件资源接口。所有的高级抽象诸如文件对象、设备对象都可以在此基础上 构造。u n i x 的v n o d e 接口【9 1 也属于这类接口,虽然它提供的易增性有限,但对于扩展文件 系统却很有帮助,通过v n o d e 可以在不修改磁盘设备驱动和文件系统接口的情况下,重新 构造新的文件系统。另外,一个建立在v n o d e 之上的文件系统可以被扩展使用不同的缓冲 c a c h e 管理器,甚至可以修改不同的缓冲块替换算法。 2 3 3 完整性 可扩展操作系统应该提供一个可以容纳现存系统代码和新的扩展代码的名字空间。在 m s - d o s 中,唯一、共享的地址空间为系统和用户提供了所需的名字空问。基于微内核的 系统,如m a c h 、c h o r u s i ”l ,名字空间是由在不同地址空间中实现的接口通过i p c 机制构 成的。虽然,公共的名字空间也能够提供扩展性,但是同时也可能会造成系统冲突,因为 一个扩展可能会对其他扩展的资源重命名,从而影响其他扩展的执行。由于系统与扩展的 代码来源不同,系统必须认为扩展是一个恶意的不可信实体,因此,可扩展系统的一个核 心问题是保护系统完整性。 在存储管理子系统中,所谓完整性,是指系统建立和维护个一致的变量集合,以此 保证系统内部行为的正确、履行对客户的承诺【n 。讨论完整性时需要注意的是,与传统存 储管理系统不同,不仅要实现存储保护,还必须考虑因为可扩展部分加载后所导致的错误 行为,如:资源积聚( r e s o u r c eh o a r d i n g ) ( 无穷循环、网络泛洪、分配过多的存储资源和 内核锁等) 、拒绝服务和使用未授权的内核接口等u 。完整性可以通过两种实现方式:认 证和保护。 认证 认证在扩展安装和部署之前就保证了其行为的正确性。认证可能包含软件认证技术, 验证一段代码的正确性,也可能仅仅是一种管理上的决策认为菜段代码是可信的。因为程 序的复杂性和多样性,软件认证方法并没有完整、通用的解决方案。但是,如果在扩展模 块加载时系统能够自动确认代码的正确性,这将是十分高效的。 大多数系统使用一种基于带有事先存在高信任度的手工证书的认证方式。系统功能被 聚集到唯一的一个保护域内核当中,而内核中的代码便被认为是正确的。具有充分管 理权的人可以对目标扩展进行检验,判定其是否正确,并将其安装在内核当中。这种人为 认证的方式对于扩展源于单个认征域( 如系统的主要供应商) 且扩展较少的系统是比较有 用的,因为少量的认证可以通过手工完成。对于那些拥有许多扩展且有独立源的系统,这 种认证方式会带来系统健壮性问题。因为不同的扩展源可能在某些方面会产生不一致性。 保护 保护用来保证扩展运行时的行为适合规范,或者当规范不能制约时,限制其破坏程度。 在系统缺少验证功能的情况下对运行时的扩展加上一些限制是很必要的。例如,通过边 界寄存器,将内存访问操作限制在分配给扩展的内存区域中进行。这个限制可以通过某种 机制如存储保护加以实施,而存储保护也有多种实现方式,如硬件存储管理、软件隔离、 第1 1 页 国防科学技术大学研究生院学位论文 安全语言等。 通过保护机制严格地保证扩展正确性也不是直接可以获得的。每个系统暴露给扩展的 接口,或者是硬件资源接口,或者是软件资源接口。所以必须为接口的使用规定一套限制, 并且保证阻止接口的错误使用。给定限制条件之后,还必须决定采用适当的机制来实施。 最后,确定机制后还要选择机制的实现方案,以保证该机制是正确的,系统的性能是高效 的。但是,保护机制对于建立可扩展系统也只是必要的,而并非充分的。因为它只能保证 微观行为( m i c r o b e h a v i o r ) 一一代码访问什么一一的正确性,而对于宏观行为 ( m a c r o b e h a v i o r ) 代码段做什么是无法保证的【6 】。宏观行为要远比微观行为复杂的 名。 2 4 小结 传统操作系统片面追求性能或可扩展性,导致了二者产生了分歧。现代可扩展操作系 统找到了二者的结合点降低资源抽象,使得二者成为统一。从可扩展操作系统的体系 结构上看,大都采用垂直结构,这种结构更利于体现可扩展操作系统的优越性。但是,在 具体的实现上,不同的系统采用不同的方式。 在可扩展操作系统结构下,影响存储管理子系统的设计的主要因素有:性能、可扩展 性和完整性。其中,性能体现了系统设计的根本要求,可扩展性是关键,完整性是对系统 正常工作的保证。 第1 2 页 国防科学技术大学研究生院学位论文 第三章存储管理子系统的扩展和安全模型 在可扩展操作系统中,可扩展性和安全性是设计的两大核心问题,而且扩展和安全是 紧密不可分的。扩展的粒度决定了安全实现的难度,扩展的实现要由安全来保证,在存储 管理中同样体现了二者的辩证统一关系。这一章我们缩小范围重点讨论存储管理相关的扩 展和安全模型。 3 1 扩展模型 一个扩展能够改变系统可能提供的功能,从这个角度来看,所有的软件在某些方面或 多或少都是可以扩展的。但是,它们在实现上难易度、透明度和效率存在差异。在操作系 统的设计中,扩展模型决定了这三个要素。一个性能高的扩展模型可以忽略性能上的少量 损耗,使设计者更关注于内核与扩展之间、扩展与扩展之间交互形式,从而增加交互的多 样性;利用i p c 扩展服务的扩展模型只会降低系统性能,给系统的带来更大的压力。因此, 选择一个好的扩展模型对系统的性能和扩展性极为重要。 在传统操作系统中,存储管理都遭受不应
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版光伏发电项目施工合同小型工程本文本
- 2025版动漫衍生品授权销售合同汇编
- 2025翻译公司知识产权保护保密协议
- 2025版无人机监控设备采购安装合同
- 二零二五年屋顶雨棚安装工程环保验收合同
- 二零二五年度挖掘机采购合同及维修配件供应范本
- 二零二五版旅游客车租赁与旅游文化交流协议
- 2025版绿色交通保障返租回报资金担保合同
- 2025版企业内退员工再就业培训及就业服务合同
- 2025版投影机采购及配套软件服务合同
- 混凝土配合比验证检验委托书模板
- 住房公积金投诉申请书
- 众辰变频器说明书3400
- 《世说新语》乘船 完整版课件
- 施工现场安全检查记录表(周)以及详细记录
- 《财务管理》课程教学实施方案
- 煤矿地质基础知识课件
- 检验科生物安全风险评估报告
- 西安市建设工程竣工验收备案表
- 大学体育四——啦啦操的教学设计
- 原始点疗法PPT课件
评论
0/150
提交评论