操作系统的动态更新

来源 :复旦大学 | 被引量 : 0次 | 上传用户:cubel
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着IT架构不断被部署到关系国计民生的支撑行业中,提供24×7的高可用性变得越发重要,对于运行着关键服务的系统任何形式的打断都将造成巨大损失。操作系统作为整个软件体系架构中的基础层与关键层,其可用性将直接影响到上层所有软件的可用性,因而如何提高操作系统的可用性成为提高软件可用性的关键问题之一。另一方面由于操作系统本身的庞大和复杂,现有的实现远远不够完善。为了修复安全隐患、纠正系统错误、提高软件性能和增加新的功能,操作系统在其生命周期中需要不断的被更新和维护。但现有基于“更新一重启”的静态更新方法需要重启操作系统,导致整个可用性的丧失。HP实验室在2001年的研究报告中同样指出人为的系统维护是造成系统停机的最大原因。因此有效地降低系统维护引起的可用性丧失是提高操作系统可用性最直接有效的方法。 动态更新技术(Dynamic update,or Live update)能够在保持系统持续正常运行的情况下完成更新维护操作,是解决上述问题的最佳方法。但是在操作系统上实现动态更新技术面临多方面的困难。本文的主要工作是总结和分析了这些困难,并提出了一种利用系统虚拟化技术在当前通用操作系统上实现动态更新功能的有效方法。 由于当前通用操作系统在设计上并没有考虑到对动态更新的支持,以及本身极高的复杂性,导致实现动念更新功能存在诸多困难。首先,当前通用操作系统几乎都是使用面向过程语言开发的,很难找到合适的粒度来进行动念更新,同时也不存在一种简单直接的方法能将对旧版本数据和函数的访问重定向到新版本数据和函数上。 其次,当前通用操作系统采用多线程并发执行,随意的更新可能导致系统中同时出现使用不同版本数据和函数的线程,造成系统状态不一致。而现有基于安全点(Safe Point)的解决方案又不适合像操作系统这样复杂的大型软件。 最后,直接运行在物理硬件上的操作系统位于整个软件架构的底层,只能由自己来完成对自身的动态更新。这种既是更新对象又是更新主体的情况很可能导致更新操作无法完成,甚至造成系统死锁或者崩溃。为了克服这些困难,我们提出了一种利用系统虚拟化技术在现有通用操作系统上实现动态更新功能的方法。该方法依靠位于操作系统和物理硬件之问,完全控制着整个系统的虚拟机监控器实现动态更新操作。首先在函数粒度上由虚拟机监控器通过二进制代码重写(binary rewriting)实现访问重定向,其次彻底摒弃对安全点的依赖,支持在任意时刻对操作系统进行动态更新,使用虚拟机监控器保持多线程问不同版本数据的同步,维持系统状态的一致性。最后使用位于更底层的虚拟机监控器来完成对操作系统的动态更新,避免可能的死锁和系统崩溃。为了进一步完善动态更新系统,实现对虚拟机监控器的动态更新,我们在Lucos系统的基础上引入白虚拟化技术。自虚拟化技术实现了对虚拟机监控器的按需动态插入和移除,使得操作系统能够在物理硬件和虚拟机监控器两种执行环境间自由切换执行。直接运行在物理硬件上的操作系统能够完成对此时处于不工作状态下的虚拟机监控器的动态更新,而处于工作状态下的虚拟机监控器能够实现对上层操作系统的动态更新。 为了验证上述方案的可行性,我们以开源虚拟机监控器Xen以及Linux操作系统为基础实现了名为Lucos(Live Update of Contemporary Operating System)的动态更新系统,和名为Mercury的自虚拟化系统。实验结果表明,Lucos动态更新系统能够正确迅速的使用来自官方发布的补丁文件实现对Linux操作系统的动态更新,并且在性能方面,相对于运行在Xen上的Linux操作系统仅仅存在不到1%的性能损失。而Mercury系统成功的实现了Linux操作系统在两种执行环境上自由切换,并且运行在物理硬件上的Linux操作系统能够实现对虚拟机监控器Xen的动态更新。在性能方面两种执行环境下的Mercury系统相对于各自环境中的普通Linux操作系统存在的性能差距都不到2%。
其他文献
信息技术在中国各个行业中的应用都得到了前所未有的重视,“以信息化带动工业化”已为各级决策部门所共识。然而各个行业的IT投入多以系统建设和应用开发为主,系统的有效管理
本论文研究内容来自西北工业大学航空微电子中心所承担的某预研课题,以参与的32位嵌入式微处理器“龙腾R2”的设计工作为基础,设计并实现了基于双端口RAM的数据Cache,该Cache应
随着Internet的发展,人们可以通过网络获得大量的信息资源,然而网上的信息浩如烟海,而且增长和更新的速度越来越快,从海量信息中找到所需的内容是一项极富挑战性的工作。传统的搜
水资源对社会经济的发展起着十分重要的作用。在处于干旱与半干旱地区的陕西省,地下水是重要的供水水源。加快水资源特别是地下水资源管理工作的现代化、信息化建设,已是当务
近年来,随着无线通信的迅猛发展,越来越多的无线通信技术被应用于数据通信中,WLAN、GPRS 到 WIMAX、3G 等无线通信技术的逐渐成熟,无线接入已经逐渐成为当前用户终端接入的热点。
当今社会,信息量剧增,生活节奏加快,如何从大量信息中找寻符合我们要求的信息,已是我们不得不面对的问题。因此,Top-N查询越来越被广泛应用,几乎已涉及我们工作学习生活的各个方面
网格资源具有分布性、异构性、动态性和自治性等特点,这使得网格的应用和推广面临很多挑战。作为网格基础组件之一的资源监控系统为网格上层应用提供重要的数据支持,因此对网格
肝癌是世界上最常见的恶性肿瘤之一。在我国,医院主要靠医生对医疗图像进行诊断,工作强度大,效率低,定量分析比较困难,影响了临床诊断的准确性。实现医疗的计算机辅助诊断对
随着电子商务技术的发展,推荐系统的被广泛地应用于发掘用户兴趣,以提高商品销售量,在实际的推荐系统应用中,基于邻域的推荐系统是最为常见的推荐模型。在传统的基于邻域的推
IPv6被认为是下一代互联网络协议核心标准之一。随着网络厂商和开发商逐渐在不同的平台上引入IPv6,IPv4和IPv6将长期共存。在IPv4向IPv6过渡的时期,同时存在两种网络,以及各种各