一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

动态迁移期间的操作系统代码修补的制作方法

2022-07-10 19:00:10 来源:中国专利 TAG:


1.本发明一般地涉及用于执行虚拟机的动态迁移的方法、系统和计算机程序产品。更具体地说,本发明涉及用于在动态迁移期间进行操作系统代码修补的方法、系统和计算机程序产品。


背景技术:

2.虚拟机(vm)是物理计算机系统的仿真。管理程序是创建和管理vm的计算机软件。管理程序在其上管理一个或多个vm的物理计算机系统也被称为主机,并且每个vm也被称为访客机。使用vm允许多个不同的操作系统(os)共享相同的物理硬件集合,因为每个os可以在其自己的vm中执行。
3.为了适应变化的硬件资源可用性和计算需要,vm必须从一个物理机器迁移到另一个。动态迁移是将包括存储器、存储装置和网络配置的运行中的虚拟机(vm)移动到不同的物理机器而不重启可能在迁移的vm上执行的操作系统或应用并且同时最小化停止vm以进行迁移的时间间隔的过程。


技术实现要素:

4.示例性实施例提供了一种方法、系统和计算机程序产品。实施例包括一种方法,该方法针对操作系统的进程检测动态迁移已经发生,动态迁移包括在其上执行进程的计算机系统的硬件特性的改变。实施例向一组处理器广播第一消息,该第一消息使该组处理器中的每个处理器进入等待状态。一个实施例在该组处理器中的每个处理器处于等待状态时修改操作系统的一组程序指令的一部分。
5.实施例包括计算机可用程序产品。计算机可用程序产品包括一个或多个计算机可读存储设备,以及存储在一个或多个存储设备中的至少一个上的程序指令。
6.实施例包括计算机系统。该计算机系统包括一个或多个处理器、一个或多个计算机可读存储器、以及一个或多个计算机可读存储设备,以及存储在一个或多个存储设备中的至少一个上的程序指令,用于由一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个来执行。
7.根据一个方面,提供了一种计算机实现的方法,包括:针对操作系统的进程检测动态迁移已经发生,所述动态迁移包括所述进程在其上执行的计算机系统的硬件特性的改变;向一组处理器广播第一消息,所述第一消息使所述一组处理器中的每个处理器进入等待状态;以及在该组处理器中的每个处理器处于等待状态时,修改操作系统的一组程序指令的一部分。
8.根据另一方面,提供了一种计算机可用程序产品,包括一个或多个计算机可读存储设备,以及存储在所述一个或多个存储设备中的至少一个上的程序指令,所存储的程序指令包括:用于针对操作系统的进程检测动态迁移已经发生的程序指令,所述动态迁移包括所述进程在其上执行的计算机系统的硬件特性的改变;用于向一组处理器广播第一消息
的程序指令,所述第一消息使所述一组处理器中的每个处理器进入等待状态;以及用于在该组处理器中的每个处理器处于等待状态时修改操作系统的一组程序指令的一部分的程序指令。
9.根据另一方面,提供了一种计算机系统,包括一个或多个处理器、一个或多个计算机可读存储器、以及一个或多个计算机可读存储设备,以及存储在所述一个或多个存储设备中的至少一个上的程序指令,用于由所述一个或多个处理器中的至少一个经由所述一个或多个存储器中的至少一个来执行,所存储的程序指令包括:用于针对操作系统的进程检测动态迁移已经发生的程序指令,所述动态迁移包括所述进程在其上执行的计算机系统的硬件特性的改变;用于向一组处理器广播第一消息的程序指令,所述第一消息使所述一组处理器中的每个处理器进入等待状态;以及用于在该组处理器中的每个处理器处于等待状态时修改操作系统的一组程序指令的一部分的程序指令。
附图说明
10.现在将仅通过示例的方式并参考以下附图来描述本发明的优选实施例:
11.图1描述了可以实现示例性实施例的数据处理系统的网络的框图;
12.图2描绘了可以实现示例性实施例的数据处理系统的框图;
13.图3描绘了根据示例性实施例的在动态迁移期间用于操作系统代码修补的示例配置的框图;
14.图4描绘了根据示例性实施例的在动态迁移期间用于操作系统代码修补的示例配置的框图;
15.图5描绘了根据示例性实施例的在动态迁移期间的操作系统代码修补期间的消息流的示例时序图;
16.图6描绘了根据示例性实施例的用于在动态迁移期间的操作系统代码修补的示例过程的流程图;以及
17.图7描绘了根据示例性实施例的用于在动态迁移期间的操作系统代码修补的示例过程的流程图。
具体实施方式
18.示例性实施例认识到,当将vm及其操作系统从一个物理机器动态迁移到另一个物理机器时,在源物理机器和目标物理机器之间可能存在硬件差异。在这种硬件差异的一个非限制性示例中,尽管源和目标机器中的处理器属于同一系列并且可以执行相同的操作系统和应用代码而无需重新编译,但是处理器可以具有不同的版本。例如,源机器可具有power 8处理器,而目标机器可具有power 9处理器,或者源和目标机器可具有x86处理器系列中的不同处理器。在这种硬件差异的另一个非限制性示例中,系统中的套接字、芯片或核的数量可能已经改变,这表明vm迁移已经发生。第三个非限制性的例子涉及系统的非均匀存储器访问(numa)拓扑,其根据存储器访问速度指定处理器的分组,并通知os哪些处理器位于相同存储器附近,使得工作负载可以被分组在一起以利用存储器局部性。numa拓扑中的一些改变(例如世代计数)还指示vm迁移已经发生。
19.示例性实施例还认识到,在一些情况下,当在具有不同硬件特性的物理机器之间
执行动态迁移时,需要操作系统修改以实现正确的功能。作为一个非限制性示例,不同版本的功率处理器不同地执行由处理消耗的处理器时间的记账和报告。例如,当power 8和power 9处理器都使用进程利用资源寄存器来执行进程记账时,power 8处理器基于在一个时间周期内在处理器上接收的线程的实际运行时间的多少来报告每个线程的定标purr值,并且一些power 9处理器报告包括每个运行线程的实际运行时间的purr值,而不进行定标。因此,如果将具有power 8处理器的主机上的vm动态迁移到具有power 9处理器的主机,并且操作系统读取purr值以确定进程记账,则purr值将被不正确地定标,导致不正确的结果。如果具有power 9处理器的主机上的vm被动态迁移到具有power 8处理器的主机,则也将出现不正确的结果。因此,示例性实施例认识到,存在对于在动态迁移期间校正不同硬件特性的未满足的需要。
20.示例性实施例认识到,目前可用的工具或解决方案没有解决这些需要或为这些需要提供足够的解决方案。用于描述本发明的示例性实施例一般地针对和解决上述问题以及与动态迁移期间的操作系统代码修补相关的其他问题。
21.实施例可以被实现为软件应用。实现实施例的应用可以被配置为现有动态迁移或操作系统的修改、与现有动态迁移或操作系统结合操作的单独应用、独立应用或其某种组合。
22.具体地,一些示例性实施例提供了一种方法,该方法针对操作系统的进程,检测发生了动态迁移,该动态迁移包括在其上执行进程的计算机系统的硬件特性的改变。当系统中的所有其他处理器处于等待状态时,该方法修改操作系统的一部分以解决硬件特性的改变。
23.操作系统的内核是提供os服务的软件,例如启动、停止和管理执行进程或线程,管理诸如存储器和存储设备的子系统,以及向在os上执行的用户应用提供服务。内核进程是作为os内核的一部分执行的进程,并且具有对os在其上执行的系统的部分的可信访问。当os在物理机器上执行时,内核进程可以访问物理系统硬件。当os在虚拟机上执行时,内核进程可以访问物理系统硬件的虚拟或仿真版本。用户级或用户进程是os的不是内核进程的进程。
24.一个实施例检测在其上执行进程的计算机系统的硬件特性中的改变已经发生。换句话说,发生了动态迁移,并且该实施例现在在不同的主机上执行。一个实施例作为操作系统的内核进程执行。另一实施例作为操作系统的用户级进程来执行。实施例还确定由于硬件特性的改变,必须修改操作系统代码的一部分以解决硬件特性的改变。例如,动态迁移可能是从power 8系统到power 9系统,或者相反,因此os的进程记账必须被修改以支持当前处理器对purr值的处理。
25.一个实施例向安装在迁移的系统中的所有其他处理器广播消息。在接收处理器的消息处理程序内,接收处理器确认该消息并循环,等待第二消息。因此,在等待第二消息时,接收处理器处于等待状态,不执行用户进程,因此被阻止访问可能要被修改的操作系统的其他部分。
26.一个实施例等待安装在所迁移的系统中的其他处理器确认广播消息。处理器的确认指示处理器处于等待状态,并被阻止访问可能要被修改的操作系统的其他部分。
27.一旦所有接收消息的处理器都已被置于等待状态,则对于一个实施例来说修改操
作系统的代码是安全的,并且一个实施例修改操作系统的代码以解决硬件特性的改变。例如,如果动态迁移可能是从power 8系统到power 9系统,或者相反,则修改执行进程记账的操作系统的程序指令,以支持当前处理器对purr值的处理。
28.一旦已经进行了os修改,实施例就向处于等待状态的处理器广播第二消息。在等待该第二消息的接收处理器处的消息处理程序内,消息处理程序接收第二消息并退出消息处理程序进程,并因此退出等待状态。现在,接收处理器处于正常操作中,并且操作系统已经被修改以解决动态迁移在硬件特性中的改变。
29.在此描述的在动态迁移期间的操作系统代码修补的方式在与虚拟机实现有关的努力的技术领域中的当前可用的方法中是不可用的。当被实现为在设备或数据处理系统上执行时,这里描述的实施例的方法包括设备或数据处理系统的功能的实质进步,其检测包括在其上执行进程的计算机系统的硬件特性的改变的动态迁移已经发生。当系统中的其他处理器处于等待状态时,该方法修改操作系统的一部分以解决硬件特性的改变。
30.仅作为示例,关于某些类型的迁移、进程、内核、消息处理程序、消息、修改、硬件特性、进程计数、响应、设备、数据处理系统、环境、组件和应用来描述示例性实施例。这些和其他类似的人为因素的任何特定表现形式不是要限制本发明。可以在示例性实施例的范围内选择这些和其他类似产物的任何适当表现。
31.此外,可以针对任何类型的数据、数据源或通过数据网络对数据源的访问来实现示例性实施例。在本发明的范围内,任何类型的数据存储设备可以在本地在数据处理系统处或通过数据网络向本发明的实施例提供数据。在使用移动设备描述实施例的情况下,在示例性实施例的范围内,适于与移动设备一起使用的任何类型的数据存储设备可以在移动设备处本地地或者通过数据网络向这样的实施例提供数据。
32.使用特定代码、设计、架构、协议、布局、示意图和工具来描述示例性实施例,这些仅作为示例,而不是对示例性实施例的限制。此外,为了描述的清楚,在一些实例中使用特定软件、工具和数据处理环境仅作为示例来描述示例性实施例。示例性实施例可以结合其他相当或类似目的结构、系统、应用或架构来使用。例如,在本发明的范围内,其他可比较的移动设备、结构、系统、应用或其架构可以与本发明的这种实施例结合使用。示例性实施例可以以硬件、软件或其组合来实现。
33.本公开中的示例仅用于清楚描述,而不是限制于示例性实施例。从本公开可以想到附加的数据、操作、动作、任务、活动和操纵,并且在示例性实施例的范围内可以设想这些附加的数据、操作、动作、任务、活动和操纵。
34.本文列出的任何优点仅是示例,并且不旨在限制示例性实施例。通过特定的示例性实施例可以实现附加的或不同的优点。此外,特定示例性实施例可具有上文所列优点中的一些、全部或不具有上文所列优点。
35.参考附图,并且具体参考图1和2,这些附图是可以实现示例性实施例的数据处理环境的示例图。图1和2仅仅是示例,并且不旨在断言或暗示关于其中可以实现不同实施例的环境的任何限制。特定实现可以基于以下描述对所描绘的环境进行许多修改。
36.图1描述了可以实现示例性实施例的数据处理系统的网络的框图。数据处理环境100是其中可以实现示例性实施例的计算机网络。数据处理环境100包括网络102。网络102是用于在数据处理环境100内连接在一起的各种设备和计算机之间提供通信链路的介质。
网络102可以包括诸如有线、无线通信链路或光纤电缆的连接。
37.客户端或服务器仅是连接到网络102的某些数据处理系统的示例角色,并且不旨在排除这些数据处理系统的其他配置或角色。服务器104和服务器106连同存储单元108一起耦合到网络102。软件应用程序可以在数据处理环境100中的任何计算机上执行。客户机110、112和114也耦合到网络102。诸如服务器104或106或客户端110、112或114的数据处理系统可以包含数据,并且可以具有在其上执行的软件应用或软件工具。
38.仅作为示例,而不暗示对这样的体系结构的任何限制,图1描绘了可在实施例的示例实现中使用的某些组件。例如,服务器104和106以及客户端110、112、114被描绘为服务器和客户端,仅作为示例,而不是暗示对客户端-服务器架构的限制。作为另一个例子,一个实施例可以分布在如图所示的几个数据处理系统和数据网络上,而另一个实施例可以在示例性实施例的范围内的单个数据处理系统上实现。数据处理系统104、106、110、112和114还表示适于实现实施例的集群、分区和其他配置中的示例节点。
39.设备132是本文描述的设备的示例。例如,设备132可以采取智能电话、平板计算机、膝上型计算机、固定或便携式形式的客户端110、可穿戴计算设备或任何其他合适的设备的形式。被描述为在图1中的另一数据处理系统中执行的任何软件应用程序可以被配置为以类似的方式在设备132中执行。在图1中的另一数据处理系统中存储或产生的任何数据或信息可以被配置为以类似的方式在设备132中存储或产生。
40.应用105实现这里描述的实施例。应用105在服务器104和106、客户端110、112和114以及设备132中的任何一个中执行。应用105在从一个系统到另一个系统的动态迁移期间、例如从服务器104到服务器106的动态迁移期间修改操作系统代码。
41.服务器104和106、存储单元108、客户端110、112和114以及设备132可以使用有线连接、无线通信协议或其他合适的数据连接耦合到网络102。客户机110、112和114可以是例如个人计算机或网络计算机。
42.在所描述的示例中,服务器104可以向客户端110、112和114提供数据,例如引导文件、操作系统映像和应用。在该示例中,客户端110、112和114可以是服务器104的客户端。客户端110、112、114或其某种组合可以包括它们自己的数据、引导文件、操作系统映像和应用。数据处理环境100可以包括未示出的附加服务器、客户端和其他设备。
43.在所描述的示例中,数据处理环境100可以是因特网。网络102可以表示使用传输控制协议/网际协议(tcp/ip)和其他协议来彼此通信的网络和网关的集合。在因特网的核心是主节点或主机计算机之间的数据通信链路的主干,主节点或主机计算机包括路由数据和消息的数千个商业、政府、教育和其他计算机系统。当然,数据处理环境100也可以实现为许多不同类型的网络,例如内联网、局域网(lan)或广域网(wan)。图1旨在作为示例,而不是作为对不同示例性实施例的架构限制。
44.除了其他用途之外,数据处理环境100可以用于实现其中可以实现示例性实施例的客户端-服务器环境。客户机-服务器环境使得软件应用程序和数据能够分布在网络上,以便应用通过使用客户机数据处理系统和服务器数据处理系统之间的交互性来工作。数据处理环境100还可以采用面向服务的体系结构,其中分布在网络上的可互操作的软件组件可以被打包在一起作为一致的业务应用。数据处理环境100还可以采取云的形式,并且采用服务递送的云计算模型以实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存
储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。
45.参考图2,该图描述了可以实现示例性实施例的数据处理系统的框图。数据处理系统200是计算机的示例,例如图1中的服务器104和106、或客户端110、112和114或另一类型的设备,其中实现这些过程的计算机可用程序代码或指令可以位于其中,用于示例性实施例。
46.数据处理系统200还代表数据处理系统或其中的配置,例如图1中的数据处理系统132,其中可以放置实现示例性实施例的处理的计算机可用程序代码或指令。数据处理系统200仅作为示例被描述为计算机,而不限于此。在不脱离这里描述的数据处理系统200的操作和功能的一般描述的情况下,以诸如图1中的设备132的其他设备的形式的实现可以诸如通过添加触摸接口来修改数据处理系统200,并且甚至从数据处理系统200中去除某些描绘的组件。
47.在所描述的例子中,数据处理系统200采用集线器体系结构,包括北桥和存储器控制器集线器(nb/mch)202以及南桥和输入/输出(i/o)控制器集线器(sb/ich)204。处理单元206、主存储器208和图形处理器210耦合到北桥和存储器控制器集线器(nb/mch)202。处理单元206可以包含一个或多个处理器,并且可以使用一个或多个异构处理器系统来实现。处理单元206可以是多核处理器。在某些实现中,图形处理器210可以通过加速图形端口(agp)耦合到nb/mch 202。
48.在所描述的例子中,局域网(lan)适配器212耦合到南桥和i/o控制器集线器(sb/ich)204。音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(rom)224、通用串行总线(usb)和其他端口232、以及pci/pcie设备234通过总线238耦合到南桥和i/o控制器集线器204。硬盘驱动器(hdd)或固态驱动器(ssd)226和cd-rom 230通过总线240耦合到南桥和i/o控制器集线器204。pci/pcie设备234可以包括例如用于笔记本计算机的以太网适配器、附加卡和pc卡。pci使用卡总线控制器,而pcie不使用。rom 224可以是例如闪存二进制输入/输出系统(bios)。硬盘驱动器226和cd-rom 230可使用例如集成驱动电子(ide)、串行高级技术附件(sata)接口或诸如外部sata(esata)和微sata(msata)的变体。超级i/o(sio)设备236可以通过总线238耦合到南桥和i/o控制器集线器(sb/ich)204。
49.存储器,例如主存储器208、rom 224或闪存(未示出),是计算机可用存储设备的一些示例。硬盘驱动器或固态驱动器226、cd-rom 230和其他类似可用的设备是包括计算机可用存储介质的计算机可用存储设备的一些示例。
50.操作系统在处理单元206上运行。操作系统协调并提供对图2中的数据处理系统200内的各种组件的控制。操作系统可以是用于任何类型的计算平台的商业上可用的操作系统,包括但不限于服务器系统、个人计算机和移动设备。面向对象或其他类型的编程系统可以与操作系统一起操作,并且提供从在数据处理系统200上执行的程序或应用对操作系统的调用。
51.用于操作系统、面向对象的编程系统以及诸如图1中的应用105之类的应用或程序的指令位于存储设备上,诸如以硬盘驱动器226上的代码226a的形式,并且可以被加载到诸如主存储器208之类的一个或多个存储器中的至少一个中,以便由处理单元206执行。示例性实施例的过程可以由处理单元206使用计算机实现的指令来执行,所述指令可以位于存
储器中,例如主存储器208、只读存储器224,或者位于一个或多个外围设备中。
52.此外,在一种情况下,代码226a可以通过网络201a从远程系统201b下载,其中类似的代码201c存储在存储设备201d上。在另一种情况下,代码226a可以通过网络201a下载到远程系统201b,其中下载的代码201c存储在存储设备201d上。
53.图1-图2中的硬件可以根据实现而变化。除了图1-图2中描述的硬件之外,或者作为其替代,可以使用诸如闪存、等效的非易失性存储器或光盘驱动器等的其他内部硬件或外围设备。另外,示例性实施例的过程可以应用到多处理器数据处理系统。
54.在一些说明性示例中,数据处理系统200可以是个人数字助理(pda),其通常配置有闪存以提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。总线系统可以包括一个或多个总线,例如系统总线、i/o总线和pci总线。当然,总线系统可以使用任何类型的通信结构或体系结构来实现,所述通信结构或体系结构提供在附接到该结构或体系结构的不同组件或设备之间的数据传输。
55.通信单元可以包括一个或多个用于发送和接收数据的设备,例如调制解调器或网络适配器。存储器可以是例如主存储器208或高速缓存,诸如在北桥和存储器控制器集线器202中找到的高速缓存。处理单元可以包括一个或多个处理器或cpu。
56.图1-图2中所描述的例子和上述例子不意味着暗示体系结构限制。例如,数据处理系统200除了采取移动或可穿戴设备的形式之外,还可以是平板计算机、膝上型计算机或电话设备。
57.在计算机或数据处理系统被描述为虚拟机、虚拟设备或虚拟组件的情况下,虚拟机、虚拟设备或虚拟组件使用数据处理系统200中所描绘的一些或所有组件的虚拟化表现来以数据处理系统200的方式操作。例如,在虚拟机、虚拟设备或虚拟组件中,处理单元206被表现为主机数据处理系统中可用的所有或一些数量的硬件处理单元206的虚拟化实例,主存储器208被表现为主机数据处理系统中可用的主存储器208的所有或一些部分的虚拟化实例,并且盘226被表现为主机数据处理系统中可用的盘226的所有或一些部分的虚拟化实例。在这种情况下,主机数据处理系统由数据处理系统200表示。
58.参考图3,该图描述了根据示例性实施例的在动态迁移期间的操作系统代码修补的示例配置的框图。应用300是图1中的应用105的示例,并且在图1中的服务器104和106、客户端110、112和114以及设备132中的任何一个中执行。
59.应用300作为操作系统内的内核或用户级进程执行。迁移检测模块310检测到在其上执行进程的计算机系统的硬件特性中发生了变化。换句话说,已经发生了动态迁移,并且应用300现在正在不同的主机上执行。迁移检测模块310还确定由于硬件特性的改变,必须修改操作系统代码的一部分以解决硬件特性的改变。
60.处理器消息模块320向安装在迁移的系统中的一个或多个其他处理器广播消息,使接收处理器进入等待状态。在广播之后,处理器消息模块320等待安装在迁移的系统中的其他处理器确认广播消息。处理器的确认指示处理器处于等待状态,并被阻止访问可能要被修改的操作系统的其他部分。
61.一旦所有消息处理程序都已被置于等待状态,应用300修改操作系统的代码是安全的,并且os修改模块330修改操作系统的代码以解决硬件特性的改变。一旦已经进行os修改,处理器消息模块320就向处于等待状态的处理器广播第二消息,使接收处理器返回到正
常操作。
62.参考图4,该图描述了根据示例性实施例的在动态迁移期间的操作系统代码修补的示例配置的框图。特别地,图4描述了图3中的模块320的更多细节。
63.进入等待状态模块410向安装在迁移的系统中的一个或多个其他处理器广播消息,使接收处理器进入等待状态。在广播之后,确认模块420等待安装在迁移的系统中的其他处理器确认广播消息。处理器的确认指示处理器处于等待状态,并被阻止访问可能要被修改的操作系统的其他部分。然后,为了使接收处理器返回到正常操作,退出等待状态消息模块430向处于等待状态的处理器广播第二消息。
64.参考图5,该图描绘了根据示例性实施例的在动态迁移期间的操作系统代码修补期间的消息流的示例时序图。应用300与图3中的应用300相同。
65.应用300是在处理器502中执行的进程。在状态510中,应用300确定动态迁移已经发生,并且由于硬件特性的改变,必须修改操作系统代码的一部分。在状态512中,通过向其他处理器广播消息520,应用300开始将动态迁移的系统中的所有其他处理器置于等待状态。或者,应用程序300向要被置于等待状态的每个其他处理器发送单独版本的消息520。消息520由在处理器504中执行的消息处理程序530接收。处理器504是将被置于等待状态的其他处理器组的示例。特别地,在状态532中,消息处理程序530接收消息520,并且在状态534中,消息处理程序530将消息522、即确认发送回应用300。接下来,在状态536中,消息处理程序530等待第二消息。在状态514中,应用300接收消息522,并且一旦所有处理器都已确认消息520,则修改操作系统的代码以考虑硬件特性的改变。然后,在状态516中,应用300向处理器504广播消息524,其中消息处理程序530在状态536中等待。消息处理程序530接收消息524,并前进到状态536,其中消息处理程序530退出消息处理程序,使处理器504返回到正常操作。该示例不旨在是限制性的。特别地,中间消息可以出现在消息520和522之间,以及消息522和524之间。同样,如果消息522未被发送,或者被发送但未被成功接收,则应用300可配置为包括错误处理序列(未示出),该序列重新发送消息520或中止操作系统修改进程而不发送消息524。另外,错误处理序列可在每个处理器的基础上执行,或者对于最初发送消息520的每个处理器执行。
66.参考图6,该图描述了根据示例性实施例的在动态迁移期间用于操作系统代码修补的示例过程的流程图。过程600可以在图3或图5中的应用300中实现。
67.在框602中,应用检测到已经发生了改变计算机系统的硬件特性的动态迁移。在框604中,应用向一组处理器广播第一消息,从而使该组中的每个处理器进入等待状态。在框606中,应用等待,直到所有处理器都确认了第一消息。在框608中,应用修改操作系统的一组程序指令的一部分以解决硬件特性的改变。在框610,应用向该组处理器广播第二消息,使得该组处理器退出等待状态。然后应用结束。
68.参考图7,该图描述了根据示例性实施例的在动态迁移期间用于操作系统代码修补的示例过程的流程图。过程700可以在图5中的处理器504中执行的消息处理程序530中实现。
69.在框702中,该过程接收指示消息处理程序等待第二消息的第一消息。在框704,该过程确认第一消息。在框706中,该过程等待直到接收到第二消息。然后(框706的“是”路径),该过程结束。
70.因此,在示例性实施例中提供了用于在动态迁移期间的操作系统代码修补和其他相关特征、功能或操作的计算机实现的方法、系统或装置以及计算机程序产品。在关于一种类型的设备描述实施例或其一部分的情况下,计算机实现的方法、系统或装置、计算机程序产品或其一部分被适配或配置成与该类型的设备的适当且可比较的表现一起使用。
71.在实施例被描述为在应用中实现的情况下,在示例性实施例的范围内,可以设想在软件即服务(saas)模型中的应用的递送。在saas模型中,通过在云基础设施中执行应用,向用户提供实现实施例的应用的能力。用户可以通过诸如web浏览器(例如,基于web的电子邮件)或其他轻量客户端应用之类的瘦客户端接口使用各种客户端设备来访问应用。用户不管理或控制底层云基础设施,包括网络、服务器、操作系统或云基础设施的存储。在一些情况下,用户甚至可能不管理或控制saas应用的能力。在一些其他情况下,应用程序的saas实施方案可允许有限的用户特定应用程序配置设定的可能例外。
72.本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
73.计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
74.本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
75.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如smalltalk、c 等)和过程编程语言(例如“c”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电
路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
76.在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
77.这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
78.计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
79.图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献