虚拟机操作中的并行化的制作方法

文档序号:9672968阅读:728来源:国知局
虚拟机操作中的并行化的制作方法
【技术领域】
[0001]本发明通常涉及硬件的虚拟化,并且更具体地涉及虚拟机中的并行化或由此提供的虚拟化平台。
【背景技术】
[0002]包括飞行器、宇宙飞船、汽车、医疗器械等的许多现代复杂的系统包含与多个子系统通信以创建完整的系统的中央计算机系统或其他处理元件。该中央处理器可以包括执行被设计用于控制复杂系统的计算机程序的一个或多个处理器和/或核。
[0003]为了开发这些复杂的系统,创建了测试设备(test facility)从而允许开发中央计算机系统中的计算机程序并且使用连接到该测试设备的真实和/或模拟子系统对所述计算机程序进行测试。因为这些测试设备往往是昂贵的,所以它们通常是开发程序上的有限的资源。为了创建更多的测试能力,测试设备的虚拟表示往往被创建。
[0004]创建虚拟测试设备的一种方式是创建适当设备和通信接口的模拟并将这些模拟连接到计算机程序,用于控制运行在虚拟化平台内的复杂系统,这可以通过被配置以运行在主机硬件平台的顶端上的适合的虚拟机来提供。在虚拟平台内的仿真处理器上运行计算机程序通常是被希望的。仿真处理器和虚拟化层允许对执行计算机程序的很好控制,而且其还对计算机程序的操作提供更好的可见性。
[0005]在复杂系统被开发后,创建训练器以对复杂系统的用户培训其操作通常是必需的或非常期望的。具有以(如果不是完全相同则)接近实际系统的操作的方式来操作的训练器(trainer)是非常期望的。创建训练器的一种方法是运行在主机硬件平台上的虚拟化平台内的计算机程序。在虚拟平台内的仿真处理器上运行计算机程序通常是期望的。仿真处理器和虚拟化层提供实际系统的高保真度表示,并允许对于执行计算机程序的很好的控制,从而允许创建不可能存在于复杂系统中所使用的真实目标硬件平台上的某些训练场景。
[0006]虚拟化平台的创建包括创建基于实际复杂系统的目标硬件平台的纯软件表示。虚拟化的目标是使运行在虚拟平台内的计算机程序以与真实目标硬件类似的方式来执行。为了实现这个目标,存在于(found in)由运行在虚拟平台上的计算机程序访问的系统的存储器映射中的硬件可以被虚拟化。硬件的这种虚拟化的复杂性各不相同,但如果当计算机程序读取/写入内存位置和寄存器时做得正确,应当看到在系统中它预期(expect)的行为。
[0007]创建虚拟化平台的另一个方面是正确的处理系统的中断。中断被用于系统中的信号事件,例如,输入/输出传送和/或接收、定时器期满等。中断的设计在系统之间是不同的。中断设计经常使用中断线、向量和控制器以将中断连接到系统中的设备。中断设计的全部功能可被虚拟化以实现有效的虚拟平台。
[0008]处理器的仿真在虚拟化平台中往往是期望的特征。该处理器的仿真允许执行在硬件上的计算机程序的完全相同的二进制数(binary)以在虚拟化平台中执行。如果处理器仿真在虚拟化平台上是可用的,使用完全相同的软件开发环境和操作系统也是可能的。
[0009]处理器的仿真比本地处理器(native processor)的执行慢。测试设备和训练器使用虚拟化平台以运行至少与被虚拟化的目标硬件平台一样快通常是期望的,并且加速运行(比目标硬件平台快)通常也是期望的。因为运行虚拟化平台的主机硬件平台通常比目标硬件平台快得多,所以有时可以实现必要的性能而无需额外的工作。但随着目标硬件平台和主机硬件平台之间的性能差距的接近,如果不是不可能的,则采用传统技术达到所期望的仿真性能可能是困难的。

【发明内容】

