当前位置: 首页 > 专利查询>波音公司专利>正文

虚拟机操作中的并行化制造技术

技术编号:13110577 阅读:73 留言:0更新日期:2016-03-31 15:52
根据一种提供虚拟化服务的方法,可执行为多个任务的计算机程序可以被识别,如来自多个任务的任务。计算机程序(122)可以由执行在主机硬件平台上的虚拟机(114)中的虚拟中央处理器(CPU)(118a)来执行,并且被限定以提供用于虚拟化目标硬件平台的虚拟化平台(116)。这可以包括除(已识别的)任务以外的由在执行在主机硬件平台的CPU(104a)上的虚拟机(116)中的虚拟CPU(118a)执行的,并且至少部分地与执行在主机硬件平台的附加CPU(104b)上的这些任务并行的多个任务。目标硬件平台可以包括用于执行多个任务的CPU(104a),所述CPU在数量上不大于主机硬件平台的CPU,除该任务以外的多个任务被执行在主机硬件平台上的CPU上。

【技术实现步骤摘要】

本专利技术通常涉及硬件的虚拟化,并且更具体地涉及虚拟机中的并行化或由此提供的虚拟化平台。
技术介绍
包括飞行器、宇宙飞船、汽车、医疗器械等的许多现代复杂的系统包含与多个子系统通信以创建完整的系统的中央计算机系统或其他处理元件。该中央处理器可以包括执行被设计用于控制复杂系统的计算机程序的一个或多个处理器和/或核。为了开发这些复杂的系统,创建了测试设备(test facility)从而允许开发中央计算机系统中的计算机程序并且使用连接到该测试设备的真实和/或模拟子系统对所述计算机程序进行测试。因为这些测试设备往往是昂贵的,所以它们通常是开发程序上的有限的资源。为了创建更多的测试能力,测试设备的虚拟表示往往被创建。创建虚拟测试设备的一种方式是创建适当设备和通信接口的模拟并将这些模拟连接到计算机程序,用于控制运行在虚拟化平台内的复杂系统,这可以通过被配置以运行在主机硬件平台的顶端上的适合的虚拟机来提供。在虚拟平台内的仿真处理器上运行计算机程序通常是被希望的。仿真处理器和虚拟化层允许对执行计算机程序的很好控制,而且其还对计算机程序的操作提供更好的可见性。在复杂系统被开发后,创建训练器以对复杂系统的用户培训其操作通常是必需的或非常期望的。具有以(如果不是完全相同则)接近实际系统的操作的方式来操作的训练器(trainer)是非常期望的。创建训练器的一种方法是运行在主机硬件平台上的虚拟化平台内的计算机程序。在虚拟平台内的仿真处理器上运行计算机程序通常是期望的。仿真处理器和虚拟化层提供实际系统的高保真度表示,并允许对于执行计算机程序的很好的控制,从而允许创建不可能存在于复杂系统中所使用的真实目标硬件平台上的某些训练场景。虚拟化平台的创建包括创建基于实际复杂系统的目标硬件平台的纯软件表示。虚拟化的目标是使运行在虚拟平台内的计算机程序以与真实目标硬件类似的方式来执行。为了实现这个目标,存在于(found in)由运行在虚拟平台上的计算机程序访问的系统的存储器映射中的硬件可以被虚拟化。硬件的这种虚拟化的复杂性各不相同,但如果当计算机程序读取/写入内存位置和寄存器时做得正确,应当看到在系统中它预期(expect)的行为。创建虚拟化平台的另一个方面是正确的处理系统的中断。中断被用于系统中的信号事件,例如,输入/输出传送和/或接收、定时器期满等。中断的设计在系统之间是不同的。中断设计经常使用中断线、向量和控制器以将中断连接到系统中的设备。中断设计的全部功能可被虚拟化以实现有效的虚拟平台。处理器的仿真在虚拟化平台中往往是期望的特征。该处理器的仿真允许执行在硬件上的计算机程序的完全相同的二进制数(binary)以在虚拟化平台中执行。如果处理器仿真在虚拟化平台上是可用的,使用完全相同的软件开发环境和操作系统也是可能的。处理器的仿真比本地处理器(native processor)的执行慢。测试设备和训练器使用虚拟化平台以运行至少与被虚拟化的目标硬件平台一样快通常是期望的,并且加速运行(比目标硬件平台快)通常也是期望的。因为运行虚拟化平台的主机硬件平台通常比目标硬件平台快得多,所以有时可以实现必要的性能而无需额外的工作。但随着目标硬件平台和主机硬件平台之间的性能差距的接近,如果不是不可能的,则采用传统技术达到所期望的仿真性能可能是困难的。
技术实现思路
鉴于上述背景,本公开的示例实施例提供用于提供虚拟化服务并包括在由此提供的虚拟机或虚拟化平台中的并行化的计算机系统、方法和计算机可读存储介质。在这点上,示例实施例可以包括识别系统中的任务或进程,并检测它们在虚拟化层中的执行,该虚拟化层可以操作具有一个或多个虚拟处理器的虚拟机。它们的处理随后可以被发送到主机硬件平台的附加物理中央处理器(CPU)(有时也被称为“核”)。虚拟机中的计算机程序对任何附加虚拟处理器可以是不可见的,并且可不必须被写入以在多处理器上运行。根据一个方面,提供虚拟化服务的方法可以包括识别一个或多个可执行计算机程序为多个任务,其包括识别来自多个任务的一个或多个任务。该方法还可以包括通过在虚拟机中的一个或多个CPU执行计算机程序,该虚拟机被执行在主机硬件平台上并被限定以提供用于虚拟化目标硬件平台的虚拟化平台。执行计算机程序可以包括通过在运行在主机硬件平台的一个或多个CPU上的虚拟机中的虚拟CPU执行除已识别的任务以外的多个任务。并且执行计算机程序可以包括在主机硬件平台的一个或多个附加CPU上执行已识别的任务,使得已识别的任务由主机硬件平台的附加CPU来执行,所述任务的执行至少部分地并行于除已识别的任务以外的多个任务通过虚拟机中的虚拟CPU的执行。根据这方面,目标硬件平台可以包括用于执行多个任务的一个或多个CPU,所述一个或多个CPU在数量上不大于主机硬件平台的CPU,除已识别的一个或多个任务以外的多个任务被执行在主机硬件平台上的CPU上。在一些示例中,识别已识别的任务可以包括分析计算机程序的一个或多个符号表,以确定已识别的任务。在一些示例中,多个任务可以包括一个或多个前台任务和一个或多个后台任务。在这些示例中,识别已识别的任务可以包括识别后台已识别的任务。在一些示例中,多个任务可以在时间的相应点处被调度执行。在这些示例中,已识别的任务可以在已识别的任务被调度执行所在的时间相应的点之前在附加CPU上来执行。并且在一些进一步的示例中,执行除已识别的任务以外的多个任务包括在已识别的任务被调度执行所在的时间的相应点中的每个点处通过虚拟CPU执行方法存根(stub)或者立即移动到通过虚拟CPU执行的多个任务的下一调度的任务。在一些示例中,执行已识别的任务可以包括通过在主机硬件平台的附加CPU上执行的虚拟机中的一个或多个附加虚拟CPU来执行已识别的任务,其中附加虚拟CPU对被配置为管理虚拟化平台的操作系统是隐藏的。在一些示例中,多个任务可以在由表观时间基准(apparent-time reference)跟踪的表观时间中的相应点处被调度执行。在这些示例中和在执行除已识别的任务以外的多个任务的期间,该方法可进一步包括在除已识别的任务以外的多个任务的所有前台任务已经被执行所在的表观时间处检测当前点,或在虚拟CPU是空闲所在的表观时间处检测当前点。并且响应于此,该方法可以包括使用大于所述表观时间基准来跟踪所述表观时间所在的频率的频率将所述表观时间从所述当前点推进到随后的点。在示例实施例的其他方面中,提供了用于并行化虚拟机操作的计算机系统和计算机可读存储介质。计算机可读存储介质是非暂时性的并且具有存储在其中的计算机可读程序代码部分,其响应于通过一个或多个中央处理器(CPU)和一个或多个附加CPU的执行,使得计算机系统至少识别可执行为多个任务的一个或多个计算机程序,包括使得计算机系统从多个任务识别一个或多个任务,并通过虚拟机中的一个或多个虚拟CPU执行一个或多个计算机程序,该虚拟机被限定以为目标硬件平台的虚拟化提供虚拟化平台。使得计算机系统执行一个或多个计算机程序,包括使得通过在执行在计算机系统的一个或多个CPU上的虚拟机中的一个或多个虚拟CPU至少执行除已识别的一个或多个任务以外的多个任务;并在计算机系统的一个或多个附加CPU上执行已识别的一个或多个任务。执行是这样的,已识别的一个或本文档来自技高网
...

