(57)【要約】個々のメモリ・プールに対応する閾値が到達された状態にあることに応答して、メモリの個々のプールからメモリが解放される。全体のメモリ・プールは、複数のプロセッサからアクセス可能なシステム・ワイド・メモリ・プールを形成する。個々のメモリ・プールのための閾値に到達するときに、ページ・スティーラ法が実行され、対応するメモリ・プールからメモリを解放する。ページ・スティーラ法がアプリケーションのデータ需要に適応させるのに十分な速さでページを解放できない場合には、遠隔メモリが用いられ、データを格納する。続いてローカル・メモリ領域から解放されたメモリは、アプリケーションのメモリ需要を満足させるために、再度用いられる。１つの実施例において、メモリ親和性を個々のアプリケーション・ベースで設定することができるため、アプリケーションを稼動するプロセッサにとってローカルであるメモリ・プールの間で親和性が維持される。
2006515444.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・システムにおける所与のプロセッサによって実行されるアプリケーションにローカル及び遠隔のメモリ・プールからメモリを割り当てるための方法であって、
指定された閾値に到達するまで前記アプリケーションが前記ローカル・メモリ・プールにデータを格納することを可能にするステップと、
前記閾値に到達することに応答して前記ローカル・メモリ・プール内のメモリを解放するステップと、
前記アプリケーションのメモリ需要を満足させるほどには十分速やかにメモリが前記ローカル・メモリ・プールから解放されない場合に、前記アプリケーションが前記遠隔メモリ・プールにデータを格納することを許容するステップと、
からなる方法。
【請求項２】
前記メモリの解放が、最近までの間に最も用いられることがなかったページのスティーリング処理によって実行される請求項１に記載の方法。
【請求項３】
１つ又はそれ以上のアプリケーションについて、前記ローカル・メモリ・プール内のメモリを利用することについての優先性を示す優先メモリ親和性フラグを設定することをさらに含む請求項１に記載の方法。
【請求項４】
前記優先メモリ親和性フラグを前記アプリケーションに対応するアプリケーション制御領域から読み取ることをさらに含み、前記可能にするステップと前記解放するステップと前記許容するステップの各々が、前記アプリケーションに対応する前記優先メモリ親和性フラグが設定されたとする判断に応答して実行される請求項３に記載の方法。
【請求項５】
コンピュータ・システムにおける所与のプロセッサによって実行されるアプリケーションにローカル及び遠隔のメモリ・プールからメモリを割り当てるためのシステムであって、
指定された閾値に到達するまで前記アプリケーションが前記ローカル・メモリ・プールにデータを格納することを可能にするための手段と、
前記閾値に到達することに応答して前記ローカル・メモリ・プール内のメモリを解放するための手段と、
前記アプリケーションのメモリ需要を満足させるほどには十分速やかにメモリが前記ローカル・メモリ・プールから解放されない場合に、前記アプリケーションが、前記遠隔メモリ・プールにデータを格納することを許容するための手段と、
を含むシステム。
【請求項６】
複数個のプロセッサと、
複数個のメモリ・プールであって、各々が前記プロセッサによってアクセス可能であり、各メモリ・プールが前記プロセッサの内の１つにとってはローカル・メモリ・プールであり、他の前記プロセッサにとっては遠隔メモリ・プールである複数個のメモリ・プールと、
請求項５に記載されたメモリ割り当てを行うためのシステムと、
を含む情報処理システム。
【請求項７】
解放するための前記手段が、最近までの間に最も用いられることがなかったページのスティーリング処理によって実行される請求項５又は６に記載のシステム。
【請求項８】
１つ又はそれ以上のアプリケーションのために、前記ローカル・メモリ・プール内のメモリを利用することについての優先性を示す優先メモリ親和性フラグを設定するための手段と、
前記優先メモリ親和性フラグを前記アプリケーションに対応するアプリケーション制御領域から読み取るための手段と
をさらに含み、
前記可能にするための手段と前記解放するための手段と前記許容するための手段の各々が、前記アプリケーションに対応する優先メモリ親和性フラグが設定されたとする判断に応答して実行される、
請求項５、６、７のいずれか１つに記載のシステム。
【請求項９】
コンピュータ・システム上で作動させられたとき、前記請求項１から４のいずれかに記載の方法を遂行する、コンピュータで動作可能な媒体上に格納されたコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、プロセッサを優先性を有するメモリ・プールに割り当てるためのシステム及び方法に関する。もっと詳細に述べると、本発明は、様々なプロセッサに対応するメモリ・プールに閾値を設定し、その閾値に到達したときにメモリ・プールをクリーニングするためのシステム及び方法に関する。
【背景技術】
【０００２】
最新のコンピュータ・システムは益々複雑になり、多くの場合に、複数のプロセッサ及び複数のメモリのプールを利用する。単一のコンピュータ・システムは、複数のプロセッサのグループを含み、これらグループの各々が高速バスに接続され、このバスが、プロセッサによりメモリのデータを読み取り、メモリに書き込むことを可能にする。複数のプロセッサは、これらのコンピュータ・システムが複数の命令を同時に実行することを可能にする。逆に、単一のプロセッサは、そのスピードに関係なく、一度に１つの命令を実行することができるにすぎない。
【０００３】
マルチ・プロセッサ・システムは、２つ又はそれ以上のプロセッサが共通のランダム・アクセス・メモリ（ＲＡＭ）へのアクセスを共有するシステムである。マルチ・プロセッサ・システムは、ユニフォーム・メモリ・アクセス（ＵＭＡ）システム及びノン・ユニフォーム・メモリ・アクセス（ＮＵＭＡ）システムを含む。名称が意味するように、ＵＭＡタイプのマルチ・プロセッサ・システムは、メモリ・アドレスの全てが概略同じ時間に到達可能となるように設計されているのに対し、ＮＵＭＡシステムにおいては、メモリ・アドレスの幾つかが他のメモリ・アドレスに比べて速く到達できるように設計される。特に、ＮＵＭＡシステムにおいては、アドレス・スペース全体がプロセッサのいずれによっても到達可能であるが、「ローカル」メモリは、「遠隔」メモリに比べて速く到達可能である。１つのプロセッサ（又はプロセッサのクラスタ）にとって「ローカル」であるメモリは、別のプロセッサ（又はプロセッサのクラスタ）にとって「遠隔」であり、その逆もまた同様である。
【０００４】
（ＮＵＭＡシステムと他のタイプのマルチ・プロセッサ・システムとの両方において）あるメモリ・プールが別のメモリ・プールに比べて到達するのが速いとする理由の１つは、あるプロセッサから遠く離れているデータに到達するときの固有の待ち時間にある。データがプロセッサに到達するためにデータ・バス上を伝送されるのに必要な距離データ需要のために、メモリ・プールがプロセッサに近ければ近いほど、データはより速くプロセッサに到達できるようになる。遠隔プロセッサに到達するのに長時間を要する別の理由は、メモリに到達するために必要とされるプロトコル又はステップにある。例えば、対称型マルチ・プロセッシング（ＳＭＰ）・コンピュータ・システムにおいては、ローカル・メモリではなく遠隔メモリにアクセスするのに用いられるデータ・パス及びバス・プロトコルのために、ローカル・メモリには、遠隔メモリよりも速く到達できるようになる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
メモリ親和性アルゴリズムは、一杯になるまでローカル（すなわち、最速で到達可能な）メモリ・プールのメモリを用い、一杯になった時点で、遠隔メモリ・プールのメモリが用いられる。プロセッサによってアクセス可能なメモリは、システム・ワイド・プールとして取り扱われ、システム・ワイド・プールがある程度まで一杯になったときに、ページがページ・スティーラ（ｓｔｅａｌｅｒ）法を用いてプールから解放される（例えば、最近までの間に最も用いられることがなかった（ＬＲＵ）ページが、ディスクとスワップされる）。メモリのフットプリントがローカル・メモリ・プール内の利用可能な空きメモリを超えると、遠隔メモリが用いられる。このため、システム性能は強い影響を受ける。例えば、膨大な量のデータを用いるアプリケーション・プログラムは、ローカル・メモリ・プールのメモリを急速に枯渇させ、アプリケーションがデータを格納するのに、遠隔メモリを使用しなければならないようになる。ローカル・メモリと遠隔メモリとの組み合わせに対して単一の閾値が適合されるので、ローカル・プールが枯渇した場合にも、遠隔プールが依然として利用可能であり、閾値には到達しないことになる。閾値に到達しなかったという理由で、システムは、遠隔プールを閾値に到達するまで拡張的に利用する。ローカル・プールを用いる方がはるかに効率的である結果、こうした遠隔プールの拡張的利用がなされている間中、非効率が生じる。この能率低下は、アプリケーションがデータを用いて重要な計算作業を実行するときに悪化する。
【課題を解決するための手段】
【０００６】
本発明は、請求項１に記載の方法及び請求項５に記載の対応するシステムを提供する。
【０００７】
したがって、本発明は、個々のメモリ・プールに対応する閾値に到達することに応答して、個々のメモリのプールからメモリを解放する。全体のメモリ・プールは、複数のプロセッサからアクセス可能なシステム・ワイド・メモリ・プールを形成する。
【０００８】
本発明は、それ故に、単一の閾値が組合わされたローカル／遠隔プールに適用されるという制約のある従来技術と決別するものである。したがって、上述の非効率は除去される。閾値は、個々のメモリ・プールの１つ又はそれ以上について設定することができる。閾値に到達するときに、１つ又はそれ以上のページ・スティーラ法が実行され、対応するメモリ・プールから最近までの間に最も用いられることがなかった（ＬＲＵ）ページを解放する。この方法においては、アプリケーションは、そのデータの一層多くを遠隔メモリではなくローカル・メモリに格納することができる。
【０００９】
ローカル・メモリ・プールの空きページは、メモリ需要を満足させるために優先的に用いられる。しかしながら、ページ・スティーラ法がアプリケーションのデータ需要に適応させるのに十分な速さでページを解放できない場合には、遠隔メモリが用いられ、追加データを格納する。この方法においては、システム及び方法は、ローカル・メモリにデータを格納することを目指すが、ローカル・メモリが一杯のときに、アプリケーションが継続して動作するのを阻止したり、その他の形で妨害したりしない。
【００１０】
１つの実施形態において、メモリ親和性を、個々のアプリケーション・ベースで設定することができる。優先メモリ親和性フラグがアプリケーションついて設定され、ローカル・メモリに対してこのアプリケーションが優先性を有することを示す。メモリ親和性フラグが設定されないと、閾値は、個々のメモリ・プールについて維持されない。このようにして、データ集中的なアプリケーションの幾つか、特にデータに関する重要な計算を実行するものは、より良い形でローカル・メモリを利用することができ、システムに含まれる全メモリ・プールについてローカル・メモリ閾値を用いる必要がなくなり、蓄積性能が高められる。
【発明を実施するための最良の形態】
【００１１】
添付図面を参照することによって、本発明をより一層理解することができ、その多くの目的、特徴、利点が当業者に明らかになるであろう。異なる図面における同じ参照番号は、同様の又は同一の項目を表す。
【００１２】
図１は、高速バスと相互接続されたメモリ・プールに整合されているプロセッサ・グループの図である。プロセッサ・グループ１００は、それらのローカル・メモリ・プールとしてメモリ・プール１１０にアクセスできる１つ又はそれ以上のプロセッサを含む。しかしながら、メモリ・プール１１０が一杯である場合には、グループ１００のプロセッサは、他のメモリ・プール（１３０，１６０，及び１８０）を遠隔メモリとして利用することができる。遠隔メモリにおけるデータには、様々なプロセッサを相互接続する高速バス１２０を用いることによって、到達することができる。メモリ・プール１１０のためにローカル・メモリに対する優先的親和性が用いられるときに、メモリ・プール閾値１１５が設定される。メモリ・プール１１０が閾値１１５に到達すると、ページ・スティーラ法を用いて、メモリ・プールからスペースを解放する。このようにして、メモリ・プール１１０内のスペースが解放され、そのことにより、グループ１００のプロセッサにより実行されているアプリケーションは、メモリ・プール１３０，１６０，及び１８０にある遠隔メモリを用いないで、ローカル・メモリ・プール１１０を継続使用することができる。しかしながら、ページ・スティーラ法がメモリ・プール１１０からメモリのページを解放できなかった場合には、プロセッサ・グループ１００のプロセッサは、依然として遠隔メモリに到達することができ、かつこの遠隔メモリを用いることができる。ローカル・メモリがその後で（ページ・スティーラ法によって解放され）利用可能になると、グループ１００のプロセッサは、遠隔メモリではなく、メモリ・プール１００のメモリを再び優先的に用いる。
【００１３】
同様にして、プロセッサ・グループ１２５は、ローカル・メモリ・プール１３０を優先的に用いることができる。メモリ・プール閾値１３５を、メモリ・プール１３０のために設定することができる。ページ・スティーラ法は、閾値１３５に到達したときに、メモリ・プール１３０からメモリのページを解放する。処理がメモリを十分速やかに解放できなかった場合には、グループ１２５のプロセッサは、高速バスを介して遠隔メモリ１１０、１６０、及び１８０のメモリをこれまでどおりに用いることができる。遠隔メモリは、メモリがメモリ・プール１３０から解放されるまで用いられ、その時点で、グループ１２５におけるプロセッサは、再びメモリ・プール１３０に位置するメモリを優先的に用いる。
【００１４】
メモリ・プール（１１０、１３０、１６０、及び１８０）の各々について、優先メモリ親和性フラグを用いることができるため、そのプロセッサの内の１つによって実行されているアプリケーションがローカル・メモリの優先的使用を要求したときに、プロセッサ・グループにとってローカルであるメモリが優先的に用いられることになる。さらに、様々なメモリ・プールに設定されたメモリ・プール閾値（１１５、１３５、１６５、及び１８５）は、それぞれのプールごとに異なるレベルか又は同様のレベルで設定することができる。例えば、メモリ・プールの各々が１ギガバイト（１ＧＢ）のメモリを含む場合には、閾値１１５は、メモリ・グループ１００が利用可能なメモリの９５％に達したときとして設定することができ、閾値１３５は９０％に設定することができ、閾値１６５は９８％に設定することができ、かつ閾値１８５は９２％に設定することができる。閾値が実際のメモリ・プールの大きさに近く（例えば、プールの大きさの９９％）設定されると、対応するプロセッサの１つにおいて実行中のアプリケーションが遠隔メモリを用いることになる確率が高まる。他方、閾値が実際のメモリ・プールの大きさ（例えば、プールの大きさの８０％）から離れた値に設定されると、ページ・スティーラ法を実行するのに費やされる時間量が増すことになるが、対応するプロセッサにおいて実行中のアプリケーションが遠隔メモリを用いることになる確率を低下させる。
【００１５】
別の実施形態においては、優先メモリ親和性フラグが用いられず、原則として、システム全体を通して、ローカル・メモリが優先的に用いられる。この実施形態においては、様々なメモリ・プールについての閾値レベルは、構成設定を通じて、プールの各々について同じ又は（上述したように）異なるレベルに設定することができる。
【００１６】
プロセッサ・グループ１００及び１２５と同様に、プロセッサ・グループ１５０及び１７５は、ローカル・メモリ・プール（それぞれに、１６０及び１８０）を有する。これらのローカル・メモリ・グループを、それらプロセッサのそれぞれによって、優先的に用いることができる。メモリ・プールの各々は、それぞれ、メモリ・プール閾値１６５及び１８５を有する。上述したように、プールにおいて用いられるメモリがそれぞれの閾値に達したときに、ページ・スティーラ法がプールの各々について用いられ、メモリを解放する。ローカル・メモリが利用可能でない場合には、必要なだけのローカル・メモリが利用可能になる（すなわち、ページ・スティーラ法によって解放される）まで、高速バス１２０を利用することによって、遠隔メモリが取得される。プロセッサ・グループ１５０のための遠隔メモリは、メモリ・プール１１０、１３０、及び１８０を含み、プロセッサ・グループ１８０のための遠隔メモリは、メモリ・プール１１０、１３０、及び１６０を含む。
【００１７】
図２は、ページ・スティーラ法を起動し、所与の閾値に達している個々のメモリ・プールに応答して、メモリ・プールをクリーン・アップするメモリ・マネジャの図である。メモリ・マネジャ２００は、メモリ・プール２２０、２４０、２６０、及び２８５を管理するプロセスである。メモリ・プールの各々はメモリ・プールの閾値を有し、それに到達したときに、それに起因して、メモリ・マネジャがページ・スティーラ法を起動し、対応するメモリ・プールからメモリを解放する。
【００１８】
メモリ・プール２２０が、使用済みスペース２２５及び空きスペース２３０を備えるものとして示されている。示された例において、メモリ・プール２２０の使用済みスペースは、メモリ・プールについて設定された閾値２３５を超えている。閾値に到達することに応答して、メモリ・マネジャ２００は、メモリ・プール２２０からメモリを解放するページ・スティーラ法２１０を起動する。ローカル・メモリとしてメモリ・プール２２０を用いるプロセッサが、データを格納する必要がある場合には、メモリ・マネジャは、データが空きスペース２３０にうまく収まるかどうかを判断する。データは、それが空きスペース２３０に比べ小さい場合に、メモリ・プール２２０に格納される。そうでない場合には、メモリ・マネジャは、データを遠隔メモリ（メモリ・プール２４０、２６０、又は２８５）に格納する。
【００１９】
メモリ・プール２４０が、使用済みスペース２４５及び空きスペース２５０を備えるものとして示されている。示された例において、メモリ・プール２４０における使用済みスペースは、メモリ・プールについて設定された閾値２５５を超えていない。したがって、ページ・スティーラ法は、メモリ・プール２４０からスペースを解放するために、起動されてはいない。ローカル・メモリとしてメモリ・プール２４０を用いるプロセッサがデータを格納する必要がある場合には、メモリ・マネジャは、データが空きスペース２５０にうまく収まるどうかを判断する。データは、それが空きスペース２５０に比べて小さい場合に、メモリ・プール２４０に格納される。そうでない場合には、メモリ・マネジャは、データを遠隔メモリ（メモリ・プール２２０、２６０、又は２８５）に格納する。
【００２０】
メモリ・プール２６０が、使用済みスペース２６５及び空きスペース２７０を備えるものとして示されている。示された例において、メモリ・プール２６０の使用済みスペースは、メモリ・プールについて設定された閾値２７５を超えていない。したがって、ページ・スティーラ法は、メモリ・プール２６０からスペースを解放するために起動されていない。ローカル・メモリとしてメモリ・プール２６０を用いるプロセッサがデータを格納する必要がある場合に、メモリ・マネジャは、データが空きスペース２７０に収まるかどうかを判断する。データが空きスペース２７０に比べて小さい場合には、該データはメモリ・プール２６０に格納される。そうでない場合には、メモリ・マネジャは、データを遠隔メモリ（メモリ・プール２２０、２４０、又は２８５）に格納する。
【００２１】
メモリ・プール２８５が、使用済みスペース２８８及び空きスペース２９０を備えるものとして示されている。メモリ・プール２２０について示された例と同様に、メモリ・プール２８５の使用済みスペースは、メモリ・プールについて設定された閾値２９５を超えている。閾値に到達したことに応答して、メモリ・マネジャ２００は、ページ・スティーラ法２８０を起動して、メモリ・プール２８５からメモリを解放する。ローカル・メモリとしてメモリ・プール２８５を用いるプロセッサがデータを格納する必要がある場合には、メモリ・マネジャは、空きスペース２９０にある利用可能なメモリのページを用いる。これらのページが枯渇した場合には、メモリ・マネジャは、遠隔メモリ（メモリ・プール２２０，２４０，又は２６０）にあるページを用いる。さらに、メモリのページがページ・スティーラ法２８０によって解放されていくにつれ、遠隔メモリのページを用いるのに代えて、新しく利用可能になるこれらのローカル・メモリのページが用いられる。
【００２２】
図３は、個々のメモリ・プールが与えられた閾値に到達すること、及びプールが設定済みの優先メモリ親和性フラッグを有することに応答して、ページ・スティーラ法を起動し、メモリ・プールをクリーン・アップするメモリ・マネジャの図である。この図は、上記した図２と同様であるが、図３は、優先メモリ親和性フラグの使用を導入するものである。
【００２３】
図３に示す例において、優先メモリ親和性フラグ３１０は、メモリ・プール２２０及び２４０について「オン」に設定される。このフラグ設定は、プール２２０及び２４０が、それらの対応するプロセッサに優先性をもたせるローカル・メモリ・プールであることを示す。したがって、メモリ閾値２３５及び２５５が、それぞれのメモリ・プールについて設定される。メモリ・プール２２０における使用済みスペースが閾値２３５を超えるため、メモリ・プール２２０からスペースを解放するために、ページ・スティーラ法２１０が起動されている。
【００２４】
他方、優先メモリ親和性フラグ３２０は、メモリ・プール２６０及び２８５について「オフ」に設定される。このフラグ設定は、プール２６０及び２８５が、個々のメモリ・プール閾値を有しないことを示す。したがって、たとえメモリ・プール２８５に極く僅かの空きスペースしか残っていない場合でも、メモリ・プールのいずれかからページを解放するために、ページ・スティーラ法が起動されることはない。システム・ワイド・メモリの利用がシステム全体に及ぶ閾値に達したときに、メモリは、メモリ・プール２６０及び２８５から解放される。その時点で、１つ又はそれ以上のページ・スティーラ法が起動され、システム・ワイド・メモリを含む様々なメモリの全てからメモリのページを解放する。
【００２５】
図４は、メモリ・マネジャの初期設定及び優先メモリ・プールへのプロセッサの割り当てを示すフローチャートである。４００で初期設定処理が始まり、ここで、構成データ４２０から第１メモリ・プールのための閾値が検索される（ステップ４１０）。１つの実施例においては、閾値は各メモリ・プールのために事前設定されており、構成データ４２０は不揮発性格納デバイスに格納される。別の実施形態においては、構成データ４２０がアプリケーションによって要求される閾値を含み、閾値レベルは、特定アプリケーションについて調整することができるか、又は最適化することができる。検索された閾値は、第１メモリ・プールに適用される（ステップ４３０）。
【００２６】
コンピュータ・システムにおいてもっと多くのメモリ・プールがあるかどうかの判断がなされる（判断４４０）。もっと多くのメモリ・プールがある場合には、判断４４０は、構成データ４２０から次のメモリ・プール（ステップ４６０）のための構成値を検索する「イエス」分岐４５０へ分岐し、ループバックして該メモリ・プールのための閾値を設定する。このループは、閾値の全てがメモリ・プールの全てについて設定されるまで続き、その時点で、判定４４０が「ノー」分岐４７０へ分岐する。
【００２７】
システム作動において、メモリは、仮想メモリ・マネジャを用いて管理される（定義済み処理４８０、図５及びさらなる詳細についての対応する記述を参照されたい）。その後に４９０で、処理が終了（すなわち、システムがシャットダウン）する。
【００２８】
図５は、様々な閾値条件に応答してページ・スティーラ法を起動するメモリ管理処理を示すフローチャートである。メモリ管理処理は５００で始まり、ここで、メモリ要求が、プロセッサ５１０に含まれるプロセッサの１つから受信される（ステップ５０５）。
【００２９】
プロセッサに対応し、システム・ワイド・メモリ・プール５２０に含まれるローカル・メモリ・プールは、利用可能スペースについて検査される（ステップ５１５）。ローカル・メモリ・プールに要求を満足させるのに十分なメモリがあるかどうかに関する判断がなされる。ローカル・メモリ・プールにメモリが十分にない場合には、判断５２５が「ノー」分岐５３０へ分岐し、ここで、メモリ・プール（すなわち、遠隔メモリ）がさらにあるかどうかに関する別の判断がなされ、使用可能スペースについてチェックされる（判断５３５）。メモリ・プールが別にある場合には、決定５３５が「イエス」分岐５４０へ分岐し、ここで、次のメモリ・プールが選択され、処理がループバックして、遠隔メモリ・プールにスペースが十分にあるかどうかを判断する。このループは、（１）十分な使用可能スペースを備えるメモリ・プールが見つけられるか、又は（２）チェックするメモリ・プールがもはやなくなるまで、のいずれかまで続く。一切の（遠隔又はローカルの）メモリ・プールがスペースを十分にもたない場合には、判断５３５が「ノー」分岐５５０へ分岐し、ここで、ページ・スティーラ法が起動され、１つ又はそれ以上のメモリ・プールからメモリのページを解放する（ステップ５５５）。
【００３０】
他方、要求を満足させる十分な空きメモリを備える（ローカル又は遠隔の）メモリ・プールが見つけられた場合には、判断５２５が「イエス」分岐５６０へ分岐し、ここで、メモリ要求が実行される（ステップ５６５）。メモリ要求が実行された後に、要求を実行するのに用いられたメモリ・プールにおける使用済みスペースが、メモリ・プールについて設定された閾値を超えているかどうかについての判断がなされる（判断５７０）。閾値に到達していない場合には、判断５７０は「ノー」分岐５７２へ分岐し、５９５で処理が終了する。
【００３１】
他方、閾値に到達している場合には、決定５７０は「イエス」分岐５７４に分岐し、ここで、優先メモリ親和性フラグが用いられ、メモリ・プールに対して設定されているかどうかについて、判断がなされる（判断５７５）。優先メモリ親和性フラグが、（１）システムによって用いられていない、又は（２）システムによって用いられており、かつメモリ・プールに対して設定されている、のいずれかの場合には、判断５７５が「イエス」分岐５８０へ分岐し、ここで、ページ・スティーラ法が起動され、メモリ・プールからメモリのページを解放する（ステップ５８５）。他方、優先メモリ親和性フラグが用いられており、かつメモリ・プールに対して設定されていない場合には、決定５７５は、ページ・スティーラの起動を迂回する「ノー」分岐５９０へ分岐する。その後、５９５でメモリ管理処理が終了する。
【００３２】
本発明の好ましい実施形態の１つは、１つのアプリケーション、すなわち、例えばコンピュータのランダム・アクセス・メモリに常駐することができるコード・モジュールにおける一組の命令（プログラム・コード）である。コンピュータに要求されるまで、その一組の命令は、例えばハード・ディスク・ドライブ上の別のコンピュータ・メモリに、或いは（ＣＤ  ＲＯＭにおける最終的使用のための）光学ディスク又は（フロッピー（登録商標）ディスクにおける最終的使用のための）フロッピー（登録商標）ディスクなどの移動可能な格納媒体に格納することができるか、或いはインターネット又は他のコンピュータ・ネットワークを経由してダウンロードすることができる。したがって、本発明は、コンピュータで用いられるコンピュータ・プログラムとして実現することが可能である。さらに、記述した様々な方法は、ソフトウェアによって選択的に作動されるか又は再構成される汎用コンピュータにおいて都合よく実施されるものであるが、当業者であればまた、こうした方法が、ハードウェアにおいて、ファームウェアにおいて、又は要求された方法ステップを実行するように構成された、さらに専用化された装置において実行できるということを認識するであろう。
【図面の簡単な説明】
【００３３】
【図１】高速バスと相互接続されたメモリ・プールに整合されているプロセッサ・グループの図である。
【図２】ページ・スティーラ法を起動し、個々のメモリ・プールが与えられた閾値に到達していることに応答して、メモリ・プールをクリーン・アップするメモリ・マネジャの図である。
【図３】個々のメモリ・プールが与えられた閾値に到達すること、及びプールが設定済みの優先メモリ親和性フラッグを有することに応答して、ページ・スティーラ法を起動し、メモリ・プールをクリーン・アップするメモリ・マネジャの図である。
【図４】メモリ・マネジャの初期設定及び優先メモリ・プールへのプロセッサの割り当てを示すフローチャートである。
【図５】様々な閾値条件に応答してページ・スティーラ法を起動するメモリ管理処理を示すフローチャートである。
【図１】
2006515444.tif 000003
【図２】
2006515444.tif 000004
【図３】
2006515444.tif 000005
【図４】
2006515444.tif 000006
【図５】
2006515444.tif 000007