一种面向嵌入式Hypervisor 的中断虚拟化操作方法技术

技术编号:6935724 阅读:229 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了面向嵌入式Hypervisor的中断虚拟化操作方法,Hypervisor对硬件中断进行了接管,提供给上层GuestOS虚拟化中断,通过运行在Hypervisor之上的服务线程模拟中断事件。GuestOS不响应硬件中断,而是通过Hypervisor的中断注入操作执行虚拟中断服务程序。Hypervisor产生中断注入,GuestOS在原来让出CPU的栈环境下进行中断服务程序的执行。这样直接使用原有现场环境避免了拷贝。与Xen中的虚拟化方案相比,减少了现场保存操作,从而可以更加高效的进行中断的响应。

【技术实现步骤摘要】

本专利技术属于嵌入式虚拟机
,涉及一种面向嵌入式Hypervisor的中断虚拟化操作方法。
技术介绍
在I型Hypervisor系统中,Hypervisor作为系统软件直接运行在硬件平台之上, 可以直接管理物理设备并支持运行在Hypervisor之上的操作系统GuestOS(客户操作系统),通过Hypervisor提供的接口为GuestOS服务。当GuestOS运行于实际硬件时,GuestOS直接响应由硬件设备产生的外部中断,硬件中断打断GuestOS的执行,需要让出现场,以执行中断服务程序;进程上下文的信息保存到Linux内核栈中,中断服务程序的执行使用的栈环境是中断前的进程的内核栈。而对中断进行虚拟化,需要模拟未虚拟化时GuestOS对中断的处理情景,这样才能够使得GuestOS 在虚拟化后正确的运行。这部分包括了 GuestOS被中断打断后的现场保存以及中断服务程序的执行。同时为了实现中断虚拟化,需要对中断事件进行模拟。现有的流行虚拟化方案有Xen。Xen同样也对中断进行了虚拟化实现。响应硬件中断时,Xen负责将GuestOS的现场保存到Xen中,当GuestOS需要被执行时,Xen负责从 Xen恢复GuestOS的现场。
技术实现思路
本专利技术解决的问题在于提供一种面向嵌入式Hypervisor的中断虚拟化操作方法,直接使用原有现场进行中断服务程序的执行,比较^11中的虚拟化方案其减少了现场保存操作,从而可以更加高效的进行中断的响应。本专利技术是通过以下技术方案来实现一种面向嵌入式Hypervisor的中断虚拟化操作方法,包括以下步骤1)对Hypervisor之上的GuestOS所在域创建虚拟中断标志和虚拟中断控制器,并创建用于产生虚拟设备中断的服务线程;Hypervisor对虚拟中断标志、虚拟中断控制器和服务线程进行管理,实现虚拟中断的产生和操作;2)当GuestOS运行时发生中断,由Hypervisor来响应中断,GuestOS让出CPU,中断GuestOS当前程序的执行,Hypervisor将GuestOS的现场保存到GuestOS当前进程的内核栈中;Hypervisor在该内核栈环境执行中断服务程序,并将该内核栈地址信息保存到 Hypervisor ;3)HyperViSOr完成对硬件中断的响应之后,若该硬件中断最终需要传递给某一 GuestOS,那么Hypervisor唤醒该GuestOS所在域中的服务线程,对虚拟中断控制器进行操作,将中断信息记录在虚拟中断控制器中;当GuestOS被Hypervisor调度执行后,首先进行中断注入的判断,若GuestOS所在域虚拟中断标志为0,且虚拟中断控制器有中断未决,那么Hypervisor对GuestOS进行中断注入操作;否则Hypervisor根据GuestOS所保存的内核栈地址信息直接进行GuestOS 现场的恢复;4)在Hypervisor对GuestOS进行中断注入操作时,Hypervisor读取其保存的 GuestOS的中断注入点,从而使得系统从Hypervisor跳转到GuestOS的中断注入点,完成中断服务程序的执行;完成中断服务程序的执行之后,GuestOS根据之前Hypervisor保存的现场进行GuestOS现场的恢复。所述的服务线程产生虚拟设备中断由硬件中断驱动,当硬件中断需要上层 GuestOS获取其信息时,Hypervisor通过调用服务线程的执行产生虚拟设备中断让 GuestOS获取硬件中断信息。所述的Hypervisor和GuestOS对虚拟中断标志进行管理,当虚拟中断标志为1 时,GuestOS不响应虚拟中断,当虚拟中断标志为O时,还需要虚拟中断控制器的判定;服务线程对虚拟中断控制器进行操作,将中断信息保存到虚拟中断控制器中;当虚拟中断标志和虚拟中断控制器均有效时,GuestOS响应中断;否则GuestOS不响应中断。当硬件中断最终需要传递给GuestOS时,服务线程通过对虚拟中断控制器的未决变量进行置一操作,将中断信息记录在虚拟中断控制器中。当GuestOS运行于用户态时发生中断,GuestOS让出CPU,处理器从用户态切换到了处理器的特权态,Hypervisor直接获取GuestOS当前进程的内核栈,将GuestOS的用户态现场保存在该内核栈中,并将该内核栈地址信息保存到Hypervisor中,Hypervisor在该栈环境下进行中断服务程序的执行;Hypervisor响应中断后,需要进行中断注入时,Hypervisor首先在GuestOS用户态中断点处进行中断注入,Hypervisor在GuestOS内核态完成中断的执行后,在中断返回时调用所保存的内核栈地址信息,GuestOS从用户态中断注入点执行当前进行程序。当GuestOS运行于内核态时系统发生中断,GuestOS让出CPU,Hypervisor将 GuestOS的内核态的现场保存到GuestOS当前进程的内核栈中,并将该内核栈地址信息保存到Hypervisor中,Hypervisor在该栈环境下进行中断服务程序的执行;Hypervisor响应中断后,需要进行中断注入时,Hypervisor在GuestOS内核态中断点处进行中断注入,GuestOS相应中断,完成中断执行后,GuestOS返回到内核态中断点处继续执行当前进行程序。所述的GuestOS为Linux操作系统。与现有技术相比,本专利技术具有以下有益的技术效果本专利技术提供的面向嵌入式Hypervisor的中断虚拟化操作方法,Hypervisor对硬件中断进行了接管,提供给上层GuestOS虚拟化中断,通过运行在Hypervisor之上的服务线程模拟中断事件。GuestOS不响应硬件中断,而是通过Hypervisor的中断注入操作执行虚拟中断服务程序。系统响应硬件中断时,Hypervisor负责将GuestOS的现场保存到GuestOS的栈环境中,并直接使用该栈环境进行中断服务程序的执行。Hypervisor产生中断注入,在原来让出CPU的栈环境下进行中断服务程序的执行。这样直接使用原有现场环境避免了拷贝。与Xen中的虚拟化方案相比,减少了现场保存操作,从而可以更加高效的进行中断的响应。 附图说明图 1 为 I 型 Hypervisor 结构图;图2为支持服务线程产生虚拟设备中断的Hypervisor结构图;图3为Linux用户态时响应硬件中断而不进行中断注入的流程示意图;图4为Linux用户态时响应硬件中断并进行中断注入的流程示意图;图5为Linux内核态响应硬件中断而不进行中断注入的流程示意图;图6为Linux内核态响应硬件中断并进行中断注入的流程示意图。具体实施例方式本专利技术提供的面向嵌入式Hypervisor的中断虚拟化操作方法,主要包括了以下四个方面1) Hypervisor对GuestOS所在域创建虚拟中断标志和虚拟中断控制器以及产生虚拟中断的服务线程;2)HyperviSOr对硬件中断进行管理;3)服务线程产生虚拟中断;4) Hypervisor完成对GuestOS的中断注入操作。具体将GuestOS选定主流的Linux操作系统 (Linux2. 6. 28内核),进行以下具体的说本文档来自技高网...

