CN101876918A - 虚拟机客户操作系统同步任务感知方法 - Google Patents

虚拟机客户操作系统同步任务感知方法 Download PDF

Info

Publication number
CN101876918A
CN101876918A CN2009102379967A CN200910237996A CN101876918A CN 101876918 A CN101876918 A CN 101876918A CN 2009102379967 A CN2009102379967 A CN 2009102379967A CN 200910237996 A CN200910237996 A CN 200910237996A CN 101876918 A CN101876918 A CN 101876918A
Authority
CN
China
Prior art keywords
virtual machine
thread
task
operating system
running
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
Application number
CN2009102379967A
Other languages
English (en)
Other versions
CN101876918B (zh
Inventor
白跃彬
许聪
李智
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN 200910237996 priority Critical patent/CN101876918B/zh
Publication of CN101876918A publication Critical patent/CN101876918A/zh
Application granted granted Critical
Publication of CN101876918B publication Critical patent/CN101876918B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

一种在VMM(Virtual Machine Monitor)中根据截获的Guest OS的硬件访问信息和GUEST OS的进程和线程的管理信息,在系统运行时自动识别GUEST OS中正在运行的进程和线程运行状态的方法,进而通过R-S分析法判断Guest OS中运行的程序的类型并以此对虚拟机(VM)进行分类。

Description

虚拟机客户操作系统同步任务感知方法
技术领域
本发明涉及计算机科学中的多核处理器以及虚拟机领域,特别是基于虚拟SMP平台的虚拟机任务同步感知方法。
背景技术
虚拟机(VM)是支持多操作系统并行运行在单个物理服务器上的一种系统,能够更加有效地利用底层硬件资源。随着计算机硬件的飞速发展,计算机的性能也迅速提高,尤其是多核处理器的出现和普及,使得日常人们使用的个人计算机(PC)具有了与以往高性能服务器相当的性能。而用户在日常使用中很少能够充分发挥出计算机的性能造成了大量计算资源的浪费。因此,将虚拟化技术应用到当今各种高性能计算机上,将一套硬件资源划分成若干个虚拟的个人终端或者服务器成了充分利用计算机资源,提高硬件利用率的一条有效途径。如今,Xen,VMWare,KVM等虚拟化方案已经成为高性能数据中心,大型服务器,系统软件开发等领域用来降低硬件采购成本,降低能源消耗,处理系统突发问题和调试系统软件的常用手段。同时虚拟化技术还在虚拟集群和高性能计算领域有着广阔的利用前景。
在上述应用场景中,由于多核处理器和多处理器的广泛应用,大多数应用程序均采用并行计算的方式来充分利用计算资源。这时就需要与之相符的协同调度算法与之对应,以减少由于虚拟化技术造成的系统消耗。以Xen虚拟机为例,虽然其默认的Credit调度器可以很好的应对多核处理器和多处理器Symmetrical Multi-Processors(SMP)平台,而且拥有很高的系统吞吐率,但是它不能很好的应对并发程序运行时产生的一些问题。例如,在科学计算中,多个线程(或进程)既要并发执行,又需要相互同步。比如一个线程需要等待另一个线程的结果才能继续执行,这种情况就需要另一个线程能尽快执行得到结果;而多个线程会在不同的CPU上执行以达到并发。这种应用如果在虚拟CPU(VCPU)不同步的虚拟机上运行,就会发生因另一个VCPU未及时运行而带来的其它VCPU空等的现象,显然这将造成并发程序执行性能的下降。为此,人们提出了能够让VCPU同时运行的协同调度方法co-scheduling方法。但是由于缺乏虚拟机监视器(VMM)与虚拟机中的客户操作系统(Guest OS)的交流,传统的被动的调度策略都无法应对虚拟机中应用程序运行方式的瞬息变化,造成调度粒度无法满足系统的要求。因此,一种能够帮助VMM识别虚拟机中应用程序的运行方式和运行状态,帮助调度器实时地采用相对应的调度策略的方法显得十分必要。
发明内容
本发明涵盖一般的虚拟机资源监控方法,重点以识别虚拟机中Guest OS上运行的应用程序的类型为目标,设计并实现了基于虚拟SMP平台的虚拟机并发任务感知方法。具体包括:
在VMM的Hypervisor层加入了虚拟机任务类型识别器,用于在虚拟机中的应用程序在进程创建或进程切换时截获驱动虚拟机(Domain0)访问硬件资源的信息;
根据截获的硬件访问信息,查找虚拟机Guest OS中进程对应的结构体在内存中的首地址,并还原出该进程task_struct结构,并得出进程中的线程数和线程状态。
根据线程相互间的运行状态,把虚拟机中正在运行的应用程序分为普通型和并发型两种,前者以单进程或单线程的方式运行;后者多以多进程或多线程的方式并发运行,进程或线程在程序的运行过程中需要相互同步。
对其VCPU仍采用类似Credit的调度方法已获得较高的吞吐率,待虚拟机任务感知识别器识别出虚拟机Guest OS中的应用类型后,将相关信息告知VCPU调度器。
与现有技术相比较,本发明的创新之处在于:能够为虚拟机中运行的并发程序暂时模拟一个类似物理计算机的运行环境,使得该虚拟机的VCPU能够同时运行,降低了并发程序的进程或线程之间的同步消耗。具体体现在:
1.本发明中,动态监视虚拟机客户操作系统中进程或线程的状态,根据对二者的分析可以得出当前虚拟机中的任务类型,将对虚拟机任务的监控从系统级提高到任务级。
2.本发明中,对于Guest OS中进程或线程的监控不需要更改Guest OS和应用程序本身,也不需要在虚拟机中安装任何额外的软件。
3.本发明中,可以将对虚拟机任务的监控信息与虚拟机调度器共享,为VCPU的调度提供依据信息。
本发明提出如下方法:
一种基于多核处理器平台的虚拟机客户操作系统同步任务感知方法,包括从虚拟机监视器追踪虚拟机客户操作系统中任务所对应的进程和线程的步骤和通过线程同步分析法判断客户操作系统运行的任务的类型并以此对虚拟机进行分类的步骤,其特征在于:
从虚拟机监视器追踪虚拟机客户操作系统中任务所对应的进程和线程的步骤进一步包括:
1)虚拟机监视器读取客户操作系统在做进程切换时特权寄存器CR3中待运行进程的页表基地址;
2)虚拟机监视器读取客户操作系统的内核堆栈指针ESP;
3)将ESP指向的地址和0xffffe000做与操作,得到当前进程描述结构的首地址;
4)分析当前进程描述结构,得到进程描述符PID;
5)将上述步骤1)中读取的在特权寄存器CR3中的待运行进程的页表基地址和本次获得的当前进程的PID作为键值对,保存到多维向量中,在下一次追踪时用来做对比数据,以判断进程的状态变化;
通过线程同步分析法判断客户操作系统中运行的任务的类型并以此对虚拟机进行分类的步骤包括:
1)根据多个线程的线程ID和线程之间的关系,判断其是否属于同一个进程,即判断应用程序是否是多线程程序;
2)启动定时器,读取并记录同属一个进程的一组线程的运行状态;
3)如果同属一个进程的一组线程中的线程在一定时间段内交替出现可运行状态(Running),睡眠状态(Stop),则认为出现同步;
4)将任务类型回报给虚拟机监视器,根据虚拟机中运行的任务的类型把虚拟机分为普通任务型和并发任务型。
2、根据权利要求1所述的方法,其特征在于,虚拟机客户操作系统是Linux。
3、根据权利要求1或2所述的方法,其特征在于:当客户操作系统做进程创建,销毁或切换时,通过访问特权寄存器CR3载入新进程的页表基地址,建立并维护一个虚拟机上客户操作系统的进程踪迹记录。
其中,虚拟机监视器为Xen。
其中,线程同步分析法先要分析客户操作系统中的应用程序是否是多线程程序,如果是单线程程序则直接返回结果为非并发非同步程序。
其中,线程同步分析方法要排除应用程序主线程的干扰,如果主线程不参与多线程程序所进行的并行计算,则不将主线程运行状态记入线程状态记录。
其中,线程同步分析方法要使用定时器测量一段时间内线程间可运行状态(Running),睡眠(Stop)状态交替出现的密度,根据测量值衡量该应用程序发生同步操作的粒度。
其中,线程组在一定时间段内交替出现可运行状态(Running),睡眠状态(Stop)是指在某一时刻线程组中所有线程的运行状态不完全相同,可能是可运行状态(Running)也可能是睡眠状态(Stop),并且在一段时间的不同时刻线程组中的线程自身交替出现可运行状态(Running)和睡眠状态(Stop)。
其中,把虚拟机中正在运行的任务分为普通型和并发型两种,前者以单线程的方式运行;后者多以多线程的方式并发运行,且线程之间在程序的运行过程中需要相互同步,根据虚拟机中运行的任务的类型把虚拟机也分为普通任务型和并发任务型,如果发现某一虚拟机内运行着同步任务,即线程间不断发生同步操作的多线程程序,则认为该虚拟机为并发任务型,否则认为是普通任务型。
附图说明
图1基于虚拟SMP平台的虚拟机Guest OS同步任务感知方法的体系结构
图2任务感知流程图
图3进程切换示意图
图4VMM信号传递示意图
具体实施方式
要分析虚拟机任务的类型,首先要能够追踪到应用程序对应的进程或线程,然后根据进程与线程间的协同关系,得出任务的类型。以Xen虚拟机为例,若干虚拟机共享一台物理设备,虽然每台虚拟机拥有自己独立的虚拟内存,但是这些虚拟内存只是计算机物理内存上的一个子集,进程在创建,销毁和切换时仍然要将存在于虚拟机虚拟内存中的进程空间映射到计算机的物理内存上。因此,可以通过特定的方法在计算机的物理内存中找到虚拟机应用程序所对应的内存空间。由于在Linux系统中,线程被作为一个轻量级进程来看待,同样使用task struct结构来标示,因此可以采用类似的方法追踪多线程应用程序。
首先根据从VMM(Virtual Machine Monitor)中截获的硬件访问信息和客户操作系统的进程管理信息,可以在系统运行时自动识别在客户操作系统中运行的进程,不需要对客户操作系统做任何修改或者安装任何软件,可以将VMM的监控粒度从系统级别提高到进程级别。
在x86体系结构中,对于操作系统切换进程页表的操作,物理硬件通过提供一个特权CR3寄存器来实现该接口,操作系统只需执行″mov pgtable,%%cr3″汇编指令即可。由于VMM完全控制主机物理内存,不允许Guest OS修改物理CR3寄存器,因此VMM会分配一个影子CR3给Guest OS,利用陷阱(Trap)的方式从Guest OS手中获得执行控制权,然后将pgtable代表的客户机物理地址(Guest Physical Address)填入影子CR3寄存器,返回到Guest OS中。即当客户操作系统做进程切换时,进程调度器会访问特权寄存器CR3载入新进程的页表基地址,这样的动作会在支持Intel-VT技术的多核处理器环境下造成一个由非根环境到根环境的切换,即vmexit。本方法会利用这个切换时的陷入时机和所带硬件信息建立并维护一个客户操作系统进程踪迹表。这是一个名为GPTR的多维向量,其中包含两个信息,客户操作系统的进程页目录地址PPDA,和客户操作系统进程的名字或标识符PID。PPDA的值可以从多核CPU的特权寄存器CR3中获取,进程的PID可以从客户操作系统的进程描述结构task_struct中获得。
Figure B2009102379967D0000051
有了GPTR向量,就可以在运行时识别客户操作系统的运行进程。用被VMM捕获的客户操作系统当前进程的PPDA做为键值,在GPTR的PPDA记录向量里进行匹配查询,从返回的结果即可以识别客户操作系统中具体在实际运行的进程。值得注意的是,寻找客户操作系统进程描述结构的方法需要根据实际使用的操作系统而定。在Linux操作系统中,根据内核堆栈的编译选项,当前进程描述符号的索引和内核堆栈连续存放于2页或1页内,由于内核堆栈指针ESP在访问CR3产生的陷入也会被VMM获得,所以通过分析内核堆栈指针就可以定位进程描述结构在内存中的位置,从而解析出该进程描述结构中存储的相关信息,进而获得虚拟机上的客户操作系统的进程运行状态。虚拟机进程跟踪模块周期性的采集客户操作系统中的进程信息并将结果存到一个文本文件中,供资源监控主模块读取,优选的该文件是只有root用户才可访问的文本文件。具体过程见图3所示。
当客户操作系统为Linux且宿主机运行在支持Intel-VT的多核处理器上时,采用以下步骤完成客户操作系统进程的识别:①虚拟机监视器读取特权寄存器CR3中保存的进程页表基地址,如果该地址已存在于步骤5中所述的多维向量中则返回,否则认为客户操作系统切换至新的进程或创建了新的进程,转入步骤2;②VMM读取客户操作系统的内核堆栈指针ESP;③将ESP指向的地址和0xffffe000做与操作,得到当前进程描述结构的首地址;④分析当前进程描述结构,得到进程描述符PID;⑤将上一次读取的保存在特权寄存器CR3中的待运行进程的页表基地址和本次获得的当前进程的PID作为键值对,保存到GPTR多维向量中,在下一次追踪时用来做对比数据,以判断当前待运行进程是否是新的进程;
在控制客户操作系统中的进程时,虚拟机进程监控模块从VMM中模拟客户操作系统发送信号给目标进程,目标进程接收到该信号即可以进行对应的操作。在一般的过程中,每个信号的执行过程中信号执行分两个阶段,产生信号和传递信号。在产生信号阶段,用户或者程序利用系统调用sys_signal在目标进程的描述结构task_struct中设置涉及到信号的域,以表示信号已到。在传递信号阶段,内核会通过检查目标进程的描述符中涉及信号的域得知其是否有未处理信号,如果存在这样的未处理信号,则执行对应的信号处理程序。为了达到在VMM中控制客户操作系统中用户进程的目的,可以用VMM代替用户或者程序向目标进程产生信号。具体实现方法如下:
Figure B2009102379967D0000061
在VMM中执行第一步产生信号的过程,为客户操作系统的目标进程的描述符中和信号相关联的pending域中的SIGNAL标识置位,按照相应的信号的序号SIG_ID,通过以下语句完成置位;
set.sig[SIG_ID-1)/32]|=1UL<<(SIG_ID-1)%32)
同时设置目标进程描述符中thread_info域中的TIF_SIGPENDING标识,内核会在恢复进程执行前检查该标志是否被设置,当其被设置时,内核会去处理该信号。
Figure B2009102379967D0000062
由客户操作系统内核按原先方式执行第二步传递信号的过程,VMM不需要干预。只要客户操作系统的某个目标进程被调度到,内核通过检查该进程的描述符的上述域和标识的值来确定是否需要进行对应操作。其执行效果近似于用户或者程序在客户操作系统的shell下发送某个命令来对进程进行操作,只要该进程被调度到,对应的操作立即执行。(如图4所示)但是,从VMM中对客户操作系统中目标进程操作的前提是目标进程被调度。所以如果目标进程不被调度,比如在阻塞状态,那么该操作就不能立即被执行。这与客户操作系统中的shell命令有所不同的是直接键入shell命令能主动唤醒目标进程,而在VMM中有时可能无法立即唤醒客户操作系统的进程。
在追踪到虚拟机Guest OS中应用程序所对应的进程或线程后即可获得该进程或线程的运行状态,然后采用R-S分析法分析多线程应用程序线程间的协同关系。要分析一个程序是否是高并发多同步的任务,首先要分析改程序是否是一个多线程程序。在Linux系统中线程被看做是轻量级的进程,采用相同的结构task_struct来表示。且同一进程创建的一组线程拥有相同的tgid(thread group ID),并且彼此间的pid(process ID,对于线程而言就是thread ID)相邻,即一个线程组内的线程号为{t0,t0+1,t0+2,……,t0+n}。因此通过下列方法判断一组线程是否由同一个进程创建:
threadID ∈ { t | t i + 1 = t i + 1 } - - - ( 1 ) ∀ gpi d i ∈ t i , gpi d j ∈ t j , ∃ gpi d i = g pid j - - - ( 2 )
Linux下线程作为一个轻量级进程,其状态类型与进程状态是一致的:
1)可运行状态:可运行状态是那些正在等待CPU资源的任务的状态,这些任务在就绪队列run-queqe中等待运行。这些任务只要得到CPU资源就马上可以运行。
2)可打断睡眠状态:处于等待队列中的任务,待资源有效时唤醒,也可由其它任务被信号中断、唤醒后进入就绪状态。
3)不可打断睡眠状态:处于等待队列中的任务,直接等待硬件条件,待资源有效时唤醒,不可由其它任务通过信号中断、唤醒;这类状态的任务其睡眠的时间相对比较短。与可打断睡眠状态的区别就是后者可以由信号唤醒。
4)僵死状态:虽然此时已经释放了内存、文件等资源,但是还没有释放任务控制块task_struct数据结构项。它不进行任何调度或状态转换,等待父任务将它彻底释放。
5)暂停状态:可能是任务控制信号所致,或者正在被跟踪调试,而导致暂时停止运行;需要其它任务的信号才能唤醒。任务被暂停,通过其它任务的信号才能唤醒。正在调试的任务可以在该停止状态。
6)TAS_DEAD:已经退出且不需要父任务回收的任务的状态。
在大多数情况下,所有线程的状态以可运行状态(R)和睡眠状态(S)为主。可运行状态表明线程已经具备执行该任务的所有前提,如执行所需资源都已经获取。而可打断睡眠状态表明某些资源尚未获得,因此不具备执行的条件,即使可执行队列轮询到了该线程,其也会主动放弃cpu的使用权。
线程之间的状态关系是体现同步与否的重要特征。对于同一个进程p所创建的2个线程{t1,t2},如果某一时刻,线程t1的状态为R,线程t2的状态为S,则表明t2所需要执行的部分资源已经被其它线程抢占,而线程的资源来自于进程p,使用进程p资源的线程只有p本身以及其所创建的线程,所以在该时刻,t2所需的资源被t1所抢占。以上分析表明,在该时刻,t1试图访问临界资源,而该资源已被其它线程获得,因此t1进入S状态。
我们将以上现象称为R-S,即来自同一进程的2个线程在某一时刻分别为R和S状态。
下列实验统计了R-S现象在同步线程和非同步线程中出现的次数。
实验数据如下:
Figure B2009102379967D0000072
Figure B2009102379967D0000081
表1
进程affinityPV:创建2个线程,用于PV操作。是一个典型的同步进程。
进程ul_80:创建2个线程,不涉及同步操作,为非同步CPU密集型的进程。
分别运行这2个程序10次,每次读取100次状态信息,统计两个线程出现R-S的次数。
表1的实验结果表明,需要同步的线程其出现R-S的频率极为频繁,而非同步线程出现该情况的次数为0,这进一步证明的R-S是同步线程的显著特征。因此,通过R-S的变化情况来反映线程的同步状况是可行的。
以上分析表明,R-S的变化情况可以有效的判定线程的同步状况。而在VM中,由于OS只能看到VCPU,并且对于同步的线程,OS会尽量的将其分配到不同的VCPU中。VCPU与真实的CPU的区别之一在于VCPU如果不在运行一个任务,并不代表其运行队列为空。因此,在VM中,VCPU的状态是否会影响同步线程的状态,将直接影响到对domainU的同步线程感知结果。
GuestOS与一般的OS相同,其调度的单位都为线程,并且GuestOS将VCPU当作真实的CPU,而没有权限去获得VCPU状态,而线程的状态的改变取决于GuestOS,而不是VCPU。因此,VCPU的状态变化不会对线程状态造成影响。
实验2分别在Domain0和DomainU下运行ul_80非同步程序和affinityPV同步程序,每次读取100次状态信息,统计ul_80两个线程出现R-S的次数。结果如表2所示:
表2
由于affinityPV与ul_80会一共创建4个线程,因此VCPU会不停的调入调出,使得其状态发生变化。表2的实验结果表明,非同步程序的线程状态并没有因为VCPU的状态变化而发生改变,没有出现R-S情况。因此,在DomainU中,通过获取线程的R-S的信息,可以有效的判断线程的同步与否。
经过多次实验,分别运行同步多线程测试程序集OMPBenchmark和非同步测试程序macro-benchmark各50次,结果如表3,可见感知准确率均为100%。
Figure B2009102379967D0000091
表3
在判断出线程间的同步关系后,即可判断出该应用程序的类型。我们把虚拟机中正在运行的应用程序分为普通型和并发型两种,前者以单线程的方式运行;后者多以多线程的方式并发运行,且线程之间在程序的运行过程中需要相互同步。根据虚拟机中运行的应用程序的类型把虚拟机也分为普通任务型和并发任务型。如果发现某一虚拟机内运行着同步任务,即线程间不断发生同步操作的多线程程序,则认为该虚拟机为并发任务型,否则认为是普通任务型。感知结果将通过Dom_Ctrl接口反馈给虚拟机VCPU调度器。

