网站大量收购独家精品文档,联系QQ:2885784924

文章题目-HaiboChen-复旦大学.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
文章题目-HaiboChen-复旦大学

操作系统的动态更新 陈 榕,陈海波,张逢喆,臧斌宇 复旦大学 并行处理研究所, 上海市 200433 E-mail :chenrong@ 摘 要:本文提出了一种利用系统虚拟化技术在现有操作系统上添加动态更新功能的方法。这种方法在克服动态更新操作系统固有困难的同时摒弃了对安全点的依赖,支持在任意时刻进行动态更新。开发的Lucos原型系统能在极短时间内使用官方发布的内核补丁对Linux操作系统进行动态更新,并且性能测试表明Lucos对性能仅仅造成可以忽略的影响:相比同运行环境下的Xen-Linux只有不到1%的性能损失。 关键词:动态更新;系统虚拟化;操作系统;可用性 Dynamic Update of Operating Systems CHEN Rong,CHEN Haibo,ZHANG Fengzhe , ZANG Binyu Parallel Processing Institute, Fudan University, Shanghai 200433, China Abstract: This paper proposes using virtualization to provide dynamic update capability for commodity operating system. The proposed approach allows patches and upgrades to be applied at anytime without the requirement of a quiescence state. A working prototype, Lucos, is developed to demonstrate the applicability of the approach. Some real-life kernel patches from Linux are applied on the fly in minimal time. Performance measurements show that Lucos incurs negligible performance overhead: less than 1% performance degradation compared to a Xen-Linux. Key words: Dynamic Update; Virtualization; Operating System; Availability 引 言 许多运行关键任务的系统都需要持续不断的运行,任何形式的打断都将造成巨大的损失。随着IT架构不断在关系国计民生的支撑行业中使用,服务中断所造成的损失也越来越大[21]。操作系统作为整个软件体系结构中的基础层与关键层,其可性直接影响了执行于其上的所有软件的可性,因而如何提高操作系统的可性成为提高软件可性的基础与关键问题之一。然而,由于操作系统的复杂性和特殊性,现有的操作系统远远不够完美而无懈可击。因此,为了修复安全隐患,纠正系统错误,提高软件的性能或是增加新的功能,操作系统不可避免地在其生命周期中需要被不断更新。不幸的是,现有的基于“更新-重启”方法将不可避免造成整个系统服务的丧失,这对于那些需要24×7小时高可用性的关键应用和服务而言将是不能承受的。从而,基于保证系统安全性和提高系统可用性[1]这两方面出发,操作系统急需使用一种两全的方法即动态更新技术[2],在更新和维护系统的同时保证系统的正常运行。 由于操作系统本身极高的复杂性造成在操作系统上实现动态更新面临来自多方面的困难。首先是来自编写操作系统所使用的开发语言。当前的通用操作系统几乎都是使用面向过程语言开发,导致很难找到一种通用的方法对系统中的数据和函数依举相关性进行精确的划分。同时采用“直接地址跳转”来完成对函数的调用造成很难实现对函数调用的重定向。然而动态更新技术要求能在系统中明确指出可以独立更新的最小单位——更新单元,以及能快捷的实现函数调用的重定向。一种可能的解决方法是使用面向对象语言来编写操作系统,利用语言本身的特性直接选择封装了数据和函数的“对象”作为更新单元,同时应用函数跳转表实现调用重定向。由IBM实验室使用C++语言开发的开源操作系统K42[11,12,13]就是一个利用面向对象技术实现动态更新的例子。但是这种方法显然无法应用到现有的操作系统上。 其次是来自操作系统的多线程。由于操作系统必须同时执行多个任务,因此在整个生命周期中始终存在着大量线程同时运行,并且这些线程使用的数据和代码也交织在一起。随意对操作系统进行动态更新很可能导致更新后同时存在多个使用着新旧不同版本函数的线程一起操作全局数据,引发系统状态的不一致。因此进

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档