【技术保护点】
1.一种面向嵌入式Hypervisor的中断虚拟化操作方法,其特征在于,包括以下步骤:1)对Hypervisor之上的GuestOS所在域创建虚拟中断标志和虚拟中断控制器,并创建用于产生虚拟设备中断的服务线程;Hypervisor对虚拟中断标志、虚拟中断控制器和服务线程进行管理,实现虚拟中断的产生和操作;2)当GuestOS运行时发生硬件中断,由Hypervisor来响应中断,GuestOS让出CPU,中断GuestOS当前程序的执行,Hypervisor将GuestOS的现场保存到GuestOS当前进程的内核栈中;Hypervisor在该内核栈环境执行中断服务程序,并将该内核栈地址信息保存到Hypervisor;3)Hypervisor完成对硬件中断的响应之后,若该硬件中断最终需要传递给某一GuestOS,那么Hypervisor唤醒该GuestOS所在域中的服务线程,对虚拟中断控制器进行操作,将中断信息记录在虚拟中断控制器中;当GuestOS被Hypervisor调度执行后,首先进行中断注入的判断,若GuestOS所在域虚拟中断标志为0,且虚拟中断控制器有中断未决,那么Hypervisor对GuestOS进行中断注入操作;否则Hypervisor根据GuestOS所保存的内核栈地址信息直接进行GuestOS现场的恢复;4)在Hypervisor对GuestOS进行中断注入操作时,Hypervisor读取其保存的GuestOS的中断注入点,从而使得系统从Hypervisor跳转到GuestOS的中断注入点,完成中断服务程序的执行;完成中断服务程序的执行之后,GuestOS根据之前Hypervisor保存的现场进行GuestOS现场的恢复。...