Claims (10)

1.一种基于多核处理器平台的虚拟机客户操作系统同步任务感知方法,包括从虚拟机监视器追踪虚拟机客户操作系统中任务所对应的进程和线程的步骤和通过线程同步分析法判断客户操作系统运行的任务的类型并以此对虚拟机进行分类的步骤,其特征在于:
从虚拟机监视器追踪虚拟机客户操作系统中任务所对应的进程和线程的步骤进一步包括:
1)虚拟机监视器读取客户操作系统在做进程切换时特权寄存器CR3中待运行进程的页表基地址;
2)虚拟机监视器读取客户操作系统的内核堆栈指针ESP;
3)将ESP指向的地址和0xffffe000做与操作,得到当前进程描述结构的首地址;
4)分析当前进程描述结构,得到进程描述符PID;
5)将上述步骤1)中读取的在特权寄存器CR3中的待运行进程的页表基地址和本次获得的当前进程的PID作为键值对,保存到多维向量中,在下一次追踪时用来做对比数据,以判断进程的状态变化;
通过线程同步分析法判断客户操作系统中运行的任务的类型并以此对虚拟机进行分类的步骤包括:
1)根据多个线程的线程ID和线程之间的关系,判断其是否属于同一个进程,即判断应用程序是否是多线程程序;
2)启动定时器,读取并记录同属一个进程的一组线程的运行状态;
3)如果同属一个进程的一组线程中的线程在一定时间段内交替出现可运行状态(Running),睡眠状态(Stop),则认为出现同步;
4)将任务类型回报给虚拟机监视器,根据虚拟机中运行的任务的类型把虚拟机分为普通任务型和并发任务型。
2.根据权利要求1所述的方法,其特征在于,虚拟机客户操作系统是Linux。
3.根据权利要求1或2所述的方法,其特征在于:当客户操作系统做进程创建,销毁或切换时,通过访问特权寄存器CR3载入新进程的页表基地址,建立并维护一个虚拟机上客户操作系统的进程踪迹记录。
4.根据权利要求3所述的方法,其特征在于虚拟机监视器为Xen。
5.根据权利要求1所述的方法,其特征在于线程同步分析法先要分析客户操作系统中的应用程序是否是多线程程序,如果是单线程程序则直接返回结果为非并发非同步程序。
6.根据权利要求1所述的方法,其特征在于线程同步分析方法要排除应用程序主线程的干扰,如果主线程不参与多线程程序所进行的并行计算,则不将主线程运行状态记入线程状态记录。
7.根据权利要求1所述的方法,其特征在于线程同步分析方法要使用定时器测量一段时间内线程间可运行状态(Running),睡眠(Stop)状态交替出现的密度,根据测量值衡量该应用程序发生同步操作的粒度。
8.根据权利要求1所述的方法,线程组在一定时间段内交替出现可运行状态(Running),睡眠状态(Stop)是指在某一时刻线程组中所有线程的运行状态不完全相同,可能是可运行状态(Running)也可能是睡眠状态(Stop),并且在一段时间的不同时刻线程组中的线程自身交替出现可运行状态(Running)和睡眠状态(Stop)。
9.根据权利要求1所述的方法,把虚拟机中正在运行的任务分为普通型和并发型两种,前者以单线程的方式运行;后者多以多线程的方式并发运行,且线程之间在程序的运行过程中需要相互同步,根据虚拟机中运行的任务的类型把虚拟机也分为普通任务型和并发任务型,如果发现某一虚拟机内运行着同步任务,即线程间不断发生同步操作的多线程程序,则认为该虚拟机为并发任务型,否则认为是普通任务型。
10.一种计算机程序,其运行权利要求1所述的方法。
CN 200910237996 2009-11-27 2009-11-27 虚拟机客户操作系统同步任务感知方法 Expired - Fee Related CN101876918B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910237996 CN101876918B (zh) 2009-11-27 2009-11-27 虚拟机客户操作系统同步任务感知方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910237996 CN101876918B (zh) 2009-11-27 2009-11-27 虚拟机客户操作系统同步任务感知方法

