JP4678396B2 - 仮想マシンモニタをモニタするコンピュータとその方法、および仮想マシンモニタモニタプログラム - Google Patents
仮想マシンモニタをモニタするコンピュータとその方法、および仮想マシンモニタモニタプログラム Download PDFInfo
- Publication number
- JP4678396B2 JP4678396B2 JP2007247801A JP2007247801A JP4678396B2 JP 4678396 B2 JP4678396 B2 JP 4678396B2 JP 2007247801 A JP2007247801 A JP 2007247801A JP 2007247801 A JP2007247801 A JP 2007247801A JP 4678396 B2 JP4678396 B2 JP 4678396B2
- Authority
- JP
- Japan
- Prior art keywords
- virtual machine
- exception
- guest
- machine monitor
- monitor
- 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.)
- Expired - Fee Related
Links
Images
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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Description
図1は、本発明の第1の実施の形態に係るコンピュータ10内部の構成を示すブロック図である。CPU11は、コンピュータ10の中枢機能を担う演算処理装置で、OS、BIOS、アプリケーションプログラムなどを実行する。CPU11は、仮想化支援機能に対応しており、ゲストモードとホストモードという2通りの動作モード(仮想化特権モード)を持つ(詳細は後述する)。CPU11は、外部バスを介してチップセットに接続され、そこから各デバイスに接続されて信号の送受を行っている。チップセットは、CPUブリッジ13(ノースブリッジ)およびI/Oブリッジ19(サウスブリッジ)とからなる。
図7は、本発明の第2の実施の形態に係るソフトウェアの構成を示す概念図である。本発明の第2の実施の形態に係るハードウェアは、複数のCPU311a〜cと、各々のCPUに対応する仮想化支援機能制御領域323a〜cおよびゲスト状態退避領域325a〜cとを有する。その点を除いては、本実施の形態のハードウェアは図1〜2で説明した本発明の第1の実施の形態のものと同一であるので、詳細な説明は省略する。
11、311a、311b、311c CPU
15 メインメモリ
23、323a、323b、323c 仮想化支援機能制御領域
23a ゲストモード状態
23b ホストモード状態
25、325a、325b、325c ゲスト状態退避領域
25a ゲストOS状態
25b 仮想マシンモニタ状態
100、400 仮想マシンモニタモニタ
101 擬似ホストモード開始部
102 実センシティブ命令例外ハンドラ
103 拡張命令例外ハンドラ
104 擬似ホストモード終了部
105 仮想化支援機能制御部
106 ゲスト状態待避制御部
110、410a、410b 仮想マシンモニタ
111 仮想センシティブ命令例外ハンドラ
120、420a、420b ゲストOS
Claims (6)
- ゲストモードおよびホストモードのうちいずれか一方の動作モードで動作するCPUと、
前記ホストモードにおける動作状態、および前記ゲストモードにおける第1および第2の動作状態を保存するメモリと、
前記ゲストモードにおける第1の動作状態において前記CPU上で動作するゲストOSと、
前記ゲストモードにおける第2の動作状態において前記CPU上で動作する仮想マシンモニタと、
前記ホストモードにおいて前記CPU上で動作する仮想マシンモニタモニタとを有し、
前記CPU上で、前記仮想マシンモニタモニタが、前記ゲストモードにおける第1の動作状態で例外が発生した場合にこの例外を捕捉し、前記第1の動作状態を前記メモリに待避させてその後に前記第2の動作状態を前記メモリから復元し、前記捕捉された例外を前記仮想マシンモニタにインジェクト(注入)して前記仮想マシンモニタに前記例外に対応する処理を行わせると共に、
前記仮想マシンモニタモニタが、前記仮想マシンモニタにおいて発生した例外を捕捉してこの例外が前記ゲストモードにおける動作状態を前記第1の動作状態に戻す命令に基づいて発生した例外であるか否かを判断し、前記第1の動作状態に戻す命令であれば前記ゲストモードにおける動作状態を前記第1の動作状態に戻し、前記第1の動作状態に戻す命令でなければ前記例外を捕捉して処理することを特徴とする、仮想マシンモニタをモニタするコンピュータ。 - 前記CPUが複数個存在し、
前記メモリが、前記ホストモードにおける動作状態および前記ゲストモードにおける第1および第2の動作状態を保存する領域を、前記CPUに対応してそれぞれ複数個有し、
前記仮想マシンモニタモニタが、前記複数のCPUのうちのいずれかで前記例外を捕捉した場合、前記例外を捕捉した前記CPUに対応する前記メモリ上の領域に前記動作状態を保存もしくは復元することを特徴とする、請求項1に記載の仮想マシンモニタをモニタするコンピュータ。 - ゲストモードおよびホストモードのうちいずれか一方の動作モードで動作するCPUと、前記ゲストモードおよび前記ホストモードにおける動作状態を記憶する領域を有するメモリと、ゲストOSと、仮想マシンモニタと、仮想マシンモニタモニタとを有するコンピュータにおいて前記仮想マシンモニタをモニタする方法であって、
前記メモリに前記ゲストモードにおける第1および第2の動作状態を保存する領域を確保するメモリ領域確保工程と、
前記ゲストモードにおける第1の動作状態において前記ゲストOSを動作させるゲストOS動作工程と、
前記ホストモードにおいて前記仮想マシンモニタモニタを動作させるホストOS動作工程と、
前記ゲストモードにおける第1の動作状態で例外が発生した場合、前記ホストモードにおいて前記仮想マシンモニタモニタが前記例外を捕捉する第1の例外捕捉工程と、
前記第1の例外捕捉工程に反応して、前記仮想マシンモニタモニタが前記ゲストモードにおいて動作していた前記第1の動作状態を前記メモリに待避させてその後に前記第2の動作状態を前記メモリから復元し、前記ゲストモードにおける第2の動作状態において前記仮想マシンモニタを動作させる第1の動作状態切り替え工程と、
前記仮想マシンモニタモニタが前記仮想マシンモニタに対して前記捕捉された例外をインジェクト(注入)するインジェクト工程と、
前記仮想マシンモニタにおいて発生した例外を捕捉する第2の例外捕捉工程と、
前記第2の例外捕捉工程において捕捉した例外が前記ゲストモードにおける動作状態を前記第1の動作状態に戻す命令に基づいて発生した例外であるか否かを判断する判断工程と、
前記判断工程において前記第1の動作状態に戻す命令であると判断されたら、前記ゲストモードにおける動作状態を前記第1の動作状態に戻す第2の動作状態切り替え工程と、
前記判断工程において前記第1の動作状態に戻す命令でないと判断されたら、前記例外を捕捉して処理する例外処理工程とを有し、これらの各工程を前記CPU上で実現するようにしたことを特徴とする、仮想マシンモニタをモニタする方法。 - 前記コンピュータが複数個の前記CPUを有し、
前記メモリ領域確保工程が、前記ホストモードにおける動作状態および前記ゲストモードにおける第1および第2の動作状態を保存する領域を、前記CPUに対応してそれぞれ複数個確保し、
前記第1の例外捕捉工程が、前記例外を捕捉したCPUを特定するCPU特定工程を含み、
前記第1の動作状態切り替え工程が、前記CPU特定工程で特定されたCPUに対応する前記メモリ上の領域に前記動作状態を保存もしくは復元することを特徴とする、請求項3に記載の仮想マシンモニタをモニタする方法。 - ゲストモードおよびホストモードのうちいずれか一方の動作モードで動作するCPUと、前記ゲストモードおよび前記ホストモードにおける動作状態を記憶する領域を有するメモリと、ゲストOSと、仮想マシンモニタと、仮想マシンモニタモニタとを有するコンピュータに、
前記メモリに前記ゲストモードにおける第1および第2の動作状態を保存する領域を確保するメモリ領域確保処理と、
前記ゲストモードにおける第1の動作状態において前記ゲストOSを動作させるゲストOS動作処理と、
前記ホストモードにおいて前記仮想マシンモニタモニタを動作させるホストOS動作処理と、
前記ゲストモードにおける第1の動作状態で例外が発生した場合、前記ホストモードにおいて前記仮想マシンモニタモニタが前記例外を捕捉する第1の例外捕捉処理と、
前記第1の例外捕捉工程に反応して、前記仮想マシンモニタモニタが前記ゲストモードにおいて動作していた前記第1の動作状態を前記メモリに待避させてその後に前記第2の動作状態を前記メモリから復元し、前記ゲストモードにおける第2の動作状態において前記仮想マシンモニタを動作させる第1の動作状態切り替え処理と、
前記仮想マシンモニタモニタが前記仮想マシンモニタに対して前記捕捉された例外をインジェクト(注入)するインジェクト処理と、
前記CPUが前記仮想マシンモニタにおいて発生した例外を捕捉する第2の例外捕捉処理と、
前記第2の例外捕捉処理において捕捉した例外が前記ゲストモードにおける動作状態を前記第1の動作状態に戻す命令に基づいて発生した例外であるか否かを判断する判断処理と、
前記判断処理において前記第1の動作状態に戻す命令であると判断されたら、前記ゲストモードにおける動作状態を前記第1の動作状態に戻す第2の動作状態切り替え処理と、
前記判断処理において前記第1の動作状態に戻す命令でないと判断されたら、前記例外を捕捉して処理する例外処理と
を実行させることを特徴とする、仮想マシンモニタモニタプログラム。 - 前記コンピュータが複数個の前記CPUを有し、
前記メモリ領域確保処理が、前記ホストモードにおける動作状態および前記ゲストモードにおける第1および第2の動作状態を保存する領域を、前記CPUに対応してそれぞれ複数個確保し、
前記第1の例外捕捉処理が、前記例外を捕捉したCPUを特定するCPU特定処理を含み、
前記第1の動作状態切り替え処理が、前記CPU特定処理で特定されたCPUに対応する前記メモリ上の領域に前記動作状態を保存もしくは復元することを特徴とする、請求項5に記載の仮想マシンモニタモニタプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007247801A JP4678396B2 (ja) | 2007-09-25 | 2007-09-25 | 仮想マシンモニタをモニタするコンピュータとその方法、および仮想マシンモニタモニタプログラム |
US12/234,356 US20090083736A1 (en) | 2007-09-25 | 2008-09-19 | Virtualized computer, monitoring method of the virtualized computer and a computer readable medium thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007247801A JP4678396B2 (ja) | 2007-09-25 | 2007-09-25 | 仮想マシンモニタをモニタするコンピュータとその方法、および仮想マシンモニタモニタプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009080563A JP2009080563A (ja) | 2009-04-16 |
JP4678396B2 true JP4678396B2 (ja) | 2011-04-27 |
Family
ID=40473100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007247801A Expired - Fee Related JP4678396B2 (ja) | 2007-09-25 | 2007-09-25 | 仮想マシンモニタをモニタするコンピュータとその方法、および仮想マシンモニタモニタプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20090083736A1 (ja) |
JP (1) | JP4678396B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9594582B2 (en) * | 2009-01-05 | 2017-03-14 | International Business Machines Corporation | Detection and management of dynamic migration of virtual environments |
US8719823B2 (en) * | 2009-03-04 | 2014-05-06 | Vmware, Inc. | Managing latency introduced by virtualization |
US20110041126A1 (en) * | 2009-08-13 | 2011-02-17 | Levy Roger P | Managing workloads in a virtual computing environment |
JP5719023B2 (ja) * | 2011-06-02 | 2015-05-13 | 株式会社日立製作所 | 仮想計算機の制御方法及び仮想計算機システム |
CN103107905B (zh) | 2011-11-14 | 2017-08-04 | 华为技术有限公司 | 异常处理方法、装置和客户端 |
JP5813554B2 (ja) * | 2012-03-30 | 2015-11-17 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP5877533B2 (ja) | 2013-01-31 | 2016-03-08 | 三菱電機株式会社 | 計算機装置及び計算機装置の制御方法 |
GB2515536A (en) * | 2013-06-27 | 2014-12-31 | Ibm | Processing a guest event in a hypervisor-controlled system |
US10019279B2 (en) | 2015-12-17 | 2018-07-10 | International Business Machines Corporation | Transparent secure interception handling |
US9841987B2 (en) | 2015-12-17 | 2017-12-12 | International Business Machines Corporation | Transparent secure interception handling |
CN113238832A (zh) * | 2021-05-20 | 2021-08-10 | 元心信息科技集团有限公司 | 虚拟处理器的调度方法、装置、设备及计算机存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002229806A (ja) * | 2001-02-02 | 2002-08-16 | Hitachi Ltd | 計算機システム |
JP2004171567A (ja) * | 2002-11-18 | 2004-06-17 | Arm Ltd | 多数のオペレーティングシステムの間のタスクの追従 |
JP2004295261A (ja) * | 2003-03-25 | 2004-10-21 | Ntt Data Corp | オペレーティングシステム制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム制御装置 |
JP2005529401A (ja) * | 2002-06-07 | 2005-09-29 | インテル コーポレイション | システム管理命令を再命令すること及び仮想マシンコンテナを生成することによる信頼性のないシステム管理コードに対する保護のためのシステム及び方法 |
JP2006519423A (ja) * | 2003-03-21 | 2006-08-24 | インテル コーポレイション | 仮想マシンのための動的なサービス・レジストリ |
JP2007035045A (ja) * | 2005-07-27 | 2007-02-08 | Intel Corp | 階層化された仮想化アーキテクチャにおける仮想化イベント処理 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7225441B2 (en) * | 2000-12-27 | 2007-05-29 | Intel Corporation | Mechanism for providing power management through virtualization |
US7484208B1 (en) * | 2002-12-12 | 2009-01-27 | Michael Nelson | Virtual machine migration |
US8127098B1 (en) * | 2004-05-11 | 2012-02-28 | Globalfoundries Inc. | Virtualization of real mode execution |
US7373446B2 (en) * | 2004-11-05 | 2008-05-13 | Microsoft Corporation | Method and system for dynamically patching an operating system's interrupt mechanism |
US9606821B2 (en) * | 2004-12-17 | 2017-03-28 | Intel Corporation | Virtual environment manager for creating and managing virtual machine environments |
US7546599B2 (en) * | 2004-12-20 | 2009-06-09 | Intel Corporation | Method, apparatus and system for instructing a virtual device from a virtual machine |
US7810083B2 (en) * | 2004-12-30 | 2010-10-05 | Intel Corporation | Mechanism to emulate user-level multithreading on an OS-sequestered sequencer |
US7647589B1 (en) * | 2005-02-07 | 2010-01-12 | Parallels Software International, Inc. | Methods and systems for safe execution of guest code in virtual machine context |
WO2007036072A1 (en) * | 2005-09-29 | 2007-04-05 | Intel Corporation | Apparatus and method for expedited virtual machine (vm) launch in vm cluster environment |
JP4978008B2 (ja) * | 2006-01-11 | 2012-07-18 | 株式会社日立製作所 | 仮想計算機上でのページテーブルアドレスの変更を高速化する方法 |
-
2007
- 2007-09-25 JP JP2007247801A patent/JP4678396B2/ja not_active Expired - Fee Related
-
2008
- 2008-09-19 US US12/234,356 patent/US20090083736A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002229806A (ja) * | 2001-02-02 | 2002-08-16 | Hitachi Ltd | 計算機システム |
JP2005529401A (ja) * | 2002-06-07 | 2005-09-29 | インテル コーポレイション | システム管理命令を再命令すること及び仮想マシンコンテナを生成することによる信頼性のないシステム管理コードに対する保護のためのシステム及び方法 |
JP2004171567A (ja) * | 2002-11-18 | 2004-06-17 | Arm Ltd | 多数のオペレーティングシステムの間のタスクの追従 |
JP2006519423A (ja) * | 2003-03-21 | 2006-08-24 | インテル コーポレイション | 仮想マシンのための動的なサービス・レジストリ |
JP2004295261A (ja) * | 2003-03-25 | 2004-10-21 | Ntt Data Corp | オペレーティングシステム制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム制御装置 |
JP2007035045A (ja) * | 2005-07-27 | 2007-02-08 | Intel Corp | 階層化された仮想化アーキテクチャにおける仮想化イベント処理 |
Also Published As
Publication number | Publication date |
---|---|
JP2009080563A (ja) | 2009-04-16 |
US20090083736A1 (en) | 2009-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4678396B2 (ja) | 仮想マシンモニタをモニタするコンピュータとその方法、および仮想マシンモニタモニタプログラム | |
EP2787444B1 (en) | Central processing unit, information processing apparatus, and intra-virtual-core register value acquisition method | |
TWI588649B (zh) | 硬體修復方法、硬體修復系統以及計算機可讀取儲存裝置 | |
KR102408053B1 (ko) | 시스템 온 칩, 모바일 기기 및 시스템 온 칩의 동작 방법 | |
US7793286B2 (en) | Methods and systems to manage machine state in virtual machine operations | |
US8595723B2 (en) | Method and apparatus for configuring a hypervisor during a downtime state | |
JP6530723B2 (ja) | コンピュータシステム内における複数のハイパーバイザーの共同運用を容易にするためのシステムおよび方法 | |
JP2012009013A (ja) | 部分仮想化マシンに基づく統一格納装置 | |
US8612975B2 (en) | World switch between virtual machines with selective storage of state information | |
CN101091161B (zh) | 用于协作访客固件的设备和方法 | |
JP2004334486A (ja) | ブートコードを用いた起動システム、及び起動方法 | |
JPWO2013088818A1 (ja) | 仮想計算機システム、仮想化機構、及びデータ管理方法 | |
US6968410B2 (en) | Multi-threaded processing of system management interrupts | |
JP2009506410A (ja) | コンピュータ装置におけるコプロセッサ支援 | |
JP2016018555A (ja) | 動作環境の切換方法、コンピュータ、およびコンピュータ・プログラム | |
CN115576734B (zh) | 一种多核异构日志存储方法和系统 | |
KR100994723B1 (ko) | 시스템에서 초기 구동시간을 단축시키는 선택적 서스펜드 리쥼 방법 및 그 기록매체 | |
WO2013136457A1 (ja) | 仮想計算機システム、情報保存処理プログラム及び情報保存処理方法 | |
JP2001236237A (ja) | マルチos構成方法 | |
US20080072009A1 (en) | Apparatus and method for handling interrupt disabled section and page pinning apparatus and method | |
Sun et al. | Supporting Multiple OSes with OS Switching. | |
JPH1049373A (ja) | パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置 | |
Tröger et al. | Software-implemented fault injection at firmware level | |
JP2011138401A (ja) | プロセッサシステム、プロセッサシステムの制御方法、及び制御回路 | |
CN111506395A (zh) | 一种混合仿真的全数字虚拟运行环境的实现方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090910 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090915 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091222 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100601 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100802 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110105 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110118 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4678396 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140210 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |