CN105468434A - 一种处理虚拟机异常的方法及装置 - Google Patents
一种处理虚拟机异常的方法及装置 Download PDFInfo
- Publication number
- CN105468434A CN105468434A CN201510920708.3A CN201510920708A CN105468434A CN 105468434 A CN105468434 A CN 105468434A CN 201510920708 A CN201510920708 A CN 201510920708A CN 105468434 A CN105468434 A CN 105468434A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- kernel mode
- user model
- abnormal information
- mode
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0712—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种处理虚拟机异常的方法,包括:在所述虚拟机运行在客户模式且检测到异常信息时,退出当前运行并切换至内核模式;判断所述异常信息是否包含有I/O指令;如果是,则在用户模式下处理所述异常信息;否则,在所述内核模式下处理所述异常信息。该方法根据异常信息的特点可以直接在内核模式下处理,避免了切换到用户模式下有用户态模式处理产生较大的开销,从而使虚拟机的性能有一定的提高;也可以在用户模式下处理,因此减轻驱动的解析和处理任务,减少虚拟机的系统开销。此外,本发明还公开一种处理虚拟机异常的装置。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种处理虚拟机异常的方法及装置。
背景技术
虚拟机的异常,与传统操作系统的触发条件和处理思想是不完全一样的。在虚拟机的虚拟条件下,客户操作系统的异常通常需要在虚拟机管理器的监管下处理。在虚拟机的实现方案中,通常包含三个模式,即内核模式、用户模式以及客户模式。根据不同的情况,在上述三个模式下切换。例如,在虚拟机的实现方案中,当客户机应用程序的中断和异常触发时,在内核模式、用户模式以及客户模式之间会发生切换操作。
在虚拟环境下,当客户操作系统出现异常时,需要由当前的客户模式切换至用户模式来完成对异常的处理,然后通过内核模式切换至客户模式;或者由当前的客户模式切换至内核模式,在内核模式下完成对异常的处理。
在上述方法中,如果单独由用户模式来完成,则会造成较大的开销,导致虚拟机的性能降低;如果单独由内核模式来完成,则会增加驱动的解析和处理任务。
由此可见,如何合理处理虚拟机异常以平衡用户模式和内核模式的运行是本领域技术人员亟待解决的问题。
发明内容
本发明的目的是提供一种处理虚拟机异常的方法,用于合理处理虚拟机异常以平衡用户模式和内核模式的运行。此外,本发明的目的还提供一种处理虚拟机异常的装置。
为解决上述技术问题,本发明提供一种处理虚拟机异常的方法,包括:
在所述虚拟机运行在客户模式且检测到异常信息时,退出当前运行并切换至内核模式;
判断所述异常信息是否包含有I/O指令;
如果是,则在用户模式下处理所述异常信息;
否则,在所述内核模式下处理所述异常信息。
优选地,在所述退出当前运行并切换至内核模式之前还包括:
保存所述客户模式下的现场运行环境。
优选地,所述在用户模式下处理所述异常信息之后还包括:
向所述虚拟机的监控器输出第一警告信息;
输入ioct1指令以切换至所述内核模式;
将所述内核模式切换至所述客户模式。
优选地,所述在所述内核模式下处理所述异常信息之后还包括:
向所述虚拟机的监控器输出第二警告信息;
将所述内核模式切换至所述客户模式。
优选地,在所述将所述内核模式切换至所述客户模式之后还包括:
以保存的所述现场运行环境开始继续执行对应的应用程序。
一种处理虚拟机异常的装置,包括:
客户模式切换单元,用于在所述虚拟机运行在客户模式且检测到异常信息时,退出当前运行并切换至内核模式;
内核模式判断单元,用于判断所述异常信息是否包含有I/O指令,如果是,则触发用户模式处理单元,否则触发内核模式处理单元;
用户模式处理单元,用于在用户模式下处理所述异常信息;
内核模式处理单元,在所述内核模式下处理所述异常信息。
优选地,还包括:
客户模式存储单元,用于保存所述客户模式下的现场运行环境。
优选地,还包括:
用户模式警告单元,用于向所述虚拟机的监控器输出第一警告信息;
用户模式输入单元,用于输入ioct1指令以切换至所述内核模式;
用户模式切换单元,用于将所述内核模式切换至所述客户模式。
优选地,还包括:
内核模式警告单元,用于向所述虚拟机的监控器输出第二警告信息;
内核模式切换单元,用于将所述内核模式切换至所述客户模式。
优选地,还包括:
执行单元,用于以保存的所述现场运行环境开始继续执行对应的应用程序。
本发明所提供的处理虚拟机异常的方法,当检测到有异常信息时,退出当前的客户模式并切换至内核模式,在内核模式中判断异常信息是否包含有I/O指令;如果包含,则切换至用户模式,在用户模式下完成异常信息的处理;如果不包含,则在当前的内核模式下完成异常信息的处理。该方法根据异常信息的特点可以直接在内核模式下处理,避免了切换到用户模式下有用户态模式处理产生较大的开销,从而使虚拟机的性能有一定的提高;也可以在用户模式下处理,因此减轻驱动的解析和处理任务,减少虚拟机的系统开销。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种处理虚拟机异常的方法的流程图;
图2为本发明提供的另一种处理虚拟机异常的方法的流程图;
图3为本发明提供的一种处理虚拟机异常的装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种处理虚拟机异常的方法及装置。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
实施例一
图1为本发明提供的一种处理虚拟机异常的方法的流程图。处理虚拟机异常的方法包括:
S10:在虚拟机运行在客户模式且检测到异常信息时,退出当前运行并切换至内核模式;
S11:判断异常信息是否包含有I/O指令;如果是,进入步骤S12,否则,进入步骤S13;
S12:在用户模式下处理异常信息;
S13:在内核模式下处理异常信息。
当虚拟机运行在客户模式时,如果检测到异常信息,则需要退出当前的运行模式并切换至内核模式。由于异常信息可以分为两大类,一类是可以在用户模式下处理的,另一类是在在内核模式下处理的。因此步骤S11是在内核模式下执行的。当接收到异常信息时,对该异常信息进行解析,以判断是否包含有I/O指令。如果包含有I/O指令,说明需要由用户模式处理该异常信息;如果不包含I/O指令,说明直接在内核模式下处理该异常信息。由于本发明的目的是当遇到异常信息时如何均衡内核模式和用户模式的运行,因此,这里具体对异常信息的处理过程本发明不再赘述。
本发明提供的处理虚拟机异常的方法,当检测到有异常信息时,退出当前的客户模式并切换至内核模式,在内核模式中判断异常信息是否包含有I/O指令;如果包含,则切换至用户模式,在用户模式下完成异常信息的处理;如果不包含,则在当前的内核模式下完成异常信息的处理。该方法根据异常信息的特点可以直接在内核模式下处理,避免了切换到用户模式下有用户态模式处理产生较大的开销,从而使虚拟机的性能有一定的提高;也可以在用户模式下处理,因此减轻驱动的解析和处理任务,减少虚拟机的系统开销。
图2为本发明提供的另一种处理虚拟机异常的方法的流程图。如图2所示,其中,在退出当前运行并切换至内核模式之前还包括:
S14:保存客户模式下的现场运行环境。
为了保证运行的连贯性,当虚拟机在客户模式下运行,出现异常信息时,可以将客户模式下的现场运行环境保存。这样当异常信息处理完成后,可以在保存的现场运行环境的基础上继续执行应用程序。
如图2所示,作为一种优选的实施方式,在用户模式下处理异常信息之后还包括:
S15:向虚拟机的监控器输出第一警告信息;
S16:输入ioct1指令以切换至内核模式;
S17:将内核模式切换至客户模式。
当在用户模式下处理异常信息完成后,可以向监控器输出第一警告信息,以通知监控器异常信息处理完毕,也方便后续的查看。当异常信息处理完成后,为了能够回到最初的客户模式,因此,需要再用户模式下输入ioct1指令以切换至内核模式,然后再从内核模式切换至客户模式。
如图2所示,作为一种优选的实施方式,在内核模式下处理异常信息之后还包括:
S18:向虚拟机的监控器输出第二警告信息;
S17:将内核模式切换至客户模式。
当在内核模式下处理异常信息完成后,可以向监控器输出第二警告信息,以通知监控器异常信息处理完毕,也方便后续的查看。当异常信息处理完成后,为了能够回到最初的客户模式,因此,需要从当前的内核模式切换至客户模式。
如图2所示,其中,在将内核模式切换至客户模式之后还包括:
S19:以保存的现场运行环境开始继续执行对应的应用程序。
无论异常信息的处理过程是在内核模式下完成还是在用户模式下完成,最终都切换至客户模式,此时异常信息已经处理了,因此,在客户模式下,可以在宝成的现场运行环境开始继续执行对应的应用程序。
实施例二
图3为本发明提供的一种处理虚拟机异常的装置的结构图。处理虚拟机异常的装置包括:
客户模式切换单元10,用于在虚拟机运行在客户模式且检测到异常信息时,退出当前运行并切换至内核模式;
内核模式判断单元11,用于判断异常信息是否包含有I/O指令,如果是,则触发用户模式处理单元12,否则触发内核模式处理单元13;
用户模式处理单元12,用于在用户模式下处理异常信息;
内核模式处理单元13,在内核模式下处理异常信息。
当虚拟机运行在客户模式时,如果客户模式切换单元10检测到异常信息,则需要退出当前的运行模式并切换至内核模式。由于异常信息可以分为两大类,一类是可以在用户模式下处理的,另一类是在在内核模式下处理的。当内核模式判断单元11接收到异常信息时,对该异常信息进行解析,以判断是否包含有I/O指令。如果包含有I/O指令,说明需要由用户模式处理单元12处理该异常信息;如果不包含I/O指令,说明直接在内核模式处理单元13处理该异常信息。由于本发明的目的是当遇到异常信息时如何均衡内核模式和用户模式的运行,因此,这里具体对异常信息的处理过程本发明不再赘述。
本发明提供的处理虚拟机异常的装置,当检测到有异常信息时,退出当前的客户模式并切换至内核模式,在内核模式中判断异常信息是否包含有I/O指令;如果包含,则切换至用户模式,在用户模式下完成异常信息的处理;如果不包含,则在当前的内核模式下完成异常信息的处理。该装置根据异常信息的特点可以直接在内核模式下处理,避免了切换到用户模式下有用户态模式处理产生较大的开销,从而使虚拟机的性能有一定的提高;也可以在用户模式下处理,因此减轻驱动的解析和处理任务,减少虚拟机的系统开销。
其中,在上述实施例的基础上,处理虚拟机异常的装置,还包括:
客户模式存储单元,用于保存客户模式下的现场运行环境。
其中,在上述实施例的基础上,处理虚拟机异常的装置,还包括:
用户模式警告单元,用于向虚拟机的监控器输出第一警告信息;
用户模式输入单元,用于输入ioct1指令以切换至内核模式;
用户模式切换单元,用于将内核模式切换至客户模式。
其中,在上述实施例的基础上,处理虚拟机异常的装置,还包括:
内核模式警告单元,用于向虚拟机的监控器输出第二警告信息;
内核模式切换单元,用于将内核模式切换至客户模式。
其中,在上述实施例的基础上,处理虚拟机异常的装置,还包括:
执行单元,用于以保存的现场运行环境开始继续执行对应的应用程序。
由于实施例二实施实施例一中的方法对应的装置部分的实施例,因此具体的实施方式请参见实施例一的描述,本实施例暂不赘述。
以上对本发明所提供的一种处理虚拟机异常的方法及装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
Claims (10)
1.一种处理虚拟机异常的方法,其特征在于,包括:
在所述虚拟机运行在客户模式且检测到异常信息时,退出当前运行并切换至内核模式;
判断所述异常信息是否包含有I/O指令;
如果是,则在用户模式下处理所述异常信息;
否则,在所述内核模式下处理所述异常信息。
2.根据权利要求1所述的处理虚拟机异常的方法,其特征在于,在所述退出当前运行并切换至内核模式之前还包括:
保存所述客户模式下的现场运行环境。
3.根据权利要求2所述的处理虚拟机异常的方法,其特征在于,所述在用户模式下处理所述异常信息之后还包括:
向所述虚拟机的监控器输出第一警告信息;
输入ioct1指令以切换至所述内核模式;
将所述内核模式切换至所述客户模式。
4.根据权利要求2所述的处理虚拟机异常的方法,其特征在于,所述在所述内核模式下处理所述异常信息之后还包括:
向所述虚拟机的监控器输出第二警告信息;
将所述内核模式切换至所述客户模式。
5.根据权利要求3或4所述的处理虚拟机异常的方法,其特征在于,在所述将所述内核模式切换至所述客户模式之后还包括:
以保存的所述现场运行环境开始继续执行对应的应用程序。
6.一种处理虚拟机异常的装置,其特征在于,包括:
客户模式切换单元,用于在所述虚拟机运行在客户模式且检测到异常信息时,退出当前运行并切换至内核模式;
内核模式判断单元,用于判断所述异常信息是否包含有I/O指令,如果是,则触发用户模式处理单元,否则触发内核模式处理单元;
用户模式处理单元,用于在用户模式下处理所述异常信息;
内核模式处理单元,在所述内核模式下处理所述异常信息。
7.根据权利要求6所述的处理虚拟机异常的装置,其特征在于,还包括:
客户模式存储单元,用于保存所述客户模式下的现场运行环境。
8.根据权利要求7所述的处理虚拟机异常的装置,其特征在于,还包括:
用户模式警告单元,用于向所述虚拟机的监控器输出第一警告信息;
用户模式输入单元,用于输入ioct1指令以切换至所述内核模式;
用户模式切换单元,用于将所述内核模式切换至所述客户模式。
9.根据权利要求7所述的处理虚拟机异常的装置,其特征在于,还包括:
内核模式警告单元,用于向所述虚拟机的监控器输出第二警告信息;
内核模式切换单元,用于将所述内核模式切换至所述客户模式。
10.根据权利要求8或9所述的处理虚拟机异常的装置,其特征在于,还包括:
执行单元,用于以保存的所述现场运行环境开始继续执行对应的应用程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510920708.3A CN105468434A (zh) | 2015-12-11 | 2015-12-11 | 一种处理虚拟机异常的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510920708.3A CN105468434A (zh) | 2015-12-11 | 2015-12-11 | 一种处理虚拟机异常的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105468434A true CN105468434A (zh) | 2016-04-06 |
Family
ID=55606172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510920708.3A Pending CN105468434A (zh) | 2015-12-11 | 2015-12-11 | 一种处理虚拟机异常的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105468434A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108139925A (zh) * | 2016-05-31 | 2018-06-08 | 博科通讯系统有限公司 | 虚拟机的高可用性 |
CN108255591A (zh) * | 2017-12-07 | 2018-07-06 | 中国航空工业集团公司西安航空计算技术研究所 | 一种分区操作系统的统一异常处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040003323A1 (en) * | 2002-06-29 | 2004-01-01 | Steve Bennett | Control over faults occurring during the operation of guest software in the virtual-machine architecture |
CN101567804A (zh) * | 2009-05-21 | 2009-10-28 | 成都市华为赛门铁克科技有限公司 | 一种实现系统异常保护的方法、设备和系统 |
CN102439567A (zh) * | 2011-10-21 | 2012-05-02 | 华为技术有限公司 | 分布式虚拟机访问异常的处理方法以及虚拟机监控器 |
US20140082619A1 (en) * | 2012-09-18 | 2014-03-20 | Yokogawa Electric Corporation | Fault tolerant system and method for performing fault tolerant |
-
2015
- 2015-12-11 CN CN201510920708.3A patent/CN105468434A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040003323A1 (en) * | 2002-06-29 | 2004-01-01 | Steve Bennett | Control over faults occurring during the operation of guest software in the virtual-machine architecture |
CN101567804A (zh) * | 2009-05-21 | 2009-10-28 | 成都市华为赛门铁克科技有限公司 | 一种实现系统异常保护的方法、设备和系统 |
CN102439567A (zh) * | 2011-10-21 | 2012-05-02 | 华为技术有限公司 | 分布式虚拟机访问异常的处理方法以及虚拟机监控器 |
US20140082619A1 (en) * | 2012-09-18 | 2014-03-20 | Yokogawa Electric Corporation | Fault tolerant system and method for performing fault tolerant |
Non-Patent Citations (1)
Title |
---|
黄煜: ""KVM虚拟机CPU虚拟化的研究与调度策略的优化", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108139925A (zh) * | 2016-05-31 | 2018-06-08 | 博科通讯系统有限公司 | 虚拟机的高可用性 |
CN108255591A (zh) * | 2017-12-07 | 2018-07-06 | 中国航空工业集团公司西安航空计算技术研究所 | 一种分区操作系统的统一异常处理方法 |
CN108255591B (zh) * | 2017-12-07 | 2021-10-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种分区操作系统的统一异常处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10437632B2 (en) | Method and apparatus for executing non-maskable interrupt | |
CN104462943B (zh) | 业务系统中非侵入式性能监控装置和方法 | |
EP1855205A1 (en) | Debug supporting device, and program for causing computer to execute debug processing method | |
US20120084072A1 (en) | Method and device for running linux application in android system | |
CN106708497B (zh) | 一种代码执行方法及装置 | |
JP2016173821A5 (zh) | ||
CN105389197A (zh) | 用于基于容器的虚拟化系统的操作捕获方法和装置 | |
CN104239131A (zh) | 一种关闭应用程序的方法及装置 | |
CN105468434A (zh) | 一种处理虚拟机异常的方法及装置 | |
CN110989820A (zh) | 处理器功耗的控制方法、装置、处理器及电子装置 | |
CN107526622A (zh) | Linux的快速异常处理方法及装置 | |
CN104462953B (zh) | 一种信息处理方法及电子设备 | |
CN106683033B (zh) | 一种乱序OpenGL接口处理方法 | |
CN114553765B (zh) | 一种ospf邻居震荡处理的方法、装置及介质 | |
CN103701670B (zh) | 一种数据包负载的处理方法和装置 | |
CN105022660A (zh) | 一种虚拟机切换方法及系统 | |
CN106126392A (zh) | 一种前后台应用程序的判断方法及装置 | |
CN100389411C (zh) | 在嵌入式实时操作系统中实现逻辑中断优先级的方法 | |
CN107341026A (zh) | 驱动程序的控制方法及装置 | |
Li et al. | SceneMan: Bridging mobile apps with system energy manager via scenario notification | |
KR20100112255A (ko) | 휴대단말기에서의 시스템온칩 기반의 악성코드 검출 장치 | |
CN104049710B (zh) | 一种提示方法及电子设备 | |
CN117895867B (zh) | 一种伺服驱动器的动态制动控制方法、装置以及介质 | |
CN103942145B (zh) | 一种基于配对资源管理函数的自适应挖掘和分析方法 | |
US20160224091A1 (en) | Control method and control system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160406 |