(57)【要約】【課題】  区画と区画マネージャとの間に柔軟かつ適合可能な通信インターフェースを使用する、論理的に区画化されたコンピュータ、プログラム記録媒体、および方法を提供することによって、多種多彩な状況にわたっての、状態変更操作などの区画管理操作の最適な処理を可能とすること。【解決手段】  特に、区画管理操作を実行するための要求を伴って、区画マネージャによる当該区画管理操作の実施に関連して非同期通知が生成または抑制されるべきであるかどうかを区画が示すことが可能である。その結果、そうした操作について区画によってなされる当該要求の中の指示に基づき、区画管理操作の実施に関連して非同期通知が選択的に生成される。【選択図】      図１
2004326774.tif 000002
【特許請求の範囲】
【請求項１】
区画マネージャによって管理される複数の区画を含むタイプの論理的に区画化されたコンピュータに常駐するリソースの状態を変更する方法であって、
前記複数の区画の中の第１の区画において、前記論理的に区画化されたコンピュータに常駐するリソースに関しての状態変更操作を実行するための要求を生成するステップであって、前記要求が、前記リソースに関する前記状態変更操作の完了時に際して非同期通知を生成すべきであるかどうかを示す１つの相関トークンを含むステップと、
前記要求に応答して、前記区画マネージャ内においてで前記状態変更操作の実行を試みるステップであって、
前記要求の受取りに応答して、前記第１の区画に同期通知を戻すステップであって、前期同期通知が、前記状態変更操作に関して、無効な要求、進行中、成功の完了、および不成功の完了、の各ステータスのうちの１つを示すステップと、
前記同期通知が生成されたときに、前記状態変更操作が依然として進行中である場合であって、非同期通知を生成されるべきであると前記相関トークンが示す場合に限り、前記状態変更操作の完了時に際して、前記第１の区画に非同期通知を戻すステップであって、前記非同期通知が、前記相関トークンを識別することで前記非同期通知を前記要求と相関させるステップと、
を含むステップと、
前記第１の区画において、非同期通知を生成すべきでないことを前記相関トークンが示す場合に、前記状態変更操作を実行するために追加の要求を生成することによって、それに応答して戻された同期通知が、前記状態変更操作に関して進行中ステータスを示さなくなるまで、前記区画マネージャを定期的にポーリングするステップと、
を有する方法。
【請求項２】
論理的に区画化されたコンピュータにおいて、区画管理操作を実行する方法であって、
区画管理操作に関する要求を、１つの区画から受信するステップであって、前記要求が、前記区画管理操作の完了時に際して非同期通知が生成されるべきであるかどうかを示すステップと、
前記要求に応答して前記区画管理操作を実行するステップであって、前記要求によってそうするように示されている場合は、非同期通知を選択的に生成するステップ、を含むステップと、
を有する方法。
【請求項３】
前記要求を受信するステップと前記区画管理操作を実行するステップとが、前記論理的に区画化されたコンピュータ内の複数の区画がアクセス可能な区画マネージャによって実行される、請求項２に記載の方法。
【請求項４】
前記区画管理操作を実行するステップが、前記要求によってそうするように指示されている場合に前記非同期通知の生成を抑制するステップ、をさらに含む、請求項２に記載の方法。
【請求項５】
前記区画管理操作を実行した後、前記区画管理操作の完了に関してポーリングするために、１つの区画から第２の要求を受信するステップ、をさらに有する、請求項４に記載の方法。
【請求項６】
前記第２の要求が、前記区画管理操作に関する他の要求を有しており、また、前記区画管理操作が完了したかどうかを示す通知を生成することによって、前記第２の要求を処理するステップ、をさらに有する、請求項５に記載の方法。
【請求項７】
前記第２の要求が、前記第１の要求と同じパラメータを有する、請求項６に記載の方法。
【請求項８】
前記区画管理操作が完了したことを示す通知が生成されるまで、前記区画管理操作に関する追加の要求を定期的に生成するステップ、をさらに有する、請求項６に記載の方法。
【請求項９】
前記区画管理操作を実行するステップが、それに応答して同期通知を生成するステップをさらに含む、請求項２に記載の方法。
【請求項１０】
前記区画管理操作を実行するステップが、前記要求が同期的に解決できるかどうかを判定するステップと、前記要求が同期的に解決できる場合には、前記同期通知の中でそのように示し、および前記非同期通知の生成を抑制するステップと、をさらに含む、請求項９に記載の方法。
【請求項１１】
前記同期通知が、前記区画管理操作が完了したこと、前記区画管理操作が進行中であること、および前記区画管理操作が開始できなかったこと、のうちの少なくとも１つを示す、請求項９に記載の方法。
【請求項１２】
前記同期通知が、前記区画管理操作が完了した場合に、前記区画管理操作が成功したか失敗したか、をさらに示す、請求項１０に記載の方法。
【請求項１３】
前記要求が、１つの相関トークンを含む、請求項２に記載の方法。
【請求項１４】
前記相関トークンが、前記要求に関して非同期通知を生成すべきかどうかを示す、請求項１３に記載の方法。
【請求項１５】
前記非同期通知を選択的に生成するステップが、前記相関トークンが非ゼロの値を有する場合に前記非同期通知を生成するステップと、前記相関トークンがゼロの値を有する場合に前記非同期通知の生成を抑制するステップとを含む、請求項１４に記載の方法。
【請求項１６】
前記非同期通知を生成するステップが、前記非同期通知内の前記相関トークンを識別し、その結果、前記区画が前記非同期通知を前記要求に関連付けることができるようにするステップを含む、請求項１３に記載の方法。
【請求項１７】
前記相関トークンが、前記区画内での処理の完了を求める１つの関数呼出し、を有する前記区画内の１つのオブジェクトと同一となる、請求項１３に記載の方法。
【請求項１８】
前記非同期通知を生成するステップが、１つのイベントを前記区画内の待ち行列に入れるステップであって、前記イベントが前記相関トークンを含んでいるステップ、を有する、請求項１７に記載の方法。
【請求項１９】
前記オブジェクト上で前記関数呼出しを発動することによって、前記区画内で前記イベントを処理して、前記区画内での前記区画管理操作の処理を完了するステップ、をさらに有する、請求項１８に記載の方法。
【請求項２０】
前記非同期通知が、前記相関トークンと、前記区画管理操作に関する完了ステータスと、前記区画管理操作を行うことに関連して生成されるデータとを含む、請求項１３に記載の方法。
【請求項２１】
前記区画管理操作が、前記論理的に区画化されたコンピュータ内の常駐リソース上の状態変更を有し、また、前記要求が、更新されるべきリソースに対しその状態を、アクティブ状態、使用不能状態、および分離状態のうちの少なくとも１つに更新するように要求する、請求項２に記載の方法。
【請求項２２】
メモリと、
前記メモリに結合された少なくとも１つのプロセッサと、
前記論理的に区画化されたコンピュータ内の常駐区画からの要求に応答して、区画管理操作を実行するために前記少なくとも１つのプロセッサによって実行されるように構成されたプログラム・コードであって、前記要求が、前記区画管理操作の完了時に際して非同期通知を生成すべきであるかどうかを示す、プログラム・コードであって、また、前記要求によってそうするように示されている場合には前記区画管理操作の実行に関連して非同期通知を選択的に生成する、ように構成されたプログラム・コードと、
を有する、論理的に区画化されたコンピュータ。
【請求項２３】
区画マネージャによって管理される複数の区画であって、前記プログラム・コードが前記区画マネージャ内に配置される、複数の区画、をさらに有する、請求項２２に記載の論理的に区画化されたコンピュータ。
【請求項２４】
前記プログラム・コードが、前記要求によってそうするように示される場合には前記非同期通知の生成を抑制する、ように構成された、請求項２２に記載の論理的に区画化されたコンピュータ。
【請求項２５】
前記プログラム・コードが、前記区画管理操作の実行後前記区画管理操作の完了に関してポーリングするために前記区画から第２の要求を受け取る、ようにさらに構成され、また、前記第２の要求は、前記第１の要求と同じパラメータを有する、前記区画管理操作に関する他の要求を有し、さらに、前記プログラム・コードが、前記区画管理操作が完了したかどうかを示す通知を生成することによって前記第２の要求を処理する、ようにさらに構成された、請求項２４に記載の論理的に区画化されたコンピュータ。
【請求項２６】
前記プログラム・コードが、前記区画管理操作が完了したことを示す通知が生成されるまで前記区画管理操作に関する追加の要求を定期的に生成する、ようにさらに構成された、請求項２４に記載の論理的に区画化されたコンピュータ。
【請求項２７】
前記プログラム・コードが、前記要求に応答して同期通知を生成する、ようにさらに構成された、請求項２２に記載の論理的に区画化されたコンピュータ。
【請求項２８】
前記プログラム・コードが、前記要求が同期的に解決できるかどうかを判定するように構成され、また、前記要求が同期的に解決できる場合には、前記同期通知の中でそのように示して前記非同期通知の生成を抑制するように構成された、請求項２７に記載の論理的に区画化されたコンピュータ。
【請求項２９】
前記同期通知が、前記区画管理操作が完了したこと、前記区画管理操作が進行中であること、および前記区画管理操作が開始できなかったこと、のうちの少なくとも１つを示す、請求項２７に記載の論理的に区画化されたコンピュータ。
【請求項３０】
前記要求が１つの相関トークンを含み、前記相関トークンは、前記要求に関して非同期通知を生成すべきかどうかを示す、請求項２２に記載の論理的に区画化されたコンピュータ。
【請求項３１】
前記プログラム・コードが、前記相関トークンが非ゼロの値を有する場合には前記非同期通知を生成することによって、また、前記相関トークンがゼロの値を有する場合には前記非同期通知の生成を抑制することによって、前記非同期通知を選択的に生成する、ように構成された、請求項３０に記載の論理的に区画化されたコンピュータ。
【請求項３２】
前記プログラム・コードが、前記区画が前記非同期通知を前記要求に関連付けることができるように前記非同期通知内の前記相関トークンをさらに識別することによって前記非同期通知を選択的に生成する、ように構成された、請求項３０に記載の論理的に区画化されたコンピュータ。
【請求項３３】
前記相関トークンが、前記区画内での処理の完了を求める関数呼出し、を有する前記区画内の１つのオブジェクトと同一となる、請求項３０に記載の論理的に区画化されたコンピュータ。
【請求項３４】
前記プログラム・コードが、１つのイベントを前記区画内の待ち行列に入れることによって前記非同期通知を生成する、ように構成され、前記イベントは前記相関トークンを含んでおり、また、前記プログラム・コードが、前記オブジェクト上で前記関数呼出しを発動することによって前記区画内で前記イベントを処理して前記区画内での前記区画管理操作の処理を完了できるようにする、ように構成された、請求項３３に記載の論理的に区画化されたコンピュータ。
【請求項３５】
前記非同期通知が、前記相関トークンと、前記区画管理操作に関する完了ステータスと、前記区画管理操作を行うことに関連して生成されるデータとを含む、請求項３０に記載の論理的に区画化されたコンピュータ。
【請求項３６】
前記区画管理操作が、前記論理的に区画化されたコンピュータ内の常駐リソース上の状態変更を有し、また、前記要求が、更新されるべきリソースに対して、その状態を、アクティブ状態、使用不能状態、および分離状態のうちの少なくとも１つに更新するように要求する、請求項２２に記載の論理的に区画化されたコンピュータ。
【請求項３７】
前記論理的に区画化されたコンピュータ内の常駐区画からの要求に応答して区画管理操作を実行する、ように構成されたプログラム・コードであって、前記要求が、前記区画管理操作の完了時に非同期通知を生成すべきであるかどうかを示す、プログラム・コードであって、また、前記要求によってそうするように示される場合には、前記区画管理操作の実行に関連して非同期通知を選択的に生成する、ように構成されたプログラム・コードと、
前記プログラム・コードを搬送する信号搬送媒体と、
を有する、プログラム記録媒体。
【請求項３８】
前記信号搬送媒体が、伝送媒体および記録可能媒体のうちの少なくとも１つを含む、請求項３９に記載のプログラム記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータおよびコンピュータ・ソフトウェアに関し、より詳細には、論理的に区画化されたコンピュータにおけるリソース状態変更などの区画管理操作を行う間の、区画マネージャと複数の区画との間の通信に関する。
【背景技術】
【０００２】
現代社会において、コンピュータへの依存度が高まりつつあることを考えると、コンピュータ技術は、需要の増加に後れを取ることのないように多くの最前線で前進していかなければならない。重要な研究開発努力の特定課題の１つが、並列性、すなわち複数タスクを並列に実施することである。
【０００３】
増加する並列処理を容易にするために、いくつかのコンピュータ・ソフトウェアおよびハードウェア技術が開発された。ソフトウェアの見地からすると、マルチスレッド・オペレーティング・システムおよびカーネルが開発されたが、これによってコンピュータ・プログラムは複数の「スレッド」内で同時に実行可能となり、その結果、複数のタスクを本質的に同時に実施することができるようになった。スレッドとは一般的に、プログラムの独立した実行パスを表す。たとえば、電子商取引のコンピュータ・アプリケーションでは、異なるスレッドを異なる顧客に割り当てることが可能であり、その結果、各顧客特有の電子商取引が別々のスレッドで処理されることになる。
【０００４】
ハードウェアの見地からすると、コンピュータは、作業負荷容量を増やすために、複数のマイクロプロセッサに一段と依拠するようになってきている。さらに、複数のマイクロプロセッサを使用することによって得られるものとほぼ同様の性能利得を提供する、複数のスレッドを並列に実行する機能をサポートしたいくつかのマイクロプロセッサが開発された。
【０００５】
並列処理の論理的拡張の１つが論理区画化の概念であり、その概念の下では、単一の物理コンピュータが、様々な論理区画間で割り振られた物理コンピュータ内の様々なリソース（たとえばプロセッサ、メモリ、入出力デバイス）を使用して、本質的に同じ複数の独立した「仮想」コンピュータ（論理区画と呼ばれる）を動作させることができる。各論理区画は別のオペレーティング・システムを実行し、ユーザの観点および論理区画上で実行されるソフトウェア・アプリケーションの観点からすると、完全に独立したコンピュータとして動作する。
【０００６】
「ハイパーバイザ」または区画マネージャと呼ばれることの多い共有プログラムが、論理区画化を使用して論理区画を管理し、異なる論理区画へのリソースの割振りを容易にする。たとえば区画マネージャは、プロセッサ、ワークステーション・アダプタ、ストレージ・デバイス、メモリ・スペース、ネットワーク・アダプタなどのリソースを、様々な区画に割り振って、個々の物理コンピュータとほとんど同じ方法で各論理区分の相対的に独立した操作をサポートするることができる。
【０００７】
論理区画の管理に関連して、個々の区画にとっては、それらの区画に割り振られた様々なリソースを管理し、およびそれらリソースとのとの対話をすることが可能であることが望ましい。こうした管理機能を可能にするために、区画マネージャは、ある区画が一定の区画管理操作の当該区画マネージャによる実施を要求する際に用いることができるインターフェースをサポートしている場合が多い。ただし、各区画が区画マネージャから個々のメモリ・スペースで実行されることを考えると、ある区画と区画マネージャとの間の通信は、当該区画と当該区画マネージャとの間に置かれた障壁を維持する組織化されたプロトコルに従わなければならない。
【０００８】
しかしながら、様々なタイプの区画管理操作は、区画マネージャによって様々な働きが引き受けられることを必要とする場合がある。さらに、これらの働きは、区画マネージャ側の様々な程度の努力を必要とする場合がある。たとえば区画管理操作の中には、即時に処理が可能であり、特定の操作が完了したかどうかの知らせを区画が待つ必要のないものもある。これに対して、他の区画管理操作では、区画マネージャ側のかなりの努力を必要とし、コンピュータ内の様々なハードウェア・デバイスにアクセスする必要があるため、完了までにかなりの時間を必要とする。後者の場合、当該区画マネージャが操作を完了するまで待機することをある区画に要求したり、また、当該区画に操作の完了を通知したりすることは、非効率的である。
【０００９】
たとえば、区画によって開始可能な区画管理操作のタイプの１つに、リソース状態変更操作がある。特に、論理的に区画化されたコンピュータ、たとえばプロセッサ、メモリ、入出力デバイス、ストレージ・デバイス、ディスプレイ・デバイス、通信デバイス、およびそれらのためのアダプタ（現実のまたは仮想のもののいずれか）など、の中のリソースは、通常、区画マネージャのメモリ・スペース内においてオブジェクトによって表される。これらのオブジェクトは、デバイス上で一定の管理操作を実行するために、実際のデバイスと対話する機能を有する。さらにこれらのオブジェクトは、通常、それらに関連するデバイスに関した状態情報を格納し、一定のリソースが特定の区画に割り振られると、それらリソースを表すオブジェクトは、そうしたリソースの所有者であることを反映するように更新される。
【００１０】
区画マネージャによって管理される特定のリソースを使用する区画は、区画管理操作を介してそのリソースの状態を更新する機能を有する場合がある。たとえば、ある区画が、リソースの電源をオンまたはオフにすることや、当該リソースへのアクセスを有効または無効にすることや、あるいは他の区画が使用するために当該リソースを解放することを、できるのが望ましい。ただし、現在更新中である特定タイプのリソースに依存して、状態変更を実行するのに実際に必要な時間量および処理オーバヘッドの量は大幅に変化する可能性がある。その結果、区画と区画マネージャとの間に、様々なタイプのリソースに関する状態変更操作を効率的に処理できる共通インターフェースを提供することは困難であった。
【００１１】
区画マネージャによる状態変更をある区画が開始できるようにするために実施できる可能なインターフェースのタイプの１つは、純粋にイベント駆動型のインターフェースであり、これによって区画は、当該状態変更を要求するために区画マネージャに１つのイベントを送り、その後、操作が完了した時点で当該区画マネージャからの戻りイベントを待つ。こうしたインターフェースの欠点の１つは、たとえすでに要求された状態にオブジェクトがある場合でも、または、要求された状態にオブジェクトが即時に更新可能な場合でも、典型的には区画が常に戻りイベントを待たなければならないということであり、結果として応答時間の追加およびシステム・オーバヘッドの増加を生じさせることになる。さらに一部の実施では、戻りイベントと要求イベントの相関関係が問題となる場合もある。
【００１２】
区画マネージャによる状態変更をある区画が開始できるようにするために実施可能な他のタイプのインターフェースは、呼出しベースのインターフェースを提供するものであり、ここでは、区画が区画マネージャを呼び出し、要求された状態変更が進行中であることを示す戻りコードをそこから取得する。要求された状態変更がいったん完了して成功戻りコードが返されるまでは、後続の呼出しを実行することができる。こうしたインターフェースの欠点の１つは、状態変更が発生するまで、典型的には区画がスピンまたはビジー待機する必要があることであり、これによって再度システム・リソースが停滞し、システムのスループットが低下する。
【００１３】
前述のインターフェースの実施に関連する問題の根源は、同じタイプの区画管理操作を、異なるタイプのリソースに対して、および異なる状況セットで実行するときに生じる可能性のある、応答時間およびシステム・オーバヘッドの大幅な相違から、直接的に発生するものと考えられる。一定タイプのインターフェースが、あるタイプのリソースに対しては最適な結果をもたらすことがある一方で、それら同じタイプのインターフェースが、他のものに対しては最適とは言えない結果をもたらす可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
したがって、論理的に区画化されたコンピュータに常駐可能な様々なタイプのリソース上で実行される操作において生じる可能性のある、様々な状況に特に対処するために、論理的に区画化されたコンピュータにおいて区画管理操作を処理する、より柔軟かつ効率的な方法が強く求められている。
【課題を解決するための手段】
【００１５】
本発明は、１つの区画と１つの区画マネージャとの間の柔軟かつ適合可能な通信インターフェースを使用した、論理的に区画化されたコンピュータ、プログラム記録媒体、および方法を提供することによって、従来技術に関連したこれらのおよび他の諸問題に対処するものであり、これにより、多種多彩な状況にわたって、状態変更操作などの区画管理操作の最適な処理が可能となる。特に、本発明に適合する実施形態では、区画管理操作を実行するための要求を伴って、区画マネージャによる当該区画管理操作の実施に関して非同期通知が生成または抑制されるべきであるかどうかを示す区画の機能がサポートされる。その結果、そうした操作のために区画によってなされるこれら要求の中の指示に基づいて、区画管理操作を行ったことに関連して非同期通知が選択的に生成される。
【００１６】
このように実行することにより、区画と区画マネージャとの間に共通インターフェースを提供することが可能となり、これによって、操作の完了を報告するのに非同期通知が使用される場合に、特定の区画管理操作について最適な結果が得られたと判定された時は、区画は操作を行うことを要求すると共に、こうした通知を要求することが可能であり、その結果区画は、通知を待つ間に他の作業が実行できるようになる。同様に、非同期通知が使用されない場合（区画は通常、操作が完了した時点を決定するためにポーリングを使用する必要がある）に、特定の区画管理操作について最適な結果が得られたと判定された時は、区画は操作を行うことを要求すると共に、こうした通知を抑制することが可能であり、その結果、当該区画には適宜操作の完了ステータス（進行状況、状況値）をチェックする責務が与えられる。さらに、区画管理操作完了の即時（同期）通知が妥当な場合は、非同期通知を抑制することも可能であり、その結果、区画は追加の通知および／またはその後の操作完了チェックの実行を待つ必要がなくなる。
【００１７】
本発明を特徴付けるこれらおよび他の利点および特徴については、特許請求の範囲に示されている。ただし、本発明ならびにその使用を通じて得られる利点および目的をより良く理解するためには、本発明の模範的な実施形態が記載された図面および添付の記述を参照されたい。
【発明を実施するための最良の形態】
【００１８】
以下で論じる実施形態は、区画管理操作を行うために、区画によって生成される要求に応答して、区画に対して非同期通知を選択的に生成するための機能を提供する。本発明に適合する区画管理操作は、区画による開始および区画マネージャによる実行が可能な任意の操作、典型的には少なくともある状況において完了するのにかなりの時間を要する操作を、実質的に組み込むものとみなすことができる。たとえば、以下で論じる実施形態は、プロセッサ、メモリ、入出力デバイス、およびそれらの様々なアダプタといったシステム・リソース上で開始される、様々なタイプの状態変更操作に焦点を当てている。本明細書に記載のインターフェースを使用することができる他のタイプの区画管理操作には、たとえば、区画リソース割当ての位置特定や、追加や、または削除を行うための、Ｉ／Ｏスロット・データベース、ハードウェア・ページ・テーブル（ＨＰＴ）、変換制御エントリ（ＴＣＥ）テーブルといった、大規模データベースまたはテーブルを横断することが含まれる。したがって本発明は、本明細書で論じる特定の操作に限定されるものではない。
【００１９】
さらに、以下でより明らかになるように、区画管理操作の要求、ならびにそれに応答して選択的に生成される非同期通知は、それぞれ、本発明に適合するいくつかの異なる形を取ることができる。たとえば、区画管理操作の要求は、スーパーバイザ関数または方法の呼出し、メッセージ、イベント、区画マネージャに対する割込み、などを介して実施することができる。同様に、非同期通知は、関数または方法の呼出し、メッセージ、イベント、割込みなどを介して実施することができる。たとえば、例示された実施形態では、要求は、区画マネージャによってサポートされるインターフェースに対する関数呼出しとして実施され、非同期通知は、区画特有のイベント待ち行列に渡されるイベントとして実施される。ただし、本発明はこれら特定の実施に限定されるものではないことを理解されよう。
【００２０】
次に図面を見ると、いくつかの図にわたって、同じ番号は同じ部分を示しており、図１は、本発明に適合する論理的に区画化されたコンピュータ１０における主要なハードウェア・コンポーネント（構成要素・構成部品）を示す図である。コンピュータ１０は、一般に、たとえばＩＢＭ  ｅＳｅｒｖｅｒコンピュータなどの、ネットワーク・サーバ、ミッドレンジ・コンピュータ、メインフレーム・コンピュータなどのいくつかのマルチユーザ・コンピュータのうちのいずれかを表す。ただし、本発明は、他のコンピュータおよびデータ処理システム、たとえば、ワークステーション、デスクトップ・コンピュータ、ポータブル・コンピュータなどの単一ユーザ・コンピュータにおいて、または（たとえば組込み型コントローラなどを組み込んだ）他のプログラム可能電子デバイスにおいて、実施可能であることを理解されたい。
【００２１】
コンピュータ１０は、一般に、バス１６を介してメモリ１４に結合された、１つまたは複数のプロセッサ１２を含む。各プロセッサ１２は、単一スレッド・プロセッサとして、または、複数のハードウェア・スレッド１８を組み込んでいるように表されているプロセッサ１２ａなどを備えたマルチスレッド・プロセッサとして、実施可能である。ほとんどの場合、マルチスレッド・プロセッサ１２ａ内の各ハードウェア・スレッド１８は、コンピュータに常駐するソフトウェアによって、独立プロセッサとして扱われる。
【００２２】
さらに、図１にも示されるように、１つまたは複数のプロセッサ１２（たとえばプロセッサ１２ｂ）はサービス・プロセッサとして実施可能であり、システムの初期プログラム・ロード（ＩＰＬ）を管理するための、また、システム・ハードウェアを監視、診断、および構成するための、特殊なファームウェア・コードを実行するために使用される。一般に、コンピュータ１０は、１つのサービス・プロセッサと複数のシステム・プロセッサを含み、これらはコンピュータ内に常駐するオペレーティング・システムおよびアプリケーションの実行に使用されるが、本発明は、この特定の実施に限定されるものではない。一部の実施では、サービス・プロセッサを、バス１６を介する以外の方法で、コンピュータ内の様々な他のハードウェア・コンポーネントに結合することができる。
【００２３】
メモリ１４は、たとえばＤＲＡＭベースのメイン・ストレージなどの１つまたは複数レベルのメモリ・デバイス、ならびに１つまたは複数レベルのデータ、命令、および／または、個々のプロセッサかまたは複数のプロセッサの内のいずれかを処理する当分野で周知の特定のキャッシュを備える組合せキャッシュ、を含むことができる。さらにメモリ１４は、バス２０を介して、たとえば、（コンピュータとネットワーク２４とをインターフェースさせるための）１つまたは複数のネットワーク・アダプタ２２、（コンピュータと１つまたは複数のストレージ・デバイス２８とをインターフェースさせるための）１つまたは複数のストレージ・コントローラ２６、および（１つまたは複数の端末またはワークステーション３２を複数のワークステーション・アダプタを介してインターフェースさせるための）１つまたは複数のワークステーション・コントローラなどの、いくつかのタイプの外部デバイスに結合される。
【００２４】
図１はまた、コンピュータ１０上で論理的に区画化されたコンピューティング環境を実施する際に使用される、主要なソフトウェア・コンポーネントおよびリソースも詳細に示しており、区画マネージャ、あるいはハイパーバイザ３６、によって管理される複数の論理区画３４を含んでいる。当分野でよく知られたように、論理区画はいくつでもサポートすることが可能であり、また、いつコンピュータに常駐する論理区画であっても、数区画を当該コンピュータに追加したりあるいは当該コンピュータから削除して、その数を動的に変更することができる。
【００２５】
図示されたＩＢＭ  ｅＳｅｒｖｅｒに基づく実施では、区画マネージャ３６は２層のプログラム・コードからなる。第１は、本明細書ではディスパッチ不能部分３８と呼ばれ、コンピュータ１０のファームウェア、またはライセンス内部コード（ＬＩＣ）内で実施され、たとえばオペレーティング・システムなどの高位層をハードウェア・アクセスの細部から切り離しながら、様々なハードウェア・コンポーネントに対する低レベル・インターフェースを提供するために使用される。ファームウェアは、サービス・プロセッサ１２ｂなどのサービス・プロセッサとも通信可能である。ディスパッチ不能部分３８は、本明細書では「ＰＬＩＣ」とも呼ばれ、たとえばページ・テーブル管理などの、低レベルの区画管理機能の多くをコンピュータ１０に提供する。さらにディスパッチ不能部分３８は、タスクの概念を持たず、主として、ソフトウェアの高位層から関数呼出しを介してアクセスすることができる。
【００２６】
区画マネージャ３６のプログラム・コードの第２層は、本明細書ではディスパッチ可能部分４０、あるいは「ＰＨＹＰ」と呼ばれる。タスクの概念を持たないディスパッチ不能部分３８が、メモリ位置変更機能をオフにして実行され、ソフトウェアの高位層からスーパーバイザの関数呼出しを介してアクセス可能であるのとは対照的に、ディスパッチ可能部分４０は（いずれのオペレーティング・システムとも同様に）タスクの概念を持ち、メモリ位置変更機能をオンにして実行される。ディスパッチ可能部分は、ユーザに対して非表示であることを除けば、典型的には区画とほぼ同じ方法で実行される。ディスパッチ可能部分は一般に、区画の作成および削除、ハードウェアの並行保守、プロセッサとメモリと他のハードウェア・リソースとの様々な区画３４への割振り、その他といった、より高位レベルの区画管理操作を管理する。
【００２７】
各論理区画３４には、通常、コンピュータ１０内の使用可能なリソースの一部が静的かつ／または動的に割り振られる。たとえば、各論理区画には、１つまたは複数のプロセッサ１２および／または１つまたは複数のハードウェア・スレッド１８、ならびに使用可能なメモリ・スペースの一部を割り振ることができる。論理区画は、プロセッサなどの特定のハードウェア・リソースを共有することが可能であり、その結果、所与のプロセッサが複数の論理区画によって使用される。別の方法では、ハードウェア・リソースを一度に１つの論理区画にだけ割り振ることができる。
【００２８】
追加のリソース、たとえば大容量ストレージ、バックアップ・ストレージ、ユーザ入力、ネットワーク接続、ディスプレイ・デバイス、およびそれらのＩ／Ｏアダプタなどは、典型的には、当分野でよく知られた方法で、１つまたは複数の論理区画に割り振られる。リソースは、いくつかの方法で、たとえばバスごとに、またはリソースごとに、同じバス上のリソースを複数の論理区画で共有して、割り振ることができる。リソースの中には、一度に複数の論理区画に割り振ることのできるものさえある。さらに一部のリソースは、たとえば仮想ローカル・エリア・ネットワークで使用される仮想ネットワーク・アダプタなど、本質的に「仮想」である。
【００２９】
各論理区画３４は、非区画化コンピュータのオペレーティング・システムと同じ方法で論理区画の主要な操作を制御する、オペレーティング・システム４２を使用する。たとえば、各オペレーティング・システム４２は、インターナショナル・ビジネス・マシンズ・コーポレーションから入手可能なＯＳ／４００オペレーティング・システムを使用して実施可能である。
【００３０】
各論理区画３４は、別々または独立したメモリ・スペース内で実行され、したがって各論理区画は、こうした論理区画のそれぞれで実行される各ユーザ・アプリケーション４４の観点から、独立した、非区画化コンピュータとほぼ同じ働きをする。したがって、ユーザ・アプリケーションは、区画化環境で使用するためのどのような特別の構成も必要としない。
【００３１】
論理区画３４の性質を別々の仮想コンピュータとして考えると、論理区画が別々の物理マシン上にあるかのように論理区画が互いに通信できるようにするための区画間通信をサポートすることが望ましい。したがって、一部の実施では、論理区画３４が、イーサネット・プロトコルなどのネットワーキング・プロトコルを介して互いに通信できるようにするために、ディスパッチ不能部分３８で仮想ローカル・エリア・ネットワーク（ＬＡＮ）４６をサポートすることが望ましい。区画間での通信をサポートする他の方法も、本発明に適合してサポートすることができる。
【００３２】
その他の論理的に区画化された環境が、本発明に適合して使用可能であることを理解されよう。たとえば、任意の区画３４とは別のディスパッチ可能部分４０を使用するのではなく、代わりに、ディスパッチ可能部分の機能を１つまたは複数の論理区画に組み込むことができる。
【００３３】
一般に、本発明の実施形態を実施するために実行されるルーチンは、オペレーティング・システムまたは特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、もしくは命令シーケンスの、またはそれらのサブセットの、いずれの一部として実施されようと、本明細書では「コンピュータ・プログラム・コード」または単に「プログラム・コード」と呼ばれる。様々なときにコンピュータ内の様々なメモリおよびストレージ・デバイス内に常駐し、また、コンピュータ内の１つまたは複数のプロセッサによって読取られそして実行された時に本発明の様々な態様を具体化するステップもしくは要素を実行するのに必要なステップをそのコンピュータに行わせる、１つまたは複数の命令を、プログラム・コードは通常有している。さらに、本発明は、完全に機能しているコンピュータおよびコンピュータ・システムとの関連において、これまで説明され、これからも説明されるが、当業者であれば、本発明の様々な実施形態が様々な形のプログラムとして配布できること、および、実際に配布を実行する際に特定タイプの信号搬送媒体が使用されるかどうかにかかわらず、本発明が等しく適用されることを理解されよう。信号搬送媒体の例には特に、揮発性および不揮発性のメモリ・デバイス、フロッピィ・ディスクおよび他の取外し可能ディスク、ハード・ディスク・ドライブ、磁気テープ、光ディスク（たとえばＣＤ−ＲＯＭ、ＤＶＤなど）、といった記録可能タイプ媒体と、デジタルおよびアナログ通信リンクといった伝送タイプ媒体とが含まれるが、これらに限定されるものではない。
【００３４】
さらに、以下に記載する様々なプログラム・コードは、それら（コード）を本発明の特定の実施形態にて実施させる母体であるアプリケーションまたはソフトウェア・コンポーネントに基づいて、識別される場合がある。ただし、後に続く特定のプログラム名称は単に便宜上使用されるものであって、本発明は、こうした名称によって識別および／または示唆される任意の特定アプリケーションでのみ使用するものと限定されるべきでないことを理解されたい。さらに、コンピュータ・プログラムを、ルーチン、プロシージャ、メソッド、モジュール、オブジェクトなどに編成することのできる方法が典型的には無限であること、ならびに、典型的なコンピュータに常駐する様々なソフトウェア層間（たとえば、オペレーティング・システム、ライブラリ、ＡＰＩ、アプリケーション、アプレットなど）でプログラム機能を割り振ることのできる方法が様々であることを考えれば、本発明が、本明細書に記載されたプログラム機能の特定の編成および割振りに限定されるものでないことを理解されたい。
【００３５】
当業者であれば、図１に示された模範的な環境が、本発明を制限することを意図するものでないことを理解されよう。事実、当業者であれば、本発明の範囲を逸脱することなく、他の代替のハードウェアおよび／またはソフトウェア環境が使用可能であることを理解されよう。
【００３６】
次に図２では、区画マネージャ３６が実行することのできる、模範的な区画管理操作処理ルーチン５０について、より詳細に示されている。ルーチン５０は、いくつかの異なるタイプの区画管理操作を処理するための基本ルーチンを表し、区画管理操作の完了を区画に警告する３つの主な方法を取り扱う機能もサポートしている。具体的に言えば、ルーチン５０は、区画管理操作を、即時にまたは比較的短い時間枠内で完了できる場合に、同期（即時）通知を生成する機能をサポートしており、それにより、区画によって生成された要求に応答して、同期応答が当該区画に直接戻される。さらにルーチン５０は、非同期通知を生成するように要求に示された場合、および区画管理操作が即時に完了できない場合、非同期通知を生成する機能もサポートする。さらにルーチン５０は、非同期通知を抑制するように要求に示された場合、そのようにする機能をサポートし、それによって区画は、区画マネージャをポーリングして、区画管理操作の完了を検出することができる。たとえ非同期通知が要求された場合でも、または区画によってポーリングが使用されると予測される場合でも、通常依然として要求に応答して同期通知が戻され、そしてそれは操作がまだ完了していないことを通常示していることに留意されたい。
【００３７】
３つの前述のメカニズムのいずれかを使用して区画管理操作の完了を区画に警告する機能を用いると、実際上どんな区画管理操作でもこの共通の通信機構を通じてサポートすることができると考えられ、またその機構は、特定の操作または操作のタイプのために最適化することのできる開始区画に対して操作の完了を示すための応答機構を備えている。
【００３８】
ルーチン５０は、区画管理操作を行うために区画によって生成された要求に応答して、区画マネージャ内で実行される。以下でより明らかになるように、区画は、当該要求に関して非同期通知を生成すべきであるかどうかを指定すると予測される。
【００３９】
ルーチン５０は、ブロック５２にて当該要求に関する初期チェックを行うことによって開始され、それによって例えば、当該要求が必要な形式を満たしているかどうかを判定し、ならびに操作がすでに完了しているかどうか、またはすでに開始されているが依然として進行中であるかどうか、を判定する。次にブロック５４で、ブロック５２で実行されたチェックの結果として要求が不良であるかどうか、または要求された操作がすでに開始されているが依然として進行中であるかどうか、を判定する。これに当てはまる場合、制御はブロック５６に渡され、エラーが発生したこと、または操作が依然として進行中であることを示す応答が、適宜、区画に戻される。ブロック５６で生成される応答は、通常、要求に応答し、たとえば、関数呼出しに対する戻りコードを介して、直接供給される同期通知である。いったん応答が戻されると、ルーチン５０は完了する。
【００４０】
ブロック５４に戻り、要求が不良でないかまたは依然進行中でない場合、制御はブロック５８に渡され、操作がすでに完了したかどうかが判定される。完了した場合、制御はブロック６０に渡され、１つの応答が、完了ステータスを伴って区画に戻されて、ルーチンは終了する。前述のように、ブロック６０で生成される当該応答は、要求に対する同期応答の可能性がある。当該応答はまた、操作が首尾よく完了したかどうか、または障害が発生したかどうかをも示すことができる。
【００４１】
再度ブロック５８に戻り、操作が完了していない場合、制御はブロック６２に渡され、操作が同期的または即時に、すなわち相対的に短い時間枠内で完了できるかどうかが判定される。完了できる場合、制御はブロック６４に渡され、操作の実施が開始される。いったん操作が完了すると、ブロック６４はブロック６０に制御を渡し、完了ステータスを示す応答を区画に戻す。その後、ルーチン５０は完了する。
【００４２】
ブロック６２に戻り、操作が即時に完了できないと判定された場合、制御はブロック６６に渡され、区画管理操作を行ったことに関して非同期通知を生成すべきであると要求が指示しているかどうかの指示内容表示を格納する。たとえば、ブロック６６は、要求された操作の完了時に非同期通知が生成されることを区画が要求したかどうかを判定するために、要求、あるいはそれに関連付けられたパラメータまたは変数を分析することができる。他の例として、たとえば図３〜５に関して以下で説明するように、要求と共に提供される相関トークンをブロック６６に格納することができる。あるいは、非同期通知を生成すべきであるという指示内容表示に要求が関連しているかどうか、を判定する他の方法が使用される場合もある。
【００４３】
次に、ブロック６８は、要求された操作のために進行中ステータスを指定する応答を要求に戻す。典型的には、ブロック６８で生成される応答は、要求に答えて区画に即時に提供される同期応答である。
【００４４】
次に、ブロック７０は、要求された操作の実施を開始する。いったん操作が完了すると、次に制御はブロック７２に渡され、たとえば、ブロック６６に格納された指示内容表示にアクセスすることによって、非同期通知を生成すべきであるかどうかを判定する。格納された指示内容表示が、非同期通知を生成すべきであることを示す場合、ブロック７２は必要な非同期通知を生成するためにブロック７４に制御を渡し、それによって、その後ルーチン５０は完了する。当該非同期通知は、通常、たとえば操作が完了したことの指示内容表示、ならびに成功または失敗の指示内容表示を含むことができる、ステータスの指示内容表示も提供する。さらに、操作に関連する他のデータ（たとえば、要求に付随して求められたデータ）も、当該通知の中において提供される場合がある。さらに当該非同期通知は、たとえば、当初、要求と共に提供された相関トークンを戻すことによって、当該通知を元の要求と相関させるのに好適な情報を含むことができる。
【００４５】
ブロック７２に戻り、格納された指示内容表示が、非同期通知を生成すべきでないことを示す場合、ブロック７２はブロック７４を迂回して、非同期通知の生成を抑制する。その後、ルーチン５０は完了する。
【００４６】
区画管理操作に関する要求が、即時に実行可能な操作を要求している状況では、ルーチン５０はブロック５２、５４、５８、６２、６４、および６０を通り、操作を非同期で完了して適切な応答を戻す、とみなすことができる。こうしたイベントでは、区画管理操作の完了を監視する際に、区画はそれ以上の作業を必要としない。
【００４７】
即時に完了できない区画管理操作に関してであって、区画が非同期通知を要求している場合においては、ルーチン５０は通常、ブロック５２、５４、５８、６２、６６、６８、７０、７２、および７４を通り、操作の完了時に非同期通知を生成する。したがって、区画管理操作を実行するために要求がいったん発行されると、区画は、操作が完了する一方で、他の動作を続行することができる。さらに、いったん操作が完了すると、非同期通知を介して区画に通知され、適切な方法で通知を処理するために実行の進路が変更される。また、進行中ステータスを使用して同期応答が実行されること（ブロック６８）により、区画は、操作が依然として実行されている事実、および、操作が完了する一方で他の作業が実行できる事実を認識する。
【００４８】
操作が即時に完了できないイベントであって、区画が、非同期通知を受け取るのではなく、区画マネージャのポーリングを選択した場合においては、ルーチン５０は５２、５４、５８、６２、６６、６８、７０、および７２を通るが、ブロック７４は迂回し、その結果、区画によって発行された初期の要求に答えて区画マネージャによって生成された応答のみが、ブロック６８で進行中ステータスを組み込んだ応答となる。その後、操作のステータスを判定するために区画マネージャをポーリングすることが区画にとって望ましい場合、区画は、操作のステータスをポーリングするために別のルーチンを呼び出すことができる。
【００４９】
あるいは、図２に示されるように、区画は、同じ区画管理操作について他の要求を発行することによって、操作のステータスに関して区画マネージャをポーリングすることも可能であり、その結果、新しい要求を処理するためにルーチン５０が呼び出される。操作がまだ完了していない場合、操作は依然として進行中ステータスとなり、したがって後続の要求では、ルーチン５０はブロック５２で初期の要求チェックを実行し、ブロック５４で、要求が依然として進行中であると判定することになる。このように実行することによって、プログラム流れはブロック５６に進路変更されて進行中ステータスを伴って応答が戻され、ルーチンは終了する。
【００５０】
ただし、操作がいったん完了すると、後続の要求はルーチン５０により、ブロック５２で初期の要求チェックを実行し、ブロック５４で要求が不良でも進行中でもないことを判定し、ブロック５８で操作が完了したことを判定することによって、処理されることになる。したがって、制御は、ブロック６０に進路変更されて適切な完了ステータスを伴って応答が戻され、それによってルーチンは終了し、区画には、区画管理操作が完了したことが通知される。
【００５１】
典型的には、すべての後続のポーリング要求にとって、元の要求と同じ要求形式を使用すること、すなわち同じパラメータを使用することが望ましい。ただし本発明は、こうした実施に限定されるものではない。
【００５２】
区画が、非同期通知を生成すべきかどうかを判定する方法は、要求される操作のタイプに応じて変わる場合がある。たとえば、完了するまでに比較的長い時間を必要とする外部ハードウェア・デバイスへのアクセスを特定の操作が必要とする、と判定される場合がある。こうした場合、非同期通知の生成を抑制し、代わりに、区画によるポーリングが実施されるまでに十分な時間だけ待機するように、区画内のタイマを設定することが望ましい場合がある。これに対して、区画が非同期通知の生成を要求しようとする場合があり、その結果、要求の発行に続いて非同期通知が最終的に受け取られたときにこれを処理するように実行を進路変更するために、ハンドラ・ルーチンを使用して追加の作業を実行することができる。状況によっては、区画マネージャは完了の推定時間を戻すことが可能であり、これによって区画は非同期通知を抑制し、操作の完了のために区画マネージャをポーリングするようタイマを設定することができる。ただし、たとえ非同期通知が生成されるイベントであっても、操作が比較的短い時間枠内に完了できると判定される場合、ルーチン５０は依然として非同期通知を抑制する機能をサポートしており、したがって、要求に続いて区画に供給される初期の同期通知は、操作の完了ステータスを示すことができることに留意することが重要である。
【００５３】
多種多彩な区画管理操作と共にルーチン５０が使用できる中で、特に有用なタイプの操作の１つが、状態変更操作である。前述のように、多くの論理的に区画化されたコンピュータでは、オブジェクトを使用して区画マネージャ内でリソースを表すことが望ましい場合がある。さらに、各々のこうしたオブジェクトは、コンピュータ内に常駐する様々な区画への関連するリソースのアクセス可能度を管理するために使用される１つの状態を有することができる。たとえば図３〜５は、「アクティブ」、「使用不能」、および「分離」状態に設定することのできるリソースを管理する場合における本発明のある特定の実施を示す図である。オブジェクトの「アクティブ」状態は、リソースが区画によって現在使用されていることを示す。「使用不能」状態は、リソースの所有権を主張している区画がないことを示し、したがって、リソースは他の区画に割り振るために使用可能である。「分離」状態は、特定の区画が現在リソースを使用していないが、当該区画は他の区画が使用するためにリソースを解放することを望んでいないことを示す。こうした方式では、区画マネージャは様々な区画管理操作をサポートしており、複数の区画のうちのいずれにも割当て可能な同様のリソースのプールの中から１つの区画に個々におよび一意に割り当てることのできるリソースにつき、それを分離したりまたは分離しなかったり、そのリソースを使用可能にしたりまたは使用不能にしたり、そしてそれを電源オンにしたりまたはオフにしたりする。
【００５４】
前述の区画管理操作の中には、適切なリソース・オブジェクトに関連付けられたハードウェア・デバイスにアクセスすることが必要なものもあることを理解されよう。たとえば、デバイスの電源をオンまたはオフにする、あるいはリソースを分離または非分離にするには、区画マネージャ内のデータ・ストラクチャを初期化またはクリーンアップするために区画マネージャ内で実行される追加の論理操作と共に、当該デバイス自体の上で操作を開始する必要がある。たとえばリソースを使用可能または使用不能にすることなどの、他の操作は、論理操作のみを必要とし、デバイスへの直接アクセスは必要としない場合がある。これらの様々な操作は、相対的にある程度の処理オーバヘッドを必要とし、操作のタイプおよび関連する特定のリソースの両方に応じて、比較的速くまたは遅く完了する場合があることを理解されよう。したがって、これらの様々な操作を実行する際にシステムの性能を最適化するように、各々の異なった操作について、非同期通知を選択的に生成または抑制することが望ましい場合がある。
【００５５】
一例として図４は、図３に示すオブジェクト８０によって例えば表された区画リソース上で、「分離」状態変更操作を実施中に生じる可能性のある、模範的なプログラム流れを示す図である。この図示的実施形態では、区画が、実施される高位レベルの操作を表す区画メモリ・スペース内におけるオブジェクトを作成するであろうと想定されており、いっぽう区画マネージャは、オブジェクト８０などのオブジェクトを維持して、区画内の高位レベル操作と関連して実行される区画管理操作によって当該区画リソースが管理されてきたことを表している。
【００５６】
この場合、オブジェクト８０は、リソースの現在の状態を表す状態フィールド８２を含むものとして示される。フィールド８４、８６、および８８は、それぞれ、区画リソースの状態の更新に関連して使用されるフラグを格納する。フィールド８９は、区画管理操作を実行するための要求に関連して提供され、必要であれば非同期通知と共に戻される、１つの相関トークンを格納する。
【００５７】
フィールド８４〜８８に関して言えば、フィールド８４は、「分離」イベントが区画マネージャのディスパッチ可能（ＰＨＹＰ）部分に送られたこととＰＨＹＰが完了していないことと、を示したＰＨＹＰ＿ＩＮ＿ＰＲＯＧＲＥＳＳフラグを格納する。
【００５８】
フィールド８６は、ＰＨＹＰは終了したが、区画マネージャのディスパッチ不能部分（ＰＬＩＣ）は、リソースが分離可能であるとみなされる前に、リソース・オブジェクトに関するすべてのイベントの処理を完了する必要があることを示す、ＯＵＴＳＴＡＮＤＩＮＧ＿ＥＶＥＮＴＳを格納する。
【００５９】
フィールド８８は、区画マネージャの操作処理は完了したが区画はまだ操作が完了したことを示す戻りコードを検出していない、ということを示すＳＴＡＴＵＳ＿ＩＮ＿ＰＲＯＧＲＥＳＳフラグを格納する。
【００６０】
追加の情報が、オブジェクトによって表される実際のリソースに関する様々な構成データを含んで通常オブジェクト８０に格納されるということを理解されよう。さらに、図３に示されたもの以外のデータ・ストラクチャを使用して、本発明に適合するリソース・オブジェクトの状態を保守することもできる。
【００６１】
この例の目的では、非同期通知を生成すべきであるかどうかの指示内容表示が、要求と共に渡されてさらに当該非同期通知と共に区画に戻される１つの相関トークンを介して作成されること、もまた想定される。図示された実施形態では、当該相関トークンは、区画内の操作の代表でありオブジェクト上での仮想実行済み方法におけるイベント・ポインタを受け入れるＣ＋＋オブジェクトまたは関数呼出し、を指すポインタである。したがって、区画マネージャ呼出しからの戻りが、作業は開始されたがまだ完了していないということを示す場合、区画は、イベント・メッセージパーザ（構文解析プログラム）を使用して、高位レベルの操作を続行することができる。そう示さない場合は、区画マネージャ要求が完了すると、区画は即時に高位レベルの操作を続行することができる。区画イベント・メッセージ・パーザは、通常は、操作が完了すると、Ｃ＋＋オブジェクト上での実行済み方法を呼び出すため、高位レベルの操作の実行を続行することができる。
【００６２】
非同期通知を生成すべきでないということを示すためには、ゼロの相関トークン値が使用される。しかしながら、通知を生成すべきでないということを示す他の方法、たとえば、要求内の様々なフラグまたはその他のフィールド、区画マネージャにアクセス可能な変数、あるいは、即座の開示によって特典を持つ当業者にとって明らかなその他の方法、を代わりに使用できるということを理解されよう。さらに、本発明に適合する相関トークンは、いくつかの代替方法で構成可能であることも理解されよう。たとえば、相関トークンは、様々な区画オブジェクトを指すポインタ配列への索引として動作する整数、または、ルックアップ（参照）動作によって１つのイベントまたは通知を応答が関係する要求または操作と相関付けることを可能にする他の任意のキー、によって表すことができる。あるいは、たとえば関数呼出し、制御ブロック、データ・ストラクチャ・アドレスなどの、相関トークンの他の代替の実施を使用することもできる。
【００６３】
したがって、相関トークンの望ましい使用法の１つは、とりわけ、非同期通知を元の要求と相関させて、その結果、区画管理操作の完了を保留中にさせる、区画内で遅れている処理を、非同期通知の受取りと同時に再開することができるようにすることである。
【００６４】
図４は、区画リソースの分離に関連して生じる可能性のある、操作のシーケンスを示す図である。特に、図４は、区画リソースを分離するために、論理的に区画化されたコンピュータ１０で実行される、模範的な分離状態変更ルーチン１００を示す図である。
【００６５】
ルーチン１００は、ブロック１０２において区画が区画マネージャ上でＳＥＴ＿ＩＮＤＩＣＡＴＯＲ（ＩＳＯＬＡＴＥ）関数を呼び出して、目標のリソースの状態を「分離」に設定することによって開始される。相関トークンは、非同期通知を受け取るはずのオブジェクトを指すポインタか、または非同期通知が抑制されるはずであることを示すゼロ値かのいずれかであり、要求を伴っている。次にブロック１０４で、ＰＬＩＣが関数呼出しの初期チェックを実行し、またブロック１０６では、即時戻りステータスが許容されるかどうか、たとえば、関数呼出しが無効であることが初期に判定可能であるか、リソースがすでに分離されていると判定されるか、あるいは、要求された操作がすでに実行されているかまたは以前に開始されて依然として進行中であると判定されるか、が判定される。
【００６６】
即時戻りステータスが許容される場合、制御はブロック１０８に渡され、ＰＬＩＣは、リソースの状態を「分離」（適切であれば）に設定し、適宜、ＳＵＣＣＥＳＳまたはＦＡＩＬＵＲＥステータスを戻す。その結果、「分離」要求の処理は完了する。
【００６７】
ブロック１０６に戻り、即時戻りステータスが許容されない場合、制御はブロック１１０に渡され、ＰＬＩＣはリソース・オブジェクトの状態を「分離」に設定し、ＰＨＹＰ＿ＩＮ＿ＰＲＯＧＲＥＳＳフラグを設定して、区画関数呼出しと共に提供された相関トークンを保存する。次にブロック１１２で、ＰＬＩＣは、トークンを含む「分離」イベントをＰＨＹＰに送り、分離操作が依然として進行中であることを示すＬＯＮＧ＿ＢＵＳＹ戻りコードを、区画に戻す。
【００６８】
次にブロック１１４で、ＰＨＹＰは、リソースの解放に必要な働きを実行する。たとえば、分離操作の場合、ＰＨＹＰは、管理されるテーブルを分析して、これはゴミ情報収集と同様のプロセスであるのだが、リソースに対する参照がもはや存在しないことを確認することが必要である。他のタイプのリソース管理操作の場合、他の働きを実行することができる。
【００６９】
次にブロック１１６では、ＰＨＹＰはＰＬＩＣ上でＳＥＴ＿ＳＴＡＴＥを新しい状態で呼び出し、「分離」用のコードならびに相関トークンを戻す。次にブロック１１８で、ＰＬＩＣはリソースを新しい状態に設定し、ブロック１２０で、ＰＬＩＣはＰＨＹＰ＿ＩＮ＿ＰＲＯＧＲＥＳＳフラグを消去し、戻りコードを保存して、ＯＵＴＳＴＡＮＤＩＮＧ＿ＥＶＥＮＴＳフラグを設定する。
【００７０】
次にブロック１２２では、リソースが真に分離される前に他の未処理イベントを処理する必要がある場合は、ＰＬＩＣはすべての未処理イベントが完了するまで待つ。すべてのイベントが処理された時点の検出は、たとえば、未処理イベントのカウントがゼロに達したときに、待ち行列によって呼び出されるリソース上の関数を提供するなど、いくつかの方法で実行可能である。
【００７１】
すべての未処理イベントが完了すると、ブロック１２４で、ＰＬＩＣはＯＵＴＳＴＡＮＤＩＮＧ＿ＥＶＥＮＴＳフラグを消去し、制御がブロック１２６に渡されて、要求と共に提供された相関トークンがゼロに等しいかどうかが判定される。前述のように、トークンのゼロ値は、非同期通知を生成すべきでないこと、および、操作の完了を検出するために区画マネージャを区画がポーリングするであろうことを、区画マネージャに示すものである。
【００７２】
したがって、トークンがゼロに等しくない場合、ブロック１２６は制御をブロック１２８に渡し、ここでＰＬＩＣはトークンをローカル・コピーに保存して、その後、区画リソース・オブジェクト中のトークンを消去する。次にブロック１３０では、ＰＬＩＣは、トークンを備えたイベントと、操作が完了したことを示しさらにオプションで操作が成功したか失敗したかを示す戻りコードとを区画に送る。その後、分離操作の処理は完了する。
【００７３】
ブロック１２６に戻り、トークンが実際にゼロである場合、制御は代わりにブロック１３２に渡され、ここでＰＬＩＣは、リソース・オブジェクト上でＳＴＡＴＵＳ＿ＩＮ＿ＰＲＯＧＲＥＳＳフラグを設定する。区画マネージャ内では、区画が操作のステータスについて区画マネージャにポーリングを試行するまで、分離操作に関するそれ以上の動きは発生しない。したがって、ブロック１３４に示されるように、操作がいったん完了すると、区画は区画マネージャ上で再度ＳＥＴ＿ＩＮＤＩＣＡＴＯＲ（ＩＳＯＬＡＴＥ）を呼び出し、通知が区画に提供されているとき以外は、ＳＴＡＴＵＳ＿ＩＮ＿ＰＲＯＧＲＥＳＳフラグは操作が完了したことを示すようになる。したがってＰＬＩＣは、ブロック１３６で、ＳＴＡＴＵＳ＿ＩＮ＿ＰＲＯＧＲＥＳＳフラグを消去し、操作が完了したことを示す適切な戻りコードを戻すことができる。その後、分離操作の処理は完了する。
【００７４】
前述のように、相関トークンを含む適切な戻りコードを区画に戻すと、通常は当該区画内の関連するオブジェクト上での操作を呼び出すことになり、オブジェクト上で実行済み方法が呼び出され、また、そのオブジェクトによって表される操作の処理が完了される。
【００７５】
リソース・オブジェクトの状態を他の状態に設定する場合、図４に関連して上記で述べた方法と同様の方法で進行していくことになることを理解されよう。さらに、ソフトウェアにおける前述の機能の実施も、十分に、即座の開示によって特典を持つ当業者の技能の範囲内であることを理解されよう。
【００７６】
次に図５は、区画の観点から、リソース状態変更を必要とする高位レベルの区画操作の実施を示す図である。具体的には、ブロック１５２で、相関トークンおよび相関データを作成することによって、ルーチン１５０が開始される。この例では、非同期通知が望ましいため、非ゼロの相関トークンが作成されると想定される。
【００７７】
次にブロック１５４では、たとえば図４に関連して上記で述べたように、区画は、作成された相関トークンを含む、区画マネージャ上で必要な状態変更操作を呼び出す。その後、区画は戻りコードを待ち、これが受け取られると、戻りステータスは、状態変更操作の即時完了を示すかどうかを判定するためにブロック１５６で分析される。即時完了を示さない場合、制御はブロック１５８に渡され、非同期通知を待つ。これが受け取られると、制御はブロック１６０に渡され、非同期通知で戻された相関トークンを使用して、操作のための相関データを見つける。その後、制御は、操作を完了するためにブロック１６２に渡される。さらに、ブロック１５６に戻り、戻りステータスが即時完了を示す場合、制御はブロック１６２に直接渡される。ブロック１６２を完了すると、区画操作は完了する。
【００７８】
多種多彩な区画操作が、図５に示された一般的な方法で実行可能であることを理解されよう。さらに、これらの区画操作に関連して実行可能な多種多彩の状態変更操作は、本発明の文脈の範囲内で企図されるものである。
【００７９】
即座の開示によって特典を持つ当業者であれば、本明細書に記載の実施形態の様々な修正が明らかであろう。したがって本発明は、特許請求の範囲内にあるものとする。
【図面の簡単な説明】
【００８０】
【図１】本発明に適合した論理的に区画化されたコンピュータにおける、主要なハードウェア・コンポーネントを示すブロック図である。
【図２】図１の区画マネージャによって実行される、区画管理操作処理ルーチンのプログラム流れを示す流れ図である。
【図３】図１の論理的に区画化されたコンピュータ内で保守される、区画リソースに関する模範的なデータ・ストラクチャを示すブロック図である。
【図４】図１の論理的に区画化されたコンピュータによって実行される、模範的なリソース状態変更操作の実施を示す流れ図である。
【図５】図１の論理的に区画化されたコンピュータ内でのリソース状態変更を必要とする、模範的な区画操作の実施を示す流れ図である。
【符号の説明】
【００８１】
１０    コンピュータ
１２、１２ａ    システム・プロセッサ
１２ｂ    サービス・プロセッサ
１４    メモリ
１６、２０    バス
１８    ＨＷ（ハードウェア・）スレッド
２２    ネットワーク・アダプタ
２４    ネットワーク
２６    ストレージ・コントローラ
２８    ストレージ・デバイス
３０    ワークステーション・コントローラ
３２    端末
３４    区画
３６    区画マネージャ
３８    区画マネージャ（ディスパッチ不能部分）
４０    区画マネージャ（ディスパッチ可能部分）
４２    オペレーティング・システム
４４    ユーザ・アプリケーション
４６    仮想ＬＡＮ
【図１】
2004326774.tif 000003
【図２】
2004326774.tif 000004
【図３】
2004326774.tif 000005
【図４】
2004326774.tif 000006
【図５】
2004326774.tif 000007