【技术特征摘要】
1.一种面向嵌入式Hypervisor的中断虚拟化操作方法,其特征在于,包括以下步骤1)对Hypervisor之上的GuestOS所在域创建虚拟中断标志和虚拟中断控制器,并创建用于产生虚拟设备中断的服务线程;Hypervisor对虚拟中断标志、虚拟中断控制器和服务线程进行管理,实现虚拟中断的产生和操作;2)当GuestOS运行时发生硬件中断,由Hypervisor来响应中断,GuestOS让出CPU, 中断GuestOS当前程序的执行,Hypervisor将GuestOS的现场保存到GuestOS当前进程的内核栈中;Hypervisor在该内核栈环境执行中断服务程序,并将该内核栈地址信息保存到 Hypervisor ;3)Hypervisor完成对硬件中断的响应之后,若该硬件中断最终需要传递给某一 GuestOS,那么Hypervisor唤醒该GuestOS所在域中的服务线程,对虚拟中断控制器进行操作,将中断信息记录在虚拟中断控制器中;当GuestOS被Hypervisor调度执行后,首先进行中断注入的判断,若GuestOS所在域虚拟中断标志为0,且虚拟中断控制器有中断未决,那么Hypervisor对GuestOS进行中断注入操作;否则Hypervisor根据GuestOS所保存的内核栈地址信息直接进行GuestOS现场的恢复;4)在Hypervisor对GuestOS进行中断注入操作时,Hypervisor读取其保存的GuestOS 的中断注入点,从而使得系统从Hypervisor跳转到GuestOS的中断注入点,完成中断服务程序的执行;完成中断服务程序的执行之后,GuestOS根据之前Hypervisor保存的现场进行GuestOS现场的恢复。2.如权利要求1所述的面向嵌入式Hypervisor的中断虚拟化操作方法,其特征在于, 所述的服务线程产生虚拟设备中断由硬件中断驱动,当硬件中断需要上层GuestOS获取其信息时,Hypervisor通过调用服务线程的执行产生虚拟设备中断让GuestOS获取硬件中断 fn息ο3.如权利要求1所述的面向嵌入式Hypervisor的中断虚拟化操作方法,其特征在于, Hypervisor和GuestO...

【专利技术属性】
技术研发人员:梅魁志李铁强李国辉张朋丰张恩阳展华益
申请(专利权)人:西安交通大学
类型:发明
国别省市:87

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1