CN103473135A - 虚拟化环境下自旋锁lhp现象的处理方法 - Google Patents
虚拟化环境下自旋锁lhp现象的处理方法 Download PDFInfo
- Publication number
- CN103473135A CN103473135A CN201310442373XA CN201310442373A CN103473135A CN 103473135 A CN103473135 A CN 103473135A CN 201310442373X A CN201310442373X A CN 201310442373XA CN 201310442373 A CN201310442373 A CN 201310442373A CN 103473135 A CN103473135 A CN 103473135A
- Authority
- CN
- China
- Prior art keywords
- thread
- operating system
- vcpu
- virtual machine
- guest virtual
- 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
Images
Abstract
本发明公开了一种虚拟化环境下自旋锁LHP现象的处理方法,包括以下步骤:(1)客户虚拟机用户态通过系统调用进入客户虚拟机内核,客户虚拟机操作系统内核提供的方法创建当前线程的副本线程,并通过动态申请内核存储空间创建共享数据副本,立即停止副本线程运行;(2)动态检查客户机虚拟操作系统下VCPU对应的客户虚拟机内线程所处的状态,预判是否出现LHP现象;当出现LHP现象时,进行步骤(3);否则进行步骤(4);(3)线程回滚操作:删除原线程,运行副本线程,并用共享数据副本值覆盖对应用户地址空间内可能在临界区中被修改的数据进行共享数据还原;(4)删除当前线程的副本线程,并释放共享数据副本占用存储区域,退出临界区后,结束。该方法对宿主机操作系统内调度程序的执行效率鲜有影响,保持了宿主机操作系统内线程调度的高效率。
Description
技术领域
本发明属于虚拟化技术领域,具体涉及一种虚拟化环境下自旋锁LHP现象的处理方法。
背景技术
随着计算机技术日新月异的发展,中央处理器经历了从单核高频到单芯多核的不同发展阶段。在单核高频发展阶段,人们着重于提高单一核芯的主频。随着半导体技术的发展遭遇瓶颈,单核处理器的主频止步于约4GHz。功耗指数级增长、流水线过长等问题使单纯提高核芯的主频已无法带来系统整体性能的提升。多核处理器在处理器芯片上的不同执行内核之间分配任务,提高了单位时钟周期内执行的指令条数。多核多线程处理器技术的发展使得在单核处理器主频提高遭遇瓶颈时,计算机系统仍旧能够满足人们对计算能力日益增长的渴求。
系统虚拟化技术的出现,可以让单个处理器核心以分时共享的方式模拟多个核心的并发运行,让单个物理平台上同时运行多个操作系统成为可能,客户程序则在相互隔离的操作系统环境内高效执行、互不干扰,让计算平台基础架构变得简单和高效。运用虚拟化技术还使得应用能够更快部署、性能和可用性得到提升、操作自动进行。以上优点有助于简化IT的实施,并降低其拥有和管理成本。
自旋锁(spinlock)是用在多个CPU系统中的锁机制,当一个CPU正访问自旋锁保护的临界区时,临界区将被锁上,其他需要访问此临界区的CPU只能忙等待,直到前面的CPU已访问完临界区,将临界区开锁。自旋锁上锁后让等待线程进行忙等待而不是睡眠阻塞,而信号量是让等待线程睡眠阻塞。自旋锁的忙等待浪费了处理器的时间,但时间通常很短,在1毫秒以下。一个执行单元要想访问被自旋锁保护的共享资源,必须先得到锁,在访问完共享资源后,必须释放锁。如果在获取自旋锁时,没有任何执行单元保持该锁,那么将立即得到锁;如果在获取自旋锁时锁已经有保持者,那么获取锁操作将自旋在那里,直到该自旋锁的保持者释放了锁。
系统虚拟化技术已经有了长足的发展,但仍有许多技术难题有待解决。自旋锁(spinlock)的LHP(lock-holder preemption)就是众多问题之一。在部署于对称多处理器系统上的虚拟化环境中运行使用自旋锁方式进行同步的多线程程序时会遭遇LHP问题。LHP问题指的是:虚拟化环境中,由于VCPU(virtual CPU)可能被虚拟机操作系统管理程序调度出物理处理器,当这个被调度下线的VCPU刚好处于客户系统中的临界区状态,且与重新被调度回物理处理器的时间间隔过长时,可能致使运行于其他VCPU上的锁竞争者线程自旋忙等时间过长,大量时间片被浪费。本发明因此而来。
发明内容
本发明目的在于提供一种虚拟化环境下自旋锁LHP现象的处理方法,有效地降低了VCPU上的锁竞争者线程自旋忙等时间过长等问题。
为了解决现有技术中的这些问题,本发明提供的技术方案是:
一种虚拟化环境下自旋锁LHP现象的处理方法,其特征在于所述方法中包括以下步骤:
(1)客户虚拟机用户态通过系统调用进入客户虚拟机内核,客户虚拟机操作系统内核提供的方法创建当前线程的副本线程,并通过动态申请内核存储空间创建共享数据副本,立即停止副本线程运行;
(2)动态检查客户机虚拟操作系统下VCPU对应的客户虚拟机内线程所处的状态,预判是否出现LHP现象;当出现LHP现象时,进行步骤(3);否则进行步骤(4);
(3)线程回滚操作:删除原线程,运行副本线程,并用共享数据副本值覆盖对应用户地址空间内可能在临界区中被修改的数据进行共享数据还原;
(4)删除当前线程的副本线程,并释放共享数据副本占用存储区域,退出临界区后,结束。
优选的,所述方法步骤(2)中宿主机操作系统判断是否为VCPU对应的客户虚拟机内线程是通过预先在宿主机操作系统内核数据结构增设是否为VCPU线程的is_vcpu字段项来进行的;is_vcpu字段项初始化为0;当虚拟机操作系统创建VCPU线程时,将is_vcpu字段置1。
优选的,所述方法中宿主机操作系统对VCPU线程的干涉,是以发送虚拟NMI中断实现;虚拟机操作系统接收到虚拟NMI中断后检查系统状态判断出中断来自宿主机操作系统发起的通信,修改后的NMI中断处理函数将主导线程进行线程回滚操作并在结束后主动发起VM_EXIT切换回宿主机操作系统。
本发明的另一目的在于提供一种虚拟机化环境下自旋锁处理系统,其特征在于所述系统包括用于宿主机操作系统和客户虚拟机操作系统间进行通讯的通讯模块、宿主机操作系统进行线程调度的线程调度模块和客户虚拟机操作系统中的线程回滚模块;所述通讯模块用于宿主机操作系统向客户虚拟机操作系统的VCPU发送NMI事件以及客户虚拟机操作系统处理NMI事件结束后调用vmcall指令将VCPU切换回宿主机操作系统状态;所述线程调度模块在进行线程调度之前,需要判断相应的线程是否为VCPU线程;如果是VCPU线程,则通过通讯模块向VCPU发送NMI事件;当通讯模块切换回宿主机操作系统状态时在宿主机操作系统态运行线程调度程序;所述线程回滚模块用于通讯模块发送完NMI事件后,宿主机操作系统将VCPU切换到客户虚拟机操作系统状态,调用客户虚拟机操作系统中的NMI处理函数进行NMI处理;由NMI中断处理函数判断LHP现象,当出现LHP现象时,线程回滚模块进行线程回滚操作。
本发明的目的在于解决虚拟化环境下可能出现的LHP问题。通过动态检查VCPU对应的客户虚拟机内线程所处的状态,预判是否可能出现LHP现象。如判断结果为真,执行线程回滚操作并命令当前线程立刻释放自旋锁使其余竞争线程能够立刻获得自旋锁进入临界区,从而完全消除LHP现象、提高客户虚拟机内并行工作负载的运行时间效率。
为了针对LHP问题实现对自旋锁的优化,本发明技术方案中包括三个模块:客户虚拟机操作系统中的线程回滚模块、宿主机操作系统和客户虚拟机操作系统通讯模块、宿主机操作系统用于VCPU对应线程捕捉和调度的线程调度模块。
线程回滚模块的主要作用在于线程运行状态的回滚和线程间共享数据的恢复。线程运行状态回滚的具体方法是在客户虚拟机用户态通过系统调用进入客户虚拟机内核,通过客户虚拟机操作系统内核提供的方法创建当前线程的副本线程,并立即将这个副本线程暂停运行并加以保存。线程间共享数据恢复需要动态申请内核存储空间,保存内核数据结构mm_struct中分别起止于mm->start_data和mm->end_data的已初始化全局变量。这对客户虚拟机内并行负载的编写提出了以下约束,即临界区内只对属于全局已初始化变量的进程共享数据进行修改,且这些全局已初始化变量在临界区以外所有场合只读。需要回滚时用共享数据副本值覆盖对应用户地址空间内可能在临界区中被修改的数据,就完成了数据回滚操作。
宿主机操作系统和客户虚拟机操作系统间的通讯模块主要实现宿主机操作系统对VCPU线程的干涉。宿主机操作系统对VCPU线程的干涉,以发送虚拟中断形式实现。发送的虚拟中断为虚拟NMI(不可屏蔽中断),NMI在中断向量中的高优先级保证了VCPU在截获中断后立即无条件执行中断服务程序。客户机操作系统接收到中断后检查系统状态判断出中断来自宿主机操作系统发起的通信,修改后的NMI中断处理函数将主导线程回滚操作并在结束后主动发起VM_EXIT切换回宿主机操作系统。
宿主机操作系统VCPU对应的线程调度模块,用于宿主机操作系统进行线程调度之前,判断相应的线程是否为VCPU线程;如果是VCPU线程,则向VCPU发送NMI事件。发送完NMI事件后,宿主机操作系统将VCPU切换到客户虚拟机操作系统状态,调用客户虚拟机操作系统中的NMI处理函数进行NMI处理。
线程调度模块的实现基于如下事实:当客户虚拟机操作系统开机后,虚拟机管理程序会创建一个线程作为VCPU。虚拟机管理程序是Kvm软件的一个进程,VCPU是此进程中的线程。在创建VCPU线程前,先在宿主机操作系统中修改task_struct结构,增加字段开启对VCPU线程识别的支持。具体来说,用is_vcpu字段表示线程是否是VCPU线程:当此字段值为1时,是VCPU线程,kvm字段指向此VCPU所属Kvm结构;当is_vcpu字段值为0,不是VCPU线程,kvm字段为空。在调用创建VCPU的函数时,将新创建的VCPU线程对应的is_vcpu与kvm字段初始化。如此设置后,检查每个的线程的task_struct结构中的is_vcpu字段就可以得知线程是否是VCPU线程。为了提高系统性能,只在宿主机即将真正发生线程调度时才判断此线程是否为VCPU线程。在宿主机操作系统实际对线程进行调度之前,判断线程是否为VCPU线程,如果是则向VCPU发送NMI事件。发送完NMI事件后,宿主机操作系统将VCPU切换到客户虚拟机操作系统状态,以求第一时间调用客户虚拟机操作系统中的NMI处理函数。在客户虚拟机态,先检查VCPU上运行的用户程序是否处在了临界区中,如果是则说明LHP现象发生,需要立刻进行回滚操作。无论有没有进行回滚操作,在结束宿主机发送的NMI事件处理过程时,客户虚拟机操作系统都会调用vmcall指令再将VCPU切换回宿主机操作系统状态。并在宿主机操作系统态运行线程调度代码。
相对于现有技术中的方案,本发明的优点是:
1.排除LHP现象发生频率小于10%的情形,本发明最高可以为并行工作负载争取到约11%的运行时间缩减。
2.本发明不在长等现象发生后再对长等进行特征判断,而是通过在客户虚拟机内部对临界区属性进行预设与读取实现完全消除由LHP现象引发的长时间自旋忙等。
3.本发明不干涉虚拟机监控器的调度策略,保证了虚拟机调度算法的公平性。
4.本发明对宿主机操作系统内调度程序的执行效率鲜有影响,保持了宿主机操作系统内线程调度的高效率。
5.本发明不依赖对并行负载的静态属性设定,而通过动态采集运行时信息实现对VCPU线程状态的判定。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1是线程回滚操作的总体流程图;
图2是宿主机操作系统和虚拟机操作系统修改后的NMI中断处理函数执行流程图;
图3是从宿主机视角看VCPU线程调度总体流程图;
图4是从客户虚拟机内线程视角看VCPU线程调度总体流程图。
具体实施方式
以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。
实施例
本实施例的虚拟机化环境下自旋锁处理系统,包括用于宿主机操作系统和客户虚拟机操作系统间进行通讯的通讯模块、宿主机操作系统进行线程调度的线程调度模块和客户虚拟机操作系统中的线程回滚模块;所述通讯模块用于宿主机操作系统向客户虚拟机操作系统的VCPU发送NMI事件以及客户虚拟机操作系统处理NMI事件结束后调用vmcall指令将VCPU切换回宿主机操作系统状态;所述线程调度模块在进行线程调度之前,需要判断相应的线程是否为VCPU线程;如果是VCPU线程,则通过通讯模块向VCPU发送NMI事件;当通讯模块切换回宿主机操作系统状态时在宿主机操作系统态运行线程调度程序;所述线程回滚模块用于通讯模块发送完NMI事件后,宿主机操作系统将VCPU切换到客户虚拟机操作系统状态,调用客户虚拟机操作系统中的NMI处理函数进行NMI处理;由NMI中断处理函数判断LHP现象,当出现LHP现象时,线程回滚模块进行线程回滚操作。
如图1所示,为虚拟机操作系统内的线程回滚模块的总体流程。
(1)线程进入临界区时,创建当前线程的副本,副本线程被创建后立即挂起,原线程继续运行进入临界区;
(2)原线程进入临界区前,为临界区内可能修改的数据作好备份,并将数据备份保存;
(3)若线程运行在临界区时对应的VCPU被调度下线,删除运行中的线程,用挂起的副本线程替代原线程运行,共享数据也随之还原到进入临界区时状态,至此线程回滚完成。
(4)回滚结束后VCPU下线,spinlock被释放,某个正占有物理处理器的自旋忙等的竞争线程立刻获得spinlock,进入临界区;
(5)如果持有spinlock的线程在临界区内没发生VCPU调度,即没有LHP现象出现,删除副本线程和数据备份,原线程正常退出临界区。
其中,LHP现象的判断由宿主机操作系统发起,进入客户虚拟机后,检查VCPU上运行的用户程序是否处在了临界区中,如果是则说明LHP现象发生,需要立刻进行回滚操作;如果不处于临界区,说明未发生LHP现象,无需线程回滚。
修改后的NMI中断处理函数执行流程如图2所示。
在客户虚拟机操作系统中对NMI中断处理函数进行定制,在接收到NMI事件时首先判断所处系统状态:当判断出系统处于无NMI可处理且当前线程正处于临界区中时,可以判定出此客户机线程为VCPU对应线程,收到的NMI事件来自于宿主机操作系统的通信,转入LHP现象处理流程;当检测出系统存在NMI事件需要处理时,转入正常NMI处理流程。LHP现象处理流程中会先调用线程回滚功能函数,判断线程回滚完毕后,调用vmcall这条vmx新增指令从客户虚拟机操作系统中返回到宿主机操作系统中去。判断线程是否正处于临界区中无需再在task_struct结构中增添字段,只需要检测是否存在副本mm_struct,即copy_mmdata是否为NULL即可。此外,vmcall指令只会在客户虚拟机状态中生效,若在非虚拟化环境下调用这条指令,会给出非法指令信息并退出程序。
宿主机操作系统VCPU线程调度模块涉及到在宿主机操作系统内识别出VCPU线程以及与通信模块配合完整化解一次LHP现象。识别VCPU线程需要在宿主机操作系统内核数据结构task_struct中增设is_vcpu字段,并默认初始化为0。当虚拟机创建VCPU线程时,将is_vcpu字段置1。在每次进入宿主机操作系统的线程调度函数时,先对此线程的is_vcpu字段进行读取,若判断为VCPU线程,按照宿主机操作系统和客户虚拟机操作系统通讯模块所述方式对VCPU线程进行干涉。
从宿主机视角看VCPU线程调度总体流程如图3所示。
在宿主机操作系统实际对线程进行调度之前,判断线程是否为VCPU线程,如果是则向VCPU发送NMI事件。发送完NMI事件后,宿主机操作系统将VCPU切换到客户虚拟机操作系统状态,以求第一时间调用客户虚拟机操作系统中的NMI处理函数。
从客户虚拟机内线程视角看VCPU线程调度总体流程如图4所示。
在客户虚拟机态,先检查VCPU上运行的用户程序是否处在了临界区中,如果是则说明LHP现象发生,需要立刻进行回滚操作。无论有没有进行回滚操作,在结束宿主机发送的NMI事件处理过程时,客户虚拟机操作系统都会调用vmcall指令再将VCPU切换回宿主机操作系统状态。并在宿主机操作系统态运行线程调度代码。
实施例所需硬件环境为:Intel Core i5-2430M型号处理器加2GB物理内存,处理器为单核主频2.40Ghz的对称双核处理器。
实施例搭建的软件环境为:安装Ubuntu12.04LTS Linux作为宿主机操作系统,并用修改后的3.8.11版本Linux内核替代原发行版内核;安装qemu-0.14.0作为虚拟机用户态支持;通过qemu-kvm命令行,加载客户虚拟机内核镜像与客户虚拟机根文件系统启动客户虚拟机操作系统,启动命令为:#qemu-system-x86_64–kernel/boot/vmlinuz-3.8.11–hdalinux-0.2.img–append“root=/dev/sda”–enable-kvm–smp N,其中–smp N参数用来设置客户虚拟机对应VCPU线程数目为N。
客户虚拟机内核镜像采用3.8.11版本Linux内核编译制作,客户虚拟机根文件系统使用qemu官网提供的精简根文件系统linux-0.2.img。通过挂载linux-0.2.img到本地目录方式向客户虚拟机操作系统添加动态库与测试程序。
客户虚拟机内并行工作负载需要满足约束条件:临界区内只对属于全局已初始化变量的进程共享数据进行修改,且这些全局已初始化变量在临界区以外所有场合只读。
上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。
Claims (4)
1.一种虚拟化环境下自旋锁LHP现象的处理方法,其特征在于所述方法中包括以下步骤:
(1)客户虚拟机用户态通过系统调用进入客户虚拟机内核,客户虚拟机操作系统内核提供的方法创建当前线程的副本线程,并通过动态申请内核存储空间创建共享数据副本,立即停止副本线程运行;
(2)动态检查客户机虚拟操作系统下VCPU对应的客户虚拟机内线程所处的状态,预判是否出现LHP现象;当出现LHP现象时,进行步骤(3);否则进行步骤(4);
(3)线程回滚操作:删除原线程,运行副本线程,并用共享数据副本值覆盖对应用户地址空间内可能在临界区中被修改的数据进行共享数据还原;
(4)删除当前线程的副本线程,并释放共享数据副本占用存储区域,退出临界区后,结束。
2.根据权利要求1所述的处理方法,其特征在于所述方法步骤(2)中宿主机操作系统判断是否为VCPU对应的客户虚拟机内线程是通过预先在宿主机操作系统内核数据结构增设是否为VCPU线程的is_vcpu字段项来进行的;is_vcpu字段项初始化为0;当虚拟机操作系统创建VCPU线程时,将is_vcpu字段置1。
3.根据权利要求1所述的处理方法,其特征在于所述方法中宿主机操作系统对VCPU线程的干涉,是以发送虚拟NMI中断实现;虚拟机操作系统接收到虚拟NMI中断后检查系统状态判断出中断来自宿主机操作系统发起的通信,修改后的NMI中断处理函数将主导线程进行线程回滚操作并在结束后主动发起VM_EXIT切换回宿主机操作系统。
4.一种虚拟机化环境下自旋锁处理系统,其特征在于所述系统包括用于宿主机操作系统和客户虚拟机操作系统间进行通讯的通讯模块、宿主机操作系统进行线程调度的线程调度模块和客户虚拟机操作系统中的线程回滚模块;所述通讯模块用于宿主机操作系统向客户虚拟机操作系统的VCPU发送NMI事件以及客户虚拟机操作系统处理NMI事件结束后调用vmcall指令将VCPU切换回宿主机操作系统状态;所述线程调度模块在进行线程调度之前,需要判断相应的线程是否为VCPU线程;如果是VCPU线程,则通过通讯模块向VCPU发送NMI事件;当通讯模块切换回宿主机操作系统状态时在宿主机操作系统态运行线程调度程序;所述线程回滚模块用于通讯模块发送完NMI事件后,宿主机操作系统将VCPU切换到客户虚拟机操作系统状态,调用客户虚拟机操作系统中的NMI处理函数进行NMI处理;由NMI中断处理函数判断LHP现象,当出现LHP现象时,线程回滚模块进行线程回滚操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310442373.XA CN103473135B (zh) | 2013-09-23 | 2013-09-23 | 虚拟化环境下自旋锁lhp现象的处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310442373.XA CN103473135B (zh) | 2013-09-23 | 2013-09-23 | 虚拟化环境下自旋锁lhp现象的处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103473135A true CN103473135A (zh) | 2013-12-25 |
CN103473135B CN103473135B (zh) | 2016-08-24 |
Family
ID=49798003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310442373.XA Active CN103473135B (zh) | 2013-09-23 | 2013-09-23 | 虚拟化环境下自旋锁lhp现象的处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103473135B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI547876B (zh) * | 2014-09-16 | 2016-09-01 | 財團法人工業技術研究院 | 虛擬環境之中斷處理方法與系統 |
CN105955796A (zh) * | 2016-04-22 | 2016-09-21 | 华中科技大学 | 一种云平台上高性能并行应用的调度方法及系统 |
CN106339257A (zh) * | 2015-07-10 | 2017-01-18 | 中标软件有限公司 | 使客户机操作系统轻量化的方法及系统和虚拟化操作系统 |
CN107194247A (zh) * | 2017-04-27 | 2017-09-22 | 华中科技大学 | 一种针对虚拟机回滚的软件补偿方法及系统 |
CN107918555A (zh) * | 2017-11-23 | 2018-04-17 | 北京百度网讯科技有限公司 | 基于物理主机的用于处理数据的方法和装置 |
CN108885559A (zh) * | 2016-03-29 | 2018-11-23 | 微软技术许可有限责任公司 | 在多个处理器之间快速转移工作负载 |
CN109460285A (zh) * | 2018-11-01 | 2019-03-12 | 郑州云海信息技术有限公司 | 一种虚拟化平台中存储系统的挂载方法及相关装置 |
CN113806099A (zh) * | 2021-09-13 | 2021-12-17 | 北京计算机技术及应用研究所 | 一种基于二值计算的多核自旋锁设计方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631328A (zh) * | 2009-08-14 | 2010-01-20 | 北京星网锐捷网络技术有限公司 | 一种对共享资源互斥访问的同步方法、装置和网络设备 |
US7774645B1 (en) * | 2006-03-29 | 2010-08-10 | Emc Corporation | Techniques for mirroring data within a shared virtual memory system |
CN102053858A (zh) * | 2010-12-28 | 2011-05-11 | 华中科技大学 | 一种虚拟cpu调度方法 |
WO2013133586A1 (ko) * | 2012-03-06 | 2013-09-12 | 삼성전자 주식회사 | 락 홀더 선점 회복 방법 및 장치 |
-
2013
- 2013-09-23 CN CN201310442373.XA patent/CN103473135B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7774645B1 (en) * | 2006-03-29 | 2010-08-10 | Emc Corporation | Techniques for mirroring data within a shared virtual memory system |
CN101631328A (zh) * | 2009-08-14 | 2010-01-20 | 北京星网锐捷网络技术有限公司 | 一种对共享资源互斥访问的同步方法、装置和网络设备 |
CN102053858A (zh) * | 2010-12-28 | 2011-05-11 | 华中科技大学 | 一种虚拟cpu调度方法 |
WO2013133586A1 (ko) * | 2012-03-06 | 2013-09-12 | 삼성전자 주식회사 | 락 홀더 선점 회복 방법 및 장치 |
Non-Patent Citations (1)
Title |
---|
TSUNG-HAN LIN ETC.: ""Using Virtual CPU Migration to Solve the Lock Holder Preemption Problem in a Multicore Processor-Based Virtualization Layer for Embedded Systems"", 《2012 IEEE INTERNATIONAL CONFERENCE ON EMBEDDED AND REAL-TIME COMPUTING SYSTEMS AND APPLICATIONS》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI547876B (zh) * | 2014-09-16 | 2016-09-01 | 財團法人工業技術研究院 | 虛擬環境之中斷處理方法與系統 |
US9772868B2 (en) | 2014-09-16 | 2017-09-26 | Industrial Technology Research Institute | Method and system for handling interrupts in a virtualized environment |
CN106339257A (zh) * | 2015-07-10 | 2017-01-18 | 中标软件有限公司 | 使客户机操作系统轻量化的方法及系统和虚拟化操作系统 |
CN106339257B (zh) * | 2015-07-10 | 2020-03-24 | 中标软件有限公司 | 使客户机操作系统轻量化的方法及系统和虚拟化操作系统 |
CN108885559A (zh) * | 2016-03-29 | 2018-11-23 | 微软技术许可有限责任公司 | 在多个处理器之间快速转移工作负载 |
CN105955796B (zh) * | 2016-04-22 | 2018-12-07 | 华中科技大学 | 一种云平台上高性能并行应用的调度方法及系统 |
CN105955796A (zh) * | 2016-04-22 | 2016-09-21 | 华中科技大学 | 一种云平台上高性能并行应用的调度方法及系统 |
CN107194247A (zh) * | 2017-04-27 | 2017-09-22 | 华中科技大学 | 一种针对虚拟机回滚的软件补偿方法及系统 |
CN107194247B (zh) * | 2017-04-27 | 2020-02-21 | 华中科技大学 | 一种针对虚拟机回滚的软件补偿方法及系统 |
CN107918555A (zh) * | 2017-11-23 | 2018-04-17 | 北京百度网讯科技有限公司 | 基于物理主机的用于处理数据的方法和装置 |
CN107918555B (zh) * | 2017-11-23 | 2021-07-23 | 北京百度网讯科技有限公司 | 基于物理主机的用于处理数据的方法和装置 |
CN109460285A (zh) * | 2018-11-01 | 2019-03-12 | 郑州云海信息技术有限公司 | 一种虚拟化平台中存储系统的挂载方法及相关装置 |
CN113806099A (zh) * | 2021-09-13 | 2021-12-17 | 北京计算机技术及应用研究所 | 一种基于二值计算的多核自旋锁设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103473135B (zh) | 2016-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103473135A (zh) | 虚拟化环境下自旋锁lhp现象的处理方法 | |
US11797327B2 (en) | Dynamic virtual machine sizing | |
KR100992291B1 (ko) | 가상 머신 모니터와 정책 가상 머신 간의 양방향 통신 방법 및 장치와, 가상 머신 호스트 | |
EP3039540B1 (en) | Virtual machine monitor configured to support latency sensitive virtual machines | |
CN102713847B (zh) | 处理器内核的监管程序隔离 | |
US20150370591A1 (en) | Hypervisor context switching using a redirection exception vector in processors having more than two hierarchical privilege levels | |
US10409633B2 (en) | Hypervisor-visible guest thread management | |
US8539499B1 (en) | Symmetric multiprocessing with virtual CPU and VSMP technology | |
EP1612669A2 (en) | Support for transitioning to a virtual machine monitor based upon the privilege level of guest software | |
US9959134B2 (en) | Request processing using VM functions | |
CN101271401A (zh) | 一种具备单一系统映像的服务器机群系统 | |
US9864626B2 (en) | Coordinating joint operation of multiple hypervisors in a computer system | |
US9639486B2 (en) | Method of controlling virtualization software on a multicore processor | |
US11099884B2 (en) | Dynamic control of halt polling based on receiving a monitoring instruction executed by a guest | |
US20060005003A1 (en) | Method for guest operating system integrity validation | |
CN106030515A (zh) | 用于多处理器和多核平台的二进制翻译 | |
WO2018040845A1 (zh) | 一种计算资源调度方法及装置 | |
WO2017112126A1 (en) | Starting application processors of a virtual machine | |
Ma et al. | Performance Tuning Towards a KVM-based Embedded Real-Time Virtualization System. | |
US11436141B2 (en) | Free memory page hinting by virtual machines | |
US11106481B2 (en) | Safe hyper-threading for virtual machines | |
US9323564B2 (en) | Systems, methods and computer program products for bootstrapping a type 1 virtual machine monitor after operating system launch | |
US20140298352A1 (en) | Computer with plurality of processors sharing process queue, and process dispatch processing method | |
CN104765613A (zh) | 一种虚拟化环境下面向任务并行编程模型的优化方法 | |
Panneerselvam et al. | Dynamic processors demand dynamic operating systems |
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 |