面向多核平台的虚拟机监控器非对称调度器及其调度方法技术

技术编号:4269161 阅读:456 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种面向多核或众核平台的虚拟机监控器非对称调度器及其调度方法,基于现有的虚拟机监控器VMM,为客户操作系统提供了满足特殊高性能需求的专门的服务核。本发明专利技术包括管理域中的服务核请求解析模块,VMM中的Domain特定服务核配置模块、系统顶级调度器模块、服务调度器模块、共享内存机制模块及请求查询模块,HVM?Domain中的混合虚拟化模块。本发明专利技术中的非对称调度器不仅可以针对上层Domain的需求提供不同的服务核,而且在服务核的分配时考虑到物理平台的拓扑结构,比传统的调度器提供了更强的灵活性和可扩展性,同时为客户操作系统提供了特定应用类型的加速机制,改善了整个平台的使用效率。

【技术实现步骤摘要】

本专利技术涉及一种多核或众核平台调度技术,具体来说是,属于计算机操作系统和虚拟化

技术介绍
系统虚拟化技术是指利用虚拟机监视器(Virtual Machine Monitor,简称VMM)这个系统软件层,管理系统平台的处理器外设等资源,为客户操作系统提供一个虚拟硬件执行环境,这些虚拟的硬件执行环境成为一个虚拟机(Virtual Machine,简称VM)。每个虚拟机(VM),都包含处理器、存储器及设备等虚拟硬件资源,而同一台物理主机上可以支持多个VM同时运行。该技术起源于20世纪60年代,IBM公司最早在360系列计算机系统中使用了虚拟化技术,其目的是让用户可以共享计算资源,而在随后的三十年间,大型机上的虚拟化技术不断趋于完善,并且一直是高效利用大型机强大计算资源的基础技术。到了二十世纪90年代,随着x86处理器性能的不断提高, 一些基于x86处理器中低档服务器甚至PC机的计算能力越来越强,大量的数据中心和PC机都出现了系统资源利用率低,计算资源严重浪费的问题。在这种背景下,以前主要用于大型机的系统虚拟化技术受到工业界和学术界的广泛关注,基于x86处理器的虚拟化技术得到了长足的发展,并在世界各地的数据中心,PC机用户上得到了广泛的应用。虚拟化技术不仅可以提高系统资源的利用率,减少了数据中心的装机量和相应的电源成本,并且为一些传统需求提供了新的简单的实现手段,比如基于系统迁移技术的负载平衡,容错备份。除此之外,虚拟化技术也为PC机用户提供了更方便的使用多样性操作系统的方法,为许多操作系统等系统软件开发和测试人员提供了前所未有的便利。 和本专利技术密切相关另外一个
技术介绍
是近年来多核技术的持续发展。传统的多路服务器是直接在一个主板上支持多个物理处理器插槽,也就是对称多处理器系统。而随着SMT(Simultaneous Multi-Threading,艮卩同时多线程)、CMP(Chip multiprocessors,即片上多处理器核)的发展,单个芯片上集成的处理器核会越来越多,2007年在Intel实验室中已经研制成功了集成80个核的单个芯片。在未来一段时间内,四核、八核处理器等都会渐渐被广泛使用,硬件平台正在进入多核时代。与之相应的是,软件的发展,尤其是系统软件的发展和硬件平台的发展相比,显得有些滞后,很多情况下都是硬件的处理能力提高了,或者提供了新的功能,但是软件栈的革新速度较为缓慢,使得许多新的硬件特性无法被广泛使用,造成了计算资源、电源等的大量浪费。随着多核平台的发展,操作系统以及应用程序迫切需要快速革新,适应新的强大的计算平台。除此之外,异构处理器核在中低端服务器和PC机上也会被大量使用,最典型的例子是现在已经很流行的图形处理器GPU(GraphicProcessing Unit),网络处理器NP (Network Processor,简称NP),甚至不日将会上市的Intel的GPU Larrabee。 新一轮的虚拟化技术最初是因为高效使用系统过剩的计算资源而迅速发展起来,而现在随着单一硬件平台上集成的处理器核持续增多,系统虚拟化技术将得到持续的关注5和发展,虚拟化技术将会在充分使用平台提供的强大计算能力发挥更加重要的作用。目前已经有服务器厂商将虚拟化放在BIOS中,为系统软件提供了更加透明的虚拟化平台,类似于大型机上的分区技术,虚拟化技术最典型的用处就是对大量处理器核进行分区,而每个分区中都可以安装传统的操作系统,这样既可以充分使用了较新的硬件平台,又充分利用了更新周期较长的操作系统和应用程序,为计算机系统平台的持续发展提供了可行的解决方案。总之,系统虚拟化技术的发展和多核技术的发展是目前硬件和系统软件发展中最显著的两样技术,同时这两样技术在互相影响,互相促进,多核的设计和实现中会考虑系统虚拟化技术对平台的使用,而系统虚拟化技术也必然随着多核的发展而不断革新,最有效的使用平台上集成的更多的同构处理器核以及各种异构处理器核。 系统虚拟化技术研究如何把处理器、内存、外设等资源分配给客户机使用,它是虚拟化技术的一种,所抽象的对象是整个计算机。系统虚拟化技术对处理器的抽象,以及对虚拟处理器的调度是虚拟化技术中的重要组成部分,目前的虚拟机监控器VMM从处理器虚拟化的技术上划分主要有三种方式,一种是二进制翻译,这种主要情况下,客户操作系统中的特权指令是通过解释执行的;第二种是类虚拟化,即修改客户操作系统把客户操作系统中需要执行的特权指令修改成对虚拟机监控器的调用,当然这种技术一般和客户操作系统执行特权指令导致异常然后陷入到VMM中从而由V匪接管执行相结合;第三种就是硬件辅助的完全虚拟化技术,使用带有硬件虚拟化支持的处理器,比如Intel VT-x或者AMD的SVM,客户操作系统执行所有的敏感指令和特权指令时都会陷入到VMM中,VMM代为处理完毕后,会返回到客户操作系统中。以上几种方法各有利弊,其中第三种硬件辅助虚拟化方法目前的性能并不好,原因是客户机因为执行特权指令而导致的VM exit(虚拟机退出)数量过多,而且VMM中处理这些退出的时间长,导致HVM(硬件虚拟机)Domain (域)的性能不高。此外目前的VMM实现中对多核的支持基本都是延续了传统上Li皿x对SMP平台的支持方式,对vcpu(虚拟处理器)的调度也是采用对称调度的方法,即调度器并不区分处于不同封装上的处理器核心,也不支持专门用于某种特殊需求的VMM任务和处理器核的绑定。
技术实现思路
本专利技术针对目前多核平台VMM中对称调度方法不能充分使用多核处理能力,并且不能为不同的客户机提供灵活的定制性的服务的问题,提出了一种。 本专利技术设计的面向多核平台的虚拟机监控器非对称调度器,其在结构上除了包括VMM中已有的通用调度模块外,还包括以下新添加的模块管理域中的服务核请求解析模块;V匪中的Domain特定服务核配置模块、系统顶级调度器模块、服务调度器模块、共享内存机制模块及请求查询模块,其中系统顶级调度器模块中包含平台处理器核拓扑识别和分析子模块以及服务核分配和回收子模块;HVM Domain中的混合虚拟化模块。V匪运行在多核或众核系统平台上,向下管理着底层的硬件平台,向上支撑运行着管理域和HVMDomain。 服务核请求解析模块,用于HVM Domain创建时服务核的配置,负责将HVM Domain也就是客户机创建时的配置文件中指明的服务核的类型和数量解析,向V匪发出服务核的创建请求; Domain特定服务核配置模块则负责初步解析服务核请求解析模块发过的HVMDomain的服务核创建请求然后发送给系统顶级调度器模块,并在整个HVM Domain的生命周期内管理其服务核相关的信息; 系统顶级调度器模块主要用来管理计算机平台中能用的处理器核,并在全局范围内对通用调度器模块和服务调度器模块的能用处理器核资源位图进行调整,负责完成来自Domain特定服务核配置模块中的请求,根据平台处理器核拓扑识别和分析子模块中的拓扑信息,使用服务核分配和回收子模块创建服务核或者回收服务核;平台处理器核拓扑识别和分析子模块负责对系统中拥有的处理器核资源进行识别,处理器核在被识别之后加入顶级调度器使用和管理的能用处理器核资源位图中,初始化之后顶级调度器开始在这些处本文档来自技高网
...