Publications (2)

Publication Number Publication Date
CN101876918A true CN101876918A (zh) 2010-11-03
CN101876918B CN101876918B (zh) 2013-02-13

Family

ID=43019479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910237996 Expired - Fee Related CN101876918B (zh) 2009-11-27 2009-11-27 虚拟机客户操作系统同步任务感知方法

Country Status (1)

Country Link
CN (1) CN101876918B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567072A (zh) * 2010-12-20 2012-07-11 中国移动通信集团公司 一种资源分配方法、装置及系统
WO2014131319A1 (zh) * 2013-02-27 2014-09-04 华为技术有限公司 一种操作系统进程识别跟踪及信息获取的方法和装置
CN104750223A (zh) * 2013-12-26 2015-07-01 联芯科技有限公司 一种降低多核终端内存访问功耗的方法和系统
WO2015131403A1 (zh) * 2014-03-07 2015-09-11 华为技术有限公司 访问文件的方法和相关设备
CN108733449A (zh) * 2017-04-17 2018-11-02 伊姆西Ip控股有限责任公司 用于管理虚拟机的方法、设备和计算机可读存储介质
CN109445877A (zh) * 2018-09-19 2019-03-08 珠海金山网络游戏科技有限公司 一种检测游戏服务器多线程使用同一虚拟机的方法
CN110147269A (zh) * 2019-05-09 2019-08-20 腾讯科技(上海)有限公司 一种事件处理方法、装置、设备及存储介质
CN112395095A (zh) * 2020-11-09 2021-02-23 王志平 一种基于cpoc的进程同步方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100342342C (zh) * 2005-12-14 2007-10-10 浙江大学 支持多进程的Java虚拟机实现方法
CN101430649B (zh) * 2008-11-19 2011-09-14 北京航空航天大学 基于虚拟机的虚拟计算环境系统

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567072A (zh) * 2010-12-20 2012-07-11 中国移动通信集团公司 一种资源分配方法、装置及系统
CN102567072B (zh) * 2010-12-20 2015-04-22 中国移动通信集团公司 一种资源分配方法、装置及系统
WO2014131319A1 (zh) * 2013-02-27 2014-09-04 华为技术有限公司 一种操作系统进程识别跟踪及信息获取的方法和装置
CN104750223A (zh) * 2013-12-26 2015-07-01 联芯科技有限公司 一种降低多核终端内存访问功耗的方法和系统
CN104750223B (zh) * 2013-12-26 2017-05-17 联芯科技有限公司 一种降低多核终端内存访问功耗的方法和系统
WO2015131403A1 (zh) * 2014-03-07 2015-09-11 华为技术有限公司 访问文件的方法和相关设备
CN108733449A (zh) * 2017-04-17 2018-11-02 伊姆西Ip控股有限责任公司 用于管理虚拟机的方法、设备和计算机可读存储介质
CN108733449B (zh) * 2017-04-17 2022-01-25 伊姆西Ip控股有限责任公司 用于管理虚拟机的方法、设备和计算机可读存储介质
CN109445877A (zh) * 2018-09-19 2019-03-08 珠海金山网络游戏科技有限公司 一种检测游戏服务器多线程使用同一虚拟机的方法
CN109445877B (zh) * 2018-09-19 2022-03-18 珠海金山网络游戏科技有限公司 一种检测游戏服务器多线程使用同一虚拟机的方法
CN110147269A (zh) * 2019-05-09 2019-08-20 腾讯科技(上海)有限公司 一种事件处理方法、装置、设备及存储介质
CN110147269B (zh) * 2019-05-09 2023-06-13 腾讯科技(上海)有限公司 一种事件处理方法、装置、设备及存储介质
CN112395095A (zh) * 2020-11-09 2021-02-23 王志平 一种基于cpoc的进程同步方法

