CN104765613A - 一种虚拟化环境下面向任务并行编程模型的优化方法 - Google Patents
一种虚拟化环境下面向任务并行编程模型的优化方法 Download PDFInfo
- Publication number
- CN104765613A CN104765613A CN201510187523.6A CN201510187523A CN104765613A CN 104765613 A CN104765613 A CN 104765613A CN 201510187523 A CN201510187523 A CN 201510187523A CN 104765613 A CN104765613 A CN 104765613A
- Authority
- CN
- China
- Prior art keywords
- thread
- accelerated
- candidate
- injured
- promoter
- 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.)
- Granted
Links
Abstract
本发明公开了一种虚拟化环境下面向任务并行编程模型的优化方法;在位于客户虚拟机的前端监控部分获取任务并行编程模型中失败的窃取操作;在位于虚拟机监控器的后端加速部分根据加速发起者和被加速候选者的运行状态和所在物理CPU的信息,做出是否执行加速的决策。若执行加速,将加速发起者的剩余时间片提供给被加速候选者,当被加速候选者被虚拟机监控器抢占(时间片耗尽或被阻塞)时,若被加速候选者处于可运行状态,恢复其原本的调度路径;本发明为现有任务并行编程模型增加了针对虚拟化环境的优化,减少了运行小偷线程的虚拟CPU对计算资源的浪费,降低了运行有用线程的虚拟CPU的调度延时,从而实现将物理计算资源最大化地投入到有效计算中。
Description
技术领域
本发明属于虚拟化与并行程序优化技术领域,更具体地,涉及一种虚拟化环境下面向任务并行编程模型的优化方法。
背景技术
随着处理器内核数量的增加,计算机编程模式由传统串行编程模式向新型并行编程模式转变,以发挥出于内核数量的增长一致的实际效果;近年来,任务并行编程模型被广泛用于开发并行应用,旨在简化并行编程和提高多核利用率。
任务并行编程模型的核心技术是任务窃取调度,即每个处理器核对应一个线程,每个线程维护一个双端队列,该队列的尾部用于压入准备好的任务或弹出已经执行完的任务;当一个线程的双端队列为空时,该线程会转化为小偷线程,然后随机选择一个线程为受害线程,并试图从该受害线程的双端队列头部窃取任务来执行。若窃取失败,则随机选择另一个线程来窃取,如此反复,直到成功窃取到任务或本地队列非空为止。
当前,随着虚拟化技术的发展,越来越多的并行应用运行在虚拟机中,并且单台物理机通常被多个虚拟机共享。如果任务并行编程模型中的一个小偷线程持续窃取任务失败,执行该线程的虚拟CPU会浪费计算资源。现有的任务并行编程模型,如Cilk++、TBB和BWS等,在减少小偷线程对计算资源浪费的方面,缺乏针对虚拟化环境的优化。所以,任务并行编程模型在虚拟化环境下面临着性能低下的问题。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种虚拟化环境下面向任务并行编程模型的优化方法,其目的在于,利用运行小偷线程的虚拟CPU时间片,加速运行有用线程的虚拟CPU,由此减少运行小偷线程的虚拟CPU对计算资源的浪费,有效降低运行有用线程的虚拟CPU的调度延时,从而最大化地将多核资源投入到有效计算中,提升任务并行编程模型的性能。
为实现上述目的,按照本发明的一个方面,提供了一种虚拟化环境下面向任务并行编程模型的优化方法,具体如下:
(1)获取任务并行编程模型中失败的窃取操作,读取失败的窃取操作对应的受害线程在任务并行编程模型中维护的运行状态和双端队列信息;
其中,双端队列是指每个线程维护的一个队列,该队列的尾部用于压入相应线程准备好的任务或弹出已经执行完的任务;受害线程是指被小偷线程试图窃取任务的线程;小偷线程是指自己的双端队列不存在准备好的任务,试图从其它线程的双端队列头部窃取任务来执行的线程;
(2)根据受害线程的运行状态,判断受害线程是否为执行任务的有用线程,如果是,进入步骤(3);否则,结束本次优化;其中,有用线程是指拥有可执行任务的线程;
(3)判断受害线程的双端队列是否为空,如果是,进入步骤(4);否则,结束本次优化;
(4)通过自定义的系统功能调用,将小偷线程的标识符和受害线程的线程标识符,分别作为系统功能调用的第一个参数和第二个参数,发送给客户操作系统的内核层;
(5)客户操作系统的内核层,根据小偷线程的标识符和受害线程的标识符,查找内核中代表小偷线程和受害线程的数据结构,并从中获取受害线程在内核层的运行状态,以及小偷线程和受害线程所在虚拟CPU的标识符;
(6)根据受害线程在内核层的运行状态,判断受害线程是否已被客户操作系统抢占,如果是,结束本次优化;否则,进入步骤(7);
(7)将运行小偷线程的虚拟CPU角色定义为加速发起者,运行受害线程的虚拟CPU角色定义为被加速候选者,并通过自定义的超级调用,将加速发起者的虚拟CPU标识符和被加速候选者的虚拟CPU标识符,分别作为超级调用的第一个参数和第二个参数,发送给虚拟机监控器;
(8)虚拟机监控器接收来自客户虚拟机的虚拟CPU标识符,查找虚拟机监控器中代表加速发起者和被加速候选者的虚拟CPU数据结构,并从中读取它们的运行状态和所在物理CPU的信息;
(9)根据加速发起者和被加速候选者所在物理CPU的信息以及运行状态,判断是否执行加速,如果是,进入步骤(10);否则,结束本次优化;本步骤中,决定是否执行加速的过程具体如下:
(9-1)根据加速发起者和被加速候选者所在物理CPU的信息,判断它们是否属于相同NUMA节点,如果是,进入步骤(9-2);否则,决定不执行加速;
其中,NUMA节点是指NUMA系统中几个CPU通过内存总线与一块内存相连构成的一个组;因为一个NUMA系统拥有多条内存总线,所以被分为若干个NUMA节点,并且处于相同NUMA节点的CPU访问本地内存的速度,远快于访问其它NUMA节点的内存;
(9-2)根据被加速候选者的运行状态,判断被加速候选者是否已被虚拟机监控器抢占,如果是,进入步骤(9-3);否则,决定不执行加速;
(9-3)根据加速发起者的运行状态,计算它在当前调度的剩余时间片,判断剩余时间片的长度是否大于零,如果是,决定执行加速;否则,决定不执行加速;
(10)利用加速发起者的剩余时间片,加速被加速候选者的执行;本步骤具体包括以下子步骤:
(10-1)暂停执行加速发起者;
(10-2)保留被加速候选者在当前物理CPU运行队列中的位置,并将被加速候选者迁移到加速发起者所在的物理CPU;
(10-3)调度被加速候选者,且调度时间片等于加速发起者的剩余时间片;
(10-4)当被加速候选者被虚拟机监控器抢占(例如:时间片耗尽或被阻塞)时,如果被加速候选者还处于可运行状态,则将它迁移回原本所在的物理CPU运行队列中的位置,恢复其原本的调度路径;这样不仅降低了被加速候选者的调度延时,还使其获得了额外的调度机会,以至于达到被加速的效果;
(10-5)结束本次加速。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)高效利用计算资源:本发明提供的优化方法弥补了现有任务并行编程模型缺少针对虚拟化环境优化的不足,不仅能够减少运行小偷线程的虚拟CPU对计算资源的浪费,还能有效降低运行有用线程的虚拟CPU的调度延时,从而最大化地将多核资源投入到有效计算中;
(2)透明性:本发明提供的优化方法针对任务并行编程模型的优化过程涉及到获取任务并行编程模型中失败的窃取操作,客户虚拟机和虚拟机监控器之间的通信等,这些过程对用户来说是完全透明的,用户不需要参与其中;
(3)低开销:本发明提供的优化方法针对任务并行编程模型的优化过程涉及到获取小偷线程失败的窃取操作,客户虚拟机和虚拟机监控器之间的通信等,这些过程仅对运行基于任务并行编程模型的应用的虚拟机进行操作;每次加速执行涉及的加速发起者只是把原本属于自己的时间片提供给被加速候选者,并且加速发起者和被加速候选者来自相同虚拟机,故不会破坏虚拟机使用计算资源的公平性;因此,采用本发明提供的优化方法不会对运行其它类型应用的虚拟机产生影响。
附图说明
图1是本发明的方法所基于的虚拟CPU调度系统的体系结构图;
图2是本发明实施例1的流程图;
图3是本发明实施例1步骤(9)的细化流程图;
图4是本发明实施例1步骤(10)的细化流程图;
图5是本发明实施例1与现有技术在性能上的对比示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的方法所基于的虚拟CPU调度系统的体系结构如图1所示,服务器上有N台客户虚拟机,由虚拟机监控器负责管理,本发明虚拟化环境下面向任务并行编程模型的优化方法分为前后端两个部分,两个部分相互交互共同完成整体操作;前端监控部分位于客户虚拟机中,负责获取任务并行编程模型中小偷线程失败的窃取操作,将运行小偷线程的虚拟CPU角色定义为加速发起者,运行有用线程的虚拟CPU角色定义为被加速候选者,并将它们的标识符以及相关角色信息发送给虚拟机监控器;
后端加速部分位于虚拟机监控器中,负责根据加速发起者和被加速候选者的运行状态和所在物理CPU的信息,做出是否执行加速的决策。如果是,将加速发起者的剩余时间片提供给被加速候选者,当被加速候选者被虚拟机监控器抢占(时间片耗尽或被阻塞)时,如果被加速候选者还处于可运行状态,再将被加速候选者返回到原本的调度路径;这样不仅降低了被加速候选者的调度延时,还使其获得了额外的调度机会,以至于达到被加速的效果;其中,后端加速部分是本发明的处理核心。
以下结合图2和实施例1具体描述本发明提供的虚拟化环境下面向任务并行编程模型的优化方法,具体包括以下步骤:
(1)获取每个小偷线程W失败的窃取操作,读取相应受害线程V在任务并行编程模型中维护的运行状态和双端队列信息;
(2)根据V的运行状态,判断V是否为执行任务的有用线程,如果是,进入步骤(3);否则,结束本次优化;
(3)判断V的双端队列是否为空,如果是,进入步骤(4);否则,结束本次优化;
(4)通过自定义的系统功能调用,将W和V的线程标识符Wid和Vid,分别作为系统功能调用的第一个和第二个参数,发送给客户操作系统的内核层;因为该系统功能调用约定第一个和第二个参数分别代表小偷线程和受害线程的标识符,所以相当于将线程的角色信息也发送给客户操作系统的内核层;
(5)客户操作系统的内核层根据Wid和Vid,查找内核中代表小偷线程W和受害线程V的数据结构,并从中获取V在内核层的运行状态,以及W和V所在虚拟CPU的标识符:VCPU(W)id和VCPU(V)id;
(6)根据V在内核层的运行状态,判断V是否已被客户操作系统抢占,如果是,结束本次优化;否则,进入步骤(7);
(7)将运行W的虚拟CPU角色定义为加速发起者,运行V的虚拟CPU角色定义为被加速候选者,并通过自定义的超级调用,将VCPU(W)id和VCPU(V)id分别作为超级调用的第一个参数和第二个参数,发送给虚拟机监控器;因为该超级调用约定第一个参数和第二个参数分别代表加速发起者和被加速候选者在虚拟机监控器中的标识符,所以相当于将相应虚拟CPU的角色信息发送给虚拟机监控器;
(8)虚拟机监控器接收来自客户虚拟机的虚拟CPU标识符:VCPU(W)id和VCPU(V)id,查找虚拟机监控器中代表加速发起者和被加速候选者的虚拟CPU数据结构,并从中读取它们的运行状态和所在物理CPU的信息;
(9)根据加速发起者和被加速候选者所在物理CPU的信息以及运行状态,决定是否执行加速,如果是,进入步骤(10);否则,结束本次优化;如图3所示,本步骤中,决定是否执行加速的过程具体如下:
(9-1)根据加速发起者和被加速候选者所在物理CPU的信息,判断它们是否属于相同NUMA节点,如果是,进入步骤(9-2);否则,决定不执行加速;
(9-2)根据被加速候选者的运行状态,判断被加速候选者是否已被虚拟机监控器抢占,如果是,进入步骤(9-3);否则,决定不执行加速;
(9-3)根据加速发起者的运行状态,计算它在当前调度的剩余时间片,判断剩余时间片的长度是否大于零,如果是,决定执行加速;否则,决定不执行加速;
(10)利用加速发起者的剩余时间片,加速被加速候选者的执行;如图4所示,本步骤具体包括以下子步骤:
(10-1)暂停执行加速发起者;
(10-2)保留被加速候选者在当前物理CPU运行队列中的位置,并将被加速候选者迁移到加速发起者所在的物理CPU;
(10-3)调度被加速候选者,且调度时间片等于加速发起者的剩余时间片;
(10-4)当被加速候选者被虚拟机监控器抢占(时间片耗尽或被阻塞)时,如果被加速候选者还处于可运行状态,则将它迁移回原本所在的物理CPU运行队列中的位置,恢复其原本的调度路径;这样不仅降低了被加速候选者的调度延时,还使其获得了额外的调度机会,以至于达到被加速的效果;
(10-5)结束本次加速。
具体的,在实施例1中,采用版本号为4.2.1的Xen虚拟机监控器,在单台16核物理服务器上部署虚拟化环境,详细实验环境配置如表1所示:
表1实施例1实验配置环境
如表1所列的,实施例1在单台16核物理服务器上,部署了8台16核的客户虚拟机;分别启动运行1、2、4、8台客户虚拟机,以模拟单个物理核被1、2、4、8个虚拟CPU共享的场景;实施例1在客户虚拟机1~8中运行基于任务并行编程模型的共轭梯度(Conjugate Gradient,CG)应用,并测试CG分别在Cilk++、BWS和本发明支持下的运行时间;其中,CG源自由美国国家航空航天局开发的一套代表流体动力学计算的应用程序集;Cilk++是最通用的任务并行编程模型;BWS是基于Cilk++实现的,是当前传统单机多核多应用环境下最好的任务并行编程模型;在实施例1中,针对BWS进行加速优化。
如图5所示的,在2、4、8个客户虚拟机运行的环境下,相比于Cilk++和BWS,采用本发明提供的优化方法使应用CG达到最佳性能,且性能分别最高提升4.5倍和1.4倍;在1个客户虚拟机运行的环境下,由于运行有用线程的虚拟CPU基本不会被抢占,基本没有留给本发明面向任务并行编程模型的优化空间,所以应用CG在Cilk++、BWS和本发明支持下的性能是一样的。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种虚拟化环境下面向任务并行编程模型的优化方法,其特征在于,该方法包括以下步骤:
(1)获取任务并行编程模型中失败的窃取操作,读取失败的窃取操作对应的受害线程在任务并行编程模型中维护的运行状态和双端队列信息;
(2)根据受害线程的运行状态,判断受害线程是否为执行任务的有用线程,如果是,进入步骤(3);否则,结束本次优化;其中,有用线程是指拥有可执行任务的线程;
(3)判断受害线程的双端队列是否为空,如果是,进入步骤(4);否则,结束本次优化;
(4)通过自定义的系统功能调用,将小偷线程的线程标识符与受害线程的线程标识符,分别作为系统功能调用的第一个参数与第二个参数,发送给客户操作系统的内核层;
(5)操作系统的内核层根据小偷线程的标识符和受害线程的标识符,查找内核中代表小偷线程和受害线程的数据结构,并从中获取受害线程在内核层的运行状态,以及小偷线程和受害线程所在虚拟CPU的标识符;
(6)根据受害线程在内核层的运行状态,判断受害线程是否已被客户操作系统抢占,如果是,结束本次优化;否则,进入步骤(7);
(7)将运行小偷线程的虚拟CPU角色定义为加速发起者,运行受害线程的虚拟CPU角色定义为被加速候选者,并通过自定义的超级调用,将加速发起者的虚拟CPU标识符和被加速候选者的虚拟CPU标识符,分别作为超级调用的第一个参数和第二个参数,发送给虚拟机监控器;
(8)虚拟机监控器接收来自客户虚拟机的虚拟CPU标识符,查找虚拟机监控器中代表加速发起者和被加速候选者的虚拟CPU数据结构,并从中读取它们的运行状态和所在物理CPU的信息;
(9)根据加速发起者和被加速候选者所在物理CPU的信息以及运行状态,决定是否执行加速,如果是,进入步骤(10);否则,结束本次优化;
(10)利用加速发起者的剩余时间片,加速被加速候选者的执行。
2.如权利要求1所述的一种虚拟化环境下面向任务并行编程模型的优化方法,其特征在于,步骤(9)中决定是否执行加速的过程具体如下:
(9-1)根据加速发起者和被加速候选者所在物理CPU的信息,判断它们是否属于相同NUMA节点,如果是,进入步骤(9-2);否则,决定不执行加速;
(9-2)根据被加速候选者的运行状态,判断被加速候选者是否已被虚拟机监控器抢占,如果是,进入步骤(9-3);否则,决定不执行加速;
(9-3)根据加速发起者的运行状态,计算它在当前调度的剩余时间片,判断剩余时间片的长度是否大于零,如果是,决定执行加速;否则,决定不执行加速。
3.如权利要求1所述的一种虚拟化环境下面向任务并行编程模型的优化方法,其特征在于,步骤(10)包括以下子步骤:
(10-1)暂停执行加速发起者;
(10-2)保留被加速候选者在当前物理CPU运行队列中的位置,并将被加速候选者迁移到加速发起者所在的物理CPU;
(10-3)调度被加速候选者,且调度时间片等于加速发起者的剩余时间片;
(10-4)当被加速候选者被虚拟机监控器抢占时,如果被加速候选者还处于可运行状态,则将它迁移回原本所在的物理CPU运行队列中的位置,恢复其原本的调度路径;
(10-5)结束本次加速。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510187523.6A CN104765613B (zh) | 2015-04-21 | 2015-04-21 | 一种虚拟化环境下面向任务并行编程模型的优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510187523.6A CN104765613B (zh) | 2015-04-21 | 2015-04-21 | 一种虚拟化环境下面向任务并行编程模型的优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104765613A true CN104765613A (zh) | 2015-07-08 |
CN104765613B CN104765613B (zh) | 2017-09-12 |
Family
ID=53647465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510187523.6A Active CN104765613B (zh) | 2015-04-21 | 2015-04-21 | 一种虚拟化环境下面向任务并行编程模型的优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104765613B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647134A (zh) * | 2018-05-04 | 2018-10-12 | 北京物资学院 | 一种面向多核架构的任务监测、跟踪及识别方法 |
CN111865657A (zh) * | 2015-09-28 | 2020-10-30 | 华为技术有限公司 | 一种加速管理节点、加速节点、客户端及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183315A (zh) * | 2007-12-10 | 2008-05-21 | 华中科技大学 | 一种并行多处理器虚拟机系统 |
US20110010713A1 (en) * | 2009-07-13 | 2011-01-13 | Hitachi, Ltd. | Computer system, virtual machine monitor and scheduling method for virtual machine monitor |
CN102012835A (zh) * | 2010-12-22 | 2011-04-13 | 北京航空航天大学 | 一种支持软实时应用的虚拟cpu调度方法 |
CN102156665A (zh) * | 2011-04-13 | 2011-08-17 | 杭州电子科技大学 | 一种虚拟化系统竞争资源差异化服务方法 |
-
2015
- 2015-04-21 CN CN201510187523.6A patent/CN104765613B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183315A (zh) * | 2007-12-10 | 2008-05-21 | 华中科技大学 | 一种并行多处理器虚拟机系统 |
US20110010713A1 (en) * | 2009-07-13 | 2011-01-13 | Hitachi, Ltd. | Computer system, virtual machine monitor and scheduling method for virtual machine monitor |
CN102012835A (zh) * | 2010-12-22 | 2011-04-13 | 北京航空航天大学 | 一种支持软实时应用的虚拟cpu调度方法 |
CN102156665A (zh) * | 2011-04-13 | 2011-08-17 | 杭州电子科技大学 | 一种虚拟化系统竞争资源差异化服务方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111865657A (zh) * | 2015-09-28 | 2020-10-30 | 华为技术有限公司 | 一种加速管理节点、加速节点、客户端及方法 |
CN111865657B (zh) * | 2015-09-28 | 2022-01-11 | 华为技术有限公司 | 一种加速管理节点、加速节点、客户端及方法 |
US11579907B2 (en) | 2015-09-28 | 2023-02-14 | Huawei Technologies Co., Ltd. | Acceleration management node, acceleration node, client, and method |
CN108647134A (zh) * | 2018-05-04 | 2018-10-12 | 北京物资学院 | 一种面向多核架构的任务监测、跟踪及识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104765613B (zh) | 2017-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hermann et al. | Multi-GPU and multi-CPU parallelization for interactive physics simulations | |
CN106844007B (zh) | 一种基于空间复用的虚拟化方法与系统 | |
Ibrahim et al. | Cloudlet: towards mapreduce implementation on virtual machines | |
CN103473135B (zh) | 虚拟化环境下自旋锁lhp现象的处理方法 | |
Cheng et al. | vScale: Automatic and efficient processor scaling for SMP virtual machines | |
CN103064746A (zh) | 基于当前credit进行预测调度的处理器资源精确分配方法 | |
US11579908B2 (en) | Containerized workload scheduling | |
EP1963963A2 (en) | Methods and apparatus for multi-core processing with dedicated thread management | |
CN102053858B (zh) | 一种虚拟cpu调度方法 | |
Lin et al. | An efficient work-stealing scheduler for task dependency graph | |
CN105550040A (zh) | 基于kvm平台的虚拟机cpu资源预留算法 | |
US20190377612A1 (en) | VCPU Thread Scheduling Method and Apparatus | |
CN106445631B (zh) | 一种布署虚拟机的方法、系统以及物理服务器 | |
CN106250217A (zh) | 一种多虚拟处理器间的同步调度方法及其调度系统 | |
JP5030647B2 (ja) | 複数処理ノードを含むコンピュータ・システムでプログラムをロードする方法、該プログラムを含むコンピュータ可読媒体、及び、並列コンピュータ・システム | |
Kashyap et al. | Scaling Guest {OS} Critical Sections with {eCS} | |
CN104765613A (zh) | 一种虚拟化环境下面向任务并行编程模型的优化方法 | |
CN107423114B (zh) | 一种基于服务分类的虚拟机动态迁移方法 | |
CN113238832A (zh) | 虚拟处理器的调度方法、装置、设备及计算机存储介质 | |
Ermakov et al. | Testing docker performance for HPC applications | |
CN111694787A (zh) | 一种芯片启动的方法、网络设备和机器可读存储介质 | |
WO2024021475A1 (zh) | 一种容器调度方法及装置 | |
CN109558241A (zh) | 一种获取自旋锁的方法及装置 | |
US11144419B2 (en) | Controlled use of a memory monitor instruction and memory wait instruction in a virtualized environment | |
US9619277B2 (en) | Computer with plurality of processors sharing process queue, and process dispatch processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |