一种虚拟资源分配方法及装置制造方法及图纸

技术编号:11211084 阅读:77 留言:0更新日期:2015-03-26 20:36
本发明专利技术实施例公开一种虚拟资源分配方法及装置,应用于计算机领域,能够避免进程上下文切换过程中对用户级线程的切换遗漏。该方法包括:在用户级线程挂起时,虚拟资源分配装置在用户级线程的控制数据块中保存所述用户级线程对应硬件资源;所述虚拟资源分配装置在所述用户级线程对应的轻量级进程的控制数据块中保存所述用户级线程对应的硬件资源。本发明专利技术的实施例应用于虚拟资源分配。

【技术实现步骤摘要】
一种虚拟资源分配方法及装置
本专利技术涉及计算机,尤其涉及一种虚拟资源分配方法及装置。
技术介绍
在进程上下文切换时,保存用户级线程的相关硬件状态。该方法被广泛的应用于事务性内存和确定性重放等硬件实现方法中。在上述应用中,需要区分不同用户级线程。例如在确定性重放中,需要检查来自不同用户级线程的访存冲突并将其记录,因此,在用户级线程发生切换时,需要保存并更新与用户线程相关的硬件资源。再例如在事务内存中,一个事务是属于一个用户级线程的,在用户级线程发生切换时,我们需要得知该事件的发生,并且保存该用户级线程事务相关的状态。否则,无法保证事务的原子性。 基于共享存储的多线程模型中的1-on-l模型中,用户级线程与轻量级进程之间是一一对应的关系,现有的方法,在保存用户级线程相关硬件资源的操作,是在进程上下文切换时发生的,在1-on-l的模型中,现有的方法是可行的。 但是,在基于共享存储的多线程模型中的M-on-N模型中,用户级线程与轻量级进程之间存在多种对应关系。其中,用户级线程,是通过用户库实现的。轻量级进程,是内核支持的用户级线程,与其它轻量级进程共享地址空间与进程资源。轻量级进程与内核态线程绑定。用户级线程通过与轻量级进程绑定获取处理器资源。内核不知道用户级线程的存在,用户级线程的切换可能发生在用户空间。而该切换的发生,内核无法得知,因此,在进程上下文切换时保存与用户级线程相关硬件资源的方法不够精确,会漏掉在用户级线程的切换,给事务内存、确定性重放及数据竞争检查等方法带来严重的准确性隐患。
技术实现思路
本专利技术实施例提供一种虚拟资源分配方法及装置,能够避免进程上下文切换过程中对用户级线程的切换遗漏,提高事务内存、确定性重放及数据竞争检查等方法的准确性。 第一方面,本专利技术实施例提供一种虚拟资源分配方法,包括: 在用户级线程挂起时,虚拟资源分配装置在用户级线程的控制数据块中保存所述用户级线程对应硬件资源; 所述虚拟资源分配装置在所述用户级线程对应的轻量级进程的控制数据块中保存所述用户级线程对应的硬件资源。 结合第一方面,在第一种可能的实现方式中,所述方法还包括: 所述虚拟资源分配装置读取所述用户级线程的控制数据块中保存的所述用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中; 所述虚拟资源分配装置读取所述轻量级进程的控制数据块中保存的所述用户级线程对应的硬件资源,并加载到所述硬件资源对应的硬件中。 结合第一方面和第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述虚拟资源分配装置在用户级线程的控制数据块中保存所述用户级线程对应硬件资源,具体包括: 所述虚拟资源分配装置在所述用户级线程的控制数据块中增加第一数据结构; 将所述用户级线程对应硬件资源保存至所述第一数据结构; 所述虚拟资源分配装置读取所述用户级线程的控制数据块中保存的所述用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中,具体包括: 所述虚拟资源分配装置在所述第一数据结构中读取所述用户级线程对应硬件资源,并加载到所述硬件资源对应硬件中。 结合第一方面和第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述虚拟资源分配装置在轻量级进程的控制数据块中保存所述用户级线程对应的硬件资源,具体包括: 所述虚拟资源分配装置在所述轻量级进程的控制数据块中增加第二数据结构; 将所述用户级线程对应硬件资源保存至所述第二数据结构; 所述虚拟资源分配装置读取所述轻量级进程的控制数据块中保存的所述用户级线程对应的硬件资源,并加载到所述硬件资源对应的硬件中,具体包括: 所述虚拟资源分配装置在所述第二数据结构中读取所述用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中。 结合第一方面,在第四种可能的实现方式中,所述方法还包括: 当所述用户级线程挂起时,所述虚拟资源分配装置在本地读取所述用户级线程的硬件资源。 结合第一方面,在第五种可能的实现方式中,所述方法还包括: 当所述轻量级进程挂起时,所述虚拟资源分配装置在本地读取所述轻量级进程绑定的所有用户级线程的硬件资源。 结合第一方面或第一方面任种可能的实现方式,在第六种可能的实现方式中,所述硬件资源包括:用户级线程对应的标量时钟、读集合和写集合或向量时钟。 第二方面,本专利技术实施例提供一种虚拟资源分配装置,包括: 第一保存单元,用于在用户级线程挂起时在用户级线程的控制数据块中保存所述用户级线程对应硬件资源; 第二保存单元,用于在所述用户级线程对应的轻量级进程的控制数据块中保存所述用户级线程对应的硬件资源。 结合第二方面,在第一种可能的实现方式中,所述装置还包括: 第一加载单元,用于读取所述第一保存单元在所述用户级线程的控制数据块中保存的所述用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中; 第二加载单元,用于读取所述第二保存单元在所述轻量级进程的控制数据块中保存的所述用户级线程对应的硬件资源,并加载到所述硬件资源对应的硬件中。 结合第二方面和第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一保存单元包括: 第一增加子单元,用于在所述用户级线程的控制数据块中增加第一数据结构; 第一保存子单元,用于将所述用户级线程对应硬件资源保存至所述第一增加子单元增加的所述第一数据结构; 所述第一加载单元,具体用于: 在所述第一增加子单元增加的所述第一数据结构中读取所述用户级线程对应硬件资源,并加载到相应的硬件中。 结合第二方面和第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述第二保存单元包括: 第二增加子单元,用于在所述轻量级进程的控制数据块中增加第二数据结构; 第二保存子单元,用于将所述用户级线程对应硬件资源保存至所述第二增加子单元增加的所述第二数据结构; 所述第二加载单元,具体用于: 在所述第二增加子单元增加的所述第二数据结构中读取所述用户级线程对应硬件资源,并加载到相应的硬件中。 结合第二方面,在第四种可能的实现方式中,所述装置还包括: 第一读取单元,用于当所述用户级线程挂起时,所述虚拟资源分配装置在本地读取所述用户级线程的硬件资源。 结合第二方面,在第五种可能的实现方式中,所述装置还包括: 第二读取单元,用于当所述轻量级进程挂起时,所述虚拟资源分配装置在本地读取所述轻量级进程绑定的所有用户级线程的硬件资源。 结合第二方面或第二方面的任意一种可能的实现方式,所述硬件资源包括:用户级线程对应的标量时钟、读集合和写集合或向量时钟。 本专利技术实施例提供的虚拟资源分配方法及装置,通过在用户空间和内核空间同时为用户级线程虚拟硬件资源,能够准确识别用户级线程,并准确的为用户级线程虚拟硬件资源,能够避免进程上下文切换过程中对用户级线程的切换遗漏,提高事务内存、确定性重放及数据竞争检查等方法的准确性。 【附图说明】 为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。 图1为本专利技术的实施例提供的一种虚拟资源分配方法的流程图示意图; 图2为为本专利技术的又一实施例提供的一种虚拟资源分配方法的流程图示本文档来自技高网...
一种虚拟资源分配方法及装置

