(57)【特許請求の範囲】
【請求項１】
アプリケーションプログラムを特定の種類の仮想的な電子計算機として実行する仮想計算機を有する、複数の電子計算機がネットワークを介して接続された電子計算機システムであって、
前記複数の電子計算機は、第１種の電子計算機と、第２種の電子計算機との２種類の電子計算機とを含み、
前記第１種の電子計算機は、
第１の指示と第２の指示とを受け付ける受け付け手段と、
前記受け付け手段が前記第１の指示を受け付けた場合に、自電子計算機がネットワークを介して接続している第２種の電子計算機に対して第３の指示を発行し、当該第３の指示に対する応答として、第２種の電子計算機から送られた接続仮想計算機状態情報と、現時点における自電子計算機の仮想計算機の前記アプリケーションプログラムの実行状態を特定する情報である仮想計算機状態情報と、自電子計算機がネットワークを介して接続している第２種の電子計算機を特定する情報である接続状態情報とを、記憶媒体に保存する作業状態保存手段と、
前記受け付け手段が第２の指示を受け付けた場合に、仮想計算機状態情報が保存された記憶媒体から保存されている仮想計算機状態情報と接続仮想計算機状態情報と接続状態情報とを読み出し、接続状態情報が特定する第２種の電子計算機に自電子計算機が接続可能な場合には接続状態情報が特定する第２種の電子計算機に、接続状態情報が特定する第２種の電子計算機に自電子計算機が接続可能でない場合には自電子計算機が接続可能な第２種の電子計算機に、読み出した接続仮想計算機状態情報と共に、自電子計算機が接続可能な第２種の電子計算機の第４の指示を発行し、読み出した仮想計算機状態情報が特定する状態を、現時点における自電子計算機の仮想計算機の前記アプリケーションプログラムの実行状態として設定し、仮想計算機に、前記アプリケーションプログラムを実行させる作業状態回復手段とを有し、
前記第２種の電子計算機は、
前記第１種の電子計算機が発行した第３の指示と第４の指示を受信する受信手段と、
前記受信手段が前記第３の指示を受け付けた場合に、現時点における自電子計算機の仮想計算機の前記アプリケーションプログラムの実行状態を特定する情報である接続仮想計算機状態情報を、受信した第３の指示に対する応答として、第１種の電子計算機に送る作業状態転送手段と、
前記受信手段が第４の指示を受信した場合に、第４の指示と共に発行された接続先仮想計算機状態情報が特定する状態を、現時点における自電子計算機の仮想計算機の前記アプリケーションプログラムの実行状態として設定し、仮想計算機に、前記アプリケーションプログラムを実行させる作業状態復元手段とを有することを特徴とする電子計算機システム。
【請求項２】
アプリケーションプログラムを特定の種類の仮想的な電子計算機として実行する仮想計算機を有する、複数の電子計算機がネットワークを介して接続された電子計算機システムであって、
前記複数の電子計算機は、第１種の電子計算機と、第２種の電子計算機との２種類の電子計算機とを含み、
前記第１種の電子計算機は、
第１の指示と第２の指示とを受け付ける受け付け手段と、
前記受け付け手段が前記第１の指示を受け付けた場合に、自電子計算機がネットワークを介して接続している第２種の電子計算機に対して第３の指示を発行し、当該第３の指示に対する応答として、第２種の電子計算機から送られた接続仮想計算機状態情報と、現時点における自電子計算機の仮想計算機の前記アプリケーションプログラムの実行状態を特定する情報である仮想計算機状態情報とを、記憶媒体に保存する作業状態保存手段と、
前記受け付け手段が第２の指示を受け付けた場合に、仮想計算機状態情報が保存された記憶媒体から保存されている仮想計算機状態情報と接続仮想計算機状態情報とを読み出し、読み出した接続仮想計算機状態情報が複数ある場合には、接続仮想計算機状態情報のそれぞれに対応する第４の指示を、対応する接続仮想計算機状態情報と共に発行し、自電子計算機が接続可能な第２種の電子計算機の数が、読み出した接続仮想計算機状態情報の数より少ないときには、自電子計算機が接続可能な第２種の電子計算機に複数の第４の指示を発行し、読み出した仮想計算機状態情報が特定する状態を、現時点における自電子計算機の仮想計算機の前記アプリケーションプログラムの実行状態として設定し、仮想計算機に、前記アプリケーションプログラムを実行させる作業状態回復手段とを有し、
前記第２種の電子計算機は、少なくとも受信した第４の指示のそれぞれに対応する仮想計算機と作業状態復元手段と、
前記第１種の電子計算機が発行した第３の指示と第４の指示を受信する受信手段と、
前記受信手段が前記第３の指示を受け付けた場合に、現時点における自電子計算機の仮想計算機の前記アプリケーションプログラムの実行状態を特定する情報である接続仮想計算機状態情報を、受信した第３の指示に対する応答として、第１種の電子計算機に送る作業状態転送手段と、
前記受信手段が第４の指示を受信した場合に、第４の指示と共に発行された接続先仮想計算機状態情報が特定する状態を、現時点における自電子計算機の前記第４の指示に対応する仮想計算機の前記アプリケーションプログラムの実行状態として設定し、仮想計算機に、前記アプリケーションプログラムを実行させる作業状態復元手段とを有する、
ことを特徴とする電子計算機システム。
【請求項３】
請求項１または２記載の電子計算機システムであって、
前記仮想計算機は、アプリケーションプログラムの実行中の命令をカウントするプログラムカウンタと、アプリケーションプログラムの実行に際してデータの一時格納に用いるスタックと、アプリケーションプログラムの実行に用いる情報を格納するオブジェクト領域とを備え、前記仮想計算機の前記アプリケーションプログラムの実行状態を特定する情報とは、プログラムカウンタとスタックとオブジェクト領域の内容であることを特徴とする電子計算機システム。
【請求項４】
請求項１、２または３記載の電子計算機システムであって、
前記第１種の電子計算機の前記作業状態保存手段と作業状態回復手段は、第１種の電子計算機の仮想計算機内に設けられており、前記第２種の電子計算機の前記作業状態転送手段と作業状態復元手段は、第２種の電子計算機の仮想計算機内に設けられていることを特徴とする電子計算機システム。
【請求項５】
アプリケーションプログラムを特定の種類の仮想的な電子計算機として実行する仮想計算機を有する電子計算機であって、
第１の指示と第２の指示とを受け付ける受け付け手段と、
前記受け付け手段が前記第１の指示を受け付けた場合に、
現時点における前記仮想計算機の前記アプリケーションプログラムの実行状態を特定する情報である仮想計算機状態情報と、
前記電子計算機がネットワークを介して接続している他の電子計算機を特定する情報である接続状態情報と、
前記ネットワークを介して接続している他の電子計算機の仮想計算機の前記アプリケーションプログラムの実行状態を特定する情報である接続仮  前記作業状態保存手段は、前記記憶媒体に保存する情報を暗号化する手段を有し、
前記作業状態回復手段は、前記記憶媒体から読み出した情報を復号する手段を有する想計算機状態情報と、
を記憶媒体に保存する作業状態保存手段と、
前記受け付け手段が第２の指示を受け付けた場合に、前記記憶媒体から、前記仮想計算機状態情報と、前記接続状態情報と、前記接続仮想計算機状態情報と、を読み出し、読み出した前記仮想計算機状態情報が特定する状態を、現時点における前記仮想計算機の前記アプリケーションプログラムの実行状態として設定し、前記仮想計算機に、前記アプリケーションプログラムを実行させ、前記接続状態情報が示す他の電子計算機に、自電子計算機を接続して、前記接続仮想計算機状態情報を送信する作業状態回復手段と、を有し、
前記作業状態保存手段は、前記記憶媒体に保存する情報を暗号化する手段を有し、
前記作業状態回復手段は、前記記憶媒体から読み出した情報を復号する手段を有する、
ことを特徴とする電子計算機。
【請求項６】
請求項１、２、３または４記載の電子計算機システムであって、
前記第１種の電子計算機の前記作業状態保存手段は、前記記憶媒体に保存する情報を暗号化する手段を有し、
前記第１種の電子計算機の前記作業状態回復手段は、前記記憶媒体から読み出した情報を復号する手段を有することを特徴とする電子計算機システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子計算機の処理の中断／再開の技術に関するものであり、特に、電子計算機のアーキテクチャの如何を問わず、ある電子計算機上で中断した処理を、異なる電子計算機上で再開する技術に関するものである。
【０００２】
【従来の技術】
パーソナルコンピュータやワークステーションなどの電子計算機において、電源がＯＦＦされた時に実行中のプログラムの実行を中断し、処理の実行の再開に必要な全ての情報を主記憶から二次記憶に記録し、再度、電源がＯＮされた時に、前回中断した際に二次記憶に記憶しておいた情報を主記憶に読み込み、実行を中断していた処理の実行を再開する技術が知られている。
【０００３】
また、このような中断／再開を異なる電子計算機間で実現する、すなわち、中断と再開を異なる電子計算機上で行うことを可能とする技術として、特開平６−２２２８５４号公報記載の技術が知られている。
【０００４】
この技術では、中断を行う電子計算機において中断時に、処理の実行の再開に必要な全ての情報を主記憶から可搬型の記憶装置に記憶し、この記憶装置を再開を行う電子計算機に装着し、再開を行う電子計算機において、可搬型の記憶装置から情報を主記憶に読み込み、実行を中断していた処理の実行を再開する技術が知られている。
【０００５】
ところで、異なるアーキテクチャのオペレーティングシステムが稼働する電子計算機上で、同じアプリケーションプログラムを同じような実行結果が得られるように実行可能とする技術として、仮想計算機の技術が知られている。
【０００６】
この技術によれば、実計算機上で稼働させる仮想計算機においてオペレーティングシステムのアーキテクチャの違いを吸収し、アプリケーションプログラムに対しては共通化した同じインタフェースを提供することにより、仮想計算機用のアプリケーションプログラムを、異なるアーキテクチャのオペレーティングシステムが稼働する電子計算機上で同様に実行することができる。
【０００７】
【発明が解決しようとする課題】
前記各中断／再開の技術によれば、中断／再開を行う電子計算機が、同じ電子計算機、もしくは、同じアーキテクチャのオペレーティングシステムが稼働する異なる電子計算機である必要があり、中断を行った電子計算機と異なるアーキテクチャのオペレーティングシステムが稼働する電子計算機上で、再開を行うことができない。
【０００８】
また、ネットワークに接続された複数の電子計算機が協調して処理を行う分散処理環境上で行われている処理については、中断／再開を行うことができない。
【０００９】
そこで、本発明は、処理の実行の中断を行った電子計算機と異なるアーキテクチャのオペレーティングシステムが稼働する電子計算機上で、処理の実行の再開を行うことを可能とすることを課題とする。
【００１０】
また、本発明は、分散処理環境上で行われている処理についても、処理の実行の中断と再開を可能とすることを課題とする。
【００１１】
【課題を解決するための手段】
前記課題達成のために、本発明は、たとえば、アプリケーションプログラムを特定の種類の仮想的な電子計算機として実行する仮想計算機を有する電子計算機であって、
第１の指示と第２の指示とを受け付ける受け付け手段と、
前記受け付け手段が前記第１の指示を受け付けた場合に、現時点における前記仮想計算機の前記アプリケーションプログラムの実行状態を特定する情報である仮想計算機状態情報を、記憶媒体に保存する作業状態保存手段と、
前記受け付け手段が第２の指示を受け付けた場合に、仮想計算機状態情報が保存された記憶媒体から保存されている仮想計算機状態情報を読み出し、読み出した仮想計算機状態情報が特定する状態を、現時点における前記仮想計算機の前記アプリケーションプログラムの実行状態として設定し、仮想計算機に、前記アプリケーションプログラムを実行させる作業状態回復手段とを有することを特徴とする電子計算機を提供する。
【００１２】
このような電子計算機によれば、第１の電子計算機上の仮想計算機のアプリケーションプログラムの実行を中断し、実行を中断した仮想計算機と同種の仮想計算機が稼働できる第２の電子計算機に、記憶媒体を介して仮想計算機状態情報を与えることにより、第２の電子計算機に中断したアプリケーションプログラムの実行を、その実行が中断された位置から再開させることができる。また、この際に、第１と第２の電子計算機は、同種の仮想計算機が稼働するものであれば、同じ電子計算機であっても、同じアーキテクチャの異なる電子計算機であっても、異なるアーキテクチャの異なる電子計算機であってもよい。したがって、このような電子計算機によれば、処理の実行の中断を行った電子計算機と異なるアーキテクチャのオペレーティングシステムが稼働する電子計算機上で、処理の実行の再開を行うことが可能となる。
【００１３】
また、本発明は、前記課題達成のために、上記のような電子計算機において、前記作業状態保存手段は、前記受け付け手段が前記第１の指示を受け付けた場合に、電子計算機がネットワークを介して接続している他の電子計算機を特定する情報である接続状態情報を、前記仮想計算機状態情報と共に、前記記憶媒体に保存し、
前記作業状態回復手段は、前記受け付け手段が第２の指示を受け付けた場合に、仮想計算機状態情報と接続情報とが保存された記憶媒体から保存されている接続状態情報を読み出し、接続状態情報が示す他の電子計算機に、自電子計算機を接続するようにした。
【００１４】
このようにすることにより、中断時に第１の計算機が接続していた第３の電子計算機に、再開時に第２の電子計算機が自動的に再接続し、その接続状態を回復することができるので、分散処理環境上で行われている処理についても、処理の実行の中断と再開を可能とすることができるようになる。
【００１５】
また、本発明は、前記課題達成のために、アプリケーションプログラムを特定の種類の仮想的な電子計算機として実行する仮想計算機を有する、複数の電子計算機がネットワークを介して接続された電子計算機システムであって、
前記複数の電子計算機は、第１種の電子計算機と、第２種の電子計算機との２種類の電子計算機とを含み、
前記第１種の電子計算機は、
第１の指示と第２の指示とを受け付ける受け付け手段と、
前記受け付け手段が前記第１の指示を受け付けた場合に、自電子計算機がネットワークを介して接続している第２種の電子計算機に対して第３の指示を発行し、当該第３の指示に対する応答として、第２種の電子計算機から送られた接続仮想計算機状態情報と、現時点における自電子計算機の仮想計算機の前記アプリケーションプログラムの実行状態を特定する情報である仮想計算機状態情報とを、記憶媒体に保存する作業状態保存手段と、
前記受け付け手段が第２の指示を受け付けた場合に、仮想計算機状態情報が保存された記憶媒体から保存されている仮想計算機状態情報と接続仮想計算機状態情報とを読み出し、読み出した接続仮想計算機状態情報と共に、自電子計算機が接続可能な第２種の電子計算機の第４の指示を発行し、読み出した仮想計算機状態情報が特定する状態を、現時点における自電子計算機の仮想計算機の前記アプリケーションプログラムの実行状態として設定し、仮想計算機に、前記アプリケーションプログラムを実行させる作業状態回復手段とを有し、
前記第２種の電子計算機は、
前記第１種の電子計算機が発行した第３の指示と第４の指示を受信する受信手段と、
前記受信手段が前記第３の指示を受け付けた場合に、現時点における自電子計算機の仮想計算機の前記アプリケーションプログラムの実行状態を特定する情報である接続仮想計算機状態情報を、受信した第３の指示に対する応答として、第１種の電子計算機に送る作業状態転送手段と、
前記受信手段が第４の指示を受信した場合に、第４の指示と共に発行された接続先仮想計算機状態情報が特定する状態を、現時点における自電子計算機の仮想計算機の前記アプリケーションプログラムの実行状態として設定し、仮想計算機に、前記アプリケーションプログラムを実行させる作業状態復元手段とを有することを特徴とする電子計算機システムを提供する。
【００１６】
このような電子計算機システムによれば、第１の電子計算機上の仮想計算機のアプリケーションプログラムの実行を中断し、実行を中断した仮想計算機と同種の仮想計算機が稼働できる第２の電子計算機に、記憶媒体を介して仮想計算機状態情報を与えることにより、第２の電子計算機に中断したアプリケーションプログラムの実行を、その実行が中断された位置から再開させることができる。また、この際に、中断時に第１の計算機の仮想計算機に接続し関連したアプリケーションプログラムの実行を行っていた第３の電子計算機上の仮想計算機の処理を、再開時に第２の電子計算機が接続可能な第４の電子計算機上の仮想計算機に中断時に実行していた位置から再開させ、第４の電子計算機上の仮想計算機が第２の電子計算機の仮想計算機に接続し関連した処理を行うようにさせることができる。したがって、分散処理環境下における異なる電子計算機の組み合わせによる処理の実行の中断と再開が可能となる。また、第３と第４の電子計算機も、同種の仮想計算機が稼働するものであれば、同じ電子計算機であっても、同じアーキテクチャの異なる電子計算機であっても、異なるアーキテクチャの異なる電子計算機であってもよい。
【００１７】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
【００１８】
まず、第１の実施形態について説明する。
【００１９】
図１は、本実施形態に係る中断／再開の処理の流れの概要を示したものである。
【００２０】
図中、計算機１０１は処理を中断する実計算機、計算機１０６は処理を再開する計算機１０１とは別の実計算機であり、両計算機は、ハードウエア、オペレーティングシステムのアーキテクチャが異なっていても良い。
【００２１】
ここで、図２に、計算機１０１、１０６のソフトウエア構成を示す。
【００２２】
図中、仮想計算機１７０１は、実計算機のオペレーティングシステム１９０２上で稼働し、アプリケーションプログラム１９０１を実行する。仮想計算機１７０１は、記憶媒体１９０３やその他の実計算機の資源または実計算機が接続したネットワーク１９０４上の資源をオペレーティングシステム１９０２を介して利用する。
【００２３】
仮想計算機１７０１は、処理実行部１７１０、保存処理部１７０５、再開処理部１７０６、暗号化処理部１９０５、復号処理部１９０６を備えている。処理実行部１７１０は、アプリケーションプログラム１９０１を実行する。保存処理部１７０５は、処理実行部１７１０のアプリケーション１９０１の実行に関する状態を作業状態情報として取得し、暗号化処理部１９０５で暗号化して記憶媒体１９０３に書き込む。再開処理部１７０６は、記憶媒体１９０３から作業状態情報を復号処理部１９０６で復号して読み出し、処理実行部１７１０に、アプリケーションプログラム１９０１の実行に関する状態として設定する。
【００２４】
なお、作業状態情報は暗号化せずに記憶媒体１９０３に記憶しても良く、この場合には暗号化処理部１９０５、復号処理部１９０６は省略して良い。
【００２５】
さて、計算機１０１と計算機１０６は、このようなソフトウエア構成を備えているが、計算機１０１と計算機１０６とでは、オペレーティングシステム１９０２のアーキテクチャは異なっていてもよい。また、計算機１０１の仮想計算機１７０１と、計算機１０６の仮想計算機１７０１は、同じインタフェースをアプリケーションプログラム１９０１に提供するものではあるが、仮想計算機１７０１が、その上で稼働するオペレーティングシステム１９０２のアーキテクチャに依存した仮想計算機プログラムによって実現される。従って、計算機１０１と計算機１０６のオペレーティングシステム１９０２のアーキテクチャが異なる場合には、計算機１０１と計算機１０６の仮想計算機１７０１は異なる仮想計算機プログラムによって実現される。
【００２６】
図１に戻り、本実施形態に係る中断／再開の処理の流れの概要について説明する。
【００２７】
まず、計算機１０１上で処理の中断がたとえばユーザから指示されると、計算機１０１上で作業状態保存処理１０２が行われ、アプリケーションプログラム１９０１実行中の計算機１０１上の処理実行部１７１０の作業状態情報が作業状態ファイル１０３として、記憶媒体１９３に保存される。
【００２８】
次に、計算機１０６が、処理の再開が作業状態ファイル１０３の指定と共に、たとえばユーザから指示されると、計算機１０６上で作業状態回復処理１０４が行われ、記憶媒体１９３の作業状態ファイル１０３から作業状態情報が読み出され、計算機１０６上の処理実行部１７１０に設定され、計算機１０６上の処理実行部１７１０は設定された作業状態情報に従ってアプリケーションプログラム１９０１の実行を再開する。
【００２９】
なお、記憶媒体１９３は、中断時には計算機１０１から再開時には計算機１０６からアクセス可能である必要がある。そこで、記憶媒体１９３は、可搬型の記憶媒体として、中断時には計算機１０１に装着し、再開時には計算機１０６に装着することにより、、中断時には計算機１０１から再開時には計算機１０６からアクセス可能とする。または、計算機１０１と計算機１０６双方からアクセス可能なネットワーク上の記憶媒体としてもよい。
【００３０】
以下、作業状態保存処理１０２と、作業状態回復処理１０４の詳細について説明する。
【００３１】
まず、これら処理で取り扱う作業状態情報について説明する。
【００３２】
一般的に、仮想計算機は、様々なアーキテクチャの計算機上に同じ種類の仮想計算機が実現できるよう、スタックマシンとして構成される。なお、同じ種類の仮想計算機とは、アプリケーションプログラムに対して同じインタフェースを提供する仮想計算機をいうものとする。
【００３３】
ここで、代表的なスタックマシン型の仮想計算機の種類としては、ＪＡＶＡ ＶＭ（商標）として知られているものがある。
【００３４】
この種類の仮想計算機１７０１は、図３に示すように、スタック１７０２、プログラムカウンタ１７０３、オブジェクト領域１７０４の３つの記憶領域を用いて、アプリケーションプログラムを実行する。
【００３５】
スタック１７０２は、演算の途中データを一時的に記憶しておいたり、メソッドの呼び出し関係を保存しておくために使用する領域である。プログラムカウンタ１７０３は、アプリケーションプログラムの現在実行中の命令を指し示すものである。オブジェクト領域１７０４は、オブジェクトインスタンスとクラス定義情報をオブジェクトとして格納しておく領域であり、クラス定義情報には、アプリケーションプログラムのコード（アプリケーションプログラム自体）も含まれる。
【００３６】
そして、このスタック１７０２、プログラムカウンタ１７０３、オブジェクト領域１７０４の３つの要素の値によって、仮想計算機２０４のアプリケーションプログラムの実行に関する状態が一意に特定される。
【００３７】
ただし、これは仮想計算機の一例であり、アプリケーションプログラムの実行に関する状態を特定するために必要となる情報は、仮想計算機の種類毎に異なる場合がある。例えば呼び出しフレームへのポインタ等の情報を保存しなくてはならない場合もある。
【００３８】
以下では、アプリケーションプログラムの実行に関する状態が、スタック１７０２、プログラムカウンタ１７０３、オブジェクト領域１７０４の３つの要素の値によって、仮想計算機２０４の一意に特定される場合を例にとり、本実施形態を説明する。
【００３９】
なお、図３では、スタック１７０２には、底から数値１００、８、２が格納されている。プログラムカウンタ１７０３はアドレス２５６を指している。この例では、オブジェクト領域１７０４には、整数オブジェクト２００１と文字列オブジェクト２００２が格納されている。オブジェクトは、オブジェクト識別子とオブジェクトフィールドからなる。整数オブジェクト２００１のオブジェクト識別子２００３は「ｉｎｔ」であり、オブジェクトフィールド２００４には整数値「１６」が格納されている。文字列オブジェクト２００２のオブジェクト識別子２００５は「ｓｔｒｉｎｇ」であり、オブジェクトフィールド２００６には文字列「ＡＢＣ」が格納されている。
【００４０】
次に、作業状態保存処理１０２について説明する。
【００４１】
この処理では、保存処理部２０６は、処理実行部１７１０の処理を中断させ、処理実行部１７１０から作業状態情報を抽出し作業情報ファイル１０３として保存する。
【００４２】
また、作業状態情報は、作業情報ファイル１０３へ、実計算機に依存しないバイト列形式に変換して保存する。
【００４３】
図４は、作業状態情報をバイト列形式に変換した例を示したものである。なお、図は、スペースの制約でバイト列を分割して示したものであり、これらは実際は一続きのバイト列である。
【００４４】
さて、このバイト列は、先頭は目印となる開始コードとする。そして、次にプログラムカウンタの値を格納する。プログラムカウンタのサイズが１バイトを超える場合は、処理実行部１７１０の内部表現と同じ形式で値を格納するようにしてもよい。そして、プログラムカウンタの値の次に区切りコードを挿入する。区切りコードは文字通りデータの区切りを分かりやすくするためのものである。そして、続いてスタックの値を格納する。スタックの値は、スタックの底にあるデータから順に格納する。図３の例の場合は、１００、８、２の順に格納することになる。なお、スタックのデータサイズが１バイトを超える場合は、処理実行部１７１０の内部表現と同じ形式で格納するようにしてもよい。そして、スタックの値の次に区切りコードを挿入し、その後にオブジェクト領域の内容を格納する。
【００４５】
オブジェクト領域に記憶されるオブジェクトはオブジェクト識別子とオブジェクトフィールドから構成されている。バイト列には、各オブジェクトについて、まずオブジェクト識別子を格納し、続けてオブジェクトフィールドを格納する。図３の例の場合は、最初のオブジェクトは整数型のオブジェクトであり、オブジェクト識別子は「ｉｎｔ」でありオブジェクトフィールドの値は「１６」であるので、まず、これらをこの順に格納する。次の２番目のオブジェクトは文字列オブジェクトであり、オブジェクト識別子は「ｓｔｒｉｎｇ」であり、オブジェクトフィールドは文字列「ＡＢＣ」なので、オブジェクト識別子「ｓｔｒｉｎｇ」の後に、文字列を先頭の文字から順に、「Ａ」「Ｂ」「Ｃ」の順序で格納する。３番目以降のオブジェクトについても同様に格納する。
【００４６】
そして、オブジェクト領域の内容の後に、終了コードを設ける。
【００４７】
以下、このような作業状態ファイル１０３を保存する作業状態保存処理１０２の処理手順を図５に示す。
【００４８】
図示するように、この処理では、処理実行部１７１０の処理の実行を停止させた後、まず、ステップ３０１で処理実行部１７１０のプログラムカウンタ１７０３の値を保存し、ステップ３０２で処理実行部１７１０のスタック１７０２の内容を取得する。そしてステップの３０４で、処理実行部１７１０のオブジェクト領域１７０４を取得する。なお、標準クラスライブラリに含まれるクラスのクラス定義情報は再開処理を行う計算機上にも存在するため取得しないようにしてもよい。そして、最後にステップ３０５で、ステップ３０１、３０２、３０４で取得した各情報に、開始コード、区切りコード、終了コードを付加して、図４に示したバイト列形式の作業状態情報を作成し、暗号化を行う場合にはこれを暗号化処理部１９０５で暗号化し、オペレーティングシステム１９０２を介して作業状態ファイル１０３に書き込む。そして、仮想計算機１７０１のプロセスを終了する。
【００４９】
図６に、ステップ３０２のスタック１７０２の内容を取得する処理の詳細な手順を示す。
【００５０】
図示するように、この処理では、まず、ステップ２２０１でポインタをスタックの底に設定する。そして、ステップ２２０２ではポインタがスタックのトップを過ぎたかどうか判定し、トップを過ぎていたら処理を終了する。トップを過ぎていなければ、ステップ２２０３で、ポインタが指している項目を読み取り、ステップ２２０４でバイト列として保存する。そして、ステップ２２０５でポインタを一つスタック上部側に移し、ステップ２２０２の処理に戻る。
【００５１】
次に、図７に、ステップ２０３のオブジェクト領域の内容を保存する処理の詳細の手順を示す。
【００５２】
図示するように、この処理では、まず、ステップ２３０１ですべてのオブジェクトに対して処理が終わったかどうか判定し、終わっていれば処理を終了し、終わっていなければ、ステップ２３０２でオブジェクト識別子を読み取る。そして、ステップ２３０３でオブジェクト識別子をバイト列に書き出す。次に、ステップ２３０４ですべてのオブジェクトフィールドについて処理が終わったかどうか判定し、終わっていなければ、終わるまで、ステップ２３０５でオブジェクトフィールドの値を読み取り２３０６で読み取った値をバイト列に書き出す処理を繰り返す。そして、すべてのオブジェクトフィールドについて処理が終わったならば、ステップ２３０１の処理に戻る。
【００５３】
以上、作業状態保存処理１０２について説明した。なお、ステップ３０５に代えて、ステップ３０１、３０２、３０３において、直接、各情報を、暗号化を行う場合にはこれを暗号化処理部１９０５で暗号化し、オペレーティングシステム１９０２を介して作業状態ファイル１０３に書き込むようにしてもよい。
【００５４】
次に、作業状態回復処理１０４の詳細について説明する。
【００５５】
この処理では、再開処理部２０７が、作業状態ファイル１０３から作業状態情報を読み取り、処理実行部１７１０内に設定する。
【００５６】
図８に、作業状態回復処理１０４の手順を示す。
【００５７】
図示するように、この処理では、仮想計算機１７０１のプロセスが起動された後に、ユーザより再開の指示が成されると、再開処理部２０７は、まず、ステップ５０２で、ユーザより再開の指示と共に指定された作業状態ファイル１０３から作業状態情報を読み出し、作業状態情報が、暗号化されている場合には、復号処理部１９０６で復号し、ステップ５０３で、作業状態情報中のプログラムカウンタの値を処理実行部１７１０のプログラムカウンタ１７０３に設定する。次にステップ５０４で、作業状態情報中のスタックの値を処理実行部１７１０のスタック２０１に書き込む。そして、ステップ５０５で、作業状態情報中のオブジェクト領域の内容を処理実行部１７１０のオブジェクト領域２０３に書き込む。最後に、ステップ５０６で、表示画面を中断時と同様に再現するための再描画処理を行い、処理実行部１７１０の実行を再開させる。実行を再開した処理実行部１７１０は、プログラムカウンタ１７０３の値の命令の次の命令からアプリケーションプログラム１９０１の実行を再開する。
【００５８】
以上、本発明の第１実施形態について説明した。
【００５９】
本第１実施形態によれば、実計算機のアーキテクチャによらず、ある実計算機上で処理を中断し、他の実計算機上で中断した処理を再開することができるという効果を達成することができる。
【００６０】
以下、本発明の第２実施形態について説明する。
【００６１】
図９は、本実施形態に係る中断／再開の処理の流れの概要を示したものである。
【００６２】
図中、計算機６０３は処理を中断する実計算機、計算機６０５は処理を再開する計算機６０３とは別の実計算機であり、両計算機は、ハードウエア、オペレーティングシステムのアーキテクチャが異なっていても良い。ここで、計算機６０３が実行を中断する処理は、ネットワーク６０２を介して一台以上のサーバ計算機６０１と接続し、サーバ計算機６０１のサービスを受けている。計算機６０３、計算機６０５のソフトウエア構成は、図２に示したものと同様である。
【００６３】
このような場合、計算機６０３で処理を中断する際には、サーバ計算機６０１との接続を切断すると共に、計算機６０５で処理を再開する際には、再開に先立ちサーバ計算機６０１と再接続する必要がある。
【００６４】
本実施形態では、このような再開時のサーバ計算機６０１との再接続を可能とするために、サーバ計算機６０１との再接続に必要なアドレス等の情報を取得し、これも作業状態ファイル６０４に保存するようにする。
【００６５】
すなわち、本第２実施形態では、図１０に示すように、作業状態ファイル６０４に、第１実施形態で示した情報をマシン内部状態情報として、サーバのネットワークアドレスをネットワーク状態情報として含めた作業状態情報を作業状態ファイル６０４に保存する。
【００６６】
以下、中断、再開時の動作の詳細について説明する。
【００６７】
本第２実施形態では、計算機６０３上で処理の中断がたとえばユーザから指示されると、計算機６０３上で作業状態保存処理１０２が行われ、作業状態情報が作業状態ファイル６０４として、記憶媒体１９３に保存される。次に、計算機６０５が、処理の再開が作業状態ファイル６０４の指定と共に、たとえばユーザから指示されると、計算機１０６上で作業状態回復処理１０４が行われ、記憶媒体１９３の作業状態ファイル６０４から作業状態情報が読み出され、処理が再開される。
【００６８】
以下、本第２実施形態に係る作業状態保存処理１０２と作業状態回復処理１０４の詳細について説明する。
【００６９】
まず、作業状態保存処理１０２について説明する。
【００７０】
図１１に、この作業状態保存処理１０２の手順を示す。
【００７１】
図示するように、この処理では、保存処理部２０６は、ステップ３０２から３０４で前記第１実施形態と同様に仮想計算機２０４のプログラムカウンタ、スタックの値、オブジェクト領域の内容を取得する。そして、ステップ８０１で、計算機６０３が接続しているサーバ計算機を検索する。図９の場合は、ネットワーク６０２を介して、サーバ計算機６０１が検索される。そして、接続しているサーバが見つかったら、ステップ８０２に移り、検索したサーバ計算機のネットワークアドレスを取得する。接続しているすべてのサーバに対してステップ８０２の処理を行い、最後に、ステップ３０５で、取得した各情報を作業状態情報として作業状態ファイル６０４に書き込む。そして、仮想計算機１７０１のプロセスを終了する。
【００７２】
次に、作業状態回復処理１０４について説明する。
【００７３】
図１２に、作業状態回復処理１０４の手順を示す。
【００７４】
図示するように、仮想計算機１７０１のプロセスが起動された後に、再開が指示されると、再開処理部２０７は、まず、ステップ５０２から５０５において前記第１実施形態と同様に、指定された作業状態ファイル６０４から作業状態情報を取得し、処理実行部１７０１のプログラムカウンタ、スタック、オブジェクト領域を作業状態情報に従って設定する。そして、ステップ９０１で、計算機６０５が接続しているネットワーク６０２にアクセスし、作業状態情報に含まれるサーバ計算機のネットワークアドレスのサーバ計算機を探す。図９の場合は、サーバ計算機６０１が見つかるはずである。サーバが見つかったら。ステップ９０２で、そのサーバ計算機に再接続を行う。作業状態情報に含まれるサーバ計算機のネットワークアドレスの全てについてステップ９０２を行ったなら、最後に、ステップ５０６で、表示画面を中断時と同様に再現するための再描画処理を行い、処理実行部１７１０の実行を再開させる。実行を再開した処理実行部１７１０は、プログラムカウンタ１７０３の値の命令の次の命令からアプリケーションプログラム１９０１の実行を再開する。
【００７５】
以上、本発明の第２の実施形態について説明した。
【００７６】
本第２実施形態によれば、前記第１実施形態の効果に加え、サーバ計算機からサービスの提供を受けながら行われている処理についても、実計算機のアーキテクチャによらず、ある実計算機上で中断し、他の実計算機上で再開することができるという効果を達成することができる。
【００７７】
以下、本発明の第３の実施形態について説明する。
【００７８】
図１３は、本実施形態に係る中断／再開の処理の流れの概要を示したものである。
【００７９】
図中、計算機１００３は処理を中断する実計算機、計算機１００７は処理を再開する計算機１００３とは別の実計算機であり、両計算機は、ハードウエア、オペレーティングシステムのアーキテクチャが異なっていても良い。ここで、計算機１００３が実行を中断する処理は、ネットワーク１００２を介して一台以上のサーバ計算機１００１と接続し、サーバ計算機１００１上の仮想計算機のサービスを受けている。ここで前記第２実施形態と異なり、本実施形態では、処理を再開する計算機１００３は、処理を中断する計算機１００３が接続していたサーバ計算機１００１と異なるサーバ計算機１００５にネットワーク１００６を介して接続し、処理を再開し、サーバ計算機１００５上の仮想計算機からサーバ計算機１００１上の仮想計算機と同じサービスを受けながら処理を実行する。ただし、ここでは、サーバ計算機上の仮想計算機は、その仮想計算機がサービスを提供する、計算機上の仮想計算機毎に起動され稼働するものとする。
【００８０】
計算機１００３、１００５、サーバ計算機１００１、１００５のソフトウエア構成は、図２に示したものと同様である。
【００８１】
このような場合、前記第２実施形態のように処理を再開する際にサーバ計算機と再接続するだけでは足りず、中断時にサーバ計算機１００１上の仮想計算機の処理も中断させ、再開時に、この処理をサーバ計算機１００５の仮想計算機に再開させる必要がある。
【００８２】
本実施形態では、このような再開時のサーバ計算機１００５の処理の再開を可能とするために、サーバ計算機２００２上の仮想計算機のアプリケーションプログラムの実行に関する状態も、作業状態情報として作業状態ファイル１００４に保存するようにする。
【００８３】
すなわち、本第３実施形態では、図１４に示すように、第２実施形態で示した情報に加え、サーバ計算機２００２上の仮想計算機のアプリケーションプログラムの実行に関する状態を示すプログラムカウンタ、スタック、オブジェクト領域の内容をサーバマシン状態情報として作業状態情報に含め、作業状態ファイル１００４に保存する。
【００８４】
本第３実施形態では、計算機１００３上で処理の中断がたとえばユーザから指示されると、計算機１００３とサーバ計算機１００１上で作業状態保存処理１０２が行われ、計算機１００３上の作業状態保存処理１０２によって作業状態情報が作業状態ファイル１００４として、記憶媒体１９３に保存される。次に、計算機１００７が、処理の再開が作業状態ファイル１００４の指定と共に、たとえばユーザから指示されると、計算機１００７とサーバ計算機１００５上で作業状態回復処理１０４が行わ記憶媒体１９３の作業状態ファイル１００４から作業状態情報が読み出され、処理が再開される。ここで、サーバ計算機１００１上の作業状態保存処理１０２は、計算機１００３上の作業状態保存処理１０２から起動され、サーバ計算機１００５上の作業状態回復処理１０４は、計算機１００７上の作業状態回復処理１０４から起動される。
【００８５】
以下、本第３実施形態に係る作業状態保存処理１０２と作業状態回復処理１０４の詳細について説明する。
【００８６】
まず、作業状態保存処理１０２について説明する。
【００８７】
図１５に、この作業状態保存処理１０２の手順を示す。
【００８８】
まず、計算機１００３上の作業状態保存処理１０２の動作について説明する。
【００８９】
図示するように、この処理では、ユーザから処理の中断を指示された仮想計算機１７０１の保存処理部２０６は、ステップ３０２から３０４で前記第１実施形態と同様に仮想計算機１７０１のプログラムカウンタ、スタックの値、オブジェクト領域の内容を取得する。ステップ８０１で、計算機１００３が接続しているサーバ計算機を検索する。図１３の場合は、サーバ計算機１００１が検索される。次にステップ１２０２で、検索されたサーバ計算機の、計算機１００３上の仮想計算機にサービスを提供している仮想計算機に対して処理の中断を要求する。そして、ステップ１２０３で、処理の中断を指示したサーバ計算機から送り返されてきたサーバ状態情報を取得する。そして、最後にステップ１２０４で、自分が最初に処理の中断を指示された計算機（つまり計算機１００３）であるかどうか調べ、この場合はそうであるので、ステップ１２０６で、取得した各情報を作業状態情報として作業状態ファイル１００４に書き込み、自仮想計算機１７０１のプロセスを終了する。
【００９０】
次に、サーバ計算機１００１上の作業状態保存処理１０２の動作について説明する。
【００９１】
計算機１００３の作業状態保存処理１０２から処理の中断を要求されたサーバ計算機１００１上の仮想計算機１７０１の保存処理部２０６は、計算機１００３の作業状態保存処理１０２と同様に各情報を取得する。ただし、計算機１００３の作業状態保存処理１０２と異なり、ステップ１２０４で、自分が最初に処理の中断を指示された計算機（つまり計算機１００３）であるかどうか調べた結果が、そうではないと判定されるので、ステップ１２０５で取得した各情報を、処理の中断の要求元の計算機１００３に取得した情報をサーバ状態情報として送り、自仮想計算機１７０１のプロセスを終了する。
【００９２】
次に、作業状態回復処理１０４について説明する。
【００９３】
図１６に、この作業状態回復処理１０４の手順を示す。
【００９４】
まず、計算機１００７上の作業状態回復処理１０４の動作について説明する。
【００９５】
図示するように、計算機１００７上で仮想計算機１７０１のプロセスが起動された後に、ユーザから処理の再開を指示された仮想計算機１７０１の再開処理部２０７は、ステップ１３０２で、自分が最初に再開を指示された計算機（つまり計算機１００７であるかどうか）判断する。この場合は、そうであるので、ステップ１３０４で、作業状態ファイル１００４から作業状態情報を読み取り、ステップ５０３から５０５で、作業状態情報に含まれるマシン内部状態情報に従い、自仮想計算機１７０１のプログラムカウンタ、スタック、オブジェクト領域を設定する。そして、作業状態情報中のサーバ状態情報のそれぞれについて（ステップ１３０５）、ステップ１３０６で、ネットワーク状態情報が示すサーバ計算機と同一のサーバ計算機に接続できるかどうか調べる。そして、接続できたら、ステップ１３０７でそのサーバ計算機を選択し、接続できない場合には、ステップ１３０７で接続できる他のサーバ計算機を選択する。そして、ステップ１３０８で、選択したサーバ計算機上に仮想計算機のプロセスを起動し、その仮想計算機１７０１に作業状態情報中のサーバ状態情報と共に、処理の再開を要求する。
【００９６】
そして、全てのサーバ状態情報について以上の処理を終了したならば、ステップ５０６で、表示画面を中断時と同様に再現するための再描画処理を行い、処理実行部１７１０の実行を再開させる。実行を再開した処理実行部１７１０は、プログラムカウンタ１７０３の値の命令の次の命令からアプリケーションプログラム１９０１の実行を再開する。
【００９７】
次に、サーバ計算機１００５上の作業状態回復処理１０４の動作について説明する。
【００９８】
計算機１００７上の作業状態回復処理１０４によって起動され、処理の再開を要求されたサーバ計算機１００５上の仮想計算機１７０１の再開処理部２０７は、ステップ１３０２で自分が最初に再開を指示された計算機でないと判断し、ステップ１３０３で要求と共に送られたサーバ状態情報を取得し、取得したサーバ状態情報を作業状態情報と見なして、以降のステップ５０３からの処理を、計算機１００７上の作業状態回復処理１０４と同様に行う。
【００９９】
ところで、以上の第３実施形態において、中断時に処理を中断させたサーバ計算機より少ない台数のサーバ計算機にしか、処理を再開する計算機が接続できない場合がある。このような場合には、図１７に示すように、一つのサーバ計算機上に、複数の仮想計算機を起動し、起動した各仮想計算機に、異なるサーバ計算機上の仮想計算機が中断した複数の処理のそれぞれを再開させることになる。
【０１００】
しかし、このとき、各サーバ計算機の負荷が均等になるように、各サーバ計算機に再開する処理を割り当てることが好ましい。
【０１０１】
このような割当は、たとえば、図１８に示す処理手順によって実現することができる。
【０１０２】
すなわち、ステップ１６０１で、ネットワーク１４０９にアクセスし、接続可能なサーバ計算機を検索する。この検索をネットワーク上でブロードキャストを行い、応答したサーバを記録する方法が一般的である。次に検索したサーバ計算機をリストにし、ステップ１６０２で、リストの先頭にポインタを移す。次にステップ１６０３で、作業状態情報中のマシン状態情報を調べ、すべてのマシン状態情報が情報割り付け終わっていたら処理を終了する。
【０１０３】
割り付けられていないマシン状態情報があれば、ステップ１６０４で、ポインタの示しているサーバ計算機にマシン状態情報を割り付ける。そしてステップ１６０５で、ポインタがリストの最後に達しているかどうか調べる。もしポインタがリストの最後に達していたら、ステップ１６０６に進み、ポインタをリストの先頭に戻す。ポインタがリストの最後に達していない場合には、ステップ１６０７で、リストのポインタを進め、ステップ１６０３からの処理に戻る。
【０１０４】
さて、このような割り付けを行った後、各マシン状態情報について、そのマシン状態情報を割り付けたサーバ計算機に、割り付けたマシン状態情報数分の仮想計算機を起動し、各仮想計算機のそれぞれ、その仮想計算機が稼働しているサーバ計算機に割り付けたマシン状態情報の一つの共に処理の再開を要求する。これにより、少なくとも処理の数に関して、各サーバ計算機の負荷が均等になるように、各サーバ計算機に再開する処理を割り当てたことになる。
【０１０５】
なお、以上の手順は、ラウンドロビン方式の簡易な手順であるが、この他にサーバ計算機の能力等の情報が利用できる場合は、その情報を反映して適正な負荷分散を図るように割り付けるようにしてもよい。
【０１０６】
以上、第３実施形態について説明した。
【０１０７】
本第３実施形態によれば、上記第１、第２実施形態の効果に加え、サーバ計算機からサービスの提供を受けながら行われている処理についても、実計算機のアーキテクチャによらず、ある実計算機上で中断し、処理を再開させる他の実計算機が利用できる任意のサーバ計算機から、中断時に中断した処理が受けていたものと同様のサービスを受けて実行できるように、他の実計算機上で処理を再開することができる。また、別の観点から述べれば、あるサーバ計算機の処理と計算機の処理との組み合わせにより行われている作業を中断し、任意のサーバ計算機上の処理と計算機上の処理の組み合わせにより中断した作業が行われるように、各処理を再開できる。
【０１０８】
また、本第３実施形態によれば、さらに、所定台数のサーバ計算機からサービスの提供を受けながら行われている処理についても、実計算機のアーキテクチャによらず、ある実計算機上で中断し、処理を再開させる他の実計算機が利用できる前記所定台数より少ない台数の任意のサーバ計算機から、中断時に中断した処理が受けていたものと同様のサービスを受けて実行できるように、他の実計算機上で処理を再開することができる。また、別の観点から述べれば、所定台数のサーバ計算機の処理と計算機処理の組み合わせにより行われていた作業を中断し、任意の所定台数以下のサーバ計算機上の処理と任意の計算機上の処理の組み合わせにより中断した作業が行われるように、各処理を再開できる。
【０１０９】
ところで、以上の各実施形態における計算機、サーバ計算機のハードウエア構成は、たとえば、ＣＰＵや、主記憶、ハードディスク装置である外部記憶装置、他の外部記憶装置、通信制御装置、キーボードやポインティングデバイスなどの入力装置、表示装置などの出力装置などを備えた、一般的な電子計算機のハードウエア構成を有する。
【０１１０】
この場合、仮想計算機の各部は、ＣＰＵが主記憶にロードされたプログラムを実行することにより電子計算機上に具現化されるプロセスとして実現される。
【０１１１】
また、この主記憶にロードされＣＰＵ３０１によって実行されることにより、電子計算機上に仮想計算機の各部を構成するためのプログラムは、予め、外部記憶装置に記憶され、必要に応じて主記憶にロードされ、ＣＰＵによって実行される。または、可搬型の記憶媒体、たとえば、ＣＤ-ＲＯＭを扱う外部記憶装置を介して、直接、必要に応じて、可搬型の記憶媒体から主記憶にロードされ、ＣＰＵによって実行される。もしくは、一旦、可搬型の記憶媒体を扱う外部記憶装置を介して、可搬型の記憶媒体から、オペレーティングシステムの管理下となるように、ハードディスク装置などの外部記憶装置にインストールされた後、必要に応じて主記憶にロードされ、ＣＰＵによって実行される。
【０１１２】
たとえば、図１９に示すように、記憶媒体１８０１は、保存処理部１７０５および再開処理部１７０６を含む仮想計算機１７０１を実現するプログラムを格納している記憶媒体から、インストールするようにしてもよい。また、この記憶媒体には前記プログラムを処理データと共に外部記憶装置に書き込み、実行可能とするインストーラを含めるようにしてもよい。なお、記憶媒体として、ＦＤ、ＭＯ、ＣＤ-ＲＯＭ、ＤＶＤ、フラッシュメモリカード、リムーバブルハードディスクなどの各種可搬な記憶媒体を用いることができる。
【０１１３】
また、記憶媒体からではなく、ネットワークを介して計算機、サーバ計算機に転送してインストールするようにしてもよい。
【０１１４】
以上、本発明の実施形態について説明した。
【０１１５】
なお、以上の実施形態では、計算機またはサーバ計算機の仮想計算機に処理を中断させた後に、その仮想計算機のプロセスを終了させるようにしたが、これは仮想計算機のプロセスを終了させずに、その仮想計算機に中断させた処理を継続して実行するように修正してもよい。
【０１１６】
また、以上の実施形態では、計算機またはサーバ計算機上に仮想計算機を起動し、起動した仮想計算機に処理を再開させたが、これは、計算機またはサーバ計算機上の既存の仮想計算機に処理を再開させるように修正してもよい。
【０１１７】
【発明の効果】
以上のように本発明によれば、処理の実行の中断を行った電子計算機と異なるアーキテクチャのオペレーティングシステムが稼働する電子計算機上で、処理の実行の再開を行うことを可能とすることができる。
【０１１８】
また、本発明は、分散処理環境上で行われている処理についても、処理の実行の中断と再開を可能とすることができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係る処理の中断／再開の処理の流れの概要を示した図である。
【図２】本発明の第１実施形態に係る計算機のソフトウエア構成を示した図である。
【図３】本発明の第１実施形態に係る仮想計算機の処理実行部が保持するプログラムの実行に関する状態情報を示した図である。
【図４】本発明の第１実施形態に係る作業状態情報の作業状態フィルへの記憶形式を示した図である。
【図５】本発明の第１実施形態に係る作業状態保存処理の手順を示したフローチャートである。
【図６】本発明の第１実施形態に係るスタックの値の取得手順を示したフローチャートである。
【図７】本発明の第１実施形態に係るオブジェクト領域の内容の取得手順を示したフローチャートである。
【図８】本発明の第１実施形態に係る作業状態回復処理の手順を示したフローチャートである。
【図９】本発明の第２実施形態に係る処理の中断／再開の処理の流れの概要を示した図である。
【図１０】本発明の第２実施形態に係る作業状態情報を示した図である。
【図１１】本発明の第２実施形態に係る作業状態保存処理の手順を示したフローチャートである。
【図１２】本発明の第２実施形態に係る作業状態回復処理の手順を示したフローチャートである。
【図１３】本発明の第３実施形態に係る処理の中断／再開の処理の流れの概要を示した図である。
【図１４】本発明の第３実施形態に係る作業状態情報を示した図である。
【図１５】本発明の第３実施形態に係る作業状態保存処理の手順を示したフローチャートである。
【図１６】本発明の第３実施形態に係る作業状態回復処理の手順を示したフローチャートである。
【図１７】本発明の第３実施形態に係る処理の中断／再開の処理の流れの概要を示した図である。
【図１８】本発明の第３実施形態に係るサーバ計算機への処理の割当手順を示したフローチャートである。
【図１９】本発明の第３実施形態に係る仮想計算機を実現するプログラムのインストール手法の一例を示した図である。
【符号の説明】
１０１、６０３、１００３  処理を中断する計算機
１０６、６０５、１００７  処理を再開する計算機
６０１  サーバ計算機
１００１、１４０１処理を中断するサーバ計算機
１００５  処理を再開するサーバ計算機
１７０１  仮想計算機
１７１０  処理実行部
１７０５  保存処理部
１７０６  再開処理部
１７０２  スタック
１７０３  プログラムカウンタ
１７０４  オブジェクト領域
１９０１  アプリケーションプログラム
１９０２  オペレーティングシステム
１９０３  記憶媒体
１９０４  ネットワーク
【図１】
0003993342.tif 000002
【図２】
0003993342.tif 000003
【図３】
0003993342.tif 000004
【図４】
0003993342.tif 000005
【図５】
0003993342.tif 000006
【図６】
0003993342.tif 000007
【図７】
0003993342.tif 000008
【図８】
0003993342.tif 000009
【図９】
0003993342.tif 000010
【図１０】
0003993342.tif 000011
【図１１】
0003993342.tif 000012
【図１２】
0003993342.tif 000013
【図１３】
0003993342.tif 000014
【図１４】
0003993342.tif 000015
【図１５】
0003993342.tif 000016
【図１６】
0003993342.tif 000017
【図１７】
0003993342.tif 000018
【図１８】
0003993342.tif 000019
【図１９】
0003993342.tif 000020