(57)【要約】  複数のプロセスをサポートするようにされたコンピュータシステムの複数のリソースの割付を管理する方法は、マスタポリシーに従って、照会する複数のポリシーモジュールのうちの１つを選択するステップを含み、各々のポリシーモジュールは、複数のプロセスのうちの１つ以上によって必要とされるリソースの割付と関連付けられ、かつそれを管理する。次に選択されたポリシーモジュールに対して、照会が発せられ得る。発せられた照会に応答して、複数のリソースのうちの１つの割付の要求が受取られ得る。複数のリソースのうちの要求された１つを指定するリソース割付命令は次に、ディスパッチャに対して発せられ得、ディスパッチャは、選択されたリソースを選択されたプロセスに結び付けるように設定される。リソース割付命令が次に実行され得、実行するステップは、複数のリソースのうちの要求された１つを、選択されたポリシーモジュールと関連付けられた１つまたは複数のプロセスに結び付けるのに有効である。
2005513587.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムであって、
リソースと、
プロセスと、
第１のポリシーモジュールとを含み、前記ポリシーモジュールは、前記プロセスに関連付けられ、そして、前記プロセスに対する前記リソースの割付を要求するリソース割付要求を発するように少なくとも適合され、前記コンピュータシステムはさらに、
マスタポリシーを含み、前記マスタポリシーは、ポリシーモジュール照会スケジュールに従って前記第１のポリシーモジュールに照会し、前記リソース割付要求を受け取り、そして対応するリソース割付命令を発するように設定され、前記コンピュータシステムはさらに、
ディスパッチャを含み、前記ディスパッチャは、前記リソース割付命令に従って、前記要求されたリソースを前記プロセスに結び付けるように設定された、コンピュータシステム。
【請求項２】
前記プロセスは、複数のプロセスのうちの１つであり、前記第１のポリシーモジュールは、複数のポリシーモジュールのうちの１つであり、前記複数のポリシーモジュールのうちの少なくとも１つは、前記複数のプロセスのうちの少なくとも１つに関連付けられ、前記マスタポリシーは、前記複数のポリシーモジュールに選択可能に照会するように適合された、請求項１に記載のコンピュータシステム。
【請求項３】
前記マスタポリシーは、設定可能な統計的な照会分布に従って、前記複数のポリシーモジュールの各々に照会するように適合された、請求項２に記載のコンピュータシステム。
【請求項４】
前記マスタポリシーは、前記複数のポリシーモジュールのうちの選択されたポリシーモジュールに、前記複数のポリシーモジュールのうちの他のポリシーモジュールのいずれかに照会する前に、照会するように適合された、請求項２に記載のコンピュータシステム。
【請求項５】
前記プロセスはアプリケーションを含む、請求項１に記載のコンピュータシステム。
【請求項６】
前記リソースは、前記コンピュータシステムにアクセス可能な複数のリソースのうちの１つである、請求項１に記載のコンピュータシステム。
【請求項７】
前記リソースは、データ構造、処理サイクル、記憶装置、共有メモリ、入出力ポート、プロセスおよび別のコンピュータシステムを含むグループから選択される、請求項１に記載のコンピュータシステム。
【請求項８】
前記第１のポリシーモジュールに関連付けられた第２のポリシーモジュールをさらに含み、前記第２のポリシーモジュールは、前記第１のポリシーモジュールが前記リソース割付要求を発しない場合に、前記マスタポリシーによって照会されたとき、前記リソース割付要求を発するように適合された、請求項１に記載のコンピュータシステム。
【請求項９】
前記第１のポリシーモジュールは、選択可能に変更できるポリシーモジュールパラメータを含み、前記ポリシーモジュールパラメータの値は、前記リソース割付要求の内容に影響を与える、請求項１に記載のコンピュータシステム。
【請求項１０】
前記ポリシーモジュールパラメータは、実行時に、前記プロセスによって選択可能に変更できる、請求項９に記載のコンピュータシステム。
【請求項１１】
前記マスタポリシーモジュールは、選択可能に変更できるマスタポリシーパラメータを含み、前記マスタポリシーパラメータの値は、前記マスタポリシーの前記ポリシーモジュール照会スケジュールに影響を与える、請求項１に記載のコンピュータシステム。
【請求項１２】
前記マスタポリシーパラメータは、実行時に、選択可能に変更できる、請求項１１に記載のコンピュータシステム。
【請求項１３】
第３のポリシーモジュールをさらに含み、前記第３のポリシーモジュールは、前記プロセスに関連付けられ、そして前記マスタポリシーによって照会されたときに、前記リソース割付要求を発するように適合された、請求項１に記載のコンピュータシステム。
【請求項１４】
前記複数のプロセスのうちのいくつかは、あるクラスのプロセスのメンバーであり、前記複数のポリシーモジュールのうちの少なくとも１つは、そのクラスのプロセスのいずれかのメンバーの代わりに、前記リソース割付要求を発するように適合された、請求項２に記載のコンピュータシステム。
【請求項１５】
前記複数のリソースのうちのいくつかは、クラスのリソースのメンバーであり、前記複数のポリシーモジュールのうちの少なくとも１つは、プロセスの代わりに、前記クラスのリソースのメンバーであるいずれかのリソースのリソース割付要求を発するように適合された、請求項６に記載のコンピュータシステム。
【請求項１６】
ポリシーデータ構造をさらに含み、前記ポリシーデータ構造は、前記複数のプロセスのうちの少なくとも１つに関連付けられた前記複数のポリシーモジュールの各々への参照を含み、前記マスタポリシーは、前記ポリシーデータ構造において参照されたポリシーモジュールのみに照会するように設定された、請求項２に記載のコンピュータシステム。
【請求項１７】
ユーティリティポリシーモジュールをさらに含み、前記ユーティリティポリシーモジュールは、前記複数のプロセスのいずれにも関連付けられず、前記マスタポリシーによって呼出されたときに、前記マスタポリシーパラメータの少なくとも１つの選択的な変更および少なくとも１つの予め定められたジョブの実行を、選択的に行なうように設定された、請求項１１に記載のコンピュータシステム。
【請求項１８】
前記ポリシーデータ構造は、前記マスタポリシーによって選択可能に呼出されたユーティリティポリシーモジュールへの参照をさらに含み、前記ユーティリティポリシーモジュールは、前記マスタポリシーパラメータの少なくとも１つの選択的な変更および少なくとも１つの予め定められたジョブの実行を、選択的にもたらすように設定された、請求項１６に記載のコンピュータシステム。
【請求項１９】
前記ユーティリティポリシーモジュールは、選択可能な間隔で、前記ポリシーデータ構造の再生成をもたらすように設定された、請求項１８に記載のコンピュータシステム。
【請求項２０】
第２のポリシーモジュールをさらに含み、前記第１のポリシーモジュールは、前記第２のポリシーモジュールを、前記リソース割付要求を照会するポリシーモジュールとして、前記マスタポリシーに知らせるようにされた、請求項１に記載のコンピュータシステム。
【請求項２１】
前記複数のポリシーモジュールの各々にアクセス可能なリソースデータ構造をさらに含み、前記リソースデータ構造は、前記コンピュータシステムにアクセス可能な前記複数のリソースの各々の１つへの参照を含む、請求項６に記載のコンピュータシステム。
【請求項２２】
前記複数のポリシーモジュールのうちの少なくとも１つは、リソース割付要求を発する
前に、前記リソースデータ構造にアクセスするように設定されている、請求項２１に記載のコンピュータシステム。
【請求項２３】
複数のプロセスをサポートするように適合されたコンピュータシステムの複数のリソースの割付を管理する方法であって、
マスタポリシーに従って、照会する複数のポリシーモジュールのうちの１つを選択するステップを含み、前記複数のポリシーモジュールの各々のポリシーモジュールは、前記複数のプロセスのうちの少なくとも１つによって要求されたリソースの割付に関連付けられ、かつそれを管理し、前記方法はさらに、
前記複数のポリシーモジュールのうちの前記選択されたポリシーモジュールに対して照会を発するステップと、
前記発せられた照会に応答して、前記複数のリソースのうちの１つの割付の要求を受取るステップと、
ディスパッチャに対してリソース割付命令を発するステップとを含み、前記ディスパッチャは、選択されたリソースを選択されたプロセスに結び付けるように設定され、前記リソース割付命令は、前記複数のリソースのうちの要求されたリソースを指定し、前記方法はさらに、
前記リソース割付命令を実行するステップを含み、前記実行するステップは、前記複数のリソースのうちの前記要求されたリソースを、前記複数のポリシーモジュールのうちの選択された１つに関連付けられた、前記複数のプロセスのうちの少なくとも１つに結び付けるのに有効である、コンピュータシステムの複数のリソースの割付を管理する方法。
【請求項２４】
前記マスタポリシーは、前記選択するステップを引起こして、設定可能な統計的な照会分布に従って、前記複数のポリシーモジュールの各々に照会するように適合される、請求項２３に記載の方法。
【請求項２５】
前記マスタポリシーは、前記選択するステップを引起こして、前記複数のポリシーモジュールのうちの１つを、前記複数のポリシーモジュールのうちの他のいずれか１つを選択する前に、選択するように適合される、請求項２３に記載の方法。
【請求項２６】
前記複数のポリシーモジュールは、前記選択されたポリシーモジュールに関連付けられた階層的に下位のポリシーモジュールを含み、前記リソース割付要求が、前記選択されたポリシーモジュールから受取られないときに、前記選択するステップは、前記階層的に下位のポリシーモジュールを選択する、請求項２３に記載の方法。
【請求項２７】
前記複数のポリシーモジュールのうちひとつのポリシーモジュールは、パラメータ化されてポリシーモジュールパラメータを含み、その値は前記リソース割付要求の内容に影響を与え、前記方法は、前記ポリシーモジュールパラメータを選択的に変更するステップをさらに含む、請求項２３に記載の方法。
【請求項２８】
前記選択的に変更するステップは、前記パラメータ化されたポリシーモジュールに関連付けられたプロセスによって、実行時に実行される、請求項２７に記載の方法。
【請求項２９】
前記マスタポリシーモジュールは、選択可能に変更できるマスタポリシーパラメータを含み、その値は、前記複数のポリシーモジュールのうちのどれが前記選択するステップによって選択されるかに影響を与える、請求項２３に記載の方法。
【請求項３０】
実行時に、前記マスタポリシーパラメータの値を設定するステップをさらに含む、請求項２９に記載の方法。
【請求項３１】
前記複数のプロセスのうちのいくつかは、あるクラスのプロセスのメンバーであり、前記複数のポリシーモジュールのうちの少なくとも１つは、前記クラスのプロセスのいずれかのメンバーの代わりに、リソース割付要求を発するステップを実行する、請求項２３に記載の方法。
【請求項３２】
前記複数のリソースのうちのいくつかは、あるクラスのリソースのメンバーであり、前記複数のポリシーモジュールのうちの少なくとも１つは、前記クラスのリソースのメンバーであるいずれかのリソースのリソース割付要求を発するステップを実行する、請求項２３に記載の方法。
【請求項３３】
前記コンピュータシステムは、ポリシーデータ構造をさらに含み、前記ポリシーデータ構造は、前記複数のプロセスのうちの少なくとも１つに関連付けられた、前記複数のポリシーモジュールの各々への参照を含み、前記マスタポリシーは、前記選択するステップを引起こして、前記ポリシーデータ構造において参照されたポリシーモジュールのみから選択する、請求項２３に記載の方法。
【請求項３４】
前記コンピュータシステムは、前記複数のプロセスのいずれにも関連付けられないユーティリティポリシーモジュールを含み、前記ユーティリティポリシーモジュールは、前記マスタポリシーによって呼出されたときに、少なくとも１つの予め定められたステップが実行されるようにし、前記少なくとも１つの予め定められたステップは、マスタポリシーパラメータを設定するためのマスタポリシーパラメータ設定ステップ、および予め定められたジョブを実行するための実行ステップを含むグループから選択される、請求項２９に記載の方法。
【請求項３５】
前記ポリシーデータ構造は、ユーティリティポリシーモジュールへの参照をさらに含み、前記ユーティリティポリシーモジュールは、前記マスタポリシーによって呼出されたときに、少なくとも１つの予め定められたステップが実行されるようにし、前記少なくとも１つの予め定められたステップは、マスタポリシーパラメータを設定するためのポリシーパラメータ設定ステップ、および予め定められたジョブを実行するための実行ステップを含むグループから選択される、請求項３３に記載の方法。
【請求項３６】
前記予め定められたジョブは、選択可能な間隔で、前記ポリシーデータ構造を再生成するステップを含む、請求項３５に記載の方法。
【請求項３７】
前記コンピュータシステムは、前記複数のポリシーモジュールの各々にアクセス可能なリソースデータ構造をさらに含み、前記リソースデータ構造は、前記コンピュータシステムにアクセス可能な前記複数のリソースの各々の１つへの参照を含み、前記複数のポリシーモジュールのうちの少なくとも１つは、リソース割付要求を発する前に、前記リソースデータ構造にアクセスするステップを実行する、請求項２３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の背景
１．発明の分野
本発明は一般的に、コンピュータシステムにおけるリソースの動的割付に関する。
【背景技術】
【０００２】
２．関連技術の説明
一定の組のシステムリソース（たとえば共有データ、入出力、記憶スペース）が１組のプロセスの間で共有されるときは常に、集中リソースディスパッチャは通常、これらのリソースを割当て、かつ取戻すことを任されている。このようなスケジューリングは従来、単一のポリシーに従って実行され、この単一のポリシーは典型的にリソースディスパッチャにおいてハードコードされている。図１は、関連技術に従って、リソース１０４，１０６および１０８を、コンピュータシステムにおけるアプリケーションおよび／またはプロセス１１０，１１２および１１４に割付け、かつそれらのリソースをスケジュールするための単一のポリシー１０２を含む、システム１００の例を示す。そこに示されるように、単一のポリシー１０２は、（ラウンドロビン、先入れ先出し（ＦＩＦＯ）等の）ある予め決められたポリシーに従って、１１６，１１８および１２０に示したように、リソースをアプリケーション１１０，１１２および１１４に与える。代わりに、アプリケーションは、同様に矢印１１６，１１８および１２０によって示したように、同期的にまたは非同期的に、必要とされるリソースをポリシー１０２およびディスパッチャ１０２に要求し得る。いずれにせよ、単一の割付／スケジューリングポリシーおよびディスパッチャ１０２は次に、リソース１０４，１０６および１０８をアプリケーション１１０，１１２および１１４に選択的に割付得る。すなわち、図１に示したように、単一の割付／スケジューリングポリシーおよびディスパッチャ１０２は、たとえばリソース１０４をアプリケーション１に、リソース２をアプリケーション３に、およびリソース３をアプリケーション２に結び付け得る。
【０００３】
あいにく、かなり用途の広いソフトウェアシステムにおいて、現在のおよび将来のタスク全ての要件を最適に満たす際に効果的である、単一のスケジューリングポリシーを考案することは困難である、またはおそらく不可能であろうと考えられている。たとえば、新しいアプリケーションを図１のシステム１００に追加する場合、単一のポリシー１０２は、そこにリソースを効率的に割付けかつディスパッチしないかもしれない。これは当初ポリシー１０２を設計したシステム設計者が、おそらく、新しく追加されたアプリケーションのリソース要件の予備知識を持っていなかったためである。システム設計者は、トレードオフを行なうよう強いられることが多く、これは当初考案されたアプリケーション、およびシステム設計者がシステム１００で適度に実行することができるであろうと考えるアプリケーションに対し、せいぜい、かろうじて容認可能なサービスしか与えられない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
単一のポリシー環境において、リソースの割付の効率を向上させるための、一般的に容認された２つのスキームがある。第１に、単一のポリシーが好適にパラメータ化され、かつこれらのパラメータを動的に変更することができる場合、実行時におけるリソースのスケジューリングに影響を与えることが可能であり得る。しかしながら、相変わらず、同じポリシーがすべてのプロセスに適用されるため、最適な態様でそれらのリソースのニーズを満たすことができない。第２に、リソースおよびプロセスまたはアプリケーションを（静的または動的な態様で）クラスに区分して、クラス内のすべてのリソースが同じポリシ
ーによって管理されるようにし得る。そうすると、各々のクラス内で、適切な態様で、リソースをスケジュールすることが可能になる。しかしながら、この区分のため、１つのクラスに区分されたプロセスおよび／またはアプリケーションは、他のクラスに区分されたリソースにアクセスできないかもしれず、新しいタイプのアプリケーションまたはプロセスは、既存のクラスのうちの１つの中で適合するようにされる必要があるであろう、または新しいプロセスもしくはアプリケーションのために、別のクラスが生成されなければならないかもしれない。
【０００５】
これらのスキームの双方に共通の問題は、パラメータを修正する、またはプロセス／リソースを区分すると、新しいリソーススケジューリングポリシーのオンザフライの生成ができないということである。システム設計者は、しばしば、現在のおよび将来のアプリケーションが必要とし得る、考え得るリソース割付ポリシーのすべてを正確に予測し実現するという、困難または不可能な課題に直面する。
【０００６】
したがって、コンピュータシステムにおいて、リソースをより効率的に割付けるための方法およびシステムが必要とされる。
【０００７】
発明の概要
それゆえに、本発明の目的は、コンピュータシステムにおいて、リソースを効率的に割付けるための、方法およびシステムを提供することである。
【課題を解決するための手段】
【０００８】
したがって、本発明に従ったコンピュータシステムは、リソース、プロセス、第１のポリシーモジュール、マスタポリシーおよびディスパッチャを含む。ポリシーモジュールは、プロセスに関連付けられ、少なくとも、リソースのプロセスへの割付を要求する、リソース割付要求を発するようにされる。マスタポリシーは、ポリシーモジュール照会スケジュールに従って第１のポリシーモジュールに照会し、リソース割付要求を受取り、かつ対応するリソース割付命令を発するように設定されている。ディスパッチャは、リソース割付命令に従って、要求されたリソースをプロセスに結び付けるように設定されている。
【０００９】
さらに他の実施例に従うと、プロセスは、複数のプロセスのうちの１つであるかもしれず、第１のポリシーモジュールは、複数のポリシーモジュールのうちの１つであるかもしれない。複数のポリシーモジュールのうちの少なくとも１つは、複数のプロセスのうちの少なくとも１つに関連付けられ、マスタポリシーは、複数のポリシーモジュールに選択可能に照会するようにされる。マスタポリシーは、設定可能な統計的な照会分布に従って、複数のポリシーモジュールの各々に照会するようにされ得る。代わりに、マスタポリシーは、複数のポリシーモジュールのうちの選択された１つに、複数のポリシーモジュールのうちの他のいずれか１つに照会する前に、照会するようにされ得る。プロセスはアプリケーションを含み得る。リソースは、たとえばデータ構造、処理サイクル、記憶装置、共有メモリ、入出力ポート、プロセスまたは別のコンピュータシステムといった、コンピュータシステムにアクセス可能な複数のリソースのうちの１つであるかもしれない。システムは、第１のポリシーモジュールに関連付けられた第２のポリシーモジュールをさらに含み得る。第１のポリシーモジュールがリソース割付要求を発さない場合に、マスタポリシーによって照会されたとき、第２のポリシーモジュールは、リソース割付要求を発するようにされ得る。第１のポリシーモジュールは、選択可能に変更できるポリシーモジュールパラメータを含み得る。ポリシーモジュールパラメータの値は、リソース割付要求の内容に影響を与え得る。ポリシーモジュールパラメータは、たとえば、実行時にプロセスによって選択可能に変更できるかもしれない。マスタポリシーモジュールは、実行時に選択可能に変更可能であり得る、選択可能に変更できるマスタポリシーパラメータを含み得る。マスタポリシーパラメータの値は、マスタポリシーのポリシーモジュール照会スケジュール
に影響を与え得る。システムは、第３のポリシーモジュールをさらに含み得、第３のポリシーモジュールは、プロセスに関連付けられ、かつマスタポリシーによって照会されたとき、リソース割付要求を発するようにされる。複数のプロセスのうちのいくつかは、あるクラスのプロセスのメンバであり得、複数のポリシーモジュールのうちの少なくとも１つは、そのクラスのプロセスのいずれかのメンバの代わりに、リソース割付要求を発するようにされ得る。複数のリソースのうちのいくつかは、あるクラスのリソースのメンバであり得、複数のポリシーモジュールのうちの少なくとも１つは、１つのまたは複数のプロセスの代わりに、そのクラスのリソースのメンバであるいずれかのリソースのリソース割付要求を発するようにされ得る。システムはまた、ポリシーデータ構造を含み得、ポリシーデータ構造は、複数のプロセスのうちの１つ以上に関連付けられた、複数のポリシーモジュールの各々への参照を含む。マスタポリシーは、ポリシーデータ構造で参照されたポリシーモジュールのみに照会するように設定され得る。
【００１０】
システムは、たとえば、複数のプロセスのいずれにも関連付けられず、かつマスタポリシーによって呼出されたときに、マスタポリシーパラメータの選択的な変更および／または１つ以上の予め定められたジョブの実行を選択的に行なうように設定され得る、１つ以上のユーティリティポリシーモジュールをさらに含み得る。ポリシーデータ構造は、マスタポリシーによって選択可能に呼び出されたこれらのユーティリティポリシーモジュールへの参照をさらに含み得る。たとえば、ユーティリティポリシーモジュールは、たとえば選択可能な間隔でポリシーデータ構造を再生成させるように設定され得る。システムは、第２のポリシーモジュールをさらに含み得、マスタポリシーに対する第２のポリシーモジュールを、リソース割付要求のための照会に対するポリシーモジュールと認識するように適合され得る。システムは、複数のポリシーモジュールの各々にアクセス可能なリソースデータ構造をさらに含み得る。リソースデータ構造は、コンピュータシステムにアクセス可能な、複数のリソースの各々の１つへの参照を含み得る。複数のポリシーモジュールのうちの１つ以上は、（たとえば）リソース割付要求を発する前に、リソースデータ構造にアクセスするように設定され得る。
【００１１】
本発明はまた、複数のプロセスをサポートするようにされたコンピュータシステムの複数のリソースの割付を管理する方法であり、上記方法は、マスタポリシーに従って、照会する複数のポリシーモジュールのうちの１つを選択するステップを含み、複数のポリシーモジュールの各々のポリシーモジュールは、複数のプロセスのうちの少なくとも１つによって要求されたリソースの割付に関連付けられ、かつ割付を管理する。上記方法はさらに、複数のポリシーモジュールのうちの選択された１つへの照会を発するステップと、発せられた照会に応答して、複数のリソースのうちの１つを割付ける要求を受取るステップと、ディスパッチャへのリソース割付命令を発するステップとを含み、ディスパッチャは選択されたリソースを選択されたプロセスに結び付けるように設定され、リソース割付命令は、複数のリソースのうちの要求された１つを指定する。上記方法はさらに、リソース割付命令を実行するステップを含み、上記実行するステップは、複数のリソースのうちの要求された１つを、複数のポリシーモジュールのうちの選択された１つに関連付けられた、複数のプロセスのうちの少なくとも１つに結び付けるのに有効である。
【００１２】
たとえば、マスタポリシーは、選択するステップを引起して、設定可能な統計的な照会分布に従って複数のポリシーモジュールの各々に照会するようにされ得る。代わりに、マスタポリシーはたとえば、選択するステップを引起して、複数のポリシーモジュールのうちの１つを、複数のポリシーモジュールのうちの他のいずれか１つを選択する前に、選択するように適合され得る。複数のポリシーモジュールは、選択されたポリシーモジュールに関連付けられた階層的に下位のポリシーモジュールを含み、選択するステップは、リソース割付要求が、選択されたポリシーモジュールから受取られないときに、階層的に下位のポリシーモジュールを選択し得る。複数のポリシーモジュールのうちの１つ以上はパラ
メータ化されて、ポリシーモジュールパラメータを含み得、その値はリソース割付要求の内容に影響を与え得る。上記方法は、ポリシーモジュールパラメータを選択的に変更するステップをさらに含み得る。このような選択的に変更するステップは、実行時にたとえば、パラメータ化されたポリシーモジュールに関連付けられた、１つまたは複数のプロセスによって、実行され得る。マスタポリシーは、選択可能に変更できるマスタポリシーパラメータを含み得る。マスタポリシーパラメータの値は、複数のポリシーモジュールのうちどれが選択するステップによって選択されるかに影響を及ぼし得る。方法は、実行時にマスタポリシーパラメータの値を設定するステップをさらに含み得る。複数のプロセスのうちのいくつかは、あるクラスのプロセスのメンバであるかもしれず、複数のポリシーモジュールのうちの少なくとも１つは、そのクラスのプロセスのいずれかのメンバに代わって、リソース割付要求を発するステップを実行し得る。複数のリソースのうちのいくつかは、あるクラスのリソースのメンバであるかもしれない。複数のポリシーモジュールのうちの１つ以上は、そのクラスのリソースのメンバであるいずれかのリソースのリソース割付要求を発するステップを実行し得る。コンピュータシステムは、ポリシーデータ構造をさらに含み得、ポリシーデータ構造は、複数のプロセスのうちの少なくとも１つに関連付けられた複数のポリシーモジュールの各々への参照を含み、マスタポリシーは、選択するステップを引起して、ポリシーデータ構造において参照されたポリシーモジュールからのみ選択し得る。
【００１３】
コンピュータシステムは、複数のプロセスのうちのいずれにも関連付けられない１つ以上のユーティリティポリシーモジュールを含み得る。マスタポリシーによって呼出されたとき、ユーティリティポリシーモジュールは、たとえば、マスタポリシーパラメータを設定するためのマスタポリシーパラメータ設定ステップおよび／または予め定められたジョブを実行するための実行ステップ等の、少なくとも１つの予め定められたステップを実行させ得る。ポリシーデータ構造は、これらのユーティリティポリシーモジュールへの参照をさらに含み得る。予め定められたジョブは、たとえば選択可能な間隔で、ポリシーデータ構造を再生成するステップを含み得る。コンピュータシステムは、複数のポリシーモジュールの各々にアクセス可能なリソースデータ構造をさらに含み得る。リソースデータ構造は、コンピュータシステムにアクセス可能な複数のリソースの各々の１つへの参照を含み得る。複数のポリシーモジュールのうちの少なくとも１つは、（たとえば）リソース割付要求を発する前に、リソースデータ構造にアクセスするステップを実行し得る。
【発明を実施するための最良の形態】
【００１４】
発明の説明
機能の説明
図２は、本発明に従って、リソースをスケジュールし、かつリソースをアプリケーションおよび／またはプロセスに割付けるように設定された、コンピュータシステム２００を示している。そこに示されるように、本発明のコンピュータシステム２００は、Ｒ１，Ｒ２，Ｒ３およびＲ４といった複数のリソース２１０を含み、および／または複数のリソースへのアクセスを有し得る。このようなリソースは、データ構造、１ブロックの共有メモリ、記憶スペース、入出力（Ｉ／Ｏ）ポート等といった、供給を制限されたいかなるものも含み得る。システム２００はまた、（たとえば、個々のアプリケーション、プロセス、ＪＡＶＡ（Ｒ）サーブレット等の）複数のプロセス２０８を実行するように設定され得る。
【００１５】
図１の１０２に示したような、単一の統合されたリソース割付、スケジューリングおよびディスパッチングポリシーモジュールではなく、本発明はリソース割付の意思決定をアプリケーション領域にエクスポートすることを構想して、各々のアプリケーションまたはプロセス（本明細書においてこの２つの用語は交換可能である）は、どのリソース割付およびスケジューリングポリシーが、それらのリソース要件にとって最もよく機能するのか
を決定し得る。したがって、本発明は、各々のプロセスＡ１，Ａ２，Ａ３，Ａ４，Ａ５およびＡ６に対応し、少なくとも１つのリソース割付ポリシーモジュールをそれと関連付ける。図２の例示において、ポリシーモジュールＰ１はプロセスＡ１に関連付けられ、ポリシーモジュールＰ２はプロセスＡ２に関連付けられ、プロセスＡ３およびＡ４の双方はポリシーモジュールＰ３に関連付けられる。ポリシーモジュールＰ４は、現在のところ、いかなるプロセスまたはアプリケーションにも関連付けられておらず、ポリシーモジュールＰ５はプロセスＡ５に関連付けられ、ポリシーモジュールＰ６およびＰ７の双方は、プロセスＡ６に関連付けられている。最後に、（以下でより詳細に説明する）ユーティリティポリシーは、いかなるプロセスまたはアプリケーションにも関連付けられていない。図２は、プロセスおよびポリシーモジュールについての可能性の全領域を示しておらず、システム２００は、全体を、図２において示したようにまたは異なる態様で編成された、より多くのまたはより少ない数のポリシーモジュール（およびユーティリティポリシーモジュール）、プロセスならびに／またはリソースを含み得る。本発明に従って、図２に示したポリシーモジュールＰ１，Ｐ２，Ｐ３，Ｐ５，Ｐ６およびＰ７の各々は、システム２００で実行する少なくとも１つのプロセスと関連付けられ、かつそれらが関連付けられているプロセスによって使用されるために、１つ以上のリソースＲ１，Ｒ２，Ｒ３およびＲ４の割付を要求するように設定される。すなわち、本発明に従った各々のプロセスＡ１，Ａ２，Ａ３，Ａ４，Ａ５およびＡ６は、それに関連付けられた少なくとも１つのリソース割付ポリシーを有し、リソース割付ポリシーは、それが関連付けられるプロセスの特定のリソース要件に適合される。この態様で、本発明では、多数のアプリケーションまたはプロセス特定のリソース割付およびスケジューリングポリシーモジュールが、同じシステム２００において共存することができる。本発明は、（図２のＡ１，Ａ２，Ａ３，Ａ４，Ａ５およびＡ６に示したような）アプリケーションおよびプロセスのための符号を設計しかつ書込む人がまさに、（リソースＲ１，Ｒ２，Ｒ３およびＲ４といった）リソースが、いつどのようにしてスケジュールされかつ、彼らが設計し、書込んだアプリケーションに割付けられるのかを設計するのに、最も適した人物である、という想定に少なくとも部分的に基づいている。各々のプロセスについてのリソース割付およびスケジューリング決定を、ポリシーモジュールによって実現される少なくとも１つのプロセス特定のポリシーによって管理できるようにすることにより、コンピュータシステムで実行されるプロセスおよび／またはアプリケーションの実際のコンピュータコードを書込む人は、そのための最も効率的なリソース割付およびスケジューリングポリシーも設計するという環境が与えられる。
【００１６】
システム２００はまた、１つ以上のマスタポリシーモジュール２０２を含む。本発明の実施例に従うと、マスタポリシーモジュール２０２は、ポリシーモジュール照会スケジュールに従って、ポリシーモジュール（Ｐ１，Ｐ２...）に照会するように設定されたマスタポリシーを実現する。このような照会に応答して、ポリシーモジュール（Ｐ１，Ｐ２...）は、リソース割付要求を発し、リソース割付要求は次に、マスタポリシーモジュール２０２によって受取られる。ポリシーモジュール（Ｐ１，Ｐ２...）によって発せられたリソース割付要求は、発しているポリシーモジュールに関連付けられたアプリケーションによって必要とされるリソースの識別を含む。照会されたポリシー（Ｐ１，Ｐ２...）からリソース割付要求を受取ったら、マスタポリシーモジュール２０２は、対応するリソース割付命令２０５を発し、このリソース割付命令はディスパッチャモジュール２０４に、照会されたポリシーによって要求されたリソースを、照会されたポリシーに関連付けられたプロセスに結び付るように命令し得る。本発明のディスパッチャモジュール２０４の主な機能は、マスタポリシーモジュール２０２によって命令されるように、指定されたリソースを指定されたアプリケーションに結び付ることである。たとえば、マスタポリシーモジュール２０２からの照会に応答して、ポリシーモジュールＰ２は、リソースＲ３（Ｒ３は、たとえば入出力ポートである）の割当の要求を発し得る。マスタポリシーモジュール２０２は、リソースＲ３をＡ２に割当てることを求めるポリシーモジュールＰ２の要求を受け取り、ディスパッチャモジュール２０４への命令２０５を発して、リソースＲ３を利
用可能であればアプリケーションまたはプロセスＡ２に割付ける。ディスパッチャモジュール２０４は次に、この命令２０５を受け取り、図２の矢印２２０によって示されるように、リソースＲ３をアプリケーションＡ２に結び付ける。ディスパッチャモジュール２０４が、要求されたリソースを、リソース割付要求を発したポリシーと関連付けられたアプリケーションに結び付けた後で、ディスパッチャモジュール２０４は、マスタポリシーモジュール２０２に対し、それがリソース割付命令２０５を実行し終えたという信号を送り、かつそこから別のリソース割付命令２０５を要求し得る。同様に、図２はプロセスＡ１に結び付けられたリソースＲ１およびプロセスＡ５に結び付られたリソースＲ４を示している。図２に示したように、本発明は、リソース割付ポリシーを、リソースを要求しているアプリケーションに結び付けるメカニズムから効率的に分離する。
【００１７】
本発明に従うと、複数のポリシーモジュールＰ１−Ｐ７  ２０６は同時に、複数のプロセスＡ１−Ａ６  ２０８のためのリソースユーティリティポリシーを指図し得る。したがって、マスタポリシーモジュール２０２は、どのポリシーモジュールＰ１−Ｐ７が、所与の時間にリソースを要求することができるかに関する、より上位のレベルの決定を行なわなければならない。本発明に従うと、マスタポリシーモジュール２０２は、どのポリシーモジュールがリソース割付要求を照会するのかを選択することによって、この決定を行なう。したがって、本発明に従うと、リソース割付およびスケジューリングの決定は、マスタポリシーモジュール２０２によって実現される「大域の（global）」ポリシーおよび、個々のポリシーモジュールＰ１−Ｐ７によって実現されるアプリケーションまたはプロセス特定のポリシーの間で分けられる。
【００１８】
本発明の実施例に従ったマスタポリシーモジュール２０２は、設定可能な統計的な照会分布に従って、複数のポリシーモジュールＰ１−Ｐ７  ２０６の各々に照会するように適合されかつ設定らされ得る。多様な、使用され得る可能な分布がある。たとえば、ポリシーモジュールＰ１，Ｐ２およびＰ３がシステム２００における唯一のポリシーモジュールであったならば、例示の分布は２０／７０／１０の照会分布に従うかもしれない。その場合、マスタポリシーモジュール２０２によって発せられる照会の２０％はポリシーモジュールＰ１に向けられ、照会の７０％はポリシーモジュールＰ２に対して発せられ、マスタポリシーモジュール２０２によって発せられる照会の１０％はポリシーモジュールＰ３に向けられる。いかなる好適な分布もマスタポリシーモジュール２０２によって使用されかつ実現され得る。たとえば、ポリシーモジュールＰ１−Ｐ６の各々は、ラウンドロビンの態様で順々に照会され得る。さらに代わりに、マスタポリシーモジュール２０２は、複数のポリシーモジュールＰ１−Ｐ７  ２０６のうちの選択された１つに、複数のポリシーモジュール２０６のうちのいずれかの他の１つに照会する前に、照会するようにされ得る。たとえば、ポリシーモジュールＰ１は、残りのポリシーモジュールＰ２−Ｐ７のうちいずれかが照会される前に、照会されるように選択され得る。その後で、ポリシーモジュールＰ１がマスタポリシーモジュール２０２に対してリソース割付要求を発さなければ、残りのポリシーモジュールＰ２−Ｐ７が順に、予め定められた命令に従って、または先に詳細に説明した、ある予め定められた照会分布に従って、照会され得る。いかなる所望の照会分布も、リソースを複数のプロセス２０８に分配するマスタポリシーモジュール２０２内で実現され得る。
【００１９】
時として、システム管理者の意図した要件を正確に反映する、有限の、離散した照会分布を生成するのは困難であるかもしれない。実際、小さい偏差は、長期的に蓄積しかつ顕著になり得るスケジューリングのゆがみをもたらすかもしれない。たとえば、上述のように照会分布の比率が２０／７０／１０の場合、同じポリシーモジュールに対するクラスタ化された照会（たとえば、上記で明らかにされた例を使用すると、照会のうち７０％はポリシーモジュールＰ２に発せられる）によって、照会されたポリシーモジュールは、「思考時間（think time)」の不足のため、その決定の機会を繰返し失うことを強いられるか
もしれず、これは、このポリシーモジュールから、その照会の公平な分担を効果的に奪うことになる。このため、大域のポリシーのデータ構造は、定期的に再生成され、再生成プロセスによって生じる当然の多様性は、所望のスケジューリング行為を確実にする。いつこのようなデータ構造が再生成される必要があり得るかに関する決定は、時間依存ではなく、このようなデータ構造がディスパッチャモジュール２０４から経験してきた使用量に依存し得る。
【００２０】
ポリシーモジュールＰ１−Ｐ７は必ずしも決定を行なう必要はない。すなわち、ポリシーモジュールＰ１−Ｐ７は、マスタポリシーモジュール２０２へのリソース割付要求を発する機会を、それによって照会されたときに、失うかもしれない。実際、照会されたポリシーモジュールＰ１−Ｐ７はリソース割付要求を発さないかもしれない。その場合、先に詳細に説明したように、マスタポリシーモジュール２０２は、予め定められた照会分布に基づき、次のポリシーモジュールに移り次のポリシーモジュールに照会し得る。代わりに、ポリシーモジュールがリソース割付要求の発行を、別の、おそらく非常に細かいポリシーモジュールに委託することが可能である。その場合、マスタポリシーモジュール２０２は、照会分布において次のポリシーモジュールに移る前に、リソース割付要求のための非常に細かいポリシーモジュールを呼出すかもしれない。このような非常に細かいポリシーモジュールは、図２の参照２１８に示したように、階層的に下位の、１つのまたは複数のポリシーモジュールとして考えられ得る。実際、２１８に示したように、ポリシーモジュールＰ５１およびＰ５２は、ポリシーモジュールＰ５と関連付けられ、かつポリシーモジュールＰ５よりも階層的に下位である。マスタポリシーモジュール２０２は、あるパラメータの値、外部事象または何らかの規定可能な測定値次第で、リソース割付要求のためにこれらのポリシーモジュールのうちの１つまたは双方に選択可能に照会するように設定され得る。同様に、ポリシーモジュールＰ５１は、１つ以上のリソースＲ１−Ｒ４の割付を要求する機会を、さらに階層的に下位のポリシーモジュールＰ５１１および／またはＰ５１２に委託し得、これらには、アプリケーションまたはプロセスＡ５の代わりに、リソースのためのリソース割付要求を発する機会が与えられることになる。
【００２１】
本発明に従うと、いかなるポリシーモジュールＰ１，Ｐ２...も、ポリシーモジュールＰ５１２の場合に示したように、１つ以上の選択可能に変更できるポリシーモジュールパラメータを含み得る。このようなポリシーモジュールパラメータの値は、ポリシーモジュールによって実現されるポリシーに影響を与え、したがって、そのパラメータ化されたポリシーモジュールによって発せられた、いかなるリソース割付要求の内容にも影響を与え得る。すなわち、マスタポリシーモジュール２０２によって照会されたときに、ポリシーモジュールパラメータの値によって、ポリシーモジュールによって要求されたリソースの同一性が変更され得る。たとえば、ポリシーモジュールパラメータは、パラメータ化されたポリシーモジュールが関連付けられるプロセスによって、実行時に変更され得る。同様に、マスタポリシーモジュール２０２それ自身によって実現されるマスタポリシーは、パラメータ化されて１つ以上のマスタポリシーパラメータを含み、マスタポリシーパラメータは、マスタポリシーのポリシーモジュール照会スケジュールに影響を与え得る。すなわち、パラメータの値は、マスタポリシーモジュール２０２が、選択されたポリシーモジュールＰ１，Ｐ２...に照会する順序および／または頻度を変更し得る。このようなマスタポリシーパラメータはまた、たとえば実行時に選択的に変更され得る。
【００２２】
本発明のさらに他の実施例に従うと、複数のプロセスＡ１−Ａ６  ２０８のうちのいくつかは、あるクラスのプロセスのメンバーとして識別され得る。たとえば、プロセスＡ１，Ａ２，Ａ３およびＡ４は、あるクラスのプロセスのメンバーであるかもしれない。このようなあるクラスのプロセスのメンバーのために、複数のポリシーモジュールＰ１−Ｐ７
２０６の１つ以上は、そのクラスのプロセスの何らかのメンバー（Ａ１，Ａ２，Ａ３またはＡ４）の代わりに、リソース割付要求を発するように適合され得る。このようなプロ
セスのクラスへの分類は、このようなプロセスが、単一のポリシーモジュールまたはポリシーモジュールのグループによって対処され得る同類のリソース要件を共有するとき、適切であり得る。同様に、複数のリソースＲ１，Ｒ２，Ｒ３およびＲ４  ２１０のうちの１つ以上は、参照番号２１２で示したような、あるクラスのリソースのメンバーとして識別され（論理的に分類され）得、リソースＲ１，Ｒ２およびＲ３は同じクラスのリソースの一部を形成する。その場合、複数のポリシーモジュール２０６のうちの１つ以上は、関連付けられたプロセスの代わりに、そのクラス２１２のリソースのメンバーである何らかのリソース（この場合Ｒ１，Ｒ２またはＲ３）に対するリソース割付要求を発するようにされ得る。
【００２３】
図２のシステム２００はまた、２１４に示したように、ポリシーデータ構造を含み得る。このようなポリシーデータ構造２１４は、本発明の実施例に従うと、複数のプロセスＡ１−Ａ６のうちの少なくとも１つと関連付けられた複数のポリシーモジュール２０６の各々への参照を含む。マスタポリシーモジュール２０２は次に、（たとえば）選択可能な間隔で、ポリシーデータ構造２１４にアクセスし、かつポリシーデータ構造２１４において参照されたポリシーモジュールのみに照会するように設定され得る。図２の例示において、各々のポリシーモジュールＰ１−Ｐ７は、少なくとも１つのプロセスＡ１−Ａ６と関連付けられるが、ポリシーモジュールＰ４について、これはプロセスＡ１−Ａ６のいずれにも関連付けられない。したがって、ポリシーデータ構造は、ポリシーモジュールＰ１，Ｐ２，Ｐ３，Ｐ５およびＰ７を列挙するが、ポリシーモジュールＰ４は、プロセスＡ１−Ａ６のいずれにも関連付けられていないため、列挙しない。したがって、プロセスＡ１−Ａ６が実行を終了したとき、その対応するポリシーモジュールは、ポリシーモジュールデータ構造２１４のリストから除かれ、またマスタポリシーモジュール２０２によって実現されるマスタポリシーによって使用される照会分布から除かれ得、それにより、マスタポリシーモジュール２０２によるポリシーモジュールＰ１−Ｐ７の照会の際により良い効率性が達成される。
【００２４】
ポリシーモジュール構造２１４はまた、ポリシーモジュールユーティリティがプロセスＡ１−Ａ６のいずれにも関連付けられていなくても、各々のユーティリティポリシーモジュール（１つ以上のこのようなユーティリティポリシーモジュールがあるかもしれない）への参照を含み得る。本発明に従うと、ユーティリティポリシーモジュールは、マスタポリシーモジュール２０２によって呼出されるとき、さまざまなタスクを実行するように設定され得る。たとえば、ユーティリティポリシーモジュールは、マスタポリシーパラメータを選択的に変更するように設定され得る。たとえば、ユーティリティポリシーモジュールは、１つ以上のマスタポリシーパラメータを変更して、マスタポリシーモジュール２０２が、たとえば時間帯に従って異なった動作をするようにし得る。たとえば、マスタポリシーモジュール２０２は、午前８時半から１０時半の時間、次に再び、午後３時および４時半の間の時間に、ｅメール処理のアプリケーションの実行を最適化するように設定され得る。代わりに、ユーティリティポリシーモジュールは、（サーバの再始動、メールボックスの圧縮等といった）システム保守のジョブ等の、１つ以上の予め定められたジョブ、またはポリシーデータ構造２１４自体の再生成を行なうように設定され得る。さらに代わりに、マスタポリシーモジュール２０２によって呼出されるとき、ユーティリティポリシーは、他のマスタポリシー２０３または２２５のうちの１つがアクティブになるようにし得る。照会分布は、先にほのめかしたように、ユーティリティポリシーモジュールへの参照を含み得る。ユーティリティポリシーモジュールは、マスタポリシーモジュール２０２が、照会分布データ構造を横断し、かつユーティリティポリシーモジュールへの参照に到達する度に、予め定められたタスクを行なうように設定され得る。代わりに、ユーティリティポリシーモジュールは、マスタポリシーモジュール２０２が照会分布構造を何度横断したかを記録し得、それが予め定められたしきい値にヒットしたとき、ユーティリティポリシーモジュールは、（先に列挙した例示のタスク等の）予め定められたタスクが実行さ
れるようにし得る、または長期的に適切なスケジューリングを達成するために照会分布データ構造を再生成し得る。
【００２５】
図２に示したシステム２００はまた、参照２１６に示したように、リソースデータ構造を含み得る。このようなリソースデータ構造は、複数のポリシーモジュールＰ１−Ｐ７の各々にアクセス可能であり、コンピュータシステム２００内の、またはコンピュータシステムにアクセス可能な、複数のリソースＲ１，Ｒ２，Ｒ３およびＲ４  ２１０の各々の１つへの参照を含み得る。リソースがシステム２００に、追加される、または利用可能もしくはアクセス可能にされるとき、たとえば公表モデルを用いて、それらのリソースへの参照が構造２１６に追加され、それにより新たに追加されたリソースは、たとえば、一意のリソース識別子をリソースデータ構造２１６にプッシュする。このようなリソースデータ構造２１６を用いて、すべてのポリシーモジュールＰ１−Ｐ７は、新たに利用可能なリソースを認識させられ、または知らされ得る。たとえば、ポリシーモジュールＰ１−Ｐ７は、そのリソースの領域を、システム２００の起動時に存在したリソースのみとして見なす。代わりに、ポリシーモジュールＰ１−Ｐ７は、それがマスタポリシーモジュール２０２に対して発するリソース割付要求においてどのリソースを識別するかに関する決定を行なう前に、（図２の矢印２１５によって示したように）リソースデータ構造２１６を参考にするよう設定され得る。リソースデータ構造２１６は、利用可能なまたはアクセス可能なリソースＲ１−Ｒ４を列挙するだけでなく、たとえばアイドル状態または使用中である、利用可能またはロックされている等のそれらの状態も列挙し得る。
【００２６】
たとえば、リソースＲ１は、２２４に示したように、アプリケーションＡ１に結び付けられるかもしれない。しかしながら、プロセスＡ２と関連付けられたポリシーモジュールＰ２は、マスタポリシーモジュール２０２によって照会されたとき、プロセスＡ２によって現在必要とされるリソースとして、Ｒ１を識別するリソース割付要求を発し得る。このようなシナリオの考え得る１つの結果として、マスタポリシーモジュール２０２が、ディスパッチャモジュール２０４に対して、スケジューラモジュール２０４にリソースＲ１をプロセスＡ２に結び付けるよう命令するリソース割付命令２０５を発さない。代案として、マスタポリシーモジュール２０２は、ディスパッチャモジュール２０４が、アプリケーションＡ１のリソースＲ１へのロックを中断して、２２２に示したように、リソースＲ１を代わりにプロセスＡ２に結び付けるようにディスパッチャモジュール２０４に命令する、リソース割付命令２０５を発する。さらに代わりに、ポリシーモジュールＰ２は、リソースデータ構造２１６で公開された利用可能なリソースの包括的なリストを参考にして、リソースＲ３が利用可能かつ現在アイドル状態であることを調べて、Ｒ１ではなくＲ３を使用することを決定するかもしれない。ポリシーモジュールＰ２は、マスタポリシーモジュール２０２によって照会されたとき、次に、その関連付けられたプロセス、すなわちプロセスＡ２によって必要とされるリソースとして、リソースＲ３を識別するリソース割付要求を、マスタポリシーモジュール２０２に対して発し得る。リソースデータ構造２１４はしたがって、各々のポリシーモジュールＰ１−Ｐ７が、システム２００に対して利用可能なリソース、およびこれらのリソースの各々の状態を理解できるようにする。さらに代わりに、各々のポリシーモジュールは、それらが必要とし得る特定のリソースまたはリソースの組を含む事象の通知を受けることを承諾し得る。その後で、システム内の事象およびリソースを監視するプロセスは、このような事象を、関心のあるリソースに関する事象を受けることを承諾したポリシーモジュールＰ１−Ｐ７に対して、公開し得る。この態様で、ポリシーモジュールＰ１−Ｐ７は、それらの関連付けられた１つの（または複数の）プロセスが必要とすると思われるすべてのリソースの状態を内部に維持し得る。
【００２７】
本発明は、広範囲に及ぶ適用性を有すると考えられている。たとえば、いかなるキャッシュシステムも、本発明に従って、キャッシュしたデータの保守を管理するアプリケーション特定のポリシーモジュールから利益を獲得し得る。データキャッシュシステムは典型
的に、キャッシュからデータブロックを追放するために、一定の、最低使用頻度（ＬＲＵ）ポリシーを使用する。たとえば、リソースＲ４はキャッシュメモリであるかもしれず、ポリシーモジュールＰ５２は、（たとえば）アプリケーションＡ５のためのキャッシュメモリＲ４でキャッシュされたデータブロックへのアクセスを（他のデューティのうち、）管理し得る。ポリシーモジュールＰ５２は、アプリケーションＡ５に、リソースＲ４でキャッシュされたデータブロックのいくつかを追放する必要があることを通知し得る。アプリケーションＡ５は次に、ポリシーモジュールＰ５２に対し、それがもはや必要としないであろうブロックはどれかを指示し得る。そこでポリシーモジュールＰ５２は、マスタポリシーモジュール２０２によって次に照会されたときに、リソース割付要求を発し、その関連付けられたアプリケーションＡ５によって要求されるリソースとして、リソースＲ４（またはアプリケーションＡ５によって必要とされないとして指示されたデータブロック）を識別し得る。その後で、マスタポリシーモジュール２０２は、ディスパッチャモジュール２０４に対して、ディスパッチャモジュールに、図２の２２６に示したように、リソースＲ４をアプリケーションＡ５に、またはキャッシュメモリリソースＲ４を維持するアプリケーションに、結び付けるように命令する、リソース割付命令２０５を発し得る。アプリケーションＡ５によってもはや必要とされないデータブロックは次に、リソースＲ４から追放または消去され得る。このようなアプリケーションで駆動したデータブロックの追放により、キャッシュメモリＲ４のヒット率を大幅に向上させることができる。この向上の中心的な理由は、アプリケーションは、オペレーティングシステムと比べて、そのデータアクセスパターンを非常に良く理解していると見なされているということであり、したがってキャッシュされたデータブロックに関する決定を行なうのによりよい立場に置かれ得る。
【００２８】
図３は、本発明の実施例に従って、複数のプロセスをサポートするようにされたコンピュータシステムの複数のリソースの割付を管理するための方法のフロー図である。示したように、ステップＳ３１は、ディスパッチャモジュール２０４が、アイドル状態であり、マスタポリシーモジュール２０２からの新しいリソース割付命令２０５のために実行可能であることを示している。たとえば、ディスパッチャモジュール２０４は、最後のリソース割付命令２０５の実行を完了したばかりかもしれない。Ｓ３２に示したように、マスタポリシーモジュール２０２は次に、先に開示したような、（たとえば）重みを付けられた照会分布を指定するマスタポリシーに従って、照会する複数のポリシーモジュールＰ１−Ｐ７のうちの１つを選択し得る。ポリシーモジュールＰ１−Ｐ７の各々（このようなポリシーモジュールの７つが図２に示され、本明細書で説明されているが、本発明はこのようなポリシーモジュールのいかなる数にも限定されないことが理解される）は、（図２に示したＡ１−Ａ６といった）複数のプロセスのうちの１つ以上によって必要とされる（図２のＲ１−Ｒ４に示したような）リソースの割付と関連付けられ、かつそれを管理する。ステップＳ３３では、マスタポリシーモジュール２０２に対し、複数のポリシーモジュールのうちの選択された１つへの照会を発するよう要求する。ステップＳ３４に示したように、照会されたポリシーモジュールがリソースを要求しない（たとえばＮＵＬＬ要求を行なう）場合、方法はステップＳ３２に戻り得る。照会されたポリシーモジュールが１つのまたは複数のリソースを要求する場合、照会されたポリシーモジュールは、マスタポリシーモジュール２０２へのリソース割付要求を公式化し、かつ発し得る。このリソース割付要求は次に、Ｓ３５に示したように、マスタポリシーモジュール２０２によって受けられ得る。Ｓ３６で、マスタポリシーモジュール２０２は次に、ディスパッチャモジュール２０４に対しリソース割付命令２０５を発し得、モジュール２０４は、選択されたリソースを選択されたプロセスに結び付けるように設定される。リソース割付命令２０５は、本発明に従って、複数のリソースのうちの要求された１つを指定する。ディスパッチャモジュール２０４は次に、Ｓ３７に示したように、リソース割付命令２０５を実行し、実行するステップは、複数のリソースのうちの要求された１つを、照会されたポリシーモジュールに関連付けられた１つのまたは複数のプロセスに結び付けるのに有効である。
【００２９】
ハードウェアの説明
図４は、本発明の一実施例が実現され得る演算装置４００のブロック図を示している。演算装置４００は、バス４０１または情報を通信するための他の通信機構、および情報を処理するために、バス４０１と連結されたプロセッサ４０２を含む。演算装置４００は、バス４０１に連結された、プロセッサ４０２によって実行される情報および命令を記憶するためのランダムアクセスメモリ（ＲＡＭ）または他の動的記憶装置４０４（主記憶装置と呼ばれる）をさらに含む。主記憶装置４０４はまた、プロセッサ４０２による命令を実行する際に、一時的変数または他の中間情報を記憶するために使用され得る。演算装置４００はまた、プロセッサ４０２のための静的情報および命令を記憶するために、バス４０１に連結された、読取専用メモリ（ＲＯＭ）および／または他の静的記憶装置４０６を含み得る。磁気ディスクまたは光ディスクといったデータ記憶装置４０７は、情報および命令を記憶するためにバス４０１に連結され得る。モデムまたは（たとえばイーサネット（Ｒ）等の）ネットワークカードといった通信装置４０８もバス４０１に連結されて、図１の１１２に示したようにネットワークへのアクセスを与える。
【００３０】
演算装置４００はまた、バス４０１を介して、情報をコンピュータユーザに表示するための陰極線管（ＣＲＴ）等の表示装置４２１に連結され得る。英数字のおよび他のキーを含む英数字の入力装置４２２は典型的に、情報および命令の選択をプロセッサ４０２に通信するためにバス４０１に連結される。別のタイプのユーザ入力装置は、ユーザ自身の声または、マウス、トラックボールもしくは、方向情報および命令の選択をプロセッサ４０２に通信し、かつ表示装置４２１上でカーソルの動きを制御するための、カーソル方向キーといったカーソル制御装置４２３であるかもしれない。
【００３１】
本発明は、先に開示したように、マルチポリシーモジュールを用いて、リソースをスケジュールするように設定された演算装置４００の使用に関する。一実施例に従うと、メモリ４０４に含まれる命令のシーケンスを実行するプロセッサ４０２に応答して、処理が１つ以上の演算装置４００によって実行され得る。このような命令は、データ記憶装置４０７等の別のコンピュータ読取可能な記録媒体からおよび／または遠隔に位置するサーバから、メモリ４０４に読み込まれ得る。メモリ４０４に含まれる命令のシーケンスの実行によって、プロセッサ４０２は上述の機能性を実現する。代替の実施例において、ハードワイヤード回路をソフトウェア命令の代わりにまたはそれと組合せて使用して、本発明を実現してもよい。したがって、本発明はハードウェア回路およびソフトウェアのいかなる特定の組合せにも限定されない。
【産業上の利用可能性】
【００３２】
本発明は、特に、たとえば図５に示したような、電子商取引（e-commerce)バックエンド５００を実行する高速のサーバ内での展開によく適している。そこに示したように、上記バックエンド５００は、たとえばインターネットを含むコンピュータネットワーク５１０に結合され得る。このような電子商取引バックエンド５００は、１つ以上のサーバ（そのうち例示の３つが参照番号５２０，５３０および５４０で示されている）を含み、例が５６０で示されている複数のアクセス装置からの要求にサービスし得る。アクセス装置５６０は、ネットワーク５１０にアクセスすることが可能なコンピュータ、ハンドヘルド装置および／または他の演算器具を含み得る。サーバ５２０，５３０，５４０は、５５０に示したように、高速接続を介して互いに連結され得る。サーバ５２０，５３０および５４０の各々は、複数のプロセスをサポートし得、本発明は１つ以上のサーバ５２０，５３０および５４０内で有利に配置されて、上述のような態様で、サーバに利用可能なリソースの割付を管理し得る。
【００３３】
先述の詳細な説明で、本発明の好ましい実施例を説明したが、上記の説明は例示的なも
のにすぎず、開示された発明を限定するものではないことを理解すべきである。当業者は、他の代替の実施例およびすべてのこのような実施例が、本発明の範囲内にあると考えられることを認識するであろう。したがって、本発明は、別掲の特許請求の範囲によってのみ限定されるべきである。
【図面の簡単な説明】
【００３４】
【図１】関連技術に従って、コンピュータシステムにおいて、リソースを割付けかつスケジュールする単一のポリシーを示す図である。
【図２】本発明の実施例に従って、複数のプロセスをサポートするようにされたコンピュータシステムの複数のリソースの割付を管理するための、方法およびシステムを示す図である。
【図３】本発明の実施例に従って、複数のプロセスをサポートするようにされたコンピュータシステムの複数のリソースの割付を管理するための方法のフロー図である。
【図４】本発明が実行され得るコンピュータのブロック図である。
【図５】本発明が実現され得る例示的な電子商取引バックエンドのブロック図である。
【図１】
2005513587.tif 000003
【図２】
2005513587.tif 000004
【図３】
2005513587.tif 000005
【図４】
2005513587.tif 000006
【図５】
2005513587.tif 000007
【国際調査報告】
2005513587.tif 000008
2005513587.tif 000009
2005513587.tif 000010
2005513587.tif 000011