CN104461730B - 一种虚拟资源分配方法及装置 - Google Patents
一种虚拟资源分配方法及装置 Download PDFInfo
- Publication number
- CN104461730B CN104461730B CN201310444885.XA CN201310444885A CN104461730B CN 104461730 B CN104461730 B CN 104461730B CN 201310444885 A CN201310444885 A CN 201310444885A CN 104461730 B CN104461730 B CN 104461730B
- Authority
- CN
- China
- Prior art keywords
- user
- level thread
- hardware resource
- hardware
- resource allocation
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例公开一种虚拟资源分配方法及装置,应用于计算机领域,能够避免进程上下文切换过程中对用户级线程的切换遗漏。该方法包括:在用户级线程挂起时,虚拟资源分配装置在用户级线程的控制数据块中保存所述用户级线程对应硬件资源;所述虚拟资源分配装置在所述用户级线程对应的轻量级进程的控制数据块中保存所述用户级线程对应的硬件资源。本发明的实施例应用于虚拟资源分配。
Description
技术领域
本发明涉及计算机,尤其涉及一种虚拟资源分配方法及装置。
背景技术
在进程上下文切换时,保存用户级线程的相关硬件状态。该方法被广泛的应用于事务性内存和确定性重放等硬件实现方法中。在上述应用中,需要区分不同用户级线程。例如在确定性重放中,需要检查来自不同用户级线程的访存冲突并将其记录,因此,在用户级线程发生切换时,需要保存并更新与用户线程相关的硬件资源。再例如在事务内存中,一个事务是属于一个用户级线程的,在用户级线程发生切换时,我们需要得知该事件的发生,并且保存该用户级线程事务相关的状态。否则,无法保证事务的原子性。
基于共享存储的多线程模型中的1-on-1模型中,用户级线程与轻量级进程之间是一一对应的关系,现有的方法,在保存用户级线程相关硬件资源的操作,是在进程上下文切换时发生的,在1-on-1的模型中,现有的方法是可行的。
但是,在基于共享存储的多线程模型中的M-on-N模型中,用户级线程与轻量级进程之间存在多种对应关系。其中,用户级线程,是通过用户库实现的。轻量级进程,是内核支持的用户级线程,与其它轻量级进程共享地址空间与进程资源。轻量级进程与内核态线程绑定。用户级线程通过与轻量级进程绑定获取处理器资源。内核不知道用户级线程的存在,用户级线程的切换可能发生在用户空间。而该切换的发生,内核无法得知,因此,在进程上下文切换时保存与用户级线程相关硬件资源的方法不够精确,会漏掉在用户级线程的切换,给事务内存、确定性重放及数据竞争检查等方法带来严重的准确性隐患。
发明内容
本发明实施例提供一种虚拟资源分配方法及装置,能够避免进程上下文切换过程中对用户级线程的切换遗漏,提高事务内存、确定性重放及数据竞争检查等方法的准确性。
第一方面,本发明实施例提供一种虚拟资源分配方法,包括:
在用户级线程挂起时,虚拟资源分配装置在用户级线程的控制数据块中保存所述用户级线程对应硬件资源;
所述虚拟资源分配装置在所述用户级线程对应的轻量级进程的控制数据块中保存所述用户级线程对应的硬件资源。
结合第一方面,在第一种可能的实现方式中,所述方法还包括:
所述虚拟资源分配装置读取所述用户级线程的控制数据块中保存的所述用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中;
所述虚拟资源分配装置读取所述轻量级进程的控制数据块中保存的所述用户级线程对应的硬件资源,并加载到所述硬件资源对应的硬件中。
结合第一方面和第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述虚拟资源分配装置在用户级线程的控制数据块中保存所述用户级线程对应硬件资源,具体包括:
所述虚拟资源分配装置在所述用户级线程的控制数据块中增加第一数据结构;
将所述用户级线程对应硬件资源保存至所述第一数据结构;
所述虚拟资源分配装置读取所述用户级线程的控制数据块中保存的所述用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中,具体包括:
所述虚拟资源分配装置在所述第一数据结构中读取所述用户级线程对应硬件资源,并加载到所述硬件资源对应硬件中。
结合第一方面和第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述虚拟资源分配装置在轻量级进程的控制数据块中保存所述用户级线程对应的硬件资源,具体包括:
所述虚拟资源分配装置在所述轻量级进程的控制数据块中增加第二数据结构;
将所述用户级线程对应硬件资源保存至所述第二数据结构;
所述虚拟资源分配装置读取所述轻量级进程的控制数据块中保存的所述用户级线程对应的硬件资源,并加载到所述硬件资源对应的硬件中,具体包括:
所述虚拟资源分配装置在所述第二数据结构中读取所述用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中。
结合第一方面,在第四种可能的实现方式中,所述方法还包括:
当所述用户级线程挂起时,所述虚拟资源分配装置在本地读取所述用户级线程的硬件资源。
结合第一方面,在第五种可能的实现方式中,所述方法还包括:
当所述轻量级进程挂起时,所述虚拟资源分配装置在本地读取所述轻量级进程绑定的所有用户级线程的硬件资源。
结合第一方面或第一方面任一一种可能的实现方式,在第六种可能的实现方式中,所述硬件资源包括:用户级线程对应的标量时钟、读集合和写集合或向量时钟。
第二方面,本发明实施例提供一种虚拟资源分配装置,包括:
第一保存单元,用于在用户级线程挂起时在用户级线程的控制数据块中保存所述用户级线程对应硬件资源;
第二保存单元,用于在所述用户级线程对应的轻量级进程的控制数据块中保存所述用户级线程对应的硬件资源。
结合第二方面,在第一种可能的实现方式中,所述装置还包括:
第一加载单元,用于读取所述第一保存单元在所述用户级线程的控制数据块中保存的所述用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中;
第二加载单元,用于读取所述第二保存单元在所述轻量级进程的控制数据块中保存的所述用户级线程对应的硬件资源,并加载到所述硬件资源对应的硬件中。
结合第二方面和第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一保存单元包括:
第一增加子单元,用于在所述用户级线程的控制数据块中增加第一数据结构;
第一保存子单元,用于将所述用户级线程对应硬件资源保存至所述第一增加子单元增加的所述第一数据结构;
所述第一加载单元,具体用于:
在所述第一增加子单元增加的所述第一数据结构中读取所述用户级线程对应硬件资源,并加载到相应的硬件中。
结合第二方面和第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述第二保存单元包括:
第二增加子单元,用于在所述轻量级进程的控制数据块中增加第二数据结构;
第二保存子单元,用于将所述用户级线程对应硬件资源保存至所述第二增加子单元增加的所述第二数据结构;
所述第二加载单元,具体用于:
在所述第二增加子单元增加的所述第二数据结构中读取所述用户级线程对应硬件资源,并加载到相应的硬件中。
结合第二方面,在第四种可能的实现方式中,所述装置还包括:
第一读取单元,用于当所述用户级线程挂起时,所述虚拟资源分配装置在本地读取所述用户级线程的硬件资源。
结合第二方面,在第五种可能的实现方式中,所述装置还包括:
第二读取单元,用于当所述轻量级进程挂起时,所述虚拟资源分配装置在本地读取所述轻量级进程绑定的所有用户级线程的硬件资源。
结合第二方面或第二方面的任意一种可能的实现方式,所述硬件资源包括:用户级线程对应的标量时钟、读集合和写集合或向量时钟。
本发明实施例提供的虚拟资源分配方法及装置,通过在用户空间和内核空间同时为用户级线程虚拟硬件资源,能够准确识别用户级线程,并准确的为用户级线程虚拟硬件资源,能够避免进程上下文切换过程中对用户级线程的切换遗漏,提高事务内存、确定性重放及数据竞争检查等方法的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明的实施例提供的一种虚拟资源分配方法的流程图示意图;
图2为为本发明的又一实施例提供的一种虚拟资源分配方法的流程图示意图;
图3为本发明实施例提供的一种虚拟资源分配装置的结构示意图;
图4为本发明又一实施例提供的一种虚拟资源分配装置的结构示意图;
图5为本发明另一实施例提供的一种虚拟资源分配装置的结构示意图;
图6为本发明再一实施例提供的一种虚拟资源分配装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
图1为本发明的实施例提供的一种虚拟资源分配方法的流程图示意图。本发明实施例适用于操作***中为用户级线程虚拟硬件资源,该方法通常由虚拟资源分配装置执行,该虚拟资源分配装置一般为计算机或计算机中的功能单元或模块。具体参考图1,可以包括以下步骤:
步骤10、在用户级线程挂起时,虚拟资源分配装置在用户级线程的控制数据块中保存用户级线程对应硬件资源。
步骤20、虚拟资源分配装置在用户级线程对应的轻量级进程的控制数据块中保存用户级线程对应的硬件资源。
以上步骤的序号并不代表各步骤之间时序的先后顺序,只是为了在实现上交代清楚各步骤的不同,例如步骤10也可以先于步骤20执行或与步骤20同时执行。
在M-on-N的多线程实现模型中,用户级线程的切换可能发生在用户空间,因此,除了需要在内核空间为用户级线程虚拟硬件资源还需要在用户空间为用户级线程虚拟硬件资源。当然本方案也适用于1-on-1的多线程实现模型,在1-on-1的多线程实现模型中,由于用户级线程都是与轻量级进程绑定的,而轻量级进程是内核调度的基本单元,因此,只需要内核空间为用户级线程虚拟硬件资源。
步骤10中,在用户级线程的控制数据块中保存用户级线程对应硬件资源是指,是指在用户空间保存用户级线程对应硬件资源,硬件资源可以包括:CPU(CentralProcessing Unit,中央处理器)、I/O(Input/Output,输入/输出)、文件、标量时钟、向量时钟、读集合、写集合、内存及指令数等资源。步骤20中,在轻量级进程的控制数据块中保存用户级线程对应的硬件资源,是指在内核空间保存用户级线程对应硬件资源。
用户级线程挂起分为两种情况:
第一种情况:在用户空间中,用户级线程挂起。
将用户级线程对应的硬件资源保存在用户级线程的控制数据块中,即步骤10。
第二种情况:在内核空间中随着与用户级线程绑定的轻量级进程的挂起,用户级线程挂起。
因为轻量级的进程挂起发生在内核态,内核不知道用户级线程的具体信息。但是,轻量级进程挂起以后,用户级线程也会挂起,并且用户级线程与轻量级进程的绑定关系不会变化,因此,我们将该用户级线程对应的硬件资源保存在轻量级进程的控制数据块中,即步骤20。
本方案,用户级线程挂起时,通过既在用户级线程的控制数据块中保存用户级线程对应硬件资源,也在轻量级进程的控制数据块中保存用户级线程对应的硬件资源,即同时在用户空间和内核空间同时为用户级线程虚拟硬件资源,可以准确识别用户级线程,并准确的为用户级线程虚拟硬件资源,提高了事务内存、数据竞争检查和确定性重放等方法的准确性。
当用户级线程重新调度时,需要恢复该用户级线程对应的硬件资源,参考图2,图2为本发明的又一实施例提供的一种虚拟资源分配方法的流程图示意图,本方案可以包括以下步骤:
步骤30、虚拟资源分配装置读取用户级线程的控制数据块中保存的用户级线程对应硬件资源,并加载到硬件资源对应的硬件中。
步骤40、虚拟资源分配装置读取轻量级进程的控制数据块中保存的用户级线程对应的硬件资源,并加载到硬件资源对应的硬件中。
恢复该用户级线程对应的硬件资源,分为两种情况:
第一种情况,在用户空间对用户级线程重新调度。
具体包括步骤30中,读取用户级线程的控制数据块中保存的用户级线程对应硬件资源,并加载到硬件资源对应的硬件中。
第二种情况,在内核空间对轻量级进程重新调度,此时与之绑定的用户级线程也会恢复调度执行。
具体包括步骤40中,读取轻量级进程的控制数据块中保存的用户级线程对应的硬件资源,并加载到硬件资源对应的硬件中。
本方案,在用户级线程重新调度时,通过既在在用户级线程的控制数据块中恢复用户级线程对应硬件资源,也在在轻量级进程的控制数据块中恢复用户级线程对应的硬件资源,即同时在在用户空间和内核空间同时恢复用户级线程对应的硬件资源,可以准确识别用户级线程,从而准确的为用户级线程恢复对应的硬件资源。
在上述方案基础上,虚拟资源分配装置在用户级线程的控制数据块中保存用户级线程对应硬件资源,可以包括以下步骤:
步骤101、虚拟资源分配装置在用户级线程的控制数据块中增加第一数据结构;
步骤102、将用户级线程对应硬件资源保存至第一数据结构。
其中,用户级线程的控制数据块中一般包括以下资源:
(1)线程号(Thread ID)
(2)寄存器状态(指令指针PC与堆栈指针SP)
(3)堆栈(Stack)
(4)信号屏蔽位(Signal Mask)
(5)优先级(Priority)
(6)用户级线程私有存储(Thread-local Storage)。
在用户级线程的控制数据块中增加第一数据结构,用于保存与用户级线程相关的硬件资源,即(7)第一新增数据结构,该第一新增数据结构,可以根据不同的应用分别对应不同的硬件资源。例如在事务内存应用中,对应读集合和写集合;在数据竞争检查应用中,对应向量时钟;在确定性重放应用中,对应标量时钟。
虚拟资源分配装置将用户级线程对应硬件资源保存至第一数据结构中,以在用户空间保存用户级线程对应硬件资源。
本方案通过第一数据结构,在用户空间保存用户级线程对应硬件资源。
在上述方案基础上,虚拟资源分配装置在轻量级进程的控制数据块中保存用户级线程对应的硬件资源,可以包括以下步骤:
步骤201、虚拟资源分配装置在轻量级进程的控制数据块中增加第二数据结构;
步骤202、将所述用户级线程对应硬件资源保存至第二数据结构。
其中,轻量级进程的控制数据块中一般包括以下资源:
(1)轻量级进程号(LWP ID)
(2)寄存器状态(指令指针PC与堆栈指针SP)
(3)信号屏蔽掩码Signal Mask
(4)可选的信号堆栈与不同堆栈的开关掩码(Alternate signal stack andmasks for alternate stack disable and onstack)
(5)用户虚拟时间报警(User and user+system virtual time alarms)
(6)用户态与***态CPU利用率(User time and system CPU usage)
(7)性能状态(Profiling state)
(8)调度优先级与分类(Scheduling class and priority)
(9)第二数据结构(New Feature hardware resource)
其中,在轻量级进程的控制数据块中增加(9)第二数据结构,用于保存与用户级线程相关的硬件资源,根据不同的应用该第二新增数据结构对应不同的硬件资源。例如在事务内存应用中,对应读集合和写集合;在数据竞争检查应用中,对应向量时钟;在确定性重放应用中,对应标量时钟。
虚拟资源分配装置将用户级线程对应硬件资源保存至第二数据结构中,以在内核空间保存用户级线程对应硬件资源。
本方案通过第二数据结构,在内核空间保存用户级线程对应硬件资源。
进一步可选的,在步骤10之前,该方案还包括:
当用户级线程挂起时,虚拟资源分配装置在本地读取用户级线程的硬件资源。
可选的,当用户级线程的挂起是由于轻量级进程挂起引起时,用户级线程挂起之后在步骤201之前还包括:虚拟资源分配装置在本地读取轻量级进程绑定的所有用户级线程的硬件资源。
相应地,当用户级线程恢复调度执行时,在用户空间,虚拟资源分配装置读取用户级线程的控制数据块中保存的用户级线程对应硬件资源,并加载到硬件资源对应的硬件中,可以包括:虚拟资源分配装置在第一数据结构中读取用户级线程对应硬件资源,并加载到硬件资源对应的硬件中。
在内核空间,虚拟资源分配装置读取轻量级进程的控制数据块中保存的用户级线程对应的硬件资源,并加载到硬件资源对应的硬件中,可以包括:虚拟资源分配装置在第二数据结构中读取用户级线程对应硬件资源,并加载到硬件资源对应的硬件中。
本方案,通过从第一数据结构中读取用户级线程对应硬件资源,以实现在用户空间恢复用户级线程对应硬件资源,通过在第二数据结构中读取用户级线程对应硬件资源,以实现在内核空间恢复用户级线程对应硬件资源,从而更准确地位用户级线程恢复硬件资源。
具体地,在确定性重放应用中,在上述方案基础上,当用户级线程挂起时包括以下步骤:
步骤1001、当用户级线程挂起时,虚拟资源分配装置在本地读取用户级线程的标量时钟。
可选的,当用户级线程的挂起是由于轻量级进程挂起引起时,步骤1001:具体为虚拟资源分配装置在本地读取轻量级进程绑定的所有用户级线程的标量时钟。
步骤1002、将用户级线程的标量时钟写入第一数据结构。
步骤1003、将轻量级进程下与所述轻量级进程绑定的用户级线程的标量时钟写入第二数据结构。
步骤1002实现在用户空间保存用户级线程对应硬件资源;步骤步骤1003实现在内核空间保存用户级线程对应硬件资源。在用户空间保存和在内核空间保存没有先后时间顺序。
其中,确定性重放中,为维护时间上下顺序关系,需要保存的硬件资源为标量时钟,因此当用户级线程挂起时,虚拟资源分配装置在本地读取用户级线程的标量时钟。虚拟资源分配装置可以在本地处理器的标量时钟寄存器中读取用户级线程的标量时钟。然后将该值写入第一数据结构,该第一数据结构可以记为Thread_ScalarClock(线程_标量时钟),以实现在用户空间保存用户级线程对应硬件资源。
当轻量级进程挂起时,虚拟资源分配装置可以在本地处理器的标量时钟寄存器中读取轻量级进程下所有用户级线程的标量时钟。然后将该值写入第二数据结构,该第二数据结构可以记为LWP_ScalarClock(轻量级进程_标量时钟),以实现在内核空间保存用户级线程对应硬件资源。
本方案,通过在本地读取用户级线程的标量时钟和轻量级进程下所有用户级线程的标量时钟,分别写入第一数据结构和第二数据结构,可以准确地保存用户级线程对应的硬件资源,从而准确地实现事务性重放方法。
相应地,在上述方案基础上,当用户级线程重新调度时,虚拟资源分配装置在第一数据结构中读取用户级线程对应硬件资源,并加载到相应的硬件中,可以包括以下步骤:
步骤1004、虚拟资源分配装置在第一数据结构中读取用户级线程的标量时钟。
步骤1005、将用户级线程的标量时钟加载到标量时钟对应的的硬件中。
当轻量级进程重新调度时,虚拟资源分配装置在第二数据结构中读取用户级线程对应硬件资源,并加载到相应的硬件中,可以包括以下步骤:
步骤1006、虚拟资源分配装置在第二数据结构中读取轻量级进程下所有用户级线程的标量时钟。
步骤1007、将轻量级进程下与轻量级进程绑定的用户级线程的标量时钟加载到标量时钟对应的硬件中。
步骤1004、步骤1005实现在用户空间恢复用户级线程对应硬件资源;步骤1006、步骤1007实现在内核空间恢复用户级线程对应硬件资源。在用户空间恢复和在内核空间恢复没有先后时间顺序。
其中,在确定性重放中,当用户级线程重新调度时,虚拟资源分配装置可以在用户级线程的控制数据块中的第一数据结构读取用户级线程的标量时钟值Thread_ScalarClock,然后将该值写入本地处理器的标量时钟寄存器,即加载到相应的硬件中。以实现在用户空间恢复用户级线程对应的硬件资源。
当轻量级进程重新调度时,虚拟资源分配装置可以在轻量级进程的控制数据块中的第二数据结构读取用户级线程的标量时钟值LWP_ScalarClock,然后将该值写入本地处理器的标量时钟寄存器,即加载到相应的硬件中。以实现在内核空间恢复用户级线程对应的硬件资源。
本方案,通过从第一数据结构和第二数据结构中,分别读取用户级线程的标量时钟和轻量级进程下所有用户级线程的标量时钟,并加载到相应的硬件,可以准确地恢复用户级线程对应的硬件资源,从而准确地实现确定性重放方法。
具体地,在事务内存应用中,在上述方案基础上,当用户级线程挂起时,包括以下步骤:
步骤2001、当用户级线程挂起时,虚拟资源分配装置在本地读取用户级线程的读集合和写集合;
可选的,当用户级线程的挂起是由于轻量级进程挂起引起时,步骤2001:具体为虚拟资源分配装置在本地读取轻量级进程绑定的所有用户级线程的读集合和写集合。
步骤2002、将用户级线程的读集合和写集合写入第一数据结构。
步骤2003、将轻量级进程下与轻量级进程绑定的用户级线程的读集合和写集合写入第二数据结构。
步骤2002实现在用户空间保存用户级线程对应硬件资源;步骤2003实现在内核空间保存用户级线程对应硬件资源。在用户空间保存和在内核空间保存没有先后时间顺序。
其中,事务内存中,为保证一个事务在存储层次上是原子执行,即,没有来自其它用户级线程的访存操作与事务内的访存操作发生数据交互,需要保存的硬件资源为读集合和写集合,因此当用户级线程挂起时,虚拟资源分配装置在本地读取用户级线程的读集合和写集合。虚拟资源分配装置可以在本地处理器的读写集合寄存器中读取用户级线程的读集合和写集合。然后将该值写入第一数据结构,该第一数据结构中的读集合和写集合可以分别记为Rset1和Wset1,以实现在用户空间保存用户级线程对应硬件资源。
当轻量级进程挂起时,虚拟资源分配装置可以在本地处理器的读写集合寄存器中读取轻量级进程下所有用户级线程的读集合和写集合。然后将该值写入第二数据结构,该第二数据结构的读集合和写集合可以分别记为Rset2和Wset2,以实现在内核空间保存用户级线程对应硬件资源。
本方案,通过在本地读取用户级线程的读集合和写集合和轻量级进程下所有用户级线程的读集合和写集合,分别写入第一数据结构和第二数据结构,可以准确地保存用户级线程对应的硬件资源,从而准确地实现事务内存方法。
相应地,在上述方案基础上,当用户级线程重新调度时,虚拟资源分配装置在第一数据结构中读取用户级线程对应硬件资源,并加载到相应的硬件中,可以包括以下步骤:
步骤2004、虚拟资源分配装置在第一数据结构中读取用户级线程的读集合和写集合;
步骤2005、将用户级线程的读集合和写集合加载到相应的硬件中。
当轻量级进程重新调度时,虚拟资源分配装置在第二数据结构中读取用户级线程对应硬件资源,并加载到相应的硬件中,可以包括以下步骤:
步骤2006、虚拟资源分配装置在第二数据结构中读取轻量级进程下所有用户级线程的读集合和写集合;
步骤2007、将轻量级进程下与轻量级进程绑定的用户级线程的读集合和写集合加载到相应的硬件中。
步骤2004、步骤2005实现在用户空间恢复用户级线程对应硬件资源;步骤2006、步骤2007实现在内核空间恢复用户级线程对应硬件资源。在用户空间恢复和在内核空间恢复没有先后时间顺序。
其中,在事务内存中,当用户级线程重新调度时,虚拟资源分配装置可以在用户级线程的控制数据块中的第一数据结构读取用户级线程的读集合和写集合,即Rset1和Wset1,然后将该值写入本地处理器的读写集合寄存器,即加载到相应的硬件中。以实现在用户空间恢复用户级线程对应的硬件资源。
当轻量级进程重新调度时,虚拟资源分配装置可以在轻量级进程的控制数据块中的第二数据结构读取用户级线程的读集合和写集合,即Rset2和Wset2,然后将该值写入本地处理器的读写集合寄存器,即加载到相应的硬件中。以实现在内核空间恢复用户级线程对应的硬件资源。
本方案,通过从第一数据结构和第二数据结构中,分别取用户级线程的读集合与写集合和轻量级进程下所有用户级线程的读集合与写集合,并加载到相应的硬件,可以准确地恢复用户级线程对应的硬件资源,从而准确地实现事务内存方法。
具体地,在数据竞争检查应用中,在上述方案基础上,当用户级线程挂起时,可以包括以下步骤:
步骤3001、虚拟资源分配装置在本地读取用户级线程的向量时钟;
可选的,当用户级线程的挂起是由于轻量级进程挂起引起时,步骤3001:具体为虚拟资源分配装置在本地读取轻量级进程绑定的所有用户级线程的向量时钟。
步骤3002、将用户级线程的向量时钟写入第一数据结构。
步骤3003、将轻量级进程下与所述轻量级进程绑定的用户级线程的向量时钟写入第二数据结构。
步骤3002实现在用户空间保存用户级线程对应硬件资源;步骤3003实现在内核空间保存用户级线程对应硬件资源。在用户空间保存和在内核空间保存没有先后时间顺序。
其中,数据竞争检查中,需要保存的硬件资源为向量时钟,因此当用户级线程挂起时,虚拟资源分配装置在本地读取用户级线程的向量时钟。虚拟资源分配装置可以在本地处理器的向量时钟寄存器中读取用户级线程的向量时钟,然后将该值写入第一数据结构,该第一数据结构可以记为Thread_VectorClock(线程_向量时钟),以实现在用户空间保存用户级线程对应硬件资源。
当轻量级进程挂起时,除现有技术的操作外,虚拟资源分配装置可以在本地处理器的向量时钟寄存器中读取轻量级进程下所有用户级线程的向量时钟。然后将该值写入第二数据结构,该第二数据结构可以记为LWP_VectorScalarClock(轻量级进程_向量时钟),以在内核空间保存用户级线程对应硬件资源。
本方案,通过在本地读取用户级线程的向量时钟和轻量级进程下所有用户级线程的向量时钟,分别写入第一数据结构和第二数据结构,可以准确地保存用户级线程对应的硬件资源,从而准确地实现数据竞争检查方法。
相应地,在上述方案基础上,当用户级线程重新调度时,虚拟资源分配装置在第一数据结构中读取用户级线程对应硬件资源,并加载到相应的硬件中,可以包括以下步骤:
步骤3004、当用户级线程重新调度时,虚拟资源分配装置在第一数据结构中读取用户级线程的向量时钟;
步骤3005、将用户级线程的向量时钟加载到相应的硬件中。
当轻量级进程重新调度时,虚拟资源分配装置在第二数据结构中读取用户级线程对应硬件资源,并加载到相应的硬件中,可以包括以下步骤:
步骤3006、当轻量级进程重新调度时,虚拟资源分配装置在第二数据结构中读取轻量级进程下所有用户级线程的向量时钟;
步骤3007、将轻量级进程下与所述轻量级进程绑定的用户级线程的向量时钟加载到相应的硬件中。
步骤3004、步骤3005实现在用户空间恢复用户级线程对应硬件资源;步骤3006、步骤3007实现在内核空间恢复用户级线程对应硬件资源。在用户空间恢复和在内核空间恢复没有先后时间顺序。
其中,在数据竞争检查中,当用户级线程重新调度时,除现有技术的操作,虚拟资源分配装置可以在用户级线程的控制数据块中的第一数据结构读取用户级线程的向量时钟值Thread_VectorClock,然后将该值写入本地处理器的向量时钟寄存器,即加载到相应的硬件中。以实现在用户空间恢复用户级线程对应的硬件资源。
当轻量级进程重新调度时,除现有技术的操作,虚拟资源分配装置可以在轻量级进程的控制数据块中的第二数据结构读取用户级线程的向量时钟值LWP_VectorClock,然后将该值写入本地处理器的向量时钟寄存器,即加载到相应的硬件中。以实现在内核空间恢复用户级线程对应的硬件资源。
本方案,通过从第一数据结构和第二数据结构中,分别读取用户级线程的向量时钟和轻量级进程下所有用户级线程的向量时钟,并加载到相应的硬件,可以准确地恢复用户级线程对应的硬件资源,从而准确地实现数据竞争方法。
图3为本发明实施例提供的一种虚拟资源分配装置的结构示意图,该虚拟资源分配装置用于实现上述实施例的虚拟资源分配方法,参考图3,该虚拟资源分配装置包括:第一保存单元11和第二保存单元21。
其中,第一保存单元11,用于在用户级线程挂起时在用户级线程的控制数据块中保存所述用户级线程对应硬件资源。
第二保存单元21,用于在所述用户级线程对应的轻量级进程的控制数据块中保存所述用户级线程对应的硬件资源。
在上述方案基础上,该装置还可以优选包括:第一加载单元31和第二加载单元41。参考图4所示,图4为本发明又一实施例提供的一种虚拟资源分配装置的结构示意图。
其中,第一加载单元31,用于读取第一保存单元11在用户级线程的控制数据块中保存的用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中。
第二加载单元41,用于读取第二保存单元21在轻量级进程的控制数据块中保存的用户级线程对应的硬件资源,并加载到所述硬件资源对应的硬件中。
进一步地,第一保存单元11可以包括:第一增加子单元111和第一保存子单元112。
其中,第一增加子单元111,用于在用户级线程的控制数据块中增加第一数据结构;
第一保存子单元112,用于将用户级线程对应硬件资源保存至第一增加子单元111增加的第一数据结构;
具体地,第一加载单元31,具体用于:
在第一增加子单元111增加的第一数据结构中读取用户级线程对应硬件资源,并加载到相应的硬件中。
第二保存单元21可以包括:第二增加子单元211和第二保存子单元212。
第二增加子单元211,用于在轻量级进程的控制数据块中增加第二数据结构;
第二保存子单元212,用于将用户级线程对应硬件资源保存至第二增加子单元211增加的第二数据结构。
第二加载单元41,具体用于:
在第二增加子单元211增加的第二数据结构中读取用户级线程对应硬件资源,并加载到相应的硬件中。
本方案,用户级线程挂起时,通过第一保存单元既在用户级线程的控制数据块中保存用户级线程对应硬件资源,通过第二保存单元也在轻量级进程的控制数据块中保存用户级线程对应的硬件资源,即同时在用户空间和内核空间同时为用户级线程虚拟硬件资源,可以准确识别用户级线程,并准确的为用户级线程虚拟硬件资源,提高了事务内存、数据竞争检查和确定性重放等方法的准确性。
进一步可选的,参照图5所示,图5为本发明另一实施例提供的一种虚拟资源分配装置的结构示意图。虚拟资源分配装置还包括:
第一读取单元51a,用于当用户级线程挂起时,在本地读取用户级线程的硬件资源。
第二读取单元51b,用于当轻量级进程挂起时,在本地读取轻量级进程绑定的所有用户级线程的硬件资源。
可选的,硬件资源包括:用户级线程对应的标量时钟、读集合和写集合或向量时钟。
图6为本发明再一实施例提供的一种虚拟资源分配装置的结构示意图。该虚拟资源分配装置用于实现上述方法实施例提供的虚拟资源分配装置方法,当然该虚拟资源分配装置可以为计算机或计算机上的功能实体,包括至少一个处理器61、存储器62、及总线63,总线63用于实现处理器61、存储器62之间的连接及通信,存储器62用于存储处理器61执行的程序代码及数据,
该总线63可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等,此处并不限定。该总线63可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。其中:
存储器62用于存储数据或可执行程序代码,其中程序代码包括计算机操作指令,具体可以为:操作***、应用程序等。存储器62可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器61可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
处理器61用于通过执行存储器62中的程序代码实现上述实施例中的虚拟资源分配方法,具体包括:
在用户级线程挂起时,在用户级线程的控制数据块中保存用户级线程对应硬件资源;
在用户级线程对应的轻量级进程的控制数据块中保存用户级线程对应的硬件资源。
本方案,用户级线程挂起时,通过既在用户级线程的控制数据块中保存用户级线程对应硬件资源,也在轻量级进程的控制数据块中保存用户级线程对应的硬件资源,即同时在用户空间和内核空间同时为用户级线程虚拟硬件资源,可以准确识别用户级线程,并准确的为用户级线程虚拟硬件资源,提高了事务内存、数据竞争检查和确定性重放等方法的准确性。
在上述方案基础上,处理器61还用于:
读取所述用户级线程的控制数据块中保存的用户级线程对应硬件资源,并加载到硬件资源对应的硬件中;
读取轻量级进程的控制数据块中保存的用户级线程对应的硬件资源,并加载到硬件资源对应的硬件中。
本方案,在用户级线程重新调度时,通过既在在用户级线程的控制数据块中恢复用户级线程对应硬件资源,也在在轻量级进程的控制数据块中恢复用户级线程对应的硬件资源,即同时在在用户空间和内核空间同时恢复用户级线程对应的硬件资源,可以准确识别用户级线程,从而准确的为用户级线程恢复对应的硬件资源。
进一步可选的,处理器61具体用于:
在用户级线程的控制数据块中增加第一数据结构;
将用户级线程对应硬件资源保存至第一数据结构;
在第一数据结构中读取用户级线程对应硬件资源,并加载到硬件资源对应硬件中。
进一步可选的,处理器61具体用于:
在轻量级进程的控制数据块中增加第二数据结构;
将用户级线程对应硬件资源保存至第二数据结构;
在第二数据结构中读取用户级线程对应硬件资源,并加载到硬件资源对应的硬件中。
本方案,通过从第一数据结构中读取用户级线程对应硬件资源,以实现在用户空间恢复用户级线程对应硬件资源,通过在第二数据结构中读取用户级线程对应硬件资源,以实现在内核空间恢复用户级线程对应硬件资源,从而更准确地位用户级线程恢复硬件资源。
进一步的处理器61还用于当所述用户级线程挂起时,在本地读取所述用户级线程的硬件资源;
或者,当所述轻量级进程挂起时,在本地读取所述轻量级进程绑定的所有用户级线程的硬件资源。
可选的,硬件资源包括:用户级线程对应的标量时钟、读集合和写集合或向量时钟。
本方案,通过在本地读取用户级线程的向量时钟和轻量级进程下所有用户级线程的向量时钟,分别写入第一数据结构和第二数据结构,可以准确地保存用户级线程对应的硬件资源,从而准确地实现数据竞争检查方法。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本发明所使用的,盘(Disk)和碟(disc)包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (14)
1.一种虚拟资源分配方法,其特征在于,包括:
在用户级线程挂起时,虚拟资源分配装置在用户级线程的控制数据块中保存所述用户级线程对应硬件资源;
所述虚拟资源分配装置在所述用户级线程对应的轻量级进程的控制数据块中保存所述用户级线程对应硬件资源。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述虚拟资源分配装置读取所述用户级线程的控制数据块中保存的所述用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中;
所述虚拟资源分配装置读取所述轻量级进程的控制数据块中保存的所述用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中。
3.根据权利要求2所述的方法,其特征在于,所述虚拟资源分配装置在用户级线程的控制数据块中保存所述用户级线程对应硬件资源,具体包括:
所述虚拟资源分配装置在所述用户级线程的控制数据块中增加第一数据结构;
将所述用户级线程对应硬件资源保存至所述第一数据结构;
所述虚拟资源分配装置读取所述用户级线程的控制数据块中保存的所述用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中,具体包括:
所述虚拟资源分配装置在所述第一数据结构中读取所述用户级线程对应硬件资源,并加载到所述硬件资源对应硬件中。
4.根据权利要求2所述的方法,其特征在于,所述虚拟资源分配装置在所述用户级线程对应的轻量级进程的控制数据块中保存所述用户级线程对应硬件资源,具体包括:
所述虚拟资源分配装置在所述轻量级进程的控制数据块中增加第二数据结构;
将所述用户级线程对应硬件资源保存至所述第二数据结构;
所述虚拟资源分配装置读取所述轻量级进程的控制数据块中保存的所述用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中,具体包括:
所述虚拟资源分配装置在所述第二数据结构中读取所述用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述用户级线程挂起时,所述虚拟资源分配装置在本地读取所述用户级线程的硬件资源。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述轻量级进程挂起时,所述虚拟资源分配装置在本地读取所述轻量级进程绑定的所有用户级线程的硬件资源。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述硬件资源包括:用户级线程对应的标量时钟、读集合和写集合或向量时钟。
8.一种虚拟资源分配装置,其特征在于,包括:
第一保存单元,用于在用户级线程挂起时在用户级线程的控制数据块中保存所述用户级线程对应硬件资源;
第二保存单元,用于在所述用户级线程对应的轻量级进程的控制数据块中保存所述用户级线程对应硬件资源。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第一加载单元,用于读取所述第一保存单元在所述用户级线程的控制数据块中保存的所述用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中;
第二加载单元,用于读取所述第二保存单元在所述轻量级进程的控制数据块中保存的所述用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中。
10.根据权利要求9所述的装置,其特征在于,所述第一保存单元包括:
第一增加子单元,用于在所述用户级线程的控制数据块中增加第一数据结构;
第一保存子单元,用于将所述用户级线程对应硬件资源保存至所述第一增加子单元增加的所述第一数据结构;
所述第一加载单元,具体用于:
在所述第一增加子单元增加的所述第一数据结构中读取所述用户级线程对应硬件资源,并加载到相应的硬件中。
11.根据权利要求9所述的装置,其特征在于,所述第二保存单元包括:
第二增加子单元,用于在所述轻量级进程的控制数据块中增加第二数据结构;
第二保存子单元,用于将所述用户级线程对应硬件资源保存至所述第二增加子单元增加的所述第二数据结构;
所述第二加载单元,具体用于:
在所述第二增加子单元增加的所述第二数据结构中读取所述用户级线程对应硬件资源,并加载到相应的硬件中。
12.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第一读取单元,用于当所述用户级线程挂起时,所述虚拟资源分配装置在本地读取所述用户级线程的硬件资源。
13.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二读取单元,用于当所述轻量级进程挂起时,所述虚拟资源分配装置在本地读取所述轻量级进程绑定的所有用户级线程的硬件资源。
14.根据权利要求8-13任一项所述的装置,其特征在于,所述硬件资源包括:用户级线程对应的标量时钟、读集合和写集合或向量时钟。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310444885.XA CN104461730B (zh) | 2013-09-22 | 2013-09-22 | 一种虚拟资源分配方法及装置 |
PCT/CN2014/086352 WO2015039582A1 (zh) | 2013-09-22 | 2014-09-12 | 一种虚拟资源分配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310444885.XA CN104461730B (zh) | 2013-09-22 | 2013-09-22 | 一种虚拟资源分配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461730A CN104461730A (zh) | 2015-03-25 |
CN104461730B true CN104461730B (zh) | 2017-11-07 |
Family
ID=52688236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310444885.XA Active CN104461730B (zh) | 2013-09-22 | 2013-09-22 | 一种虚拟资源分配方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104461730B (zh) |
WO (1) | WO2015039582A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677487B (zh) * | 2016-01-12 | 2019-02-15 | 浪潮通用软件有限公司 | 一种控制资源占用的方法及装置 |
US10430245B2 (en) | 2017-03-27 | 2019-10-01 | Hong Kong Applied Science And Technology Research Institute Co., Ltd. | Systems and methods for dynamic low latency optimization |
CN108696373B (zh) * | 2017-04-06 | 2019-09-20 | 华为技术有限公司 | 虚拟资源分配方法、nfvo和*** |
CN107329812B (zh) * | 2017-06-09 | 2018-07-06 | 腾讯科技(深圳)有限公司 | 一种运行协程的方法和装置 |
CN115586967B (zh) * | 2022-10-10 | 2023-04-18 | 河南省人民医院 | 一种成人呼吸监测设备及*** |
CN116028118B (zh) * | 2023-01-31 | 2023-07-25 | 南京砺算科技有限公司 | 保障数据一致性的指令执行方法及图形处理器、介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1938686A (zh) * | 2004-03-31 | 2007-03-28 | 英特尔公司 | 提供用户级多线程操作的方法和*** |
CN101030152A (zh) * | 2007-03-20 | 2007-09-05 | 华为技术有限公司 | 基于伪同步方式的操作控制方法及装置 |
CN101317155A (zh) * | 2005-12-27 | 2008-12-03 | 英特尔公司 | 本地用户级线程数据的数据结构和管理技术 |
CN101556545A (zh) * | 2009-05-22 | 2009-10-14 | 北京星网锐捷网络技术有限公司 | 一种实现进程支持的方法、装置和多线程*** |
CN103049328A (zh) * | 2012-11-06 | 2013-04-17 | 苏州懿源宏达知识产权代理有限公司 | 计算机***中内存资源分配方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2881239B1 (fr) * | 2005-01-24 | 2007-03-23 | Meiosys Soc Par Actions Simpli | Procede de gestion d'acces a des ressources partagees dans un environnement multi-processeurs |
US8108880B2 (en) * | 2007-03-07 | 2012-01-31 | International Business Machines Corporation | Method and system for enabling state save and debug operations for co-routines in an event-driven environment |
WO2010095182A1 (ja) * | 2009-02-17 | 2010-08-26 | パナソニック株式会社 | マルチスレッドプロセッサ及びデジタルテレビシステム |
-
2013
- 2013-09-22 CN CN201310444885.XA patent/CN104461730B/zh active Active
-
2014
- 2014-09-12 WO PCT/CN2014/086352 patent/WO2015039582A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1938686A (zh) * | 2004-03-31 | 2007-03-28 | 英特尔公司 | 提供用户级多线程操作的方法和*** |
CN101317155A (zh) * | 2005-12-27 | 2008-12-03 | 英特尔公司 | 本地用户级线程数据的数据结构和管理技术 |
CN101030152A (zh) * | 2007-03-20 | 2007-09-05 | 华为技术有限公司 | 基于伪同步方式的操作控制方法及装置 |
CN101556545A (zh) * | 2009-05-22 | 2009-10-14 | 北京星网锐捷网络技术有限公司 | 一种实现进程支持的方法、装置和多线程*** |
CN103049328A (zh) * | 2012-11-06 | 2013-04-17 | 苏州懿源宏达知识产权代理有限公司 | 计算机***中内存资源分配方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2015039582A1 (zh) | 2015-03-26 |
CN104461730A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461730B (zh) | 一种虚拟资源分配方法及装置 | |
CN100585573C (zh) | 数据处理***及其中执行存储器管理的方法 | |
US10540250B2 (en) | Reducing storage requirements for storing memory addresses and values | |
US8949529B2 (en) | Customizing function behavior based on cache and scheduling parameters of a memory argument | |
JP5647203B2 (ja) | メモリページ管理 | |
CN104364771B (zh) | 修改来自较小特权状态的运行时间仪表控制 | |
US8281318B2 (en) | Systems and methods for inter process communication based on queues | |
CN105074671A (zh) | 用于在内核模块和设备驱动程序中检测并发编程错误的方法和*** | |
US20150169471A1 (en) | Data staging area | |
CN108415853A (zh) | 一种垃圾回收的方法、装置及存储设备 | |
CN109086193A (zh) | 监控方法、装置及*** | |
CN101145113A (zh) | 一种多线程访问间接寄存器的调度方法 | |
CN114265670B (zh) | 一种内存块整理方法、介质及计算设备 | |
CN106484313A (zh) | 数据信息备份方法、数据备份方法及装置 | |
CN103729166B (zh) | 程序的线程关系确定方法、设备及*** | |
US10528257B2 (en) | Method and apparatus for reproducing an I/O operation of a storage system | |
WO2018022303A1 (en) | Capturing commands in a multi-engine graphics processing unit | |
CN104866285A (zh) | 可编程序控制器 | |
CN110536283A (zh) | 终端标识获取方法、装置、电子设备和介质 | |
US10496524B2 (en) | Separating test coverage in software processes using shared memory | |
US8930661B2 (en) | Operation processing device and method of detecting memory leak | |
US10055304B2 (en) | In-memory continuous data protection | |
CN109144844A (zh) | 追踪方法、装置、设备和机器可读介质 | |
CN107632792A (zh) | 云数据***中管理虚拟磁盘的方法和装置 | |
US9251023B2 (en) | Implementing automated memory address recording in constrained random test generation for verification of processor hardware designs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |