CN101706742B - 一种基于多核动态划分的非对称虚拟机i/o调度方法 - Google Patents

一种基于多核动态划分的非对称虚拟机i/o调度方法 Download PDF

Info

Publication number
CN101706742B
CN101706742B CN2009102380875A CN200910238087A CN101706742B CN 101706742 B CN101706742 B CN 101706742B CN 2009102380875 A CN2009102380875 A CN 2009102380875A CN 200910238087 A CN200910238087 A CN 200910238087A CN 101706742 B CN101706742 B CN 101706742B
Authority
CN
China
Prior art keywords
scheduling
module
multinuclear
core
vcpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2009102380875A
Other languages
English (en)
Other versions
CN101706742A (zh
Inventor
龙翔
胡彦彦
高小鹏
张炯
白跃斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN2009102380875A priority Critical patent/CN101706742B/zh
Publication of CN101706742A publication Critical patent/CN101706742A/zh
Application granted granted Critical
Publication of CN101706742B publication Critical patent/CN101706742B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提出了一种基于多核动态划分的非对称虚拟机I/O调度方法,该方法在系统启动时,首先由I/O调度初始化模块完成调度参数配置与缓冲区分配,随后系统运行时,由I/O状态监控与信息处理模块动态采集驱动Domain和客户Domain的运行时参数并进行处理,统计发生的I/O事件类型、时间和频率参数,随后将统计结果交由调度决策模块进行判定,该模块根据预设的条件做出调度决策,并向多核动态划分模块发出指令,执行多核动态划分或恢复操作,从而改变系统的处理器核划分模式及调度状态,使处理器资源的使用方式和Domain的调度切换策略更好的适应当前系统的I/O负载需求,达到优化I/O性能的目的。

Description

一种基于多核动态划分的非对称虚拟机I/O调度方法
技术领域
本发明涉及一种虚拟机调度方法,尤其是一种面向多核平台的、非对称的虚拟机I/O调度方法,属于计算机操作系统与虚拟化技术领域。
背景技术
计算机硬件技术的不断发展使得服务器的性能迅速增长,为了在保证安全与隔离的前提下充分利用系统资源,虚拟化技术应运而生,其基本思想是利用虚拟机监视器(VMM)软件薄层对底层硬件资源进行管理,同时对上层提供多个相互隔离的虚拟硬件执行环境(VM),进而使得同一台物理主机之上可以运行多个不同的操作系统。早在上世纪60年代,IBM便最早在360系列大型机中使用了系统虚拟化技术,将服务器资源以复用的方式分配给多个用户,而近些年来,虚拟化技术在服务器资源整合、安全、容错等领域都得到了广泛的应用。目前,已经出现了多个商业和开源的虚拟机项目,包括Vmware公司的ESX系列与workstation系列,微软的Virtual PC,Sun公司的Solaris Container等,此外IBM公司也在其大型服务器领域一直提供了虚拟化技术的支持。开源社区中,目前最广泛研究的虚拟机系统包括KVM和Xen,前者由剑桥大学的相关研究人员开发,而后者则由Qumranet公司组织完成,目前,两者都已作为虚拟化方案整合入Linux内核。
虚拟机系统包含多个相互独立的Domain(域),每个域都包含完整的虚拟硬件执行环境,包括虚拟处理器,虚拟设备、虚拟存储等,都可以运行各自的操作系统并承载用户所需的计算任务,各个域之间由VMM负责实现隔离和保护。现有主流虚拟机系统为提高安全和隔离性能,通常将设备驱动程序置于一个特殊的域驱动Domain(驱动域)中,并为其开放硬件端口的访问权限,而其它所有Domain的设备访问请求均通过虚拟设备访问接口发送到驱动Domain,由其代为执行,虚拟设备访问接口的建立需要在VMM控制之下进行,以便其可以控制Domain的设备访问行为。此时,由于所有Domain的设备访问操作均需要通过驱动Domain进行,而驱动Domain只有在被调度时才能够响应其它Domain的设备访问请求并进行处理,因此系统对各个Domain采用的调度策略将对其I/O性能产生决定性的影响。
传统的虚拟机系统为满足服务器领域的应用需求,其调度方法会首先考虑系统的资源利用率与分配的公平性,且大都优先考虑了计算密集型应用的特点,因此其设计原则通常是在保证调度公平性的基础上最大化的利用系统资源,典型的如Creidt调度策略。但此时,因调度带来的I/O请求响应延迟会导致I/O密集型应用的性能产生严重的下降。虽然使用自虚拟化设备和VM-bypass的设备访问方式可以有效提高I/O性能,但对于大多数需要共享的普通设备,该方法无法解决调度延迟带来的性能瓶颈。部分现有的虚拟机调度方法提供了相关的优化策略,如Xen系统的Boost/tickle机制及Partial Boost机制,该类方法可以较好的满足单一应用类型条件下的I/O性能瓶颈问题,但面对复杂的应用类型,如I/O计算混合型负载,该类方法仍然难以获得理想的I/O性能;不仅如此,现有的虚拟机系统大都采用全局统一的调度策略,各个处理器核的调度决策条件均保持一致,但由于实际运行负载类型的多样化,其资源需求特性都有所不同,此时VMM很难提供一种有效的资源分配手段。此外现有的虚拟机调度算法大都针对单核系统设计,很少考虑多核环境的应用场景,不能充分利用多核结构的特点,而多核以及众核已经成为了未来硬件平台的发展趋势,因此如何在该环境下,有效利用系统处理器资源,以达到优化系统性能的目的,也是虚拟机调度算法设计中需要解决的关键问题之一。
发明内容
本发明提出了一种基于多核动态划分的非对称虚拟机I/O调度方法,该方法在现有虚拟机监视器VMM中加入了四个模块:I/O调度初始化模块、I/O状态监控与信息处理模块、调度决策模块和多核动态划分模块。系统启动时,首先由I/O调度初始化模块完成调度参数配置与缓冲区分配,随后系统运行时,由I/O状态监控与信息处理模块动态采集驱动Domain(驱动域)和客户Domain(客户域)的运行时参数并进行处理,统计系统中发生的I/O事件类型、时间和频率参数,随后将统计结果交由调度决策模块进行判定,该模块根据预设的条件做出调度决策,并向多核动态划分模块发出指令,执行多核动态划分或恢复操作,从而改变系统的处理器核划分模式及调度状态,使处理器资源的使用方式和Domain的调度切换策略更好的适应当前系统的I/O负载需求,从而达到优化I/O性能的目的。
应用本发明提出的基于多核动态划分的虚拟机I/O调度方法时,系统处于两种可能的调度状态:1)正常调度状态;2)多核动态划分调度状态。处于正常调度状态时,系统采用全局统一的调度策略,所有处理器核均参与各类计算任务的调度,其调度参数设置和切换策略都保持一致;而当处于多核划分调度状态时,系统所有的处理器核按预设规划划分成三个不同的子集,即DriverCore(驱动域专用核),Fasttick Core(高频时钟核)和General Core(通用处理器核),分别用于承载驱动Domain、I/O事件响应操作和普通的计算任务。其中Driver Core由驱动Domain独占使用,不会发生调度切换;I/O事件响应由Fasttick Core完成,该处理器核的调度切换频率将由多核动态划分模块根据实际I/O事件发生的频率进行动态设置,且采用I/O事件响应优先的抢占式调度策略;其余的处理器核均属于GeneralCore子集,负责承载普通计算任务。系统通过执行多核划分操作由正常调度状态进入多核划分调度状态,通过执行恢复操作,由多核划分调度状态进入正常调度状态。
本发明提供的基于多核动态划分的非对称虚拟机调度方法包含以下执行步骤:
步骤1:初始化;系统启动时I/O调度初始化模块加载,记录设备前后端驱动模块连接建立时的I/O环与事件通道信息,随后分配I/O运行时参数收集所需的内存缓冲区,设定多核划分进入和退出决策条件,并规划处理器集划分使用形式,之后系统开始运行并进入正常调度状态;
步骤2:参数收集与处理;系统运行时,I/O状态监控与信息处理模块中的I/O状态监控子模块动态采集设备相关的状态参数,包括I/O事件类型,时间戳信息,事件计数信息,并将原始数据放入缓冲区;随后I/O状态监控与信息处理模块中的I/O信息处理子模块对缓冲区内的数据进行分类和处理,记录当前系统各类I/O事件的比率,平均耗时及系统总体I/O事件的频率;
步骤3:运行时参数设置与调度决策判定;调度决策模块周期性的读取I/O信息处理子模块的I/O信息处理结果,设置运行时的调度参数,并分析系统当前的I/O状态,根据预设条件做出判定,当满足多核动态划分进入条件时,向多核动态划分模块发出指令,执行步骤4,当满足多核动态划分退出条件时,向多核动态划分模块发出指令,执行步骤5,当两者都不满足时,保持系统当前运行状态不变;
步骤4:多核动态划分;多核动态划分模块接收调度决策模块的指令,执行多核划分操作,使系统由正常调度状态进入多核划分调度状态;
步骤5:调度状态恢复;多核动态划分模块接收调度决策模块的指令,执行调度状态恢复操作,使系统由多核划分调度状态恢复到正常调度状态。
相比现有技术本发明具有以下优点和积极效果:
(1)更好的I/O性能
传统的虚拟机调度方法大都面向服务器领域的应用,因此通常以系统的资源利用率和调度的公平性为原则进行设计,而本发明提出的调度方法,充分考虑了虚拟机系统泛虚拟化I/O模型的特点,针对I/O性能的瓶颈做出优化,通过为驱动Domain和I/O事件处理提供独立的处理器核资源,并采用了事件优先的抢占式的调度策略降低了I/O事件的响应延迟,从而使得泛虚拟化模型下设备访问的各个环节耗时都有所降低,从而改善了系统的I/O性能。
(2)更好的灵活和适应性
传统的全局统一调度方法中,各个处理器核都采用了相同的调度策略和参数设置,因此其调整和优化将受制于整个系统的运行环境。而本发明提出的非对称调度方法,将处理器核动态划分成多个子集,每各子集承载不同的计算任务,因此可以针对其上加载的负载运行特征应用不同的设置和优化方法,从而使得系统调度策略的选择和调整更加灵活,并且能更好的满足不同类型负载的实际需求。
(3)良好的可扩展性
本发明提出的基于动态划分的非对称虚拟机I/O调度方法在调度器和软中断层面实现多核的动态划分,而不是在启动阶段对处理器核队列初始化过程进行调整,因此其工作不依赖于特定的硬件平台和体系结构特征,具有更好的可扩展性。本发明提出的调度方法以虚拟处理器为单位进行调度和调整,因此当运行平台物理处理器核数量发生变化时,仅需要在I/O调度初始化模块中调整处理器集划分规划即可;此外Fasttick Core的实际调度切换频率也会根据实际负载的设备访问频率进行动态调整,因此可以更好的适应负载类型的变化。
附图说明
图1是本发明基于多核动态划分的非对称虚拟机I/O调度模型模块结构示意图;
图2是本发明提出的基于多核动态划分的非对称虚拟机I/O调度方法执行步骤流程图;
图3是本发明调度优先级及运行状态切换示意图。
具体实施方式
下面结合附图对本发明进行进一步的详细说明。通过足够详细的描述这些实施示例,使得本领域技术人员能够实践本发明。在不脱离本发明的主旨和范围的情况下,可以对实施做出逻辑的、实现的和其他的改变。
本发明所涉及的虚拟机系统包含以下几个组成部分:虚拟机监视器VMM1,驱动Domain6,客户Domain7,其中驱动Domain6与客户Domain7均运行在非特权模式,用来承载设备驱动、提供管理界面或加载用户的实际应用,而VMM1运行在特权模式,负责管理和分配系统硬件资源,包括处理器、内存、设备等。系统所需的设备驱动程序位于驱动Domain6中,并由VMM1为其开放指定的设备访问端口,使其能够完成物理设备的访问操作,而其它客户Domain7的设备访问请求均通过虚拟设备通道8传递给驱动Domain6由其代为执行,两者之间采用了前后端的连接方式,其结构如图1所示。该模型中,设备前端驱动模块9位于客户Domain7中,负责发起设备访问请求;设备后端驱动模块10位于驱动Domain6中,负责接收请求并完成实际的I/O操作;VMM1在两者之间传递I/O事件和相关数据。客户Domain7启动时,VMM1负责在设备前端驱动模块9和设备后端驱动模块10之间建立虚拟设备访问通道8,该通道包含I/O环81(I/O ring)和事件通道82(event channel)两个组成部分,实际访问设备时,客户Domain7中的设备前端驱动模块9首先将设备访问请求数据写入I/O环81,随后利用事件通道82向驱动Domain6传递一次I/O事件,当驱动Domain6下一次被调度时会检查其事件通道82状态,并由后端驱动模块10对客户Domain7的设备访问请求进行响应;在完成了实际的I/O操作后,后端驱动模块10将应答数据写入I/O环81,随后通过事件通道82向客户Domain7传递一次I/O应答事件,当客户Domain7下一次被调度时会检查其事件通道82状态并获取应答数据,从而完成一次设备访问操作。
本发明提出的基于多核动态划分的非对称虚拟机I/O调度方法在现有虚拟机监视器VMM1中加入四个新的模块:I/O调度初始化模块2、I/O状态监控与信息处理模块3、调度决策模块4、多核动态划分模块5。I/O调度初始化模块2在系统启动阶段加载,负责记录设备前后端连接建立时的I/O环81与事件通道82信息,随后分配I/O运行时参数信息收集所需的内存缓冲区,设定多核划分进入和退出决策条件,并规划处理器集划分使用形式。I/O状态监控与信息处理模块3则负责在运行时收集I/O相关的运行时信息并进行处理,由于设备前端驱动模块9与设备后端驱动模块10之间利用I/O环81和事件通道82进行设备访问请求和应答的传递,因此I/O状态监控与信息处理模块3包含两个子模块,即I/O状态监控子模块31和I/O信息处理子模块32,二者都位于虚拟机监视器VMM1中,I/O状态监控子模块31与I/O环81和事件通道82进行数据交互,获取系统的I/O状态状态参数,主要包括I/O事件的类型及发生的时间戳信息,随后将原始数据写入缓冲区,由I/O信息处理子模块32对其进行分类和处理,计算出各类I/O事件所占的比例、平均耗时、及系统总体I/O事件的频率。调度决策模块4则跟据I/O状态监控与信息处理模块3的统计结果判断当前系统的I/O状态是否满足多核动态划分进入或退出的阈值条件,并做出调度决策,随后将指令发送给多核动态划分模块5,由其根据指令类型,执行多核动态划分或恢复操作,当满足多核动态划分进入的阈值条件时,使系统由正常调度状态进入多核划分调度状态;当满足多核动态划分退出的阈值条件时,使系统由多核划分调度状态恢复到正常调度状态。
本发明提出的基于多核动态划分的虚拟机I/O调度方法,如图2所示,包含以下步骤:
步骤1:初始化。系统启动时I/O调度初始化模块2加载,完成相关初始化工作。本步骤包含如下四类操作:步骤1.1设备前后端连接建立时的I/O环81与事件通道82信息记录;步骤1.2I/O运行时参数信息收集缓冲区分配;步骤1.3多核划分进入和退出决策条件设定;步骤1.4处理器集划分使用形式规划。
步骤1.1,设备前后端连接建立时I/O环81与事件通道82信息记录。
如图1所示,客户Domain7启动时,VMM1会负责在设备前端驱动模块9与设备后端驱动模块10之间建立起虚拟设备通道8,该虚拟设备通道8包含I/O环81和事件通道82两个部分,其中I/O环81用于存储来自设备前端驱动模块9的I/O请求,以及来自设备后端驱动模块10的I/O应答;而事件通道82则被用来通知虚拟设备通道8另一端的模块当前有I/O事件需要进行处理。虚拟机系统中,I/O环81以共享内存的方式同时映射到驱动Domain6和客户Domain7的地址空间中,该映射过程由VMM1负责完成,本发明中,I/O调度初始化模块2会监控启动阶段I/O环81的映射过程,并记录该共享内存页面信息,并将其映射到预分配的地址空间中,I/O状态监控与信息处理模块3通过该地址空间,查看存储在I/O环81中的每一次I/O请求和应答的操作信息。事件通道82以软中断的形式实现,创建时,VMM1会为其分配一个全局唯一的标号,随后将其绑定到与之关联Domain的某个空闲的中断(irq)号之上,此后每当Domain被调度时,VMM1都会检查其是否有未决的事件需要处理,如果存在,则调用对应irq之上注册的处理例程,本发明中,I/O调度初始化模块2会记录虚拟设备通道8建立时,连接驱动Domain6和客户Domain7之间的事件通道82标号,从而跟踪各类I/O请求和应答事件的发生,并记录相关的时间和事件类型信息。
步骤1.2,I/O运行时参数信息收集缓冲区分配。
该缓冲区分配于VMM1的地址空间内,由I/O状态监控与信息处理模块3使用,记录设备相关的运行时参数,包括I/O事件类型,时间戳信息,事件计数信息,默认大小为64K。
步骤1.3,多核划分进入和退出决策条件设定。
该决策条件由调度决策模块4使用,用来判定当前是否需要执行多核动态划分或恢复操作,决策条件以I/O事件频率作为判定参数,包含多核划分进入阈值T1及多核划分退出阈值T2,T1、T2应根据实际加载应用的特征进行测定,以决定最优的阈值条件,I/O状态监控与信息处理模块3可以提供系统运行时的I/O事件频率测试结果。
进入阈值T1、退出阈值T2的设置取决于实际负载运行时,I/O请求事件的发生频率,该数值应在系统使用前进行测定,其中进入阈值T1的设置应略低于典型I/O应用的请求事件频率,而退出阈值T2可设定为T1/2,这样既可以保证在执行典型I/O应用时,系统处于多核划分调度状态,以获得最优的性能,又可以避免频繁的调度模式切换导致的颠簸现象,下面给出典型的判定过程举例。如应用本发明方法的系统配置如下:4核实验平台,Xen-3.1.0虚拟机系统,Linux2.6.18内核,负载类型及I/O请求事件频率测试结果:网络I/O:ping操作,2次/秒;scp操作,280次/秒;ftp文件传输,800次/秒;磁盘I/O,Linux内核编译,40次/秒;dd命令磁盘块拷贝250次/秒;内核压缩打包,400次/秒(上述结果由I/O状态监控与信息处理模块3测定,可通过串口或文件的方式输出)。本例所述应用中,ping操作和Linux内核编译时两类应用不属于I/O密集型应用,其I/O事件频率较低,因此其测试结果不应参与判定阈值T1、T2;其它几类负载属于典型的I/O密集型应用,其I/O事件频率较高,将用于判定阈值T1、T2。如果实际系统中同时包含上述应用,为保证I/O密集型负载运行时系统处于多核划分运行状态,进而能够获得良好的性能,应当取其中最低的I/O事件频率作为阈值T1,而T2=T1/2。本例中,取值对象为dd命令磁盘块拷贝操作,设定结果为,T1=250次/秒,T2=T1/2=125次/秒。
步骤1.4,处理器集划分使用形式规划。
本发明中,处于多核划分调度状态时,系统所有的处理器核被划分为三个子集,即DriverCore、Fasttick Core和General Core,其中Driver Core与Fasttick Core的数量可进行设置,最低为1个,剩余的处理器核属于General Core,Driver Core和Fasttick Core的数量配置取决于实际I/O任务的负载情况。4核计算平台的典型配置如下:Core0配置为Driver Core,Core1配置为Fasttick Core,Core2和Core3配置为General Core。该配置由多核动态划分模块5读取,完成相应的处理器核分配操作。
步骤2:参数收集与处理。系统运行时I/O状态监控与信息处理模块3动态采集设备相关的状态参数并进行处理,本步骤包含以下两类操作:步骤2.1 I/O状态参数收集;步骤2.2I/O状态信息处理。
步骤2.1,I/O状态采集。
I/O状态监控子模块31采集I/O数据参数,并写入预分配缓冲区。I/O状态监控子模块位于VMM1中,与虚拟设备通道8进行数据交互,该模块首先通过追踪启动阶段记录的事件通道82标号,跟踪驱动Domain6和客户Domain7之间的事件传递过程,同时记录本次I/O事件发生的时间戳,随后通过预分配的地址空间读取I/O环81中的I/O请求和应答信息。本发明所针对的虚拟机系统中,I/O请求包含以下几类信息:1)I/O类型(读、写或其它扩展操作),2)ID号,3)本次I/O操作的数据索引。I/O应答包含以下几类信息:1)ID号,2)I/O操作的执行情况(依具体的I/O类型有所不同)。每一次I/O请求/应答数据都由唯一的ID号进行标识,虽然ID号会被循环使用,但必须在一次完整的I/O操作完成后,ID号才会被回收,因此本发明通过读取I/O环81中的ID号信息来跟踪一次I/O访问的全部过程,其中,时间戳信息以二维数组的形式填充到预分配的缓冲区中,其一级索引为ID编号,范围为0至256;二级索引为事件类型,共包含“设备前端I/O请求发送”、“设备后端请求接收”、“设备后端应答发送”、“设备前端应答接收”四类事件,其索引号依次为0、1、2、3。其它信息同样以二维数组的形式填充到预分配缓冲区中,其一级索引号ID编号,二级索引为信息类型。本步骤总所执行的参数收集操作在客户Domain7启动并完成设备前后端连接后开始执行,当客户Domain7关闭并断开设备前后端连接时终止。
步骤2.2,I/O状态信息处理:
I/O信息处理子模块32读取并处理缓冲区内数据。本步骤对缓冲区内的数据进行计算,并给出如下几类计算结果:a.各类I/O操作的数量及比例;b.每次I/O操作各个阶段的耗时;c.各类I/O操作的事件频率。上述结果被调度决策模块4使用,用于判定当前系统I/O状态,其中结果a,b主要用于调试。所有上述结果均可通过串口输出,也可利用内核打印语句输出到文件。
步骤3:运行时参数设置与调度决策判定。本步骤包含两类操作:步骤3.1运行时参数设置;步骤3.2调度决策判定。
步骤3.1,运行时参数设置:
本发明中Fasttick Core专门用来响应I/O事件,而该处理器核在tick时钟到来时会发生调度切换,因此当Fasttick Core的tick时钟频率与I/O应答事件的发生频率相匹配时,系统能够获得最优的I/O性能。本发明中,调度决策模块4每隔250ms从I/O状态监控与信息处理模块3处获取一次该时间段内I/O应答事件的发生频率,并依此计算出I/O应答事件发生的平均时间间隔,随后将其记录在全局量t_fasttick中,当系统处于多核划分调度状态时,该值被用来设定Fasttick Core的tick时钟周期Tfasttick。为保证各个VCPU调度时其信用值能够正确计算,Tfasttick的精度单位及最小取值为0.1ms。本发明所涉及的虚拟机系统中,处理器核的调度时钟周期在初始化时通过init_timer函数设定,随后每次时钟到期并完成响应处理后,使用set_timer函数重新设定,本步骤通过调整set_timer输入参数的方法调整Fasttick Core的调度时钟周期。
步骤3.2,调度决策判定:
调度决策模块4读取I/O状态监控与信息处理模块3的I/O信息处理结果,分析系统当前的I/O状态,并根据预设条件作出判定,随后向多核动态划分模块5发出指令,执行步骤4或步骤5或维持系统当前运行状态。本发明中,调度决策模块4每隔250ms读取一次I/O请求事件发生频率,如连续4个周期,其频率都超过进入阈值T1,且系统当前处于正常调度状态,说明满足多核动态划分进入条件,则执行动态划分操作;如连续2个周期低于退出阈值T2,且系统当前处于多核划分调度状态,说明满足多核动态划分退出条件,则执行恢复操作,解除动态划分并恢复系统至正常调度状态;如多核动态划分退出进入条件均不符合,则保持当前系统运行状态。
步骤4:多核动态划分。多核动态划分模块5接收调度决策模块4的指令,执行多核动态划分操作,使系统由正常调度状态进入多核划分调度状态。本步骤包含两类操作:步骤4.1驱动Domain6与DriverCore绑定;步骤4.2 FasttickCore分离与非对称调度时钟设定。
步骤4.1,驱动Domain6与Driver Core绑定:
本发明中,虚拟机系统以虚拟CPU(VCPU)为单位对各个Domain进行调度,每个Domain在创建时拥有固定数量的VCPU(默认为1),当某个Domain被调度时,其VCPU被加载到实际的物理CPU之上执行。本发明涉及的虚拟机系统其主调度函数为schedule,当系统软中断SOFTIRQ_SCHEDULE触发并被响应时,该函数被调用,并从当前处理器的调度队列中选择下一个应当被调度的VCPU,随后执行调度切换。本步骤中,多核动态划分模块5首先检查全局标志BoundFlag是否置位,以判断当前是否处于驱动Domain6绑定的调度状态,如果是,则检查处理器核的编号是否符合指定的数值(如Core0),如果条件满足,则让其始终调度驱动Domain6的VCPU,这样驱动Domain6会独占该处理器核的计算时间,并且不会在其它处理器核上被调度。反之,当全局标志BoundFlag未被置位时,则采用正常的调度策略。BoundFlag标志的置位与清除由调度决策模块4完成,每当当前系统I/O状态符合多核动态划分进入或退出条件时,便对BoundFlag标志进行相应的修改操作。标志修改和实际调度切换中间可能会存在一定的延迟,但该延迟最长不会超过3个tick周期,即30ms。
步骤4.2,Fasttick Core分离与非对称调度时钟设定:
本发明涉及的虚拟机系统中,主调度函数schedule和实际调度器间的联系通过结构化的跳转表实现,对于系统默认的credit调度算法来说即为定义于sched_credit.c函数中的全局结构体sched_credit_def,该结构体中提供了VCPU初始化、删除、睡眠、唤醒等操作的处理函数,以及实际credit算法相关的调度处理函数csched_schedule。此外,调度器在初始化时,会设置tick时钟即非对称调度时钟,每当时钟中断到来时就会进行credit值计算,并在必要时修改VCPU的调度优先级和状态,以及发起调度操作。本步骤执行时,多核动态划分模块5首先修改fasttick core的tick时钟周期,使其由默认的10ms修改为步骤3中调度决策模块4的测定值Tfasttick(该值的设置取决于系统的I/O状态,参考步骤3中的描述),随后在其之上采用了I/O事件响应优先的抢占式调度策略,其判定过程如下,如图3所示:
a如目标VCPU处于“UNDER/阻塞”状态,则提升其优先级至BOOST(0),并立刻发起一次调度;
b如目标VCPU处于“UNDER/等待调度”状态,则检查其是否处于Fasttick Core的调度队列中,如果是,则将其排到队列头部,如果不是,则将其从当前队列中摘除,并放入Fasttick Core调度队列头部;
c如目标VCPU处于“UNDER/正在调度”状态或BOOST状态,且在Fasttick Core之上调度,则设置全局标志IODomU_OnSchedule_flag;如该VCPU当前在General Core之上调度,则设置全局标志IODomU_OnSchedule_flag,并立刻发起调度,调度函数csched_schedule中检查到该标志后,直接挑选当前运行的VCPU做为下一个调度VCPU;
d如目标VCPU处于OVER状态,则首先将其优先级修改为PREEMPT=1,随后检查其是否处于Fasttick Core的调度队列中,如果是,则直接将其排到队列头部;如果不是,则将其从当前所处的CPU队列中摘除,并放入Fasttick Core的调度队列头部;
e如目标VCPU处于PREEMPT状态,说明该VCPU正在Fasttick Core之上被调度运行,则设置全局标志IODomU_OnSchedule_flag,调度函数csched_schedule中检查到该标志后,直接挑选当前运行的VCPU做为下一个调度VCPU;
f处于UNDER状态的VCPU在本次调度操作完成后,如果不是本次I/O事件的目标VCPU,则停止调度,重新放入调度队列并按优先级排序;
g处于BOOST状态的VCPU在本次调度操作完成后,如果不是本次I/O事件的目标VCPU,则停止调度,将优先级修改为UNDER,重新放入调度队列并按优先级排序。h处于PREEMPT状态的VCPU在本次调度操作完成后,如果不是本次I/O事件的目标VCPU,则停止调度,将优先级修改为OVER,重新放入调度队列并按优先级排序;
i Fasttick Core在tick时钟中断到来时会发生调度切换。
步骤5:调度状态恢复。多核动态划分模块5接收调度决策模块4的指令,执行调度状态恢复操作,使系统由多核划分调度状态恢复到正常调度状态。本步骤的执行过程与步骤4相反,同样包含两类操作:步骤5.1驱动Domain6与Driver Core解绑定;步骤5.2 FasttickCore调度时钟与策略恢复。
步骤5.1,驱动Domain6与Driver Core解绑定:
解绑定操作执行时,多核动态划分模块5在主调度函数schedule中检查全局标志BoundFlag,判定系统当前需要恢复至正常调度状态,随后进入credit调度算法框架,选择下一颗应该被调度的VCPU,并执行调度切换。
步骤5.2,Fasttick Core调度时钟与策略恢复:
Fasttick Core调度时钟与策略恢复操作执行时,多核动态划分模块5首先修改Fasttickcore的tick时钟周期,使其由调度决策模块4的测定值Tfasttick恢复至默认的10ms,随后忽略IODomU_OnSchedule_flag标志检查,直接从当前处理器的VCPU对列中选择下一颗需要被调度的VCPU,随后返回上层调度函数,并执行调度切换。

