首页> 中国专利> 一种虚拟机系统及其硬件设备中断处理方法

一种虚拟机系统及其硬件设备中断处理方法

摘要

本发明公开了一种虚拟机系统,该系统包括包括硬件设备,中断控制器,虚拟机监视器,客户操作系统和服务操作系统,其中,虚拟机监视器包括:中断处理模块,用于接收来自中断控制器的硬件设备的中断请求,并通知中断转换模块;中断转换模块,用于根据中断转换表将来自中断处理模块的中断请求转换为虚拟中断请求,并通知虚拟中断控制器;虚拟中断控制器,用于将虚拟中断请求通知客户操作系统进行处理。通过上述系统,硬件设备产生的中断由虚拟机监视器的中断转换模块将其直接通知虚拟中断控制器,而不需要经过服务操作系统的转换过程,从而缩短了客户操作系统进行中断处理响应时间,提高了客户操作系统进行中断处理的效率。

著录项

  • 公开/公告号CN101135997A

    专利类型发明专利

  • 公开/公告日2008-03-05

    原文格式PDF

  • 申请/专利权人 联想(北京)有限公司;

    申请/专利号CN200610128624.7

  • 发明设计人 陈军;石勇;

    申请日2006-08-29

  • 分类号G06F13/24(20060101);G06F9/455(20060101);

  • 代理机构11243 北京银龙知识产权代理有限公司;

  • 代理人曾贤伟

  • 地址 100085 北京市海淀区上地信息产业基地创业路6号

  • 入库时间 2023-12-17 19:49:57

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2009-10-07

    授权

    授权

  • 2008-04-30

    实质审查的生效

    实质审查的生效

  • 2008-03-05

    公开

    公开

说明书

技术领域

本发明涉及虚拟机技术,特别涉及一种虚拟机系统及其硬件设备中断处理方法。

背景技术

一般而言,虚拟机系统通过虚拟机监视器(VMM,Virtual MachineMonitor)来执行硬件和软件的抽象。虚拟机监视器可以将来自客户操作系统(Guest OS)的请求和命令转换成虚拟机系统物理环境的相应请求和命令。

现有虚拟机环境下,客户操作系统不直接访问硬件设备,而是通过服务操作系统(Service OS)模拟的虚拟设备间接访问硬件设备。服务操作系统的虚拟设备直接和对应于客户操作系统的虚拟中断控制器连接。客户操作系统通过中断处理模块配置虚拟设备的中断,并注册响应虚拟设备中断的中断响应函数。

如图1所示,客户操作系统获得硬件设备中断的具体流程为:

硬件设备发生中断时,由中断控制器产生相应的中断请求(InterruptRequest);

虚拟机监视器截获中断请求后,将中断请求通知服务操作系统的设备驱动模块:

然后,设备驱动模块通知服务操作系统的虚拟设备,虚拟设备再通过虚拟中断控制器通知客户操作系统,虚拟设备产生了中断。

在现有技术中,从硬件设备产生中断到被客户操作系统的中断处理模块获得,中断请求需要在虚拟机监视器、服务操作系统之间切换,这样会导致客户操作系统的中断处理响应时间慢,效率低下。

发明内容

本发明的目的在于提供一种虚拟机系统,通过本发明提供的系统,可以提高客户操作系统进行中断处理的效率。

本发明提供的一种虚拟机系统,包括硬件设备,中断控制器,虚拟机监视器,客户操作系统和服务操作系统,其中,虚拟机监视器包括:

中断处理模块,用于接收来自中断控制器的硬件设备的中断请求,并通知中断转换模块;

中断转换模块,用于根据中断转换表将来自中断处理模块的中断请求转换为虚拟中断请求,并通知虚拟中断控制器;

虚拟中断控制器,用于将虚拟中断请求通知客户操作系统进行处理。

其中,上述的中断转换表包含客户操作系统标识,硬件设备标识,中断请求,虚拟中断请求。

中断转换表由虚拟机监视器截获客户操作系统对硬件设备的中断配置产生中断转换表。

当中断转换模块根据中断转换表将中断请求转换为虚拟中断请求,获得多个对应于不同客户操作系统的虚拟中断请求时,中断转换模块依次将多个虚拟中断请求通知对应的虚拟中断控制器;或者在虚拟机监视器维护有客户操作系统的优先级的情况下,中断转换模块将多个虚拟中断请求根据其对应客户操作系统的优先级顺序通知对应的虚拟中断控制器。

