(57)【要約】【課題】  デバイス識別レジスタの種別によらず、ＯＳからの割込み発生デバイスの確認を可能とする。【解決手段】  デバイス３Ａ、３Ｂから共有の割込み信号線７を用いて割込み信号を受信する仮想計算機２は、デバイス３Ａの割込み発生を確認する第１の確認信号及びデバイス３Ｂの割込み発生を確認する第２の確認信号を送信するＯＳ部20と、デバイス３Ａ、３Ｂの割込み信号を伝送する割込み信号線７、デバイス３Ａ、３Ｂに関する情報を記憶した共有割込み判定テーブル11、割込み信号を受信した場合にＯＳ部20に割込み発生信号を送信し、共有割込み判定テーブル11を参照して割込み発生デバイスを判定する共有割込み判定部13、ＯＳ部20から送信される第１及び第２の確認信号を受信し、共有割込みの判定結果に基づきデバイス３Ａ、３Ｂを模擬してＯＳ部20に応答信号を送信する割込み発生模擬部14、を有する仮想マシンモニタ10と、を備える。【選択図】          図２
2012243135.tif 000002
【特許請求の範囲】
【請求項１】
第１のデバイスと、
前記第１のデバイスとは異なる第２のデバイスと、
前記第１のデバイスに対応する第１のデバイスドライバ及び前記第２のデバイスに対応する第２のデバイスドライバを有し、前記第１及び第２のデバイスに割込みが発生した場合に前記第１のデバイスからの割込みであるか前記第２のデバイスからの割込みであるかを判定し、この判定結果に基づいて割込みを発生した前記第１または第２のデバイスに処理を行わせる仮想計算機と、を備えた仮想計算機システムにおいて、
前記仮想計算機は、
前記第１のデバイスが割込みを発生した場合に、前記第１のデバイスの割込み発生を確認する第１の確認信号を前記第１のデバイスドライバを介して送信し、前記第２のデバイスが割込みを発生した場合に、前記第２のデバイスの割込み発生を確認する第２の確認信号を前記第２のデバイスドライバを介して送信するオペレーティングシステム部と、
前記第１のデバイスの割込み信号及び前記第２のデバイスの割込み信号を伝送する割込み信号線、
前記第１及び第２のデバイスに関する情報を記憶した情報テーブル、
前記割込み信号線を介して前記第１又は第２のデバイスの割込み信号を受信した場合に前記オペレーティングシステム部に割込み発生信号を送信し、前記情報テーブルを参照して該割込みを発生したデバイスを判定する割込み判定部、
前記割込み発生信号を受信したオペレーティングシステム部から送信される前記第１及び第２の確認信号を受信し、前記割込み判定部の判定結果に基づき前記第１又は第２のデバイスを模擬して該オペレーティングシステム部に応答信号を送信する割込み発生模擬部、を有する仮想マシンモニタと、
を備えたことを特徴とする仮想計算機システム。
【請求項２】
前記第１及び第２のデバイスに関する情報は、前記第１のデバイスが割込みを発生したことを示す該第１のデバイスに設けられた第１の割込み発生フラグのアドレス情報、及び前記第２のデバイスが割込みを発生したことを示す該第２のデバイスに設けられた第２の割込み発生フラグのアドレス情報、を有することを特徴とする請求項１に記載の仮想計算機システム。
【請求項３】
前記オペレーティングシステム部は、前記第１及び第２のデバイスに関する情報、及び該情報の登録、変更、削除の指示を前記仮想マシンモニタに送信する送信部、を備え、
前記仮想マシンモニタは、前記オペレーティングシステム部からの指示を受信し、該指示に応じて前記情報テーブルに情報の登録、変更、削除を行う情報テーブル登録更新部、を備えたことを特徴とする請求項１に記載の仮想計算機システム。
【請求項４】
第１のデバイスに対応する第１のデバイスドライバ、及び前記第１のデバイスとは異なる第２のデバイスに対応する第２のデバイスドライバ、を有し、前記第１のデバイスが割込みを発生した場合に、前記第１のデバイスの割込み発生を確認する第１の確認信号を前記第１のデバイスドライバを介して送信し、前記第２のデバイスが割込みを発生した場合に、前記第２のデバイスの割込み発生を確認する第２の確認信号を前記第２のデバイスドライバを介して送信するオペレーティングシステム部と、
前記第１のデバイスの割込み信号及び前記第２のデバイスの割込み信号を伝送する割込み信号線を有し、前記割込み信号線を介して前記第１又は第２のデバイスの割込み信号を受信した場合に前記第１のデバイスからの割込みであるか前記第２のデバイスからの割込みであるかを判定し、この判定結果を前記オペレーティングシステム部に通知する仮想マシンモニタと、を備えた仮想計算機において、
前記仮想マシンモニタは、
前記第１及び第２のデバイスに関する情報を記憶した情報テーブルと、
前記割込み信号線を介して前記第１又は第２のデバイスの割込み信号を受信した場合に前記オペレーティングシステム部に割込み発生信号を送信し、前記情報テーブルを参照して該割込みを発生したデバイスを判定する割込み判定部と、
前記割込み発生信号を受信したオペレーティングシステム部から送信される前記第１及び第２の確認信号を受信し、前記割込み判定部の判定結果に基づき前記第１又は第２のデバイスを模擬して該オペレーティングシステム部に応答信号を送信する割込み発生模擬部と、
を備えたことを特徴とする仮想計算機。
【請求項５】
第１のデバイスと、
前記第１のデバイスとは異なる第２のデバイスと、
前記第１のデバイスに対応する第１のデバイスドライバ及び前記第２のデバイスに対応する第２のデバイスドライバを有するオペレーティングシステム部、及び前記第１及び第２のデバイスに関する情報テーブルを有し、前記第１又は第２のデバイスから割込み信号を受信すると該割込みを発生したデバイスを判定して前記オペレーティングシステム部に通知する仮想マシン、を備えた仮想計算機と、が設けられた仮想計算機システムの割込み処理方法において、
前記第１又は第２のデバイスが前記仮想計算機に対して割込み信号を送信する第１の送信ステップと、
前記第１の送信ステップにより送信された前記割込み信号を前記仮想マシンが受信する受信ステップと、
前記受信ステップにより前記割込み信号を受信した前記仮想マシンが、前記情報テーブルを参照して該割込みを発生したデバイスを判定する判定ステップと、
前記受信ステップにより前記割込み信号を受信した前記仮想マシンが、前記第１のデバイスの割込み発生又は前記第２のデバイスの割込み発生を通知する割込み発生信号を前記オペレーティングシステム部に送信する第２の送信ステップと、
前記第２の送信ステップにより送信された前記割込み発生信号を受信した前記オペレーティングシステム部が、前記割込み発生信号により前記第１のデバイスに割込みが発生したとの通知を受けた場合に該第１のデバイスに割込み発生有無を確認する第１の確認信号を送信し、前記割込み発生信号により前記第２のデバイスに割込みが発生したとの通知を受けた場合に該第２のデバイスに割込み発生有無を確認する第２の確認信号を送信する確認ステップと、
前記確認ステップにより送信された前記第１及び第２の確認信号を受信した前記仮想マシンが、前記判定ステップによる判定結果に基づき割込みを発生した前記第１又は第２のデバイスを模擬して前記オペレーティングシステム部に応答する応答ステップと、
前記応答ステップにより割込みを発生したデバイスを確認した前記オペレーティングシステム部が、割込みを発生した該第１又は第２のデバイスに割込み処理を実行させる割込み処理ステップと、
を備えたことを特徴とする仮想計算機システムの割込み処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデバイスが割込み信号線を共有して仮想計算機へ割込みを通知する場合に、割込みを発生したデバイスを特定して割込み処理を実行させる仮想計算機システムに関するものである。
【背景技術】
【０００２】
複数のデバイスが同一の割込み番号を共有する場合に、複数のオペレーティングシステム（ＯＳ）を切替えて割込み処理を行うマルチオペレーティング計算機システムとして、従来、ＯＳ間制御部が割込みを発生したデバイスの判定をし、複数のＯＳの中から割込みを発生したデバイスに割付けられたＯＳを起動させるものがある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２２９０３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のような複数のデバイスが割込み信号線を共有するシステムにおいては、ＯＳ間制御部が割込みを発生したデバイスに割り付けられたＯＳを起動した後、このＯＳが割込みを発生したデバイスの確認を行うことが多い。
【０００５】
しかしながら、デバイス識別レジスタがリードによりクリアされるレジスタで構成されている場合、ＯＳ間制御部がこのレジスタを参照する時にデバイス識別レジスタの値がクリアされ、その後起動したＯＳが割込み発生デバイスの確認をできないという課題があった。
【０００６】
本発明はこのような課題を解決するためになされたもので、デバイス識別レジスタの種別によらず、ＯＳから割込み発生デバイスを確認できる仮想計算機システムを得ることを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る仮想計算機システムは、第１のデバイスと、第１のデバイスとは異なる第２のデバイスと、第１のデバイスに対応する第１のデバイスドライバ及び第２のデバイスに対応する第２のデバイスドライバを有し、第１及び第２のデバイスに割込みが発生した場合に第１のデバイスからの割込みであるか第２のデバイスからの割込みであるかを判定し、この判定結果に基づいて割込みを発生した第１または第２のデバイスに処理を行わせる仮想計算機と、を備えた仮想計算機システムであって、この仮想計算機は、第１のデバイスが割込みを発生した場合に、第１のデバイスの割込み発生を確認する第１の確認信号を第１のデバイスドライバを介して送信し、第２のデバイスが割込みを発生した場合に、第２のデバイスの割込み発生を確認する第２の確認信号を第２のデバイスドライバを介して送信するオペレーティングシステム部と、第１のデバイスの割込み信号及び第２のデバイスの割込み信号を伝送する割込み信号線、第１及び第２のデバイスに関する情報を記憶した情報テーブル、割込み信号線を介して第１又は第２のデバイスの割込み信号を受信した場合にオペレーティングシステム部に割込み発生信号を送信し、情報テーブルを参照してこの割込みを発生したデバイスを判定する割込み判定部、割込み発生信号を受信したオペレーティングシステム部から送信される第１及び第２の確認信号を受信し、割込み判定部の判定結果に基づき第１又は第２のデバイスを模擬してオペレーティングシステム部に応答信号を送信する割込み発生模擬部、を有する仮想マシンモニタと、を備えたものである。
【０００８】
本発明に係る仮想計算機は、第１のデバイスに対応する第１のデバイスドライバ、及び第１のデバイスとは異なる第２のデバイスに対応する第２のデバイスドライバ、を有し、第１のデバイスが割込みを発生した場合に、第１のデバイスの割込み発生を確認する第１の確認信号を第１のデバイスドライバを介して送信し、第２のデバイスが割込みを発生した場合に、第２のデバイスの割込み発生を確認する第２の確認信号を第２のデバイスドライバを介して送信するオペレーティングシステム部と、第１のデバイスの割込み信号及び第２のデバイスの割込み信号を伝送する割込み信号線を有し、割込み信号線を介して第１又は第２のデバイスの割込み信号を受信した場合に第１のデバイスからの割込みであるか第２のデバイスからの割込みであるかを判定し、この判定結果をオペレーティングシステム部に通知する仮想マシンモニタと、を備えた仮想計算機であって、この仮想マシンモニタは、第１及び第２のデバイスに関する情報を記憶した情報テーブルと、割込み信号線を介して第１又は第２のデバイスの割込み信号を受信した場合にオペレーティングシステム部に割込み発生信号を送信し、情報テーブルを参照して割込みを発生したデバイスを判定する割込み判定部と、割込み発生信号を受信したオペレーティングシステム部から送信される第１及び第２の確認信号を受信し、割込み判定部の判定結果に基づき第１又は第２のデバイスを模擬してオペレーティングシステム部に応答信号を送信する割込み発生模擬部と、を備えたものである。
【０００９】
本発明に係る仮想計算機システムの割込み処理方法は、第１のデバイスと、第１のデバイスとは異なる第２のデバイスと、第１のデバイスに対応する第１のデバイスドライバ及び第２のデバイスに対応する第２のデバイスドライバを有するオペレーティングシステム部、及び、第１及び第２のデバイスに関する情報テーブルを有し、第１又は第２のデバイスから割込み信号を受信すると割込みを発生したデバイスを判定してオペレーティングシステム部に通知する仮想マシン、を備えた仮想計算機と、が設けられた仮想計算機システムにおいて、第１又は第２のデバイスが仮想計算機に対して割込み信号を送信する第１の送信ステップと、第１の送信ステップにより送信された割込み信号を仮想マシンが受信する受信ステップと、受信ステップにより割込み信号を受信した仮想マシンが、情報テーブルを参照して割込みを発生したデバイスを判定する判定ステップと、受信ステップにより割込み信号を受信した仮想マシンが、第１のデバイスの割込み発生又は前記第２のデバイスの割込み発生を通知する割込み発生信号をオペレーティングシステム部に送信する第２の送信ステップと、第２の送信ステップにより送信された割込み発生信号を受信したオペレーティングシステム部が、割込み発生信号により第１のデバイスに割込みが発生したとの通知を受けた場合に第１のデバイスに割込み発生有無を確認する第１の確認信号を送信し、割込み発生信号により第２のデバイスに割込みが発生したとの通知を受けた場合に第２のデバイスに割込み発生有無を確認する第２の確認信号を送信する確認ステップと、確認ステップにより送信された第１及び第２の確認信号を受信した仮想マシンが、判定ステップによる判定結果に基づき割込みを発生した第１又は第２のデバイスを模擬してオペレーティングシステム部に応答する応答ステップと、応答ステップにより割込みを発生したデバイスを確認したオペレーティングシステム部が、割込みを発生した第１又は第２のデバイスに割込み処理を実行させる割込み処理ステップと、を備えたものである。
【発明の効果】
【００１０】
本発明によれば、仮想計算機システム、仮想計算機、仮想計算機システムの割込み処理方法は、上記構成を備えたことにより、デバイス識別レジスタの種別によらず、ＯＳから割込み発生デバイスを確認できる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係る仮想計算機システムの構成を示す図である。
【図２】実施の形態１に係る仮想計算機システムの機能ブロック図である。
【図３】実施の形態１に係る共有割込み判定テーブルの一例を示す図である。
【図４】実施の形態１における共有割込み判定テーブルへの情報の登録手順を示すシーケンス図である。
【図５】実施の形態１に係る仮想計算機システムの割込み処理手順を示すシーケンス図である。
【図６】実施の形態１における共有割込み判定テーブルからの情報の削除手順を示すシーケンス図である。
【発明を実施するための形態】
【００１２】
実施の形態１．
本発明を実施するための実施の形態１に係る仮想計算機システムを図１ないし図６を用いて説明する。
【００１３】
図１において、仮想計算機システム１は、仮想計算機２と、ケーブルやネットワーク等を介して仮想計算機２に接続されたキーボード31、マウス32、ディスプレイ33、プリンタ34、スキャナ35、外付けハードディスク36、など周辺機器であるデバイス３と、を備えている。仮想計算機２は、ＣＰＵ４、割込みコントローラ５、メモリ６、割込み信号線７、等を備えている。なお、デバイス３の一部または全部は、仮想計算機２に内蔵しても良い。
【００１４】
仮想計算機２の内外に設けられた各デバイス３は、ＰＣＩ（Peripheral Component Interconnect）バス８を介して割込みコントローラ５に接続され、複数のデバイス３間で割込み信号線７を共有している。仮想計算機２に設けられた割込み信号線７は、通常、ＰＣＩバス接続されたデバイス３の数よりも少ない。このため、各デバイス３は割込み信号線７を共有するが、割込み信号線７の数がＰＣＩバスで接続されたデバイス３の数以上の場合にも共有することができる。
【００１５】
図２は、仮想計算機システム１の一例を示す機能ブロック図である。
仮想計算機システム１は、ハードウェアのデバイス部30と、ソフトウェアの仮想マシンモニタ10及びオペレーティングシステム部20（以下、ＯＳ部20と称する）とで構成されている。ソフトウェアで構成される仮想マシンモニタ10及びＯＳ部20は、物理的にはメモリ６に記憶され、ＣＰＵ４からの指令（指示）に従い動作するものである。
なお、デバイス部30はデバイス３Ａ〜３Ｃを総称するものであればよく、物理的な構成として備えていなくても良い。ＯＳ部20も同様に、ＯＳ21Ａ〜21Ｃを総称するものであればよく、物理的な構成として備えていなくても良い。
【００１６】
図２の例では、ＯＳ部20には、デバイス部30のデバイス３Ａ〜３Ｃを操作する３つのＯＳ21Ａ〜21Ｃが設けられ、各ＯＳはデバイスを認識させるソフトウェアとしてデバイスドライバ22Ａ〜22Ｃをそれぞれ１つずつ備えている。ＯＳ21Ａ〜21Ｃは仮想計算機２上で動作するソフトウェアであり、例えばMicrosoft Windows（登録商標）やLinuxやリアルタイムOSなどがある。なお、１つのＯＳが複数のデバイスドライバ22Ａ〜22Ｃを備えていても良い。また、ＯＳ21Ａ〜21Ｃは、このＯＳ上で動作する１つ又は複数のアプリケーションプログラムで構成されるアプリケーション部23Ａ〜23Ｃを備えていても良い。
【００１７】
仮想マシンモニタ10は、デバイス部30の各デバイス３Ａ〜３Ｃ上で動作するＯＳ21Ａ〜21Ｃ（又はデバイスドライバ22Ａ〜22Ｃ）の切替え制御を行うソフトウェアであり、ハイパーバイザ、あるいはＯＳ間制御部とも呼ばれる。
【００１８】
仮想マシンモニタ10は、割込みを発生したデバイスを判定するために必要な情報を記憶した共有割込み判定テーブル11、各ＯＳ21Ａ〜21Ｃからの指示に応じて共有割込み判定テーブル11への情報の登録・更新・削除を行う共有割込み判定テーブル登録部12、共有割込み判定テーブル11に格納された情報を参照し、割込みを発生したデバイスがどのデバイスであるかを判定する共有割込み判定部13、デバイス３Ａ〜３Ｃから割込みが発生した場合にＯＳ21Ａ〜21Ｃからデバイス３Ａ〜３Ｃへの確認アクセスを受付け、デバイス３Ａ〜３Ｃの割込み発生を模擬して応答する割込み発生模擬部14、が設けられている。
【００１９】
デバイス部30は３つのデバイス３Ａ〜３Ｃを備えている。デバイス３Ａ〜３Ｃは、仮想計算機２に内蔵しているものと外部接続しているものとで同じ役割を果たすため、図２では区別していない。
【００２０】
図３は、共有割込み判定テーブル11の一例を示している。デバイス３それぞれに対して（ａ）割込み発生フラグレジスタのＩ/Ｏアドレス情報、（ｂ）割込み発生を判定するためのビットマスク値、（ｃ）割込み未発生時の割込み発生フラグレジスタの値、を１つずつ備えている。
【００２１】
割込み発生フラグレジスタとは、各デバイス３に設けられた割込み発生の有無を識別するためのレジスタのことである。通常、データの読み書きは複数ビット単位で行うが、割込み発生フラグレジスタは１ビット又は数ビット程度である。よって、上記（ａ）で読み出したＩ/Ｏアドレスに対応するデータのうち、割込み発生の識別に不要なレジスタをマスクするために上記（ｂ）を用いる。
【００２２】
ここで、仮想計算機システム１の動作を説明する。
【００２３】
・共有割込み判定テーブルへの情報の登録
【００２４】
図４に示すように、ＯＳ部20に設けられたＯＳ21Ａ〜21Ｃは、送信部（図示しない）から指示を送信することで共有割込み判定テーブル登録部12を呼び出し、自身に備えたアプリケーションプログラム23Ａ〜23Ｃやデバイスドライバ22Ａ〜22Ｃの情報を共有割込み判定テーブル11に登録させる（ステップS101）。上記呼び出しは、例えば仮想マシンモニタ10が提供するサービスコールであるハイパーコールを利用することにより可能となる。
【００２５】
共有割込み判定テーブル登録部12は、ＯＳ21Ａ〜21Ｃからの指示に従い、デバイス３Ａ〜３Ｃそれぞれについて共有割込み判定テーブル11を作成し、受信した情報を共有割込み判定テーブル11に登録する（ステップS102）。なお、共有割込み判定テーブル11が既に作成されている場合は、共有割込み判定テーブル登録部12は、ＯＳ21Ａ〜21Ｃからの指示に従い、受信した情報の更新を行う。
【００２６】
・共有割込み発生時の全体処理
【００２７】
図５に示すように、デバイス部30のいずれかのデバイス３Ａ〜３Ｃに割込みが発生すると、割込みを発生したデバイス３はＰＣＩバス８の割込み信号線７を介して共有割込み判定部13に割込み信号を送信する（ステップS111、第１の送信ステップ）。
【００２８】
共有割込み判定部13は、割込み信号を受信すると共有割込み判定テーブル11を参照し、この参照結果に基づき割込みを発生したデバイスを判定する（ステップS112、受信ステップ及び判定ステップ）。
具体的には、共有割込み判定部13が共有割込み判定テーブル11に割込み信号を送信すると、共有割込み判定テーブル11が（ａ）割込み発生フラグレジスタのＩ/Ｏアドレス情報、（ｂ）割込み発生を判定するためのビットマスク値、（ｃ）割込み未発生時の割込み発生フラグレジスタの値、を参照結果として返信する。
【００２９】
共有割込み判定部13は、受信した（ａ）割込み発生フラグレジスタのＩ/Ｏアドレスにアクセスし、このＩ／Ｏアドレスに対応するデバイス３Ａ〜３Ｃ内のレジスタのデータを読み出す。読み出したＩ／Ｏアドレスのデータには割込み発生フラグレジスタ以外の値も含まれているため、読み出したＩ／Ｏアドレスのデータと、共有割込み判定テーブル11から受信した（ｂ）割込み発生を判定するためのビットマスク値との論理積（ＡＮＤ）をとる。
【００３０】
次に、この論理積と共有割込み判定テーブル11から受信した（ｃ）割込み未発生時の割込み発生フラグレジスタの値を比較し、一致する場合はこのデバイスは割込みを発生したデバイスではないと判定し、不一致の場合はこのデバイスが割込みを発生したデバイスであると判定する。
【００３１】
ここで、デバイス３Ａが割込みを発生したとして、以下の説明を行う。
共有割込み判定部13は、割込みを発生したデバイス３Ａを特定すると、割込み発生模擬部14に判定結果を通知する（ステップS113）。判定結果の通知を受けた割込み発生模擬部14は、ＯＳ21Ａから割込み発生を確認する確認信号が送信された場合に自身が呼び出されるように仮想マシンモニタ10に対して設定を行う（ステップS114）。この設定は、例えばメモリコントロールユニット（ＭＭＵ）やＣＰＵの特権モード、Intel VT（Virtualization Technology）やAMD-V（Virtualization）機能によるＩ/Ｏアクセス保護機能を用いて、このＩ/Ｏアドレスへのアクセス保護を行うことで実現できる。
【００３２】
割込み発生模擬部14は設定が完了すると共有割込み判定部13にこれを通知し、共有割込み判定部13は、割込み発生デバイスに対応するデバイスドライバ22Ａを備えたＯＳ21Ａに割込み発生信号を送信する（ステップS115、第２の送信ステップ）。
なお、割込みを発生したデバイスがデバイス３Ｂ、３Ｃの場合は、これらの割込み発生デバイスに対応するデバイスドライバ22Ｂ、22Ｃ、及びこれを備えたＯＳ21Ｂ、21Ｃが上記デバイスドライバ22Ａ及びＯＳ21Ａと同様に動作する。
【００３３】
ＯＳ21Ａは、割込み発生信号を受信すると（ステップS116）、割込みを発生したデバイス３Ａへ割込みを発生しているか否かを確認するため、デバイス３Ａに設けられた割込み発生フラグレジスタを読み出す確認信号（第１の確認信号）をＯＳ21Ａからデバイスドライバ22Ａを介して、もしくはデバイスドライバ22Ａから直接、デバイス３Ａに向けて送信する（ステップS117、確認ステップ）。
なお、割込みを発生したデバイスがデバイス３Ｂ、３Ｃの場合は、デバイスドライバ22Ｂ又はＯＳ21Ｂからデバイス３Ｂの確認信号（第２の確認信号）、デバイスドライバ22Ｃ又はＯＳ21Ｃからデバイス３Ｃの確認信号が送信される。
【００３４】
仮想マシンモニタ10は、この確認信号を検知すると割込み発生模擬部14に通知し（ステップS118）、割込み発生模擬部14は、ステップS114による設定、すなわち確認信号を検知した場合に自身を呼び出す仮想マシンモニタ10への設定を解除する（ステップS119）。
【００３５】
次に、割込み発生模擬部14は受信した確認信号に対し、ステップS113により通知された判定結果に従い、割込みを発生したデバイス３Ａを模擬してこのデバイスの割込み発生フラグレジスタの値をＯＳ21Ａ又はデバイスドライバ22Ａへ返信する（ステップS120、応答ステップ）。
【００３６】
割込み発生模擬部14から割込み発生フラグレジスタの値を受信してＯＳ21Ａ又はデバイスドライバ22Ａは対応するデバイス３Ａの割込み発生を確認し（ステップS121）、このデバイス３Ａに対して割込み処理を実行する（ステップS122）。
【００３７】
・共有割込み判定テーブルからの情報の削除
【００３８】
ここで、デバイス３の交換等により、共有割込み判定テーブル11の登録情報が不要になった場合の削除手順について、図６を用いて説明する。
【００３９】
ＯＳ21は、デバイスドライバ22の無効化やアンロードを行い、これに伴い実行されるアプリケーション部23又はデバイスドライバ22からの指示（指令）により、共有割込み判定テーブル登録部12を呼び出す（ステップS131）。
【００４０】
共有割込み判定テーブル登録部12は、割込み発生模擬部14から仮想マシンモニタ10に対してステップS114による設定（確認信号を検知した場合に自身を呼び出す設定）がなされている場合は設定の解除を通知し（ステップS132）、この通知を受けた割込み発生模擬部14は仮想マシンモニタ10に対する設定を解除する（ステップS133）。
【００４１】
割込み発生模擬部14の仮想マシンモニタ10に対する設定解除を割込み発生模擬部14又は仮想マシンモニタ10からの通知もしくは自身の検知により確認すると、共有割込み判定テーブル登録部12はＯＳ21からの指示に従い、共有割込み判定テーブル11から指示されたデバイス３に関する情報を削除する（ステップS134）。デバイス３に関する情報とは、例えば、デバイス３の識別子、Ｉ/Ｏレジスタのアドレス情報、割込み発生フラグレジスタのビット情報、Ｉ/Ｏレジスタの割込み未発生時のデータ情報、等のことである。
なお、デバイス３に関する全ての情報を削除する場合は、共有割込み判定テーブル11を削除しても良い。
【００４２】
本実施の形態によれば、仮想計算機システム１は、仮想マシンモニタ10が割込みを発生したデバイス３を判定する共有割込み判定部13と、この割込み発生デバイスに関する情報を保持し、ＯＳ21又はデバイスドライバ22から送信される割込み発生の確認信号に対してこのデバイス３を模擬した応答を返す割込み発生模擬部14とを備えたことにより、ＯＳ21はデバイス３の割込み発生フラグレジスタに直接アクセスせず、仮想マシンモニタ10との間でデバイス３の割込み発生有無を確認することが可能となる。これにより、デバイス３に設けられた割込み発生フラグレジスタがリードによりクリアされるレジスタであっても、ＯＳ21から割込みを発生したデバイス３を確認できる。
【００４３】
また、仮想計算機システム１が使用するデバイス３を追加しても、ＯＳ部20や仮想マシンモニタ10の構成を変更することなく、共有割込み判定テーブル11の情報を更新することで、デバイス３の割込みを判定することもできる。
【００４４】
なお、上記実施の形態では、一例として、「情報テーブル」を「共有割込み判定テーブル」、「情報テーブル登録更新部」を「共有割込み判定テーブル登録部」、「割込み判定部」を「共有割込み判定部」として説明した。名称は上記のものに限らず、同様の機能を果たすものであれば「〜手段」、「〜プログラム」等であっても良い。
【符号の説明】
【００４５】
１  仮想計算機システム
２  仮想計算機
３、３Ａ〜３Ｃ  デバイス
７  割込み信号線
８  ＰＣＩ（Peripheral Component Interconnect）バス
10  仮想マシンモニタ
11  共有割込み判定テーブル
12  共有割込み判定テーブル登録部
13  共有割込み判定部
14  割込み発生模擬部
20  ＯＳ部（オペレーティングシステム部）
21、21Ａ〜21Ｃ  ＯＳ
22、22Ａ〜22Ｃ  デバイスドライバ
【図１】
2012243135.tif 000003
【図２】
2012243135.tif 000004
【図３】
2012243135.tif 000005
【図４】
2012243135.tif 000006
【図５】
2012243135.tif 000007
【図６】
2012243135.tif 000008