虚拟机监视器识别客户操作系统中进程的方法及装置的制作方法

文档序号:6609989阅读:169来源:国知局

专利名称::虚拟机监视器识别客户操作系统中进程的方法及装置的制作方法
技术领域
:本发明涉及进程监控技术,特别是一种虛拟机监视器识别客户操作系统中运行进程的方法及装置。
背景技术
:在虚拟环境下,VMM(VirtualMachineMonitor,虚拟机监视器)中只能看到其上GOS('GuestOperationSystem,客户操作系统)的整体运行情况,如GOS的资源占用情况,运行状态情况等,但难以识别和定位GOS中运行进程。但定位和监控GOS中的运行进程又具有非常重要的作用,如对GOS系统负载监视、对GOS系统进程资源使用情况监控、对GOS系统进程死锁检测和解锁、对GOS中给定进程打补丁等都需要定位GOS中的运行进程。因此,有必要开发一种识别客户操作系统中运行进程的方法及装置,以定位和监控GOS中的运行进程。
发明内容本发明的目的是提供一种虛拟机监视器识别客户操作系统中进程的方法及装置,定位和监控GOS中的运行进程。为了实现上述方法,本发明提供了一种虚拟机监视器识别客户操作系统中进程的方法,包括步骤IOI,客户操作系统进行进程切换时,虚拟机监视器纪录待运行进程的页表信息;步骤102,虚拟机监视器获取当前运行进程的标识信息;步骤103,虛拟机监视器存储上轮记录的待运行进程页目录基地址和当前运行进程的标识信息的对应关系。上述的方法,其中,所述页表信息为页目录基地址。上述的方法,其中,步骤101具体包括步骤IOII,客户操作系统进行进程切换,访问CR3寄存器;步骤1012,虚拟机监视器捕获客户操作系统访问CR3寄存器的操作;步骤1013,虚拟才几监视器获取待运行进程的页目录物理基地址。上述的方法,其中,所述当前运行进程的标识信息为当前运行进程的进程描述符中的进程可读标识;或虛拟机监一见器为当前运行进程分配的唯一标识。上述的方法,其中,所述当前运行进程的标识信息为当前运行进程的进程可读标识时,所述进程描述符由虚拟机监视器从底层硬件获取,或通过特定接口/A^户操作系统获取。上述的方法,其中,所述步骤101中,还包括一判断步骤,判断获取的页目录基地址是否已经保存,如果是,则结束处理,否则进入步骤102。上述的方法,其中,所述步骤103中,上轮记录的待运行进程页目录基地址和当前运行进程的标识信息的对应关系以键值对方式存储。为了更好的实现上述目的,本发明还提供了一种虚拟机监视器识别客户操作系统中进程的装置,其中,包括页目录基地址纪录模块,用于在客户操作系统进行进程切换时,纪录待运行进程的页表信息;进程标识信息获取模块,用于获取当前运行进程的标识信息;存储模块,用于存储上轮记录的待运行进程页表信息和当前运行进程的标识信息之间的对应关系。上述的装置,其中,所述页表信息为页目录基地址。上述的装置,其中,所述当前运行进程的标识信息为当前运行进程的进程描述符中的进程可读标识;或进程标识信息获^^莫块为当前运行进程分配的唯一标识。本发明的方法和装置,通过存储进程页目录基地址和进程的标识信息的对应关系,实现了虛拟机监视器对GOS中的运行进程的定位和监控,将虚拟机监视器对GOS的管理力度提高为进程级。在本发明的基础上,可实现很多虚拟环境管理的高级功能,如VMM对GOS进程控制;以进程为单位的资源分配;死锁;险测;虚拟环境中的进程迁移,GuestOS系统加固,以及为GOS中给定进程打patch等重要应用。图1为本发明的方法的实施例的流程示意图。具体实施方式本发明通过在进程切换时,由VMM记录待运行进程页表信息和当前运行进程的标识信息后,然后根据页表信息和标识信息来识别进程。下面以页目录基地址为例对本发明的方法和装置进行详细说明,但应当理解的是,利用页表信息中的其他信息也可实现本发明。如图1所杀,为本发明的方法的实施例的流程示意图,其包括步骤101,GOS进行进程切换时,VMM纪录待运行进程的页目录基地址;步骤102,VMM获取当前运行进程的标识信息;步骤103,VMM存储上轮记录的待运行进程页目录基地址和当前运行进程的标识信息的对应关系。下面对每个步骤进行进一步详细说明。在步骤101中,GOS进行进程切换,有可能在内核态的非中断上下文调用,如系统调用或驱动程序中等,也可能在内核态的中断上下文调用,如时钟中断的timekeeping阶段。在步骤101中,GOS进行进程切换时,会载入待运行进程的页目录,而载入待运行进程的页目录需要执行以下操作从CR3寄存器中获取页目录的物理基地址和载入对应的页表。很明显,一旦GOS访问CR3寄存器,就会被VMM捕获,引发GOS到VMM运行环境的切换,此时,VMM即可获取待运行进程的页目录物理基地址。在步骤102中,当前运行进程的标识信息可以包括两种情况1、当前运行进程的标识信息为当前运行进程的进程可读标识;2、VMM为当前运4亍进程分配唯一的标识。在第二种情况下,只需要保证为当前运行进程分配的标识与已分配给其他已运行进程的标识不同即可实现,在此不进行详细描述。但很明显,利用进程可读标识来标识当前运行进程可以更有效地根据进程名称来监控进程。下面就针对这种情况,即进程的标识信息为进程可读标识这一种情况进行详细i兌明。客户操作系统为每个进程都对应维护一个进程描述符,而该进程描述符中包括进程可读标识。以Linux操作系统为例,Linux进程管理中当前运行进程的进程描迷符可通过内核或中断堆栈指针信息解析出,因为堆栈信息和进程信息被安排在相连的页面中存储。因此,可通过如下代码获取当前运行进程的进程描述符。movl$0xffffe000,%ecx/*or0xfffff000for4KBstacks*/andl%esp,%ecxmovl(%ecx),p而对于Windows操作系统来讲,当前运行进程的进程描述符可从prcb(processorcontrolblock)解析获得,对于每一种处理器来说,prcb的地址是固定的,因此VMM可根据该地址方便的获取当前运行进程的进程描述符。在获取了当前运行进程的进程描述符后,即可从中获取当前运行进程的进禾呈可读标识。当然,VMM获取该进程描述符还可以是,由GOS通过特定接口将进程描述符表暴露给VMM,如通过虚拟设备的方式告诉VMM。上述两种获取进程描述符的方式的不同之处在于,前一种方式不需要GOS的参与,而后一种方式需要与GOS交互获取进程描述符,因此需要对GOS作出修改。同时,为了避免重复存储,在步骤101中,在VMM获取了待运行进程的页目录基地址之后,还可包括一判断步骤,判断待运行进程的页目录基地址是否已经保存,如果是,则说明前面的处理中已经保存了页目录基地址和进程的标识信息的对应关系,表明该待运行进程已经为VMM所识别,不需要继续处理,否则表明该待运行进程还没有-皮VMM所识别,因此,进入步骤102中,进行进一步的识别处理。在步骤103中,VMM对应存储上轮记录的待运行进程页目录基地址和当前运行进程的标识信息,根据该存储的对应信息即可识别和跟踪客户操作系统中的运行进程。待运行进程页目录基地址和当前运行进程的标识信息可以按键值对的方式存储。在步骤103中,可以发现,对应存储的是上轮记录的待运行进程页目录基地址和当前运行进程的标识信息,因为相对当前运行进程来说,在上一轮的进程切换中,其身份为待运行进程,因此,在103中,对应存储的是上轮记录的待运行进程页目录基地址和当前运行进程的标识信息,以保证二者之间的正确对应。下面以实际例子来说明。假设目前VMM中已经保存了进程A的信息,如下表所示:<table>tableseeoriginaldocumentpage8</column></row><table>且假设目前在运行的进程为进程B,同时待运行进程为进程C。下面以上述的情况进行说明。从上面的情况可以知道,在进行进程B到进程C的切换之前已经发生进程A到进程B的切换,利用本发明的方法可以获取以下信息GOS进行进程A到进程B的切换,VMM纪录待运行进程(进程B)的页目录基地址(在此,4艮设为地址2);VMM获取当前运行进程(进程A)的标识信息;此时,进行进程B到进程C的切换,利用本发明的方法如下GOS进行进程B到进程C的切换,VMM纪录待运行进程(进程C)的页目录基地址(在此,布支设为地址3);VMM获取当前运行进程(进程B)的标识信息(在此,假设为BCD)。在此之后,VMM会对应存储上轮记录的待运行进程(进程B)页目录基地址(地址2)和当前运行进程(进程B)的标识信息(BCD)。因此,更新后,保存的对应关系如下:<table>tableseeoriginaldocumentpage9</column></row><table>依此类推,可以发现,后续的进程C、进程D、…都可以利用本发明的方法,由VMM进4亍识别。本发明具体实施例中的装置包括页目录基地址纪录模块,用于在GOS进行进程切换时,纪录待运行进程的页目录基地址;进程标识信息获取模块,用于获取当前运行进程的标识信息;存储模块,用于存储上轮记录的待运行进程页目录基地址和当前运行进程的标识信息之间的对应关系。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应^L为本发明的保护范围。权利要求1.一种虚拟机监视器识别客户操作系统中进程的方法,其特征在于,包括步骤101,客户操作系统进行进程切换时,虚拟机监视器纪录待运行进程的页表信息;步骤102,虚拟机监视器获取当前运行进程的标识信息;步骤103,虚拟机监视器存储上轮记录的待运行进程页表信息和当前运行进程的标识信息的对应关系。2.根据权,要求1所述的方法,其特征在于,所述页表信息为页目录基地址。.3.根据权利要求2所述的方法,其特征在于,所述步骤101具体包括步骤IOII,客户操作系统进行进程切换,访问CR3寄存器;步骤1012,虚拟机监视器捕获客户操作系统访问CR3寄存器的操作;步骤1013,虚拟机监视器获取待运行进程的页目录物理基地址。4.根据权利要求1或2所述的方法,其特征在于,所述当前运行进程的标识信息为当前运行进程的进程描述符中的进程可读标识;或虚拟机监^f见器为当前运行进程分配的唯一标识。5.根据权利要求4所述的方法,其特征在于,所述当前运行进程的标识信息为当前运行进程的进程可读标识时,所述进程描述符由虛拟机监视器从底层硬件获取,或通过特定接口从客户操作系统获取。6.根据权利要求2所述的方法,其特征在于,所述步骤101中,还包括一判断步骤,判断获取的页目录基地址是否已经保存,如果是,则结束处理,否则进入步骤102。7.根据权利要求2所述的方法,其特征在于,所述步骤103中,上轮记录的待运行进程页目录基地址和当前运行进程的标识信息的对应关系以键值对方式存储。8.—种虚拟机监视器识别客户操作系统中进程的装置,其特征在于,包括页目录基地址纪录模块,用于在客户操作系统进行进程切换时,纪录待运行进程的页表信息;进程标识信息获取模块,用于获取当前运行进程的标识信息;存储模块,用于存储上轮记录的待运行进程页表信息和当前运行进程的标识信息之间的对应关系。9.根据权利要求8所述的装置,其特征在于,所述页表信息为页目录基地址。10.根据权利要求8或9所述的装置,其特征在于,所述当前运行进程的标识信息为当前运4亍进程的进程描述符中的进程可读标识;或进程标识信息获取模块为当前运行进程分配的唯一标识。全文摘要本发明提供一种虚拟机监视器识别客户操作系统中进程的方法及装置,其中,该方法包括步骤101,客户操作系统进行进程切换时,虚拟机监视器纪录待运行进程的页表信息;步骤102,虚拟机监视器获取当前运行进程的标识信息;步骤103,虚拟机监视器存储上轮记录的待运行进程页表信息和当前运行进程的标识信息的对应关系。本发明的方法和装置,通过存储进程页表信息和进程的标识信息的对应关系,实现了虚拟机监视器对GOS中的运行进程的定位和监控,将虚拟机监视器对GOS的管理力度提高为进程级。文档编号G06F11/34GK101334751SQ20071011818公开日2008年12月31日申请日期2007年6月29日优先权日2007年6月29日发明者华康申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1