Claims (4)

1.一种基于多核动态划分的非对称虚拟机I/O调度方法,其特征在于,该方法在现有虚拟机监视器中加入了四个模块:I/O调度初始化模块、I/O状态监控与信息处理模块、调度决策模块和多核动态划分模块,具体步骤如下:
步骤1:初始化;系统启动时I/O调度初始化模块加载,记录设备前后端驱动模块连接建立时的I/O环与事件通道信息,随后分配I/O运行时参数信息收集所需的内存缓冲区,设定多核划分进入和退出决策条件,并规划处理器集划分使用形式,之后系统开始运行并进入正常调度状态;所述的步骤1包括如下具体步骤:
步骤1.1,设备前后端连接建立时I/O环与事件通道信息记录:
客户Domain启动时,VMM负责在设备前端驱动模块与设备后端驱动模块之间建立起虚拟设备通道,该虚拟设备通道包含I/O环和事件通道两个部分,其中I/O环用于存储来自设备前端驱动模块的I/O请求,以及来自设备后端驱动模块的I/O应答;而事件通道则被用来通知虚拟设备通道另一端的模块当前有I/O事件需要进行处理;虚拟机系统中,I/O环以共享内存的方式同时映射到驱动Domain和客户Domain的地址空间中,该映射过程由VMM负责完成;I/O调度初始化模块会记录虚拟设备通道建立时,连接驱动Domain和客户Domain之间的事件通道标号,从而跟踪各类I/O请求和应答事件的发生,并记录相关的时间和事件类型信息;其中,客户Domain代表客户域、驱动Domain代表驱动域、VMM代表虚拟机监视器;
步骤1.2,I/O运行时参数信息收集缓冲区分配:
该缓冲区分配于VMM的地址空间内,由I/O状态监控与信息处理模块使用,记录设备相关的运行时参数,包括I/O事件类型,时间戳信息,事件计数信息,默认大小为64K;
步骤1.3,多核划分进入和退出决策条件设定:
该决策条件由调度决策模块使用,用来判定当前是否需要执行多核动态划分或恢复操作,决策条件以I/O事件频率作为判定参数,包含多核划分进入阈值T1及多核划分退出阈值T2,T1、T2的设置取决于实际负载运行时,I/O请求事件的发生频率,该数值应在系统使用前进行测定,T1的设置应略低于典型I/O应用的请求事件频率,T2设定为T1/2,I/O状态监控与信息处理模块提供系统运行时的I/O事件频率测试结果;
步骤1.4,处理器集划分使用形式规划:
处于多核划分调度状态时,系统所有的处理器核被划分为三个子集,包括Driver Core、Fasttick Core和General Core,其中Driver Core与Fasttick Core的数量能够进行设置,最低为1个,剩余的处理器核属于General Core,Driver Core和Fasttick Core的数量配置取决于实际I/O任务的负载情况,其中,Driver Core代表驱动域专用核、Fasttick Core代表高频时钟核、General Core代表通用处理器核;
步骤2:参数收集与处理;系统运行时,I/O状态监控与信息处理模块中的I/O状态监控子模块动态采集设备相关的状态参数,包括I/O事件类型,时间戳信息,事件计数信息,并将原始数据放入缓冲区,随后I/O状态监控与信息处理模块中的I/O信息处理子模块对缓冲区内的数据进行分类和处理,记录当前系统各类I/O事件的比率,平均耗时及系统总体I/O事件的频率;
步骤3:运行时参数设置与调度决策判定;调度决策模块周期性的读取I/O信息处理子模块的处理结果,设置运行时的调度参数,并分析系统当前的I/O状态,根据预设条件做出判定,当满足多核动态划分进入条件时,向多核动态划分模块发出指令,执行步骤4,当满足多核动态划分退出条件时,向多核动态划分模块发出指令,执行步骤5,当两者都不满足时,保持系统当前运行状态不变;所述的步骤3包括如下具体步骤:
步骤3.1,运行时参数设置:
调度决策模块每隔250ms从I/O状态监控与信息处理模块处获取一次该时间段内I/O应答事件的发生频率,并依此计算出I/O应答事件发生的平均时间间隔,随后将其记录在全局量t_fasttick中,当系统处于多核划分调度状态时,该值被用来设定Fasttick Core的tick时钟周期Tfasttick,为保证各个VCPU调度时其credit能够正确计算,Tfasttick的精度单位及最小取值为0.1ms;其中,VCPU代表虚拟CPU、credit代表信用值;
步骤3.2,调度决策判定:
调度决策模块每隔250ms读取一次I/O请求事件发生频率,若连续4个周期,其频率都超过多核划分进入阈值T1,且系统当前处于正常调度状态,则执行动态划分操作;若连续2个周期低于多核划分退出阈值T2,且系统当前处于多核划分调度状态,则执行恢复操作,解除动态划分并恢复系统至正常调度状态;若多核动态划分退出进入条件均不符合,则保持当前系统运行状态;
步骤4:多核动态划分;多核动态划分模块接收调度决策模块的指令,执行多核划分操作,使系统由正常调度状态进入多核划分调度状态;所述的步骤4包括如下具体步骤:
步骤4.1,驱动Domain与Driver Core绑定:
虚拟机系统以VCPU为单位对驱动Domain和客户Domain的各个Domain进行调度,每个Domain在创建时拥有固定数量的VCPU,当某个Domain被调度时,其VCPU被加载到实际的物理CPU之上执行;当系统软中断SOFTIRQ_SCHEDULE触发并被响应时,虚拟机系统主调度函数schedule被调用,并从当前处理器的调度队列中选择下一个应当被调度的VCPU,随后执行调度切换;多核动态划分模块首先检查全局标志BoundFlag是否置位,以判断当前是否处于驱动Domain绑定的调度状态,如果全局标志BoundFlag被置位,则检查处理器核的编号是否符合指定配置为Driver Core的数值,如果符合,则让其始终调度驱动Domain的VCPU;当全局标志BoundFlag未被置位时,则采用正常的调度策略;全局标志BoundFlag的置位与清除由调度决策模块完成,每当当前系统I/O状态符合多核动态划分进入或退出条件时,调度决策模块便对全局标志BoundFlag进行相应的修改操作,标志修改和实际调度切换中间会存在一定的延迟,但该延迟最长不会超过3个tick时钟周期;
步骤4.2,Fasttick Core分离与非对称调度时钟设定:
在虚拟机系统中,主调度函数schedule和实际调度器间的联系通过结构化的跳转表实现,对于系统默认的credit调度算法来说即为定义于sched_credit.c函数中的全局结构体sched_credit_def,该结构体中提供了VCPU初始化、删除、睡眠、唤醒操作的处理函数,以及实际credit算法相关的调度处理函数csched_schedule;此外,调度器在初始化时,会设置tick时钟,每当时钟中断到来时就会进行credit值计算,并在必要时修改VCPU的调度优先级和状态,以及发起调度操作;本步骤执行时,多核动态划分模块首先修改Fasttickcore的tick时钟周期,使其由默认的10ms修改为调度决策模块测定的值Tfasttick,随后在其之上采用了I/O事件响应优先的抢占式调度策略;
步骤5:调度状态恢复;多核动态划分模块接收调度决策模块的指令,执行调度状态恢复操作,使系统由多核划分调度状态恢复到正常调度状态。
2.根据权利要求1所述的一种基于多核动态划分的非对称虚拟机I/O调度方法,其特征在于,所述的步骤2包括如下具体步骤:
步骤2.1,I/O状态采集:
I/O状态监控子模块采集I/O数据参数,并写入预分配缓冲区;该模块位与虚拟设备通道进行数据交互,首先通过追踪启动阶段记录的事件通道标号,跟踪驱动Domain和客户Domain之间的事件传递过程,同时记录本次I/O事件发生的时间戳,随后通过预分配的地址空间读取I/O环中的I/O请求和应答信息;I/O状态采集在客户Domain启动并完成设备前后端连接后开始执行,当客户Domain关闭并断开设备前后端连接时终止;
步骤2.2,I/O状态信息处理:
I/O信息处理子模块读取并处理缓冲区内数据,对缓冲区内的数据进行计算,给出如下几类计算结果:a.各类I/O操作的数量及比例,b.每次I/O操作各个阶段的耗时,c.各类I/O操作的事件频率;上述结果被调度决策模块使用,用于判定当前系统I/O状态,所有上述结果均通过串口输出,也能够利用内核打印语句输出到文件。
3.根据权利要求1所述的一种基于多核动态划分的非对称虚拟机I/O调度方法,其特征在于,所述的抢占式调度策略,其判定过程包括如下内容:
a如目标VCPU处于“UNDER/阻塞”状态,则提升其优先级至BOOST(0),并立刻发起一次调度;
b如目标VCPU处于“UNDER/等待调度”状态,则检查其是否处于Fasttick Core的调度队列中,如果是,则将其排到队列头部,如果不是,则将其从当前队列中摘除,并放入Fasttick Core调度队列头部;
c如目标VCPU处于“UNDER/正在调度”状态或BOOST状态,且在Fasttick Core之上调度,则设置全局标志IODomU_OnSchedule_flag;如该VCPU当前在General Core之上调度,则设置全局标志IODomU_OnSchedule_flag,并立刻发起调度,调度函数csched_schedule中检查到该标志后,直接挑选当前运行的VCPU做为下一个调度VCPU;
d如目标VCPU处于OVER状态,则首先将其优先级修改为PREEMPT=1,随后检查其是否处于Fasttick Core的调度队列中,如果是,则直接将其排到队列头部;如果不是,则将其从当前所处的CPU队列中摘除,并放入Fasttick Core的调度队列头部;
e如目标VCPU处于PREEMPT状态,说明该VCPU正在Fasttick Core之上被调度运行,则设置全局标志IODomU_OnSchedule_flag,调度函数csched_schedule中检查到该标志后,直接挑选当前运行的VCPU做为下一个调度VCPU;
f处于UNDER状态的VCPU在本次调度操作完成后,如果不是本次I/O事件的目标VCPU,则停止调度,重新放入调度队列并按优先级排序;
g处于BOOST状态的VCPU在本次调度操作完成后,如果不是本次I/O事件的目标VCPU,则停止调度,将优先级修改为UNDER,重新放入调度队列并按优先级排序;
h处于PREEMPT状态的VCPU在本次调度操作完成后,如果不是本次I/O事件的目标VCPU,则停止调度,将优先级修改为OVER,重新放入调度队列并按优先级排序;
i Fasttick Core在tick时钟中断到来时会发生调度切换。
4.根据权利要求1所述的一种基于多核动态划分的非对称虚拟机I/O调度方法,其特征在于,所述的步骤5包括如下具体步骤:
步骤5.1,驱动Domain与Driver Core解绑定:
多核动态划分模块在主调度函数schedule中检查全局标志BoundFlag,判定出系统当前需要恢复至正常调度状态,随后进入credit调度算法框架,选择下一个应该被调度的VCPU,并执行调度切换;
步骤5.2,Fasttick Core调度时钟与策略恢复:
多核动态划分模块首先修改Fasttick core的tick时钟周期,使其由调度决策模块测定的值Tfasttick恢复至默认的10ms,随后忽略IODomU_OnSchedule_flag标志检查,直接从当前处理器的VCPU队列中选择下一个需要被调度的VCPU,随后返回上层调度函数,并执行调度切换。
CN2009102380875A 2009-11-20 2009-11-20 一种基于多核动态划分的非对称虚拟机i/o调度方法 Expired - Fee Related CN101706742B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009102380875A CN101706742B (zh) 2009-11-20 2009-11-20 一种基于多核动态划分的非对称虚拟机i/o调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102380875A CN101706742B (zh) 2009-11-20 2009-11-20 一种基于多核动态划分的非对称虚拟机i/o调度方法

