(57)【特許請求の範囲】
【請求項１】
プロセッサとメモリとオペレーティング・システムを管理する管理ソフトウエアとを有し論理パーティション機能を実装するデータ処理システムに適用される方法であり、
当該管理ソフトウエアの命令に応じて、論理パーティション内で実行されるオペレーティング・システムが処理できる１セットのイベントを識別する情報を当該オペレーティング・システムから前記プロセッサが受け取るステップと、
当該管理ソフトウエアの命令に応じて、当該識別する情報を前記メモリが記憶するステップと、
エラーの発生に応じて、当該エラーが前記１セットのイベントに含まれるかどうかを前記プロセッサが判別するステップと、
当該エラーが前記１セットのイベントに含まれているという判別に応じて、前記プロセッサが当該オペレーティング・システムへそのエラーを通知し、
当該エラーが前記１セットのイベントに含まれていないという判別に応じて、前記プロセッサが当該オペレーティング・システムに当該オペレーティング・システムの実行を終了するオペレーションを行うことを命令するステップと、
を含む方法。
【請求項２】
前記オペレーティング・システムに前記オペレーションを行うことを命令することに応じて、当該オペレーティング・システムが、当該オペレーションを行ったかどうかを前記プロセッサが判別するステップと、
当該オペレーティング・システムが当該オペレーションを行うことができなかったという判別に応じて、前記プロセッサが前記オペレーティング・システムの実行を終了するステップと
を更に含む請求項１に記載の方法。
【請求項３】
前記オペレーティング・システムの実行を終了することは、当該論理パーティションを終了することを含む請求項１又は２に記載の方法。
【請求項４】
前記エラーは、前記論理パーティションに割り当てられるハードウエア・コンポーネントに発生したエラーである請求項１乃至３のいずれかに記載の方法。
【請求項５】
前記オペレーションは、前記オペレーティング・システムが回復することができない致命的エラーを処理することである請求項１乃至４のいずれかに記載の方法。
【請求項６】
前記管理ソフトウエアは、ファームウエアである請求項１乃至５のいずれかに記載の方法。
【請求項７】
プロセッサとメモリとを有し論理パーティション機能を実装するコンピュータに、
論理パーティション内で実行されるオペレーティング・システムが処理できる１セットのイベントを識別する情報を当該オペレーティング・システムから前記プロセッサが受け取るステップと、
当該識別する情報を前記メモリが記憶するステップと、
エラーの発生に応じて、当該エラーが前記１セットのイベントに含まれるかどうかを前記プロセッサが判別するステップと、
当該エラーが前記１セットのイベントに含まれているという判別に応じて、前記プロセッサが当該オペレーティング・システムへそのエラーを通知し、
当該エラーが前記１セットのイベントに含まれていないという判別に応じて、前記プロセッサが当該オペレーティング・システムに当該オペレーティング・システムの実行を終了するオペレーションを行うことを命令するステップと、
を実行させることで当該オペレーティング・システムを管理するコンピュータ・プログラム。
【請求項８】
論理パーティション機能を実装するデータ処理システムであり、
少なくとも１つのプロセッサを有する処理装置と、
処理装置と通信するメモリと、
メモリに格納されたファームウエアとを備え、
当該ファームウエアは、
論理パーティション内で実行されるオペレーティング・システムが処理できる１セットのイベントを識別する情報を当該オペレーティング・システムから前記プロセッサに受け取らせ、
当該識別する情報を前記メモリに記憶させ、
エラーの発生に応じて、当該エラーが前記１セットのイベントに含まれるかどうかを前記プロセッサに判別させ、
当該エラーが前記１セットのイベントに含まれているという判別に応じて、前記プロセッサに当該オペレーティング・システムへそのイベントを通知させ、
当該エラーが前記１セットのイベントに含まれていないという判別に応じて、前記プロセッサに当該オペレーティング・システムに当該オペレーティング・システムの実行を終了するオペレーションを行わせる
データ処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に論理パーティション・データ処理システムにおける複数のオペレーティング・システム・パーティションの管理に関し、特にエラーおよび他のイベントの処理に関する。
【０００２】
【従来の技術】
データ処理システム（プラットフォーム）内の論理パーティション化された（ｌｏｇｉｃａｌ  ｐａｒｔｉｏｎｅｄ：ＬＰＡＲ）機能は、単一オペレーティング・システム（ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ：ＯＳ）の複数コピーまたは複数の異機種オペレーティング・システムが単一データ処理システム・プラットフォームで同時に動作することを可能にする。内部でオペレーティング・システム・イメージが動作するパーティションは、プラットフォームのリソースの非並行サブセットを割り当てられる。リソースを配分できるこれらのプラットフォームは、割り込み管理エリア、システム・メモリ領域および入出力（Ｉ／Ｏ）アダプタ・バス・スロットを有する１以上の構成的に別個のプロセッサを含む。パーティションのリソースは、ＯＳイメージに対するプラットフォームのファームウエアによって表現される。
【０００３】
プラットフォーム内の別個のＯＳまたはＯＳ動作イメージのそれぞれは、１つの論理パーティションにおけるソフトウエア・エラーが、他のどのパーティションの正しいオペレーションに影響を与えることがないように互いに保護されている。これは、非結合の１セットのプラットフォーム・リソースに、各ＯＳイメージによって直接管理されるように割り振ることによって、および種々のイメージが、イメージに割り振られなかったどのリソースも制御できないことを確実にする機構を用意することによって実現される。さらに、オペレーティング・システムの割り振られたリソースの制御におけるソフトウエア・エラーは、他の全てのイメージのリソースに影響を与えることを阻止される。したがって、ＯＳ（または各別個のＯＳ）の各イメージは、プラットフォーム内の別個の１セットの配分可能なリソースを直接に制御する。
【０００４】
ＬＰＡＲシステムにおけるハードウエア・リソースについては、これらのリソースは、種々のパーティション間で個別に共有されている。パーティションは、それ自体個別であるので、各パーティションは、スタンド−アローン・コンピュータのように見える。これらのリソースは、例えば入出力（Ｉ／Ｏ）アダプタ、メモリ・ディム（ｄｉｍｍ）、不揮発性ランダム・アクセス・メモリおよびハード・ディスクを含むことができる。ＬＰＡＲシステム内の各パーティションは、システム全体のスイッチを切ったり入れたりすることなく、何度も繰り返してブートおよびシャットダウンが可能である。
【０００５】
実際には、パーティション間で個別に共有されている入出力（Ｉ／Ｏ）装置の幾つかは、ハードウエアの共通部分、例えば、制御されまたはブリッジの下流に位置する多くの入出力（Ｉ／Ｏ）アダプタを持つことができるホストＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｆａｃｅ）ブリッジによってそれ自体を制御される。このブリッジは、スロットに割り当てられる全てのパーティションによって共有されていると考えることができる。したがって、ブリッジが作動不能になると、ブリッジは、ブリッジの下流に位置する装置を共有する全てのパーティションに影響を与える。実際は、問題自体は非常に厳しいので、いずれかのパーティションがブリッジを更に使用しようとするならば、ＬＰＡＲシステム全体はクラッシュするであろう。すなわち、クラッシュで、ＬＰＡＲシステム全体が故障する。通常の処理の方法は、ブリッジを共有する動作パーティションを終了することである。このことは、この故障のためにシステムがクラッシュするのを防ぐであろう。
【０００６】
通常起こるのは、ブリッジを使用不可（エラー）状態にする入出力（Ｉ／Ｏ）アダプタ故障である。発生の時には、入出力（Ｉ／Ｏ）アダプタ故障は、マシン・チェック割り込み（ｍａｃｈｉｎｅ  ｃｈｅｃｋ  ｉｎｔｅｒｒｕｐｔ：ＭＣＩ）ハンドラを呼び出す。これは、順に、エラーを報告し、次に、適切なパーティションを終了する。このプロセスは、この問題のためにＬＰＡＲシステム全体がクラッシュするのを防ぐ通常の解決方法である。
【０００７】
【発明が解決しようとする課題】
しかしながら、与えられたパーティションで動作する特定のオペレーティング・システムしだいで、いくつかのエラーは、オペレーティング・システムによって回復可能であり、他のエラーは回復不可能である。エラーが、特定のオペレーティング・システムによって回復できるならば、最善の処理の方法は、オペレーティング・システムにエラーを通知して、最適な処理を行うようにすることであろう。しかしながら、オペレーティング・システムが、エラーを回復する機能を有していないならば、オペレーティング・システムにエラーを通知することを試みることは、好ましくなく、エラー通知を解釈できないオペレーティング・システムは、クラッシュが発生するまで、一定の処理を単に続けるであろう。
【０００８】
したがって、必要なことは、エラーが発生した時に、特定のエラーを処理できるオペレーティング・システムに通知し、特定のエラーを処理できないオペレーティング・システムを終了する方法である。
【０００９】
【課題を解決するための手段】
本発明は、論理パーティション（ＬＰＡＲ）データ処理システムにおけるエラーまたは他のイベントを処理する方法、コンピュータ・プログラム、データ処理システムを提供する。オペレーティング・システムが論理パーティションで初期設定されると、オペレーティング・システムは、管理ソフトウエアを用いて特定のエラーまたは他のイベントを処理する機能を登録する。その論理パーティションに影響を与えるエラーまたは他のイベントが発生すると、管理ソフトウエアは検査して、特定のエラーまたはイベントが、オペレーティング・システムにより処理できるエラーまたはイベントであるかどうかを調べる。もし、オペレーティング・システムにより処理できるエラーまたはイベントであれば、オペレーティング・システムは、エラーまたはイベントを通知される。そうでなければ、管理ソフトウエアは、オペレーティング・システムに他の適切な処理、例えば、オペレーティング・システムおよび／またはパーティションの終了を行うことを命ずる。
【００１０】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。図１を参照すると、本発明を実現できる、データ処理システムのブロック図が示されている。データ処理システム１００は、システム・バス１０６に接続された複数のプロセッサ１０１，１０２，１０３，１０４を含む対称マルチプロセッサ（ｓｙｍｍｅｔｒｉｃ  ｍｕｌｔｉｐｒｏｃｅｓｓｏｒ：ＳＭＰ）システムとすることができる。例えば、データ処理システム１００は、ネットワーク内のサーバとして構成されるＩＢＭ  ＲＳ／６０００（登録商標）（ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレイションの製品）とすることができる。あるいはまた、単一プロセッサ・システムを用いることができる。また、システム・バス１０６には、複数のローカル・メモリ１６０〜１６３とのインターフェースを与えるメモリ・コントローラ／キャッシュ１０８が接続されている。Ｉ／Ｏバス・ブリッジ１１０は、システム・バス１０６に接続され、Ｉ／Ｏバス１１２とのインターフェースを与える。メモリ・コントローラ／キャッシュ１０８とＩ／Ｏバス・ブリッジ１１０は、図に示されているように、統合することができる。
【００１１】
データ処理システム１００は、論理的にパーティション化されたデータ処理システムである。したがって、データ処理システム１００は、同時に動作する複数の異機種オペレーティング・システム（または単一オペレーティング・システムの複数のインスタンス）を有することができる。これらの複数のオペレーティング・システムのそれぞれは、その内部で実行される多数のソフトウエア・プログラムを有することができる。データ処理システム１００は、別個のＰＣＩＩ／Ｏアダプタ１２０，１２１，１２８，１２９，１３６、グラフィック・アダプタ１４８およびハード・ディスク・アダプタ１４９を別個の論理パーティションに割り当てることができるように論理的にパーティション化されている。この場合、グラフィック・アダプタ１４８は、図示しないディスプレイ装置の接続部を与え、一方、ハード・ディスク・アダプタ１４９は、ハード・ディスク１５０の接続部を与え、ハード・ディスク１５０を制御する。
【００１２】
したがって、例えば、データ処理システム１００が、３つの論理区間Ｐ１，Ｐ２，Ｐ３に分割されているとすると、各ＰＣＩＩ／Ｏアダプタ１２０，１２１，１２８，１２９，１３６、グラフィック・アダプタ１４８、ハード・ディスク・アダプタ１４９、各ホスト・プロセッサ１０１〜１０４および各ローカル・メモリ１６０〜１６３は、３つのパーティションの内の１つに割り当てられる。例えば、プロセッサ１０１、ローカル・メモリ１６０およびＰＣＩＩ／Ｏアダプタ１２０，１２８，１２９は、論理パーティションＰ１に割り当てることができ、プロセッサ１０２，１０３、ローカル・メモリ１６１およびＰＣＩＩ／Ｏアダプタ１２１，１３６は、論理パーティションＰ２に割り当てることができ、プロセッサ１０４、ローカルメモリ１６２，１６３、グラフィック・アダプタ１４８およびハード・ディスク・アダプタ１４９は、論理パーティションＰ３に割り当てることができる。
【００１３】
データ処理システム１００内で実行される各オペレーティング・システムは、別個の論理パーティションに割り当てられる。したがって、データ処理システム１００内で実行される各オペレーティング・システムは、論理パーティション内にある入出力装置のみにアクセスすることができる。したがって、例えば、拡張対話式エグゼクティブ（Ａｄｖａｎｃｅｄ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｅｘｅｃｕｔｉｖｅ：ＡＩＸ）オペレーティング・システムの第１のインスタンスは、パーティションＰ１内で実行でき、ＡＩＸオペレーティング・システムの第２のインスタンス（イメージ）は、パーティションＰ２内で実行でき、リナックス・オペレーティング・システムは、パーティションＰ３内で実行できる。
【００１４】
Ｉ／Ｏバス１１２に接続されたＰＣＩホスト・ブリッジ１１４は、ＰＣＩバス１１５とのインターフェースを与える。多数のＰＣＩＩ／Ｏアダプタ１２０，１２１は、ＰＣＩ−ｔｏ−ＰＣＩブリッジ１１６、ＰＣＩバス１１８、ＰＣＩバス１１９、Ｉ／Ｏスロット１７０およびＩ／Ｏスロット１７１を介してＰＣＩバス１１５に接続できる。ＰＣＩ−ｔｏ−ＰＣＩブリッジ１１６は、ＰＣＩバス１１８およびＰＣＩバス１１９とのインターフェースを与える。各ＰＣＩＩ／Ｏアダプタ１２０，１２１は、Ｉ／Ｏスロット１７０，１７１にそれぞれ装着される。一般的なＰＣＩバス実装は、４個から８個のアダプタ（すなわち、アドイン・コネクタのための拡張スロット）をサポートする。各ＰＣＩＩ／Ｏアダプタ１２０，１２１は、データ処理システム１００と、入出力装置、例えばデータ処理システム１００のクライアントである他のネットワーク・コンピュータとの間のインターフェースを与える。
【００１５】
追加のＰＣＩホスト・ブリッジ１２２は、追加のＰＣＩバス１２３のためのインターフェースを与える。ＰＣＩバス１２３は、多数のＰＣＩＩ／Ｏアダプタ１２８，１２９に接続される。ＰＣＩＩ／Ｏアダプタ１２８，１２９は、ＰＣＩ−ｔｏ−ＰＣＩブリッジ１２４、ＰＣＩバス１２６、ＰＣＩバス１２７、Ｉ／Ｏスロット１７２およびＩ／Ｏスロット１７３を介してＰＣＩバス１２３へ接続できる。ＰＣＩ−ｔｏ−ＰＣＩブリッジ１２４は、ＰＣＩバス１２６とＰＣＩバス１２７との間のインターフェースを与える。各ＰＣＩＩ／Ｏアダプタ１２８，１２９は、Ｉ／Ｏスロット１７２，１７３にそれぞれ装着される。このようにして、追加の入出力装置、例えばモデムまたはネットワーク・アダプタは、各ＰＣＩＩ／Ｏアダプタ１２８，１２９を介してサポートできる。このようにして、データ処理システム１００は、複数のネットワーク・コンピュータへの接続を可能にする。
【００１６】
Ｉ／Ｏスロット１７４に挿入された、メモリ・マップ・グラフィックアダプタ１４８は、ＰＣＩバス１４４、ＰＣＩ−ｔｏ−ＰＣＩブリッジ１４２、ＰＣＩバス１４１およびＰＣＩホスト・ブリッジ１４０を介してＩ／Ｏバス１１２に接続できる。ハード・ディスク・アダプタ１４９は、ＰＣＩバス１４５に接続されるＩ／Ｏスロット１７５に装着できる。順に、このＰＣＩバス１４５は、ＰＣＩ−ｔｏ−ＰＣＩブリッジ１４２に接続され、ＰＣＩ−ｔｏ−ＰＣＩブリッジ１４２は、ＰＣＩバス１４１によってＰＣＩホスト・ブリッジ１４０に接続される。
【００１７】
ＰＣＩホスト・ブリッジ１３０は、ＰＣＩバス１３１のためのインターフェースを与え、Ｉ／Ｏバス１１２に接続する。ＰＣＩＩ／Ｏアダプタ１３６は、Ｉ／Ｏスロット１７６に接続され、Ｉ／Ｏスロット１７６は、ＰＣＩバス１３３によってＰＣＩ−ｔｏ−ＰＣＩブリッジ１３２に接続される。ＰＣＩ−ｔｏ−ＰＣＩブリッジ１３２は、ＰＣＩバス１３１に接続される。このＰＣＩバスは、またＰＣＩホスト・ブリッジ１３０を、サービス・プロセッサ・メールボックス・インターフェースおよびＩＳＡバス・アクセス・パススルー・ロジック１９４およびＰＣＩ−ｔｏ−ＰＣＩブリッジ１３２に接続する。サービス・プロセッサ・メールボックス・インターフェースおよびＩＳＡバス・アクセス・パススルー・ロジック１９４は、ＰＣＩ／ＩＳＡブリッジ１９３に向かうＰＣＩアクセスを転送する。ＮＶＲＡＭストレージ１９２は、ＩＳＡバス１９６に接続される。サービス・プロセッサ１３５は、ローカルＰＣＩバス１９５を介してサービス・プロセッサ・メールボックス・インターフェースおよびＩＳＡバス・アクセス・パススルー・ロジック１９４に接続されている。サービス・プロセッサ１３５は、また多数のＪＴＡＧ／Ｉ2 Ｃバス１３４を経由してプロセッサ１０１〜１０４に接続されている。ＪＴＡＧ／Ｉ2 Ｃバス１３４は、ＪＴＡＧ／スキャン・バス（ＩＥＥＥ  １１４９．１参照）とフィリップス（Ｐｈｉｌｌｉｐｓ）Ｉ2 Ｃバスとの組み合わせである。あるいはまた、ＪＴＡＧ／Ｉ2 Ｃバス１３４は、フィリップスＩ2 ＣバスまたはＪＴＡＧ／スキャン・バスのみで置き換えることができる。ホスト・プロセッサ１０１，１０２，１０３，１０４の全てのＳＰ−ＡＴＴＮ信号は、サービス・プロセッサの割り込み入力信号に一緒に接続される。サービス・プロセッサ１３５は、それ自体のローカル・メモリ１９１を有し、ハードウエア・ＯＰ−パネル１９０にアクセスする。
【００１８】
データ処理システム１００が最初に立ち上げられるとき、サービス・プロセッサ１３５は、ＪＴＡＧ／Ｉ2 Ｃバス１３４を使用し、システム（ホスト）プロセッサ１０１〜１０４、メモリ・コントローラ／キャッシュ１０８およびＩ／Ｏバス・ブリッジ１１０に問い合わせをする。このステップが完了すると、サービス・プロセッサ１３５は、データ処理システム１００についてのインベントリおよびトポロジ理解を有している。サービス・プロセッサ１３５は、またホスト・プロセッサ１０１〜１０４、メモリ・コントローラ／キャッシュ１０８およびＩ／Ｏバス・ブリッジ１１０に問い合わせをすることによって発見される全てのエレメントに、組み込み自己テスト（Ｂｕｉｌｔ−Ｉｎ−Ｓｅｌｆ−Ｔｅｓｔ：ＢＩＳＴ）、基本検証テスト（Ｂａｓｉｃ  Ａｓｓｕｒａｎｃｅ  Ｔｅｓｔ：ＢＡＴ）およびメモリ・テストを実行する。ＢＩＳＴ、ＢＡＴおよびメモリ・テストの際に検出される障害の全てのエラー情報が、サービス・プロセッサ１３５によって集められ、報告される。
【００１９】
ＢＩＳＴ、ＢＡＴおよびメモリ・テストの際に欠陥があることを分かったエレメントを取り出した後に、システム・リソースの意味のある／有効な構成が、依然として可能であるならば、データ処理システム１００は、ローカル（ホスト）メモリ１６０〜１６３へ実行可能コードをロードすることができる。サービス・プロセッサ１３５は、次に、ローカル・メモリ１６０〜１６３へロードされたコードの実行のためにホスト・プロセッサ１０１〜１０４を解放する。ホスト・プロセッサ１０１〜１０４が、データ処理システム１００内の各オペレーティング・システムからのコードを実行している間、サービス・プロセッサ１３５は、モニタおよびエラー報告のモードに入る。サービス・プロセッサ１３５によってモニタされる種類の項目には、例えば、冷却ファンの速度と動作、熱センサ、電源調整器、プロセッサ１０１〜１０４，ローカル・メモリ１６０〜１６３およびＩ／Ｏバス・ブリッジ１１０によって報告される回復可能および回復不可能エラーがある。サービス・プロセッサ１３５は、データ処理システム１００における全てのモニタ項目に関係するエラー情報を保管し、報告しなければならない。また、サービス・プロセッサ１３５は、エラーの種類および定められたしきい値に基づいて処理を行う。例えば、サービス・プロセッサ１３５は、プロセッサのキャッシュ・メモリの過剰な回復可能エラーに注目し、ハード障害の前兆であると決定することが可能である。この決定に基づき、サービス・プロセッサ１３５は、現在動作しているセッションと将来のイニシャル・プログラム・ロード（Ｉｎｉｔｉａｌ  Ｐｒｏｇｒａｍ  Ｌｏａｄ：ＩＰＬ）との際に、構成解除のリソースをマークすることが可能である。ＩＰＬは、また“ブート”または“ブートストラップ”と呼ばれることがある。
【００２０】
データ処理システム１００は、種々の市販のコンピュータ・システムを用いて構成できる。例えば、データ処理システム１００は、インターナショナル・ビジネス・マシーンズ・コーポレイションから入手可能なＩＢＭ（登録商標）ｅサーバ・ｉシリーズ・モデル８４０システムを用いて構成できる。このようなシステムは、これもまたインターナショナル・ビジネス・マシーンズ・コーポレイションから入手可能なＯＳ／４００オペレーティング・システムを用いて論理パーティション化することをサポートできる。
【００２１】
当業者は、図１に示されたハードウエアが種々変化できることを理解するであろう。例えば、他の周辺装置、例えば光学ディスク・ドライブ等もまた、図示されたハードウエアに追加してまたは置き換えて用いることができる。図示された例は、本発明に関して、構成的な制限を意味するものではない。
【００２２】
図２を参照すると、本発明を実現できる、代表的な論理パーティション化されたプラットフォームのブロック図が示されている。論理パーティション化されたプラットフォーム２００のハードウエアは、例えば図１のデータ処理システム１００のように構成できる。論理パーティション化されたプラットフォーム２００は、パーティション化されたハードウエア２３０、オペレーティング・システム２０２，２０４，２０６，２０８およびハイパーバイザ２１０を備える。オペレーティング・システム２０２，２０４，２０６，２０８は、プラットフォーム２００で同時に動作する単一オペレーティング・システムの複数コピーまたは複数の異機種オペレーティング・システムとすることが可能である。これらのオペレーティング・システムは、ハイパーバイザとインターフェースするために設計されているＯＳ／４００を用いて構成できる。オペレーティング・システム２０２，２０４，２０６，２０８は、パーティション２０３，２０５，２０７，２０９に配置される。さらに、これらのパーティションは、また、ファームウエア・ローダ２１１，２１３，２１５，２１７を備える。パーティション２０３，２０５，２０７，２０９がインスタンス化されると、オープン・ファームウエアのコピーが、ハイパーバイザのパーティション・マネージャによって各パーティションにロードされる。パーティションに関連付けられた、または割り当てられたプロセッサは、次に、パーティションのメモリにディスパッチされ、パーティション・ファームウエアを実行する。
【００２３】
パーティション化されたハードウエア２３０は、複数のプロセッサ２３２〜２３８、複数のシステム・メモリ装置２４０〜２４６、複数の入出力（Ｉ／Ｏ）アダプタ２４８〜２６２およびストレージ装置２７０を備える。また、パーティション化されたハードウエア２３０は、種々のサービス、例えばパーティションでのエラー処理、を提供するために用いることができるサービス・プロセッサ２９０を備える。プロセッサ２３２〜２３８、メモリ装置２４０〜２４６、ＮＶＲＡＭストレージ２９８および入出力（Ｉ／Ｏ）アダプタ２４８〜２６２のそれぞれは、オペレーティング・システム２０２，２０４，２０６，２０８の１つにそれぞれ対応する、論理パーティション化されたプラットフォーム２００内の複数パーティションの１つに割り当てが可能である。
【００２４】
ハイパーバイザ（パーティション管理ファームウエア）２１０は、パーティション２０３，２０５，２０７，２０９のための多数の機能とサービスを実行して、論理パーティション化されたプラットフォーム２００のパーティションを作り出し、実施する。ハイパーバイザ２１０は、基礎ハードウエアと同一の、ファームウエアで構成される仮想計算機である。ハイパーバイザ・ソフトウエアは、インターナショナル・ビジネス・マシーンズ・コーポレイションから入手可能である。ファームウエアは、電気的パワー無しに内容を保持するメモリ・チップ、例えば、読み取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的消去プログラマブルＲＯＭ（ＥＥＰＲＯＭ）および不揮発性ランダム・アクセス・メモリ（不揮発性ＲＡＭ）に格納されたソフトウエアである。したがって、ハイパーバイザ２１０は、論理パーティション化されたプラットフォーム２００の全てのハードウエア・リソースをバーチャライズすることによって、独立したオペレーティング・システム２０２，２０４，２０６，２０８のイメージの同時実行を可能にする。
【００２５】
本発明は、論理パーティション・データ処理システム内の別個の論理パーティションで実行される別個のオペレーティング・システムによってエラーまたはイベントの処理を管理する方法、コンピュータ・プログラムおよびデータ処理システムに関する。本発明の好適な実施の形態において、ローカル・パーティションの中でオペレーティング・システムの実行が開始されると、オペレーティング・システム、すなわちオペレーティング・システムをロードするための適切なロード・プログラムは、特定のエラーまたはイベントを処理するためのオペレーティング・システムの機能を管理ソフトウエア（すなわちハイパーバイザ）を用いて登録する。管理ソフトウエアは、次に、その情報を用い、エラーまたはイベントが管理ソフトウエアによってオペレーティング・システムに関してどのように扱われるべきかを判別する。
【００２６】
図３は、本発明の好適な実施の形態に従って、管理ソフトウエアを用いて特定のエラーまたはイベントを処理する機能を登録するオペレーティング・システムのプロセスを示すブロック図である。オペレーティング・システム３００は、開始されており、論理パーティション３０２で実行されている。オペレーティング・システム３００は、オペレーティング・システム３００が処理できる１セットのエラーおよび／またはイベントを説明する情報３０４を送ることによって管理ソフトウエア３０６を用いて機能を登録する。１セットは、０以上のアイテムの集まりを意味する。この場合、１セット内の項目は、オペレーティング・システム３００が処理できるエラーまたはイベントの識別である。エラーおよびイベントの例には、バス・エラー，セクタ・ルック・アサイド・バッファ・エラー（ｓｅｃｔｏｒ  ｌｏｏｋ  ａｓｉｄｅ  ｂｕｆｆｅｒ  ｅｒｒｏｒｓ），トランスレーション・ルック・アサイド・バッファ・エラー（ｔｒａｎｓｌａｔｉｏｎ  ｌｏｏｋ  ａｓｉｄｅ  ｂｕｆｆｅｒ  ｅｒｒｏｒｓ），入出力エラー，ユーザー入力，有用な新しいメッセージまたはコミュニケーション等が含まれるが、これらに制限されるものではない。図では、これらのエラーおよびイベントは、頭文字で示されている。
【００２７】
管理ソフトウエア３０６は、メモリ中のデータ構造３１０に情報３０８を格納する。データ構造３１０は、データ処理システムのいずれかの論理パーティションで実行されるオペレーティング・システムに発せられる、どのエラーまたはイベントが処理できるか、管理ソフトウエア３０６が識別できるようにする。
【００２８】
図４は、オペレーティング・システムが、エラーまたはイベントを処理することが可能であるときに、本発明の好適な実施の形態において、エラーまたはイベントを管理するプロセスを示すブロック図である。ハードウエア・コンポーネント４００は、管理ソフトウエア３０６が認識するエラーまたはイベント４０２を知る。イベント４０２が、パーティション３０２で実行されるオペレーティング・システム３００に影響を与えることを判別する管理ソフトウエア３０６は、データ構造３１０に照会４０４を行い、オペレーティング・システム３００がエラーまたはイベントを処理することが可能であるかどうかを判別する。この場合、オペレーティング・システム３００は、エラーまたはイベントを処理することが可能なので、照会４０４は、肯定的な結果４０６で応じられる。管理ソフトウエア３０６は、この肯定的な結果に応じて、オペレーティング・システム３００にエラーまたはイベントの通知４０８を行う。オペレーティング・システム３００は、次に、プログラミングに従って、エラーまたはイベントに対して適切な処理を行うことができる。
【００２９】
図５は、オペレーティング・システムが、エラーまたはイベントを処理することが不可能であるときに、本発明の好適な実施の形態において、エラーまたはイベントを管理するプロセスを示すブロック図である。ハードウエア・コンポーネント４００は、管理ソフトウエア３０６が認識するエラーまたはイベント５００を知る。管理ソフトウエア３０６は、データ構造３１０に照会５０２を行い、オペレーティング・システム３００がエラーまたはイベントを処理することが可能であるかどうかを判別する。このとき、オペレーティング・システム３００は、発生した特定のエラーまたはイベントを処理することが不可能なので、否定的な結果５０４が返される。管理ソフトウエア３０６は、そのとき、エラーまたはイベントを処理する責任を負わなければならない。管理ソフトウエア３０６は、オペレーティング・システム３００に適切な処理を行うこと命ずることによってこれを行う。例えば、エラーの場合、管理ソフトウエア３０６は、オペレーティング・システム３００に致命的エラーを伝えることによって、オペレーティング・システム３００にインスタンスの終了５０６を行うことを命ずることができる。言い換えれば、管理ソフトウエア３０６は、オペレーティング・システム３００に安全なシャット・ダウンを行うことを命ずることができる。オペレーティング・システム３００が、管理ソフトウエア３０６によって行うことを命じられたことが最後まで完全に実行できないならば、管理ソフトウエア３０６は、更なるエラーを避けるためにパーティション３０２を強制的に終了することができる。
【００３０】
図６は、本発明の好適な実施の形態に従って、オペレーティング・システムから管理機能を受け取るプロセスを説明するフローチャートである。まず、管理ソフトウエアは、特定のエラーまたはイベントを処理するオペレーティング・システムの機能を受け取る（ステップ６００）。管理ソフトウエアは、次に、これらの機能をメモリ中のデータ構造に書き込む（ステップ６０２）。次に、管理ソフトウエアは、発生するエラーまたはイベントを待つ（ステップ６０３）。
【００３１】
図７は、本発明の好適な実施の形態に従って、論理パーティションで実行されるオペレーティング・システムに関して、イベントを管理するプロセスを説明するフローチャートである。まず、管理ソフトウエアは、イベント（エラーでも良い）を識別する（ステップ７００）。次に、管理ソフトウエアは、特定のパーティションに常駐するオペレーティング・システムがそのイベントをサポートするかどうかを判別する（ステップ７０２）。言い換えれば、管理ソフトウエアは、そのオペレーティング・システムがそのイベントを処理することが可能かどうかを判別する。もし、そうであれば、管理ソフトウエアは、オペレーティング・システムによって処理することができるように、オペレーティング・システムにイベントを通知し（ステップ７０４）、そしてプロセスは終了する。もしそのプロセスがそのイベントをサポートしないならば、管理ソフトウエアは、オペレーティング・システムに適切な処理、例えば安全なシャットダウンを行うことを命じる（ステップ７０６）。次に、管理ソフトウエアは、オペレーティング・システムが命じられたタスクを完全に実行したかどうかを判別する（ステップ７０８）。もし、完全に実行していれば、そのプロセスは、単に終了する。しかしながら、完全に実行していないならば、管理ソフトウエアは、内部で実行されているオペレーティング・システムおよび／またはパーティションの実行を最終的に終了する（ステップ７１０）。
【００３２】
本発明は、充分に機能するデータ処理システムについて記述したが、本発明のプロセスが、命令または他の機能記述要素からなるコンピュータ読み取り可能媒体の形態および種々の他の形態で配布できること、および本発明が、配布を行うために実際に用いられる信号保持媒体の特定のタイプに関係なく等しく適用可能であること、を当業者が理解するであろうことに注目することは重要である。コンピュータ読み取り可能媒体の例には、記録可能型媒体、例えばフロッピー（登録商標）ディスク，ハード・ディスク，ＲＡＭ，ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ、および伝送型媒体、例えば高周波および光波伝送の伝送形態を用いるデジタルおよびアナログ通信リンク，有線または無線通信リンクが含まれる。コンピュータ読み取り可能媒体は、特定のデータ処理システムにおいて実際の使用のためにデコードされる、コード化されたフォーマットの形式を取ることができる。機能記述要素は、機械に機能を与える情報である。機能記述要素には、コンピュータ・プログラム，命令，規則，事実，計算可能関数の定義，オブジェクトおよびデータ構造が含まれるが、これらに制限されるものではない。
【００３３】
本発明の記述は、説明と記述のために提示されており、開示された形態の発明に制限されることを意図しない。多くの変更と変形が可能であることは当業者には明らかであろう。実施例は、本発明の原理および実際的な応用を最も良く説明し、意図された特定の使用に適しているような種々の変更を有する種々の実施例の発明を当業者に理解できるようにするために選択され、記述されている。
【００３４】
まとめとして、本発明の構成に関して以下の事項を開示する。
（１）オペレーティング・システムが処理できる１セットのイベントを識別する情報をオペレーティング・システムから受け取り、
イベントの発生に応じて、イベントが前記１セットのイベントに含まれるかどうかを判別し、
イベントが前記１セットのイベントに含まれているという判別に応じて、オペレーティング・システムにそのイベントを通知し、
イベントが前記１セットのイベントに含まれていないという判別に応じて、オペレーティング・システムにオペレーションを行うことを命令する方法。
（２）前記イベントは、エラーである上記（１）に記載の方法。
（３）前記エラーは、ハードウエア・コンポーネントに発生したエラーである上記（２）に記載の方法。
（４）前記オペレーションは、オペレーティング・システムの実行を終了することである上記（１）に記載の方法。
（５）前記オペレーティング・システムは、データ処理システムの論理パーティション内で実行され、オペレーティング・システムの実行を終了することは、論理パーティションを終了することを含む上記（４）に記載の方法。
（６）前記オペレーションは、致命的エラーを処理することである上記（１）に記載の方法。
（７）前記オペレーティング・システムにオペレーションを行うことを命令することに応じて、前記オペレーティング・システムが、オペレーションを行ったかどうかを判別し、
前記オペレーティング・システムがオペレーションを行うことができなかったという判別に応じて、前記オペレーティング・システムの実行を終了する上記（１）に記載の方法。
（８）前記オペレーティング・システムは、データ処理システムの論理パーティション内で実行され、オペレーティング・システムの実行を終了することは、論理パーティションを終了することを含む上記（７）に記載の方法。
（９）データ処理システムの論理パーティション内でオペレーティング・システムを開始し、
前記オペレーティング・システムによって処理できる１セットのエラー状態をデータ処理システム内で実行を行う管理ソフトウエアを用いて登録する方法。
（１０）前記管理ソフトウエアは、データ処理システムのファームウエアからなる上記（９）に記載の方法。
（１１）前記管理ソフトウエアは、前記論理パーティションの外部にある環境で実行される上記（９）に記載の方法。
（１２）機能記述要素からなるコンピューター読み取り可能媒体内のコンピュータ・プログラムであって、
コンピュータによって実行されたときに、
オペレーティング・システムが処理できる１セットのイベントを識別する情報をオペレーティング・システムから受け取り、
イベントの発生に応じて、イベントが前記１セットのイベントに含まれるかどうかを判別し、
イベントが前記１セットのイベントに含まれているという判別に応じて、オペレーティング・システムにそのイベントを通知し、
イベントが前記１セットのイベントに含まれていないという判別に応じて、オペレーティング・システムにオペレーションを行うことを命令する、ことを含む処理をコンピュータが行うことを可能にするコンピュータ・プログラム。
（１３）前記イベントは、エラーである上記（１２）に記載のコンピュータ・プログラム。
（１４）前記エラーは、ハードウエア・コンポーネントに発生したエラーである上記（１３）に記載のコンピュータ・プログラム。
（１５）前記オペレーションは、オペレーティング・システムの実行を終了することである上記（１２）に記載のコンピュータ・プログラム。
（１６）前記オペレーティング・システムは、データ処理システムの論理パーティション内で実行され、オペレーティング・システムの実行を終了することは、論理パーティションを終了することを含む上記（１５）に記載のコンピュータ・プログラム。
（１７）前記オペレーションは、致命的エラーを処理することである上記（１２）に記載のコンピュータ・プログラム。
（１８）コンピュータによって実行されたときに、
前記オペレーティング・システムにオペレーションを行うことを命令することに応じて、前記オペレーティング・システムが、オペレーションを行ったかどうかを判別し、
前記オペレーティング・システムがオペレーションを行うことができなかったという判別に応じて、前記オペレーティング・システムの実行を終了する、ことを含む追加の処理をコンピュータが行うことを可能にする追加の機能記述要素からなる上記（１２）に記載のコンピュータ・プログラム。
（１９）前記オペレーティング・システムは、データ処理システムの論理パーティション内で実行され、オペレーティング・システムの実行を終了することは、論理パーティションを終了することを含む上記（１８）に記載のコンピュータ・プログラム。
（２０）機能記述要素を含むコンピュータ読み取り可能媒体内のコンピュータ・プログラムであって、
コンピュータによって実行されたときに、
データ処理システムの論理パーティション内でオペレーティング・システムを開始し、
前記オペレーティング・システムによって処理できる１セットのエラー状態をデータ処理システム内で実行を行う管理ソフトウエアを用いて登録する、ことを含む処理をコンピュータが行うことを可能にするコンピュータ・プログラム。
（２１）前記機能記述要素は、オペレーティング・システムの一部を形成する上記（２０）に記載のコンピュータ・プログラム。
（２２）コンピュータによって実行されたときに、
ストレージ装置からオペレーティング・システムをロードすることを含む追加の処理をコンピュータが行うことを可能にする追加の機能記述要素からなる上記（２０）に記載のコンピュータ・プログラム。
（２３）少なくとも１つのプロセッサを有する処理装置と、
処理装置と通信するメモリと、
メモリに格納されたファームウエアとを備え、
処理装置がファームウエアを実行して、
オペレーティング・システムが処理できる１セットのイベントを識別する情報を前記オペレーティング・システムから受け取り、
イベントの発生に応じて、イベントが前記１セットのイベントに含まれるかどうかを判別し、
イベントが前記１セットのイベントに含まれているという判別に応じて、オペレーティング・システムにイベントを通知し、
イベントが前記１セットのイベントに含まれていないという判別に応じて、オペレーティング・システムにオペレーションを行うことを命令する、ことを含む処理を行うデータ処理システム。
（２４）前記イベントは、エラーである上記（２３）に記載のデータ処理システム。
（２５）前記エラーは、ハードウエア・コンポーネントに発生したエラーである上記（２４）に記載のデータ処理システム。
（２６）前記オペレーションは、オペレーティング・システムの実行を終了することである上記（２３）に記載のデータ処理システム。
（２７）前記オペレーティング・システムは、データ処理システムの論理パーティション内で実行され、オペレーティング・システムの実行を終了することは、論理パーティションを終了することを含む上記（２６）に記載のデータ処理システム。
（２８）前記オペレーションは、致命的エラーを処理することである上記（２３）に記載のデータ処理システム。
（２９）前記処理装置がファームウエアを実行して、
前記オペレーティング・システムにオペレーションを行うことを命令することに応じて、前記オペレーティング・システムが、オペレーションを行ったかどうかを判別し、
前記オペレーティング・システムがオペレーションを行うことができなかったという判別に応じて、前記オペレーティング・システムの実行を終了する、追加の処理を行う上記（２３）に記載のデータ処理システム。
（３０）前記オペレーティング・システムは、データ処理システムの論理パーティション内で実行され、オペレーティング・システムの実行を終了することは、論理パーティションを終了することを含む上記（２９）に記載のデータ処理システム。
（３１）オペレーティング・システムが処理できる１セットのイベントを識別する情報をオペレーティング・システムから受け取る手段と、
イベントの発生に応じて、イベントが前記１セットのイベントに含まれるかどうかを判別する手段と、
イベントが前記１セットのイベントに含まれているという判別に応じて、オペレーティング・システムにイベントを通知する手段と、
イベントが前記１セットのイベントに含まれていないという判別に応じて、オペレーティング・システムにオペレーションを行うことを命令する手段と、
を有するデータ処理システム。
（３２）データ処理システムの論理パーティション内でオペレーティング・システムを開始する手段と、
前記オペレーティング・システムによって処理できる１セットのエラー状態をデータ処理システム内で実行を行う管理ソフトウエアを用いて登録する手段と、を有するデータ処理システム。
【図面の簡単な説明】
【図１】本発明を実現できる、データ処理システムのブロック図である。
【図２】本発明を実現できる、代表的な論理パーティション化されたプラットフォームのブロック図である。
【図３】本発明の好適な実施の形態に従って、管理ソフトウエアを用いて特定のエラーまたはイベントを処理する機能を登録するオペレーティング・システムのプロセスを示すブロック図である。
【図４】オペレーティング・システムが、エラーまたはイベントを処理することが可能であるときに、本発明の好適な実施の形態において、エラーまたはイベントを管理するプロセスを示すブロック図である。
【図５】オペレーティング・システムが、エラーまたはイベントを処理することが不可能であるときに、本発明の好適な実施の形態において、エラーまたはイベントを管理するプロセスを示すブロック図である。
【図６】本発明の好適な実施の形態に従って、オペレーティング・システムから管理機能を受け取るプロセスを説明するフローチャートである。
【図７】本発明の好適な実施の形態に従って、論理パーティションで実行されるオペレーティング・システムに関して、イベントを管理するプロセスを説明するフローチャートである。
【符号の説明】
１００  データ処理システム
１０１〜１０４，２３２，２３４，２３６，２３８  プロセッサ
１０６  システム・バス
１０８  メモリ・コントローラ／キャッシュ
１１０  Ｉ／Ｏバス・ブリッジ
１１２  Ｉ／Ｏバス
１１４，１２２，１３０，１４０  ＰＣＩホスト・ブリッジ
１１５，１１８，１１９，１２３，１２６，１２７，１３１，１３３，１４１，１４４，１４５  ＰＣＩバス
１１６，１２４，１３２，１４２  ＰＣＩ−ｔｏ−ＰＣＩ
１２０，１２１，１２８，１２９，１３６  ＰＣＩＩ／Ｏアダプタ
１３４  ＪＴＡＧ／Ｉ2 Ｃバス
１３５，２９０  サービス・プロセッサ
１４８  グラフィック・アダプタ
１４９  ハード・ディスク・アダプタ
１５０  ハード・ディスク
１６０〜１６３  ローカル・メモリ
１７０〜１７６  Ｉ／Ｏスロット
１９０  ハードウエア・ＯＰ−パネル
１９１  メモリ
１９２，２９８  ＮＶＲＡＭストレージ
１９３  ＰＣＩ／ＩＳＡブリッジ
１９４  サービス・プロセッサ・メールボックス・インターフェースおよびＩＳＡバス・アクセス・パススルー・ロジック
１９５  ローカルＰＣＩバス
１９６  ＩＳＡバス
２００  論理パーティション化されたプラットフォーム
２０２，２０４，２０６，２０８，３００  オペレーティング・システム
２０３，２０５，２０７，２０９，３０２  パーティション
２１０  ハイパーバイザ
２１１，２１３，２１５，２１７  ファームウエア・ローダ
２３０  パーティション化されたハードウエア
２４０，２４２，２４４，２４６  メモリ装置
２４８，２５０，２５２，２５４，２５６，２５８，２６０，２６２  入出力（Ｉ／Ｏ）アダプタ
２７０  ストレージ装置
３０４，３０８  情報
３０６  管理ソフトウエア
３１０  データ構造
４００  ハードウエア・コンポーネント
４０２，５００  エラーまたはイベント
４０４，５０２  照会
４０６，５０４  結果
４０８  通知
５０６  終了
６００，６０２，６０４  処理ステップ
７００，７０２，７０４，７０６，７０８，７１０  処理ステップ
【図１】
0003910554.tif 000002
【図２】
0003910554.tif 000003
【図３】
0003910554.tif 000004
【図４】
0003910554.tif 000005
【図５】
0003910554.tif 000006
【図６】
0003910554.tif 000007
【図７】
0003910554.tif 000008