(57)【特許請求の範囲】
【請求項１】
複数のプロセッサモジュールが共用メモリ上のデータをアクセスして処理を行うデータ更新システムにおいて、
上記データ更新システムは、複数のプロセッサモジュールと、該複数のプロセッサモジュールが使用するデータを格納する共用メモリで構成され、
上記各プロセッサモジュールは、
データを格納する主記憶と、
上記主記憶のデータの更新を促す更新通知を受信して、上記共用メモリを参照してデータを主記憶に格納すると共に他のプロセッサモジュールに主記憶のデータの更新の指示を通知する主記憶管理手段を有する
ことを特徴とするデータ更新システム。
【請求項２】
上記プロセッサモジュールは、さらに、更新された定義情報に基づいて共用メモリを更新し、上記主記憶管理手段に対して上記更新通知を行う共用メモリ管理手段を有し、
上記主記憶管理手段は、上記共用メモリ管理手段または他のプロセッサモジュールの主記憶管理手段から、上記更新通知を受信する
ことを特徴とする請求項１記載のデータ更新システム。
【請求項３】
上記プロセッサモジュールは、さらに、
上記共用メモリに障害発生したプロセッサモジュールのＩＤを待機として登録すると共に、共用メモリの内容を主記憶にコピーした上で、障害発生したプロセッサモジュールが現用か待機かを判別し、現用と判別した場合は他のプロセッサモジュールに上記更新通知を行い、障害発生したプロセッサモジュールの業務を引き継ぎ、待機と判別した場合は更新通知を行わず該業務の引き継ぎのみ行う待機処理手段
を有することを特徴とする請求項１あるいは請求項２に記載のデータ更新システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプロセッサモジュールが共用メモリ上のデータをアクセスして処理を行うデータ更新システムに関するものである。
【０００２】
近年、複数のプロセッサモジュール（ＰＭ）を結合して共用メモリをアクセスして分散処理することが行われている。この際、業務（例えば多数の従業員のスケジュール管理業務）によっては、各ＰＭにおいて高速にデータを更新する必要がある。
【０００３】
【従来の技術】
従来、複数のＰＭから構成されるシステムにおいて、データの同一性を保証するために共用メモリを設け、各ＰＭはこの共用メモリをアクセスしてデータを更新して業務処理を行うようにしていた。
【０００４】
【発明が解決しようとする課題】
上述したように複数のＰＭが業務処理を行う場合に、各ＰＭ間でデータの同一性を保証するために共用メモリにデータを格納したり、共用メモリのデータを参照したりして業務処理を行っていた。このため、共用メモリのアクセス速度が一般に遅いことと、複数のＰＭが同時に共用メモリをアクセスするといずれか一方が待機させられてしまい、高速にデータの同一性を保証した上でアクセスして処理を実行できないという問題があった。
【０００５】
本発明では、この問題を解決するため、複数のＰＭが処理を行うシステムにおいて、共用メモリのデータを各ＰＭの主記憶にコピーを持ち、複数のＰＭのうちの１つが共用メモリの更新中にそのＰＭがダウンした場合でも各ＰＭに大きな負荷を与えずに対処する必要がある。
【０００６】
【課題を解決するための手段】
図１を参照して課題を解決するための手段を説明する。
図１において、ＰＭ１は、プロセッサモジュールであって、記憶媒体からプログラムを読み出して主記憶２上にローディングして起動し各種業務処理を行うものであり、ここでは、主記憶２およびＣＰＵ３などから構成されるものである。
【０００７】
主記憶２は、データおよびプログラムを格納するものである。
ＣＰＵ３は、プログラムに従い各種業務処理を行うものであって、ここでは、現用のＰＭ１では共用メモリ管理プロセス４および主記憶管理プロセス５から構成され、待機のＰＭ１では待機プロセス３１、共用メモリ管理プロセス４および主記憶管理プロセス５から構成されるものである。
【０００８】
待機プロセス３１は、待機のＰＭ１が持つプロセスであって、待機に必要な各種処理を行うものである。
共用メモリ管理プロセス４は、共用メモリ６の更新などするものである。
【０００９】
主記憶管理プロセス５は、共用メモリを参照して主記憶２を更新などするものである。
共用メモリ６は、複数のＰＭ１間でデータの同一性を保証するためのメモリである。
【００１０】
次に、動作を説明する。
ＰＭ１が共用メモリ６の内容を更新および主記憶２にコピーした後、他のＰＭ１に共用メモリ６の更新通知を行い、更新通知を受けた他のＰＭ１の主記憶管理プロセス５が共用メモリ６を参照してデータを主記憶３にコピーしてデータの同一性を保証するようにしている。
【００１１】
この際、現用のＰＭ１が共用メモリ６内のデータを更新および主記憶３にコピーした後、他の全ての現用および待機のＰＭ１に更新通知を行うようにしている。
【００１２】
また、待機のＰＭが現用のＰＭ１のいずれかの障害発生を定期的に監視し、障害発生時には共用メモリ６の内容を主記憶２にコピーして当該ＩＤに基づき現用業務を引き継ぐようにし、他のＰＭに各主記憶の書き換えの指示を通知する。
【００１３】
【発明の実施の形態】
次に、図１から図３を用いて本発明の実施の形態および動作を順次詳細に説明する。
【００１４】
図１は、本発明のシステム構成図を示す。
図１において、ＰＭ１は、バス７に接続されたプロセッサモジュールであって、ここでは、主記憶２およびＣＰＵ３から構成されるものである。
【００１５】
主記憶２は、データおよびプログラムを格納したり、読み出したりするメモリであって、ここでは、共用メモリ６内のデータと同一データを格納して高速に参照して業務処理を迅速に行うなどためのものである。
【００１６】
ＣＰＵ３は、記憶媒体からローディングした主記憶２上のプログラムに従い各種業務処理を行うものであって、ここでは、現用のＰＭ１では共用メモリ管理プロセス４および主記憶管理プロセス５から構成され、待機のＰＭ１は待機プロセス３１、共用メモリ管理プロセス４および主記憶管理プロセス５から構成されるものである。
【００１７】
待機プロセス３１は、待機のＰＭ１が待機に必要な各種処理を行うものである。
共用メモリ管理プロセス４は、端末８などからのデータの更新依頼に対応して、共用メモリ６内のデータを更新したり、共用メモリ６内のデータを更新したときに主記憶管理プロセス５に共用メモリ６内のデータを更新した旨を通知したりなどするものである。
【００１８】
主記憶管理プロセス５は、共用メモリ管理プロセス４あるいは他の主記憶管理プロセス５から共用メモリ６が更新された旨の通知を受けたときに、共用メモリ６を参照して読み出したデータを主記憶２に格納し、共用メモリ６内のデータと主記憶２内のデータとの同一性を確保するものである。また、主記憶管理プロセス５は、共用メモリ６を参照して読み出したデータを主記憶２に格納した後、他のＰＭ１の主記憶管理プロセス５に共用メモリ６内のデータが更新された旨を通知する。
【００１９】
共用メモリ６は、複数のＰＭ１が共用するメモリであって、当該複数のＰＭ１間でデータの同一性を保証するためのものである。
バス７は、複数のＰＭ１が相互に共用メモリ６をアクセスするためのバスである。
【００２０】
端末８は、現用のＰＭ１に共用メモリ６内のデータの更新依頼するものである。
次に、図２を用いて図１の構成の動作を詳細に説明する。
【００２１】
図２は、本発明の動作説明図を示す。ここで、ＰＭ（＃１）とＰＭ（＃２）は現用であり、ＰＭ（＃３）は待機である。
図２において、Ｓ１は、現用のＰＭ１の共用メモリ管理プロセス４が定義情報の更新を受信する。これは、図１の端末８から共用メモリ６中の定義情報の更新を受信する。
【００２２】
Ｓ２は、共用メモリを更新情報に基づいて更新する。これは、Ｓ１で受信した更新情報（定義情報）をもとに共用メモリ管理プロセス４が共用メモリ６を更新する（例えばスケジュールを更新する）。
【００２３】
Ｓ３は、共用メモリの更新通知する。これは、Ｓ２で共用メモリ６を更新した共用メモリ管理プロセス５が主記憶管理プロセス５に共用メモリ６の更新を行い、データの同一性を保証するために主記憶２のデータの更新を促す更新通知を行う。
【００２４】
Ｓ１１は、Ｓ３の更新通知に対応して、主記憶管理プロセス５がこの更新通知を受信する。
Ｓ１２は、主記憶管理プロセス５が共用メモリ６の内容に基づいて主記憶２を更新する。これにより、主記憶２内のデータが共用メモリ６内のデータと同一となりデータの同一性が保証されることとなる。
【００２５】
Ｓ１３は、共用メモリの更新通知を全ての他の現用および待機のＰＭ１に通知する。そして、現用のＰＭ（＃２）１でＳ２１ないしＳ２２、待機のＰＭ（＃３）１でＳ３１ないし３２で上述したＳ１１ないしＳ１２と同様に共用メモリ６の内容に基づいて主記憶２を更新し、データの同一性を保証する。
【００２６】
以上によって、端末８から共用メモリ６内のデータの更新要求があったときに、現用のＰＭ１の共用メモリ管理プロセス４が共用メモリ６の内容を更新した後、更新した旨を主記憶管理プロセス５に通知し、主記憶管理プロセス５が共用メモリ６を参照して主記憶２を更新した後、他の現用のＰＭ１および待機のＰＭ１の主記憶管理プロセス４に更新通知を行い、同様にそのＰＭ１の主記憶管理プロセス４が共用メモリ６を参照して主記憶２を更新し、複数のＰＭ１の主記憶２内のデータが共用メモリ６内のデータとの同一性が保証され、各ＰＭ１は主記憶２内のデータをそれぞれ参照して高速に業務処理を実行することが可能となる。
【００２７】
図３は、本発明の障害発生時のフローチャートを示す。これは、図１の複数の現用あるいは待機のＰＭ１のうちのいずれかのＰＭ１に障害が発生したときの動作を示す。ここで、待機ＰＭ１は定期的に現用ＰＭ１に障害が発生していないかをチェックする処理手段を有している。
【００２８】
図３において、Ｓ４１は、障害発生ＰＭのＩＤを取得する。これは、図１の現用あるいは待機の複数のＰＭ１のうちのいずれかのＰＭ１に障害が発生したので、障害発生のＰＭ１が使用しているＩＤを取得する。
【００２９】
Ｓ４２は、共用メモリ６に障害ＰＭを待機として登録する。これは、Ｓ４１で取得したＩＤをもとに、最先の待機のＰＭ１が共用メモリ６に障害の発生したＰＭを待機のＰＭ（現用のＰＭあるいは待機のＰＭを待機のＰＭ）として登録する。
【００３０】
Ｓ４３は、共用メモリの内容を主記憶にコピーする。これは、最先の待機のＰＭ１が共用メモリ６の内容を自己の主記憶２にコピーする。
Ｓ４４は、障害の発生したＰＭが現用か判別する。ＹＥＳの場合には、障害の発生したＰＭ１が現用と判明したので、Ｓ４５で他ＰＭ（他の現用と待機のＰＭ）の全てに共用メモリ６の更新通知を行い、Ｓ４６に進む。一方、Ｓ４４のＮＯの場合には、障害の発生したＰＭ１が待機のＰＭ１と判明したので、Ｓ４６に進む。
【００３１】
Ｓ４６は、ＩＤに基づき業務を引き継ぐ。これは、障害の発生したＰＭ１のＩＤをもとに、現用の業務あるいは待機の業務を引き継ぐ。
Ｓ４７は、運用を再開する。
【００３２】
以上によって、現用あるいは待機のＰＭ１に障害発生時に、即時に待機のＰＭ１が障害発生したＰＭ１のＩＤを取得し、障害発生のＰＭ１を待機のＰＭ１に登録した後、共用メモリ６の内容を主記憶２にコピーし、障害発生したＰＭ１が現用のＰＭ１であった場合には他の全てのＰＭ１に共用メモリ６の更新通知を行って業務を再開し、一方、障害発生したＰＭ１が待機のＰＭ１のときはそのまま業務再開する。これらにより、いずれのＰＭ１に障害が発生しても、複数のＰＭ１がアクセスする共用メモリ６の内容と、各ＰＭ１内の主記憶２の内容との同一性を保証した上で、主記憶２を参照して高速に業務処理を実行することが可能となる。
【００３３】
図３において、Ｓ５１は、障害発生ＰＭを再起動する。これは、図示外のＯＳ（オペレーティングシステム）が障害発生したＰＭを再起動する。
Ｓ５２は、共用メモリの情報をもとに待機と認識する。これは、既述したＳ４２で引き継いだ待機のＰＭ１が共用メモリ６に障害ＰＭ１のＩＤを待機と登録したので、この情報をもとにＯＳが障害発生ＰＭ１を待機と認識する。
【００３４】
Ｓ５３は、待機プロセスを起動する。これは、図１の待機のＰＭ（＃３）１内の待機プロセス３１を起動する。
Ｓ５４は、共用メモリの内容を主記憶にコピーする。これにより、共用メモリ６の内容と、障害発生ＰＭ１の主記憶２の内容との同一性が保証されたこととなる。
【００３５】
Ｓ５５は、現用か判別する。ここでは、ＮＯとなり、待機であるので、Ｓ５７で待機として待つ。
以上によって、障害発生したＰＭ１は待機のＰＭ１として共用メモリ６に既述したＳ４２で登録され、Ｓ５１ないしＳ５７によって、ＯＳがこの登録された障害発生の待機のＰＭ１を見つけて再起動し、再起動された待機のＰＭ１が共用メモリ６の内容を主記憶２にコピーして同一性を保証した上で待機のＰＭ１として業務を再開する（通常は現用のＰＭ１の障害発生を待つ）ことが可能となる。
【００３６】
【発明の効果】
以上説明したように、本発明によれば、複数のプロセッサモジュール（ＰＭ）が処理を行うシステムにおいて、共用メモリ６のデータを各プロセッサモジュールの主記憶にコピーを持つ構成を採用し、定期的に各プロセッサモジュールが共用メモリに変化があったかをチェックすることがないため、各プロセッサモジュールの負荷を軽減することができる。
【図面の簡単な説明】
【図１】本発明のシステム構成図である。
【図２】本発明の動作説明図である。
【図３】本発明の障害発生時のフローチャートである。
【符号の説明】
１：ＰＭ（プロセッサモジュール）
２：主記憶
３：ＣＰＵ
３１：待機プロセス
４：共用メモリ管理プロセス
５：主記憶管理プロセス
６：共用メモリ
７：バス
８：端末
【図１】
0003709050.tif 000002
【図２】
0003709050.tif 000003
【図３】
0003709050.tif 000004