【技术保护点】
面向多核平台的虚拟机监控器非对称调度器,包括VMM中的通用调度器模块,其特征在于,还包括管理域中的服务核请求解析模块,VMM中的Domain特定服务核配置模块、系统顶级调度器模块、服务调度器模块、共享内存机制模块及请求查询模块,HVMDomain中的混合虚拟化模块,其中系统顶级调度器模块中又包含平台处理器核拓扑识别和分析子模块以及服务核分配和回收子模块;服务核请求解析模块,用于HVMDomain创建时服务核的配置,负责将HVM Domain也就是客户机创建时的配置文件中指明的服务核的类型和数量解析,向VMM发出服务核的创建请求;Domain特定服务核配置模块则负责初步解析服务核请求解析模块发来的HVMDomain的服务核创建请求然后发送给系统顶级调度器模块,并在整个HVMDomain的生命周期内管理其服务核相关的信息;系统顶级调度器模块主要用来管理计算机平台中能用的处理器核,并在全局范围内对通用调度器模块和服务调度器模块的能用处理器核资源位图进行调整,负责完成来自Domain特定服务核配置模块中的请求,根据平台处理器核拓扑识别和分析子模块中的拓扑信息,使用服务核分配和回收子模块创建服务核或者回收服务核;平台处理器核拓扑识别和分析子模块负责对系统中拥有的处理器核资源进行识别,处理器核在被识别之后加入顶级调度器使用和管理的能用处理器核资源位图中,初始化之后顶级调度器开始在这些处理器核上运行;服务核分配和回收子模块负责服务核的创建或者回收,从系统能用处理器核资源位图中区分出服务核,并添入服务调度器模块的能用处理器核资源位图中,或者从服务调度器模块的能用处理器核资源位图中删除服务核;服务调度器模块负责服务核的管理和调度;共享内存机制模块负责响应HVMDomain的映射请求,并在共享内存建立之后,触发请求查询模块;混合虚拟化模块首先向VMM请求映射共享内存,共享内存机制模块响应HVMDomain的映射请求,在VMM中建立共享内存区域;在共享内存建立之后,混合虚拟化模块发出HVMDomain对服务核的服务请求,这些请求被写在共享内存区域内;请求查询模块负责查询HVMDomain所属的共享内存区域内的对服务核的服务请求,并把这些请求发送到服务调度器模块;其中,VMM代表虚拟监控器,HVM代表硬件虚拟管理器,Domain代表域。...

