(57)【特許請求の範囲】
【請求項１】
ネットワークを介して互いに接続され、かつそれぞれが２つのオペレーティングシステムを持つ２つの計算機を有し、この２つの計算機はメモリ装置を共有して業務データを共有可能とし、一方の計算機が主系のときに他方が従系となるマルチコンピュータシステムであって、
２つの計算機のそれぞれは、
業務プログラムと、この業務プログラムの生存情報を相手計算機に通知する通知プログラムと、相手計算機内のこの通知プログラムから送られてくる生存情報を受信する受信プログラムと、この受信プログラムで受信した生存情報から相手計算機の業務プログラムの生存か否かを判定する判定プログラムと、を有する第１のオペレーティングシステムと、
この第１のオペレーティングシステムの業務プログラムの生存を監視する業務判定プログラムを有する第２のオペレーティングシステムと、
を備え、
それぞれの計算機の１つが主系として動作して自己の第１のオペレーティングシステムのもとで業務プログラムを動作させ、この主系の計算機では自己の通知プログラムにより生存情報を従系の計算機に送り、従系の計算機ではこの生存情報を自己の受信プログラムで受信し、判定プログラムで相手第１オペレーティングシステムの業務プログラムが生存していないかを監視し、生存していないとの判定のときに自己の第１のオペレーティングシステムの業務プログラムを立ち上げて相手業務プログラムの業務を引き継がせ、
主系の第２オペレーティングシステムは、業務判定プログラムにより自己の業務プログラムが生存でないと判定したときにこの自己の第１のオペレーティングシステムの業務プログラムを終了させる、
ものとしたマルチコンピュータシステム。
【請求項２】
上記第２のオペレーティングシステムは、更に自己の第１のオペレーティングシステムの生存を監視するプログラムを具えるものとし、
上記第１のオペレーティングシステムは、更に、自己の第１のオペレーティングシステムの生存情報を通知する通知プログラムと、相手計算機内のこの通知プログラムからの生存情報を受信する受信プログラムと、を有し、更に自己の判定プログラムがこの受信プログラムから受信した生存情報から相手の第１オペレーティングシステムの生存を監視するものとした請求項１のマルチコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の計算機が互いに動作状態監視を行うマルチコンピュータシステムに関し、特に、システムを構成する各計算機上で複数のオペレーティングシステムが動作し、かつ、オペレーティングシステム間で動作状態監視を行うマルチコンピュータシステムに関する。
【０００２】
【従来の技術】
従来、マルチコンピュータシステムでは、マルチコンピュータシステムを構成する計算機同士で、相互に動作状態の監視を行うことが行われている。すなわち、他方の計算機が停止した場合には、もう一方の計算機が業務を引き継ぐように構成し、もって、システムにおける無停止運転を実現している。そして、これにより停止した計算機は、再び業務を行うことができる状態になるよう、再起動が行われる。
【０００３】
ところで、上記した従来技術になるマルチコンピュータシステムでは、上記の停止した計算機の再起動は、当該計算機を監視している他の計算機からの再起動信号により行われており、この種のマルチコンピュータシステムとして関連するものには、例えば、特開平８−２３５１３４号公報等が挙げられる。
【０００４】
また、上記のようなマルチコンピュータシステムとは異なるが、マルチＯＳ環境を有する１台の計算機内において、ＯＳ間で相互に障害監視を行って再起動を行うものが、例えば、特開２００１−１０１０３３号公報、特開２００１−１０１０３４号公報、特開２００１−１０１０２１号公報などにより知られており、ここでは、障害が発生したＯＳやＡＰを再起動して障害が発生した前の状態に戻す処理を、特別なハードウェアを用いることなく、ソフトウェア技術によって実現している。
【０００５】
【発明が解決しようとする課題】
上述した通り、従来技術になるマルチコンピュータシステムにおいては、一旦停止した計算機の再起動は、システムを構成する他の計算機からの再起動信号によって行うように構成されている。しかしながら、かかる従来技術になるマルチコンピュータシステムでは、ネットワークを介してシステムを構成する計算機は、上記再起動信号を受信して計算機を再起動するための機能を有するハードウェアが必要となるため、計算機のハードウェアのコストがかかるという問題点がある。
【０００６】
また、後者のマルチＯＳ環境を有する計算機では、異なるＯＳ間で相互に障害監視を行って再起動を行うものではあるが、しかしながら、上記のようなマルチコンピュータシステムにおける相互監視や再起動については全く考慮されてはいなかった。
【０００７】
そこで、本発明の目的は、複数の計算機が互いに動作状態監視を行うマルチコンピュータシステムであって、システムを構成する計算機を再起動する機能を、上記従来技術のようにハードウェアではなく、これをソフトウェアによって実現し、もって、再起動用のハードウェアを不要とすることにより、マルチコンピュータシステムを構成する計算機ハードウェアのコストを低減することにある。
【０００８】
【課題を解決するための手段】
本発明は、ネットワークを介して互いに接続され、かつそれぞれが２つのオペレーティングシステムを持つ２つの計算機を有し、この２つの計算機はメモリ装置を共有して業務データを共有可能とし、一方の計算機が主系のときに他方が従系となるマルチコンピュータシステムであって、
２つの計算機のそれぞれは、
業務プログラムと、この業務プログラムの生存情報を相手計算機に通知する通知プログラムと、相手計算機内のこの通知プログラムから送られてくる生存情報を受信する受信プログラムと、この受信プログラムで受信した生存情報から相手計算機の業務プログラムの生存か否かを判定する判定プログラムと、を有する第１のオペレーティングシステムと、
この第１のオペレーティングシステムの業務プログラムの生存を監視する業務判定プログラムを有する第２のオペレーティングシステムと、
を備え、
それぞれの計算機の１つが主系として動作して自己の第１のオペレーティングシステムのもとで業務プログラムを動作させ、この主系の計算機では自己の通知プログラムにより生存情報を従系の計算機に送り、従系の計算機ではこの生存情報を自己の受信プログラムで受信し、判定プログラムで相手第１オペレーティングシステムの業務プログラムが生存していないかを監視し、生存していないとの判定のときに自己の第１のオペレーティングシステムの業務プログラムを立ち上げて相手業務プログラムの業務を引き継がせ、
主系の第２オペレーティングシステムは、業務判定プログラムにより自己の業務プログラムが生存でないと判定したときにこの自己の第１のオペレーティングシステムの業務プログラムを終了させる、
ものとしたマルチコンピュータシステムを開示する。
【０００９】
更に本発明は、上記第２のオペレーティングシステムは、更に自己の第１のオペレーティングシステムの生存を監視するプログラムを具えるものとし、
上記第１のオペレーティングシステムは、更に、自己の第１のオペレーティングシステムの生存情報を通知する通知プログラムと、相手計算機内のこの通知プログラムからの生存情報を受信する受信プログラムと、を有し、更に自己の判定プログラムがこの受信プログラムから受信した生存情報から相手の第１オペレーティングシステムの生存を監視するものとした請求項１のマルチコンピュータシステムを開示する。
【００１２】
このように、本発明は、一台の計算機上でのオペレーティングシステムの監視に加えて、マルチコンピュータを構成する計算機同士でも動作状況監視を行い、監視先計算機が停止した場合に監視元計算機が監視先計算機の業務を引き継いで実行することにより、高信頼なマルチコンピュータシステムを提供するものである。
【００１３】
さらに、本発明では、オペレーティングシステムだけでなく業務プログラムの動作状況の監視を行い、業務プログラムが停止した場合にも監視元オペレーティングシステムが監視先オペレーティングシステムを再起動し、同時に当該計算機を監視する計算機が当該計算機の業務を引き継いで実行することにより、システムを高信頼化するマルチコンピュータシステムを提供するものである。
【００１４】
さらに、本発明では、監視先オペレーティングシステムが停止した場合はオペレーティングシステムの停止処理を行わずにオペレーティングシステムの再起動を行い、監視先オペレーティングシステムで実行される業務プログラムが停止した場合はオペレーティングシステムの停止処理を行ってオペレーティングシステムの再起動を行うことにより、計算機のデータ保全性を向上させたマルチコンピュータシステムを提供するものである。
【００１５】
【発明の実施の形態】
以下、本発明の実施の形態の詳細について、添付の図面を参照して説明する。
＜システムの構成＞
図１は、本発明の実施の形態になるマルチコンピュータシステムの全体構成を示す概略図である。図において、マルチコンピュータシステムは、複数（ここでは、例示として２台）の計算機１（１）と計算機２（２）を有しており、そして、これら複数の計算機（ここでは、計算機１（１）と計算機２（２））は、ネットワーク（４）を介して互いに接続されている。また、これら複数の計算機は、互いに共用的に使用されるメモリ装置を備えており、より具体的には、これら計算機１（１）と計算機２（２）で共通に使用される共有ハードディスクドライブ（３）を備えている。
【００１６】
なお、マルチコンピュータシステムを構成するこれら複数の計算機、すなわち、計算機１（１）と計算機２（２）は、それぞれ主系、従系の関係にある。具体的には、通常は、計算機１（１）で業務を遂行しており、その業務内容は、共通の記憶装置である上記共有ハードディスクドライブ（３）内に格納される。なお、この時には、上記計算機２（２）も起動した状態となっている。
【００１７】
また、図からも明らかなように、計算機１（１）は、ハードウェア（１４）上にマルチＯＳ制御プログラム（１３）を有し、そして、このマルチＯＳ制御プログラムで動作するオペレーティングシステム１（ＯＳ１）（１１）と、オペレーティングシステム２（ＯＳ２）（１２）とを備えている。なお、上記のオペレーティングシステム１（ＯＳ１）（１１）は、ＯＳ１カーネルプログラム（１１０）、ＯＳ１業務プログラム（１１１）、ＯＳ１生存通知プログラム（１１３）等を備えており、他方のオペレーティングシステム２（ＯＳ２）（１２）は、ＯＳ２カーネルプログラム（１２０）等と共に、ＯＳ１生存判定プログラム（１２１）を備えている。
【００１８】
そして、一方、計算機２（２）は、ハードウェア（２４）上にマルチＯＳ制御プログラム（２３）を有し、そして、このマルチＯＳ制御プログラムで動作するオペレーティングシステム３（ＯＳ３）（２１）と、オペレーティングシステム４（ＯＳ４）（２２）とを備えている。また、上記オペレーティングシステム３（ＯＳ３）（２１）は、ＯＳ３カーネルプログラム（２１０）、計算機１ＯＳ１生存受信プログラム（２１５）等を備えており、他方のオペレーティングシステム４（ＯＳ４）（２２）は、ＯＳ４カーネルプログラム（２２０）等を備えている。
【００１９】
上記したマルチコンピュータシステムの構成において、計算機１（１）のハードウェア（１４）上では、オペレーティングシステム１（ＯＳ１）（１１）と、オペレーティングシステム２（ＯＳ２）（１２）とが、マルチＯＳ制御プログラム（１３）により、互いのオペレーティングシステムを意識することなく並列に動作する。また、計算機２（２）においても同様である。
【００２０】
さらに、オペレーティングシステム１（ＯＳ１）（１１）上では、ＯＳ１業務プログラム（１１１）とＯＳ１生存通知プログラム（１１３）等が動作している。また、オペレーティングシステム２（ＯＳ２）（１２）上では、ＯＳ１生存判定プログラム（１２１）などが動作している。さらに、計算機２（２）のオペレーティングシステム３（ＯＳ３）（２１）上では計算機１ＯＳ１生存受信プログラム（２１５）などが動作している。
【００２１】
ここで、計算機１（１）のオペレーティングシステム２（ＯＳ２）（１２）上のＯＳ１生存判定プログラム（１２１）と、計算機２（２）のオペレーティングシステム３（ＯＳ３）（２１）上の計算機１ＯＳ１生存受信プログラム（２１５）などは、オペレーティングシステム１（ＯＳ１）（１１）の監視を行うプログラムである。そして、上記計算機１（１）のオペレーティングシステム１（ＯＳ１）（１１）の障害時には、このオペレーティングシステム１（ＯＳ１）（１１）は、オペレーティングシステム２（ＯＳ２）（１２）によって再起動される。なお、オペレーティングシステム１（ＯＳ１）（１１）の再起動後は、この計算機１（１）は、（計算機２（２）に対して）従系となる。また、同じく、この計算機１（１）のオペレーティングシステム１（ＯＳ１）（１１）の障害時には、計算機２（２）を主系に切替えると共に、この計算機２（２）のオペレーティングシステム３（ＯＳ３）（２１）が業務を引き継ぐこととなる。すなわち、計算機２（２）のオペレーティングシステム３（ＯＳ３）（２１）において業務プログラムを実行すると共に、それまで計算機１（１）で遂行して共通の記憶装置である上記共有ハードディスクドライブ（３）内に格納された業務内容により、業務を継続することとなる。
【００２２】
次に、添付の図２、図３には、上記で説明した計算機１（１）、計算機２（２）のより詳細な構成を示す。なお、これらの図からも明らかなように、計算機２（２）の構成は、計算機1（１）とほぼ同一であることから、以下には、上記計算機１（１）の構成についてのみ説明する。
【００２３】
まず、計算機１（１）上では、独自のメモリ管理機能、プログラム実行制御機能、Ｉ／Ｏ制御機能を備えたオペレーティングシステム１（ＯＳ１）（１１）と、オペレーティングシステム２（ＯＳ２）（１２）とが動作している。なお、これらのオペレーティングシステム内には、それぞれ、ＯＳ１カーネルプログラム（１１０）とＯＳ２カーネルプログラム（１２０）とがあり、これらが、上記オペレーティングシステムのそれぞれの機能を実行する。
【００２４】
なお、この図２では、上記ＯＳ１カーネルプログラム（１１０）管理下のユーザプログラムとして、例えば、ＯＳ１業務プログラム（１１１）、ＯＳ１業務生存通知プログラム（１１２）、ＯＳ１生存通知プログラム（１１３）、計算機２生存判定プログラム（１１４）、計算機２ＯＳ３生存受信プログラム（１１５）、計算機２ＯＳ３業務生存受信プログラム（１１６）が動作している。
【００２５】
上記において、ＯＳ１業務プログラム（１１１）は、この計算機システム（計算機１）が行う業務を実行するためのプログラムである。また、ＯＳ１業務生存通知プログラム（１１２）は、計算機２（２）と共に、上記計算機１（１）の他のオペレーティングシステム２（ＯＳ２）（１２）に対して、上記ＯＳ１業務プログラム（１１１）が生存していることを通知するためのプログラムである。また、ＯＳ１生存通知プログラム（１１３）は、上記計算機２（２）と共に、上記計算機１（１）の他のオペレーティングシステム２（ＯＳ２）（１２）に対して、オペレーティングシステム１（ＯＳ１）（１１）が生存していることを通知するプログラムである。
【００２６】
また、上記図２において、計算機２生存判定プログラム（１１４）とは、上記計算機１（１）が従系となった場合に、主系を構成する計算機２（２）の生存判定を行うためのプログラムである。また、計算機２ＯＳ３生存受信プログラム（１１５）とは、やはり、上記計算機１（１）が従系となった場合に、主系である計算機２（２）のＯＳ３生存通知プログラム（２１３：図３を参照）からのＯＳ３生存通知メッセージを受信するためのプログラムである。また、計算機２ＯＳ３業務生存受信プログラム（１１６）とは、やはり、上記計算機１（１）が従系となった場合に、主系である計算機２（２）のＯＳ３業務生存通知プログラム（２１２：図３を参照）からのＯＳ３業務プログラム生存メッセージを受信するためのプログラムである。
【００２７】
ここで、上記した計算機２生存判定プログラム（１１４）と、計算機２ＯＳ３生存受信プログラム（１１５）と、計算機２ＯＳ３業務生存受信プログラム（１１６）とは、上記計算機１（１）が従系となった場合に主系となる計算機２（２）の生死判定を行うプログラムであり、そのため、上記計算機１（１）の内部の障害監視には使用しない。
【００２８】
また、上記図２に示した計算機１では、他のオペレーティングシステム２（ＯＳ２）（１２）内では、ＯＳ２カーネルプログラム（１２０）の管理下のユーザプログラムとして、ＯＳ１生存判定プログラム（１２１）と、ＯＳ１業務生存判定プログラム（１２２）とが動作している。なお、このＯＳ１生存判定プログラム（１２１）とは、オペレーティングシステム１（ＯＳ１）（１１）の生存判定を行うためのプログラムである。また、ＯＳ１業務生存判定プログラム（１２２）とは、ＯＳ１業務プログラム（１１１）の生存判定を行うためのプログラムである。
【００２９】
また、上記図２に示したマルチＯＳ制御プログラム（１３）は、計算機１（１）の物理メモリを、そのオペレーティングシステムである、オペレーティングシステム１（ＯＳ１）（１１）とオペレーティングシステム２（ＯＳ２）（１２）とに分配し、そして、残りの物理メモリを、ＯＳ間共用メモリとして使用できるようにする機能を有している。すなわち、このマルチＯＳ制御プログラム（１３）によれば、計算機１（１）の計算機ハードウェア１４を構成する物理メモリは、ＯＳ１用メモリ（１４１）と、ＯＳ２用メモリ（１４３）と、そして、ＯＳ間共用メモリ（１４２）とにその用途が分けられることとなる。また、このマルチＯＳ制御プログラム（１３）は、ＣＰＵ（１４４）の動作時間を、オペレーティングシステム１（ＯＳ１）（１１）とオペレーティングシステム２（ＯＳ２）（１２）との間で分配する機能をも有している。なお、ここでは、このＣＰＵ動作時間は、オペレーティングシステム１（ＯＳ１）（１１）とオペレーティングシステム２（ＯＳ２）（１２）との間には、特に優先度は設けず、それ故、このＣＰＵ動作時間は平等に分配されるものとする。また、このマルチＯＳ制御プログラム（１３）は、オペレーティングシステムの起動機能をも提供するものである。
【００３０】
上記にその構成を詳細に説明した図２及び図３の計算機において、図２の計算機１（１）が主系であり、図３の計算機２（２）が従系である場合には、図３に示した計算機２（２）のＯＳ３カーネルプログラム（２１０）上のタスクである、即ち、計算機１生存判定プログラム（２１４）、計算機１ＯＳ１生存受信プログラム（２１５）、そして、計算機１ＯＳ１業務生存受信プログラム（２１６）が、計算機１（１）の外部監視プログラムとして動作することとなる。
【００３１】
なお、上記の計算機１生存判定プログラム（２１４）は、計算機１（１）のオペレーティングシステム１（ＯＳ１）（１１）の生存判定を行うプログラムである。また、計算機１ＯＳ１生存受信プログラム（２１５）は、計算機１（１）のＯＳ１生存通知プログラム（１１３）からのＯＳ１生存通知メッセージを受信するためのプログラムである。さらに、計算機１ＯＳ１業務生存受信プログラム（２１６）は、計算機１（１）のＯＳ１業務生存通知プログラム（１１２）からのＯＳ１業務プログラム生存メッセージを受信するためのプログラムである。
【００３２】
続いて、図４は、上記図２に示した計算機１（１）の計算機ハードウェア１４における、ＯＳ間共有メモリ（１４２）の構成の一例を示す図である。この構成では、例えば、ＯＳ１生存フラグ（３０１）の値が「１」の場合、オペレーティングシステム１（ＯＳ１）（１１）が動作中であることを示す。また、そのＯＳ１業務動作中フラグ（３０２）の値が「１」の場合には、ＯＳ１業務プログラム（１１１）が動作中であることを示す。また、再起動済みフラグ（３０３）の値が「１」の場合には、オペレーティングシステム１（ＯＳ１）（１１）が再起動中であることを示している。
【００３３】
また、図５は、上記図３に示した計算機２（２）の計算機ハードウェア２４における、計算機２ＯＳ３用メモリ（２４１）の構成の一例を示す図である。この構成では、例えば、計算機１ＯＳ１生存フラグ（７０１）の値が「１」の場合には、計算機１（１）のオペレーティングシステム１（ＯＳ１）（１１）が動作中であることを示す。また、その計算機１ＯＳ１業務動作中フラグ（７０２）の値が「１」の場合には、計算機１（１）のＯＳ１業務プログラム（１１１）が動作中であることを示している。
【００３４】
＜動作の原理＞
次に、上記にその構成を説明した本発明のマルチコンピュータシステムにおける動作の原理について、以下に説明する。
【００３５】
以下、上記計算機の内部における監視方法について、添付の図面を参照しながら説明する。すなわち、添付の図６は、上記図１又は図２に示した計算機１（１）における、上記の計算機１ＯＳ１生存通知プログラム（１１３）の処理フローを示している。
【００３６】
図にも示すように、この計算機１ＯＳ１生存通知プログラムが開始すると、まず、計算機1（１）の起動、または、再起動時に、計算機１（１）内のＯＳ間共有メモリ（１４２）内の再起動済みフラグ（３０３：図４を参照）の値を、「０」にクリアする（ステップ４０１）。これにより、計算機1（１）が、起動、または、再起動が完了したことを示す。
【００３７】
次に、上記の計算機１（１）ＯＳ１業務生存通知プログラム（１１２：図２を参照）を起動する（ステップ４０２）。なお、この計算機１（１）ＯＳ１業務生存通知プログラム（１１２）の動作については、以下に、添付の図７を参照して詳細に説明する。
【００３８】
次に、上記計算機１（１）のＯＳ間共有メモリ（１４２）内のＯＳ１生存フラグ（３０１：図４を参照）の値を、「１」に設定する（ステップ４０３）。すなわち、これにより、計算機１（１）のオペレーティングシステム１（ＯＳ１）（１１）が動作中であることを、計算機１（１）のＯＳ間共有メモリ（１４２）に設定することとなる。
【００３９】
その後、計算機２（２）に対して、ＯＳ１生存メッセージを送信する（ステップ４０４）。続いて、次回のＯＳ１生存フラグ更新時間まで、スリープする（ステップ４０５）。なお、このＯＳ１生存フラグ更新時間が経過した場合には、その処理を上記ステップ４０３に戻す。ここで、このＯＳ１生存通知プログラム（１１３）は、最高優先レベルで動作する。
【００４０】
次に、図７は、上記した計算機１ＯＳ１業務生存通知プログラム（１１２）の詳細を示す処理フローである。
【００４１】
この計算機１ＯＳ１業務生存通知プログラム（１１２）では、まず、計算機１（１）のＯＳ間共有メモリ（１４２：図２を参照）における、ＯＳ１業務動作中フラグ（３０２：図４を参照）の値を、「１」に設定する（ステップ５０１）。これにより、ＯＳ１業務プログラム（１１１）が動作中であることを、上記計算機１（１）のＯＳ間共有メモリ（１４２）に設定することとなる。
【００４２】
次に、計算機２（２）に対して、ＯＳ１業務生存メッセージを送信する（ステップ５０２）。その後、次回のＯＳ１業務動作中フラグ更新時間まで、スリープする（ステップ５０３）。なお、上記の処理において、ＯＳ１業務動作中フラグ更新時間が経過した場合には、その処理を上記ステップ５０１へ戻す。ここでも、上記のＯＳ１業務生存通知プログラム（１１２）は、上記ＯＳ１業務プログラム（１１１）と同一の優先レベルで動作する。
【００４３】
次に、図８は、上記計算機１（１）のオペレーティングシステム２（ＯＳ２）（１２）上で動作するＯＳ１生存判定プログラム（１２１）の詳細を示す処理フローである。
【００４４】
本プログラムでは、まず、図２に示した計算機１（１）ＯＳ間共有メモリ（１４２）内のＯＳ１生存フラグ（３０１：図４を参照）を参照し、その値が「１」であれば、計算機１（１）のオペレーティングシステム１（ＯＳ１）（１１）は動作中であり、他方、その値が「０」であれば、当該オペレーティングシステム１（ＯＳ１）（１１）は停止しているものと判定する（ステップ６０１）。
【００４５】
上記の判定の結果、ＯＳ１（１１）が動作中（上記ステップ６０１で「Ｙｅｓ」）と判定した場合は、ＯＳ１生存フラグ（３０１）を「０」に設定（ステップ６０２）し、もって、このＯＳ１生存フラグ（３０１）を初期化し、さらに、オペレーティングシステム２（ＯＳ２）（１２）上のＯＳ１業務生存判定プログラム（１２２）を起動する。なお、このＯＳ１業務生存判定プログラム（１２２）の動作については、後述する。
【００４６】
次に、次回のＯＳ監視タイムアウト時間までスリープする（ステップ６０５）。なお、このＯＳ１生存フラグ更新時間が経過した場合には、処理を上記のステップ６０１に戻す。
【００４７】
他方、上記ステップ６０１での判定の結果、オペレーティングシステム１（ＯＳ１）（１１）が停止している（即ち、上記ステップ６０１で「Ｎｏ」）と判定した場合には、更に、上記図２の計算機１（１）ＯＳ間共有メモリ（１４２）内の再起動済みフラグ（３０３）を参照し、その値が「１」であればオペレーティングシステム１（ＯＳ１）（１１）は再起動処理中であり、他方、その値が「０」ならば、オペレーティングシステム１（ＯＳ１）（１１）は再起動処理を行っていないものと判定する（ステップ６１１）。
【００４８】
上記ステップ６１１の判定処理の結果、再起動処理中である（上記ステップ６１１で「Ｙｅｓ」）と判定した場合は、リブート処理を行わずに、そのまま、処理を上記ステップ６０５へ移行する。他方、再起動処理を行っていない（上記ステップ６１１で「Ｎｏ」）と判定した場合には、上記図４の再起動済みフラグ（３０３）を「１」に設定（ステップ６１２）して再起動処理中とし、オペレーティングシステム１（ＯＳ１）（１１）のリブート処理を実行する（ステップ６１３）。その後、次回のＯＳ監視タイムアウト時間まで、スリープ（ステップ６０５）する。なお、このＯＳ１生存フラグ更新時間が経過した場合には、処理を上記ステップ６０１に戻す。
【００４９】
次に、添付の図９は、オペレーティングシステム２（ＯＳ２）（１２）上で動作するＯＳ１業務生存判定プログラム（１２２）の処理フローの詳細を示す。
【００５０】
本プログラムでは、その処理が開始されると、まず、上記図４に示した計算機１（１）ＯＳ間共有メモリ（１４２）内のＯＳ１業務動作中フラグ（３０２）を参照し、その値が「１」であれば、ＯＳ１業務プログラム（１１１）は動作中であり、他方、その値が「０」であれば、このＯＳ１業務プログラム（１１１）は停止していると判定する（ステップ６０３）。
【００５１】
上記の判定で、ＯＳ１業務プログラム（１１１）が動作中（上記ステップ６１１で「Ｙｅｓ」）であると判定した場合は、上記図４に示した計算機１（１）ＯＳ間共有メモリ（１４２）内の再起動済みフラグ（３０３）を、「０」に設定する（ステップ６０４）。
【００５２】
他方、上記ＯＳ１業務プログラム（１１１）が停止している（上記ステップ６１１で「Ｎｏ」）と判定した場合には、更に、上記図４に示した計算機１（１）ＯＳ間共有メモリ（１４２）内の再起動済みフラグ（３０３）を参照し、その値が「１」であれば、上記計算機１（１）は再起動処理中であり、他方、その値が「０」であれば、計算機１（１）は再起動処理を行っていないと判定する（ステップ６３１）。
【００５３】
上記の判定の結果、計算機１（１）が再起動処理中である（上記ステップ６３１で「Ｙｅｓ」）と判定した場合には、シャットダウン処理は行わずに処理を終了する。他方、再起動処理を行っていない（上記ステップ６３１で「Ｎｏ」）と判定した場合は、上記の再起動済みフラグ（３０３）を「１」に設定し（ステップ６３２）、再起動処理中とし、計算機１（１）のオペレーティングシステム１（ＯＳ１）（１１）のシャットダウン処理を実行して（ステップ６３３）、処理を終了する。
【００５４】
ここで、監視時間の同期を取るため、上記図６に示したＯＳ１生存通知プログラム（１１３）中のステップ４０５におけるＯＳ１生存フラグ更新時間と、上記図７に示したＯＳ１業務生存通知プログラム（１１２）中のステップ５０３におけるＯＳ１業務動作中フラグ変更時間と、そして、上記図８に示したＯＳ２のＯＳ１生存判定プログラム（１２１）中のステップ６０５におけるＯＳ監視タイムアウト時間とは、同一の値に設定されている。
【００５５】
次に、計算機２（２）から計算機１（１）を外部監視する方法について、以下に詳細に説明する。なお、以下の説明では、上記計算機１（１）が主系として起動済みであるものとして説明する。
【００５６】
まず、図１０は、上記図３に示した上記計算機２（２）における、計算機１生存判定プログラム（２１４）の処理フローの内容を示す。
【００５７】
この処理フローでは、まず、計算機２（２）の起動時に、上記計算機２（２）の計算機ハードウェア２４内に設けられた計算機２ＯＳ３用メモリ（２４１）内の計算機１ＯＳ１生存フラグ（７０１：上記図５を参照）の値を、「０」にクリアする（ステップ８０１）。また、やはり、上記計算機２ＯＳ３用メモリ（２４１）内の計算機１ＯＳ１業務動作中フラグ（７０２：上記図５を参照）の値を、「０」にクリアする（ステップ８０２）。なお、これにより、計算機２（２）の起動が完了したことを示す。
【００５８】
次に、上記図３に示した計算機２（２）の計算機１ＯＳ１生存受信プログラム（２１５）を起動する（ステップ８０３）。さらに、計算機２（２）の計算機１ＯＳ１業務生存受信プログラム（２１６）を起動する（ステップ８０４）。なお、これらの計算機２（２）の計算機１ＯＳ１生存受信プログラム（２１５）と、計算機２（２）の計算機１ＯＳ１業務生存受信プログラム（２１６）との詳細については、後述する。
【００５９】
続いて、ＯＳ監視タイムアウト時間までスリープする（ステップ８０５）。
【００６０】
次に、処理は、計算機２ＯＳ３用メモリ（２４１）の計算機１ＯＳ１生存フラグ（７０１：上記図５を参照）を参照し、その値が「１」であれば、計算機１（１）のオペレーティングシステム１（ＯＳ１）（１１）は動作中であり、他方、その値が「０」であれば、計算機１（１）のオペレーティングシステム１（ＯＳ１）（１１）は停止していると判定する（ステップ８０６）。
【００６１】
なお、上記で計算機２ＯＳ３用メモリ（２４１）の計算機１（１）のオペレーティングシステム１（ＯＳ１）（１１）が動作中（すなわち、上記の判定ステップ８０６で「Ｙｅｓ」）と判定した場合には、更に、計算機２ＯＳ３用メモリ（２４１）の計算機１ＯＳ１業務動作中フラグ（７０２：上記図５を参照）を参照し、その値が「１」であれば、計算機１（１）のＯＳ１業務プログラム（１１１）は動作中であり、他方、その値が「０」であれば、計算機１（１）のＯＳ１業務プログラム（１１１）は、停止していると判定する（ステップ８０７）。
【００６２】
次に、上記で計算機１（１）のＯＳ１業務プログラム（１１１）が動作中である（上記の判定ステップ８０７で「Ｙｅｓ」）と判定された場合には、計算機２ＯＳ３用メモリ（２４１）の計算機１ＯＳ１生存フラグ（７０１）を「１」に設定し（８０８）、処理を上記のステップ８０５に戻す。
【００６３】
他方、計算機１（１）のＯＳ１（１１）が停止している（上記判定ステップ８０６で「Ｎｏ」）、または、計算機１（１）のＯＳ１業務プログラム（１１１）が停止している（上記判定ステップ８０７で「Ｎｏ」）と判定された場合は、更に、計算機２（２）のＯＳ３業務プログラム（２１１）が動作中か否かを判定する（ステップ８７１）。その結果、動作中（「Ｙｅｓ」）と判定された場合には、処理は上記のステップ８０５に戻される。他方、計算機２（２）のＯＳ３業務プログラム（２１１）が停止中（「Ｎｏ」）と判定された場合には、計算機２（２）のＯＳ３業務プログラム（２１１）を起動し（ステップ８７２）、その後、処理を上記のステップ８０５に戻す。
【００６４】
なお、ここでも、外部監視時間と内部監視時間の同期を取るために、上記図６に示したＯＳ１生存通知プログラム（１１３）中のステップ４０５におけるＯＳ１生存フラグ更新時間、上記図７に示したＯＳ１業務生存通知プログラム（１１２）中のステップ５０３におけるＯＳ１業務動作中フラグ変更時間と、上記図８に示したＯＳ２のＯＳ１生存判定プログラム（１２１）中のステップ６０５におけるＯＳ監視タイムアウト時間と、そして、上記図１０に示した計算機２（２）の計算機１生存判定プログラム（２１４）中におけるステップ８０５におけるＯＳ監視タイムアウト時間とは、同一に設定されている。
【００６５】
次に、添付の図１１には、上記計算機２（２）における計算機１ＯＳ１生存受信プログラム（２１５）の詳細を、処理フローにより示す。なお、上記図６においてステップ４０４で示したように、計算機１（１）から計算機２（２）へは、ＯＳ１生存フラグが変更される度に、計算機１ＯＳ１生存メッセージが送信される。
【００６６】
本プログラムでは、まず、計算機１（１）からＯＳ１生存メッセージを受信したか否かの判定を行う（ステップ９０１）。その結果、計算機１（１）からＯＳ１生存メッセージを受信した（「Ｙｅｓ」）と判定された場合、上記図３に示した計算機２ＯＳ３用メモリ（２４１）の計算機１ＯＳ１生存フラグ（７０１）に、「１」を設定する（ステップ９０２）。その後、処理は、上記のステップ９０１へ戻る。なお、ここでは、上記計算機２（２）の計算機１ＯＳ１生存受信プログラム（２１５）は、最高優先レベルで動作する。
【００６７】
次に、図１２には、上記計算機２（２）の計算機１ＯＳ１業務生存受信プログラム（２１６）の詳細を処理フローにより示す。なお、ここでも、上記図７のステップ５０２に示したように、計算機１（１）から計算機２（２）には、計算機１ＯＳ１業務生存メッセージが、ＯＳ１業務動作中フラグの変更の度に、送信されている。
【００６８】
本プログラムでは、まず、計算機１（１）からＯＳ１業務生存メッセージを受信したかの判定を行う（ステップ１００１）。その結果、上記計算機１（１）からＯＳ１業務生存メッセージを受信した（「Ｙｅｓ」）と判定された場合には、上記図３に示した計算機２ＯＳ３用メモリ（２４１）の計算機１ＯＳ１業務動作中フラグ（７０２）に、「１」を設定する（ステップ１００２）。その後、処理は、上記のステップ１００１に戻る。なお、ここでも、計算機２（２）の計算機１OS1業務生存受信プログラム（２１６）は最高優先レベルで動作する。
【００６９】
尚、同一優先度のプログラムのスケジューリングには、ラウンドロビンスケジューリングを適用している。また、上記の実施の形態では、マルチコンピュータシステムを構成する計算機を、計算機１（１）と計算機２（２）の２台の場合についてのみ例示したが、しかしながら、本発明では、これのみに限定されず、それ以上の計算機によりこのマルチコンピュータシステムを構成してもよいことは、当業者であれば明らかであろう。
【００７０】
【発明の効果】
以上に詳細に説明からも明らかなように、本発明になるマルチコンピュータシステムによれば、システムを構成する各計算機は、複数のオペレーティングシステムで動作する計算機で構成されており、それぞれの計算機は、互いに生存通知の送受信を行うことにより他の計算機の生死監視を行う機能を有すると共に、当該自計算機は、監視先オペレーティングシステムの生死監視を行う監視元オペレーティングシステムを有しており、かかる構成によれば、監視先オペレーティングシステムが停止した場合、監視元オペレーティングシステムが監視先オペレーティングシステムを再起動する機能を有しており、再起動用のハードウェアが不要となり、マルチコンピュータシステムを構成する計算機のハードウェアコストを低減できるという効果を発揮する。
【図面の簡単な説明】
【図１】本発明の一実施の形態になるマルチコンピュータシステムの全体構成を示すブロック図である。
【図２】上記図１に示すマルチコンピュータシステムにおける計算機１の内部構成を示すブロック図である。
【図３】上記図１に示すマルチコンピュータシステムにおける計算機２の内部構成を示すブロック図である。
【図４】上記マルチコンピュータシステムにおける計算機１ＯＳ間共用メモリの構成の一例を示す図である。
【図５】上記マルチコンピュータシステムにおける計算機２ＯＳ３用メモリの構成の一例を示す図である。
【図６】上記マルチコンピュータシステムにおける計算機１のＯＳ１生存通知プログラムの処理内容を示すフロー図である。
【図７】上記マルチコンピュータシステムにおける計算機１のＯＳ１業務生存通知プログラムの処理内容を示すフロー図である。
【図８】上記マルチコンピュータシステムにおける計算機１ＯＳ２のＯＳ１生存判定プログラムの処理内容を示すフロー図である。
【図９】上記マルチコンピュータシステムにおける計算機１ＯＳ２のＯＳ１業務生存判定プログラムの処理内容を示すフロー図である。
【図１０】上記マルチコンピュータシステムにおける計算機２の計算機１生存判定プログラムの処理内容を示すフロー図である。
【図１１】上記マルチコンピュータシステムにおける計算機２の計算機１ＯＳ１生存受信プログラムの処理内容を示すフロー図である。
【図１２】上記マルチコンピュータシステムにおける計算機２の計算機１ＯＳ１業務生存受信プログラムの処理内容を示すフロー図である。
【符号の説明】
１  計算機１
２  計算機２
３  共有ハードディスクドライブ
４  ネットワーク
１１  オペレーティングシステム１（ＯＳ１）
１２  オペレーティングシステム２（ＯＳ２）
１３  計算機１上のマルチＯＳ制御プログラム
１４  計算機１のハードウェア
２１  オペレーティングシステム３（ＯＳ３）
２２  オペレーティングシステム４（ＯＳ４）
２３  計算機２のマルチＯＳ制御プログラム
２４  計算機２のハードウェア
１１０  ＯＳ１カーネルプログラム
１１１  ＯＳ１業務プログラム
１１２  ＯＳ１業務生存通知プログラム
１１３  ＯＳ１生存通知プログラム
１１４  計算機２生存判定プログラム
１１５  計算機２ＯＳ３生存受信プログラム
１１６  計算機２ＯＳ３業務生存受信プログラム
１２０  ＯＳ２カーネルプログラム
１２１  ＯＳ１生存判定プログラム
１２２  ＯＳ１業務生存判定プログラム
１４１  計算機１のＯＳ１用メモリ
１４２  計算機１のＯＳ間共用メモリ
１４３  計算機１のＯＳ２用メモリ
１４４  計算機１のＣＰＵ
２１０  ＯＳ３カーネルプログラム
２１１  ＯＳ３業務プログラム
２１２  ＯＳ３業務生存通知プログラム
２１３  ＯＳ３生存通知プログラム
２１４  計算機１生存判定プログラム
２１５  計算機１ＯＳ１生存受信プログラム
２１６  計算機１ＯＳ１業務生存受信プログラム
２２０  ＯＳ４カーネルプログラム
２２１  ＯＳ３生存判定プログラム
２２２  ＯＳ３業務生存判定プログラム
２４１  計算機２のＯＳ３用メモリ
２４２  計算機２のＯＳ間共用メモリ
２４３  計算機２のＯＳ４用メモリ
２４４  計算機２のＣＰＵ
３０１  ＯＳ１生存フラグ
３０２  ＯＳ１業務動作中フラグ
３０３  再起動済みフラグ  ７０１  計算機１ＯＳ１生存フラグ
７０２  計算機１ＯＳ１業務動作中フラグ
【図１】
0003690666.tif 000002
【図２】
0003690666.tif 000003
【図３】
0003690666.tif 000004
【図４】
0003690666.tif 000005
【図５】
0003690666.tif 000006
【図６】
0003690666.tif 000007
【図７】
0003690666.tif 000008
【図８】
0003690666.tif 000009
【図９】
0003690666.tif 000010
【図１０】
0003690666.tif 000011
【図１１】
0003690666.tif 000012
【図１２】
0003690666.tif 000013