JP5929353B2 - 例外処理方法、プログラム及び装置 - Google Patents
例外処理方法、プログラム及び装置 Download PDFInfo
- Publication number
- JP5929353B2 JP5929353B2 JP2012057848A JP2012057848A JP5929353B2 JP 5929353 B2 JP5929353 B2 JP 5929353B2 JP 2012057848 A JP2012057848 A JP 2012057848A JP 2012057848 A JP2012057848 A JP 2012057848A JP 5929353 B2 JP5929353 B2 JP 5929353B2
- Authority
- JP
- Japan
- Prior art keywords
- operation code
- instruction
- virtual machine
- host
- invalid
- 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.)
- Active
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
Description
以下実施の形態を、図面を参照して説明する。図1は情報処理システムの概要を示す説明図である。情報処理システムはインターネット、LAN(Local Area Network)及び公衆電話網等の通信網Nを介して相互に接続される複数のホストコンピュータ1(以下、「ホスト1」と略記する。)、ホストコンピュータ2(以下、「ホスト2」と略記する。)、管理ホストコンピュータ3(以下、「管理ホスト3」と略記する。)、共有ディスク4を含む。ホスト1、ホスト2、及び管理ホスト3は、例えばサーバコンピュータである。
なお、オペコードはオペレーションコードとも記載するが、本明細書では主としてオペコードと記載する。
エミュレーション部25dは、代替コードをエミュレーションコードテーブル25eより取得し、それを基に、未定義命令例外を発生させた命令のエミュレーションを行う。
実施の形態1では、未定義命令例外が発生した場合に、例外を発生させた命令をエミュレートして実行している。実施の形態2では、例外を発生させた命令をエミュレートする際に、仮想マシンVM4のメモリ上やディスク上の該当命令をエミュレートする命令に書き換えるものとする。それにより、一度未定義命令例外を発生させた命令は、すべてエミュレーションするための命令に書き換わるので、同一仮想マシンにおいて、再び同一の命令による未定義命令例外は発生しない。そのため、例外処理の発生回数が減るので、より効率的な処理が可能となる。
実施の形態2では、未定義命令例外を発生させた命令のみに関して、プログラムコードの書き換えを行った。実施の形態3では、未定義命令例外を発せさせるすべての命令を対象とし、バックエンドで書き換え処理を行う。ここで言うバックエンドで処理を行うとは、バックグラウンドで処理を動作させ、ユーザとの対話する機能を持たないことを意味している。
実施の形態1から3においては、仮想マシンがマイグレーション後に、未定義命令例外を発生させた命令のエミュレート、または未定義命令例外を発生させる命令の書き換えを行っている。本実施の形態においては、マイグレーションを行う際に、未定義命令例外を発生させる命令の書き換えを行う。
変形例1では、オペコードテーブル25b、エミュレーションコードテーブル25eをプログラムコードに埋め込むのではなく、各ホストが備えるハードディスク、フラッシュメモリなどの記憶装置に記憶することとする。割り込みハンドラ25aは必要に応じて、記憶装置に記憶したオペコードテーブル25b、エミュレーションコードテーブル25eを参照する。この場合、テーブルの更新は、記憶装置上のテーブルを置き換えるだけで済むので、メンテナンス性が高い。また、割り込みハンドラ25aが動作中であっても、更新が行えるという利点がある。
変形例2では、オペコードテーブル25b、エミュレーションコードテーブル25eを、共有ディスク4に記憶することとする。テーブルを一元管理できるので、変形例1よりもさらにメンテナンス性が向上する。ただし、共有ディスクへのアクセスが増えると読み出し時間がオーバーヘッドとなるので、割り込みハンドラ25aをロードする際に、メモリ上にオペコードテーブル25b、エミュレーションコードテーブル25eをロードし、メモリ上で参照しても良い。
変形例3では、オペコードテーブル25b、エミュレーションコードテーブル25eを、管理ホスト3の記憶装置に記憶して管理する。ライブマイグレーションは、主として各ホストの負荷状況に応じて動的に行なわれる。そのため、オペコードテーブル25b、エミュレーションコードテーブル25eは、情報システム内に存在する全タイプのCPUに対応している必要がある。そのため、CPUタイプの数に比例して、オペコードテーブル25bのレコード数が増加する。エミュレーションコードテーブル25eは、CPUタイプの数の増加に伴い、移動元CPUと移動先CPUとの組み合わせ数が増大するため、レコード数が増加する。テーブルのレコード数が増加すると、テーブルの検索効率、読み出し効率が低下する。そこで、管理ホスト3の記憶装置にオペコードテーブル25b、エミュレーションコードテーブル25eを記憶させる。ライブマイグレーション時に、移動元CPU及び移動先CPUのタイプに基づいて、オペコードテーブル25b、エミュレーションコードテーブル25eの必要なレコードを抽出し、移動先ホストの割り込みハンドラ25aに渡すようにする。そのようにすれば、移動先ホストが用いるオペコードテーブル25b、エミュレーションコードテーブル25eのレコード数は必要最小限となり、検索効率、読み出し効率の低下を防ぐことが可能となる。
図12は実施の形態5に係るホスト2及び管理ホスト3の機能構成を示すための説明図である。上述の実施の形態1と同様、ライブマイグレーションにより、仮想マシンVM4がホスト1からホスト2に移動されている。図13は実施の形態5に係るホスト2及び管理ホスト3における例外処理の処理手順を示すフローチャートである。
図14は実施の形態6に係る例外処理装置5のハードウェア群を示すブロック図である。実施の形態6に係る例外処理装置5は、例外処理の中で、オペコードの検索、エミュレーションコードの生成を行う機能をホスト1、ホスト2、管理ホスト3とは異なるハードウェアで構成したものである。以下の説明では、コンピュータプログラムを汎用のコンピュータに読み取らせ、コンピュータの中央処理装置が所定の処理を実行することにより例外処理装置5を構成した場合について説明する。しかし、それに限られず、等価な働きをする専用のハードウェアを有する装置として、例外処理装置5を構成してもよい。
また、オペコードテーブル、エミュレーションコードテーブルは一つのテーブルでも良い。
図15は実施の形態7に係るホスト1のハードウェア群を示すブロック図である。上述の実施の形態1から5では、ホスト1を動作させるための制御プログラムは、ディスクドライブ等の読み取り部10AにCD-ROM、DVD(DigitalVersatile Disc)ディスク、メモリカード、またはUSB(Universal SerialBus)メモリ等の可搬型記録媒体1Aを読み取らせて記憶部13に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ1Bをホスト1内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網を介して接続される他のサーバコンピュータ(図示せず)からダウンロードすることも可能である。以下に、その内容を説明する。
なお、制御プログラムにとどまらず、オペコードテーブルやエミュレーションコードテーブルを可搬型記録媒体から読み取り記憶部に記憶したり、半導体メモリとして実装したりしても良い。
仮想マシンが物理マシン間を移動したことにより無効となった命令を検出し、
検出した前記命令に含まれる無効なオペレーションコードに対応付けられた有効なオペレーションコードを取得し、
取得した前記有効なオペレーションコードに対応した命令を実行する
例外処理方法。
前記無効となった命令を検出した場合、
前記検出した命令を実行した仮想マシンを特定し、
特定した仮想マシンが確保している記憶領域を対象に前記無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
付記1に記載の例外処理方法。
前記特定した仮想マシンが確保している記憶領域を対象に、前記仮想マシンが動作する物理マシンにて無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
付記1又は2に記載の例外処理方法。
仮想マシンが物理マシン間を移動する時に、
仮想マシンに対応付けられたメモリイメージを対象に前記無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
付記1から3のいずれか1つに記載の例外処理方法。
前記有効なオペレーションコードを取得する際、無効なオペレーションコード及び有効なオペレーションコードを対応付けたテーブルを用いる
付記1から4のいずれか1つに記載の例外処理方法。
仮想マシンが物理マシン間を移動したことにより、仮想マシンが動作する物理マシンにて無効となった命令を検出し、
検出した命令に含まれる無効なオペレーションコードに対応付けられた有効なオペレーションコードを取得し、
取得した有効なオペレーションコードに対応した命令を実行する
処理を前記物理マシンに実行させるプログラム。
前記無効となった命令を検出した場合、
前記検出した命令を実行した仮想マシンを特定し、
特定した仮想マシンが確保している記憶領域を対象に前記無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
付記6に記載のプログラム。
前記特定した仮想マシンが確保している記憶領域を対象に、前記仮想マシンが動作する物理マシンにて無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
付記6又は7に記載のプログラム。
仮想マシンが物理マシン間を移動することを検出し、
移動を検出した仮想マシンに対応付けられたメモリイメージを対象に無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
付記6から8のいずれか1つに記載のプログラム。
前記有効なオペレーションコードを取得する際、無効なオペレーションコード及び有効なオペレーションコードを対応付けたテーブルを用いる
付記6から9のいずれか1つに記載のプログラム。
仮想マシンが物理マシン間を移動したことにより無効となった命令を検出する検出部、
検出した命令に含まれるオペレーションコードに対応付けられた有効なオペレーションコードを取得する取得部、
取得した有効なオペレーションコードを出力する出力部
を有する装置。
21a 仮想マシン実行部
21b 例外検知部
25 ハイパーバイザ
25a 割り込みハンドラ
25b オペコードテーブル
25c オペコードマッチャー
25d エミュレーション部
25e エミュレーションコードテーブル
25f レジスタコンテキスト退避・復元領域
3 管理ホスト
4 共有ディスク
5 例外処理装置
Claims (6)
- 仮想マシンが物理マシン間を移動したことにより無効となった命令を検出し、
検出した前記命令に含まれる無効なオペレーションコードに対応付けられた有効なオペレーションコードを取得し、
取得した前記有効なオペレーションコードに対応した命令を実行し、
前記無効となった命令を検出した場合、
前記検出した命令を実行した仮想マシンを特定し、
特定した仮想マシンが確保している記憶領域を対象に前記無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
例外処理方法。 - 前記特定した仮想マシンが確保している記憶領域を対象に、前記仮想マシンが動作する物理マシンにて無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
請求項1に記載の例外処理方法。 - 仮想マシンが物理マシン間を移動する時に、
仮想マシンに対応付けられたメモリイメージを対象に前記無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
請求項1又は2に記載の例外処理方法。 - 前記有効なオペレーションコードを取得する際、無効なオペレーションコード及び有効なオペレーションコードを対応付けたテーブルを用いる
請求項1から3のいずれか1項に記載の例外処理方法。 - 仮想マシンが物理マシン間を移動したことにより、仮想マシンが動作する物理マシンにて無効となった命令を検出し、
検出した命令に含まれる無効なオペレーションコードに対応付けられた有効なオペレーションコードを取得し、
取得した有効なオペレーションコードに対応した命令を実行し、
前記無効となった命令を検出した場合、
前記検出した命令を実行した仮想マシンを特定し、
特定した仮想マシンが確保している記憶領域を対象に前記無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
処理を前記物理マシンに実行させるプログラム。 - 仮想マシンが物理マシン間を移動したことにより無効となった命令を検出する検出部、
検出した命令に含まれるオペレーションコードに対応付けられた有効なオペレーションコードを取得する取得部、
取得した有効なオペレーションコードを出力する出力部、
前記無効となった命令を検出した場合、前記検出した命令を実行した仮想マシンを特定する特定部、及び
特定した仮想マシンが確保している記憶領域を対象に前記無効なオペレーションコードを検索し、検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える書き換え部
を有する装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012057848A JP5929353B2 (ja) | 2012-03-14 | 2012-03-14 | 例外処理方法、プログラム及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012057848A JP5929353B2 (ja) | 2012-03-14 | 2012-03-14 | 例外処理方法、プログラム及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013191089A JP2013191089A (ja) | 2013-09-26 |
JP5929353B2 true JP5929353B2 (ja) | 2016-06-01 |
Family
ID=49391242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012057848A Active JP5929353B2 (ja) | 2012-03-14 | 2012-03-14 | 例外処理方法、プログラム及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5929353B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9858058B2 (en) * | 2014-03-31 | 2018-01-02 | International Business Machines Corporation | Partition mobility for partitions with extended code |
CN106325819B (zh) * | 2015-06-17 | 2019-08-02 | 华为技术有限公司 | 计算机指令处理方法、协处理器和系统 |
US11288086B2 (en) | 2016-03-31 | 2022-03-29 | Nec Corporation | Network system, management method and apparatus thereof, and server |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02231634A (ja) * | 1989-03-03 | 1990-09-13 | Nec Corp | ソフトウェア互換性維持方法 |
JPH10133886A (ja) * | 1996-10-31 | 1998-05-22 | Fujitsu Ltd | 情報処理装置 |
JP2002063031A (ja) * | 2000-08-18 | 2002-02-28 | Fainaaku Kk | アーキテクチャ切替え・再構成対応プロセッサ |
JP2008299648A (ja) * | 2007-05-31 | 2008-12-11 | Toshiba Corp | プログラムおよび情報処理装置 |
JP2010272055A (ja) * | 2009-05-25 | 2010-12-02 | Sony Corp | 情報処理装置および方法、並びにプログラム |
JP2011123635A (ja) * | 2009-12-10 | 2011-06-23 | Nec Corp | 情報処理装置、情報処理装置の制御方法、及び記録媒体 |
-
2012
- 2012-03-14 JP JP2012057848A patent/JP5929353B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013191089A (ja) | 2013-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6018590B2 (ja) | ライブラリーオペレーティングシステムによるアプリケーションの互換性 | |
US7797507B2 (en) | Virtual machine system and operating method thereof | |
JP7090657B2 (ja) | アプリケーションをアップグレードするための方法、装置、デバイスならびに記憶媒体 | |
JP5460430B2 (ja) | 動的コンパイラプログラム、動的コンパイル方法及び動的コンパイル装置 | |
US11487523B2 (en) | Updating machine emulator | |
WO2012100535A1 (zh) | 超级内核组件的升级方法和计算机系统 | |
TWI715762B (zh) | 虛擬機器創建方法和裝置 | |
CN102165431A (zh) | 使用仿真对物理硬件的运行时替换 | |
KR20140118093A (ko) | 메모리 가상화 기반 스냅샷 부트 장치 및 방법 | |
US20130318528A1 (en) | Information processing method | |
JP5778296B2 (ja) | 仮想計算機システム、仮想化機構、及びデータ管理方法 | |
US10705867B2 (en) | Hypervisor exchange with virtual machines in memory | |
US11693722B2 (en) | Fast memory mapped IO support by register switch | |
CN106648827A (zh) | 一种在线添加虚拟机资源的方法 | |
WO2020063432A1 (zh) | 一种升级虚拟化模拟器的方法和装置 | |
US7200705B2 (en) | Method of checkpointing state of virtual memory for process | |
US20120240116A1 (en) | Performance In A Virtualization Architecture With A Processor Abstraction Layer | |
JP5929353B2 (ja) | 例外処理方法、プログラム及び装置 | |
Kooburat et al. | The Best of Both Worlds with {On-Demand} Virtualization | |
US20120144182A1 (en) | Apparatus and method for fast booting based on virtualization technique | |
CN114090171A (zh) | 虚拟机创建方法、迁移方法及计算机可读介质 | |
CN113791873B (zh) | 一种虚拟机创建方法、计算设备及存储介质 | |
US20110314203A1 (en) | Resource adjustment methods and systems for virtual machines | |
US20140149971A1 (en) | Dynamic compiler program, dynamic compiling method and dynamic compiling device | |
US11188361B1 (en) | Cross-architecture software distribution using a virtual instruction set architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150203 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151215 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160129 |
|
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: 20160405 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160418 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5929353 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |