(57)【要約】【課題】  論理的にパーティションで区切られたデータ処理環境に含まれるリソースに対するアクセスを管理する改良された方法を提供する。【解決手段】  装置、プログラム、および方法が、パーティションによるリソースの使用がハイパーバイザによって強制排除されない時間期間を保証する。パーティションが出す照会通信が、ハイパーバイザが当該ハイパーバイザのための仕事が保留中であるか否かを判断するように促す。ＮＯの場合、ハイパーバイザは当該パーティションによるリソースの中断されない使用の期間を保証する保証応答を送付する。【選択図】 図２
2006127524.tif 000002
【特許請求の範囲】
【請求項１】
論理的にパーティションで区切られたデータ処理システムの中の複数の物理リソースに対するアクセスを管理する方法であり、前記システムは複数のパーティションをサポートしており、前記システムは前記複数の物理リソースの所有権を前記複数のパーティションに割り当てるように構成されている、方法であって、
前記複数のパーティションのために、リソースの中断されない使用の、事前に設定された期間を許可するステップと、
前記事前に設定された期間の間における前記リソースのプリエンプトを禁止するステップとを含む方法。
【請求項２】
前記事前に設定された期間を許可する前記ステップがさらに、前記事前に設定された期間を決定するとともにプログラムするステップを含む、
請求項１に記載の方法。
【請求項３】
さらに、
保証期間の入力を促すように構成された照会通信を、前記パーティションにおいて作成するステップを含む、
請求項１に記載の方法。
【請求項４】
前記事前に設定された期間を許可するステップがさらに、前記照会通信を受領することに応答して、保証応答を作成するステップを含む、
請求項３に記載の方法。
【請求項５】
さらに、
前記パーティションにおいて前記保証応答を受領することに応答して、前記パーティションが実行すべき仕事をスケジュールするステップを含む、
請求項４に記載の方法。
【請求項６】
さらに、
前記パーティションが作成した第２の照会通信を受領することに応答して、仕事保留中なる応答を作成するステップを含む、
請求項３に記載の方法。
【請求項７】
さらに、
前記パーティションにおいて、前記仕事保留中なる応答を受領することに応答して、放棄コールを作成するステップを含む、
請求項６に記載の方法。
【請求項８】
前記事前に設定された期間を許可する前記ステップがさらに、ハイパーバイザの仕事が保留中であるか否かを判断するステップを含む、
請求項１に記載の方法。
【請求項９】
さらに、
前記事前に設定された期間の満了に応答して、前記リソースをプリエンプトするのを可能にするステップを含む、
請求項１に記載の方法。
【請求項１０】
さらに、
ハイパーバイザおよび前記パーティションのうちの少なくとも一方によって前記リソースを使用するステップを含む、
請求項１に記載の方法。
【請求項１１】
論理的にパーティションで区切られたデータ処理システムの中の複数の物理リソースに対するアクセスを管理する方法であり、前記システムは複数のパーティションをサポートしており、前記システムは前記複数の物理リソースの所有権を前記複数のパーティションに割り当てるように構成されている、方法であって、
照会に応答して、仕事が保留中であるか否かを判断するステップと、
保留中である仕事がない場合、物理リソースをパーティションからプリエンプトしないことを保証するステップと
を含む
方法。
【請求項１２】
複数のパーティションをサポートする論理的にパーティションで区切られたコンピュータであって、前記コンピュータは複数の物理リソースの所有権を前記複数のパーティションに割り当てるように構成されている、論理的にパーティションで区切られたコンピュータと、
前記論理的にパーティションで区切られたコンピュータに常駐するプログラム・コードであって、前記プログラム・コードは前記複数のパーティションのうちの１つのパーティションに、物理リソースの中断されない使用の、事前に設定された期間を許可するように構成されている、プログラム・コードと
を含む
装置。
【請求項１３】
前記リソースは物理プロセッサおよびメモリのうちの少なくとも１つを含む、
請求項１２に記載の装置。
【請求項１４】
前記プログラム・コードは、保証応答の決定を促すように構成された照会通信を、前記パーティションにおいて作成するステップ開始する、
請求項１２に記載の装置。
【請求項１５】
前記プログラム・コードは、前記パーティションが敏感な仕事を遂行する必要があると判断することに応答して、前記照会通信を作成するステップを開始する、
請求項１４に記載の装置。
【請求項１６】
前記プログラム・コードは、ハイパーバイザの仕事が保留中であるか否かを判断するステップを開始する、
請求項１２に記載の装置。
【請求項１７】
前記プログラム・コードは、保留中であるハイパーバイザの仕事がない場合、照会通信を受領することに応答して、保証応答を作成するステップを開始する、
請求項１６に記載の装置。
【請求項１８】
前記プログラム・コードは、前記パーティションにおいて前記保証応答を受領することに応答して、前記パーティションが実行すべき仕事をスケジュールするステップを開始する、
請求項１７に記載の装置。
【請求項１９】
前記プログラム・コードは、ハイパーバイザの仕事が保留中である場合、照会通信を受領することに応答して、仕事保留中なる応答を作成するステップを開始する、
請求項１６に記載の装置。
【請求項２０】
前記プログラム・コードは、前記パーティションにおいて前記仕事保留中なる応答を受領することに応答して、放棄コールを作成するステップを開始する、
請求項１９に記載の装置。
【請求項２１】
論理的にパーティションで区切られたデータ処理システムの中の複数の物理リソースに対するアクセスを管理するようコンピュータを機能させるためのプログラムであって、前記システムは複数のパーティションをサポートしており、前記システムは前記複数の物理リソースの所有権を前記複数のパーティションに割り当てるように構成されており、前記パーティションのうちの少なくとも１つはハイパーバイザ・パーティションを含み、前記プログラムはさらにパーティションの物理リソースの中断されない使用の、事前に設定された期間を許可するように構成されている、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピューティング・システムに関し、特に論理的にパーティションで区切られた環境において中央処理装置に仮想プロセッサをディスパッチすることに関する。
【背景技術】
【０００２】
多くのコンピューティング用途の速度と効率は処理リソースのアベイラビリティによって決まる。この目的のために、インターナショナル・ビジネス・マシーンズ・コーポレーション（International Business Machines Corporation)によって開発された「仮想マシン」構成のようなコンピューティング・アーキテクチャでは、複数のプロセスの間で共通の処理リソースを共用している。そのようなアーキテクチャは伝統的に少なくとも１つの物理プロセッサすなわち中央処理装置（ＣＰＵ）を有する単一のコンピューティング・マシンに依拠している。この物理プロセッサは複数の仮想プロセッサをシミュレートするように構成されたソフトウェアを実行する。
【０００３】
仮想プロセッサは論理的にパーティションで区切られたコンピューティング・システムの中において特定のアプリケーションを有する。パーティションはアドミニストレータによって割り当てられた、マシンの物理プロセッサ、メモリ、および他のリソースの一部分を論理的に含む。したがって、アドミニストレータはパーティションの間において物理リソースを共用する。各パーティションは通常、オペレーティング・システムを常駐させるとともに、複数の仮想プロセッサを有する。このように、各パーティションは、あたかもそれが個別のコンピュータであるかのように、大規模に動作する。
【０００４】
ハイパーバイザと呼ばれる、基礎をなすプログラムすなわちパーティション・マネージャはこのスキームを用いて各パーティションに物理リソースを割り当て、分配する。たとえば、ハイパーバイザはオペレーティング・システムが出すリソースを求める要求をインターセプトし、それらをグローバルに共用するとともに割り当てる。パーティションがプロセッサを共用している場合、ハイパーバイザはプロセッサを共用しているパーティションの仮想プロセッサの間で物理プロセッサを割り当てる。
【０００５】
パーティションがプロセッサを共用しているコンピュータ・システムの処理速度を高めるために、システムの設計者は通常、ハイパーバイザ・コールを実装する。ハイパーバイザ・コールは部分的に、パーティションの間における物理的リソースの使用を調整する。比較的一般的なハイパーバイザ・コールは個別のパーティションからハイパーバイザへの、物理プロセッサに対するアクセス権を放棄する（yield)ことを求める要求である。すると、ハイパーバイザは放棄された物理プロセッサに別のパーティションの仮想プロセッサをディスパッチする。仮想プロセッサが物理プロセッサにディスパッチされると、当該仮想プロセッサはその仕事に必要とされる処理サイクルにアクセスすることができる。
【０００６】
論理的にパーティションで区切られたコンピュータ・システムとそれらに関連付けられたハイパーバイザ・コールによってもたらされる効率にもかかわらず、ある種の固有の複雑性が存続している。たとえば、放棄コールは実際には常に完遂されるとはかぎらない。一例を挙げれば、パーティションはある種の動作条件の下では、別のパーティションが必要とするリソースを放棄するようにプログラムされていない。ある普通のシナリオでは、第２のパーティションの仮想プロセッサはプリエンプトされている仮想プロセッサよりも多くのタイム・クリティカルな、すなわち時が重要な行うべき仕事を有する。そのような場合、ハイパーバイザが物理リソースから第１のパーティションの仮想プロセッサをプリエンプトして（preempt)（すなわち排除（remove））第２のパーティションの仮想プロセッサが当該物理リソースを使用しうるようにすることが通常は必要である。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、仮想プロセッサをプリエンプトする際に、ハイパーバイザは折悪しく無意識に第１の論理パーティションをプリエンプトする。たとえば、優先使用されているパーティション自身が性能の影響を受けやすい（敏感な）コードを実行している場合、そのような時点におけるプリエンプトはシステムの性能に逆の影響を与える。敏感なコードの例には、グローバル・ロック、およびタスク・ディスパッチ、ならびにホストまたはデバイス・アダプタに関係するポーリング機能のような時間の影響を受けやすいオペレーションがある。このような敏感なオペレーションに割り込みをかけると、論理的にパーティションで区切られた環境によって実現される利点を傷つける可能性のある性能上の懸念がもたらされる。したがって、論理的にパーティションで区切られたデータ処理環境に含まれているリソースに対するアクセスを管理する改良された方法に対する継続的な必要性が存在する。
【課題を解決するための手段】
【０００８】
本発明の特徴は論理的にパーティションで区切られたデータ処理システムの中に含まれる物理リソースに対するアクセスを管理するように構成された装置、方法、およびプログラムを含む。この論理的にパーティションで区切られたデータ処理システムは、物理リソースの所有権を複数のパーティションに割り当てるように構成されている。従来技術の問題点に対処するために、本システムは物理リソースの中断されない使用の事前に設定された期間をパーティションに許可する。本システムはこの事前に設定された期間の間、リソースのプリエンプトを禁止する。中断されない使用のこの許可はパーティションのためにリソースの使用を保証するから、パーティションは効率を高めて仕事をすることができる。パーティションは、たとえば敏感な性質の仕事、もしくは、リソースの従来のプリエンプトが好ましくない場合におけるあらゆる種類の仕事を遂行しつつある、または遂行すべく準備しつつある。仕事を遂行するのにパーティションが必要とするリソースには、物理プロセッサもしくはメモリまたは双方がある。
【０００９】
リソースの中断されない使用を必要とするパーティションは、ハイパーバイザにおいて仕事が保留中であるか否かの判断を促すように構成された照会通信を作成する。ハイパーバイザにおいて保留中の仕事がない場合、ハイパーバイザはこの判断に応答して、保証応答を作成する。この保証応答は、パーティションの仕事がハイパーバイザによって中断されない、すなわち物理リソースの使用が、事前に設定された期間の継続期間の間に強制排除されない、ということを保証するように機能する。保証応答を受領すると、パーティションは当該パーティションが実行すべき仕事をスケジュールする。あるいは、照会通信に応答してハイパーバイザが保留中のハイパーバイザの仕事があると判断した場合、ハイパーバイザは代わりに仕事保留中なる応答を作成して送付する。パーティションはこの仕事保留中なる応答を受領することに応答して、物理リソースをハイパーバイザに引き渡す。
【００１０】
本発明の上述した目的および他の目的ならびに利点は、その添付図面および記述から明らかにされる。
【発明を実施するための最良の形態】
【００１１】
本発明の特徴は、事前設定の保証期間の間、パーティションのために物理的リソースに対するアクセスを保証することにより、論理的にパーティションで区切られたコンピュータ・システムの中において仕事を分配するための装置、プログラム製品、および方法を含む。この目的のために、保留中のハイパーバイザの仕事が存在するか否かをパーティションが照会するのを可能にするよう照会ハイパーバイザ・コールがサポートされている。保留中のハイパーバイザの仕事が存在する、ということは通常、ハイパーバイザ・パーティションの仮想プロセッサが、保留中の仕事を完遂するためにプロセッサのサイクルにアクセスすることが必要になる、ということを意味する。すなわち、ハイパーバイザは物理プロセッサの使用をプリエンプトすることが必要になる。照会ハイパーバイザ・コールが保留中の仕事は存在しないということを示す応答を返すならば、その場合、ハイパーバイザは実質的に、当該コールを行う基礎をなす物理プロセッサまたは他のリソースは事前に設定された期間から成る継続期間の間、ハイパーバイザによる優先使用の対象にはならない、ということを保証している。この継続期間すなわち保証期間は通常、実装によって決まる一定値である。しかし、本発明と一致する一実施形態では、事前設定の期間から成る継続期間は変動する。たとえば、パーティションが、様々な動作要因（たとえば保留中の仕事の種別、当該仕事を完了するのに必要とされる推定時間、予測される作業負荷、プロセッサのアベイラビリティなど）に応じて継続期間中に変動する特定の期間を要求する、あるいは、ハイパーバイザがそのような特定の期間を返す。一実施形態では、この保証は所定のパーティションに付随するあらゆるリソースに適用される。別の実施形態では、特定のリソース（たとえばパーティションに割り当てられる特定のプロセッサ）の使用を保証している。
【００１２】
より具体的には、パーティションの仮想プロセッサが保証を求めると、照会通信すなわち照会コールが生成される。ハイパーバイザ・パーティションの保留中の仕事がない場合、ハイパーバイザはそれが保証した、仮想プロセッサが優先使用されることがなくなる時刻を仮想プロセッサの制御ブロックに記録する。ハイパーバイザ・パーティションの仕事がその後、保留になったら、そして、ハイパーバイザが、自身が仮想プロセッサに保証した優先使用のない時刻に先行して、プロセッサの制御（たとえばハイパーバイザ・デクリメンタ割り込み）を取得したら、仮想プロセッサは優先使用されない。次回、保証された事前設定の期間が満了した後にハイパーバイザが制御を取得すると、あるいは、仮想プロセッサが待機状態に入ったためにパーティションがリソースを放棄すると、何らかの優先使用が行われる。
【００１３】
〔ハードウェアとソフトウェアの環境〕
より具体的に図面を参照すると、いくつかの図面を通じて同一の番号は同一の部品を表しているが、図１は本発明と一致するデータ処理装置１０を示す。装置１０はたとえば、ネットワーク・サーバ、ミッドレンジ・コンピュータ、メインフレーム・コンピュータなどのような多数のマルチ・ユーザ・コンピュータ・システムのうちの任意のものを一般的に表している。しかし、本発明は他のデータ処理装置（たとえばワークステーション、デスクトップ・コンピュータ、ポータブル・コンピュータのようなスタンド・アロン型コンピュータ・システムまたは単一ユーザ型コンピュータ・システム）において、あるいは、組み込みコントローラなどの他のコンピューティング装置において実現することができる、ということを認識すべきである。装置１０の１つの好適な実現方法はインターナショナル・ビジネス・マシーンズ・コーポレーション（International Business Machines Corporation)から入手可能なｉＳｅｒｉｅｓ（Ｒ）コンピュータのようなミッドレンジ・コンピュータにおけるものである。
【００１４】
装置１０は一般に主記憶装置１７（たとえば動的ランダム・アクセス・メモリ（ＤＲＡＭ）のアレイ）を含むメモリ・サブシステムに接続された少なくとも１つの物理プロセッサ１２を含む。要すれば、この物理プロセッサはマルチスレッド化される。また、マルチスレッド化された物理プロセッサ１２と主記憶装置１７との間に配置されているように示されているのはキャッシュ・サブシステム１６である。このキャッシュ・サブシステム１６は１以上のレベルのデータ・キャッシュ、命令キャッシュ、もしくは組み合わせキャッシュ、またはこれらのすべてを含み、当技術分野で周知のように、ある種のキャッシュは単一のプロセッサおよび複数のプロセッサのうちの一方にサービスを提供する。
【００１５】
さらに、主記憶装置１７はシステム・バス１８と複数のインターフェース装置（たとえば入出力バス接続機構インターフェース２０、ワークステーション・コントローラ２２、および記憶装置コントローラ２４〔これらはそれぞれ少なくとも１つの外部ネットワーク２６、少なくとも１つのワークステーション２８、もしくは少なくとも１つの記憶装置（たとえば直接アクセス記憶装置（ＤＡＳＤ）に対する外部アクセスを提供している〕）とを介して多数種の外部（Ｉ／Ｏ）装置に接続されている。
【００１６】
図２のシステムはハイパーバイザ４６（これはパーティション・マネージャとも呼ばれる）が管理する複数の論理パーティション４２、４４を含む、図１のものと同様の論理的にパーティションで区切られた装置を実現する際に使用する主要なソフトウェア・コンポーネントとリソースをきわめて詳細に示している。当技術分野において周知のように、このシステムでは任意個数の論理パーティションがサポートされる。各論理パーティション４２、４４はオペレーティング・システム（たとえば論理パーティション４２のためのオペレーティング・システム５４、論理パーティション４４のためのオペレーティング・システム５６）を利用している。このオペレーティング・システムはパーティションで区切られていないコンピュータのオペレーティング・システムと同じ態様で論理パーティションの主要なオペレーションを制御している。各論理パーティション４２、４４は仮想記憶６０によって表されている個別の仮想記憶空間において実行する。さらに、各論理パーティション４２、４４には装置３０の中の利用可能なリソースの一部分が静的もしくは動的または静的かつ動的に割り当てられる。たとえば、各論理パーティションは仮想記憶６０において使用する利用可能な記憶空間の一部分に加え、少なくとも１つの物理プロセッサを共用している。このように、所定の物理プロセッサ１２は複数の論理パーティションの仮想プロセッサ１３によって利用される。
【００１７】
図２に示されているハイパーバイザ４６はパーティションの保全とパーティションの管理の任に当たるプログラム・コードを含む。この目的のために、ハイパーバイザ４６は通常、２層のソフトウェアを含む。そのようなの層の１つは共用サービス・ブロック４８を含む。これはハイパーバイザ・コールを通じて論理パーティションによって呼び出される。共用サービス・ブロック４８なるコードの層は通常、パーティションと仮想プロセッサの管理（たとえば物理プロセッサのディスパッチ）とを含む機能を求めて呼び出されるものであり、タスクの概念を有さない。ハイパーバイザ４６の第２のコードの層はハイパーバイザ・パーティション５０を含む。ハイパーバイザ・パーティション５０は一般に、比較的高いレベルのオペレーションを実行するのに使用される。そのようなオペレーションには、たとえばパーティションへの初期プログラム・ロード（ＩＰＬ）、または同時並行的な入出力の保守がある。このコードの層はオペレーティング・システムに再配置されて実行され、オペレーティング・システムと同様のタスクを実行する。このように、ハイパーバイザ・パーティション５０は、それが通常はユーザから隠されている点を除き、システム３０における論理パーティションとして機能する。すなわち、ハイパーバイザ・パーティション５０は通常、普通のオペレーティング・システムとは異なり、ユーザ・インターフェースを有さない。別の実施形態のハイパーバイザ・パーティションは図２に示す専用のパーティションの中とは対照的に普通のパーティションの中に常駐する、ということを当業者は認識しうる。
【００１８】
ハイパーバイザ・パーティション５０は多くの点で普通のパーティション４２、４４（およびオペレーティング・システム）と同様に機能するが、顧客のためのユーザ・インターフェースを有さない。ハイパーバイザ・パーティション５０は設計上、顧客のためのユーザ・インターフェースを有さないから、それはユーザから「隠されている（hidden）」。この隠された機能は、それがない場合にユーザとの相互作用を通じて生じる可能性のある故障からハイパーバイザ・パーティションを保護する。たとえば、普通のオペレーティング・システムへのコマンドの入力によって当該オペレーティング・システムがクラッシュしたとしても、コンピュータ・システム３０はハイパーバイザ・パーティションを依然として使用しているから、故障したオペレーティング・システムの仕事を完遂することができる。このように、システム３０はハイパーバイザ・パーティションを、仮想プロセッサ（たとえば仮想プロセッサ１４）の付加的なリソースとして使用する。
【００１９】
ハイパーバイザ・パーティション５０はパーティションのリソースを優先使用してハイパーバイザ・パーティション５０の仕事を完遂するように構成された特別のハイパーバイザ・コールを生成する。したがって、ハイパーバイザ・パーティション５０はハイパーバイザ４６の共用サービス・ブロック４８に対してハイパーバイザ・コールを生成する。共用サービス・ブロック４８はディスパッチ・リストすなわち実行可能キュー４７に基づいて物理プロセッサに仮想プロセッサをディスパッチするのを管理する任に当たる。実行可能キュー４７は物理プロセッサ１２にディスパッチされるのを待っている仕事を有する仮想プロセッサのリストを含むメモリから構成されている。実行可能キュー４７を構成するリストに付加された仮想プロセッサは「レッド・ツー・ラン（read to run 、 読み込まれて実行する）」と言われる。
【００２０】
このように、ハイパーバイザ・パーティション５０が生成するハイパーバイザ・コールによって、それがない場合には物理プロセッサにディスパッチされることになる仮想プロセッサの優先使用が開始する。たとえば、そのようなコールは実行可能キューにおいてすでに待ち状態にあった別の仮想プロセッサを優先使用するように機能する。別のそのようなコールによって、仮想プロセッサは物理プロセッサに対するアクセス権を失うことになるから、ハイパーバイザ・パーティション５０のバインド済みの仮想プロセッサによる使用が可能になる。
【００２１】
ハイパーバイザ・パーティション５０はシステム・アドミニストレータから隠されているから、それに割り当てられた物理プロセッサの能力は存在しない。したがって、ハイパーバイザ・ディスパッチャ５１は（これはハイパーバイザ４６の共用サービス・ブロック４８の中に存在する）は物理プロセッサのサイクルをスチールしてハイパーバイザ・パーティション５０の仮想プロセッサ１４を実行する。本発明のプロセスがないと、処理サイクルをスチールしようするハイパーバイザ・ディスパッチャ５１は物理プロセッサ１２から論理パーティション４２を不適当な時にプリエンプトしてしまう。たとえば、論理パーティション４２はアダプタに関するポーリング機能を実行している。このポーリング機能の間におけるプリエンプトは、システムの性能に顕著かつ否定的に影響する可能性がある。
【００２２】
ハイパーバイザ・パーティション５０が実行する仕事は一般に、３つの広いカテゴリに分類される。第１のカテゴリでは、ハイパーバイザ・パーティション５０が実行するある種の仕事は特定のパーティションによって生成される。そのような仕事の例には、パーティションのＩＰＬ、パーティションの電源をオフすること、および、パーティションの主記憶ダンプを実行することがある。第２の仕事の発生源には、プラットフォームの仕事がある。そのような仕事の例には、サービス・プロセッサまたはハードウェア管理卓との対話に加え、プラットフォームのエラーの回復がある。ハイパーバイザ・パーティション５０が遂行する仕事の第３の発生源には、特定の物理プロセッサ１２の上で実行する必要のある仕事がある。そのような仕事の例には、システムの中の物理プロセッサ１２について診断試験を実行することがある。
【００２３】
本発明の原理と一致する一実施形態では、パーティション４２が生成する仕事は当該パーティション４２に割り当てられた物理プロセッサ１２を用いて実行される。たとえば、ハイパーバイザ４６の共用サービス・ブロック４８が行うプロセッサ・サイクル・スチールは、仕事を生成したパーティションに割り当てられている専用の物理プロセッサの組から行われる。専用のプロセッサ・パーティションとは、それに割り当てられた物理プロセッサの排他的使用権を有するパーティションのことである。共用プロセッサ・パーティションの場合、仕事は当該仕事を生成した当該パーティションの共用プールの中の物理プロセッサによって実行される。共用プロセッサ・パーティションとは、他の共用プロセッサ・パーティションと物理プロセッサを共用しているパーティションのことである。最後に、ある物理プロセッサに固有の仕事は当該仕事の効果が当該物理プロセッサの上で実現されるようにするために、当該物理プロセッサの上で実行される。
【００２４】
図２に示すハイパーバイザ４６はプロセッサ制御ブロック４９に加え、物理プロセッサ１２も含んでいる。プロセッサ制御ブロック４９は特定の物理プロセッサ１２についてのアクセスを待ち受ける仮想プロセッサ１３、１４のリストを含むメモリから構成されている。その中でハイパーバイザ・パーティションまたは他のパーティションの仮想プロセッサが物理リソースにディスパッチされるプロセスは、それが当該物理リソースに関連付けられるように、バインド済みの仮想プロセッサの制御ブロック４９をマーク付けすることを含む。
【００２５】
付加的なリソース、たとえば大容量記憶装置、バックアップ記憶装置、ユーザ入力、ネットワーク接続などは通常、当技術分野で周知の態様で、少なくとも１つの論理パーティションに割り当てられる。たとえばバスを単位とする態様で、あるいはリソースを単位とする態様で、同一のバスの上のリソースを共用している複数の論理パーティションにリソースを割り当てることができる。いくつかのリソースを複数の論理パーティションに同時に割り当てることもできる。図２はたとえば３つの論理バス６２、６４、６６を示している。バス６２の上には直接アクセス記憶装置（ＤＡＳＤ）６８、制御パネル７０、テープ駆動装置７２、および光ディスク駆動装置７４を含む、パーティションに割り当てられた複数のリソースが存在する。
【００２６】
これに対して、バス６４はリソースを単位として割り当てられたリソースを有し、たとえばローカル・エリア・ネットワーク（ＬＡＮ）アダプタ７６、光ディスク駆動装置７８、およびＤＡＳＤ８０が論理パーティション４２に割り当てられており、ＬＡＮアダプタ８２、８４が論理パーティション４４に割り当てられている。バス６６はたとえば論理パーティション４４に特に割り当てられたバスであり、当該バスの上のすべてのリソース（たとえばＤＡＳＤ８６、８８）が同一の論理パーティションに割り当てられている。
【００２７】
図２における特定のリソースの図解はその性質上単なる例示にすぎないこと、および、リソースの任意の組み合わせと配列を代替物の中の任意の論理パーティションに割り当てうることを認識しうる。たとえば、図２にはハイパーバイザ・パーティション５０がただ１つしか示されていないけれども、要すればそのようなパーティションをより多く含めうる、ということを当業者は認識しうる。さらに、ある種の実装においては、他の論理パーティションの要求に応えるために、動的な基準でリソースを割り当てることができる、ということを認識しうる。さらに、リソースはコンピュータを特定のハードウェア装置にインターフェースさせるのに使用する入出力プロセッサ（ＩＯＰ）の観点からも表されうる、ということ認識しうる。
【００２８】
図２に示すとともに本発明の実施形態を実現する様々なソフトウェア・コンポーネントとリソースは、以下において「コンピュータ・プログラム」、「プログラム」、または「プログラム・コード」と呼ぶ、様々なコンピュータ・ソフトウェア・アプリケーション、ルーチン、コンポーネント、プログラム、オブジェクト、モジュール、データ構造などを使用することを含む多数の態様で完成させることができる。プログラム・コードは通常、様々な時にコンピュータの中の様々なメモリと記憶装置に常駐し、かつ、コンピュータの中の少なくとも１つのプロセッサによって読み込まれて実行されると、当該コンピュータに本発明の様々な側面を記録したステップと要素を実行させる少なくとも１つの命令から成る。
【００２９】
さらに、完全に機能する文脈で本発明を記述してきたし、以下でもそうするけれども、本発明の様々な実施形態は様々な形態をしたプログラム製品として頒布することができる、そして、本発明は、頒布を実際に行うのに使用するコンピュータ読み取り可能な信号担持媒体の特定の種別とは無関係に、等しく適用することができる、ということを当業者は認識しうる。コンピュータ読み取り可能な信号担持媒体の例には、特に揮発性記憶装置および不揮発性記憶装置、フロッピー（Ｒ）ディスクおよび他の着脱可能なディスク、ハード・ディスク駆動装置、磁気テープ、光ディスク（たとえばＣＤ−ＲＯＭ、ＤＶＤなど）のような記録型媒体、ならびに、ディジタル通信リンクおよびアナログ通信リンクのような伝送型媒体がある。
【００３０】
さらに、以下に記述されている様々なプログラムは本発明の特定の実施形態において実装する目的をなすアプリケーションに基づいて特定されうる。しかし、以下に示す特定のプログラム用語はすべて便宜上使用されているにすぎず、したがって本発明はそのような用語によって特定される、もしくは含意される、または、特定され、かつ含意される何らかの特定のアプリケーションにおける使用のみに限定されるべきではない、という点を認識すべきである。
【００３１】
図１および図２に示す典型的な環境は本発明を限定することを意図していない、ということを当業者は理解しうる。もちろん、本発明の範囲を逸脱することなく、他の代替可能なハードウェア環境もしくはソフトウェア環境または双方を使用することができる、ということを当業者は理解しうる。
【００３２】
〔リソースのアベイラビリティを保証するプロセス〕
図３は図１と図２のハードウェア・システムとソフトウェア・システムによって実行可能な１組の典型的なステップを有するフローチャート９０を示す。より具体的には、フローチャート９０のステップは仕事が中断されない保証を求めるパーティション４２によって実行される。すなわち、このパーティションはハイパーバイザによるプリエンプトのない事前設定の期間の間、物理リソースへのアクセスが保証されることをを求める。具体的に図３のブロック９２を参照すると、パーティション４２は通常のオペレーションの実行中に仕事を受領する。すなわち、パーティション４２の制御キューがパーティション４２が実行することになる仕事を登録する。この制御キューは実行すべき仕事のリストから構成されており、パーティション４２のための仕事を管理するのに使用される。そのような仕事のあるものは、その性質上敏感な、もしくはシステム３０の性能に影響を与える、または、その性質上敏感であるとともにシステム３０の性能に影響を与える。そのような敏感な仕事の例には、キャッシュ・サービス、ステージング・オペレーションまたはデステージング・オペレーションの開始、およびホストまたはデバイス・アダプタに関するポーリング機能がある。
【００３３】
ブロック９２において仕事を受領することに応答して、パーティション４２はブロック９４において照会通信を生成する。ブロック９４において照会通信を送信することにより、パーティション４２はその物理プロセッサ１２の処理サイクルをハイパーバイザのパーティション、あるいは別の実施形態では他の何らかのパーティションに再割り当てさせることなく、パーティション４２がその仕事を完遂しうるという保証を求めている。この照会通信は必要な場合に、上述した例のポーリング機能のような、敏感な仕事、あるいはそうでない場合には指定済みの種別の仕事に応答してのみ生成される。あるいは、別の実施形態では、すべての仕事に応答して照会通信を生成する。したがって、それについて本発明の保証プロセスを呼び出すプログラム可能な条件はアプリケーションの仕様ごとに変化する、ということを当業者は認識しうる。
【００３４】
注目すべきことに、保証を求めるパーティション４２はブロック９２において仕事を受領した時点で、性能の影響を受けやすい仕事を完遂するのに必要なリソースをすでに使用している。すなわち、仮想プロセッサ１３はハイパーバイザ４６の共用サービス・ブロック４８によって物理プロセッサ１２にすでにディスパッチされている。
【００３５】
いずれにしても、ブロック９４において作成された照会通信はハイパーバイザ４６の共用サービス部４８への電子配送のために処置される。ハイパーバイザ４６は照会通信に付随する配送情報に対するアクセス権を有する。この配送情報はハイパーバイザ４６に対してパーティション４２を特定するのに使用される。
【００３６】
ブロック９４の照会通信に応答して、パーティション４２は図３のブロック９６においてハイパーバイザ４６から保証応答を受領する。この保証応答はパーティション４２に、先取りされてハイパーバイザ・パーティション５０に再配付されたその物理プロセッサ１２の処理サイクルを有さなくとも、それがパーティションの仕事を完遂するために先に進みうることを保証している。
【００３７】
ここで検討しているように、ハイパーバイザ・パーティション５０は従来のオペレーティング・システムと同様の何らかの仕方で機能する。しかし、ハイパーバイザ・パーティション５０はユーザのためのインターフェースを含んでいない。この特徴によって、ハイパーバイザ・パーティション５０は、そうでない場合に通常のオペレーティング・システムがそのために場合によっては脆弱になる、故障の原因から保護されている。したがって、ハイパーバイザ・パーティション５０はシステム３０のための仮想処理能力の頑健な供給源として機能する。
【００３８】
そのような保証応答をブロック９６において受領すると、パーティション４２はブロック０８において仕事をスケジュールする。すなわち、パーティション４２はブロック９４において照会の入力を促した、敏感な仕事または保留中の他の仕事をスケジュールする。次いで、パーティション４２はブロック１００において、割り当てられた物理プロセッサ１２のリソースを用いて仕事を実行する。パーティション４２はブロック１００において、事前に設定された保証期間がブロック１０２において満了するまで、ハイパーバイザ４６から割り込みをかけられることなく、そのような仕事を実行する。一実施形態では、満了期間はブロック９６において受領した保証期間と関連している。別の実施形態の保証期間はハイパーバイザ４６によってメモリから検索・取得される事前に設定されたデフォルトの期間（たとえば１００ミリ秒）である。ブロック１０２において保証期間が満了したら、パーティション４２は同一のまたは異なる仕事を求め、ブロック９４において別の照会通信を開始する。
【００３９】
ブロック９４における照会通信に応答して、パーティション４２があるいはブロック１０４において仕事保留中なる応答を受領したら、パーティション４２はそれに付随する物理プロセッサ１２を放棄する準備をする。パーティション４２は仕事保留中なる応答をハイパーバイザ４６の共用サービス部４８から受領する。ここで検討しているように、仕事保留中なる応答を受領するのは、パーティション４２の仕事の割り込みをもたらす可能性のある時間期間内に、ハイパーバイザ４６が物理プロセッサ１２または他のリソースを必要とすることが予期されるときである。
【００４０】
ブロック１０４における仕事保留中なる応答に応答して、パーティション４２はブロック１０６において放棄コールを行う。当記述分野においては様々な放棄コールが知られており、一般に、物理プロセッサ１２をハイパーバイザ４６に部分的に引き渡すように機能する。
【００４１】
図４は図１および図２のハードウェア・システムおよびソフトウェア・システムによって実行可能な典型的な１組のステップを有するフローチャート１２０を示す。より具体的には、図４のステップは図３のプロセスによって作成された照会コールに応答し、図２のハイパーバイザ４６の共用サービス部４８によって実行される。より具体的に図４のブロック１２４を参照すると、ハイパーバイザはブロック１２４においてパーティション４２から照会通信を受領する。照会通信を受領するのに応答して、ハイパーバイザ４６はブロック１２６において、ハイパーバイザ４６のために何らかの仕事が保留されているか否かを判断する。たとえば、ハイパーバイザ４６はハイパーバイザ・パーティション５９のために仕事が保留されているか否かを判断する。
【００４２】
ハイパーバイザ４６がブロック１２６においてハイパーバイザ・パーティション５０のために仕事が保留されていると判断した場合、ハイパーバイザ４６の共用サービス部４８はブロック１２８において仕事保留中なる応答をパーティション４５２に送付する。上述したように、仕事保留中なる応答が生成されるのは、パーティション４２に提案される仕事に割り込みをもたらす可能性のある時間期間内に、ハイパーバイザ４６が物理プロセッサ１２または他のリソースを必要とすることが予期されるときである。
【００４３】
あるいは、ハイパーバイザ４６がブロック１２６においてそれが保留中の仕事を有していないと判断した場合、共用サービス部４８はブロック１３０において保証期間を記録する。このプロセスはパーティション４２の仮想プロセッサ１３の制御ブロック４９に当該保証期間を記録するステップを含む。制御ブロック４９はたとえばバインド済みの状態を特定するのに有用なメモリから成る。
【００４４】
次いで、ハイパーバイザ４６はブロック１３２においてパーティション４２に保証期間を送付する。ここで議論しているように、保証応答はパーティション４２にハイパーバイザのパーティションまたは他のパーティションに再割り当てされたその物理プロセッサ１２の処理サイクルを有していなくとも、それがパーティションの仕事を完遂するために先に進みうることを保証するように機能する。この目的のために、保証応答はその間にパーティション４２がハイパーバイザ４６から割り込みをかけられることなく、その仕事を完遂しうるある時間期間すなわち保証期間を含んでいる、あるいはそうではなく、それに関連付けられている。保証期間はアプリケーションの仕様に従って設定できる、そして、様々な種類の仕事のために様々な保証期間を設定できる、ということを当業者は認識しうる。
【００４５】
図５は図３のプロセスによって作成される放棄コールに応答して図２のハイパーバイザ４６の共用サービス部４８が実行するステップを有するフローチャート１４０である。より具体的に図５のブロック１４２を参照すると、ハイパーバイザ４６の共用サービス部４８はパーティション４２から放棄コールを受領する。この放棄コールによって、物理プロセッサ１２または他のリソースがハイパーバイザ４６に実質的に引き渡される。ブロック１４２でハイパーバイザ４６において仕事が保留中である場合、ハイパーバイザ４６はブロック１４４において仮想プロセッサ１３を引き続いて優先使用し、そのリソースを利用する。たとえば、ハイパーバイザ４６は物理プロセッサ１２を用いて必要な主記憶ダンプを実行する。物理プロセッサ１２の制御はブロック１４６においてパーティション４２に返され、そのときハイパーバイザ４６は放棄コールへのリターン（戻り）を生成する。
【００４６】
図６は保留中の仕事、たとえばハイパーバイザ・パーティション５０のために保留中の仕事に応答して、図２のハイパーバイザ４６の共用サービス部４８が実行するステップを有するフローチャート１５０である。より具体的に図６のブロック１５１を参照すると、ハイパーバイザ４６の共用サービス部４８はハイパーバイザ・デクリメンタ割り込みを生成する。これはリソースの制御をハイパーバイザ４６に付与するように機能する。このようなハイパーバイザ・デクリメンタ割り込みは通常、周期的に生成される。ブロック１５２において、ハイパーバイザ４６はそれが保留中の仕事を有する、と判断する。次いで、ハイパーバイザ４６はブロック１５４において保証期間は有効であるか否かを判断する。ＹＥＳであれば、図６のブロック１５４、１５６に示すように、ハイパーバイザ４６は保証期間が満了しないかぎり仮想プロセッサ１３を強制排除しない。
【００４７】
あるいは、ブロック１５４において、ハイパーバイザ４６が実行すべき仕事を有し、かつ、保証期間が満了している場合、ハイパーバイザ４６はブロック１５８において物理プロセッサまたは他のリソースに対する当該パーティションのアクセス権を強制排除する。ブロック１５８におけるこの強制排除には、物理プロセッサ１２から仮想プロセッサ１４を取り除くことが含まれている。次いで、ハイパーバイザ４６は仮想プロセッサ１４を実行可能キュー４７に入れる。実行可能キュー４７は、仕事を有しているとともにハイパーバイザ４６がそれらを物理プロセッサ１２にディスパッチするのを待ち受けている仮想プロセッサのリストを含んでいる。事前に設定された時間の後、ハイパーバイザ４６はブロック１６０において物理プロセッサをパーティション４２の制御に返す。
【００４８】
様々な実施形態の記述によって本発明を説明したけれども、そして、これらの実施形態は考えうるかぎり詳細に記述されているけも、特許請求の範囲の範囲をそのような詳細に限定すること、すなわち形はどうあれ制限することは本発明の意図ではない。たとえば、「保証（guarantee)」応答および「仕事保留中なる（work pending）」応答、 および「照会要求（inquiry request)」は説明を目的として使用されており、記述は代わりに使用されうる通信の種別と名前を限定するように使用すべきではない。したがって、付加的な利点と変更例が当業者に容易に明らかになる。それゆえ、本発明はそのより広い側面において、特定の詳細、すなわち代表的な装置および方法、ならびに、ここに示すとともに記述した説明を目的とした例に限定されない。たとえば、上述したプロセスは、パーティションがマルチスレッド型プロセッサもしくは同時マルチスレッディングをサポートするプロセッサまたは双方の上で実行している場合に実行される、ということを当業者は認識しうる。そのような例においては、プロセッサの制御をハイパーバイザに引き渡す放棄コールを行う必要のあるプロセッサのスレッドはただ１つである。別の実施形態では、パーティションはハイパーバイザから仕事保留中なる応答を受領するのに応答して、仕事を実行しない（すなわちアイドル状態にある）というのではなく、敏感でない仕事を実行する、ということを当業者はさらに認識しうる。したがって、出願人の一般的な発明概念の本旨と範囲を逸脱することなく、そのような詳細からの脱却をなしうる。
【図面の簡単な説明】
【００４９】
【図１】本発明と一致するコンピュータのブロック図である。
【図２】図１のコンピュータの主要なソフトウェア・コンポーネントとリソースのブロック図である。
【図３】図２の物理リソースに対する保証された中断されないアクセスを求める目的のために、図２のパーティションによって開始されるステップを有するフローチャートである。
【図４】図３において作成される照会コールに応答して、図２のハイパーバイザの共用サービス部によって遂行されるステップを有するフローチャートである。
【図５】図３において作成される放棄コールに応答して、図２のハイパーバイザの共用サービス部によって遂行されるステップを有するフローチャートである。
【図６】保留中の仕事に応答して、図２のハイパーバイザの共用サービス部によって遂行されるステップを有するフローチャートである。
【符号の説明】
【００５０】
１２  システム・プロセッサ
１６  キャッシュ・サブシステム
１７  主記憶装置
２０  Ｉ／Ｏバス接続機構
２２  ワークステーション・コントローラ
２４  記憶装置コントローラ
４２  パーティション（Ａ）
４４  パーティション（Ｂ）
４６  ハイパーバイザ
４７  実行可能キュー
４８  共用サービス
４９  制御ブロック
５０  ハイパーバイザ・パーティション
５１  ディスパッチャ
６２  バス１
６４  バス２
６６  バス３
６８  ＤＡＳＤ
７０  制御パネル
７２  テープ
７４  光ディスク
７６  ＬＡＮ
７８  光ディスク
８０  ＤＡＳＤ
８２  ＬＡＮ
８４  ＬＡＮ
８６  ＤＡＳＤ
８８  ＤＡＳＤ
【図１】
2006127524.tif 000003
【図２】
2006127524.tif 000004
【図３】
2006127524.tif 000005
【図４】
2006127524.tif 000006
【図５】
2006127524.tif 000007
【図６】
2006127524.tif 000008