"メモリと当該メモリに接続された第1プロセッサ及び第2プロセッサとを備える仮想計算機システムであって、前記第1プロセッサと前記第2プロセッサとは、それぞれ、下位特権モードと、当該下位特権モードよりも上位の上位特権モードとを備え、前記メモリは、プロセッサの実行状態に関する実行状態情報を保存する実行状態保存領域を有し、前記仮想計算機システムは、プロセッサ上で前記下位特権モードで実行されるオペレーティングシステムと、前記第1プロセッサ上で前記上位特権モードで実行されるハイパバイザであり、前記第1プロセッサに、オペレーティングシステムの切替実行制御処理を、前記実行状態保存領域への実行状態情報の退避及び復元により実行させ、前記実行状態保存領域に退避されている実行状態情報を用いて前記第2プロセッサへ復元通知を行うためのハイパバイザと、前記第2プロセッサ上で前記下位特権モードで実行される復元プログラムであり、前記復元通知を受けた前記第2プロセッサに、前記実行状態保存領域に格納された実行状態情報を前記第2プロセッサの実行状態情報として復元させるための復元プログラムとを備えることを特徴とする仮想計算機システム。前記実行状態保存領域は、前記第1プロセッサ及び前記第2プロセッサから前記下位特権モードではアクセス不能であり、前記第1プロセッサから前記上位特権モードでアクセス可能である第1実行状態保存領域と、前記第2プロセッサから前記下位特権モードでアクセス可能である第2実行状態保存領域とを有し、前記ハイパバイザは、プロセッサに実行させる前記実行状態情報の退避及び復元に前記第1実行状態保存領域を用いて実行させ、実行停止中のオペレーティングシステムを前記第2プロセッサで実行させるためのプロセッサ変更条件が成立する場合に、当該実行停止中のオペレーティングシステムに対して前記第1実行状態保存領域に退避されている実行状態情報を前記第2実行状態保存領域に設定し、前記復元プログラムは、前記第2実行状態保存領域に格納された実行状態情報を前記第2のプロセッサの実行状態情報として復元させることを特徴とする請求項1記載の仮想計算機システム。前記ハイパバイザは、前記第1プロセッサの実行対象命令群の中に、前記第2プロセッサの前記上位特権モードで実行される必要のある処理を呼び出す部分が含まれている場合に、前記第1プロセッサで実行中のオペレーティングシステムを停止させる実行停止部を含み、前記プロセッサ変更条件は、前記実行停止部によって、前記第1プロセッサで実行中のオペレーティングシステムが停止させられたことであることを特徴とする請求項2記載の仮想計算機システム。前記オペレーティングシステムは複数であって、前記複数のオペレーティングシステムのそれぞれは、前記第2プロセッサで実行中の自オペレーティングシステムを停止させるためのOS停止条件が成立する場合に、前記第2プロセッサに、前記第2プロセッサの実行状態情報を前記第2実行状態保存領域に退避させた上で待機状態へ移行させるための待機状態設定部を含むことを特徴とする請求項3記載の仮想計算機システム。前記仮想計算機システムは、さらに、割込みコントローラを備え、前記複数のオペレーティングシステムのそれぞれは、前記OS停止条件が成立する場合において、さらに自オペレーティングシステムを前記第1プロセッサで実行させるためのOS再開条件が成立するときに、前記第2プロセッサに、前記割込みコントローラを介して前記第1プロセッサへ複写通知割込みを通知させるための割込み通知部を含み、前記ハイパバイザは、前記第1プロセッサに前記複写通知割込みが通知された場合に、前記第1プロセッサに、前記第2実行状態保存領域に退避されている実行状態情報を前記第1実行状態保存領域に設定させる設定部を含むことを特徴とする請求項4記載の仮想計算機システム。前記第2実行状態保存領域は、前記複数のオペレーティングシステムのそれぞれに対応するOS対応実行状態保存領域をそれぞれ含み、前記ハイパバイザは、前記プロセッサ変更条件が成立する場合に行う、前記第2実行状態保存領域への実行状態情報の設定を、設定対象となる実行状態情報に対応するオペレーティングシステムに対応するOS対応実行状態保存領域への設定により行い、前記待機状態設定部は、前記OS停止条件が成立する場合に行う、前記第2実行状態保存領域への実行状態情報の設定を、設定対象となる実行状態情報に対応するオペレーティングシステムに対応するOS対応実行状態保存領域への設定により行い、前記設定部は、前記複写通知割込みが通知された場合に行う、前記第1実行状態保存領域への実行状態情報の設定を、設定対象となる実行状態情報に対応するオペレーティングシステムに対応するOS対応実行状態保存領域に退避されている実行状態情報への設定により行うことを特徴とする請求項5記載の仮想計算機システム。前記第2プロセッサは、待機状態において前記復元通知割込みが通知されると、待機状態を解除して、前記復元プログラムを実行することを特徴とする請求項5記載の仮想計算機システム。前記メモリは、プロセッサから前記下位特権モードでアクセス可能であるアドレス保存領域を有し、前記ハイパバイザは、前記第1プロセッサに、第1実行状態保存領域に退避されている実行状態情報を前記第2実行状態保存領域に設定させる場合に、前記第1プロセッサに、前記復元プログラムの実行開始アドレスを前記アドレス保存領域に記憶させるためのアドレス設定部を有し、前記第2プロセッサは、前記復元プログラムの実行を、前記アドレス保存領域に設定されているアドレスを参照して行うことを特徴とする請求項5記載の仮想計算機システム。前記復元プログラムは、前記仮想計算機システムによって実行されるオペレーティングシステムの一部として実装され、前記メモリにおいて前記復元プログラムが格納される領域は、前記オペレーティングシステムが格納される領域に含まれることを特徴とする請求項5記載の仮想計算機システム。前記実行状態領域に保存する実行状態情報はレジスタ値であることを特徴とする請求項1記載の仮想計算機システム。メモリと当該メモリに接続された第1プロセッサ及び第2プロセッサとを備える仮想計算機システムであって、前記第1プロセッサと前記第2プロセッサとは、それぞれ、下位特権モードと、当該下位特権モードよりも上位の上位特権モードとを備え、前記メモリは、プロセッサの実行状態に関する実行状態情報を保存する実行状態保存領域を備える仮想計算機システムを制御する仮想計算機システム制御方法であって、前記第1プロセッサ上で前記上位特権モードで、前記第1プロセッサに、オペレーティングシステムの切替実行制御処理を、前記実行状態保存領域への実行状態情報の退避及び復元により実行させ、前記実行状態保存領域に退避されている実行状態情報を用いて前記第2プロセッサへ復元通知を行うハイパバイザステップと、前記第2プロセッサ上で前記下位特権モードで、前記復元通知を受けた前記第2プロセッサに、前記実行状態保存領域に格納された実行状態情報を前記第2プロセッサの実行状態情報として復元させる復元ステップとを含むことを特徴とする仮想計算機システム制御方法。しかしながら、ユーザモードに加えて3つ以上の特権モードを備えるプロセッサは、一般に高機能プロセッサである場合が多く、2つの特権モードのみを備えるプロセッサと比べて、消費電力量が多く、価格が高い場合が多い。そこで、本発明は係る問題に鑑みてなされたものであり、構成するプロセッサが特権モードを2つしか備えていないものであっても、システムの信頼性を確保したオペレーティングシステムの切り替え処理機能と、セキュアプログラムを利用したセキュリティ保護機能とを共存させることができる仮想計算機システムを提供することを目的とする。上記課題を解決するために本発明に係る仮想計算機システムは、メモリと当該メモリに接続された第1プロセッサ及び第2プロセッサとを備える仮想計算機システムであって、前記第1プロセッサと前記第2プロセッサとは、それぞれ、下位特権モードと、当該下位特権モードよりも上位の上位特権モードとを備え、前記メモリは、プロセッサの実行状態に関する実行状態情報を保存する実行状態保存領域を有し、前記仮想計算機システムは、プロセッサ上で前記下位特権モードで実行されるオペレーティングシステムと、前記第1プロセッサ上で前記上位特権モードで実行されるハイパバイザであり、前記第1プロセッサに、オペレーティングシステムの切替実行制御処理を、前記実行状態保存領域への実行状態情報の退避及び復元により実行させ、前記実行状態保存領域に退避されている実行状態情報を用いて前記第2プロセッサへ復元通知を行うためのハイパバイザと、前記第2プロセッサ上で前記下位特権モードで実行される復元プログラムであり、前記復元通知を受けた前記第2プロセッサに、前記実行状態保存領域に格納された実行状態情報を前記第2プロセッサの実行状態情報として復元させるための復元プログラムとを備えることを特徴とする。上述の構成を備える本発明に係る仮想計算機システムによると、第2プロセッサにおいて、上位特権モードでハイパバイザを実行していなくても、第1プロセッサにおいて切り替え処理対象となっているオペレーティングシステムを、第2プロセッサに移行して実行することができるようになる。これにより、第2プロセッサの上位特権モードがセキュアプログラムを実行するためのセキュアモードとして利用可能となる。従って、仮想計算機を構成する第1プロセッサと第2プロセッサとが特権モードを2つしか備えていなくても、システムの信頼性を確保したオペレーティングシステムの切り替え処理機能と、セキュアプログラムを利用したセキュリティ保護機能とを共存させることができることとなる。<実施の形態1><概要>以下、本発明に係る仮想計算機システムの一実施形態として、第1プロセッサと第2プロセッサとを備え、これらのプロセッサを用いて複数のオペレーティングシステムを実行する仮想計算機システムについて説明する。この仮想計算機システムは、第1プロセッサと第2プロセッサとが、それぞれ、スーパバイザモードと、スーパバイザモードより上位のハイパバイザ/セキュアモードとの2つの特権モードを備えている。第1プロセッサのハイパバイザ/セキュアモードは、スーパバイザモードで実行されるオペレーティングシステムの切り替え処理をプロセッサに実行させるハイパバイザを実行するために利用される。このため、セキュア機能を実現するためのセキュアプログラムは、第1プロセッサのハイパバイザ/セキュアモードでは実行されない。これに対して、第2プロセッサのハイパバイザ/セキュアモードは、ハイパバイザを実行するために利用されることがなく、セキュアプログラムを実行させるために利用される。このため、ハイパバイザは、第2プロセッサのハイパバイザ/セキュアモードでは実行されない。また、この仮想計算機システムは、仮想計算機システムを利用するユーザから秘匿されるべき暗号キーを用いて暗号化されたデジタル著作物を復号する機能を有している。以下、本実施の形態1に係る仮想計算機システムの構成について図面を参照しながら説明する。<ハードウエア構成>図1は、仮想計算機システム100の主要なハードウエア構成を示すブロック図である。同図に示す通り、仮想計算機システム100は、ハードウエアとしてはコンピュータ装置であり、マルチプロセッサLSILargeScaleIntegration110とハードディスク装置128と出力装置127と入力装置126とから構成される。マルチプロセッサLSI110は、第1プロセッサ101と第2プロセッサ102と割込コントローラ103とROMReadOnlyMemory104とRAMRandomAccessMemory105と第1インターフェース106と第2インターフェース107と第3インターフェース108とタイマ109と内部バス120とを集積した集積回路であって、入力装置126と出力装置127とハードディスク装置128とに接続する。第1プロセッサ101と第2プロセッサ102とは、それぞれ互いに同一種類のプロセッサであって、それぞれ内部バス120と割込コントローラ103とに接続され、ROM104又はRAM105に記憶されているプログラムを実行することで、ROM104、RAM105、タイマ109、入力装置126、出力装置127、ハードディスク装置128を制御して、様々な機能を実現する。図2は、第1プロセッサ101と第2プロセッサ102とが備える動作モードを示す動作モード図である。同図に示されるように、第1プロセッサ101と第2プロセッサ102とは、アプリケーションプログラムを実行するユーザモード230と、下位の特権モード以下、スーパバイザモードという。220と、スーパバイザモード220より上位の特権モード以下、ハイパバイザ/セキュアモードという。210とを備える。第1プロセッサ101は、アプリケーションプログラム図中のタスクA231、タスクK232、タスクL233等をユーザモード230で実行し、オペレーティングシステム図中の第1OS221、第2OS222をスーパバイザモード220で実行し、ハイパバイザ211をハイパバイザ/セキュアモード210で実行する。第2プロセッサ102は、アプリケーションプログラム図中のタスクM234、タスクN235、タスクZ236等をユーザモード230で実行し、オペレーティングシステム図中の第3OS223、第4OS224をスーパバイザモード220で実行し、セキュアプログラム212をハイパバイザ/セキュアモード210で実行する。ここで、セキュアプログラム212は、ROM104に記憶されている暗号キーを用いて行う復号に係る処理コードからなるプログラムである。第1プロセッサ101は、ハイパバイザ/セキュアモード210では、ハイパバイザ211を格納するメモリ領域にアクセスすることができるが、セキュアプログラム212を格納するメモリ領域にアクセスすることができなくなるように設定されている。これに対して、第2プロセッサ102は、ハイパバイザ/セキュアモード210では、セキュアプログラム212を格納するメモリ領域にアクセスすることができるが、ハイパバイザ211を格納するメモリ領域にアクセスすることができなくなるように設定されている。また、第2プロセッサ102は、自プロセッサを待機状態とする命令を実行することで、自プロセッサを待機状態とする機能を有している。ここで、プロセッサの待機状態とは、割込コントローラ103から割込みが通知されるまで、演算を停止し、次の命令を実行しない状態のことである。この待機状態は、プロセッサに、割込コントローラ103から割込みが通知されることで解除される。第2プロセッサ102は、待機状態が解除されると、再開ポインタ格納領域342後述に格納されているアドレスを開始アドレスとするプログラムを実行するように設定されている。再び図1に戻って、仮想計算機システム100の構成についての説明を続ける。割込コントローラ103は、内部バス120と第1プロセッサ101と第2プロセッサ102とに接続され、内部バス120を介して第1プロセッサ101に対する割込み要求を受けて第1プロセッサ101に割込みを通知する機能と、内部バス120を介して第2プロセッサ102に対する割込み要求を受けて第2プロセッサ102に割込みを通知する機能とを有する。ROM104は、内部バス120に接続され、第1プロセッサ101と第2プロセッサ102との動作を規定するプログラムと、第1プロセッサ101と第2プロセッサ102とが利用するデータとを記憶している。ROM104の記憶領域は、第1プロセッサ101と第2プロセッサ102とによって共有されている。但し、ROM104には、ハイパバイザ/セキュアモードの第2プロセッサ102に限ってアクセスされる領域が設定されており、その領域に仮想計算機システム100を利用するユーザに対して秘匿されるべきデータ、例えば暗号化されたデジタル著作物を復号するための暗号キーが記憶されている。RAM105は、内部バス120に接続され、第1プロセッサ101と第2プロセッサ102との動作を規定するプログラムと、第1プロセッサ101と第2プロセッサ102とが利用するデータとを記憶する。RAM105の記憶領域は、第1プロセッサ101と第2プロセッサ102とによって共有されている。但し、RAM105には、ハイパバイザ/セキュアモードの第1プロセッサ101に限ってアクセスされる領域と、ハイパバイザ/セキュアモードの第2プロセッサ102に限ってアクセスされる領域と、ハイパバイザ/セキュアモード又はスーパバイザモードのプロセッサに限ってアクセスされる領域とが設定されている。第1インターフェース106と第2インターフェース107と第3インターフェース108とは、それぞれ内部バス120に接続され、それぞれ内部バス120と入力装置126との間の信号のやり取りを仲介する機能、内部バス120と出力装置127との間の信号のやり取りを仲介する機能、内部バス120とハードディスク装置128との間の信号のやり取りを仲介する機能を有する。タイマ109は、内部バス120に接続され、第1プロセッサ101又は第2プロセッサ102によって制御される。内部バス120は、第1プロセッサ101と第2プロセッサ102と割込コントローラ103とROM104とRAM105と第1インターフェース106と第2インターフェース107と第3インターフェース108とタイマ109とに接続され、これら接続される回路間の信号を伝達する機能を有する。入力装置126は、キーボード、マウス等で構成され、第1インターフェース106に接続され、第1プロセッサ101又は第2プロセッサ102によって制御され、キーボード、マウス等を通じてユーザからの操作コマンドを受け付け、受け付けた操作コマンドを第1プロセッサ101又は第2プロセッサ102に送る機能を有する。出力装置127は、ディスプレイ、スピーカー等を内蔵し、第2インターフェース107に接続され、第1プロセッサ101又は第2プロセッサ102によって制御され、内蔵するディスプレイ、スピーカー等を用いて文字列、画像、音声等を表示出力する機能を有する。ハードディスク装置128は、ハードディスクを内蔵し、第3インターフェース108に接続され、第1プロセッサ101又は第2プロセッサ102によって制御され、内蔵するハードディスクにデータを書き込む機能と、内蔵するハードディスクに書き込まれているデータを読み出す機能とを有する。このハードディスク装置128に内蔵されるハードディスクには、暗号化されたデジタル著作物のデータ、第1プロセッサ101又は第2プロセッサ102によって実行されるプログラム等が書き込まれている。上述の仮想計算機システム100は、第1プロセッサ101又は第2プロセッサ102が、ROM104、RAM105に記憶されているプログラムを実行することによって、様々な機能を実現する。<プログラムモジュール構成>図3は、ある時刻t0において、マルチプロセッサLSI110上で実行されるべきものとなるプログラムモジュール以下、単にモジュールという。を示すブロック図である。同図において、モジュール群300は、第1プロセッサ101と第2プロセッサ102とのいずれか一方のプロセッサにおいて実行されるべきものとなっているモジュールの集合であって、モジュール群300に含まれるモジュールのそれぞれは、対応するプログラムが、ROM104、RAM105の記憶領域に格納されている。第1プロセッサ上のモジュール群301は、第1プロセッサ101において実行されるべきものとなっているモジュールの集合である。第2プロセッサ上のモジュール群302は、第2プロセッサ102において実行されるべきものとなっているモジュールの集合である。ユーザモードモジュール群305は、プロセッサのユーザモードで実行されるモジュールの集合である。スーパバイザモードモジュール群306は、プロセッサのスーパバイザモードで実行されるモジュールの集合である。ハイパバイザ/セキュアモードモジュール群307は、プロセッサのハイパバイザ/セキュアモードで実行されるモジュールの集合である。仮想計算機システム100において、アプリケーションプログラムは、スーパバイザモードで実行されるマルチタスク対応オペレーティングシステムによって実行制御され、ユーザモードで実行される。また、オペレーティングシステムは、ハイパバイザ/セキュアモードで実行されるハイパバイザによって実行制御され、スーパバイザモードで実行される。アプリケーションプログラムは、予め用意されたオペレーティングステム呼び出しルーチンを呼び出すことで、オペレーティングシステムに対して処理を依頼することができる。また、オペレーティングシステムは、予め用意されたハイパバイザ呼び出しルーチンを呼び出すことで、ハイパバイザに対して処理を依頼することができる。タスクA311~タスクB312とタスクL313とタスクN314とは、それぞれ、プロセッサのユーザモードで実行されるモジュールである。これらのうち、タスクA311~タスクB312とタスクL313とは、それぞれ、第1プロセッサ101において実行されるべきものとなるモジュールであり、タスクN314は、第2プロセッサ102において実行されるべきものとなるモジュールである。レジスタ保存領域343は、プロセッサのスーパバイザモード以上の特権モードで実行されているモジュールに限ってアクセス可能となるように設定された、プロセッサのレジスタの値を記憶するための、RAM105の記憶領域の一部の領域である。再開ポインタ格納領域342は、プロセッサのスーパバイザモード以上の特権モードで実行されているモジュールに限ってアクセス可能となるように設定された、モジュールの開始アドレスを示すポインタを記憶するための、RAM105の記憶領域の一部の領域である。復元モジュール341は、第2プロセッサ102のスーパバイザモードで実行されるモジュールであって、レジスタ保存領域343に記憶されている値を第2プロセッサ102のレジスタに復元する機能を有する。第1OS321と第2OS322と第3OS323とは、それぞれ互いに独立して動作するマルチタスク対応オペレーティングシステムであって、それぞれスーパバイザモードのプロセッサで実行される。これらのうち第1OS321と第2OS322とは、それぞれ、第1プロセッサ101において実行対象となるオペレーティングシステムであり、第3OS323は、第2プロセッサ102において実行対象となるオペレーティングシステムである。第1OS321は、タスクA311~タスクB312の実行制御を行っており、第2OS322は、タスクL313の実行制御を行っており、第3OSはタスクN314の実行制御を行っている。また、第3OS323は、内部に状態退避モジュール331と割込通知モジュール332と待機処理モジュール333とを含んでいる。状態退避モジュール331は、自モジュールを含むOSが第2プロセッサ102で実行されている場合において、自モジュールを含むOSによって実行制御されているタスクからの依頼によってハイパバイザ351後述の呼び出しルーチンが呼び出されるときに、その呼び出しルーチンの呼び出し直後の命令でそのタスクの実行を停止させ、自モジュールが動作しているプロセッサのレジスタの値を、レジスタ保存領域343に退避する機能を有する。割込通知モジュール332は、状態退避モジュール331がレジスタの値をレジスタ保存領域343に退避させた場合に、割込コントローラ103を用いて、第1プロセッサ101に対して、割込を通知する機能を有する。待機処理モジュール333は、割込通知モジュール332が第1プロセッサ101に対して割込を通知した場合に、第2プロセッサ102を待機状態にする機能を有する。ハイパバイザ351は、ハイパバイザ/スーパバイザモードの第1プロセッサ101において実行されるハイパバイザであって、タイマ109を用いて、複数のOSを時分割で実行させるための制御をする機能を有する。このハイパバイザ351は、内部にOS切替モジュール352とOS管理モジュール353とコンテクスト更新モジュール354とを含んでいる。OS管理モジュール353は、内部に第1OSコンテクスト記憶領域361と第2OSコンテクスト記憶領域362と第3OSコンテクスト記憶領域363とを含み、これらの記憶領域に、プロセッサのレジスタ値を記憶する機能と、これらの記憶領域からプロセッサのレジスタ値を読み出す機能とを有する。第1OSコンテクスト記憶領域361は、レジスタ値の記憶対象となるプロセッサが第1OS321を実行している場合における、レジスタ値を記憶するための、RAM105の記憶領域の一部の領域であって、第1プロセッサのハイパバイザ/セキュアモードで実行されているモジュールに限ってアクセス可能となるように設定されている。第2OSコンテクスト記憶領域362は、レジスタ値の記憶対象となるプロセッサが第2OS322を実行している場合における、レジスタ値を記憶するための、RAM105の記憶領域の一部の領域であって、第1プロセッサのハイパバイザ/セキュアモードで実行されているモジュールに限ってアクセス可能となるように設定されている。第3OSコンテクスト記憶領域363は、レジスタ値の記憶対象となるプロセッサが第3OS323を実行している場合における、レジスタ値を記憶するための、RAM105の記憶領域の一部の領域であって、第1プロセッサのハイパバイザ/セキュアモードで実行されているモジュールに限ってアクセス可能となるように設定されている。OS切替モジュール352は、実行制御対象となるオペレーティングシステムを記憶する機能と、タイマ109を用いて時間を計測することで、最大タイムスライス時間が所定時間T1例えば、10msとなるように、第1プロセッサ101で動作しているタスク、オペレーティングシステムの動作を停止して、OS管理モジュール353を用いて、対応するOSコンテクスト記憶領域に第1プロセッサ101のレジスタの値を退避させ、OS管理モジュール353を用いて、他の実行制御対象OSに対応するレジスタ値を読み出し、読み出したレジスタ値を第1プロセッサ101のレジスタに復元する機能時分割実行制御機能とを有する。さらに、OS切替モジュール352は、第1プロセッサ101で第3OS323が実行されている場合において、第3OS323によって実行制御されているタスクから第3OS323に対して呼び出しを依頼されたハイパバイザ呼び出しルーチンが終了すると、第1プロセッサ101で動作している第3OS323とタスクとの実行を停止して、OS管理モジュール353を用いて、第1プロセッサ101のレジスタの値を第3OSコンテクスト記憶領域363に退避させ、ハイパバイザ呼び出しルーチンが終了した旨を、コンテクスト更新モジュール354に通知する機能を有する。コンテクスト更新モジュール354は、第1プロセッサ101にハイパバイザ呼出割込後述が通知された場合に、レジスタ保存領域343に退避されているプロセッサのレジスタ値を読み出して、読み出したレジスタ値を、OS管理モジュール353を用いて、第3OSコンテクスト記憶領域363に記憶させ、第3OS323が実行制御対象OSに追加される旨の信号をOS切替モジュール352に通知する機能と、OS切替モジュール352からハイパバイザ呼び出しルーチンが終了した旨を通知された場合に、OS管理モジュール353を用いて、第3OSコンテクスト記憶領域363に記憶されているレジスタ値を読み出して、読み出したレジスタ値をレジスタ保存領域343に記憶させ、再開ポインタ格納領域342に復元モジュール341の開始アドレスを書き込み、割込コントローラ103を用いて、第2プロセッサ102に対してハイパバイザ呼出終了割込後述を通知し、第3OS323が実行対象OSから除外される旨の信号をOS切替モジュール352に通知する機能とを有する。セキュアモジュール370は、ハイパバイザ/スーパバイザモードの第2プロセッサ102で実行されるモジュールであって、ROM104に記憶されている暗号キーを用いて行う復号に係る処理を行う機能を有する。以上のように構成される仮想計算機システム100の行う動作について、以下図面を参照しながら説明する。<動作>ここでは、仮想計算機システム100の行う動作のうち、特徴的な動作である、ハイパバイザ呼出処理と、ハイパバイザ呼出終了処理とについて説明する。<ハイパバイザ呼出処理>ハイパバイザ呼出処理は、第2プロセッサ102で実行中のオペレーティングシステムここでは第3OS323によって実行制御されているタスクここではタスクN314から第3OS323に対してハイパバイザ351の呼び出しルーチンの呼び出しが依頼された場合に、第2プロセッサ102での第3OS323の実行を停止させ、代わりに、第1プロセッサ101で第3OS323を実行させるという処理である。このハイパバイザ呼出処理は、第1プロセッサ101と第2プロセッサ102とによって共同して実行される。図4は、ハイパバイザ呼出処理のうち第2プロセッサ102が行う処理のフローチャートであり、図5は、ハイパバイザ呼出処理のうち第1プロセッサ101が行う処理のフローチャートである。ハイパバイザ呼出処理は、タスクN314から第3OS323に対してハイパバイザ351の呼び出しルーチンの呼び出しが依頼されることで開始される。ハイパバイザ351の呼び出しルーチンが呼び出されると、状態退避モジュール331は、その呼び出しルーチンの呼び出し直後の命令でそのタスクの実行を停止させ、第2プロセッサのレジスタの値をレジスタ保存領域343に退避する図4:ステップS400。状態退避モジュール331がレジスタの値をレジスタ保存領域343に退避させると、割込通知モジュール332は、割込コントローラ103を用いて、第1プロセッサ101に対してハイパバイザ呼出割込を通知するステップS410。このハイパバイザ呼出割込とは、第2プロセッサ102においてハイパバイザ351の呼び出しルーチンが呼び出された旨を第1プロセッサ101に通知させるための割込みである。割込通知モジュール332が第1プロセッサ101に対してハイパバイザ呼出割込を通知すると、待機処理モジュール333は、第2プロセッサ102を待機状態とするステップS420。ステップS420の処理が終わると、第2プロセッサ102は、ハイパバイザ呼出処理のうちの第2プロセッサ102が行う処理を終了する。第1プロセッサ101にハイパバイザ呼出割込が通知されると図5:ステップS500、コンテクスト更新モジュール354は、レジスタ保存領域343に退避されているプロセッサのレジスタ値を読み出して、読み出したレジスタ値を、OS管理モジュール353を用いて、第3OSコンテクスト記憶領域363に記憶させステップS510、第3OS323が実行制御対象OSに追加される旨の信号をOS切替モジュール352に通知する。コンテクスト更新モジュール354から、第3OS323が実行制御対象OSに追加される旨の信号を通知されると、OS切替モジュール352は、第3OS323を実行対象OSに追加するステップS520。ステップS520の処理が終わると、第1プロセッサ101は、ハイパバイザ呼出処理のうちの第1プロセッサ101が行う処理を終了し、ハイパバイザ呼出処理が終了する。上述のハイパバイザ呼出処理が実行されることで、第2プロセッサ102上で動作していた第3OS323が、第1プロセッサ101上で動作するようになる。よって、第3OS323は、ハイパバイザ351の呼び出しルーチンを実行することができるようになる。<ハイパバイザ呼出終了処理>ハイパバイザ呼出終了処理は、ハイパバイザ呼出処理によって第1プロセッサ101の実行対象になったオペレーティングシステムここでは第3OS323が第1プロセッサ101によって実行されている場合において、ハイパバイザ351の呼び出しルーチンの処理が終了したときに開始される。このハイパバイザ呼出終了処理は、第1プロセッサ101で実行中の第3OS323を停止させて、停止させた第3OS323を第2プロセッサ102に実行させる処理であって、第1プロセッサと第2プロセッサとによって共同で実行される処理である。図6は、ハイパバイザ呼出終了処理のうち第1プロセッサ101が行う処理のフローチャートであり、図7は、ハイパバイザ呼出終了処理のうち第2プロセッサ102が行う処理のフローチャートである。ハイパバイザ呼出処理によって第1プロセッサ101の実行対象になった第3OS323が第1プロセッサ101によって実行されている場合において、ハイパバイザ351の呼び出しルーチンの処理が終了すると、OS切替モジュール352は、第1プロセッサ101で動作しているタスクと第3OS323との動作を停止して、OS管理モジュール353に、第1プロセッサ101のレジスタの値を第3OSコンテクスト記憶領域363に退避させ、ハイパバイザ呼び出しルーチンが終了した旨を、コンテクスト更新モジュール354に通知する。コンテクスト更新モジュール354は、ハイパバイザ呼び出しルーチンが終了した旨を通知されると、OS管理モジュール353を用いて、第3OSコンテクスト記憶領域363に記憶されているレジスタ値を読み出して、読み出したレジスタ値をレジスタ保存領域343に記憶させステップS600、再開ポインタ格納領域に342に復元モジュール341の開始アドレスを書き込みステップS610、割込コントローラ103を用いて、第2プロセッサ102に対してハイパバイザ呼出終了割込を通知しステップS620、第3OS323が実行対象OSから除外される旨の信号をOS切替モジュール352に通知する。このハイパバイザ呼出終了割込とは、第1プロセッサ101においてハイパバイザ呼出割込に対応する処理が終了した旨を第2プロセッサ102に通知するための割込みである。OS切替モジュール352は、第3OS323が実行対象OSから除外される旨の信号が通知されると、第3OS323を実行対象OSから除外するステップS630。ステップS630の処理が終わると、第1プロセッサ101は、ハイパバイザ呼出終了処理のうちの第1プロセッサ101が行う処理を終了する。第2プロセッサ102にハイパバイザ呼出終了割込が通知されると図7:ステップS700、第2プロセッサ102は、自プロセッサの待機状態を解除しステップS710、再開ポインタ格納領域342を参照して、再開ポインタ格納領域342に格納されているアドレスを開始アドレスとする復元モジュール341を実行するステップS720。復元モジュール341は、第2プロセッサ102に実行されることで、レジスタ保存領域343に記憶されている値を第2プロセッサ102のレジスタに復元するステップS730。ステップS730の処理が終わると、第2プロセッサ102は、ハイパバイザ呼出終了処理のうちの第2プロセッサ102が行う処理を終了し、ハイパバイザ呼出終了処理が終了する。上述のハイパバイザ呼出終了処理が実行されることで、ハイパバイザ呼出処理によって第1プロセッサ101上で動作するようになった第3OS323がハイパバイザ351の呼び出しルーチンの処理が終了すると、再び第2プロセッサ102上で動作するようになる。<まとめ>上述の仮想計算機システム100によれば、ハイパバイザ351を実行していない第2プロセッサ102でハイパバイザ351の呼び出しルーチンが呼び出されても、ハイパバイザ351を実行している第1プロセッサ101で、そのハイパバイザ呼び出しルーチンが実行されることとなる。従って、第2プロセッサ102は、ハイパバイザ/セキュアモード210でハイパバイザ351を実行させる必要がなく、ハイパバイザ/セキュアモード210でセキュアモジュール370を実行させることができるようになる。<実施の形態2><概要>以下、本発明に係る仮想計算機システムの一実施形態として、実施の形態1における仮想計算機システム100の一部を変形した変形仮想計算機システムについて説明する。実施の形態2に係る変形仮想計算機システムは、そのハードウエア構成が実施の形態1に係る仮想計算機システム100と同一のものであるが、実行されるプログラムの一部が実施の形態1に係る仮想計算機システム100と異なっている。実施の形態1に係る仮想計算機システム100は、第2プロセッサ102の実行対象となるオペレーティングシステムの数が1つとなる場合の例であったが、実施の形態2に係る変形仮想計算機システムでは、第2プロセッサ102の実行対象となるオペレーティングシステムの数が複数となる場合の例である。以下、本実施の形態2に係る変形仮想計算機システムの構成について、図面を参照しながら、実施の形態1に係る仮想計算機システムの構成との相違点を中心に説明する。<ハードウエア構成>仮想計算機システムのハードウエア構成は、実施の形態1の係る仮想計算機システム100のハードウエア構成と同一のものである。ここでは、説明を省略する。<プログラムモジュール構成>図8は、ある時刻t0において、マルチプロセッサLSI110上で実行されるべきものとなるモジュールを示すブロック図である。変形仮想計算機システムにおけるマルチプロセッサLSI110上で動作するモジュールは、実施の形態1に係る仮想計算機システム100におけるマルチプロセッサLSI110上で動作するモジュールに対して、第4OS824が追加され、状態退避モジュール331が状態退避モジュール831に変形され、復元モジュール341が第3OS用復元モジュール841と第4OS用復元モジュール842とに変形され、レジスタ保存領域343が第3OS用レジスタ保存領域843と第4OS用レジスタ保存領域844とに変形され、コンテクスト更新モジュール354がコンテクスト更新モジュール854に変形され、OS管理モジュール353がOS管理モジュール853に変形され、OS切替モジュール352がOS切替モジュール852に変形されている。また、コンテクスト更新モジュール354がコンテクスト更新モジュール854に変形され、OS管理モジュール353がOS管理モジュール853に変形され、OS切替モジュール352がOS切替モジュール852に変形されたことに伴って、ハイパバイザ351がハイパバイザ851に変形され、状態退避モジュール331が状態退避モジュール831に変形されたことに伴って、第3OS323が第3OS823に変形され、第4OS824が追加されたことに伴って、第4OS824によって実行制御されるタスクX815~タスクY816が追加されている。第3OS用レジスタ保存領域843は、プロセッサのスーパバイザモード以上の特権モードで実行されているモジュールに限ってアクセス可能となるように設定された、プロセッサのレジスタの値を記憶するための、RAM105の記憶領域の一部の領域のうち、対象となるプロセッサが第3OS823を実行している際のレジスタの値を記憶するための領域である。第4OS用レジスタ保存領域844は、プロセッサのスーパバイザモード以上の特権モードで実行されているモジュールに限ってアクセス可能となるように設定された、プロセッサのレジスタの値を記憶するための、RAM105の記憶領域の一部の領域のうち、対象となるプロセッサが第4OS824を実行している際のレジスタの値を記憶するための領域である。第3OS用復元モジュール841は、第2プロセッサ102のスーパバイザモードで実行されるモジュールであって、第3OS用レジスタ保存領域843に記憶されている値を第2プロセッサ102のレジスタに復元する機能を有する。第4OS用復元モジュール842は、第2プロセッサ102のスーパバイザモードで実行されるモジュールであって、第4OS用レジスタ保存領域844に記憶されている値を第2プロセッサ102のレジスタに復元する機能を有する。第4OS824は、他のオペレーティングシステムに対して独立に動作するマルチタスク対応オペレーティングシステムであって、プロセッサのスーパバイザモードで実行される。また、第4OS824は、タスクX815~タスクY816の実行制御を行っており、内部に状態退避モジュール836と割込通知モジュール837と待機処理モジュール838とを含んでいる。ここでは、時刻t0において、この第4OS824は実行停止中となっており、第4OS用レジスタ保存領域844に、以前第4OS824が実行停止となった時点における第2プロセッサ102のレジスタ値が記憶されているものとする。状態退避モジュール831は、実施の形態1に係る状態退避モジュール331が変形されたものであって、状態退避モジュール331の機能に加えて、以下の2つの追加機能を有する。追加機能1:自モジュールを含むOSが第2プロセッサ102で実行されている場合において、自モジュールを含むOS以外のOSに対する第2プロセッサ102への割込み以下、未定義割込みと呼ぶ。が通知されると、自モジュールが含まれるOSによって実行制御されているタスクの動作を停止させ、自モジュールが動作しているプロセッサのレジスタの値を、自モジュールを含むOSに対応するレジスタ保存領域に退避させる機能。追加機能2:自モジュールを含むOSが第2プロセッサ102で実行されている場合において、セキュア機能呼出割込後述が通知されると、自モジュールが含まれるOSによって実行制御されているタスクの動作を停止させ、自モジュールが動作しているプロセッサのレジスタの値を、自モジュールを含むOSに対応するレジスタ保存領域に退避させる機能。状態退避モジュール836と割込通知モジュール837と待機処理モジュール838とは、それぞれ、状態退避モジュール831と割込通知モジュール332と待機処理モジュール333と同じ機能を有するモジュールである。OS管理モジュール853は、実施の形態1に係るOS管理モジュール353が変形されたものであって、第4OSコンテクスト記憶領域864が追加されており、OS管理モジュール353の機能に加えて、以下の2つの追加機能を有する。ここで、第4OSコンテクスト記憶領域864は、レジスタ値の記憶対象となるプロセッサが第4OS824を実行している場合における、レジスタ値を記憶するための、RAM105の記憶領域の一部の領域であって、第1プロセッサのハイパバイザ/セキュアモードで実行されているモジュールに限ってアクセス可能となるように設定されている。追加機能1:第4OSコンテクスト記憶領域864に、プロセッサのレジスタ値を記憶する機能。追加機能2:第4OSコンテクスト記憶領域864からプロセッサのレジスタ値を読み出す機能。OS切替モジュール852は、実施の形態1に係るOS切替モジュール352が変形されたものであって、OS切替モジュール352の機能に加えて、以下の追加機能を有する。追加機能:第1プロセッサで実行されているOSによって実行制御されているタスクからそのOSに対してセキュアモジュールの呼び出しルーチンの呼び出しが依頼される場合に、その呼び出しルーチンの呼び出し直後の命令でそのタスクとOSとの実行を停止させ、OS管理モジュール853に、第1プロセッサ101のレジスタの値を対応するOSのコンテクスト記憶領域に退避し、セキュアモジュールが呼び出された旨を、コンテクスト更新モジュール854に通知する機能。コンテクスト更新モジュール854は、実施の形態1に係るコンテクスト更新モジュール354が変形されたものであって、コンテクスト更新モジュール354の機能に加えて、以下の4つの追加機能を有する。追加機能1:第1プロセッサ101に未定義割込発生割込後述が通知された場合に、1切替元OSに対応するレジスタ保存領域に退避されているプロセッサのレジスタ値を読み出し、2読み出したレジスタ値を、OS管理モジュール853を用いて、切替元OSに対応するコンテクスト記憶領域に記憶させ、3OS管理モジュール853を用いて切替先OSに対応するコンテクスト記憶領域に退避されているレジスタ値を読み出し、4読み出したレジスタ値を切替先OSに対応するレジスタ保存領域に記憶させ、5再開ポインタ格納領域342に切替先OSの復元モジュールの開始アドレスを書き込み、6割込コントローラ103を用いて、第2プロセッサ102に対して未定義割込応答割込後述を通知する機能。追加機能2:第1プロセッサ101に変形ハイパバイザ呼出割込後述が通知された場合に、1切替元OSに対応するレジスタ保存領域に退避されているプロセッサのレジスタ値を読み出し、2読み出したレジスタ値を、OS管理モジュール853を用いて、切替元OSに対応するコンテクスト記憶領域に記憶させ、3切替元OSが実行制御対象OSに追加される旨の信号をOS切替モジュール852に通知し、4OS管理モジュール853を用いて切替先OSに対応するコンテクスト記憶領域に退避されているレジスタ値を読み出し、5読み出したレジスタ値を切替先OSに対応するレジスタ保存領域に記憶させ、6再開ポインタ格納領域342に切替先OSの復元モジュールの開始アドレスを書き込み、7割込コントローラ103を用いて、第2プロセッサ102に対して変形ハイパバイザ応答割込後述を通知する機能。追加機能3:OS切替モジュール852からセキュアモジュールが呼び出された旨を通知された場合に、1OS管理モジュール853を用いて、対応するOSのコンテクスト記憶領域に記憶されているレジスタ値を読み出して、2読み出したレジスタ値を対応するOSのレジスタ保存領域に記憶させ、3再開ポインタ格納領域342に対応するOSの復元モジュールの開始アドレスを書き込み、4割込コントローラ103を用いて、第2プロセッサ102に対してセキュア機能呼出割込を通知し、5対応するOSが実行対象OSから除外される旨の信号をOS切替モジュール852に通知するする機能。追加機能4:第1プロセッサ101にセキュア機能応答割込後述が通知された場合に、1切替元OSに対応するレジスタ保存領域に退避されているプロセッサのレジスタ値を読み出し、2読み出したレジスタ値を、OS管理モジュール853を用いて、切替元OSに対応するコンテクスト記憶領域に記憶させ、3割込コントローラ103を用いて、第2プロセッサ102に対して待機解除割込を通知する機能。以上のように構成される変形仮想計算機システムの行う動作について、以下図面を参照しながら説明する。<動作>ここでは、仮想計算機システム100の行う動作のうち、特徴的な動作である、未定義割込処理と変形ハイパバイザ呼出処理とセキュア機能呼出処理とについて説明する。<未定義割込処理>未定義割込処理は、第2プロセッサ102で実行停止中のオペレーティングシステムここでは第4OS824に対する割込みが通知された場合に、第2プロセッサ102で実行中のオペレーティングシステムここでは第3OS823の処理を停止させ、代わりに実行停止中のオペレーティングシステムを第2プロセッサ102で実行を再開させるという処理である。この未定義割込処理は、第1プロセッサ101と第2プロセッサ102とによって共同して実行される。図9は、未定義割込処理のうち第2プロセッサ102が行う処理のフローチャートであり、図10は、未定義割込処理のうち第1プロセッサ101が行う処理のフローチャートである。未定義割込処理は、第2プロセッサ102で第3OS823が実行されている場合において、第2プロセッサ102に対して、実行停止中である第4OS824に対する割込みが通知されることによって開始される。第2プロセッサ102に対して、第4OS824に対する割込みが通知されると、状態退避モジュール831は、第3OS823によって実行されているタスクN314の動作を停止させ、第2プロセッサ102のレジスタ値を第3OS用レジスタ保存領域843に退避させる図9:ステップS900。状態退避モジュール831がレジスタの値を第3OS用レジスタ保存領域843に退避させると、割込通知モジュール332は、割込コントローラ103を用いて、第1プロセッサ101に対して未定義割込発生割込を通知するステップS910。この未定義割込発生割込とは、第2プロセッサ102に未定義割込みが通知された旨を第1プロセッサ101に通知させるための割込である。割込通知モジュール332が第1プロセッサ101に対して未定義割込発生割込を通知すると、待機処理モジュール333は、第2プロセッサ102を待機状態とするステップS920。その後、第2プロセッサ102は、割込コントローラ103から未定義割込応答割込後述を通知されるまで、待機状態を継続するステップS930:Noを繰り返す。第1プロセッサ101に未定義割込発生割込が通知されると図10:ステップS1000、コンテクスト更新モジュール854は、第3OS用レジスタ保存領域843に退避されているプロセッサのレジスタ値を読み出して、読み出したレジスタ値を、OS管理モジュール853を用いて、第3OSコンテクスト記憶領域363に記憶させるステップS1010。ステップS1010の処理が終わると、コンテクスト更新モジュール854は、OS管理モジュール853を用いて、第4OSコンテクスト記憶領域864に記憶されているレジスタ値を読み出して、読み出したレジスタ値を、第4OS用レジスタ保存領域844に記憶させステップS1020、再開ポインタ格納領域342に第4OS用復元モジュール842の開始アドレスを書き込むステップS1030。ステップS1030の処理が終わると、コンテクスト更新モジュール854は、割込コントローラ103を用いて、第2プロセッサ102に対して未定義割込応答割込を通知するステップS1040。この未定義割込応答割込とは、第1プロセッサ101において未定義割込発生割込に対応する処理が終了した旨を第2プロセッサ102に通知させるための割込である。ステップS1040の処理が終わると、第1プロセッサ101は、未定義割込処理のうちの第1プロセッサ101が行う処理を終了する。待機状態の第2プロセッサ102に未定義割込応答割込が通知されると図9:ステップS930:Yes、第2プロセッサ102は、自プロセッサの待機状態を解除しステップS940、再開ポインタ格納領域342を参照して、再開ポインタ格納領域342に格納されているアドレスを開始アドレスとする第4OS用復元モジュール842を実行するステップS950。第4OS用復元モジュール842は、第2プロセッサ102に実行されることで、第4OS用レジスタ保存領域844に記憶されている値を第2プロセッサ102のレジスタに復元するステップS960。ステップS960の処理が終わると、第2プロセッサ102は、未定義割込処理のうちの第2プロセッサ102が行う処理を終了し、未定義割込処理が終了する。上述の未定義割込処理が実行されることで、実行停止中だった第4OS824は、第2プロセッサ102上で実行を再開するようになる。よって、第4OS824は、停止期間中に通知された割込みを処理することができるようになる。<変形ハイパバイザ呼出処理>変形ハイパバイザ呼出処理は、第2プロセッサ102で実行停止中のオペレーティングシステムここでは第4OS824が存在する場合において、第2プロセッサ102で実行中のオペレーティングシステムここでは第3OS823によって実行制御されているタスクここではタスクN314から実行中のオペレーティングシステムに対してハイパバイザ851の呼び出しルーチンの呼び出しが依頼されたときに、第2プロセッサ102での実行中のオペレーティングシステムの実行を停止させ、代わりに、第1プロセッサ101でその実行中だったオペレーティングシステムを実行させ、さらに、第2プロセッサ102で実行停止中のオペレーティングシステムの実行を第2プロセッサ102で再開させるという処理である。この変形ハイパバイザ呼出処理は、第1プロセッサ101と第2プロセッサ102とによって共同して実行される。図11は、変形ハイパバイザ呼出処理のうち第2プロセッサ102が行う処理のフローチャートであり、図12は、変形ハイパバイザ呼出処理のうち第1プロセッサ101が行う処理のフローチャートである。変形ハイパバイザ呼出処理は、第4OS824が第2プロセッサ102で実行停止中である場合において、タスクN314から第3OS823に対してハイパバイザ851の呼び出しルーチンの呼び出しが依頼されることで開始される。ハイパバイザ851の呼び出しルーチンが呼び出されると、状態退避モジュール831は、その呼び出しルーチンの呼び出し直後の命令でそのタスクの実行を停止させ、第2プロセッサ102のレジスタ値を第3OS用レジスタ保存領域843に退避する図11:ステップS1100。状態退避モジュール831がレジスタの値を第3OS用レジスタ保存領域843に退避させると、割込通知モジュール332は、割込コントローラ103を用いて、第1プロセッサ101に対して変形ハイパバイザ呼出割込を通知するステップS1110。この変形ハイパバイザ呼出割込とは、第2プロセッサ102で実行停止中のオペレーティングシステムが存在する場合において、第2プロセッサ102においてハイパバイザ851の呼び出しルーチンが呼び出された旨を第1プロセッサ101に通知させるための割込みである。割込通知モジュール332が第1プロセッサ101に対して変形ハイパバイザ呼出割込を通知すると、待機処理モジュール333は、第2プロセッサ102を待機状態とするステップS1120。その後、第2プロセッサ102は、割込コントローラ103から変形ハイパバイザ呼出終了割込を通知されるまで、待機状態を継続するステップS1130:Noを繰り返す。第1プロセッサ101に変形ハイパバイザ呼出割込が通知されると図12:ステップS1200、コンテクスト更新モジュール854は、第3OS用レジスタ保存領域843に退避されているプロセッサのレジスタ値を読み出して、読み出したレジスタ値を、OS管理モジュール853を用いて、第3OSコンテクスト記憶領域363に記憶させステップS1210、第3OS823が実行制御対象OSに追加される旨の信号をOS切替モジュール852に通知する。OS切替モジュール852は、第3OS823が実行制御対象OSに追加される旨の信号を通知されると、第3OS323を実行対象OSに追加するステップS1220。ステップS1220の処理が終わると、コンテクスト更新モジュール854は、OS管理モジュール853を用いて、第4OSコンテクスト記憶領域864に記憶されているレジスタ値を読み出して、読み出したレジスタ値を、第4OS用レジスタ保存領域844に記憶させステップS1230、再開ポインタ格納領域342に第4OS用復元モジュール842の開始アドレスを書き込むステップS1240。ステップS1240の処理が終わると、コンテクスト更新モジュール854は、割込コントローラ103を用いて、第2プロセッサ102に対して変形ハイパバイザ呼出終了割込を通知するステップS1250。この変形ハイパバイザ呼出終了割込とは、第1プロセッサ101において変形ハイパバイザ呼出割込に対応する処理が終了した旨を第2プロセッサ102に通知させるための割込みである。ステップS1250の処理が終わると、第1プロセッサ101は、変形ハイパバイザ呼出処理のうちの第1プロセッサ101が行う処理を終了する。待機状態の第2プロセッサ102に変形ハイパバイザ呼出終了割込が通知されると図9:ステップS1130:Yes、第2プロセッサ102は、自プロセッサの待機状態を解除しステップS1140、再開ポインタ格納領域342を参照して、再開ポインタ格納領域342に格納されているアドレスを開始アドレスとする第4OS用復元モジュール842を実行するステップS1150。第4OS用復元モジュール842は、第2プロセッサ102に実行されることで、第4OS用レジスタ保存領域844に記憶されている値を第2プロセッサ102のレジスタに復元するステップS1160。ステップS1160の処理が終わると、第2プロセッサ102は、変形ハイパバイザ呼出処理のうちの第2プロセッサ102が行う処理を終了し、変形ハイパバイザ呼出処理が終了する。上述の変形ハイパバイザ呼出処理が実行されることで、第2プロセッサ102上で動作していた第3OS823が、第1プロセッサ101上で動作するようになる。よって、第3OS823は、ハイパバイザ851の呼び出しルーチンを実行することができるようになる。<セキュア機能呼出処理>図13は、ある時刻t1において、マルチプロセッサLSI110上で実行されるべきものとなるモジュールを示すブロック図である。時刻t0におけるマルチプロセッサLSI110上で実行されるべきものとなるモジュール図8参照との相違点は、第4OS824が、第1プロセッサにおける時分割実行対象オペレーティングシステムとなっている点と、第4OS824によって実行制御されているタスクが、タスクX815のみとなっている点とである。セキュア機能呼出処理は、第1プロセッサ101で実行中のオペレーティングシステムここでは第4OS824によって実行制御されているタスクここではタスクX815から実行中のオペレーティングシステムに対してセキュアモジュール370の呼び出しルーチンの呼び出しが依頼された場合に、第1プロセッサ101で実行中のオペレーティングシステムの実行を停止させ、その停止させたオペレーティングシステムを第2プロセッサ102で実行させるという処理である。このセキュア機能呼出処理は、第1プロセッサ101と第2プロセッサ102とによって共同して実行される。図14は、セキュア機能呼出処理のうちの第1プロセッサ101が行う処理のフローチャートであり、図15は、セキュア機能呼出処理のうちの第2プロセッサ102が行う処理のフローチャートである。セキュア機能呼出処理は、第4OS824が第1プロセッサ101で実行中である場合に置いて、タスクX815から第4OS824に対してセキュアモジュール370の呼び出しルーチンの呼び出しが依頼されることで開始される。セキュアモジュール370の呼び出しルーチンが呼び出されると、OS切替モジュール852は、その呼び出しルーチンの呼び出し直後の命令でタスクX815と第4OS824との実行を停止させ、OS管理モジュール853に、第1プロセッサ101のレジスタの値を第4OSコンテクスト記憶領域864に退避しステップS1400、セキュアモジュールが呼び出された旨を、コンテクスト更新モジュール854に通知する。コンテクスト更新モジュール854は、セキュアモジュールが呼び出された旨を通知されると、OS管理モジュール853を用いて、第4OSコンテクスト記憶領域864に記憶されているレジスタ値を読み出して、読み出したレジスタ値を第4OS用レジスタ保存領域844に記憶させステップS1410、再開ポインタ格納領域342に第4OS用復元モジュール842の開始アドレスを書き込みステップS1420、割込コントローラ103を用いて、第2プロセッサ102に対してセキュア機能呼出割込を通知ステップS1430する。このセキュア機能呼出割込とは、第1プロセッサ101においてセキュアモジュールの呼び出しが発生した旨を第2プロセッサ102に通知させるための割込である。コンテクスト更新モジュール854は、第2プロセッサ102に対してセキュア機能呼出割込を通知すると、第4OS824が実行対象OSから除外される旨の信号をOS切替モジュール852に通知する。OS切替モジュール852は、第4OS824が実行対象OSから除外される旨の信号を通知されると、第4OS824を実行対象OSから除外するステップS1440。コンテクスト更新モジュール854は、その後セキュア機能応答割込後述を通知されるまで待つステップS1450:Noを繰り返す。。第2プロセッサ102にセキュア機能呼出割込が通知されると図15:ステップS1500、状態退避モジュール831は、実行制御しているタスクの動作を停止させ、第2プロセッサ102のレジスタの値を、第3OS用レジスタ保存領域843に退避させるステップS1510。状態退避モジュール831がレジスタの値を第3OS用レジスタ保存領域843に退避させると、割込通知モジュール332は、割込コントローラ103を用いて、第1プロセッサ101に対してセキュア機能応答割込を通知するステップS1520。このセキュア機能応答割込とは、第2プロセッサ102においてセキュア機能呼出割込に対応する処理が終了した旨を第1プロセッサ101に通知させるための割込である。割込通知モジュール332が第1プロセッサ101に対してセキュア機能応答割込を通知すると、待機処理モジュール333は、第2プロセッサ102を待機状態とするステップS1530。その後、第2プロセッサ102は、割込コントローラ103から待機解除割込後述を通知されるまで、待機状態を継続するステップS1540:Noを繰り返す。第1プロセッサ101にセキュア機能応答割込が通知されると図14:ステップS1450:Yes、コンテクスト更新モジュール854は、第3OS用レジスタ保存領域843に退避されているプロセッサのレジスタ値を読み出し、OS管理モジュール853を用いて、読み出したレジスタ値を、第3OSコンテクスト記憶領域363に記憶させるステップS1460。コンテクスト更新モジュール854は、読み出したレジスタ値を、第3OSコンテクスト記憶領域363に記憶させると、割込コントローラ103を用いて、第2プロセッサ102に対して待機解除割込を通知するステップS1470。この待機解除割込とは、待機状態を解除させる旨を第2プロセッサ102に通知させるための割込である。ステップS1470の処理が終わると、第1プロセッサ101は、セキュア機能呼出処理のうちの第1プロセッサ101が行う処理を終了する。第2プロセッサ102に待機解除割込が通知されると図15:ステップS1540:Yes、第2プロセッサ102は、自プロセッサの待機状態を解除しステップS1550、再開ポインタ格納領域342を参照して、再開ポインタ格納領域342に格納されているアドレスを開始アドレスとする第4OS用復元モジュール842を実行するステップS1560。第4OS用復元モジュール842は、第2プロセッサ102に実行されることで、第4OS用レジスタ保存領域844に記憶されている値を第2プロセッサ102のレジスタに復元するステップS1570。ステップS1570の処理が終わると、第2プロセッサ102は、セキュア機能呼出処理のうちの第2プロセッサ102の行う処理を終了し、セキュア機能呼出処理が終了する。上述のセキュア機能呼出処理が実行されることで、第1プロセッサ101上で動作していた第4OSが、第2プロセッサ102上で動作するようになる。よって、第4OS824は、セキュアモジュール370を実行することができるようになる。変形仮想計算機システムの行う特徴的な動作の例として、上述の未定義割込処理と変形ハイパバイザ呼出処理とセキュア機能呼出処理とについて説明したが、さらに例えば以下のような動作を変形仮想計算機システムに行わせることができる。<第2プロセッサ102における時分割処理>前述の未定義割込処理は、第2プロセッサ102で実行中の第3OS823を実行停止させ、第2プロセッサ102で実行停止中の第4OS824を実行させるものであり、第2プロセッサ102で実行停止中の第4OS824に対する割込みが通知されることによって開始されるものであった。これに対して、例えば、第3OS823の状態退避モジュール831と第4OS824の状態退避モジュール836とが、それぞれタイマ109を用いて所定時間T2例えば、10ms毎に未定義割込処理と同様の処理を開始するようにしておけば、第2プロセッサ102上で、所定時間T2例えば、10ms周期で、第3OS823と第4OS824とを切替えて実行させることができるようになる。<まとめ>上述の変形仮想計算機システムによれば、第2プロセッサ102で実行停止中のオペレーティングシステムに対する割込みが発生しても、そのオペレーティングシステムを再開させることで、その割込みに対する処理が実行されることとなる。また、この変形仮想計算機システムによれば、セキュアモジュール370を実行していない第1プロセッサ101でセキュアモジュール370の呼び出しルーチンが呼び出されても、セキュアモジュール370を実行している第2プロセッサ102で、そのセキュアモジュール370の呼び出しルーチンが実行されることとなる。また、この変形仮想計算機システムによれば、ハイパバイザ851を実行していない第2プロセッサ102でハイパバイザ851の呼び出しルーチンが呼び出されても、ハイパバイザ851を実行している第1プロセッサ101で、そのハイパバイザ呼び出しルーチンが実行されることとなる。従って、第2プロセッサ102は、ハイパバイザ/セキュアモード210でハイパバイザ851を実行させる必要がなく、ハイパバイザ/セキュアモード210でセキュアモジュール370を実行させることができるようになる。<補足>以上、本発明に係る仮想計算機システムの一実施形態として、実施の形態1、実施の形態2において、2つの仮想計算機システムの例について説明したが、以下のように変形することも可能であり、本発明は上述した実施の形態で示した通りの仮想計算機システムに限られないことはもちろんである。1実施の形態1において、仮想計算機システム100が2つのプロセッサを備える場合の例について説明したが、ハイパバイザを実行する少なくとも1つのプロセッサと、セキュアモジュールを実行する少なくとも1つのプロセッサとを備えていれば、プロセッサの数は、必ずしも2つに限られることはなく、例えば、プロセッサの数は、3、5、10等であっても構わない。2実施の形態1において、第1プロセッサ101においてハイパバイザ351による切り換え実行制御処理対象となるオペレーティングシステムの数が2つの場合を例として説明したが、ハイパバイザ351による切り換え実行制御処理対象になることができれば、オペレーティングシステムの数は、必ずしも2つに限られる必要はなく、例えば、オペレーティングシステムの数は、3、5、10等であっても構わない。また、実施の形態2において、第2プロセッサ102において実行対象となるオペレーティングシステムの数が2つの場合を例として説明したが、第2プロセッサ102の実行対象となることができれば、オペレーティングシステムの数は必ずしも2つに限られる必要はなく、例えば、オペレーティングシステムの数は3,5,10等であっても構わない。3実施の形態1において、第1プロセッサ101と第2プロセッサ102と割込コントローラ103とROM104とRAM105と第1インターフェース106と第2インターフェース107と第3インターフェース108とタイマ109とが、1つのマルチプロセッサLSI110に集積されている場合の例について説明したが、これらの回路が必ずしも1つのLSIに集積されている必要はなく、マルチプロセッサLSI110によって実現される機能を実現することができれば、必ずしも1つのLSIに集積されている必要はなく、例えば、各回路がそれぞれ互いに異なる集積回路に集積されている構成であっても構わない。なお、実施の形態1および2においては、オペレーティングシステムの切り替えの際に、プロセッサのレジスタの値を用いて実行状態の退避または復元を行う例を説明したが、レジスタ値以外に、1例えば、仮想計算機ごとの暗号キーなど、プロセッサ内ローカルメモリの全体または一部の情報、2例えば、命令コード、データがキャッシュに載っていることを想定して動くプログラムがある場合にはキャッシュの一部、3TLBへのロード命令がある場合にはTLBエントリの内容、といったように、プロセッサ内の記憶場所に記憶された情報を実行状態情報として用いてもよい。4実施の形態1において、第1プロセッサ101と第2プロセッサ102とが、それぞれ2つの特権モードを備える構成の場合を例として説明したが、それぞれ少なくとも2つの特権モードを備えていれば、必ずしも特権モードの数は2つに限られる必要はなく、例えば、第1プロセッサ101と第2プロセッサ102とのうち、一方が3つの特権モードを備える構成であっても構わない。5実施の形態1において、復元モジュール341がオペレーティングシステムの外部に設けられている構成の場合を例として説明したが、第2プロセッサ102において待機状態が解除された場合に、復元モジュール341が第2プロセッサ102によって実行されることができれば、必ずしも復元モジュール341は、オペレーティングシステムの外部に設けられている必要はなく、例えば、復元モジュール341が第3OS323の内部に設けられている構成であっても構わない。6実施の形態1において、レジスタ保存領域343がオペレーティングシステムの外部に設けられている構成の場合を例として説明したが、コンテクスト更新モジュール354からアクセスすることができれば、必ずしも、レジスタ保存領域343は、オペレーティングシステムの外部に設けられている必要はなく、例えば、レジスタ保存領域343が第3OS323の内部に設けられている構成であっても構わない。7実施の形態1において、セキュアプログラムは、ROM104に記憶されている暗号キーを用いて行う復号に係る処理を行う機能を有するものである場合を例として説明したが、第3者に対して秘匿すべき処理に係る機能を有するものであれば、必ずしも、ROM104に記憶されている暗号キーを用いて行う復号に係る処理を行う機能に限られる必要はなく、例えば、クレジットカードの暗証番号を管理する処理に係る機能を有するものであっても構わない。8実施の形態1において、仮想計算機システム100がハードディスク装置128を備えている場合の例について説明したが、大容量外部記憶装置を備えていれば、必ずしもハードディスク装置128を備えている必要はなく、例えば、大容量フラッシュメモリを備える構成であっても構わない。9以下、さらに本発明の一実施形態に係る仮想計算機システムの構成及びその変形例と各効果について説明する。a本発明の一実施形態に係る仮想計算機システムは、メモリと当該メモリに接続された第1プロセッサ及び第2プロセッサとを備える仮想計算機システムであって、前記第1プロセッサと前記第2プロセッサとは、それぞれ、下位特権モードと、当該下位特権モードよりも上位の上位特権モードとを備え、前記メモリは、プロセッサの実行状態に関する実行状態情報を保存する実行状態保存領域を有し、前記仮想計算機システムは、プロセッサ上で前記下位特権モードで実行されるオペレーティングシステムと、前記第1プロセッサ上で前記上位特権モードで実行されるハイパバイザであり、前記第1プロセッサに、オペレーティングシステムの切替実行制御処理を、前記実行状態保存領域への実行状態情報の退避及び復元により実行させ、前記実行状態保存領域に退避されている実行状態情報を用いて前記第2プロセッサへ復元通知を行うためのハイパバイザと、前記第2プロセッサ上で前記下位特権モードで実行される復元プログラムであり、前記復元通知を受けた前記第2プロセッサに、前記実行状態保存領域に格納された実行状態情報を前記第2プロセッサの実行状態情報として復元させるための復元プログラムとを備えることを特徴とする。上述の構成を備える本実施形態に係る仮想計算機システムによると、第2プロセッサにおいて、上位特権モードでハイパバイザを実行していなくても、第1プロセッサにおいて切り替え処理対象となっているオペレーティングシステムを、第2プロセッサに移行して実行することができるようになる。これにより、第2プロセッサの上位特権モードがセキュアプログラムを実行するためのセキュアモードとして利用可能となる。従って、仮想計算機を構成する第1プロセッサと第2プロセッサとが特権モードを2つしか備えていなくても、システムの信頼性を確保したオペレーティングシステムの切り替え処理機能と、セキュアプログラムを利用したセキュリティ保護機能とを共存させることができることとなる。図17は、上記変形例における仮想計算機システム1700の概略構成図である。同図に示されるように仮想計算機システム1700は、第1プロセッサ1701と第2プロセッサ1702とメモリ1703とから構成されている。そして、メモリ1703は、実行状態保存領域1711を有し、オペレーティングシステム1712とハイパバイザ1713と復元プログラム1714とがロードされている。第1プロセッサ1701は、メモリ1703に接続され、下位特権モードと、下位特権モードよりも上位の上位特権モードとを備えている。この第1プロセッサ1701は、一例として、実施の形態1における第1プロセッサ101図1参照として実現される。第2プロセッサ1702は、メモリ1703に接続され、下位特権モードと、下位特権モードよりも上位の上位特権モードとを備えている。この第2プロセッサ1702は、一例として、実施の形態1における第2プロセッサ102図1参照として実現される。メモリ1703は、第1プロセッサ1701と第2プロセッサ1702とに接続される。このメモリ1703は、一例として、実施の形態1におけるROM104とRAM105図1参照として実現される。実行状態保存領域1711は、プロセッサの実行状態に関する実行状態情報を保持する領域である。この実行状態保存領域1711は、一例として、実施の形態1におけるレジスタ保存領域343と第1OSコンテクスト記憶領域361と第2OSコンテクスト記憶領域362と第3OSコンテクスト記憶領域363図3参照として実現される。オペレーティングシステム1712は、下位特権モードで実行されるオペレーティングシステムである。このオペレーティングシステム1712は、一例として、実施の形態1における第1OS321、第2OS322、第3OS323図3参照等として実現される。ハイパバイザ1713は、第1プロセッサ1701上で上位特権モードで実行されるハイパバイザであり、第1プロセッサ1701に、オペレーティングシステムの切替実行制御処理を、実行状態保存領域1711への実行状態情報の退避及び復元により実行させ、前記実行状態保存領域1711に退避されている実行状態情報を用いて第2プロセッサ1702へ復元通知を行うためのハイパバイザである。このハイパバイザ1713は、一例として、実施の形態1におけるハイパバイザ351図3参照として実現される。復元プログラム1714は、第2プロセッサ1702上で下位特権モードで実行されるプログラムであり、復元通知を受けた第2プロセッサ1702に、実行状態保存領域1711に格納された実行状態情報を第2プロセッサ1702の実行状態情報として復元させるためのプログラムである。この復元プログラム1714は、一例として、実施の形態1における、復元モジュール341として実現される。bまた、前記実行状態保存領域は、前記第1プロセッサ及び前記第2プロセッサから前記下位特権モードではアクセス不能であり、前記第1プロセッサから前記上位特権モードでアクセス可能である第1実行状態保存領域と、前記第2プロセッサから前記下位特権モードでアクセス可能である第2実行状態保存領域とを有し、前記ハイパバイザは、プロセッサに実行させる前記実行状態情報の退避及び復元に、前記第1実行状態保存領域を用いて実行させ、実行停止中のオペレーティングシステムを前記第2プロセッサで実行させるためのプロセッサ変更条件が成立する場合に、当該実行停止中のオペレーティングシステムに対して前記第1実行状態保存領域に退避されている実行状態情報を前記第2実行状態保存領域に設定し、前記復元プログラムは、前記第2実行状態保存領域に格納された実行状態情報を前記第2のプロセッサの実行状態情報として復元させるとしてもよい。このような構成にすることで、オペレーティングシステムの切替実行処理で利用される実行状態情報を、下位特権モードのプロセッサからアクセス不能とすることができる。cまた、前記ハイパバイザは、前記第1プロセッサの実行対象命令群の中に、前記第2プロセッサの前記上位特権モードで実行される必要のある処理を呼び出す部分が含まれている場合に、前記第1プロセッサで実行中のオペレーティングシステムを停止させる実行停止部を含み、前記プロセッサ変更条件は、前記実行停止部によって、前記第1プロセッサで実行中のオペレーティングシステムが停止させられたことであるとしてもよい。このような構成にすることによって、第1プロセッサの実行対象命令群の中に第2プロセッサの上位特権モードで実行させる必要のある処理が含まれる場合に、その処理を第2プロセッサの実行対象とすることができるようになる。dまた、前記オペレーティングシステムは複数であって、前記複数のオペレーティングシステムのそれぞれは、前記第2プロセッサで実行中の自オペレーティングシステムを停止させるためのOS停止条件が成立する場合に、前記第2プロセッサに、前記第2プロセッサの実行状態情報を前記第2実行状態保存領域に退避させた上で待機状態へ移行させるための待機状態設定部を含むとしてもよい。このような構成にすることによって、第2プロセッサで実行中のオペレーティングシステムを停止させる必要がある場合に、そのオペレーティングシステムを停止させることができるようになる。eまた、前記仮想計算機システムは、さらに、割込みコントローラを備え、前記複数のオペレーティングシステムのそれぞれは、前記OS停止条件が成立する場合において、さらに自オペレーティングシステムを前記第1プロセッサで実行させるためのOS再開条件が成立するときに、前記第2プロセッサに、前記割込みコントローラを介して前記第1プロセッサへ複写通知割込みを通知させるための割込み通知部を含み、前記ハイパバイザは、前記第1プロセッサに前記複写通知割込みが通知された場合に、前記第1プロセッサに、前記第2実行状態保存領域に退避されている実行状態情報を前記第1実行状態保存領域に設定させる設定部を含むとしてもよい。このような構成にすることによって、第2プロセッサで実行中のオペレーティングシステムを第1プロセッサで実行させる必要がある場合に、そのオペレーティングシステムを第1プロセッサで実行させることができるようになる。fまた、前記第2実行状態保存領域は、前記複数のオペレーティングシステムのそれぞれに対応するOS対応実行状態保存領域をそれぞれ含み、前記ハイパバイザは、前記プロセッサ変更条件が成立する場合に行う、前記第2実行状態保存領域への実行状態情報の設定を、設定対象となる実行状態情報に対応するオペレーティングシステムに対応するOS対応実行状態保存領域への設定により行い、前記待機状態設定部は、前記OS停止条件が成立する場合に行う、前記第2実行状態保存領域への実行状態情報の設定を、設定対象となる実行状態情報に対応するオペレーティングシステムに対応するOS対応実行状態保存領域への設定により行い、前記設定部は、前記複写通知割込みが通知された場合に行う、前記第1実行状態保存領域への実行状態情報の設定を、設定対象となる実行状態情報に対応するオペレーティングシステムに対応するOS対応実行状態保存領域に退避されている実行状態情報への設定により行うとしてもよい。このような構成にすることによって、複数のオペレーティングシステムのそれぞれに対応するプロセッサのレジスタ値を、互いに独立に設定することができるようになる。gまた、前記第2プロセッサは、待機状態において前記復元通知割込みが通知されると、待機状態を解除して、前記復元プログラムを実行するとしてもよい。このような構成にすることによって、第2プロセッサに復元通知割込みが通知されれば、例え第2プロセッサが待機状態であっても、第2プロセッサによって復元プログラムが実行されることとなる。hまた、前記メモリは、プロセッサから前記下位特権モードでアクセス可能であるアドレス保存領域を有し、前記ハイパバイザは、前記第1プロセッサに、第1実行状態保存領域に退避されている実行状態情報を前記第2実行状態保存領域に設定させる場合に、前記第1プロセッサに、前記復元プログラムの実行開始アドレスを前記アドレス保存領域に記憶させるためのアドレス設定部を有し、前記第2プロセッサは、前記復元プログラムの実行を、前記アドレス保存領域に設定されているアドレスを参照して行うとしてもよい。このような構成にすることによって、第2プロセッサは、アドレス保存領域に設定されているアドレスを参照して、復元プログラムを実行することができるようになる。iまた、前記復元プログラムは、前記仮想計算機システムによって実行されるオペレーティングシステムの一部として実装され、前記復元プログラム格納領域は、前記オペレーティングシステム格納領域に含まれるとしてもよい。このような構成にすることによって、オペレーティングシステム格納領域の一部の領域に復元プログラム格納領域を設定することができるようになる。jまた、前記実行状態領域に保存する実行状態情報はレジスタ値であるとしてもよい。このような構成にすることによって、実行状態領域に保存する実行状態情報を、レジスタからレジスタ値を読み出すことで生成することができるようになる。"