CN103049334B - 一种任务处理的方法和虚拟机 - Google Patents

一种任务处理的方法和虚拟机 Download PDF

Info

Publication number
CN103049334B
CN103049334B CN201210543870.4A CN201210543870A CN103049334B CN 103049334 B CN103049334 B CN 103049334B CN 201210543870 A CN201210543870 A CN 201210543870A CN 103049334 B CN103049334 B CN 103049334B
Authority
CN
China
Prior art keywords
task
global variable
described
snapshot
variable
Prior art date
Application number
CN201210543870.4A
Other languages
English (en)
Other versions
CN103049334A (zh
Inventor
顾磷
马志强
盛中华
文刘飞
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CN201210543870.4A priority Critical patent/CN103049334B/zh
Publication of CN103049334A publication Critical patent/CN103049334A/zh
Application granted granted Critical
Publication of CN103049334B publication Critical patent/CN103049334B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Abstract

本发明公开了一种任务处理的方法和虚拟机,属于计算机技术领域。所述方法包括:为任务在选取一个空闲资源;为全局变量创建全局变量快照;在选取的空闲资源中的私有内存空间中执行任务;当任务执行完毕后,获取全局变量对应的新的全局变量快照,根据本地全局变量快照以及新的全局变量快照获取已更新的全局变量;判断同步任务等待队列中的待执行任务的同步变量是否包括了现在已更新的全局变量,如果有,把这个任务放入执行任务等待队列。本发明通过虚拟机执行任务时对任务涉及的全局变量的感知,以及在调度任务时对任务涉及的全局变量合理的分配内存,使各任务之间涉及的全局变量的内存地址不冲突,减少虚拟机系统为维护内存一致性所产生的开销。

Description

一种任务处理的方法和虚拟机

技术领域

[0001] 本发明涉及计算机技术领域,特别涉及一种任务处理的方法和虚拟机。

背景技术

[0002] 在计算机技术领域中,虚拟技术是一种通过组合或分割现有的计算机资源,使得这些资源表现为一个或多个操作环境,从而提供优于原有资源配置的访问方式的技术。

[0003] 现有技术中通过软件的方式将多个X86系统聚合成一个虚拟的对称多处理机。使用一个虚拟机监视器或者虚拟机仿真器实现单个结点的物理资源的虚拟化,提供统一的运行环境。虚拟机对内存的管理是通过软件的方式实现的,将所有物理资源中的内存在逻辑上视为一个整体的内存,内存是按照虚拟页面划分的。当虚拟机在执行任务时,会随机选取等待队列中的任务,然后按照任务涉及的相关数据所需的内存空间,在逻辑内存中为任务按顺序的分配内存地址,是一种按需分配内存的机制。

[0004] 在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

[0005]由于虚拟机系统是按照页面来划分是否存在数据冲突的,当两个不同的任务所涉及的数据被分配在同一个虚拟页面之后,两个任务同时访问该虚拟页面中的两个不同地址,虚拟机会认为两个任务访问的是同一个数据,因此会认为两个任务发生了数据共享冲突,会中端两个任务的执行过程,而事实上并未发生真正的共享冲突,即产生了假共享现象,影响任务的执行。

发明内容

[0006] 为了解决现有技术的问题,本发明实施例提供了一种任务处理的方法和虚拟机。所述技术方案如下:

[0007] 第一方面,本发明实施例提供的一种任务处理的方法,包括:

[0008] 当接收到虚拟指令层下发的创建任务的指令时,为所述任务选取一个用于执行所述任务的空闲资源,其中所述指令中至少包括所述任务运行时的起始地址,所述任务涉及的全局变量的地址信息和同步变量的地址信息;

[0009] 根据所述全局变量的地址信息获取与所述全局变量地址信息对应的全局变量状态ί目息;

[0010] 根据全局变量状态信息为全局变量创建本地全局变量快照;

[0011] 根据所述本地全局变量快照在选取的所述空闲资源中预先分配的私有内存空间中执行所述任务;

[0012] 当所述任务执行完毕后,获取所述全局变量对应的新的全局变量快照,根据所述本地全局变量快照以及所述新的全局变量快照获取已更新的全局变量;

[0013] 判断同步任务等待队列中的待执行任务的同步变量是否包括了现在已更新的全局变量,如果有,把这个任务放入执行任务等待队列;

[0014] 其中所述同步任务等待队列中的任务是等待同步变量触发的任务所在的队列,当同步任务等待队列中的任务的同步变量触发后,将任务放入所述执行任务等待队列中排队等待调度;所述执行任务等待队列中的任务是等待调度执行的任务所在的队列。

[0015] 在第一方面的第一种可能的实现方式中,所述判断同步任务等待队列中的待执行任务的同步变量是否包括了现在已更新的全局变量,如果有,把这个任务放入执行任务等待队列,包括:

[0016] 在执行任务等待队列中选取一个第一特定任务由第一空闲资源来运行,其中,所述第一特定任务涉及的全局变量的地址信息与当前执行的所有任务所涉及的全局变量的地址信息不冲突;或,

[0017] 在执行任务等待队列中选取一个第二特定任务由第二空闲资源来运行,其中,所述第二特定任务涉及的全局变量的地址信息与第二空闲资源已执行完毕的任务所涉及的全局变量的地址信息尽可能多的相同或相近,以增加数据亲和性。

[0018] 在第一方面的第二种可能的实现方式中,所述全局变量状态信息包括所述全局变量的内存地址,创建时间以及版本标记,所述根据全局变量状态信息为全局变量创建全局变量快照包括:根据所述全局变量状态信息,将所述全局变量状态信息进行复制,生成所述全局变量的全局变量快照;

[0019] 相应的,所述根据所述本地全局变量快照以及所述新的全局变量快照获取已更新的全局变量包括:

[0020] 判断所述本地全局变量快照中的版本标记与所述新的全局变量快照的版本标记是否相同,如果相同则表示所述全局变量未被其他任务更新;如果不相同则表示所述全局变量已被其他任务更新。

[0021] 根据第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述根据所述本地全局变量快照以及所述新的全局变量快照获取已更新的全局变量之后,所述方法还包括:

[0022]当全局变量未被其他任务更新时,在执行所述任务的资源中的公用内存空间中保存所述本地全局变量快照,并更新全局变量的内存地址为执行所述任务的资源中的公用内存空间中保存所述全局变量快照的内存地址,将所述本地全局变量快照更新为所述本地全局变量快照。

[0023] 结合第一方面或第一方面的第一种可能的实现方式或第二种可能的实现方式中任一项的实现方式,在第四种可能的实现方式中,所述根据所述全局变量快照在选取的所述空闲资源中预先分配的私有内存空间中执行所述任务之后,所述方法还包括:

[0024] 执行所述任务发生缺页错误时,则查询所述全局变量快照的内存地址实际的状态;

[0025]当所述任务对应的全局变量快照的内存地址在其他资源的公用内存空间中,将所述全局变量快照的内存地址对应的实际内容拷贝到本地;

[0026] 当所述任务对应的全局变量快照的内存地址在本地的公用内存空间中,则在本地的公用内存空间中进行获取。

[0027] 第二方面,本发明实施例提供的一种任务处理的虚拟机,包括:

[0028] 调度器节点,分布式共享内存管理节点,任务执行容器节点;

[0029] 所述调度器节点包括:

[0030] 选取模块,用于当接收到虚拟指令层下发的创建任务的指令时,为所述任务选取一个用于执行所述任务的空闲资源,其中所述指令中至少包括所述任务运行时的起始地址,所述任务涉及的全局变量的地址信息和同步变量的地址信息;

[0031] 第一获取模块,用于当所述任务执行完毕后,获取所述全局变量对应的新的全局变量快照,根据所述本地全局变量快照以及所述新的全局变量快照获取已更新的全局变量;

[0032] 判断模块,用于判断同步任务等待队列中的待执行任务的同步变量是否包括了现在已更新的全局变量,如果有,把这个任务放入执行任务等待队列;

[0033] 其中所述同步任务等待队列中的任务是等待同步变量触发的任务所在的队列,当同步任务等待队列中的任务的同步变量触发后,将任务放入所述执行任务等待队列中排队等待调度;所述执行任务等待队列中的任务是等待调度执行的任务所在的队列;

[0034] 所述分布式共享内存管理节点包括:

[0035] 第二获取模块,用于根据所述全局变量的地址信息获取与所述全局变量地址信息对应的全局变量状态信息;

[0036] 创建模块,用于根据全局变量状态信息为全局变量创建本地全局变量快照;

[0037] 所述任务执行容器节点包括:

[0038] 执行模块,用于根据所述本地全局变量快照在选取的所述空闲资源中预先分配的私有内存空间中执行所述任务。

[0039] 在第二方面的第一种可能的实现方式中,所述判断模块,包括:

[0040] 第一处理单元,用于在执行任务等待队列中选取一个第一特定任务由第一空闲资源来运行,其中,所述第一特定任务涉及的全局变量与当前执行的所有任务所涉及的全局变量不冲突;

[0041] 第二处理单元,用于在执行任务等待队列中选取一个第二特定任务由第二空闲资源来运行,其中,所述第二特定任务涉及的全局变量与第二空闲资源已执行完毕的任务所涉及的全局变量尽可能多的相同或相近,以增加数据亲和性。

[0042] 在第二方面的第二种可能的实现方式中,所述全局变量状态信息包括所述全局变量的内存地址,创建时间以及版本标记,

[0043] 所述创建模块包括:根据所述全局变量状态信息,将所述全局变量状态信息进行复制,生成所述全局变量的全局变量快照;

[0044] 相应的,所述第一获取模块具体用于:

[0045] 判断所述本地全局变量快照中的版本标记与所述新的全局变量快照的版本标记是否相同,如果相同则表示所述全局变量未被其他任务更新;如果不相同则表示所述全局变量已被其他任务更新。

[0046] 根据第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述调度器节点还包括:

[0047] 更新模块,用于当全局变量未被其他任务更新时,在执行所述任务的资源中的公用内存空间中保存所述本地全局变量快照,并更新全局变量的内存地址为执行所述任务的资源中的公用内存空间中保存所述全局变量快照的内存地址,将所述本地全局变量快照更新为所述本地全局变量快照。

[0048] 结合第二方面或第二方面的第一种可能的实现方式或第二种可能的实现方式中任一项的实现方式,在第四种可能的实现方式中,所述任务执行容器节点还包括:

[0049] 查询模块,用于执行所述任务发生缺页错误时,则查询所述全局变量快照的内存地址实际的状态;

[0050] 拷贝模块,用于当所述任务对应的全局变量快照的内存地址在其他资源的公用内存空间中,将所述全局变量快照的内存地址对应的实际内容拷贝到本地;

[0051] 第三获取模块,用于当所述任务对应的全局变量快照的内存地址在本地的公用内存空间中,则在本地的公用内存空间中进行获取。

[0052] 本发明实施例提供的技术方案带来的有益效果是:

[0053] 通过虚拟机在调度及执行任务时对各任务涉及的全局变量的感知,以及在调度任务时对任务涉及的全局变量合理的分配内存,尽可能使各任务之间所涉及的全局变量的内存地址不冲突,减少虚拟机系统为维护内存一致性所产生的开销,提高虚拟机系统的可扩展性。

附图说明

[0054] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

[0055] 图1是本发明实施例一提供的任务处理的方法流程图;

[0056] 图2是本发明实施例一提供的任务处理的方法中虚拟机的整体架构的结构示意图;

[0057] 图3是本发明实施例一提供的任务处理的方法中虚拟机各节点的结构示意图;

[0058] 图4是本发明实施例二提供的任务处理的方法流程图;

[0059] 图5是本发明实施例三提供的任务处理的虚拟机结构示意图;

[0060]图6为本发明实施例四提供的计算机设备的结构示意图。

具体实施方式

[0061] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

[0062] 实施例一

[0063] 本发明实施例提供了一种任务处理的方法,参见图1。

[0064] 需要说明的是,本发明基于应用层抽象虚拟化技术(指令集架构)在中间件级实现机群系统的单一系统映像,提出了一种任务层次的虚拟指令集,并基于该指令集建立一个单一的系统镜像。采用基于页面的分布式共享内存模型,并通过对任务的感知,建立一种松弛的事物内存一致性模型,通过对任务所需的内存分布进行合理优化,减少系统为维护内存一致性所产生的开销,提高系统的可扩展性。

[0065] 本发明实施例所进行处理任务的虚拟机的整体架构如图2所示,具体为:

[0066] 数据中心虚拟机(DVM)包括数据中心虚拟机指令集架构(DISA)、数据中心虚拟机虚拟运行环境,数据中心虚拟机底层运行环境和上层应用。

[0067] 数据中心虚拟机指令集架构(DISA)即虚拟指令层,用于数据中心虚拟机架构(DVM Architecture),可用于计算和控制数据中心虚拟机。它是数据中心虚拟机DVM提供给程序员以及编译器开发人员的编程接口。

[0068] 数据中心虚拟机底层运行环境,包括大规模计算结点的硬件平台、指令集和操作系统内核。

[0069] 数据中心虚拟机(DVM)系统各节点包括:分布式共享内存管理节点(DSM),调度器节点,任务执行容器节点,如图3所示,具体为:

[0070] 分布式共享内存管理(DSM home)节点,用于支持以基于任务的快照机制实现的部分事务内存来实现内存一致性的维护,为上层应用提供统一的逻辑地址空间。其中,快照是记录某个时间点以页面表示的内存使用状态,可以保证数据的事务隔离的一种数据结构,是共享变量在某一时间点的一份拷贝。事务内存是保证各任务对内存的写操作具有事务特性,是借鉴数据库中事物的思想,把对共享变量的读写封装到一个事物中,事务的执行过程中,当前任务所读的数据不会被其他线程写,写的数据则不会被其他线程读,在事务结束时,对共享变量的修改才为其他事务所见。为了支持对共享变量的并发读写以及降低数据副本一致性开销,本发明采用快照来实现对共享变量的并发读写,并采用延迟更新的方法降低一致性开销。分布式共享内存管理节点具体实现包括:全局页元信息(页面的实际存储位置信息等)和拷贝信息的维护和管理;内存地址与页面的转化;本地页面信息的管理,页表信息更新、缺页处理;页面信息在结点间的复制和传输。创建内存快照、删除内存快照、内存修改提交等与快照相关的管理工作。

[0071] 调度器节点,用于完成任务的管理和数据、任务的同步。任务管理包括任务的调度、任务的初始化、任务的执行、任务执行结果处理。数据、任务同步包括使用本地的分布式共享内存模块完成内存数据的同步和任务的同步。该节点包括任务管理模块和内存模块。其中,内存模块的功能为内存地址与页面信息的转化,把任务管理模块的创建快照的请求,转发给分布式共享内存管理节点。任务准备执行时,通知对应的任务执行容器节点的内存模块更新相关的内存页表项。其中任务管理模块的功能主要是负责任务的管理以及数据和任务的同步。调度器节点具体的功能包括①任务调度:通过一定的调度策略选择特定的任务在相应的任务执行容器上执行。②任务的执行准备:通过调用本地的内存模块对任务涉及区域的内存空间创建快照。③任务派发。④对任务执行结果处理:如处理提交的内存修改;为新建的任务建立快照。⑤通过内存模块透明地完成全局数据和任务的同步,维护内存的一致性。

[0072] 任务执行容器节点,用于完成任务的执行、执行结果的反馈、创建新任务的反馈等功能。该类节点包括任务执行模块和内存模块。任务执行模块的功能包括启动本地的内存模块,接收调度器派发的任务,为任务建立本地运行的上下文,执行任务。向调度器反馈执行结果,例如提交可能需要的内存修改;或者建立新任务。内存模块功能为本地页表信息的管理,包括页表信息更新、缺页处理。

[0073] 上层应用,用于数据中心虚拟机指令集架构编写的指令序列。

[0074] 方法流程包括:

[0075] 101:当接收到虚拟指令层下发的创建任务的指令时,为所述任务选取一个用于执行所述任务的空闲资源,其中所述指令中至少包括所述任务运行时的起始地址,所述任务涉及的全局变量的地址信息和同步变量的地址信息;

[0076] 102:根据所述全局变量的地址信息获取与所述全局变量地址信息对应的全局变量状态信息;

[0077] 103:根据全局变量状态信息为全局变量创建本地全局变量快照;

[0078] 104:根据所述本地全局变量快照在选取的所述空闲资源中预先分配的私有内存空间中执行所述任务;

[0079] 105:当所述任务执行完毕后,获取所述全局变量对应的新的全局变量快照,根据所述本地全局变量快照以及所述新的全局变量快照获取已更新的全局变量;

[0080] 106:判断同步任务等待队列中的待执行任务的同步变量是否包括了现在已更新的全局变量,如果有,把这个任务放入执行任务等待队列;

[0081] 其中所述同步任务等待队列中的任务是等待同步变量触发的任务所在的队列,当同步任务等待队列中的任务的同步变量触发后,将任务放入所述执行任务等待队列中排队等待调度;所述执行任务等待队列中的任务是等待调度执行的任务所在的队列。

[0082] 本发明实施例通过虚拟机在调度及执行任务时对各任务涉及的全局变量的感知,以及在调度任务时对任务涉及的全局变量合理的分配内存,尽可能使得各任务之间涉及的全局变量的内存地址不冲突,减少虚拟机系统为维护内存一致性所产生的开销,提高虚拟机系统的可扩展性。

[0083] 实施例二

[0084] 本发明实施例提供了一种任务处理的方法,参见图4,需要说明的是,本发明实施例是通过调度器节点、分布式共享内存管理节点、任务执行容器节点具体执行对任务处理的整个过程。

[0085] 方法流程包括:

[0086] 所述虚拟机包括:调度器节点,分布式共享内存管理节点以及任务执行容器节点。

[0087] 401:当接收到虚拟指令层下发的创建任务的指令时,为所述任务选取一个用于执行所述任务的空闲资源,其中所述指令中至少包括所述任务运行时的起始地址,所述任务涉及的全局变量的地址信息和同步变量的地址信息。

[0088] 具体的,当接收到虚拟指令层下发的创建任务的指令时,调度器节点在空闲的任务执行容器节点中选择一个空闲的任务执行容器节点,可以是整个任务执行容器节点处于空闲状态,也可以是任务执行容器节点中的私有内存空间中存在空闲内存,用于执行调度器节点分配的任务。并将任务分配给任务执行容器节点。指令中携带任务的相关信息,至少包括任务执行的起始地址,任务涉及的全局变量的地址信息和同步变量的地址信息,其中同步变量也是全局变量的一种,用于标识该任务是否需要和其他任务进行同步,当需要与其他任务同步时,则调度器节点将该任务放入同步任务等待队列中等待其他任务的完成对全局变量进行更新完毕,其中所述同步任务等待队列中的任务是等待同步变量触发的任务所在的队列,当同步任务等待队列中的任务的同步变量触发后,将任务放入所述执行任务等待队列中排队等待调度;所述执行任务等待队列中的任务是等待调度执行的任务所在的队列。

[0089]调度器节点的任务管理模块是整个数据中心虚拟机系统的入口点,初始化后建立与各任务执行容器节点的任务执行模块之间的连接,从系统的第一个任务开始,通过一定的调度策略选择当前处于空闲状态的任务执行容器节点后,并将任务分配给选择的任务执行容器节点。

[0090] 任务执行容器节点在启动时,任务执行容器节点的任务执行模块首先初始化该节点的私有内存区域,然后开启两类服务器端,一类的功能是等待与调度器节点建立连接;另一类的功能是等待与其它任务执行容器节点建立连接。完成本地内存模块的初始化,将共享的内存区域设置为不可访问,当发生不同访问时,会引发不同的缺页错误,而激活本地的内存模块。

[0091] 402:根据所述全局变量的地址信息获取与所述全局变量地址信息对应的全局变量状态信息。

[0092] 其中全局变量状态信息包括所述全局变量的内存地址,创建时间以及版本标记。

[0093] 403:所述根据全局变量状态信息为全局变量创建全局变量快照。

[0094] 创建快照的具体方式为:根据所述全局变量状态信息,将所述全局变量状态信息进行复制,生成所述全局变量的全局变量快照。

[0095] 具体实施方式为调度器节点初始化所述任务涉及的运行数据,并调度分布式共享内存管理节点为所述任务涉及的全局变量创建快照。

[0096]调度器节点的任务管理模块调用本地内存模块实现任务涉及的运行数据的内存地址到页面信息的转化,并通过本地内存模块发送数据包给分布式共享内存管理节点,完成任务涉及的全局变量快照的创建,其中任务所涉及的运行数据的为任务涉及的堆、栈中的初始数据,所访问的全局变量的内存地址,运行指令的起始地址等信息。

[0097] 通过本地内存模块将任务涉及的全局变量的内存地址对应的页面信息发送至所述分布式共享内存管理节点。分布式共享内存管理节点为任务涉及的全局变量创建快照,并保存任务涉及的全局变量的内存地址所在页面对应的原始的页表信息。

[0098] 分布式共享内存管理节点创建全局变量快照后,调度器节点的任务管理模块再调用本地内存模块将快照以数据包的形式发送给之前已经选择好的任务执行容器节点的内存模块,任务执行容器节点的内存模块根据快照更新本地的页表信息。页表信息更新完毕后,调度器节点的任务管理模块通过已建立的连接将任务涉及的运行数据以消息形式发送给对应的任务执行容器节点的任务执行模块,并一直监听连接上的消息,至此完成一个任务的分发。

[0099] 404:根据所述本地全局变量快照在选取的所述空闲资源中预先分配的私有内存空间中执行所述任务。

[0100] 当接收到调度器节点通知执行所述任务的消息时,任务执行容器节点执行任务。在每一个任务执行容器节点中,都包含预先分配的私有内存空间和公用内存空间,其中私有内存空间是对外不可见的,为任务执行容器节点的本地内存模块,用于在任务执行容器节点被分配任务后执行任务以及任务执行容器节点自身需要执行的任务和程序;公用内存空间用于虚拟机系统整体根据需要进行调用。

[0101] 405:执行所述任务发生缺页错误时,则查询所述全局变量快照的内存地址实际的状态。

[0102] 任务执行容器节点的任务执行模块接收到消息后会执行任务。在执行任务过程中,当调用任务所涉及到的全局变量快照时,由于该全局变量快照仅保存了全局变量的地址信息,即内存地址,因此会导致调用全局变量时发现该全局变量可能不在本地任务执行容器节点的内存地址,由此会触发不同的页面错误。

[0103] 具体操作过程为:任务执行容器节点向分布式共享内存管理节点发送查询信息,并接收分布式共享内存管理节点的反馈信息。

[0104] 406:当所述任务对应的全局变量快照的内存地址在其他资源的公用内存空间中,将所述全局变量快照的内存地址对应的实际内容拷贝到本地。

[0105] 执行任务过程中发生缺页错误时,本地的内存模块通过向分布式共享内存管理节点发送消息,查询该全局变量快照对应的页面信息实际所在的位置,若页面信息在别的容器内,本地的内存模块通过任务执行容器节点之间的连接将页面信息实际内容拷贝到本地。

[0106] 具体操作过程为:当反馈信息中所述任务对应的全局变量快照的页面信息在其他任务执行容器节点时,则本地的任务执行容器节点通过任务执行容器节点之间的连接将全局变量快照对应的页面信息对应的实际内容拷贝到本地。

[0107] 407:当所述任务对应的全局变量快照的内存地址在本地的公用内存空间中,则在本地的公用内存空间中进行获取。

[0108] 具体操作过程为:当反馈信息中任务对应的全局变量快照的页面信息在本地的任务执行容器节点时,则在本地的任务执行容器节点的公用内存空间的缓存中进行获取。

[0109] 408:当所述任务执行完毕后,获取所述全局变量对应的新的全局变量快照,根据所述本地全局变量快照以及所述新的全局变量快照获取已更新的全局变量。

[0110] 调度器节点通过获取任务执行完毕后的本地全局变量快照,以及该本地全局变量快照对应的全局变量在分布式共享内存管理节点中保存的新的全局变量快照,其中新的全局变量快照也是该全局变量对应的副本,由于可能存在其他任务执行对该全局变量进行了更新的情况,因此新的全局变量快照与本地的全局变量快照有可能不相同,这个对比是通过各个全局变量快照中的版本标记来进行比对后得到的,如果版本标记相同,那么说明没有其他任务对该全局变量进行修改,因此可以对该全局变量进行更新;如果版本标记不相同,那么说明其他任务已经在该任务修改本地全局变量快照前对全局变量进行了更新,因此此时的全局变量无法更新为本地的全局变量快照,因此在更新全局变量前需要通过新的全局变量快照和本地全局变量快照对比,查询一下是否可以进行更新。

[0111] 因此步骤408可以具体为:

[0112] 判断所述本地全局变量快照中的版本标记与所述新的全局变量快照的版本标记是否相同,如果相同则表示所述全局变量未被其他任务更新;如果不相同则表示所述全局变量已被其他任务更新。

[0113] 进一步的,任务执行完毕后根据执行结果可以发送不同的消息,调度器节点会根据消息的类型对执行完的任务以及其所涉及的全局变量快照进行更新全局变量的操作或抛弃处理。

[0114]调度器节点的任务管理模块接收到任务执行容器节点的任务执行模块返回的消息后,根据不同的消息内容做不同的处理。消息具体形式有如下几种:正常退出;作废退出;创建子任务。

[0115] 当消息类型为正常退出的任务时:

[0116] 当所述任务执行完毕且发送正常退出的消息时,判断所述全局变量快照在所述任务执行后是否被修改。

[0117] 具体操作过程为:当任务执行完毕,调度器节点接收所述任务执行容器节点发送的正常退出的消息。

[0118] 若所述全局变量快照被修改,判断所述全局变量快照中的全局变量的状态信息与该全局变量的当前状态信息是否相同,如果相同则在执行所述任务的资源中的公用内存空间中保存所述全局变量快照,并更新全局变量的内存地址为执行所述任务的资源中的公用内存空间中保存所述全局变量快照的内存地址;如果不相同则执行作废退出所述任务的步骤。

[0119] 若任务对应的全局变量快照被修改,首先判断此时该全局变量快照对应的原始全局变量是否已经被更新过,通过全局变量快照中的状态信息与原始全局变量的状态信息进行对比,如果相同则代表未更新,此时可以进行更新操作;如果不相同则代表已经有其他任务对该全局变量进行了更新,此时不可进行更新操作,需要对执行后的任务进行作废处理,重新进入等待队列,等待重新执行。保证了被更新的全局变量不会被其他同时并行执行的任务再一次进行更新,降低了全局变量并发读写时维护数据一致性的系统开销。

[0120] 对于可以更新的全局变量,调度器节点调度分布式共享内存管理节点更新原始全局变量的页面信息,并接收分布式共享内存管理节点更新后的全局变量的页面信息。

[0121] 具体操作过程为:

[0122] 调度器节点向任务执行容器节点发送提交消息,提交消息使得任务执行容器节点将被修改全局变量快照在任务执行容器节点中进行保存,并通知任务执行容器节点上报被修改全局变量快照页面对应的页面信息。

[0123]调度器节点接收任务执行容器节点发送的被修改的全局变量快照的页面信息,将任务执行容器的标识写入页面信息中,并将页面信息以及全局变量快照发送至分布式共享内存管理节点。

[0124] 分布式共享内存管理节点根据接收到的页面信息以及全局变量快照,删除建立全局变量快照。分布式共享内存管理节点判断当前是否只有一个任务执行容器节点对全局变量快照进行了修改。若只有一个任务执行容器节点执行的任务对所述任务对应的全局变量快照进行了修改,则分布式共享内存管理节点将被修改的全局变量快照所在页面信息替换原始全局变量的页面信息,并向调度器节点发送提交成功的消息,提交成功的消息中携带被修改的全局变量的页面信息。

[0125] 若所述全局变量快照未被修改,则删除所述全局变量快照。

[0126] 具体操作过程为:若所述任务对应的全局变量快照未被修改,则所述调度器节点调度所述分布式共享内存管理节点删除所述任务对应的全局变量快照,并调度执行任务等待队列中等待的任务。

[0127] 当消息类型为创建子任务时:

[0128] 当所述任务执行完毕且发送创建子任务的消息时,判断所述子任务的同步变量地址信息是否为空,其中所述创建子任务的消息中至少包括所述子任务的起始地址,所述子任务的全局变量的地址信息;当所述子任务需要和其他任务进行同步时,所述创建子任务的消息中还包括同步变量的地址信息。

[0129] 当所述任务执行完毕,所述调度器节点接收所述任务执行容器节点发送的创建子任务的消息。

[0130] 如果不为空,则所述子任务的同步变量观察区中添加所述子任务的同步变量的地址信息,并将所述子任务放入全局同步任务等待队列,等待其他任务对所述子任务涉及的同步变量更新完毕后进入执行所述子任务的流程。

[0131] 具体操作过程为:调度器节点在同步变量观察区中添加所述子任务所涉及到的全局变量的内存地址范围,并将子任务放入全局同步任务等待队列,等待其他子任务对全局变量更新完毕。

[0132] 若同步变量观察区为空,则代表其他子任务对全局变量更新完毕,此时调度器节点将子任务放入全局任务等待队列,排队等待执行任务。当轮到执行该子任务时,调度器节点为子任务分配任务执行容器节点,以及创建快照等步骤。

[0133] 如果为空,则为所述子任务选择一个空闲资源,将所述子任务的全局变量的地址信息中的全局变量的状态信息和全局变量的内存地址进行复制,为所述子任务创建全局变量快照,并将所述子任务的全局变量快照与所述任务的全局变量快照合并,并在选取的所述空闲资源中执行所述子任务。

[0134] 本步骤的具体操作过程如其父任务执行过程相同,在此不再赘述。

[0135] 当消息类型为作废退出时:

[0136] 当所述任务执行完毕且发送作废退出的消息时,删除所述全局变量快照。

[0137] 具体操作过程为:调度器节点调度分布式共享内存管理节点删除任务对应的全局变量快照。

[0138] 409:判断同步任务等待队列中的待执行任务的同步变量是否包括了现在已更新的全局变量,如果有,把这个任务放入执行任务等待队列。

[0139] 其中所述同步任务等待队列中的任务是等待同步变量触发的任务所在的队列,当同步任务等待队列中的任务的同步变量触发后,将任务放入所述执行任务等待队列中排队等待调度;所述执行任务等待队列中的任务是等待调度执行的任务所在的队列。

[0140] 当任务执行完毕,此时无论该任务执行后是否为正常退出或者是作废退出,虚拟机系统在选取下一个执行的任务时,需要考虑到当前正在执行的所有任务以及执行完毕的任务涉及的全局变量的内存地址,根据这两类任务涉及的全局变量来确定调度哪一个在任务等待队列中等待的任务进入执行流程。执行本过程的为虚拟机系统中的调度器节点。

[0141] 根据当前执行的所有任务所涉及的全局变量的内存地址,执行完毕的任务涉及的全局变量的内存地址,存在两种调度机制。因此步骤409可以具体为:

[0142] 4091:在执行任务等待队列中选取一个第一特定任务由第一空闲资源来运行,其中,所述第一特定任务涉及的全局变量的地址信息与当前执行的所有任务所涉及的全局变量的地址信息不冲突。

[0143] 此种情况为优先选取当前正在执行任务所访问全局变量不冲突的任务执行。

[0144] 4092:在执行任务等待队列中选取一个第二特定任务由第二空闲资源来运行,其中,所述第二特定任务涉及的全局变量的地址信息与第二空闲资源已执行完毕的任务所涉及的全局变量的地址信息尽可能多的相同或相近,以增加数据亲和性。

[0145] 此种情况为采取数据就近的原则,其中地址信息的相近,具体为全局变量所在的内存地址相近,例如某全局变量的内存地址为0x0010,则可以认为0x0011,0x0012,或者OxOOOf等内存地址为“相近的”内存地址。在任务等待队列中选择的任务与之前结束的任务所涉及的全局变量的内存地址尽可能的相同或相近,其目的是为了增加数据亲和性,一方面可以增加Cache的命中率,另一方面当选择的任务与之前结束的任务所涉及的全局变量相同,那么在执行任务时则可以根据全局变量快照直接从当前的任务执行容器节点中获取该全局变量。

[0146] 本发明实施例通过虚拟机在调度及执行任务时对各任务涉及的全局变量的感知,以及在调度任务时对任务涉及的全局变量合理的分配内存,尽可能使得各任务之间涉及的全局变量的内存地址不冲突,减少虚拟机系统为维护内存一致性所产生的开销,提高虚拟机系统的可扩展性。

[0147] 实施例三

[0148] 本发明实施例提供了一种任务处理的虚拟机,参见图5,所述虚拟机包括:

[0149] 调度器节点501,分布式共享内存管理节点502,任务执行容器节点503 ;

[0150] 所述调度器节点501包括:

[0151] 选取模块5011,用于当接收到虚拟指令层下发的创建任务的指令时,为所述任务选取一个用于执行所述任务的空闲资源,其中所述指令中至少包括所述任务运行时的起始地址,所述任务涉及的全局变量的地址信息和同步变量的地址信息;

[0152] 第一获取模块5012,用于当所述任务执行完毕后,获取所述全局变量对应的新的全局变量快照,根据所述本地全局变量快照以及所述新的全局变量快照获取已更新的全局变量;

[0153] 判断模块5013,用于判断同步任务等待队列中的待执行任务的同步变量是否包括了现在已更新的全局变量,如果有,把这个任务放入执行任务等待队列;

[0154] 其中所述同步任务等待队列中的任务是等待同步变量触发的任务所在的队列,当同步任务等待队列中的任务的同步变量触发后,将任务放入所述执行任务等待队列中排队等待调度;所述执行任务等待队列中的任务是等待调度执行的任务所在的队列;

[0155] 所述分布式共享内存管理节点502包括:

[0156] 第二获取模块5021,用于根据所述全局变量的地址信息获取与所述全局变量地址信息对应的全局变量状态信息;

[0157] 创建模块5022,用于根据全局变量状态信息为全局变量创建本地全局变量快照;

[0158] 所述任务执行容器节点503包括:

[0159] 执行模块5031,用于根据所述本地全局变量快照在选取的所述空闲资源中预先分配的私有内存空间中执行所述任务。

[0160] 其中在具体实施方式中,所述判断模块5013,包括:

[0161] 第一处理单元50131,用于在执行任务等待队列中选取一个第一特定任务由第一空闲资源来运行,其中,所述第一特定任务涉及的全局变量与当前执行的所有任务所涉及的全局变量不冲突;

[0162] 第二处理单元50132,用于在执行任务等待队列中选取一个第二特定任务由第二空闲资源来运行,其中,所述第二特定任务涉及的全局变量与第二空闲资源已执行完毕的任务所涉及的全局变量尽可能多的相同或相近,以增加数据亲和性。

[0163] 其中,所述全局变量状态信息包括所述全局变量的内存地址,创建时间以及版本标记,

[0164] 所述创建模块5022包括:根据所述全局变量状态信息,将所述全局变量状态信息进行复制,生成所述全局变量的全局变量快照;

[0165] 相应的,所述第一获取模块5012具体用于:

[0166] 判断所述本地全局变量快照中的版本标记与所述新的全局变量快照的版本标记是否相同,如果相同则表示所述全局变量未被其他任务更新;如果不相同则表示所述全局变量已被其他任务更新。

[0167] 其中,所述调度器节点501还包括:

[0168] 更新模块5014,用于当全局变量未被其他任务更新时,在执行所述任务的资源中的公用内存空间中保存所述本地全局变量快照,并更新全局变量的内存地址为执行所述任务的资源中的公用内存空间中保存所述全局变量快照的内存地址,将所述本地全局变量快照更新为所述本地全局变量快照。

[0169] 其中,所述任务执行容器节点503还包括:

[0170] 查询模块5032,用于执行所述任务发生缺页错误时,则查询所述全局变量快照的内存地址实际的状态;

[0171] 拷贝模块5033,用于当所述任务对应的全局变量快照的内存地址在其他资源的公用内存空间中,将所述全局变量快照的内存地址对应的实际内容拷贝到本地;

[0172] 第三获取模块5034,用于当所述任务对应的全局变量快照的内存地址在本地的公用内存空间中,则在本地的公用内存空间中进行获取。

[0173] 本发明实施例通过虚拟机在调度及执行任务时对各任务涉及的全局变量的感知,以及在调度任务时对任务涉及的全局变量合理的分配内存,尽可能使得各任务之间涉及的全局变量的内存地址不冲突,减少虚拟机系统为维护内存一致性所产生的开销,提高虚拟机系统的可扩展性。

[0174] 实施例四

[0175] 参见图6,本实施例还提供了一种计算机设备60,包括处理器61,存储器62,存储器中存储有代码,处理器用于读取代码,并执行上述各实施例中的方法;其中,本实施例中,处理器执行方法时,各个涉及的软件上的功能单元(或者在代码层面,可认为是几个不同功能的代码段)可以认为是实施例三中的各个模块,其具体执行的方法可参见上述各实施例,这里不再赘述。

[0176] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

[0177] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

[0178] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种任务处理的方法,其特征在于,所述方法包括:当接收到虚拟指令层下发的创建任务的指令时,为所述任务选取一个用于执行所述任务的空闲资源,其中所述指令中至少包括所述任务运行时的起始地址,所述任务涉及的全局变量的地址信息和同步变量的地址信息;根据所述全局变量的地址信息获取与所述全局变量地址信息对应的全局变量状态信息;根据全局变量状态信息为全局变量创建本地全局变量快照;根据所述本地全局变量快照在选取的所述空闲资源中预先分配的私有内存空间中执行所述任务;当所述任务执行完毕后,获取所述全局变量对应的新的全局变量快照,根据所述本地全局变量快照以及所述新的全局变量快照获取已更新的全局变量;判断同步任务等待队列中的待执行任务的同步变量是否包括了现在已更新的全局变量,如果有,把这个任务放入执行任务等待队列;其中所述同步任务等待队列中的任务是等待同步变量触发的任务所在的队列,当同步任务等待队列中的任务的同步变量触发后,将任务放入所述执行任务等待队列中排队等待调度;所述执行任务等待队列中的任务是等待调度执行的任务所在的队列。
2.根据权利要求1所述的方法,其特征在于,所述判断同步任务等待队列中的待执行任务的同步变量是否包括了现在已更新的全局变量,如果有,把这个任务放入执行任务等待队列,包括:在执行任务等待队列中选取一个第一特定任务由第一空闲资源来运行,其中,所述第一特定任务涉及的全局变量的地址信息与当前执行的所有任务所涉及的全局变量的地址信息不冲突;或,在执行任务等待队列中选取一个第二特定任务由第二空闲资源来运行,其中,所述第二特定任务涉及的全局变量的地址信息与第二空闲资源已执行完毕的任务所涉及的全局变量的地址信息尽可能多的相同或相近,以增加数据亲和性。
3.根据权利要求1所述的方法,其特征在于,所述全局变量状态信息包括所述全局变量的内存地址,创建时间以及版本标记,所述根据全局变量状态信息为全局变量创建全局变量快照包括:根据所述全局变量状态信息,将所述全局变量状态信息进行复制,生成所述全局变量的全局变量快照;相应的,所述根据所述本地全局变量快照以及所述新的全局变量快照获取已更新的全局变量包括:判断所述本地全局变量快照中的版本标记与所述新的全局变量快照的版本标记是否相同,如果相同则表示所述全局变量未被其他任务更新;如果不相同则表示所述全局变量已被其他任务更新。
4.根据权利要求3所述的方法,其特征在于,所述根据所述本地全局变量快照以及所述新的全局变量快照获取已更新的全局变量之后,所述方法还包括:当全局变量未被其他任务更新时,在执行所述任务的资源中的公用内存空间中保存所述本地全局变量快照,并更新全局变量的内存地址为执行所述任务的资源中的公用内存空间中保存所述全局变量快照的内存地址,将所述本地全局变量快照更新为所述本地全局变量快照。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述全局变量快照在选取的所述空闲资源中预先分配的私有内存空间中执行所述任务之后,所述方法还包括:执行所述任务发生缺页错误时,则查询所述全局变量快照的内存地址实际的状态;当所述任务对应的全局变量快照的内存地址在其他资源的公用内存空间中,将所述全局变量快照的内存地址对应的实际内容拷贝到本地;当所述任务对应的全局变量快照的内存地址在本地的公用内存空间中,则在本地的公用内存空间中进行获取。
6.一种任务处理的装置,其特征在于,所述装置包括:调度器节点,分布式共享内存管理节点,任务执行容器节点;所述调度器节点包括:选取模块,用于当接收到虚拟指令层下发的创建任务的指令时,为所述任务选取一个用于执行所述任务的空闲资源,其中所述指令中至少包括所述任务运行时的起始地址,所述任务涉及的全局变量的地址信息和同步变量的地址信息;第一获取模块,用于当所述任务执行完毕后,获取所述全局变量对应的新的全局变量快照,根据本地全局变量快照以及所述新的全局变量快照获取已更新的全局变量;判断模块,用于判断同步任务等待队列中的待执行任务的同步变量是否包括了现在已更新的全局变量,如果有,把这个任务放入执行任务等待队列;其中所述同步任务等待队列中的任务是等待同步变量触发的任务所在的队列,当同步任务等待队列中的任务的同步变量触发后,将任务放入所述执行任务等待队列中排队等待调度;所述执行任务等待队列中的任务是等待调度执行的任务所在的队列;所述分布式共享内存管理节点包括:第二获取模块,用于根据所述全局变量的地址信息获取与所述全局变量地址信息对应的全局变量状态信息;创建模块,用于根据全局变量状态信息为全局变量创建本地全局变量快照;所述任务执行容器节点包括:执行模块,用于根据所述本地全局变量快照在选取的所述空闲资源中预先分配的私有内存空间中执行所述任务。
7.根据权利要求6所述的装置,其特征在于,所述判断模块,包括:第一处理单元,用于在执行任务等待队列中选取一个第一特定任务由第一空闲资源来运行,其中,所述第一特定任务涉及的全局变量与当前执行的所有任务所涉及的全局变量不冲突;第二处理单元,用于在执行任务等待队列中选取一个第二特定任务由第二空闲资源来运行,其中,所述第二特定任务涉及的全局变量与第二空闲资源已执行完毕的任务所涉及的全局变量尽可能多的相同或相近,以增加数据亲和性。
8.根据权利要求6所述的装置,其特征在于,所述全局变量状态信息包括所述全局变量的内存地址,创建时间以及版本标记,所述创建模块包括:根据所述全局变量状态信息,将所述全局变量状态信息进行复制,生成所述全局变量的全局变量快照;相应的,所述第一获取模块具体用于:判断所述本地全局变量快照中的版本标记与所述新的全局变量快照的版本标记是否相同,如果相同则表示所述全局变量未被其他任务更新;如果不相同则表示所述全局变量已被其他任务更新。
9.根据权利要求8所述的装置,其特征在于,所述调度器节点还包括:更新模块,用于当全局变量未被其他任务更新时,在执行所述任务的资源中的公用内存空间中保存所述本地全局变量快照,并更新全局变量的内存地址为执行所述任务的资源中的公用内存空间中保存所述全局变量快照的内存地址,将所述本地全局变量快照更新为所述本地全局变量快照。
10.根据权利要求6-8任一项所述的装置,其特征在于,所述任务执行容器节点还包括:查询模块,用于执行所述任务发生缺页错误时,则查询所述全局变量快照的内存地址实际的状态;拷贝模块,用于当所述任务对应的全局变量快照的内存地址在其他资源的公用内存空间中,将所述全局变量快照的内存地址对应的实际内容拷贝到本地;第三获取模块,用于当所述任务对应的全局变量快照的内存地址在本地的公用内存空间中,则在本地的公用内存空间中进行获取。
CN201210543870.4A 2012-12-14 2012-12-14 一种任务处理的方法和虚拟机 CN103049334B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210543870.4A CN103049334B (zh) 2012-12-14 2012-12-14 一种任务处理的方法和虚拟机

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210543870.4A CN103049334B (zh) 2012-12-14 2012-12-14 一种任务处理的方法和虚拟机
PCT/CN2013/084128 WO2014090008A1 (zh) 2012-12-14 2013-09-24 一种任务处理的方法和虚拟机
US14/738,436 US9996401B2 (en) 2012-12-14 2015-06-12 Task processing method and virtual machine

Publications (2)

Publication Number Publication Date
CN103049334A CN103049334A (zh) 2013-04-17
CN103049334B true CN103049334B (zh) 2015-09-30

Family

ID=48061984

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210543870.4A CN103049334B (zh) 2012-12-14 2012-12-14 一种任务处理的方法和虚拟机

Country Status (3)

Country Link
US (1) US9996401B2 (zh)
CN (1) CN103049334B (zh)
WO (1) WO2014090008A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049334B (zh) 2012-12-14 2015-09-30 华为技术有限公司 一种任务处理的方法和虚拟机
CN103473272B (zh) * 2013-08-20 2017-06-16 小米科技有限责任公司 数据处理方法、装置及系统
CN104461706B (zh) * 2014-11-24 2019-03-26 上海华为技术有限公司 一种将共享全局变量共享的方法和多处理装置
CN106339254A (zh) * 2015-07-15 2017-01-18 中兴通讯股份有限公司 一种虚拟机快速启动方法、装置及管理节点
US9619366B1 (en) * 2015-11-12 2017-04-11 International Business Machines Corporation Object monitoring in code debugging
CN105871603B (zh) * 2016-03-29 2019-01-18 中国科学院软件研究所 一种基于内存数据网格的实时流式数据处理失效恢复系统及方法
CN106066830B (zh) * 2016-05-31 2018-11-13 中国航空工业集团公司西安飞机设计研究所 一种内存管理方法
CN107544899A (zh) * 2016-06-24 2018-01-05 深圳市中兴微电子技术有限公司 一种执行测试用例的方法及装置
US10528479B2 (en) * 2017-06-02 2020-01-07 Huawei Technologies Co., Ltd. Global variable migration via virtual memory overlay technique for multi-version asynchronous dynamic software update
US10409641B1 (en) * 2018-11-26 2019-09-10 Palantir Technologies Inc. Module assignment management

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721775B1 (en) * 1999-08-12 2004-04-13 International Business Machines Corporation Resource contention analysis employing time-ordered entries in a blocking queue and waiting queue
CN101339527A (zh) * 2008-07-28 2009-01-07 华中科技大学 影子内存的备份方法及装置
CN101631328A (zh) * 2009-08-14 2010-01-20 北京星网锐捷网络技术有限公司 一种对共享资源互斥访问的同步方法、装置和网络设备
CN102629221A (zh) * 2012-02-28 2012-08-08 华为技术有限公司 用于分布式共享存储的任务同步方法、装置及系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19728971C2 (de) 1997-07-07 2003-10-09 Bosch Gmbh Robert Datenverarbeitungsvorrichtung und -verfahren
US6839816B2 (en) * 2002-02-26 2005-01-04 International Business Machines Corporation Shared cache line update mechanism
US7237241B2 (en) * 2003-06-23 2007-06-26 Microsoft Corporation Methods and systems for managing access to shared resources using control flow
US9020801B2 (en) 2003-08-11 2015-04-28 Scalemp Inc. Cluster-based operating system-agnostic virtual computing system
US8065499B2 (en) * 2006-02-22 2011-11-22 Oracle America, Inc. Methods and apparatus to implement parallel transactions
JP4612710B2 (ja) * 2008-06-02 2011-01-12 株式会社日立製作所 トランザクション並行制御方法、データベース管理システム、およびプログラム
US7941616B2 (en) * 2008-10-21 2011-05-10 Microsoft Corporation System to reduce interference in concurrent programs
US8069446B2 (en) * 2009-04-03 2011-11-29 Microsoft Corporation Parallel programming and execution systems and techniques
AU2010339584B2 (en) * 2009-12-31 2014-06-26 Commvault Systems, Inc. Systems and methods for performing data management operations using snapshots
CN101807157B (zh) * 2010-03-30 2012-08-29 南京恩瑞特实业有限公司 基于函数访问全局变量的防御性编程方法
CN101908002A (zh) * 2010-08-17 2010-12-08 中兴通讯股份有限公司 一种任务路径切换方法及装置
US9009726B2 (en) * 2010-12-10 2015-04-14 Microsoft Technology Licensing, Llc Deterministic sharing of data among concurrent tasks using pre-defined deterministic conflict resolution policies
US8990536B2 (en) * 2011-06-01 2015-03-24 Schneider Electric It Corporation Systems and methods for journaling and executing device control instructions
CN103049334B (zh) * 2012-12-14 2015-09-30 华为技术有限公司 一种任务处理的方法和虚拟机

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721775B1 (en) * 1999-08-12 2004-04-13 International Business Machines Corporation Resource contention analysis employing time-ordered entries in a blocking queue and waiting queue
CN101339527A (zh) * 2008-07-28 2009-01-07 华中科技大学 影子内存的备份方法及装置
CN101631328A (zh) * 2009-08-14 2010-01-20 北京星网锐捷网络技术有限公司 一种对共享资源互斥访问的同步方法、装置和网络设备
CN102629221A (zh) * 2012-02-28 2012-08-08 华为技术有限公司 用于分布式共享存储的任务同步方法、装置及系统

Also Published As

Publication number Publication date
US20150277993A1 (en) 2015-10-01
US9996401B2 (en) 2018-06-12
WO2014090008A1 (zh) 2014-06-19
CN103049334A (zh) 2013-04-17

Similar Documents

Publication Publication Date Title
US8719415B1 (en) Use of temporarily available computing nodes for dynamic scaling of a cluster
KR101574366B1 (ko) 가상 머신 및 애플리케이션 수명들의 동기화
JP3851272B2 (ja) ステートフル・プログラム・エンティティの作業負荷管理
Itzkovitz et al. Thread migration and its applications in distributed shared memory systems
CA2646135C (en) Managing execution of programs by multiple computing systems
US6802062B1 (en) System with virtual machine movable between virtual machine systems and control method
CN102906691B (zh) 虚拟机迁移技术
US9529613B2 (en) Methods and apparatus to reclaim resources in virtual computing environments
US8219987B1 (en) Optimized virtual machine specification for provisioning application specific runtime environment
US7886294B2 (en) Virtual machine monitoring
US7716377B2 (en) Clustering server providing virtual machine data sharing
JP4980792B2 (ja) 仮想計算機の性能監視方法及びその方法を用いた装置
CN103530170B (zh) 在虚拟机环境中提供硬件虚拟化的系统和方法
Kc et al. Scheduling hadoop jobs to meet deadlines
JP5843823B2 (ja) プログラム実行状態の保存
US8635396B2 (en) Method for symmetric live migration of virtual machines
US8291414B2 (en) Shared resource service provisioning using a virtual machine manager
US9558207B1 (en) Versioning of database partition maps
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
TWI239450B (en) Apparatus, computer readable recording medium, and method for yielding to a processor within a logically partitioned data processing system
CN101739298B (zh) 共享缓存管理方法和系统
US8631403B2 (en) Method and system for managing tasks by dynamically scaling centralized virtual center in virtual infrastructure
US9582221B2 (en) Virtualization-aware data locality in distributed data processing
KR101031409B1 (ko) 동적으로 가상 머신을 생성하기 위한 방법, 제조물품 및 시스템
US7802248B2 (en) Managing a service having a plurality of applications using virtual machines

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20191217

Address after: 510000 unit 2414-2416, building, No. five, No. 371, Tianhe District, Guangdong, China

Patentee after: Guangdong Gaohang Intellectual Property Operations Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: Huawei Technologies Co., Ltd.

Effective date of registration: 20191217

Address after: 314400 No.11, Weisan Road, Nongfa District, Chang'an Town, Haining City, Jiaxing City, Zhejiang Province

Patentee after: Haining hi tech Zone Science and Innovation Center Co., Ltd

Address before: 510000 unit 2414-2416, building, No. five, No. 371, Tianhe District, Guangdong, China

Patentee before: Guangdong Gaohang Intellectual Property Operations Co., Ltd.