【技术保护点】
一种虚拟资源分配方法,其特征在于,包括:在用户级线程挂起时,虚拟资源分配装置在用户级线程的控制数据块中保存所述用户级线程对应硬件资源;所述虚拟资源分配装置在所述用户级线程对应的轻量级进程的控制数据块中保存所述用户级线程对应的硬件资源。

【技术特征摘要】
1.一种虚拟资源分配方法,其特征在于,包括: 在用户级线程挂起时,虚拟资源分配装置在用户级线程的控制数据块中保存所述用户级线程对应硬件资源; 所述虚拟资源分配装置在所述用户级线程对应的轻量级进程的控制数据块中保存所述用户级线程对应的硬件资源。2.根据权利要求1所述的虚拟资源分配方法,其特征在于,所述方法还包括: 所述虚拟资源分配装置读取所述用户级线程的控制数据块中保存的所述用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中; 所述虚拟资源分配装置读取所述轻量级进程的控制数据块中保存的所述用户级线程对应的硬件资源,并加载到所述硬件资源对应的硬件中。3.根据权利要求1或2所述的方法,其特征在于,所述虚拟资源分配装置在用户级线程的控制数据块中保存所述用户级线程对应硬件资源,具体包括: 所述虚拟资源分配装置在所述用户级线程的控制数据块中增加第一数据结构; 将所述用户级线程对应硬件资源保存至所述第一数据结构; 所述虚拟资源分配装置读取所述用户级线程的控制数据块中保存的所述用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中,具体包括: 所述虚拟资源分配装置在所述第一数据结构中读取所述用户级线程对应硬件资源,并加载到所述硬件资源对应硬件中。4.根据权利要求1或2所述的方法,其特征在于,所述虚拟资源分配装置在轻量级进程的控制数据块中保存所述用户级线程对应的硬件资源,具体包括: 所述虚拟资源分配装置在所述轻量级进程的控制数据块中增加第二数据结构; 将所述用户级线程对应硬件资源保存至所述第二数据结构; 所述虚拟资源分配装置读取所述轻量级进程的控制数据块中保存的所述用户级线程对应的硬件资源,并加载到所述硬件资源对应的硬件中,具体包括: 所述虚拟资源分配装置在所述第二数据结构中读取所述用户级线程对应硬件资源,并加载到所述硬件资源对应的硬件中。5.根据权利要求1所述的方法,其特征在于,所述方法还包括: 当所述用户级线程挂起时,所述虚拟资源分配装置在本地读取所述用户级线程的硬件资源。6.根据权利要求1所述的方法,其特征在于,所述方法还包括: 当所述轻量级进程挂起时,所述虚拟资源分配装置在本地读取所述轻量级进程绑定的所有用户级线程的硬件资源。7.根据权利要求1-6...

【专利技术属性】
技术研发人员:唐士斌唐志敏宋风龙叶笑春
申请(专利权)人:华为技术有限公司中国科学院计算技术研究所
类型:发明
国别省市:广东;44

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

1