Publications (2)

Publication Number Publication Date
CN101706742A CN101706742A (zh) 2010-05-12
CN101706742B true CN101706742B (zh) 2012-11-21

Family

ID=42376968

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102380875A Expired - Fee Related CN101706742B (zh) 2009-11-20 2009-11-20 一种基于多核动态划分的非对称虚拟机i/o调度方法

Country Status (1)

Country Link
CN (1) CN101706742B (zh)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102375761A (zh) * 2010-08-06 2012-03-14 中兴通讯股份有限公司 业务管理方法和装置、以及设备
US8949414B2 (en) * 2010-12-29 2015-02-03 Citrix Systems, Inc. Systems and methods for scalable N-core stats aggregation
CN102222014B (zh) * 2011-06-16 2013-05-22 华中科技大学 基于内存热插拔的虚拟机动态内存管理方法
EP2698711B1 (en) 2011-06-30 2015-08-05 Huawei Technologies Co., Ltd. Method for dispatching central processing unit of hotspot domain virtual machine and virtual machine system
WO2012109870A1 (zh) * 2011-08-01 2012-08-23 华为技术有限公司 虚拟资源管理方法、系统及装置
US9390294B2 (en) * 2011-09-30 2016-07-12 Hewlett-Packard Development Company, L.P. Virtualized device control in computer systems
CN102508696B (zh) * 2011-10-30 2016-06-08 北京方物软件有限公司 一种不对称的资源调度方法及装置
CN103179048B (zh) * 2011-12-21 2016-04-13 中国电信股份有限公司 云数据中心的主机QoS策略变换方法及系统
US20140025890A1 (en) * 2012-07-19 2014-01-23 Lsi Corporation Methods and structure for improved flexibility in shared storage caching by multiple systems operating as multiple virtual machines
CN102890643B (zh) * 2012-07-26 2015-01-21 上海交通大学 基于应用效果即时反馈的显卡虚拟化下的资源调度系统
CN102945214B (zh) * 2012-10-19 2016-02-10 北京忆恒创源科技有限公司 基于io延迟时间分布优化中断处理任务的方法
CN103019856A (zh) * 2012-11-23 2013-04-03 上海寰创通信科技股份有限公司 一种多核处理器的非对称调度方法
CN103870311B (zh) * 2012-12-10 2016-12-21 华为技术有限公司 通过半虚拟化驱动访问硬件的方法、后端驱动及前端驱动
CN103064741B (zh) * 2012-12-24 2015-08-05 浙江工业大学 一种基于能量模型的可分负荷调度方法
CN103092693B (zh) * 2013-01-30 2016-08-31 深圳联友科技有限公司 一种用于计算机的任务调度方法和系统
CN104009862A (zh) * 2013-02-27 2014-08-27 腾讯科技(深圳)有限公司 一种设备调度方法及系统
CN104346220B (zh) * 2013-07-31 2017-11-03 中国科学院计算技术研究所 一种任务调度方法与系统
CN103428099B (zh) * 2013-08-21 2016-02-24 中国人民解放军国防科学技术大学 一种通用多核网络处理器流量控制的方法
CN104834565B (zh) * 2014-02-12 2018-08-14 华为技术有限公司 一种系统服务动态部署方法及装置
CN103942103A (zh) * 2014-04-16 2014-07-23 乐视致新电子科技(天津)有限公司 多核体系中处理器调度策略的生成方法及装置、调度系统
EP3121684B1 (en) 2014-07-14 2018-05-02 Huawei Technologies Co., Ltd. Multi-core processor management method and device
CN104102531B (zh) * 2014-08-06 2017-11-14 汉柏科技有限公司 基于虚拟机的多网融合系统和方法
CN104199768B (zh) * 2014-08-21 2017-04-05 大唐移动通信设备有限公司 多核处理器置位的方法和装置
CN104346212A (zh) * 2014-10-20 2015-02-11 浪潮电子信息产业股份有限公司 一种虚拟机i/o性能的优化方法
CN104615549A (zh) * 2015-01-19 2015-05-13 杭州华三通信技术有限公司 一种虚拟系统中域管理方法和装置
CN104598298A (zh) * 2015-02-04 2015-05-06 上海交通大学 基于虚拟机当前工作性质以及任务负载的虚拟机调度算法
CN104679593B (zh) * 2015-03-13 2017-12-01 浪潮集团有限公司 一种基于smp系统的任务调度优化方法
US10372493B2 (en) * 2015-12-22 2019-08-06 Intel Corporation Thread and/or virtual machine scheduling for cores with diverse capabilities
CN105630576B (zh) * 2015-12-23 2019-08-20 华为技术有限公司 一种虚拟化平台中的数据处理方法及装置
US11671382B2 (en) * 2016-06-17 2023-06-06 Intel Corporation Technologies for coordinating access to data packets in a memory
CN106775934B (zh) * 2016-11-29 2020-12-11 北京元心科技有限公司 基于多系统的输入输出方法及装置
CN106790599B (zh) * 2016-12-29 2019-06-28 中国人民解放军国防科学技术大学 一种基于多核无锁环形缓冲区的共生虚拟机通信方法
US10416897B2 (en) * 2017-03-27 2019-09-17 SK Hynix Inc. Memory system with latency distribution optimization and an operating method thereof
CN107807843B (zh) * 2017-10-26 2019-05-24 北京百度网讯科技有限公司 虚拟机中的i/o请求处理方法、设备及计算机可读介质
CN109753371B (zh) * 2017-11-06 2021-10-19 华为技术有限公司 一种i/o阻塞检测方法、装置及设备
CN107918561B (zh) * 2017-11-17 2021-03-26 东北大学 一种工业分布式数据采集系统中的任务分配方法
CN110750356B (zh) * 2019-09-09 2022-03-29 华南师范大学 适用于非易失性内存的多核交互方法、系统及存储介质
CN110661731B (zh) * 2019-09-26 2020-09-29 光大兴陇信托有限责任公司 一种报文处理方法及其装置
CN112486142B (zh) * 2020-11-26 2022-01-28 北京经纬恒润科技股份有限公司 将虚拟化io架构和汽车应用集成在ecu的方法及系统
CN112363816B (zh) * 2020-11-26 2022-08-16 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 嵌入式多核操作系统确定性调度方法、系统及介质
US20230185601A1 (en) * 2021-12-09 2023-06-15 International Business Machines Corporation User-level threading for simulating multi-core processor
CN117493236B (zh) * 2023-12-28 2024-03-01 苏州元脑智能科技有限公司 Fpga加速器以及加速器系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101169731A (zh) * 2007-12-05 2008-04-30 华为技术有限公司 多路多核服务器及其cpu的虚拟化处理方法
CN101354661A (zh) * 2007-06-28 2009-01-28 英特尔公司 基于工作负载的时间特征优化os调度决策的系统和方法
CN101546276A (zh) * 2008-03-26 2009-09-30 国际商业机器公司 多核环境下实现中断调度的方法及多核处理器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101354661A (zh) * 2007-06-28 2009-01-28 英特尔公司 基于工作负载的时间特征优化os调度决策的系统和方法
CN101169731A (zh) * 2007-12-05 2008-04-30 华为技术有限公司 多路多核服务器及其cpu的虚拟化处理方法
CN101546276A (zh) * 2008-03-26 2009-09-30 国际商业机器公司 多核环境下实现中断调度的方法及多核处理器