上述的中断转换模块用于根据中断转换表将虚拟中断请求的中断结束指令转换为中断请求的中断结束指令,并通知中断控制器。

进一步,上述的中断转换模块将获得的中断请求通知服务操作系统。

通过上述本发明的虚拟机系统处理硬件设备的中断,硬件设备产生的中断由虚拟机监视器的中断转换模块将其直接通知虚拟中断控制器,从而通知客户操作系统,而不需要经过服务操作系统的转换过程,从而缩短了客户操作系统进行中断处理响应时间,提高了客户操作系统进行中断处理的效率。

本发明的另外一个目的在于提供一种硬件设备中断处理方法,通过该方法可以提高客户操作系统进行中断处理的效率。

本发明提供的一种硬件设备中断处理方法,包括如下步骤:

步骤102,虚拟机监视器获得硬件设备的中断请求;

步骤104,虚拟机监视器查询中断转换表获得客户操作系统对应的虚拟中断请求;

步骤106,虚拟机监视器将虚拟中断请求通知客户操作系统;

步骤108,客户操作系统进行中断处理。

本发明提供的方法在步骤108后还可以包括如下步骤:

客户操作系统对虚拟中断控制器写入虚拟中断请求的中断结束指令;

虚拟机监视器根据中断转换表将虚拟中断请求的中断结束指令转换为对应中断请求的中断结束指令,并写入中断控制器。

其中,上述中断转换表包含客户操作系统标识、硬件设备标识、中断请求和虚拟中断请求。

上述中断转换表由虚拟机监视器根据客户操作系统对硬件设备的中断配置生成。

在虚拟机监视器根据中断转换表获得多个对应于不同客户操作系统的虚拟中断请求的时,所述步骤106包含如下步骤:

虚拟机监视器将虚拟中断请求依次通知其对应的客户操作系统,或根据其对应客户操作系统的优先级顺序通知其对应的客户操作系统。

进一步,本发明提供的方法,在虚拟机监视器获得硬件设备的中断请求后,还包括如下步骤:

虚拟机监视器将硬件设备的中断请求通知服务操作系统;

服务操作系统将所述中断请求转换为对应虚拟设备的虚拟中断请求,并通过虚拟中断控制器通知客户操作系统进行处理。

从上面的步骤可以看出,通过本发明上述的虚拟机硬件设备中断处理方法,当硬件设备产生中断时,虚拟机监视器将中断转发给虚拟中断控制器,并通知客户操作系统进行处理,而不需要经过服务操作系统的转换过程,从而缩短了客户操作系统进行中断处理响应时间,提高了客户操作系统进行中断处理的效率。

附图说明

图1所示为现有技术中处理硬件设备中断的虚拟机系统结构示意图;

图2所示为本发明的处理硬件设备中断的虚拟机系统的结构示意图;

图3所示为本发明的虚拟机系统中硬件设备中断处理方法的流程图。

具体实施方式

图2所示是本发明的虚拟机系统的结构示意图。如图所示,本发明的虚拟机系统中包括硬件设备、中断控制器、虚拟机监视器、服务操作系统以及客户操作系统。其中,硬件设备发生中断时,通过中断控制器产生对应的中断请求。

虚拟机监视器中包括:中断处理模块、中断转换模块以及虚拟中断控制器。在虚拟机系统中,每个客户操作系统都存在对应的虚拟中断控制器。

中断处理模块用于配置中断控制器,为硬件设备分配对应的中断请求,并注册用于响应硬件设备中断的中断响应函数;接收中断控制器的中断请求并通知中断转换模块;以及,接收中断转换模块的中断结束指令并通知中断控制器。

虚拟中断控制器用于接收中断转换模块的虚拟中断请求,并通知客户操作系统处理;以及,接收客户操作系统对硬件设备的配置,为硬件设备配置中断请求以及注册用于响应硬件设备中断的中断响应函数。