[0010]鉴于上述背景,本公开的示例实施例提供用于提供虚拟化服务并包括在由此提供的虚拟机或虚拟化平台中的并行化的计算机系统、方法和计算机可读存储介质。在这点上,示例实施例可以包括识别系统中的任务或进程,并检测它们在虚拟化层中的执行,该虚拟化层可以操作具有一个或多个虚拟处理器的虚拟机。它们的处理随后可以被发送到主机硬件平台的附加物理中央处理器(CPU)(有时也被称为“核”)。虚拟机中的计算机程序对任何附加虚拟处理器可以是不可见的,并且可不必须被写入以在多处理器上运行。
[0011]根据一个方面,提供虚拟化服务的方法可以包括识别一个或多个可执行计算机程序为多个任务,其包括识别来自多个任务的一个或多个任务。该方法还可以包括通过在虚拟机中的一个或多个CPU执行计算机程序,该虚拟机被执行在主机硬件平台上并被限定以提供用于虚拟化目标硬件平台的虚拟化平台。执行计算机程序可以包括通过在运行在主机硬件平台的一个或多个CPU上的虚拟机中的虚拟CPU执行除已识别的任务以外的多个任务。并且执行计算机程序可以包括在主机硬件平台的一个或多个附加CPU上执行已识别的任务,使得已识别的任务由主机硬件平台的附加CPU来执行,所述任务的执行至少部分地并行于除已识别的任务以外的多个任务通过虚拟机中的虚拟CPU的执行。根据这方面,目标硬件平台可以包括用于执行多个任务的一个或多个CPU,所述一个或多个CPU在数量上不大于主机硬件平台的CPU,除已识别的一个或多个任务以外的多个任务被执行在主机硬件平台上的CPU上。
[0012]在一些示例中,识别已识别的任务可以包括分析计算机程序的一个或多个符号表,以确定已识别的任务。
[0013]在一些示例中,多个任务可以包括一个或多个前台任务和一个或多个后台任务。在这些示例中,识别已识别的任务可以包括识别后台已识别的任务。
[0014]在一些示例中,多个任务可以在时间的相应点处被调度执行。在这些示例中,已识别的任务可以在已识别的任务被调度执行所在的时间相应的点之前在附加CPU上来执行。并且在一些进一步的示例中,执行除已识别的任务以外的多个任务包括在已识别的任务被调度执行所在的时间的相应点中的每个点处通过虚拟CPU执行方法存根(stub)或者立即移动到通过虚拟CPU执行的多个任务的下一调度的任务。
[0015]在一些示例中,执行已识别的任务可以包括通过在主机硬件平台的附加CPU上执行的虚拟机中的一个或多个附加虚拟CPU来执行已识别的任务,其中附加虚拟CPU对被配置为管理虚拟化平台的操作系统是隐藏的。
[0016]在一些示例中,多个任务可以在由表观时间基准(apparent-time reference)跟踪的表观时间中的相应点处被调度执行。在这些示例中和在执行除已识别的任务以外的多个任务的期间,该方法可进一步包括在除已识别的任务以外的多个任务的所有前台任务已经被执行所在的表观时间处检测当前点,或在虚拟CPU是空闲所在的表观时间处检测当前点。并且响应于此,该方法可以包括使用大于所述表观时间基准来跟踪所述表观时间所在的频率的频率将所述表观时间从所述当前点推进到随后的点。
[0017]在示例实施例的其他方面中,提供了用于并行化虚拟机操作的计算机系统和计算机可读存储介质。计算机可读存储介质是非暂时性的并且具有存储在其中的计算机可读程序代码部分,其响应于通过一个或多个中央处理器(CPU)和一个或多个附加CPU的执行,使得计算机系统至少识别可执行为多个任务的一个或多个计算机程序,包括使得计算机系统从多个任务识别一个或多个任务,并通过虚拟机中的一个或多个虚拟CPU执行一个或多个计算机程序,该虚拟机被限定以为目标硬件平台的虚拟化提供虚拟化平台。使得计算机系统执行一个或多个计算机程序,包括使得通过在执行在计算机系统的一个或多个CPU上的虚拟机中的一个或多个虚拟CPU至少执行除已识别的一个或多个任务以外的多个任务;并在计算机系统的一个或多个附加CPU上执行已识别的一个或多个任务。执行是这样的,已识别的一个或多个任务由计算机系统的一个或多个附加CPU来执行,所述已识别的一个或多个任务的执行至少部分地并行于通过虚拟机中的一个或多个虚拟CPU对除已识别的一个或多个任务以外的多个任务的执行,其中,目标硬件平台包括用于执行多个任务的一个或多个CPU,所述一个或多个CPU在数量上不大于计算机系统的CPU,除已识别的一个或多个任务以外的多个任务被执行在计算机系统的一个或多个CPU上。有利的是,提供了计算机可读存储介质,其中使得计算机系统识别已识别的一个或多个任务包括被使得计算机系统分析一个或多个计算机程序的一个或多个符号表,以确定已识别的一个或多个任务,其中多个任务包括一个或多个前台任务和一个或多个后台任务,并且使得计算机系统识别已识别的一个或多个任务包括使得计算机系统识别一个或多个后台任务。有利的是,提供了计算机可读存储介质,其中多个任务在时间的相应点处被调度执行,使得计算机系统在已识别的一个或多个任务被调度执行所在的时间的相应点之前在一个或多个附加CPU上执行已识别的一个或多个任务。优选地,使得计算机系统执行除已识别的一个或多个任务之外的多个任务包括使得在已识别的一个或多个任务被调度执行所在的时间的相应点中的每个点处通过一个或多个虚拟CPU执行方法存根或者立即移动到通过一个或多个虚拟CPU执行的多个任务的下一调度的任务。更优选,使得计算机系统执行已识别的一个或多个任务包括使得通过在计算机系统的一个或多个附加CPU上执行的虚拟机中的一个或多个附加虚拟CPU来执行已识别的任务,一个或多个附加虚拟CPU对被配置为管理虚拟化平台的操作系统是隐藏的。本文所讨论的特征、功能和优点可在不同的示例实施例中独立地实现,或可在其他的示例实施例中被组合,其进一步的细节可以参照以下的描述和附图获知。
【附图说明】
[0018]已经以通用术语描述了本公开的示例实施例,现在将参考附图,这些附图不必要按比例绘制,并且其中:
[0019]图1A、1B和1C(统称为图1)根据本公开的示例实施例示出计算机系统;
[0020]图2根据本公开的一些示例实施例示出包括在其中任务可以在虚拟机中被执行的帧的周期;
[0021]图3、4和5示出用于对目标系统提供虚拟化服务的目标系统和计算机系统,其不具有和具有本公开的示例实施例的并行化;
[0022]图6根据本公开的示例实施例示出包括在提供虚拟化服务的方法中的各种步骤的流程图;以及
[0023]图7-14根据本公开的示例实施例示出包括可以被执行的任务并且在其执行期间可以如何移除空闲时间的计算机程序。
【具体实施方式】
[0024]现在将参照附图更加详细的描述以下本公开的一些实施例,其中示出本公开
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1