[发明专利]基于集群化操作系统技术提高众核应用程序可伸缩性的方法无效
申请号: | 201010197968.X | 申请日: | 2010-06-10 |
公开(公告)号: | CN101872304A | 公开(公告)日: | 2010-10-27 |
发明(设计)人: | 陈海波;宋翔;陈榕;臧斌宇 | 申请(专利权)人: | 复旦大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;盛志范 |
地址: | 20043*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 集群 操作系统 技术 提高 应用程序 伸缩性 方法 | ||
技术领域
本发明属于计算机系统软件技术领域,具体涉及一种提高面向众核环境的应用程序的可伸缩性的方法。
背景技术
随着CPU的能耗和散热问题越显突出,单纯提升CPU主频已经不再是一种经济有效地增加系统性能的方法。因此,作为摩尔定律的延续,多核(multi-core)乃至众核(many-core)技术逐渐在产业界普及。众核技术通过不断地增加计算核心的数量来继续提升处理器的计算能力,从而延续“摩尔定律”。大量面向众核环境的应用程序应运而生,它们本身在应用层具有良好可伸缩性,能够充分发挥众核环境性能。但是面向众核环境的应用程序的性能并没有简单随着处理器核数目的增加而随之增加。这主要是由于上层的应用程序受到来自操作系统层的限制。因此,在众核已经成为主流处理器技术的今天,现有的操作系统需要针对众核环境进行改造、优化和重新设计,从而提高众核应用程序整体的可伸缩性。
众核技术的出现给操作系统的开发带来了新要求,应用程序执行时间中在操作系统中执行的比例不断增加。然而,不幸的是,现有的日用操作系统大多都是从单核时代发展过来的。很多模块在当初设计的时候并没有充分考虑到对众核体系结构的支持。操作系统中存在大量限制上层应用程序可伸缩性的系统服务实现,比如内存映射的共享,缓存资源的管理。这些服务在单核环境下表现出良好的性能,但在众核环境下由于对于系统资源竞争的加剧,性能随之恶化甚至出现倒退。
面对操作系统在众核环境下无法提供高效可伸缩性支持问题,目前存在两种解决方案。短期策略是对现有的日用操作系统进行局部优化,比如采用细粒度锁优化技术的RCU数据结构,和消除共享竞争技术的本地运行队列。但是由于操作系统本身的极高复杂性和耦合性,以及必须满足的兼容性要求,这种局部性的优化策略往往难以实现且效果有限。例如Windows7操作系统对于分发器自旋锁的修改就涉及到对58个文件中超过6000行代码的修改。与之相对的长期策略采取更为激进的手段,完成重新开发面向众核环境的操作系统。通过采用大量针对众核环境的实现准则和优化策略来提供对上层应用程序可伸缩性的高效支持。这样的例子有由美国麻省理工大学和复旦大学等共同开发的Corey操作系统,有由瑞士苏黎世ETH大学和微软剑桥研究院共同开发的Barrelfish操作系统等。但是这些操作系统都面临与原有日用操作系统兼容性的问题,对现有面向众核应用程序的支持还很有限,并且出于市场推广因素的考虑,想要取代现有的日用操作系统非常困难。
由于应用程序依赖于操作系统提供的服务,在众核环境下对于系统资源的竞争成为抑制众核应用性能的主要瓶颈。
发明内容
本发明的目的在于提供一种提高面向众核应用程序的可伸缩性的方法,以便在操作系统层面来提供对众核应用程序的支持,在保持操作系统兼容性的同时提高可伸缩性。
本发明提供的提高面向众核应用程序的可伸缩性的方法,其核心思想是在单机众核硬件环境下同时运行多个通用操作系统,同时为单个众核应用程序提供系统服务,从而在操作系统层面避免对上层应用在可伸缩性方面的限制。具体来说,是以集群化操作系统技术为上层众核应用程序提供高可伸缩性支持。
所述集群化操作系统,主要由高可伸缩虚拟机监控器,远程进程协作模块,资源同步模块和系统服务虚拟层等构成。高可伸缩虚拟机在现有虚拟机监控器的基础上融入当前在系统可伸缩性研究方面的最新技术。利用虚拟机监控器相对操作系统简单灵活没有兼容性问题的特点,为操作系统的集群化和高可伸缩性提供支持。远程进程协作模块在多个操作系统间实现单操作系统下的进程和线程模型。而资源同步模块利用下层虚拟机监控器实现跨操作系统的资源可伸缩性共享。三者相结合实现了对多个通用操作系统高可伸缩性的协同工作的支持。系统服务虚拟层以操作系统模块的方式加载到通用操作系统中,为上层应用程序提供与单操作系统一致的编程接口,实现在提供高可伸缩性支持的同时不失兼容性。
本发明的有益效果是,提高众核环境下应用程序的可伸缩性。利用高可伸缩虚拟机监控器运行多个通用操作系统为单个应用程序提供高可伸缩性系统服务支持,从而充分利用众核系统资源显著提高应用程序性能。
附图说明
图1为本发明的集群化操作系统技术架构示意图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
图1描述了集群化操作系统技术的架构。位于众核硬件环境之上的是高可伸缩虚拟机监控器,与远程进程协作模块和资源同步模块一起实现对多个通用操作系统高可伸缩性协同工作的支持。位于虚拟机监控器上的是多个未经修改的通用操作系统,保持系统的兼容性和稳定性。做为操作系统模块存在的系统服务虚拟层实现了将来自应用层的普通系统服务请求向多个操作系统转发,保持了应用程序接口的兼容性。整个系统能够有效提高上层面向众核应用程序的可伸缩性,提升应用程序性能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010197968.X/2.html,转载请声明来源钻瓜专利网。