Also Published As

Publication number Publication date
CN101876918B (zh) 2013-02-13

Similar Documents

Publication Publication Date Title
CN101876918B (zh) 虚拟机客户操作系统同步任务感知方法
US20170353534A1 (en) Virtual performance monitoring decoupled from hardware performance-monitoring units
EP1899810B1 (en) System and method to optimize os context switching by instruction group trapping
US8479200B2 (en) Virtualizing the execution of homogeneous parallel systems on heterogeneous multiprocessor platforms
Saez et al. PMCTrack: Delivering performance monitoring counter support to the OS scheduler
CN101398769B (zh) 一种对操作系统透明的处理器资源整合利用方法
US10871982B2 (en) Virtual processor scheduling via memory monitoring
US10277477B2 (en) Load response performance counters
CN1828544B (zh) 利用同步开销以改善多线程性能的机制
CN102073535B (zh) 基于硬件计数器虚拟化的多虚拟机性能分析方法
CN104169889A (zh) 在事务执行模式中的运行时间检测采样
Pellegrini et al. Autonomic state management for optimistic simulation platforms
Blagodurov et al. User-level scheduling on NUMA multicore systems under Linux
CN104704474A (zh) 用于管理的运行时间的基于硬件的运行时间检测设施
CN101848549B (zh) 无线传感器网络节点任务调度方法
Olivier et al. Hexo: Offloading hpc compute-intensive workloads on low-cost, low-power embedded systems
Song et al. Characterizing the performance and scalability of many-core applications on virtualized platforms
CN104169887A (zh) 通过指令操作码的运行时间检测间接采样
WO2018063045A1 (en) Process scheduling
CN104169886A (zh) 通过地址的运行时间检测间接采样
Yamamoto et al. Unified performance profiling of an entire virtualized environment
Schildermans et al. Virtualization overhead of multithreading in X86 state-of-the-art & remaining challenges
Berezovskyi et al. Faster makespan estimation for GPU threads on a single streaming multiprocessor
Pinho et al. High Performance Embedded Computing
Taniça et al. Schedmon: A performance and energy monitoring tool for modern multi-cores

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130213

Termination date: 20131127