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

文档序号:9672968阅读:来源:国知局
的一些而不是全部的实施例。事实上,本公开的各种实施可以通过多种不同的方式来实现并且不应当被解释为对在此阐述的实施例的限制;相反,提供这些示例实施例以将该公开将变得彻底和完整,并且将向本领域技术人员充分地传达本公开的范围。例如,除非另外指出,作为第一、第二等等的参考的事物不应该被解释为暗示特定顺序。类似的参考数字在所有方面指代相似的元件。
[0025]本公开的示例实施例涉及在主机硬件平台上的虚拟机的操作中的并行化。本公开的示例实施例可以通过多种方式,包括硬件,单独或在来自计算机可读存储介质的一个或多个计算机程序代码指令、程序指令或可执行计算机可读程序代码指令(有时通常称为“计算机程序”、“软件”、“固件”或等等)的指导下来实现。图1A、1B和1C(统称图1)示出计算机系统100,其可以被配置成实现本公开的各种示例实施例。
[0026]计算机系统100可以包含、包括或被体现在一个或多个固定的或便携式的电子设备中。合适的电子设备的示例包括智能手机、平板计算机、膝上型计算机、桌上型计算机、工作站计算机、服务器计算机等等。如图所示,计算机系统可以包括具有一个或多个的多个部件诸如连接到存储器106 (例如,存储器器件,持久存储器)的处理器104 (例如,处理器单元)中的每个的主机硬件平台102。
[0027]处理器104通常是能够处理信息诸如,例如,数据,计算机程序和/或其他合适的电子信息的任何计算机硬件。该处理器由电子电路的集合组成,电子电路的一些可被封装为集成电路或多个互连集成电路(有时集成电路更通常的被称为“芯片”)。处理器可经配置以执行计算机程序,该计算机程序可以被存储在处理器上或另外被存储在存储器(相同或另一个计算机系统或装置的)中。
[0028]处理器104根据特定的实施例可以是多个数单核处理器、多核处理器(有时被称为多处理器核)或一些其他类型的处理器。合适的多核处理器的各种示例包括八、二十四、五核或更多。如图1B所示,处理器可由多个中央处理器(CPU)(通常被称为“核”)组成的,包括一个或多个核104a和一个或多个附加核104b。另外,处理器可以使用多个异构处理器系统来实现,在异构处理器系统中,主核与一个或多个次级核存在于单个芯片上。作为另一个说明性示例,处理器可以是包含相同类型的多个核的对称多核处理器系统。在另一个示例中,处理器可以被体现为或另外包括一个或多个专用集成电路(ASIC)、现场可编程门阵列(FPGA)或等等。因此,虽然处理器可以能够执行计算机程序以执行一个或多个功能,各种示例的处理器可以能够执行一个或多个功能而不需要计算机程序的帮助。
[0029]存储器106通常是能够存储信息诸如,例如,在临时基(basis)和/或永久基上的数据、计算机程序(例如,计算机可读程序代码)和/或其它合适信息的任何计算机硬件。存储器可以包括易失性和/或非易失性存储器,并且可以是固定的或可移动的。合适的存储器的示例包括随机存取存储器(RAM)、只读存储器(ROM)、硬盘驱动器、快闪存储器、U盘、可移动计算机磁盘、光盘、磁带或上述的某些组合。光盘可以包括压缩盘-只读存储器(⑶-ROM)、压缩盘-读取/写入(⑶-R/W)、DVD等。在不同的实例中,存储器可以被称为计算机可读存储介质,其作为能够存储信息的非短暂性器件可以可区别于计算机可读传输媒介,诸如,能够将信息从一个位置运载到另一个位置的电子暂时信号。如本文所描述的计算机可读介质一般可以涉及计算机可读存储介质或计算机可读传输介质。
[0030]计算机系统100还可以包括或另外支持被配置为测量时间间隔或另外跟踪时间的一个或多个时间基准。如在此所示和主要描述的,合适的时间基准的一个示例是定时器108。然而,应当理解的是,计算机系统可附加地或替代地包括其它适当类型的时间基准,并且示例实施例可以同样适用于这些其它类型的时间基准。其它合适的时间基准的示例包括处理器计数器,例如,时间戳计数器(TSC)、时基计数器、递增和/或递减计数器等。
[0031]在一些示例中,时间基准诸如定时器108可以被配置为测量经过的时间,诸如,通过滴答计数(tick counting)或无刻点计时(tickless timekeeping)。根据滴答计数,定时器可以被配置为以已知速率诸如每秒100次来周期性地产生定时器中断(也被称为“滴答”)。无刻点计时可以包括被配置成保持自某一事件诸如计算机系统100启动以来已经经过的多个时间单位的计数。甚至进一步,在一些示例中,定时器可以被配置为跟踪实际时间,其也被称为“挂钟时间。”合适的定时器的示例包括可编程间隔定时器(PIT)、实时时钟(RTC)、本地高级可编程中断控制器(APIC)定时器、高级配置和电源接口(ACPI)或芯片组定时器、时间戳计数器(TSC)、高精度事件定时器(HPET)等。
[0032]存储器106可以存储计算机程序或软件,以至当计算机程序或软件由处理器104被加载并被执行时,使得计算机系统100或更特别是其主机硬件平台102提供虚拟化服务。该软件可以包括,例如,被配置为管理主机硬件平台的主机操作系统(0S) 110。此外,该软件可以包括被配置为用作主机硬件平台上的软件层的虚拟化层112。虚拟化层可以被集成在主机0S内或运行在主机操作系统上。虚拟化层可以操作一个或多个虚拟机(VM)114。
[0033]如本文所用的术语“虚拟化”可以指用于将计算资源的细节或物理特性对在其中使其他系统、应用或终端用户与这些资源交互的方式隐藏,或与其分离的技术。虚拟化的不同方面可以包括呈现单个物理资源作为多个逻辑资源。虚拟化的其他方面可以包括呈现多个物理资源作为单一逻辑资源。
[0034]每个VM 114可以被限定以为目标硬件平台的虚拟化提供虚拟化平台116。术语“虚拟化平台”通常与嵌入式系统相关联,但这样的平台实际上只是更普通的术语虚拟机的一个类型。虚拟平台和虚拟机两者都是硬件的虚拟表示。
[0035]虚拟化平台116可以包括一个或多个的多个虚拟组件诸如虚拟处理器118和表观时间基准中的每个。虚拟处理器可以被配置为虚拟化目标硬件平台的处理器。类似于计算机系统100的处理器104,该虚拟处理器可以由一个或多个虚拟核(CPU) 118a和一个或多个附加虚拟核118b组成,如图1C中所示。同样地,目标硬件平台的处理器可以由一个或多个核组成,尽管可能数量上比计算机系统100的处理器104的核104a少。
[0036]表观时间基准可以被配置为虚拟化目标硬件平台的相应的时间基准(例如,定时器)。如在此所示和主要描述的,合适的表观时间基准的一个示例是虚拟定时器120,尽管应该理解的是,虚拟化平台可以附加地或替换地包括(并且示例实施例可同样适用于)其它合适类型的表观时间基准,类似于以上相对于计算机系统100的定时器108。
[0037]还如图所示,虚拟处理器118可经配置以执行例如在0S 124中的一个或多个计算机程序122。类似于运行在主机硬件平台102上的主机0S 110,运行在VM 114上的0S可以经配置以管理虚拟化平台116,该虚拟化平台116再次经配置以虚拟化目标硬件平台。
[0038]由虚拟化平台116 (包括其虚拟处理器118和定时器120)虚拟化的目标硬件平台(包括其处理器和定时器)可以与主机硬件平台102 (包括其处理器104和定时器108)相同或不同。类似地,运行在VM 114上的0S 124可以与主机OS 110相同或不同。在目标硬件平台和主机硬件平台不同的实例中,虚拟化平台可以被配置为仿真目标硬件平台。更具体地,在这些实例中,虚拟化平台的虚拟处理器和定时器可以被配置为仿真目标硬件平台的那些。例如,虚拟处理器可以被配置为通过目标硬件平台的处理器的仿真来执行计算机程序122。
[0039]表观时间基准诸如虚拟定时器120可以被配置为虚拟化或另外仿真目标硬件平台的相应的时间基准(例如,定时器)。然而硬件平台的定时器诸如主机硬件平台的定时器108可跟踪真实(或挂钟)时间,尽管虚拟定时器可以跟踪表观时间(有时称为虚拟时间,但不应与逻辑时间混淆)。这种表观时间表示对VM 114可见的时间。虚拟定时器120类似于主机硬件平台的定时器可以跟踪表观时间,但虚拟定时器的频率不依赖于主机硬件平台的定时器的频率。因此,由虚拟定时器跟踪的表观时间不必精确地跟随实际时间。并且在一些示例中,表观时间可以被控制以促进向前或向后,更快或更慢,或甚至停止。
[0040]根据本发明的示例实施例,计算机程序122可以按照在由表观时间基准(例如,虚拟定时器120)跟踪的表观时间中的各个点处用于执行的调度的任务而由虚拟处理器118执行。在一些示例中,虚拟化平台116可以虚拟化基于帧的系统,在基于帧的系统中,任务可以在一个周期或者多个可重复的周期期间被执行,在该周期期间任务被调度以用于执行。如本文所述,“任务”通常指执行单元,并且可以包括任务、线程、进程、纤程等。
[0041]图2根据一些示例示出周期200。如图所示,周期可以被划分成多个通常被称为帧202(或有时称为小帧)的较小的周期。该帧可以具有在由虚拟平台116的表观时间基准(例如,虚拟定时器120)跟踪的表观时间中的相应点处限定的边界204。尽管本文在基于帧的系统的环境中被示出和描述,但应当理解的是,示例实施例可同样适用于非基于帧的系统,例如,纯粹由事件驱动的那些。
[0042]还如图2所示,计算机程序的任务206的至少一些中的每个可以在这些帧的一个或多个帧中被调度。示出的任务可以包括为以给定频率重复执行而调度的那些。这些任务有时被称为前台任务,并且通常包括高优先级任务。在复杂系统诸如飞行器的环境中,前台任务可以包括保证对飞行器的控制的那些。在任何特定帧期间的这些任务之间的时间有时被称为后台208。其他任务可以在后台中执行,或者有时虚拟处理器118可以是空闲的(有时由虚拟处理器的闲置状态或空闲任务表示)。在后台执行的任务(有时也被称为后台任务)通常包括低优先级的任务,例如,用于应用软件和0S家务(housekeeping)功能(例如,更新快闪存储器)的那些。在后台中执行的任务的一些更具体的示例可以是表示空闲虚拟处理器的上述的空闲任务或可用于简单地产生任意时间延迟的旋环。在复杂系统的环境中,这些后台任务通常不包括对复杂系统的控制至关重要的那些任务。
[0043]计算机
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1