中断转换模块中包含中断转换表,该中断转换表包含如下内容:客户操作系统标识、硬件设备标识、中断请求和虚拟中断请求。中断转换模块用于接收来自中断处理模块的中断请求,根据中断转换表实现中断请求和虚拟中断请求的转换,并将虚拟中断请求通知虚拟中断控制器。需要指出的是,在存在多个客户操作系统的情况下,中断转换模块根据中断转换表可能获得多个客户操作系统的与该硬件设备的中断请求对应的虚拟中断请求。中断转换模块可以依次将获得的虚拟中断请求通知对应客户操作系统的虚拟中断控制器;或者,在虚拟机监视器维护有客户操作系统的优先级的情况下,中断转换模块按照各个客户操作系统的优先级将获得的虚拟中断请求通知对应客户操作系统的虚拟中断控制器。进一步,中断转换模块还用于接收来自虚拟中断控制器的虚拟中断请求的中断结束(EOI,End of Interrupt)指令,根据中断转换表将中断结束指令中的虚拟中断请求转换为中断请求,然后将转换后的中断结束指令通知中断处理模块。

中断转换表可以通过如下的操作生成:虚拟机监视器截获客户操作系统对硬件设备的中断配置,获得客户操作系统需要访问的硬件设备以及客户操作系统为该硬件设备分配的虚拟中断请求。生成与需要访问的硬件设备对应的包含如下内容的中断转换表:客户操作系统标识、硬件设备标识、中断请求和虚拟中断请求。

上面对本发明的虚拟机系统的各个模块的功能进行了描述,下面介绍中断请求在本发明的虚拟机系统中的处理过程:

硬件设备产生中断时,通过中断控制器产生中断请求;中断处理模块将来自中断控制器的中断请求通知中断转换模块,中断转换模块根据中断转换表检查该中断请求对应的硬件设备是否在客户操作系统需要访问的硬件设备中,如果是,则从中断转换表中获得客户操作系统为该硬件设备配置的虚拟中断请求,然后将转换得到的虚拟中断请求通知虚拟中断控制器;虚拟中断控制器触发虚拟中断请求给客户操作系统,由客户操作系统对该虚拟中断请求进行处理。客户操作系统在处理完中断请求后,对虚拟中断控制器发出虚拟中断请求的中断结束指令,虚拟机监视器的中断转换模块拦截该指令,通过中断转换表获得虚拟中断请求对应的中断请求,然后将转换后的中断请求的中断结束指令通知中断处理模块,并由中断处理模块向中断控制器发送中断请求的中断结束指令。

客户操作系统可以通过虚拟中断控制器设置中断屏蔽和中断优先级。其中,中断请求的屏蔽设置对应于中断屏蔽寄存器位的设置。可以通过设置中断屏蔽寄存器的位来打开或者关闭对应中断请求的屏蔽。如果一个中断请求被屏蔽,则当该中断请求发送到虚拟中断控制器时,虚拟中断控制器将不通知客户操作系统。当具有不同优先级的中断请求到达虚拟中断控制器时,虚拟中断控制器将具有较高优先级的中断请求优先通知到客户操作系统,从而使具有较高优先级的中断请求得到优先的处理。

通过上述本发明的虚拟机系统,当硬件设备产生中断时,虚拟机监视器通过中断转换模块将中断直接通知虚拟中断控制器,而不需要服务操作系统的进一步转换过程,缩短了客户操作系统进行中断处理响应时间,从而提高了客户操作系统进行中断处理的效率。

需要进一步指出的是,中断转换模块在截获客户操作系统对硬件设备的中断配置时,可以通过配置中的设备标识判断出该设备是硬件设备还是虚拟设备。如果是虚拟设备,则中断转换模块不为客户操作系统的该配置建立中断转换表项,而是将其通知服务操作系统的虚拟设备进行相应的处理。当该虚拟设备对应的硬件设备发生中断时,由中断处理模块的中断响应函数响应该中断请求,中断响应函数将中断请求交给中断转换模块处理。中断转换模块将该中断通知服务操作系统的设备驱动模块,由设备驱动模块通知服务操作系统的虚拟设备。虚拟设备通过虚拟中断控制器通知客户操作系统该虚拟设备产生了中断。

中断转换模块将中断请求同时通知服务操作系统,使本发明的虚拟机系统中处理硬件设备中断的系统同时支持虚拟设备和硬件设备的方案,进一步增加了本发明的虚拟机系统对硬件设备中断的处理能力和灵活性。

如图3所示,本发明的硬件设备中断处理方法,包括如下步骤:

步骤302,硬件设备通过中断控制器产生中断请求,虚拟机监视器获得硬件设备的中断请求。