【技术保护点】
一种用于提供虚拟化服务的计算机系统(100),所述计算机系统(100)包括一个或多个中央处理器即CPU(104a)、一个或多个附加CPU(104b)以及存储计算机可读程序代码部分的存储器(106),所述计算机可读程序代码部分响应于通过一个或多个CPU(104a)和一个或多个附加CPU(104b)的执行,使得所述计算机系统(100)至少:识别可执行为多个任务的一个或多个计算机程序(122),包括使得所述计算机系统(100)识别来自所述多个任务中的一个或多个任务;和通过在虚拟机(114)中的一个或多个虚拟CPU(118a)执行所述一个或多个计算机程序(122),所述虚拟机(114)被限定以提供用于目标硬件平台的虚拟化的虚拟化平台(116),使得所述计算机系统(100)执行所述一个或多个计算机程序(122)包括使得至少:通过所述虚拟机(114)中的所述一个或多个虚拟CPU(118a)执行除已识别的一个或多个任务以外的所述多个任务,所述虚拟机(114)被执行在所述计算机系统(100)的所述一个或多个CPU(104a)上;和在所述计算机系统(100)的所述一个或多个附加CPU(104b)上执行所述已识别的一个或多个任务,使得所述已识别的一个或多个任务由所述计算机系统(100)的所述一个或多个附加CPU(104b)执行,所述已识别的一个或多个任务的执行至少部分地并行于通过所述虚拟机(114)中的所述一个或多个虚拟CPU(118a)对除所述已识别的一个或多个任务以外的所述多个任务的执行,其中所述目标硬件平台包括用于执行所述多个任务的一个或多个CPU,所述一个或多个CPU在数量上不大于所述计算机系统(100)上的所述一个或多个CPU(104a),除所述已识别的一个或多个任务以外的所述多个任务被执行在所述计算机系统(100)上的所述一个或多个CPU(104a)上。...

【技术特征摘要】
...

【专利技术属性】
技术研发人员:J·N·霍特拉
申请(专利权)人:波音公司
类型:发明
国别省市:美国;US

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

1