(57)【要約】【課題】複数のプロセスの連携で実現しているエミュレーションシステムにおいて、コンピュータ内のプロセッサで障害が発生し、プロセスを割り付けるハードウェア資源が不足した場合、他のコンピュータにプロセスを割り付けて、稼動を継続するエミュレーションシステムを提供する。【解決手段】コンピュータ１００のプロセッサ１１０で障害が発生した場合、コンピュータ１００はプロセス管理テーブル５１０とコンピュータ２００のプロセス管理テーブル５２０から利用可能なプロセッサを検索し、コンピュータ２００のプロセッサ２１０にプロセスを割り付けてエミュレーションシステムを再構成する。【選択図】  図１
2011081468.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセスの連携で実現しているエミュレーションシステムにおいて、コンピュータシステム内のプロセッサで障害が発生し、プロセスを割り付けるハードウェア資源が不足した場合、プロセス管理手段により他のコンピュータシステムにプロセスを割り付け、稼動を継続することを特徴とするエミュレーションシステム。
【請求項２】
請求項１において、コンピュータ番号とロケーション情報を含むプロセス管理テーブルを備え、他のコンピュータのプロセスとの通信を管理する手段を備えることで、他のコンピュータシステムにプロセスを割り付け、稼動を継続することを特徴とするエミュレーションシステム。
【請求項３】
請求項1において、プロセスを複数のコンピュータシステムのハードウェア資源に割り付け、システム規模の拡張を行うことを特徴とするエミュレーションシステム。
【請求項４】
請求項１において、専用のスタンバイ機を必要とせず、障害時に他のコンピュータシステムから必要な資源のみを使用することで動作を継続することを特徴とするコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセスが相互に連携して対象ハードウェアの機能を実現するエミュレーション技術に関する。その中でも、異なる複数のコンピュータシステム上にプロセスを割り付けてエミュレーションを行う技術に関する。
【背景技術】
【０００２】
あるハードウェアを模するエミュレーションシステムでは、エミュレーション対象となるハードウェアが持つ機能毎に対応するプロセスを設け、それらのプロセスがあたかも個別のハードウェアとして並行動作し１つのシステムを構築しているかのように、システム全体が複数のプロセスとしてプログラミングされる事が一般的である。例えばプロセスの種類として、命令実行を処理するＩＰ(Instruction Processor)プロセス(以下、ＩＰプロセス)、データの入出力処理を行うＩＯＰ(Input-Output Processor)プロセス(以下、ＩＯＰプロセス),周辺機器の制御を行うＩＯＣ(Input-Output device Control)プロセス(以下、ＩＯＣプロセス)等がある。
【０００３】
同一のコンピュータシステム上でこれら全てのプロセスを実行する事により、一つのコンピュータシステムで一つのエミュレーションシステムを実現する事が出来る。また一方で、これらのプロセスは必ずしも一つのコンピュータシステムにのみ存在する必要はなく、異なる複数のコンピュータシステム上で実現する事も出来る。
【０００４】
異なる複数のコンピュータシステムで実行される二つ以上のプロセス間での連携を効率良く、比較的高速に行う例としては特許文献１があり、それぞれのプロセス間で送受信されるメッセージの経路制御や通信基盤の対するプロトコルの変換を行う機能をもつコアとなるシステムに接続し、このコアとなるシステムを介してプロセス間を連携させる方式（ハブ・アンド・スポーク）が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−６７３５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
同一のコンピュータシステムでＩＰプロセス,ＩＯＰプロセス,ＩＯＣプロセスを処理し、一つのコンピュータシステムで一つのエミュレーションシステムを実現している場合、コンピュータシステム内の物理プロセッサで障害が発生し、プロセス割り付けに必要なハードウェア資源が不足すると、エミュレーションシステムは稼動を続けることが不可能となる問題がある。
【課題を解決するための手段】
【０００７】
本発明のエミュレーションシステムでは、エミュレーションを行う各プロセス間の通信を処理する部分に、他コンピュータの資源割り付けを可能とするプロセス管理手段を備える。
【発明の効果】
【０００８】
本発明では、プロセス管理手段によってエミュレーションシステムに必要なプロセスを同一コンピュータまたは、他のコンピュータシステムに動的に割り付けることを可能にする。これによりコンピュータシステム内でプロセッサ障害が発生し、エミュレーションに必要なプロセスを実行するハードウェア資源が不足しても、他のコンピュータのプロセッサにプロセスを割り付けることで継続稼動が可能となる。
また本発明では他のコンピュータシステムからは一部の資源しか使用しないので、障害時用のスタンバイ機として別にシステム一式を準備しておく必要が無く、通常は全く別のシステムとして使用する事も出来る。
【図面の簡単な説明】
【０００９】
【図１】本発明によるエミュレーションシステムにおける一つの実施の形態に係わるもので、そのシステムの主要構成を示すブロック構成図である。
【図２】エミュレーションシステムのプロセス管理テーブルのデータ内容を示す内容説明図である。
【図３】本発明によるエミュレーションシステムにおける、障害発生時の回復処理動作の経緯の一例を示す動作説明図である。
【図４】本発明によるエミュレーションシステムにおける、プロセス間の通信処理動作のフローを示す動作説明図である。
【発明を実施するための形態】
【００１０】
本発明の実施形態について図面を用いて説明する。図1は本発明の実施の形態を表すエミュレーションシステムの説明図であり、通常はコンピュータ１００だけでエミュレーションシステムを実現している。本例ではプロセッサ１１０にＩＰプロセス，プロセッサ１２０にＩＯＰプロセス，プロセッサ１３０にＩＯＣプロセスを割り付けて、プロセス管理手段３１０を介して、各プロセス間の通信を行っている。なおプロセッサへの割り付け条件はあくまで一例であり、例えばシステムにプロセッサ１１０と１２０のみ存在するような場合、ＩＰプロセスのみプロセッサ１１０に割り付け、その他のプロセスは残りのプロセッサ１２０でマルチタスク処理しても良い。
【００１１】
プロセッサ１３０のＩＯＣプロセスはＩ／Ｏ制御部１５０を介して、Ｉ／Ｏ装置１６０とのデータの入出力制御を行う。
プロセッサ１４０はプロセス管等のシステム全体の処理を行う。
プロセス管理手段３１０は、プロセス間通信処理４１０，プロセス管理テーブル５１０，コンピュータ間通信処理６１０から構成される。図２はプロセス管理テーブル５１０の内容を示したもので、コンピュータ番号，プロセッサ番号，コンピュータシステムでの物理的なロケーション情報（例えばＩＰアドレス），割付られたプロセスの名称が記録される。
【００１２】
コンピュータ２００もコンピュータ１００と同様の構成で、プロセッサ２１０，プロセッサ２２０とプロセス管理手段３２０を備える。プロセス管理手段３２０はプロセス間通信処理４２０，プロセス管理テーブル５２０，コンピュータ間通信処理６２０から構成される。プロセス管理テーブル５２０の内容はプロセス管理テーブル５１０と同じ内容が記録される。
【００１３】
コンピュータ１００とコンピュータ２００は通信ネットワーク（例えばＬＡＮ（Ｌｏｃａｌ Ａｒｅａ Ｎｅｔｗｏｒｋ）７００に接続され、コンピュータ間通信処理６１０および６２０で通信が可能となっている。
【００１４】
ＩＰプロセスを処理しているプロセッサ１１０で障害が発生し、コンピュータ１００に他に割り付け可能な予備のプロセッサがない場合、コンピュータ１００単独ではエミュレーションシステムとして動作を継続することができない。そこでコンピュータ２００のプロセッサ２１０にＩＰプロセスを割り付けてエミュレーションシステムを再構成する。
【００１５】
以下、エミュレーションシステムの再構成の手順を図３の動作説明図を用いて説明する。
【００１６】
コンピュータ１００は、プロセス管理テーブル５１０の情報のプロセス名称を「ＩＰ」から「ＮＧ」に更新する(Ｓ１００)。本実施例では、プロセッサの障害によりプロセスが割付られない状態となった場合であり、プロセス名称に「ＮＧ」を登録する(Ｔ３１)。プロセス管理テーブル５１０は図２(ｂ)の状態となる。コンピュータ２００を立上げ、プロセス管理テーブル５２０を生成する(Ｓ２００)。プロセス管理テーブル５２０は図２(ｃ)の状態となる。本実施例では、プロセッサにプロセスが割り付けられていない状態を示す場合、プロセス名称に「ＡＣＴ」を登録する(Ｔ３１)。通信ネットワーク７００に接続されているコンピュータのプロセス管理テーブルを読込み情報の更新を行う(Ｓ１０１)(Ｓ２０１)。コンピュータ１００はプロセス管理テーブル５１０からプロセスが割付られていないプロセッサを検索する。
【００１７】
本実施例では、プロセス管理テーブル５１０の情報からプロセス名称が「ＡＣＴ」となっているプロセッサを検索する(Ｓ１０２)。プロセッサ２２０にＩＰプロセスを割り付けるため、プロセス管理テーブル５１０のプロセッサ２２０のプロセス名称を「ＡＣＴ」から「ＩＰ」に変更する(Ｔ４５)と共にコンピュータ２００にプロセス管理テーブルの更新を通知する(Ｓ１０３)。コンピュータ２００はプロセス管理テーブル５２０を更新する(Ｓ２０２)。プロセス管理テーブル５１０，５２０は図２(ｄ)の状態となる。
プロセス管理テーブルの更新が完了したら、コンピュータ１００，２００を再起動しエミュレーションシステムの稼動を再開する(Ｓ１０４)。なお、プロセッサの割り付け処理が動的に行えるコンピュータシステムにおいては、再起動は必要ない。
【００１８】
次に、再構成後のエミュレーションシステムの動作について、図４のフローチャートを用いて説明する。
動作の例として、ＩＯＰプロセスからＩＰプロセスにプロセス間通信が発生した場合を説明する。
【００１９】
ＩＯＰプロセスからＩＰプロセスの通信データがプロセス管理手段３１０に渡される(Ｓ１１０)。プロセス管理手段３１０はプロセス管理テーブル５１０からＩＰプロセスのコンピュータ番号の情報を検索する(Ｓ１１１)。検索したコンピュータ番号「２００」と自コンピュータの番号「１００」を比較する(Ｓ１１２)。コンピュータ番号が異なる場合、プロセス管理テーブル５１０のロケーション情報を用いてコンピュータ間通信処理６１０を介してコンピュータ２００に通信データを伝送する。コンピュータ２００はでコンピュータ間通信処理６２０を介して受領した通信データをプロセス管理手段３２０に取り込む(Ｓ２１０)。
プロセス管理手段３２０はプロセス管理テーブル５２０からＩＰプロセスのコンピュータ番号の情報を検索する(Ｓ２１１)。検索したコンピュータ番号「２００」と自コンピュータの番号「２００」を比較する(Ｓ２１２)。コンピュータ番号が同一なる場合、プロセス間通信処理４２０を介してＩＰプロセスに通信データを伝送する（Ｓ２１３）。
【００２０】
以上のように、コンピュータ２００のプロセッサ２１０にＩＰプロセスを割り付けてエミュレーションシステムを再構成し、動作させることが可能となる。
上述の実施例では、コンピュータ１００のプロセッサ１１０に障害が発生し、コンピュータ２００のプロセッサ２１０にプロセスを割り付ける実施形態を示したが、コンピュータ１００のプロセッサ１１０とコンピュータ２００のプロセッサ２１０を共にエミュレーションシステムのハードウェア資源として利用する実施形態もとれることも容易に考えられる。
【符号の説明】
【００２１】
１００，２００  コンピュータ
１１０，１２０，１３０，１４０，２１０，２２０  プロセッサ
１５０  Ｉ／Ｏ制御部
１６０  Ｉ／Ｏ装置
３１０，３２０  プロセス管理手段
４１０，４２０  プロセス間通信処理
５１０，５２０  プロセス管理テーブル
６１０，６２０  コンピュータ間通信処理
７００  通信ネットワーク
【図１】
2011081468.tif 000003
【図２】
2011081468.tif 000004
【図３】
2011081468.tif 000005
【図４】
2011081468.tif 000006