步骤304,虚拟机监视器根据中断转换表查找客户操作系统为对应硬件设备分配的虚拟中断请求。

虚拟机监视器得到中断请求后,通过查询中断转换表,查找客户操作系统为对应的硬件设备分配的虚拟中断请求。上述中断转换表包含的内容有:硬件设备标识,中断请求,虚拟中断请求,以及客户操作系统标识。所以由中断请求可以获得对应的虚拟中断请求和需要访问该硬件设备的客户操作系统。在中断转换表中,对应于同一个中断请求,可能存在多个客户操作系统的与该中断请求对应的虚拟中断请求。

步骤306,虚拟机监视器将虚拟中断请求通知客户操作系统。

当查找到满足条件的虚拟中断请求和客户操作系统后,虚拟机监视器通过虚拟中断控制器对客户操作系统触发虚拟中断请求。虚拟机监视器可以直接调用客户操作系统中断描述符表(IDT,Interrupt Descriptor Table)里对应虚拟中断请求的向量执行客户操作系统的中断处理程序;或者,在支持通知客户操作系统的中断产生的CPU体系结构里直接使用相应的通知客户操作系统中断产生机制。

在多个客户操作系统存在与该中断请求对应的虚拟中断请求的情况下,虚拟机监视器可以依次将获得的虚拟中断请求通知对应的客户操作系统;或者,在虚拟机监视器维护有客户操作系统的中断请求优先级的情况下,虚拟机监视器按照各个客户操作系统的中断请求优先级将虚拟中断请求通知对应的客户操作系统。

步骤308,客户操作系统进行中断处理。客户操作系统收到中断请求后,调用相应的中断处理模块对中断进行处理。

本发明的硬件设备中断处理方法,当客户操作系统的中断处理模块处理完中断后,还可以包括如下步骤:

步骤310,客户操作系统对虚拟中断控制器写入虚拟中断请求的中断结束指令。

步骤312,虚拟机监视器获得客户操作系统对虚拟中断控制器写入的虚拟中断请求的中断结束指令,通过查询中断转换表,获得与虚拟中断请求对应的中断请求,然后对中断控制器写入中断请求的中断结束指令。

上述的中断转换表可以通过如下过程生成:

虚拟机监视器截获客户操作系统对硬件设备的中断配置操作,获得客户操作系统需要访问的硬件设备以及客户操作系统为硬件设备分配的虚拟中断请求。虚拟机监视器生成包含如下内容的中断转换表:客户操作系统标识、硬件设备标识、中断请求和虚拟中断请求。

进一步,本发明提供的方法,在虚拟机监视器获得硬件设备的中断请求后,虚拟机监视器将硬件设备的中断请求通知服务操作系统的设备驱动模块,这样虚拟机监视器无论在步骤304中是否从中断转换表查询到满足条件的虚拟中断请求,都把获得的中断请求通知服务操作系统的设备驱动模块,服务操作系统的设备驱动模块通知对应的虚拟设备。该虚拟设备通过虚拟控制器产生相应的中断请求,需要访问该虚拟设备的客户操作系统可以通过虚拟控制器获得该虚拟设备的中断请求,并进行相应的中断处理。

客户操作系统可以通过虚拟中断控制器设置中断屏蔽和中断优先级。当虚拟中断控制器获得中断请求时,虚拟中断控制器根据中断屏蔽寄存器中与中断请求对应的位确定该中断请求是否被屏蔽。

当虚拟中断控制器同时获得多个中断请求时,虚拟中断控制器根据中断请求的中断优先级确定各中断请求的处理顺序。具有较高优先级的中断请求优先处理。具有相同优先级的中断请求串行处理。

从上面的步骤可以看出,通过上述本发明的虚拟机系统中处理硬件设备中断的方法,当硬件设备产生中断时,虚拟机监视器将中断请求直接通知虚拟中断控制器,而不需要经过服务操作系统的转换过程,从而缩短了客户操作系统进行中断处理响应时间,从而提高了客户操作系统进行中断处理的效率。

而虚拟机监视器获得来自中断控制器的中断请求时,将其通知服务操作系统的设备驱动模块,可以使本发明的虚拟机系统中处理硬件设备中断的方法兼容现有的客户操作系统对虚拟设备访问的需求,提高了本方法对硬件设备中断处理的能力和灵活性。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号