




已阅读5页,还剩60页未读, 继续免费阅读
(计算机科学与技术专业论文)可扩展操作系统中网络子系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国防科学技术大学研究生院学位论文 摘要 操作系统的设计始终是计算机领域的重要课题。从上世纪9 0 年代开始,计 算机体系结构技术和网络技术飞速发展,计算机应用领域急剧膨胀,传统操作系 统设计无法满足日益增长的应用需求,操作系统的可扩展性开始受到广泛关注。 可扩展操作系统经过近十年的研究已取得了初步成果,并极有可能引发新一轮的 操作系统技术变革。 我们对国内外可扩展操作系统的结构及各项技术进行了广泛而深入的研究, 采用了垂直的基于库操作系统体系结构,并且针对用户级网络子系统的特点,构 造了一个基于用户级协议栈的原型系统。 论文提出了一个三层网络子系统结构:内核级协议无关层、内核级协议相关 层和用户级协议栈。面向垂直可扩展库操作系统的用户级协议栈实现增强了网络 子系统的扩展能力,结构所要求的早期多路分用同时也极大地提高了系统性能, 弥补了传统网络系统的缺陷;内核级的协议相关层分离出了协议的一般性和实现 特殊性,有效地保证了协议的语义,提高了协议处理效率:内核级的协议无关层 扩展了包过滤技术,实现了协议无关的数据包处理,成功地解决了p d u ( p r o t o c o l d a t au n i t ) 分用的核心问题。 系统采用懒惰接收者处理的技术来优化p d u 的接收处理性能,减小了系统产 生活锁的可能性,提高了系统的安全性;使用基于m b u f 的缓冲管理技术和覆盖 ( o v e r r i d e ) 技术,减少了数据传递中的拷贝次数,提高了p d u 的收发效率,减缓 了协议处理的软件瓶颈。 关键宇:进程,网络,协议,分组,多路分用 国防科学技术大学研究生院学位论文 a b s t r a c t o p e r a t i n gs y s t e md e s i g ni so n eo ft h em o s ti m p o r t a n tf i e l d si nc o m p u t e rs c i e n c e d o m a i n 。s i n c e1 9 9 0 sw i t ht h ed e v e l o p m e n to fh a r d w a r ea sw e l la sn e t w o r k t e c h n o l c i g i e sa n dd r i v i n go fr a p i di n c r e a s i n ga p p l i c a t i o nr e q u i r e m e n t s ,t r a d i t i o n a l o p e r a t i n gs y s t e mh a s n tk e e pu pw i t ht h ev a r i o u sr e q u i r e m e n t so fa p p l i c a t i o n s ,p e o p l e b e g i nt os t u d ye x t e n s i b l ea b i l i t yo fo p e r a t i n gs y s t e m ,a n da f t e rt e ny e a r sw o r km a n y a c h i e v e m e n sh a v e b e e ng o t t e n ,t h i sm a yr e s u l ti na n o t h e rr e v o l u t i o no fo p e r a t i n g s y s t e md e s i g n h a v i n gs t u d i e da r c h i t e c t u r e sa n dt e c h n o l o g i e so fe x t e n s i b l eo p e r a t i n gs y s t e ma t h o m ea n da b o a r d ,w ea d o p ta nv e r t i c a la r c h i t e c t u r eb a s e do nl i b r a r yo p e r a t i n gs y s t e m a n dt h e nw et r yt oi m p l e m e n tap r o t o t y p ew i t hu s e rl e v e lp r o t o c o l sl i b r a r ya i m i n ga t c h a r a c t e r so fu s e rl e v e ln e t w o r ks u b s y s t e mu n d e rt h a ta r c h i t e c t u r e w ec a r r yo u tat h r e e l a y e r sn e t w o r ks u b s y s t e ms t r u c t u r et h a t i s p r o t o c o l i n d e p e n d e n tl a y e ri nk e r n e l ,p r o t o c o ld e p e n d e n tl a y e ri nk e r n e la n du s e rl e v e lp r o t o c o l s t a c k t h ei m p l e m e n to fu s e rl e v e ls t a c ki nv e r t i c a la n de x t e n s i b l eo p e r a t i n gs y s t e m a r c h i t e c t u r ei m p r o v e st h en e t w o r ks u b s y s t e m se x t e n s i b l e a b i l i t y ,t h en e c e s s a r y t e c h n i q u eo fe a r l yd e m u l t i p l e x i n ga l s oi m p r o v e sp e r f o r m a n c ea n dm a k e su pf o rt h e l i m i t a t i o n si nt r a d i t i o n a ln e t w o r ks u b s y s t e m p r o t o c o li n d e p e n d e n tl a y e ra n dp r o t o c o l d e p e n d e n tl a y e rs e p a r a t e su n i v e r s a l i t yo fp r o t o c o lh i m s e l fa n ds p e c i a l t i e so fp r o t o c o l i m p l e m e n tw h i c hg u a r a n t e e sp r o t o c o ls y n t a xa n di m p r o v e sp e r f o r m a n c e p r o t o c o l i n d e p e n d e n tl a y e rc a nd e a lw i t hp a c k a g e si ns p i t eo fd i f f e r e n c e so fp r o t o c o l sb y e x t e n d i n gp a c k a g ef i l i t c rt e c h n i q u e ,w h i c hs o l v et h em o s ti m p o r t a n tp r o b l e mi n p r o t o c o ld a t au n i t ( p d u ) d e m u l t i p l e x i n g l a z yr e c e i v e rp r o c e s s i n gt e c h n i q u ec a r lo p t i m i z et h en e t w o r ks u b s y s t e ma sw e l l a sr e d u c et h ep o s s i b i l i t yo fl i v e l o c kt a k i n gp l a c ew h i c ha l s oi m p r o v et h es y s t e m s s e c u r i t y t h eu s eo fm b u fi nb u f f e rm a n a g e m e n ta n do v e r r i d et e c h n i q u ec a na l l e v i a t e t h eb o t t l e n e c ko fp r o t o c o lp r o c e s s i n gb yr e d u c et h ec o p ya n d i m p r o v et h ep e r f o m a n c e o fp d us e n da n dr e c e i v e k e yw o r d s :p r o c e s s ,n e t w o k , p r o t o c o l ,f r a g m e n t ,d e m u l t i p l e x i n g i l 国防科学技术大学研究生院学位论文 图目录 1 一般操作系统结构5 2 垂直扩展操作系统结构1 2 lt c p i p 协议族中不同层次的协议1 4 2 网络输入输出的层间通信1 5 3 协议栈的组织形式1 7 1 子系统逻辑结构2 2 2 数据进入协议栈的封装过程2 3 3b s d 系统中u d p 数据包的分用过程2 3 4 用户级网络子系统的数据包分用2 4 5 以太网链路协议格式2 5 6 基于用户级服务器的数据包分用2 6 7 对主机f o o 数据包的过滤2 9 l 用户级网络子系统实现结构3 4 2 接收缓冲链表4 2 3m b u f 队列构成的应用接收缓冲结构4 5 4 重组链表4 9 5m u b f 与重组表存储空间上的覆盖关系5 0 曩卫奠& & t t 乱屯t t t 曩豇曩豇 图图图图图图图图图图图图图图图图图 国防科学技术大学研究生院学位论文 表目录 表4 1b p f 指令表2 8 表4 2b p f 寻址格式2 9 表4 3i p o f f 结构3 2 表5 1 链路层数据结构。3 6 表5 2 输入队列头4 1 表5 3 内核缓冲区头4 2 表5 74m b u f 数据结构一4 4 表5 5m b u f 常用函数操作4 6 表5 6i p 数据结构4 8 表5 7 重组链表头。4 8 表5 8i p a s f r a g 结构4 9 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意 学位论文题目: 互芷匮握篮菱红主圆终王歪蕴数赶窥生塞塑 学位论文作者签名:多堑整日期:力一争年,月心日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅:可以将学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书。) 学位论文题目:互芷匮握缝基统主圜鳖丞统的盟塞量塞理 学位论文作者签名: 垄兰垄 日期:z 争年,月日 作者指导教师签名:翌鱼苎日期:厶一,年,f 月,厂日 国防科擎技术大学研究生院学位论文 第一章引言 1 1 课题背景 计算机自身的发展和用户需求的不断增加始终是推动操作系统发展的两个 巨大动力。操作系统的发展伴随着计算机体系结构的发展,经历了一个漫长的过 程。大约每隔十年,操作系统就会经历一段重新构造的过程。 上世纪四、五十年代用于第一代计算机上的插板和穿孔卡片还不能算是严格 意义上的操作系统,但它已经有了管理和维护方面的雏形。五、六十年代的晶 体管计算机上则出现了早期的操作系统批处理系统,f m s 和i b s y s 都是其 中的典型代表。随着集成电路在i b m 3 6 0 等计算机上的应用,多道程序和联机的 即时外设操作等关键技术得到了广泛的应用,分时操作系统逐渐走向前台。0 1 美 国m i tb e l ll a b s 和g e 等开发的m u l t i c s 分时操作系统对随后的系统产生了巨大 的影确,其中一个重要的结果就是导致u n i x 诞生。随着时间的推移,操作系统已 从一个简单的系统逐步演变成一个庞大而复杂的系统。 之后人们对它进行不断的重新构造,8 0 年代出现了微内核结构操作系统。微 内核系统和单内核系统的最大不同在于:微内核系统引入了系统资源抽象。它具 有很多优点,如:使系统的结构更加模块化;系统可靠性和容错性好:系统具有 一定的可扩展性和可裁减性。但是人们在研究和使用微内核操作系统的过程中, 发现其普遍存在严重的性能问题效率低下。如:m a c h 3 o 的性能就不如4 3 b s d 这种传统单内核结构的操作系统。 为了提高操作系统的性能和灵活性,上世纪9 0 年代以来,可扩展操作系统的 研究与设计异军突起。可扩展操作系统由一套接口和实现组成,可以根据应用的 需求而灵活改变,它缓解了核心服务不能满足某些应用需要的矛盾。可扩展操作 系统的设计目标主要是提高系统性能和灵活性,尤其是能谚满足某些不可预期的 应用需求。 与前几次操作系统发生演变的原因不同,对可扩展操作系统的研究更主要的 是由应用需求直接推动的。近十年来,中间件技术、网络技术、嵌入式技术等对 传统操作系统产生了不小的冲击。由于传统操作系统无法满足日益增长的应用需 求,进恧不德不为某些应忍专门设计一种操作系统如多媒体操作系统。因此,开 发一种可适应不同应用的通用可扩展操作系统已迫在眉睫。在技术方面,微内核 系统的研究和设计为可扩展系统的研究开发做了充分的技术储备。因此可以说, 开发一种通用的可扩展操作系统的诸方条件已经成熟。目前这方面的研究成果主 要有:m i t 的e x o k e r n e l 、w a s h i n g t o n 大学的s p i n 、h a r v a r d 大学的v i n o 以及 第1 页 国防科学技术大学研究生院学位论文 i l l i n o i s 大学的c h o i c e s 。这些系统的实现技术各有千秋,但是许多问题还存在 一些争议,这恰好说明了可扩展操作系统不成熟的一面,它正是我们开展课题研 究的直接原因。 1 2 课题研究内容 究竟什么原因阻碍了操作系统的可扩展性能? 操作系统的标准定义是:它是 安全多路复用和抽象物理资源的软件。0 1 d a w s o nr e n g l e r 认为正是这个定义出 了问题。他指出:将操作系统看作硬件抽象的观点,是残缺和错误的。没有操作 系统抽象可以适合所有应用。也根本不可能以一种方式抽象资源并对所有应用都 可用,更不可能实现这些抽象高效地跨越完全不同的需要。然而时至今日许多操 作系统设计人员仍然沉湎于大规模的硬件抽象。我们发现用这种方式建立的操作 系统有如下特性:它们复杂且规模巨大,同时降低了系统可靠性,阻碍了对系统 的修改;它们过度全面,使得它们的使用非常昂贵,它们的实现消耗了大量的机 器资源;它们强加了一个高层接口,阻止了操作系统外新抽象的高效实现。e n g l e r 为此进一步指出:提供操作系统抽象的试图是所有操作系统问题的根本,必须重 新给操作系统定位。 我们研究后发现也正是这个原因,从根本上影响了系统的可扩展能力。 e n g l e r 主张系统地消除操作系统抽象,降低操作系统强加的接口以接近于原始 硬件。我们的工作正是在这个指导思想下展开,我们希望尽可能的向应用暴露计 算机硬件资源,如:c p u 、磁盘、网络等,用户可以根据需求对这些资源做进一 步抽象以便后续开发使用。为此,经过深入研究,我们的系统采用了一种垂直可 扩展的的结构,并对它进行了部分改造,使其能够达到扩展性、效率和安全性的 较完美结合。这种结构使用一个极小的内核来复用机器硬件资源,并提供较低级 的资源抽象,在此之上,库操作系统提供了绝大多数服务,并最终链接进入应用 进程。应用主要通过实现和调用不同的库来达到可扩展的目的。 随着i n t e r n e t 的发展,网络需求千变万化,因此实现利于扩展的用户级网 络子系统将最能体现可扩展操作系统的价值。其次,在传统单内核( m o n o l i t h i c ) 系统中网络子系统占有相当大的比重,如:4 4 b s d 中超过2 0 ,所以在用户级实 现网络子系统将有利于整个系统其余部分的开发调试。然而,在垂直结构的可扩 展操作系统中,传统类b s d 的经典网络子系统设计模式无法满足要求,其中最大 的障碍在于用户级协议栈的实现。本课题中对用户级网络子系统的实现方法进行 了探索性研究。由于t c p i p 协议簇使用广泛并具代表性,因此本课题在 o p e n b s d 3 3 系统中选择了t c p i p 协议簇的用户级协议栈实现,希望能够为在用 户级实现其它协议栈提供参考。 第2 页 国防科学技术大学研究生院学位论文 用户级网络子系统的研究内容主要有: 对网络接口的抽象 我们认为传统的s o c k e t 接口是低效的也不利于扩展,我们向用户提供的网 络接口抽象是:发送接口、接收接口、i o 控制接口。 用户级网络子系统体系结构的研究 我们提出一种基于用户级协议库的三层网络子系统,它有利于对协议的扩展 和对不同应用的优化,并能满足整个操作系统的设计要求。 早期多路分用 由于这种基于用户级协议库的网络子系统体系结构的限制,我们必须在网络 包进入相应协议栈前定位用户进程,即早期多路分用, 对网络子系统的优化 主要是基于懒惰接收者协议,它可以消除传统操作系统对网络子系统的不良 记帐,有效减小活锁( 1 i v c l o c k ) 并有良好的过载性能。 1 3 论文结构 我们已经分析了课题的研究背景,确定了课题的研究目的,并介绍了全文的 组织结构。下面我们将首先介绍可扩展操作系统的产生背景、特点、研究内容、 发展方向,并深入分析相关扩展技术,在此基础上给出可扩展操作系统体系结构。 论文将针对网络子系统的设计问题,分析传统b s d 网络子系统设计的缺陷, 指出了这种设计在满足可扩展操作系统的需求方面存在的不足,并且在数据包接 收过程中存在严重的性能和公平性问题。为此,我们深入分析了用户级协议栈的 三种网络子系统体系结构,并总结了三种体系结构的特征,在此基础上选择了用 户级协议库结构,然后根据需要做了相应优化。第四章“用户级网络子系统的 设计”是本文研究的重要内容,它详细描述了我们设计的用户级网络子系统的分 级扩展机制,使用技术等。并通过深入分析指出,该设计可以解决传统网络予系 统的不足,且能满足可扩展操作系统的需要。 随后,我们将详细介绍用户级网络原型子系统的设计与实现,着重讨论缓冲 区管理、i p 分组及多路分用三个关键问题的实现细节并分析原型系统的性能。 最后,论文提出了下一步的研究方向。 第3 页 国防科学技术大学研究生院学位论文 第二章可扩展操作系统及使用技术分析 传统操作系统的设计试图为所有应用提供广泛而高效的资源抽象。但结果往 往事与愿违,庞大的抽象集合和过高的抽象级别不仅增加了系统的设计难度,实 际产生的效果却常常是在面向部分应用优化资源抽象的同时,不可避免地损害了 另一类应用的性能。由于这层抽象是固定不变的,所以传统操作系统根本无法满 足当前层出不穷的应用需求,这就引发了可扩展操作系统的研究。可扩展操作系 统的主要出发点是为用户提供一套灵活的机制和策略,从而让用户选择一种最佳 方法来优化应用的计算,但是灵活的机制往往带来性能、安全性等方面的问题。 本章介绍了可扩展操作系统的产生背景、特点、研究内容、发展方向,并深入分 析了相关扩展技术,在此基础上提出了我们的可扩展操作系统体系结构。 2 1 可扩展操作系统的产生 操作系统的研究与开发是计算机科学领域的一项重要内容,当第一台计算机 出现时,用户就有了控制机器和管理资源的需求。随着计算机体系结构从主机 系统向工作站、个人电脑乃至嵌入式系统的发展变化,这种需求的具体内容也各 不相同,但它始终是推动操作系统不断发展的原动力。 操作系统最初只是简单的设备管理和控制程序。计算机系统功能的不断加 强也令操作系统的规模和复杂度相应地增长,每一代计算机都为新操作系统的研 制和应用提供了基础。只要有新型的设备和计算模式出现,就必然对操作系统技 术提出新的要求,只不过表现形式会根据技术的发展而各不相同。 3 1 另一方面, 近十年来,中间件技术、网络技术、嵌入式技术等同样对传统操作系统产生了不 小的冲击。在这种冲击下,我们今天才会面对诸多形态各异、面向不同应用的操 作系统:多媒体操作系统、嵌入式操作系统、实时操作系统直至基于智能卡的操 作系统。可见,计算机自身的发展和用户需求的不断增加始终是推动操作系统 发展的两个巨大动力。 一个传统的操作系统主要由内核、运行时间库( g u n t i m el i b r a r y ) 和服务器构 成。内核是执行特权模式下的一段代码,在硬件的支持下可直接访问物理资源。 应用运行在用户级,为应用提供系统服务的软件通常分布在内核、链入应用的运 行时间库以及用户级服务器三个部分。这三部分称为系统代码( 如图2 1 ) 系统 代码提供应用编程接口a p i ,它提供较高层次的抽象,如p o s i x ,通常也是程序 员所关注的。内核向用户程序提供的接口叫系统编程接口s p i ,该接口由系统调 用访问,并往往通过一次陷入进入特权级。内核偶尔也使用向上调用“u p c a l l ” 进入应用或服务进程 4 1 。s p i 为有效、可配置和安全的a p i 提供必要的支持。 第4 页 国防科学技术大学研究生院学位论文 f 应用级l 代码i 上 a p i 一 系统代 码 用户代 码 图2 1 一般操作系统结构 操作系统定义应用与底层物理资源的接口。它为应用提供一个虚拟机,在这 之上操作系统通过诸如:进程、文件、地址空间、进程间通信及多媒体资源的抽 象来连接应用。虽然当今大多数主流操作系统都为应用提供了强大的抽象,但它 们均不能使有特殊需求的应用很好的利用物理资源。这主要是因为这些操作系统 的抽象是面向大多数普通应用的。传统操作系统试图提供所有应用所需要的抽象 特征。这种做法迫使一些应用在用不上操作系统提供的某些抽象时不得不引入额 外的开销。操作系统中的抽象固定不变并且不能被不可信的应用替换,这就损 害了应用的效率。而实际上也根本找不到一种方法,它提供的物理资源抽象适合 所有的应用需求。【5 】例如:数据库设计者不得不在文件系统之上实现记录的随机 访问,但显然绕开文件系统更有利于设计。目前,已有越来越多的需求驱使人们 开发一种可扩展的操作系统来发掘硬件提供的高性能,为应用开发人员提供更多 的灵活性及提高系统抽象的性能和可操作性。 随着应用需求的与日俱增,许多应用需求已远远超出了操作系统设计时的抽 象假设,因此设计一种便于扩展的操作系统已破在眉睫。8 0 年代出现的微内核 操作系统可看作是可扩展操作系统的前身。微内核系统通过缩小内核尺寸,使内 核尽可能的只实现最基本的功能,而将所有系统服务移至可信任的用户级服务中 完成来实现可扩展性。它具有很多优点,如:系统的结构更加清晰和可维护;系 统可靠性和容错性好;系统具有一定的可扩展性和可裁减性。但是人们在研究和 使用微内核操作系统的过程中,发现其普遍存在严重的性能问题效率不高。 为了提高操作系统的性能和灵活性,上世纪9 0 年代以来,可扩展操作系统的研 究与设计异军突起。可扩展操作系统包括一组接口和实现,这些实现可被单个应 用或一组应用改变,从而实现系统可裁减性以适应特殊需求。【6 】经过近十年的发 展,目前可扩展操作系统的设计已经有了一些成功案例,如m i t 开发的 第5 页 心 权码 特 卵tl,ii 国防科学技术大学研究生院学位论文 e x o k e r n e l ,华盛顿大学开发的s p i n 等。当前。可扩展操作系统的研究方兴未艾 并已成为操作系统领域的研究热点。 2 2 操作系统的可扩展性 从广义角度讲,现代操作系统均存在一定的扩展能力,只是扩展的难易程度 存在差异而以,如l i n u x 内核就是可裁减的。下面我们以扩展需求的发起者和扩 展时机为主要标准【3 8 j ,从广义角度对操作系统的扩展能力进行分析。 从扩展的发起者角度看,它可以是:人、应用自身以及操作系统自身。其中, 由人发起的扩展通常由系统管理员或操作系统设计者完成。而由操作系统自身发 起的扩展又称之为自适应系统,它使得扩展行为具有一定的智能性。 从扩展的时间角度看,它分为静态扩展和动态扩展两类。其中静态扩展指在 设计、编译或系统安装时的扩展,而动态扩展指系统启动或运行时的扩展。 2 2 1 由人发起的扩展行为 由人发起的静态扩展行为主要针对操作系统设计者,它为设计者提供可定制 的操作系统框架。如果应用领域是己知的,那么就可以在此框架下构建一个特殊 的操作系统,它只支持已知的功能,仅此而已。这种设计可以产生特定领域内高 性能的操作系统。由某种框架产生的特定操作系统将由设计人员在设计时实现定 制。它提供的扩展能力适用于嵌入式操作系统开发,并可用来为设备提供特定的 功能。对于蜂窝电话和网络路由这种不同领域的特定应用,它们的操作系统都能 来自同一种设计框架。但这种模式也存在缺点,主要是新的功能或应用不能被专 用操作系统支持。这类框架开发工具有: t h ef l u xo s k i t 一种直接开发特殊o s 的方法。【7 】 s c o u t 一种面向通信的方法。嘲 c h o i c e s 一种面向对象的方法。1 9 j p e b b l e 一种面向构件的方法。1 1 0 l 由人发起的动态扩展行为在许多操作系统产品中主要表现为:系统管理员在 系统启动或运行对实现动态调整。启动时,内核可以通过传来的参数或配置文件 来调整自身的行为:而在运行时,管理员可以通过安装和部署内核模块或通过观 察性能参数来调整操作系统。 由人发起的无论是静态还是动态扩展行为在传统操作系统中已经比较成熟, 可扩展操作系统继承了这些特征,但它超出我们研究的范畴。 第6 页 国防科学技术大学研究生院学位论文 2 2 2 由应用发起的扩展行为 支持由应用发起的扩展行为是可扩展操作系统的主要特征,也是可扩展操作 系统当前研究的重点。应用是操作系统的主要客户,它的需求只有在系统启动或 运行中产生,因此由应用发起的扩展行为只能是动态的。传统操作系统在增加新 需求( 如多媒体应用) 时存在很大困难,而可扩展操作系统在这方面表现则十分 出色。应用往往最清楚自身的需求,这些信息将指导操作系统调整自身的行为以 实现可扩展性。虽然动态可扩展机制带来了额外的性能开销,但是引入动态可扩 展机制的目的在于提高系统的整体性能。 应用发起的扩展行为主要有核内扩展和核外扩展两类。微内核系统最能代表 应用在核外的扩展行为。微内核系统的核很小。系统服务在用户级并很可能是由 应用提供的,内核通过向上调用( u p c a l l s ) 调用这些服务。早期的微内核操作系统 并没有达到预期目的,这主要是因为其低性能和粗粒度的服务使得可扩展性实际 没有得到有效支持。新一代微内核操作系统尽量缩小内核资源抽象的数目,设计 人员尽可能只提供必不可少的适当抽象( 如某些系统提供:地址空间、线程、 i p c 、标识等) ,抽象的数目越少,内核为应用提供的灵活性越大。当把微内核的 思想发挥到极至时,操作系统仅仅是底层硬件的抽象而所有服务均在用户空间, 它往往是一个库。新一代的微内核操作系统虽然更能满足可定制性的要求,但是 微内核天生就有大量跨域的问题( 在内核与用户和不同地址空间之间) 。跨域的 开销大大影响系统的整体性能和灵活性。虽然我们可以将基本的操作系统库,如 u n i x 的文件系统并入内核或通过对核外服务授予特权的方法来提高性能,但这 种方法不利于扩展。 应用在核内的扩展行为通常需要一个可扩展的内核。可扩展内核允许用户代 码在特权集内以某种安全的方式执行,结果是内核动态变化的行为并消除了用户 内核之间及不同用户地址空间之间多次切换的问题。由于用户引入内核的代 码是不可信的,内核必须防止各种各样扩展代码的恶意破坏或不正当行为。其所 提供的安全机制对核的组织和设计至关重要。操作系统中常用的安全策略有认证 和保护两种。 2 2 3 自适应扩展行为 自适应操作系统可以看作是可扩展操作系统的高级形式,即智能可扩展操作 系统,它使得扩展行为具有一定智能性。 自适应由操作系统自身发起而无需干涉就能完成操作系统的扩展行为。可移 植( p o r t a b i l i t y ) 被认为是静态的自适应形式。例如,它可以探测操作系统是在 何种平台上构建的,并通过自己的调整来选择使用不同的c 预编译程序以适应 第7 页 国防科学技术大学研究生院学位论文 不同硬件平台。 但最有吸引力的还是操作系统自身通过动态调整以适应正在运行的不同应 用。为达到这一目的,操作系统必须独立的观察和分析应用并自动调整自身行为 以提高应用的执行效率。理想情况下,这种操作系统往往能为运行的应用优化执 行环境。产品化的操作系统往往只在有限的领域内支持特定已知子系统的自适应 性。例如,文件系统,它可以通过监控用户应用程序来优化其执行性能。 通用的自适应操作系统可以说这类操作系统的终极目标。但从现有的技术上 看,它的构造是相当困难的。这些困难表现在以下三个方面。 首先,操作系统必需通过尽可能简单高效的方式观测应用行为并得到足够信 息。其次,要根据这些信息为系统服务选择优化的策略( 如p a g i n gs c h e d u l i n g ) 。 最后,调整的总目标是提高通用系统的整体性能,但全局性能地优化并不一定总 能从局部优化中取得。通用的自适应操作系统还处于起步阶段,许多问题,尤其 是上述三个问题仍有待研究。目前还没有成形的产品。 综上所述,可扩展操作系统的研究目前主要是面向应用的扩展行为。这类系 统有广泛的应用需求并有比较成熟的技术可供利用,因此,我们研究的也是这类 系统。 2 3 可扩展操作系统的设计和常用技术 可扩展操作系统的主要出发点是为用户提供一套灵活的机制和策略,从而让 用户选择一种最佳方法来优化应用的计算。但扩展行为并不是孤立的,提高系统 的可扩展性可能会影响系统其他特性,因此可扩展操作系统的设计必须综合考 虑,并采用合理的技术调和系统的各种矛盾。 2 3 1 可扩展操作系中必须考虑的设计问题 可扩展操作系统通常要考虑以下六个问题: ( 1 ) 性能( p e r f o r m a n c e ) 可扩展与性能之间不可避免的涉及权衡取舍。因为,可扩展性的目的是能提 高系统或应用的整体性能,但可扩展机制本身却带来了额外的开销。 早期不可扩展的操作系统通常只提供单一的解决方案,在这个方案中机制和 簸略是固定不变的。设计人员选择提供一些功能函数和策略以使大多数应用获得 较好的性能。所以,那些符合系统设计的应用就能较好的执行,而那些不符合的 应用执行性能将很差。 ( 2 ) 范围( s p r e a d ) 可定制系统要么彻底支持可扩展性,这使得对每一个应用,重要的策略都可 第8 页 国防科学技术大学研究生院学位论文 定制;要么只提供特定某个方面策略的可扩展性,如调度策略。 ( 3 ) 粒度( g r a n u l a r i t y ) 操作系统必需为每一个可扩展的策略确定管理的粒度。细粒度的可扩展使得 策略的各个方面几乎可以无限制的调整,但是加大了管理开销;而粗粒度的方法 虽然可以减少管理开销,但是只能在策略的某些方面做改变,而且这些改动受到 严格限制。 ( 4 ) 完整性( i n t e g r i t y ) 可扩展要保证操作系统的完整性,特别是当应用在系统中引入了新的机制和 策略的情况下。因此,设计的一个重要方面就是完整性保护。完整性不仅仅是内 存保护问题( 保证应用在获得授权后才执行代码或访问数据) ,因为应用的破坏 性行为还有:资源囤积( 无限循环、内存的超量分配等) 、拒绝服务及未授权的 用户访问内存接口。我们注意到:操作系统支持扩展性的粒度越细,其适用范围 也就越广泛,但是所需的安全机制比将越复杂。 ( 5 ) 目标( p u r p o s e ) 操作系统或者立足某类特定的应用( 专用操作系统) 或者不对现在和将来任 何期望出现的功能和应用类型做假设( 即通用操作系统) 。通用操作系统常常需 要细粒度的普遍可扩展性:而专用操作系统往往只要提供粗粒度和普遍性较弱的 可扩展能力。 ( 6 ) 样式( p a r a d i g m ) 操作系统的底层样式深刻影响操作系统的构建和在其上建立的应用。主要的 选择有:是支持传统的类似p o s i x 的样式还是非传统的样式。传统的样式被大 多数操作系统产品所支持( l i n t t x 、s o l a r i s 、w i n d o w s ) 同样,本文讨论的可扩展 操作系统均是传统样式的或者至少支持传统样式。非传统样式的操作系统,可以 更好的支持可扩展性。但另一方面,操作系统使用的样式将影响应用程序的开发。 它可能需要使用特殊的工具,如s p i n 系统使用m o d u l a 3 这种不通用的安全性语 言,这将成为普通应用开发人员的障碍。 2 3 2 可扩展操作系统中的常用扩展技术 可扩展操作系统的常用技术主要涉及扩展位置、扩展部分的生成方法、保护 方式以及扩展粒度等四个方面。 1 1 填中扩展位置和扩展部分的生成方法是衡量系 统性能和灵活性的尺度;保护方式解决系统可能引发的扩展冲突,是系统正确扩 展的基础:扩展粒度是系统扩展的单位。 ( 1 ) 扩展位置 扩展的位置主要分核内与核外两种。将代码包含进内核具有性能方面的优 势,即它在核内的响应比在用户级更快。但是我们不能仅仅简单地将代码载入内 第9 页 国防科学技术大学研究生院学位论文 核,它还需要提供安全保障机制。下载代码( d o w n l o a dc o d e ) 是最常见的内核 扩展技术,应用通过编写扩展的代码并将其植入内核来控制系统,以执行期望的 策略。s p i n 和e x o k e m e l 系统都使用了下载代码的方式来支持内核扩展。1 1 2 1 1 5 1 核外的扩展主要有系统库和用户级服务器两种实现方式。系统库方式中。每个任 务能与它自己选择的库相连接,灵活地将系统代码放到库中,提供了最大的可扩 展性选择。事实上,每一种类型的应用都有其特定的资源需求,诸如数据库系统 和科学计算,能够通过用适当的策略从连接整体系统服务的方式中受益。由于库 例程能够替换大部分系统调用和进程间通信( i p c ) ,所以可以提供许多高效选择, 库能够让同一个进程的后续调用使用以前调用的存储信息。如果系统使用动态链 接库,则更利于应用的适应性和移植,同时还可减小应用所需的存储器空间。在 服务器方式中,单个应用不能控制服务器里的策略实现。虽然如此,服务器仍然 比内核更容易扩展,例如超级用户可以关闭一个服务器,修改并重启它。一个服 务器模拟现存的a p i ,或者提供一个特定的功能,如网络子系统。提供不同功能 的服务器集合允许多个应用混合或按自己的需求匹配各种策略。服务器在多个应 用间控制资源分配方面十分有效,内核可以信任确定的服务器以提供公平的服 务。应用通过i p c 与服务器进行交互,但对服务器的调用和它后来的返回会引起 两次域( 内核与用户域) 切换。现在,人们正在研究使系统中的服务由共享库与 专用服务器关同提供的方式。其中,共享库完成服务中与性能密切相关的部分, 而服务器完成应用程序无法完成且不需要高效能的工作。这一结构具有显著优 点;首先。由于服务器是由库提供的,应用程序可以自由使用共享库,应用程序 和共享库之间可以结合得较为紧密。在请求服务时直接访问共享库,避免了与远 地服务器进行通信的开销。其次,由于共享库可以和特定应用密切相关,这样便 可以利用与特定应用有关的知识来优化策略,如可以高效地实现资源管理。 ( 2 ) 扩展部分的生成方法 扩展部分的生成方法主要有选择方式、替换方式和推理方式。选择方式是指 应用对操作系统提供的选项按自己的需要进行定制。如h y d r a 系统,其内核设计 目标是允许应用级软件定义策略机制。【3 9 】它执行参数化策略以便应用级软件能够 选择适当的参数,并将应用定制策略的实施留给内核。这种方法的成功取决于对 未来应用的恰当评估及其策略的适应能力。替换方式是指应用在操作系统内替换 一个模块。在许多系统中,应用希望通过添加专用组件对系统进行扩展。这些组 件可被应用动态加载,用于添如新的系统服务或替换原有的服务,对于核内的服 务可用下载代码的方式进行替换或扩充。选择和替换方式对应用均是不透明的, 应用必须明确的提出扩展要求。推理方式是指操作系统替换它自己拥有的模块, 决策对应用是透明的。支持推理的操作系统能定制生成或动态地选择适当的组 件,并通过常用的系统调用接口自动地使用信息。这样的系统有一定智能,它对 第l o 页 国防科学技术大学研究生院学位论文 需求模糊的应用提供了较好的支持。 ( 3 ) 保护方式 保护对操作系统的扩展部分进行控制和限制,保证整个系统的安全和可靠 性。每一项扩展技术都提供了不同层次的安全,并利用了不同的信任层次。保护 主要有基于硬件的保护和基于软件的保护两类。基于硬件的保护机制常见于传统 的操作系统,这种机制通常借助硬件的保护( 标志位、中断等) 来处理。例如, 某个应用试图访问未授权的内存区,硬件将会产生异常;随后,将会有一段例程 来处理错误。可扩展操作系统要想充分利用硬件提供的保护优势,最简单的方法 就是把扩展都分放在核外。当进行扩展时,内核通过向上调用( u p e a l l ) 进入用户 级代码,服务完成后返回内核。这种情况下内核充分利用硬件提供的保护措施完 成所有保护行为,但存在的问题是域切换及相关开销太大,对于较小规模的扩展, 每次的调用开销与运行时间相比可能非常大。因此,可扩展操作系统中多采用基 于软件的保护。软件保护比硬件更快更灵活【1 3 】,主要原因是其安全机制是不固定 的。它的实现一般有两种方法:基于软件的错误隔离( s o f t w a r ef a u l ti s o l a t i o ns h ) 和安全语言( s a f e l a n g u a g e s ) 。s f i t “】技术保证在单一地址空间内实现内存保护 ( 如在核内) ,它有两步:首先不可信的代码载入各自的错误域( f a u l td o m a i n 是 内存或核的一个逻辑上分离的部分) 然后修改代码以使模块不能跳出或写自己错 误域以外的地方。实现的一个方法是使用s a n d b o x i n g 技术。保证核完整性的另 一个方法是约束编程语言的抽象。主要的机制是强制内存检测。它暗指安全的语 言是强类型的和安全类型的。研究项目中常用的这类语言有:m o d u l a 3 、j a v a 、 m l 。 ( s p i n i “j 由m o d u l a 3 编写。) 应用与核的每一次交互都通过扩展部分( 扩 展部分或者由应用提供或者是标准的,它定义标准的行为) ,每一个扩展部分和 一个事件( e v e n t ) 相关。扩展部分必须显示的在分配器( d i s p a t c h e r ) 中注册, 分配器用来注册扩展代码并向扩展代码发事件( e v e n t ) ,多个扩展可与同一个事 件关联。分配器将联系与同一个事件相关的扩展代码并询问及获取许可,从而替 换或加入某一个扩展代码。m o d u l a 3 主要用来保证内存的安全。额外的约束由分 配器和标准扩展强制保证。动态连接确保授权的事件只能被特定的扩展部分所看 见。存在的问题主要是所有系统代码和扩展只能由m o d u l a 3 编写,从而限制了系 统的通用性。 ( 4 ) 扩展粒度 粒度是可扩展能力的单位,它直接影响可扩展操作系统的扩展能力。粗粒度 扩展模式中,每个扩展部分是自约束的,只使用可被应用利用的内核接口。常规 的微内核系统是一个粗粒度扩展的例子,在微内核结构中,一个完整
温馨提示
- 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江苏南京农业大学新校区建设指挥部、基本建设处人员招聘10人笔试备考试题及答案解析
- 2025-2026学年第一学期九年级开学第一课:收心班会课件
- VTE的预防及护理
- 2025年济南市中考英语试题含答案
- 2025秋湘科版(2024)一年级上册科学教学计划
- 部编版四年级上册语文第一单元大单元教学设计
- GA/T 1105-2013信息安全技术终端接入控制产品安全技术要求
- 一中第一学期高一年级组工作计划
- 外科学课件:泌尿、男生殖系统外科检查
- 建设工程 施工档案数字化方案
- 轻钢结构施工专项方案
评论
0/150
提交评论