【技术特征摘要】
面向多核平台的虚拟机监控器非对称调度器,包括VMM中的通用调度器模块,其特征在于,还包括管理域中的服务核请求解析模块,VMM中的Domain特定服务核配置模块、系统顶级调度器模块、服务调度器模块、共享内存机制模块及请求查询模块,HVMDomain中的混合虚拟化模块,其中系统顶级调度器模块中又包含平台处理器核拓扑识别和分析子模块以及服务核分配和回收子模块;服务核请求解析模块,用于HVM Domain创建时服务核的配置,负责将HVM Domain也就是客户机创建时的配置文件中指明的服务核的类型和数量解析,向VMM发出服务核的创建请求;Domain特定服务核配置模块则负责初步解析服务核请求解析模块发来的HVMDomain的服务核创建请求然后发送给系统顶级调度器模块,并在整个HVM Domain的生命周期内管理其服务核相关的信息;系统顶级调度器模块主要用来管理计算机平台中能用的处理器核,并在全局范围内对通用调度器模块和服务调度器模块的能用处理器核资源位图进行调整,负责完成来自Domain特定服务核配置模块中的请求,根据平台处理器核拓扑识别和分析子模块中的拓扑信息,使用服务核分配和回收子模块创建服务核或者回收服务核;平台处理器核拓扑识别和分析子模块负责对系统中拥有的处理器核资源进行识别,处理器核在被识别之后加入顶级调度器使用和管理的能用处理器核资源位图中,初始化之后顶级调度器开始在这些处理器核上运行;服务核分配和回收子模块负责服务核的创建或者回收,从系统能用处理器核资源位图中区分出服务核,并添入服务调度器模块的能用处理器核资源位图中,或者从服务调度器模块的能用处理器核资源位图中删除服务核;服务调度器模块负责服务核的管理和调度;共享内存机制模块负责响应HVM Domain的映射请求,并在共享内存建立之后,触发请求查询模块;混合虚拟化模块首先向VMM请求映射共享内存,共享内存机制模块响应HVM Domain的映射请求,在VMM中建立共享内存区域;在共享内存建立之后,混合虚拟化模块发出HVMDomain对服务核的服务请求,这些请求被写在共享内存区域内;请求查询模块负责查询HVM Domain所属的共享内存区域内的对服务核的服务请求,并把这些请求发送到服务调度器模块;其中,VMM代表虚拟监控器,HVM代表硬件虚拟管理器,Domain代表域。2. 根据权利要求1所述的面向多核平台的虚拟机监控器非对称调度器,其特征在于, 所述系统顶级调度器模块在系统初始化、HVM Domain创建、服务核创建请求、服务核回收、 HVM Domain销毁、通用核和服务核比例调整、全局范围内的负载调整场合时被触发。3. 应用权利要求1所述的面向多核平台的虚拟机监控器非对称调度器的调度方法,其 特征在于,包括如下步骤步骤l,客户机创建启动和服务核的创建请求发出;HVM Domain客户机创建时,在管理域中会有一个对应的客户机的创建配置文件,该文 件中会指明客户机使用的vcpu的数量,以及与物理处理器核的绑定信息,同时该配置文件 中也会指明所需的服务核的类型和数量,具体的类型由不同的实施例中特殊指定和实现; 管理域中的服务核请求解析模块将该配置文件中的服务核的类型和数量解析,并将创建需求转变成对VMM的超调用Hypercall,并将该超调用传输给VMM中的Domain特定服务核配 置模块,而Domain特定服务核配置模块在接管超调用Hypercall后,采用一个结构体管理 新创建的HVM Domain的所有信息,包括服务核的配置信息,并初步解析超调用Hypercall, 然后触发VMM中的系统顶级调度器模块运行;其中vcpu代表虚拟处理器,Hypercall代表 超级调用;步骤2,处理器核拓扑识别和分析以及服务核的分配;系统顶级调度器模块中的处理器核拓扑识别和分析子模块会对系统中拥有的处理器 核资源进行识别,处理器核在被识别之后加入系统顶级调度器模块使用和管理的能用处理 器核资源位图中,初始化之后系统顶级调度器模块开始在这些处理器核上运行,直到这些 处理器核被划分给VMM中的通用调度器模块或者被分配成服务核接受VMM中的服务调度器 模块的调度;系统初始化时,系统顶级调度器模块被初始化,系统顶级调度器模块接到创建服务核 的请求后,首先根据平台处理器核拓扑和分析子模块得到平台处理器核的拓扑信息,采用 就近原则选择和HVM Domain的vcpu绑定的物...

【专利技术属性】
技术研发人员:张炯龙翔文成建贺俊白跃斌高小鹏
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1