Also Published As

Publication number Publication date
CN101706742A (zh) 2010-05-12

Similar Documents

Publication Publication Date Title
CN101706742B (zh) 一种基于多核动态划分的非对称虚拟机i/o调度方法
US9864627B2 (en) Power saving operating system for virtual environment
US10073711B2 (en) Virtual machine monitor configured to support latency sensitive virtual machines
CN102103516B (zh) 基于虚拟cpu的频率和电压调节
US9058218B2 (en) Resource allocation based on anticipated resource underutilization in a logically partitioned multi-processor environment
EP1628214B1 (en) Systems and methods for implementing an operating system in a virtual machine environment
CN100511151C (zh) 多路多核服务器及其cpu的虚拟化处理方法
US9239765B2 (en) Application triggered state migration via hypervisor
JP3501385B2 (ja) ジョブ実行順序決定方法
CN102073545B (zh) 操作系统中防止用户界面卡屏的进程调度方法及装置
CN102023844B (zh) 并行处理器及其线程处理方法
US20140149768A1 (en) Virtualized application power budgeting
US20060195715A1 (en) System and method for migrating virtual machines on cluster systems
US20100191845A1 (en) Speculative virtual machine resource scheduling
US11182713B2 (en) Methods and systems to optimize operating system license costs in a virtual data center
CN101276293A (zh) 在逻辑分区之间平衡物理系统资源访问的方法和系统
CN1506794A (zh) 分区数据处理系统中的能源节约
CN102779047A (zh) 一种嵌入式软件支撑平台
CN103365700A (zh) 一种面向云计算虚拟化环境的资源监测和调整系统
CN103677990B (zh) 虚拟机实时任务的调度方法、装置和虚拟机
CN102831015A (zh) 多核处理器的调度方法和设备
CN101968746A (zh) 一种内核虚拟机组织架构模式的实现方法
CN101183315A (zh) 一种并行多处理器虚拟机系统
CN102073535B (zh) 基于硬件计数器虚拟化的多虚拟机性能分析方法
CN101539868B (zh) 一种虚拟机管理器的客户操作系统内核代码动态替换方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB03 Change of inventor or designer information

Inventor after: Long Xiang

Inventor after: Hu Yanyan

Inventor after: Gao Xiaopeng

Inventor after: Zhang Jiong

Inventor after: Bai Yuebin

Inventor before: Zhang Jiong

Inventor before: Long Xiang

Inventor before: Hu Yanyan

Inventor before: Gao Xiaopeng

Inventor before: Bai Yuebin

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: ZHANG JIONG LONG XIANG HU YANYAN GAO XIAOPENG BAI YUEBIN TO: LONG XIANG HUYANYAN GAO XIAOPENG ZHANG JIONG BAI YUEBIN

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121121

Termination date: 20141120

EXPY Termination of patent right or utility model