(57)【特許請求の範囲】
【請求項１】
サービスの再活性化時間を短縮するための方法であって、
サービスが不活性になった後、前記サービスの処理中に生じたページ・フォールトを検査するステップであって、前記ページ・フォールトをもたらしたアドレスを解析するステップを含む、前記検査するステップと、
前記ページ・フォールトをもたらした前記アドレスを少なくとも１つのプリフェッチ・グループの中にログ記録するステップと、
前記少なくとも１つのプリフェッチ・グループの中のページ・フォールト・データからプリフェッチ決定ツリーを作成するステップであって、前記プリフェッチ決定ツリーは、前記サービス要求中にページが触れられる確率を与える複数のエッジを含む、前記作成するステップと、
再活性化されたサービス要求の後に前記サービスに関する初期ページ・テーブルからのページが、前記プリフェッチ決定ツリーによりプリフェッチされたページとして常駐メモリの中に入っているかどうかを決定するように、前記初期ページ・テーブルからのページを比較するステップであって、前記プリフェッチされたページの中に含められていないページ・テーブルの中のページは、ページインされる、前記比較するステップと、
前記ページ・テーブルを使用して前記サービスを提供するようにハードウェア・プロセッサでプロセスを実行するステップであって、前記ページ・フォールトを実質的に回避する、前記実行するステップと
を備える方法。
【請求項２】
サービスが不活性になった後、前記サービスの処理中に生じたページ・フォールトを前記検査するステップは、再活性化イベントによって非参加モードから学習モードに切り換えられる再活性化時間短縮システムによって提供される、請求項１に記載の方法。
【請求項３】
前記再活性化イベントは、ヘルス・チェックＰＩＮＧ、モニタリングＰＩＮＧ、セキュリティＰＩＮＧ、サイドカーＰＩＮＧ、アプリケーション・エントリ・ポイント、あるいはこれらの組合せを備える、請求項２に記載の方法。
【請求項４】
一括復元のためにイン・パラメータ・ベクトルまたはアウト・パラメータ・ベクトルの中に以前にページアウトされたページを挿入するステップをさらに備える、請求項１に記載の方法。
【請求項５】
前記ページ・フォールトは、マイナー・ページ・フォールト、ソフト・ページ・フォールト、メジャー・ページ・フォールト、ハード・ページ・フォールト、無効ページ・フォールト、またはこれらの組合せを備える、請求項１に記載の方法。
【請求項６】
前記サービスは、クラウド・コンピューティング環境において提供される、請求項１に記載の方法。
【請求項７】
前記再活性化されたサービス要求の後に前記サービスに関する前記初期ページ・テーブルからのページが、プリフェッチされたページとして常駐メモリの中に入っているかどうかを決定するように、前記初期ページ・テーブルからのページを前記比較するステップは、
前記再活性化時間短縮システムを前記学習モードから最適化モードに切り換えるステップと、
エントリ・ポイントを決定するステップと、
前記プリフェッチ決定ツリーにおいて使用するための第１のページ・グループを予測するステップとを備える、請求項２に記載の方法。
【請求項８】
前記第１のページ・グループを前記予測するステップは、エントリ・ポイント・アドレス、ならびに前記エントリ・アドレスにおいて前記ユーザによって要求されている前記サービスのタイプを解析するステップを備える、請求項７に記載の方法。
【請求項９】
一括復元のためにイン・パラメータ・ベクトルまたはアウト・パラメータ・ベクトルの中に前記以前にページアウトされたページを前記挿入するステップは、前記イン・パラメータ・ベクトルまたは前記アウト・パラメータ・ベクトルを入力サブシステムまたは出力サブシステムにサブミットするステップを備える、請求項４に記載の方法。
【請求項１０】
サービスの再活性化時間を短縮するためのシステムであって、
サービスが不活性になった後、前記サービスの処理中のページ・フォールトのアドレスを検査するページ・フォールト・アナライザと、
前記ページ・フォールトをもたらした前記アドレスを少なくとも１つのプリフェッチ・グループの中にログ記録する追跡モジュールと、
前記少なくとも１つのプリフェッチ・グループの中の前記ページ・フォールト・データからプリフェッチ決定ツリーを作成する決定ツリー・モジュールであって、前記プリフェッチ決定ツリーは、サービス要求中にページが触れられる確率を与える複数のエッジを含む、前記決定ツリー・モジュールと、
再活性化されたサービス要求の後に、前記サービスに関するページ・テーブルからのページが、前記プリフェッチ決定ツリーによりプリフェッチされたページとして常駐メモリの中に入っているかどうかを決定するように、前記ページ・テーブルからのページを比較するページ比較モジュールであって、前記プリフェッチされたページの中に含められていない前記ページ・テーブルの中のページは、ページインされる、前記ページ比較モジュールと、
前記ページアウトされたページを、一括復元を介してメモリの中に挿入するページ挿入モジュールと、
前記ページアウトされたページを前記初期ページ・テーブルの中に挿入して、更新されたページ・テーブルをもたらすページ・テーブル更新モジュールと、
前記更新されたページ・テーブルを使用して前記サービスを提供するようにプロセスを実行するプロセス実行モジュールであって、前記実行は、前記ページ・フォールトを実質的に回避する、前記プロセス実行モジュールと
を備えるシステム。
【請求項１１】
前記システムに関して非参加モード、学習モード、および最適化モードを選択するためのモード切換え器をさらに備え、前記ページ・フォールト・アナライザは、前記システムが前記学習モードに入っていることに応答してページ・フォールトのアドレスを検査し、前記ページ比較モジュールは、前記システムが前記最適化モードに入っていることに応答して前記初期ページ・テーブルを解析し、前記システムは、不活性化イベントに応答して前記非参加モードに入る、請求項１０に記載のシステム。
【請求項１２】
前記学習モードは、ヘルス・チェックＰＩＮＧ、モニタリングＰＩＮＧ、セキュリティＰＩＮＧ、サイドカーＰＩＮＧ、アプリケーション・エントリ・ポイント、あるいはこれらの組合せを備える再活性化イベントによって活性化される、請求項１１に記載のシステム。
【請求項１３】
アドレス追跡を可能にするようにプロセスにタグを割り当てるタグ・モジュールをさらに備える、請求項１１に記載のシステム。
【請求項１４】
プリフェッチは、前記サービスを提供するために前記プロセスによって必要とされるのに先立ってメイン・メモリから取得される命令のセットである、請求項１０に記載のシステム。
【請求項１５】
バッテリ・チャージャ・デバイスを貸与するためのプログラムであって、
サービスが不活性になった後、前記サービスの処理中に生じたページ・フォールトを検査するステップであって、前記ページ・フォールトをもたらしたアドレスを解析するステップを含む、前記検査するステップと、
前記ページ・フォールトをもたらした前記アドレスを少なくとも１つのプリフェッチ・グループの中にログ記録するステップと、
前記少なくとも１つのプリフェッチ・グループの中のページ・フォールト・データからプリフェッチ決定ツリーを作成するステップであって、前記プリフェッチ決定ツリーは、前記サービス要求中にページが触れられる確率を与える複数のエッジを含む、前記作成するステップと、
再活性化されたサービス要求の後に前記サービスに関する初期ページ・テーブルからのページが、前記プリフェッチ決定ツリーによりプリフェッチされたページとして常駐メモリの中に入っているかどうかを決定するように、前記初期ページ・テーブルからのページを比較するステップであって、前記プリフェッチされたページの中に含められていないページ・テーブルの中のページは、ページインされる、前記比較するステップと、
一括復元のためにイン・パラメータ・ベクトルまたはアウト・パラメータ・ベクトルの中に以前にページアウトされたページを挿入するステップと、
前記ページ・テーブルを使用して前記サービスを提供するプロセスを実行するステップであって、前記ページ・フォールトを実質的に回避する、前記実行するステップと、をコンピュータに実行させる、プログラム。
【請求項１６】
前記サービスは、クラウド・コンピューティング環境において提供される、請求項１９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、クラウド・ベースのサービスに関し、詳細には、長い不活動の後、クラウド・サービスの初期再活性化応答時間を強化することに関する。
【背景技術】
【０００２】
近年、顧客が、コンピューティング・リソースを利用することを、そのようなコンピューティング・リソースを獲得する資本支出を行うことなしに可能にするクラウド・コンピューティング・サービスが開発されており、展開されている。通常、クラウド・コンピューティング・サービス・プロバイダは、少なくとも１つのプロセッサと、メモリ・ストレージと、１つまたは複数のコンピュータまたはコンピュータ・システムあるいはその両方に対するネットワーク・アクセスとを有する１つまたは複数のコンピュータまたはコンピュータ・システムあるいはその両方を構成する。これらのクラウド・コンピュータ・システムは、任意の数の顧客がコンピュータ・システムによって提供されるサービスにアクセスすることを可能にする任意の数のプロセッサ、メモリ、またはネットワーク・アクセス・デバイス（例えば、ネットワーク・インターフェース・カード（ＮＩＣ））、あるいはこれらの組合せを含むことが可能である。サービスは、数値処理、商取引処理、またはウェブ・ホスティング、あるいはこれらの組合せを含むことが可能であるが、以上には限定されない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、サービスの再活性化時間を短縮するための方法、システム、およびプログラムを提供する。
【課題を解決するための手段】
【０００４】
本原理の態様によれば、クラウド・ベースのサービスの再活性化時間を短縮するための方法が提供される。いくつかの実施形態において、この方法は、サービスが不活性になった後、サービスの処理中に生じたページ・フォールトを検査するステップを含むことが可能であり、前記検査するステップは、ページ・フォールトをもたらしたアドレスを解析するステップと、ページ・フォールトをもたらしたアドレスを少なくとも１つのプリフェッチ・グループの中にログ記録するステップとを含む。プリフェッチ決定ツリーが、その少なくとも１つのプリフェッチ・グループの中のページ・フォールト・データから作成される。プリフェッチ決定ツリーは、サービス要求中にページが触れられる確率を与える複数のエッジを含む。この方法は、再活性化されたサービス要求の後にそのサービスに関する初期ページ・テーブルからのページが、プリフェッチ決定ツリーによりプリフェッチされたページとして常駐メモリの中に入っているかどうかを決定するように、ページを比較するステップを続けることが可能である。前記プリフェッチされたページの中に含められていないページ・テーブルの中のページは、ページインされる。この方法は、以前にページアウトされたページを、一括復元のためにイン・パラメータ・ベクトルまたはアウト・パラメータ・ベクトルの中に挿入するステップを続けることが可能である。ページ・テーブルを使用してサービスを提供するプロセスが、ハードウェア・プロセッサで実行されることが可能であり、前記実行するステップは、ページ・フォールトを実質的に回避する。
【０００５】
本原理の別の態様によれば、サービスの再活性化時間を短縮するためのシステムが提供される。いくつかの実施形態において、このシステムは、サービスが不活性になった後、サービスの処理中のページ・フォールトのアドレスを検査するページ・フォールト・アナライザと、前記ページ・フォールトをもたらしたアドレスを少なくとも１つのプリフェッチ・グループの中にログ記録する追跡モジュールとを含むことが可能である。このシステムは、その少なくとも１つのプリフェッチ・グループの中のページ・フォールト・データからプリフェッチ決定ツリーを作成する決定ツリー・モジュールをさらに含むことが可能である。プリフェッチ決定ツリーは、サービス要求中にページが触れられる確率を与える複数のエッジを含むことが可能である。再活性化されたサービス要求の後に、ページ比較モジュールが、そのサービスに関するページ・テーブルからのページが、プリフェッチ決定ツリーによりプリフェッチされたページとして常駐メモリの中に入っているかどうかを決定し、プリフェッチされたページの中に含められていないページ・テーブルの中のページは、ページインされる。ページ挿入モジュールが、ページアウトされたページを、一括復元を介してメモリの中に挿入する。ページ・テーブル更新モジュールが、前記ページインされたページを前記初期ページ・テーブルの中に挿入して、更新されたページ・テーブルをもたらす。このシステムは、更新されたページ・テーブルを使用してサービスを提供するようにプロセスを実行するプロセス実行モジュールをさらに含むことが可能であり、プロセスの実行は、ページ・フォールトを実質的に回避する。
【０００６】
本開示の別の態様によれば、コンピュータ可読プログラムを有形で具現化する非一時的な製造品が提供される。一実施形態において、クラウド・ベースのサービスに関する再活性化時間を短縮するためのプログラムを含むプログラムが提供される。このコンピュータ可読プログラムは、コンピュータ上で実行されると、そのコンピュータに、サービスが不活性になった後にサービスの処理中に生じたページ・フォールトを検査するステップであって、ページ・フォールトをもたらしたアドレスを解析することを含み得る、検査するステップを実行させる。ページ・フォールトをもたらしたアドレスは、少なくとも１つのプリフェッチ・グループの中にログ記録されることが可能である。コンピュータ可読プログラムによって実行されるステップは、その少なくとも１つのプリフェッチ・グループの中のページ・フォールト・データからプリフェッチ決定ツリーを作成するステップをさらに含むことが可能である。プリフェッチ決定ツリーは、サービス要求中にページが触れられる確率を与える複数のエッジを含むことが可能である。コンピュータ可読プログラムは、再活性化されたサービス要求の後にサービスに関する初期ページ・テーブルからのページが、プリフェッチ決定ツリーによりプリフェッチされたページとして常駐メモリの中に入っているかどうかを決定するように、ページを比較することであって、前記プリフェッチされたページの中に含められていないページ・テーブルの中のページは、ページインされる、比較することをさらに命令する。実行されるステップは、以前にページアウトされたページを、一括復元のためのイン・パラメータ・ベクトルまたはアウト・パラメータ・ベクトルの中に挿入するステップをさらに含むことが可能である。次に、サービスを提供するプロセスが、ページ・テーブルを使用して実行され、実行するステップは、ページ・フォールトを実質的に回避する。
【０００７】
これら、およびその他の特徴および利点は、添付の図面に関連して読まれるべき、本発明の例示的な実施形態の以下の詳細な説明から明白となろう。
【０００８】
本開示は、以下の図を参照して、好ましい実施形態の後段の説明の詳細を与える。
【図面の簡単な説明】
【０００９】
【図１】本開示のいくつかの態様による、メモリ・ページからのサービスの不活動からもたらされるページ・フォールトを経験するメモリ・コンテナの待ち時間を示すプロットである。
【図２】本原理の実施形態による例示的なクラウド・コンピューティング・ノードを示す図である。
【図３】本原理の実施形態による例示的なクラウド・コンピューティング環境を示す図である。
【図４】本原理の実施形態による例示的な抽象モデル・レイヤを示す図である。
【図５】本開示の一実施形態によるクラウド・ベースのサービスの再活性化時間を短縮するための方法の一実施形態を示す流れ図またはブロック図あるいはその両方である。
【図６】本開示によるプリフェッチ決定ツリーの一実施形態を示す概略図である。
【図７】本原理の実施形態によるクラウド・ベースのサービスの再活性化時間を短縮するための例示的なシステムの一実施形態を例示するブロック図である。
【発明を実施するための形態】
【００１０】
本原理は、情報技術（ＩＴ）サービス、ならびにクラウド・ベースの消費モデルを介してますます提供されているマイクロ・サービスに関する。これらのサービスの多くは、これらのサービスに要求が向けられた場合に限って活性である。そのようなサービスの例が、稀にしかトラフィックを経験しない個人のウェブサイトである。このバースト性の活動の性質は、そのようなサービスの多くを同一の計算ホスト上に並置して、それにより、効果的なリソース利用をもたらすのに適している。仮想マシン、例えば、ＶＭｗａｒｅ、ＫＶＭ、およびＸｅｎが、数十のサービスを並置する能力をもたらす。仮想マシン（ＶＭ）は、特定のコンピュータ・システムのエミュレーションである。仮想マシンは、現実の、または仮定のコンピュータのコンピュータ・アーキテクチャおよびコンピュータ機能に基づいて動作し、仮想マシンの実施様態は、専用のハードウェア、ソフトウェア、またはその両方の組合せを含むことが可能である。より最近には、オペレーティング・システム・コンテナが、数百のサービスから約千のサービスを配置する能力をもたらす。いくつかの例において、前記サービスの密度は、一貫性がない可能性がある平均中央処理装置（ＣＰＵ）使用率に依存するが、各サービスは、サービスが活性であるか否かにかかわらず、いくらかのメモリ使用を要求する。一般に、これらのサービスの集合的なメモリ要件は、利用可能なメモリをはるかに上回る。
【００１１】
従来、オペレーティング・システムは、仮想メモリ技術を利用して、それらのサービスのうちのいくつかのサービスのメモリのいくらかを、そのメモリに活発にアクセスが行われるまでディスク上に一時的に記憶し、これは、ページングまたはスワッピングとして知られる技法である。メモリは、ますますコミット過剰となっていると判定されており、このことは、高い度合のサービス並置の自然な結果であり、応答時間が大幅に悪化する可能性がある。特に、サービスが、長い時間の不活動の後に初めて再活性化されると、そのサービスのメモリ・ページの多くは、スワップアウトされている。その結果、長く遅延されたサービスに関連するプロセスが実行される際、それらのプロセスは、ページアウトされたページがアクセスされて、サービス品質（ＱｏＳ）違反につながり得るサービスの応答時間を大幅に増加させると、漸進的にトリガされる相当な数の初期ページ・フォールトを経験することになる。本明細書で使用される「ページ・フォールト」とは、実行中のプログラムが、仮想アドレス空間内にマップされているが、実際には、メイン・メモリの中にロードされていないメモリ・ページにアクセスすると、コンピュータ・ハードウェアによって生成される、例外と呼ばれる割込みの一種である。いくつかの例において、ページ・フォールトを解決するには、約１００マイクロ秒（高価なソリッドステート・デバイス（ＳＳＤ）ベースのスワップ・デバイスの場合）から約１０ミリ秒（ハードディスク・デバイス（ＨＤＤ）ベースのスワップ・デバイスの場合）までの範囲の時間がかかる可能性がある。これらの状況下で、サービス要求が、サーバに対する応答をもたらすまで１０秒から１００秒のページ・フォールトを経験する可能性があり、サービス要求を潜在的に秒単位で遅延させる。
【００１２】
図１は、この効果を実証する、コンテナの数に応じたメモリ・コンテナにおける待ち時間のプロットである。ｙ軸は、待ち時間測定値を表し、ｘ軸は、コンテナの数である。プロット線１は、ＰＯＷＥＲ８プロセッサ（Ｒ）と、ソリッドステート・ドライブ（ＳＳＤ）メモリとを含むシステムから測定された待ち時間のプロットである。プロット線２は、ＰＯＷＥＲ８プロセッサ（Ｒ）と、ハードディスク・ドライブ（ＨＤＤ）メモリとを含むシステムから測定された待ち時間のプロットである。プロット線３は、ＰＯＷＥＲ８プロセッサ（Ｒ）と、ｒａｉｄ０構成の２つのソリッドステート・ドライブ（ＳＳＤ）メモリとを含むシステムから測定された待ち時間のプロット線である。図１に示されるとおり、いくつかの例において、ますます多くのコンテナがシステム上に配置されると、応答時間は、システムにメモリ・リソースが不足するにつれて指数関数的に増大する。この事例において、ＣＰＵ使用率は、非常に低く、このため、待ち時間遅延は、スワップ・デバイスからのメモリの再ロードに概ね帰すると考えられることに留意されたい。この影響は、ＨＤＤからＳＤＤに、ＳＤＤからｒａｉｄ型のＳＤＤ（アクセスすべき２つのディスクにより、より高いディスク並行性の）に移行することによって緩和されることが可能であるが、それでも、指数関数的である。
【００１３】
いくつかの実施形態において、本明細書で提供される方法、システム、およびコンピュータ・プログラム製品は、長い不活動の後、クラウド・サービスの初期再活性化応答時間を強化することを可能にする。いくつかの実施形態において、サービスを実行する際に漸進的に経験される多数のページ・フォールトに関連する費用を回避するため、本明細書で開示される方法、システム、およびコンピュータ・プログラム製品は、サービス要求の処理中に触れられる可能性の高いページのセットを予測し、これらのページがすべて、単一の、または少数のベクトル入出力動作を介してプリフェッチされて、存在することを確実にして、これにより、一連のオンデマンドの漸進的なページ・フォールトのオーバヘッドを大幅に低減する方法を作成する。
【００１４】
いくつかの例において、プリフェッチすることは、プロセッサが、命令またはデータが実際に必要とされるのに先立って、メイン・メモリから命令またはデータを要求すると、行われる。命令、例えば、データが、メモリから戻ってくると、その命令は、キャッシュの中に入れられる。命令が実際に必要とされる際、その命令、例えば、データは、メモリに要求しなければならないとした場合と比べて、キャッシュからはるかに迅速にアクセスされ得る。本明細書で使用される、スキャタ入出力またはギャザ入出力(scatter/gather I/O)としても知られる「ベクトル型の入出力(vectored I/O)」とは、単一のプロシージャ・コールが、複数のバッファからのデータを単一のデータ・ストリームに順次に書き込む、またはデータ・ストリームからのデータを複数のバッファに順次に読み出す入力および出力の方法である。それらのバッファは、バッファのベクトルにおいて与えられる。スキャタまたはギャザとは、バッファの所与のセットからデータを収集する、またはバッファの所与のセットの中にデータを分散するプロセスを指す。ベクトル型の入出力は、同期でも、非同期でも動作することが可能である。
【００１５】
いくつかの実施形態において、オペレーティング・システムは、何らかの長い不活性化の後にページ・フォールトをトリガするアドレスのセットを追跡し、このシーケンスをプロセスと一緒に記憶し、その後の再活性化において、これらのページを一括復元する能力を有するように強化される。いくつかの実施形態において、この方法は、そのアドレス・シーケンスの変動、およびそのシーケンスの有効性を追跡して、不要なページ復元を回避するようにする手段をさらにもたらす。いくつかの実施形態において、この方法は、応答挙動を継続的に学習する能力をさらにもたらす。次に、本開示の方法、システム、およびコンピュータ・プログラム製品について、図２〜図７を参照してより詳細に説明する。
【００１６】
本開示は、クラウド・コンピューティングに関する詳細な説明を含むものの、本明細書に記載される教示の実施は、クラウド・コンピューティング環境に限定されないことをあらかじめ理解されたい。むしろ、本発明の実施形態は、現在、知られている、または後に開発される他の任意のタイプのコンピューティング環境に関連して実施されることが可能である。
【００１７】
クラウド・コンピューティングは、迅速にプロビジョニングされ、最小限の管理作業またはサービスのプロバイダとのやりとりしか伴わずにリリースされることが可能である構成可能なコンピューティング・リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共有されるプールに対する便利な、オンデマンドのネットワーク・アクセスを可能にするサービス・デリバリのモデルである。このクラウド・モデルは、少なくとも５つの特徴と、少なくとも３つのサービス・モデルと、少なくとも４つの展開モデルとを含むことが可能である。
【００１８】
特徴は、以下のとおりである。
【００１９】
オンデマンドのセルフサービス：クラウド消費者が、サービスのプロバイダとの対人のやりとりを必要とすることなしに、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を一方的にプロビジョニングすることができる。
【００２０】
幅広いネットワーク・アクセス：能力が、ネットワークを介して利用可能であり、異種のシン・クライアント・プラットフォームまたはシック・クライアント・プラットフォーム（例えば、モバイル電話、ラップトップ、ＰＤＡ）による使用を促進する標準の機構を介してアクセスされる。
【００２１】
リソース・プール：プロバイダのコンピューティング・リソースが、マルチテナント・モデルを使用して複数の消費者の役に立つようにプールされ、異なる物理リソースおよび仮想リソースのデマンドに応じた割当ておよび再割当てが動的に行われる。消費者が、一般に、提供されるリソースの正確なロケーションを管理することも、知ることもないが、より高いレベルの抽象性でロケーション（例えば、国、州、またはデータセンタ）を指定できる可能性があるという点でロケーション独立であると言える。
【００２２】
迅速な弾力性：能力は、迅速に、弾力的に、一部の事例においては自動的にプロビジョニングされて、急速にスケールアウトすること、および迅速にリリースされて急速にスケールインすることが可能である。消費者には、プロビジョニングに利用可能な能力は、しばしば、無限であるように見え、任意の時点で任意の量で購入され得る。
【００２３】
測定されるサービス：クラウド・システムは、サービスのタイプ（例えば、ストレージ、処理、帯域幅、および活性のユーザ・アカウント）に適切な何らかのレベルの抽象性で計測能力を活用することによってリソース使用を自動的に制御し、最適化する。リソース使用は、監視され、制御され、報告されて、利用されるサービスのプロバイダと消費者の両方に透明性をもたらすことが可能である。
【００２４】
サービス・モデルは、以下のとおりである。
【００２５】
Software as a Service（ＳａａＳ）：消費者に提供される能力は、クラウド・インフラストラクチャ上で実行されているプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ（例えば、ウェブ・ベースの電子メール）などのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である。消費者は、限られたユーザ特有のアプリケーション構成設定を可能な例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション能力さえ含む、基礎をなすクラウド・インフラストラクチャを管理することも、制御することもしない。
【００２６】
Platform as a Service（ＰａａＳ）：消費者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびプログラミング・ツールを使用して作成された消費者作成の、または獲得されたアプリケーションをクラウド・インフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎をなすクラウド・インフラストラクチャを管理することも、制御することもしないが、展開されたアプリケーション、および、場合により、アプリケーション・ホスティング環境構成を支配する。
【００２７】
Infrastructure as a Service（ＩａａＳ）：消費者に提供される能力は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることであり、消費者は、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを展開し、実行することができる。消費者は、基礎をなすクラウド・インフラストラクチャを管理することも、制御することもしないが、オペレーティング・システム、ストレージ、展開されたアプリケーション、および、場合により、選定されたネットワーキング構成要素（例えば、ホスト・ファイアウォール）の限られた制御を支配する。
【００２８】
展開モデルは、以下のとおりである。
【００２９】
プライベート・クラウド：クラウド・インフラストラクチャが、組織のためにだけ運用される。クラウド・インフラストラクチャは、その組織または第三者によって管理されることが可能であり、敷地内に存在しても、敷地外に存在してもよい。
【００３０】
コミュニティ・クラウド：クラウド・インフラストラクチャが、いくつかの組織によって共有され、共有される関心事（例えば、任務、セキュリティ要件、ポリシー、および遵守配慮事項(compliance considerations)）を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、それらの組織または第三者によって管理されることが可能であり、敷地内に存在しても、敷地外に存在してもよい。
【００３１】
公共クラウド：クラウド・インフラストラクチャが、公衆または大規模な業界グループに提供され、クラウド・サービスを販売する組織によって所有される。
【００３２】
ハイブリッド・クラウド：クラウド・インフラストラクチャが、固有のエンティティのままであるが、データ・ポータビリティおよびアプリケーション・ポータビリティを可能にする標準化された、または独自の技術（例えば、クラウド間の負荷分散のためのクラウド・バースティング(cloud bursting)）によって一緒に結び付けられた２つ以上のクラウド（プライベート、コミュニティ、または公共の）の複合体である。
【００３３】
クラウド・コンピューティング環境は、サービス指向であり、ステートレス(statelessness)である性質、低結合、モジュール性、および意味的相互運用性(semantic interoperability)に焦点を合わせている。クラウド・コンピューティングの中心には、互いに接続されたノードのネットワークを備えるインフラストラクチャがある。
【００３４】
次に、図２を参照すると、クラウド・コンピューティング・ノード１３１０の例の概略図が示されている。クラウド・コンピューティング・ノード１３１０は、適切なクラウド・コンピューティング・ノードの一例に過ぎず、本明細書で説明される本発明の実施形態の用法または機能の範囲について限定を示唆することを意図するものではまったくない。いずれにしても、クラウド・コンピューティング・ノード１３１０は、実施されること、または前述した機能のいずれかと連携して実行すること、あるいはその両方が可能である。
【００３５】
クラウド・コンピューティング・ノード１３１０において、多数の他の汎用または専用のコンピューティング・システム環境またはコンピューティング・システム構成で動作可能なコンピュータ・システムまたはサーバ１３１２が存在する。コンピュータ・システムまたはサーバ１３１２と一緒に使用するのに適している可能性がある、よく知られたコンピューティング・システム、コンピューティング環境、またはコンピューティング構成、あるいはこれらの組合せの例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルド・デバイスもしくはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セットトップ・ボックス、プログラマブル家庭用電子機器、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、ならびに前述のシステムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などが含まれるが、以上には限定されない。
【００３６】
コンピュータ・システムまたはサーバ１３１２は、コンピュータ・システムによって実行されている、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な脈絡で説明され得る。一般に、プログラム・モジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、ロジック、データ構造などを含み得る。コンピュータ・システムまたはサーバ１３１２は、タスクが、通信ネットワークを介して結び付けられた遠隔処理デバイスによって実行される分散クラウド・コンピューティング環境において実施され得る。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカル・コンピュータ・システム記憶媒体と遠隔コンピュータ・システム記憶媒体の両方の中に配置され得る。
【００３７】
図２に示されるとおり、クラウド・コンピューティング・ノード１３１０におけるコンピュータ・システムまたはサーバ１３１２は、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システムまたはサーバ１３１２の構成要素は、１つまたは複数のプロセッサもしくは処理ユニット１３１６、システム・メモリ１３２８、ならびにシステム・メモリ１３２８を含む様々なシステム構成要素をプロセッサ１３１６に結合するバス１３１８を含むことが可能であるが、以上には限定されない。
【００３８】
バス１３１８は、様々なバス・アーキテクチャのいずれかを使用するメモリ・バスもしくはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、およびプロセッサ・バスもしくはローカル・バスを含め、いくつかのタイプのバス構造のいずれかの１つまたは複数を表す。例として、限定としてではなく、そのようなアーキテクチャには、Industry Standard Architecture（ＩＳＡ）バス、MicroChannel Architecture（ＭＣＡ）バス、Enhanced ISA（ＥＩＳＡ）バス、Video Electronics Standards Association（ＶＥＳＡ）ローカル・バス、およびPeripheral Component Interconnect（ＰＣＩ）バスが含まれる。
【００３９】
コンピュータ・システムまたはサーバ１３１２は、通常、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システムまたはサーバ１３１２によってアクセス可能である任意の利用可能な媒体であることが可能であり、揮発性媒体と不揮発性媒体、取外し可能媒体と取外しができない媒体をともに含む。
【００４０】
システム・メモリ１３２８は、ランダム・アクセス・メモリ（ＲＡＭ）１３３０またはキャッシュ・メモリ１３３２あるいはその両方などの揮発性メモリの形態でコンピュータ・システム可読媒体を含むことが可能である。コンピュータ・システムまたはサーバ１３１２は、他の取外し可能な、または取外しできない、揮発性または不揮発性のコンピュータ・システム記憶媒体をさらに含んでもよい。単に例として、ストレージ・システム１３３４が、取外しできない、不揮発性の磁気媒体（図示されず、通常、「ハードドライブ」と呼ばれる）から読取りを行うため、およびそのような媒体に書込みを行うために備えられることが可能である。図示されないものの、取外し可能な、不揮発性の磁気ディスク（例えば、「フロッピー（Ｒ）・ディスク」）から読取りを行うため、およびそのような磁気ディスクに書込みを行うための磁気ディスク・ドライブ、ならびにＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光媒体などの取外し可能な、不揮発性の光ディスクから読取りを行うため、およびそのような光ディスクに書込みを行うための光ディスク・ドライブが備えられることが可能である。そのような実例において、各媒体は、１つまたは複数のデータ媒体インターフェースによってバス１３１８に接続されることが可能である。さらに図示され、後段で説明されるとおり、メモリ１３２８は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールの（例えば、少なくとも１つの）セットを有する少なくとも１つのプログラム製品を含むことが可能である。
【００４１】
例として、限定としてではなく、プログラム・モジュール１３４２の（少なくとも１つの）セットを有するプログラムまたはユーティリティ１３４０、ならびにオペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データが、メモリ１３２８の中に記憶されることが可能である。オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、あるいは以上の何らかの組合せのそれぞれが、ネットワーキング環境の実施様態を含むことが可能である。プログラム・モジュール１３４２は、一般に、本明細書で説明される本発明の実施形態の機能または方法あるいはその両方を実行する。例えば、プログラム・モジュール１３４２は、図２を参照して説明されるモジュールを含むことが可能である。
【００４２】
コンピュータ・システムまたはサーバ１３１２は、キーボード、ポインティング・デバイス、ディスプレイ１３２４などの１つまたは複数の外部デバイス１３１４、ユーザがコンピュータ・システムまたはサーバ１３１２と対話することを可能にする１つまたは複数のデバイス、またはコンピュータ・システムまたはサーバ１３１２が他の１つまたは複数のコンピューティング・デバイスと通信することを可能にする任意のデバイス（例えば、ネットワーク・カード、モデムなど）、あるいはこれらの組合せと通信することも可能である。そのような通信は、入出力（Ｉ／Ｏ）インターフェース１３２２を介して行われることが可能である。さらに、コンピュータ・システムまたはサーバ１３１２は、ネットワーク・アダプタ１３２０を介してローカル・エリア・ネットワーク（ＬＡＮ）、一般的なワイド・エリア・ネットワーク（ＷＡＮ）、またはパブリック・ネットワーク（例えば、インターネット）、あるいはこれらの組合せなどの１つまたは複数のネットワークと通信することが可能である。図示されるとおり、ネットワーク・アダプタ１３２０は、バス１３１８を介してコンピュータ・システムまたはサーバ１３１２の他の構成要素と通信する。図示されないものの、他のハードウェア構成要素または他のソフトウェア構成要素あるいはその両方が、コンピュータ・システムまたはサーバ１３１２と連携して使用されることも可能であることを理解されたい。例には、マイクロコード、デバイス・ドライバ、冗長な処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれるが、以上には限定されない。
【００４３】
次に、図３を参照すると、例示的なクラウド・コンピューティング環境１４５０が示されている。図示されるとおり、クラウド・コンピューティング環境１４５０は、例えば、携帯情報端末（ＰＤＡ）もしくはセルラー電話１４５４ａ、デスクトップ・コンピュータ１４５４ｂ、ラップトップ・コンピュータ１４５４ｃ、または自動車コンピュータ・システム１４５４ｎ、あるいはこれらの組合せなどの、クラウド消費者によって使用されるローカル・コンピューティング・デバイスが通信することが可能な１つまたは複数のクラウド・コンピューティング・ノード１４１０を備える。ノード１４１０は、互いに通信することが可能である。ノード１４１０は、前述したとおり、プライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいは以上の組合せなどの１つまたは複数のネットワークにおいて、物理的に、または仮想的にグループ化される（図示せず）ことが可能である。このことは、クラウド・コンピューティング環境１４５０が、クラウド消費者がローカル・コンピューティング・デバイス上でリソースを維持するのに必要としないインフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはこれらの組合せをサービスとして提供することを可能にする。図３に示されるコンピューティング・デバイス１４５４ａ〜ｎのタイプは、単に例示的であることが意図されること、ならびにコンピューティング・ノード１４１０およびクラウド・コンピューティング環境１４５０は、任意のタイプのネットワークまたは任意のタイプのネットワーク・アドレス指定可能な接続あるいはその両方を介して（例えば、ウェブ・ブラウザを使用して）任意のタイプのコンピュータ化されたデバイスと通信することが可能であることを理解されたい。
【００４４】
次に、図４を参照すると、クラウド・コンピューティング環境１４５０（図３）によって提供される機能抽象レイヤのセットが示されている。図４に示される構成要素、レイヤ、および機能は、単に例示的であることを意図しており、本発明の実施形態は、それらの構成要素、レイヤ、および機能に限定されないことをあらかじめ理解されたい。図示されるとおり、以下のレイヤ、および対応する機能が提供される。
【００４５】
ハードウェア・レイヤおよびソフトウェア・レイヤ１５６０が、ハードウェア構成要素およびソフトウェア構成要素を含む。ハードウェア構成要素の例には、一例において、ＩＢＭ（Ｒ）ｚＳｅｒｉｅｓ（Ｒ）システムであるメインフレーム、一例において、ＩＢＭ（Ｒ）ｐＳｅｒｉｅｓ（Ｒ）システム、ＩＢＭ（Ｒ）ｘＳｅｒｉｅｓ（Ｒ）システム、ＩＢＭ（Ｒ）ＢｌａｄｅＣｅｎｔｅｒ（Ｒ）システムであるＲＩＳＣ（Reduced Instruction Set Computer）アーキテクチャ・ベースのサーバ、ストレージ・デバイス、ネットワーク、およびネットワーキング構成要素が含まれる。ソフトウェア構成要素の例には、一例において、ＩＢＭ（Ｒ）ＷｅｂＳｐｈｅｒｅ（Ｒ）アプリケーション・サーバ・ソフトウェアであるネットワーク・アプリケーション・サーバ・ソフトウェア、および一例において、ＩＢＭ（Ｒ）ＤＢ２（Ｒ）データベース・ソフトウェアであるデータベース・ソフトウェアが含まれる。（ＩＢＭ、ｚＳｅｒｉｅｓ、ｐＳｅｒｉｅｓ、ｘＳｅｒｉｅｓ、ＢｌａｄｅＣｅｎｔｅｒ、ＷｅｂＳｐｈｅｒｅ、およびＤＢ２は、世界中の多くの管轄区域において登録されているＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎの商標である。）
【００４６】
仮想化レイヤ１５６２が、仮想エンティティの以下の例、すなわち、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーションおよび仮想オペレーティング・システム、ならびに仮想クライアントを提供することが可能な抽象レイヤを提供する。
【００４７】
一例において、管理レイヤ１５６４が、以下に説明される機能を提供することが可能である。リソース・プロビジョニングが、クラウド・コンピューティング環境内でタスクを実行するのに利用されるコンピューティング・リソースおよび他のリソースの動的な調達をもたらす。計測および価格設定が、リソースがクラウド・コンピューティング環境内で利用されるにつれての費用追跡、およびこれらのリソースの消費に関する料金請求またはインボイス送付をもたらす。一例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを備えることが可能である。セキュリティが、クラウド消費者およびタスクに関するＩＤ検証、ならびにデータおよびその他のリソースに関する保護をもたらす。ユーザ・ポータルが、消費者およびシステム管理者のためのクラウド・コンピューティング環境に対するアクセスをもたらす。サービス・レベル管理が、要求されるサービス・レベルが満たされるようにクラウド・コンピューティング・リソース割当ておよびクラウド・コンピューティング・リソース管理をもたらす。サービス・レベル・アグリーメント（Service Level Agreement）（ＳＬＡ）計画および履行が、将来の要件がＳＬＡに準拠して予期されるクラウド・コンピューティング・リソースに関する事前の取決め、およびそのようなリソースの調達をもたらす。
【００４８】
作業負荷レイヤ１５６６が、クラウド・コンピューティング環境が利用され得る機能の例をもたらす。このレイヤからもたらされ得る作業負荷および機能の例には、マッピングおよびナビゲーション、ソフトウェア開発およびソフトウェア・ライフサイクル管理、仮想教室教育デリバリ、データ解析処理、トランザクション処理、およびクラウド・ベースのサービス処理の再活性化時間が含まれる。
【００４９】
図５は、クラウド・ベースのサービスの再活性化時間を短縮するための方法の一実施形態を示す。いくつかの実施形態において、本開示の方法は、プロセス・オブジェクトに関連付けられた１つまたは複数のプリフェッチ・グループ、アドレス追跡を可能にするプロセスに関連付けられたタグ、この方法が活性化されるのに先立ってプロセスがどれだけの時間、不活性でなければならないかを指定するプロセスに関連する（またはグローバルな）遅延パラメータ、および非参加モード、学習モード、または最適化モードを記述するモードを提供することが可能である。アドレス追跡は、最適化を求める要求に応答して、アドレスを追跡するようにプロセスにタグを付けることを含むことが可能である。
【００５０】
プリフェッチ・グループは、命令またはデータが実際に必要とされるのに先立ってメモリの中に存在することが確実にされる、命令またはデータのページのセットであることが可能である。プリフェッチ・グループの中の命令は、サービスに対応する。サービスは、クラウド環境を介してユーザにデリバリされ得るインフラストラクチャ、アプリケーション、およびビジネス・プロセスであることが可能である。プロセスは、ユーザにサービスを提供するようにクラウド環境によって行われる機能、例えば、コードまたは命令またはデータの使用である。プロセス目的は、ユーザにそのサービスを提供することの所望される結果である。
【００５１】
本明細書で開示される方法、システム、およびコンピュータ・プログラム製品で使用され得るサービスのいくつかの例には、ソーシャル・ネットワーク・サービス、電子メール・サービス、例えば、ウェブ・ベースの電子メール・サービス、文書またはスプレッドシート・ホスティング・サービス、ヘルスケア・サービス、行政機能サービス、データベース・サービス、メッセージング・サービス、データ解析サービス、および以上の組合せが含まれ得るが、以上には限定されない。
【００５２】
前述したとおり、この方法は、サービスに関する再活性化時間を短縮するために３つのモード、例えば、非参加モード、学習モード、および最適化モードを使用することができるシステム（以降、再活性化時間短縮システムと呼ぶ）を含む。いくつかの実施形態において、デフォルトで、このシステムにおけるプロセスは、非参加モードになっており、このため、本明細書で説明される最適化は、プロセスに適用されていない。いくつかの実施形態において、この方法は、ステップ１０において、サービスをデリバリするためのプロセスの再活性化に応答して、再活性化時間短縮システムを非参加モードから学習モードに切り換えることから始まることが可能である。いくつかの例において、サービスは、以下の理由、すなわち、ヘルス・チェックＰＩＮＧ、モニタリングＰＩＮＧ（ヘルス・チェックとは異なるポート）、セキュリティＰＩＮＧ、サイドカーＰＩＮＧ（これらは、メイン・アプリケーション・プロセスではなく、メイン・アプリケーションの隣で実行されているエージェントである）、アプリケーション・エントリ・ポイント、および以上の組合せのうちの１つにより、起動されることが可能である。前述の例は、サービスを再活性化すること、したがって、再活性化時間短縮システムを非参加状態から学習状態に切り換えることが可能なイベントのいくつかの例に過ぎないこと、およびこれらの例が本開示を限定することは意図していないことに留意されたい。例えば、任意のコマンド、信号、または機能が、非参加モードから学習モードに切り換わるようシステムに合図するのに再活性化時間短縮システムによって使用され得ることが企図されている。前述の例示的なイベントのすべてが、異なるプリフェッチ・パターンをもたらすことも可能であり、したがって、いくつかの実施形態において、最適化された再活性化時間をもたらす際にそれらのパターンが検出され、学習され、適用されることが有利であり得る。
【００５３】
いくつかの実施形態において、再活性化時間短縮システムが、例えば、しばらくの間、システムが不活性になった後、学習モードにされた場合、サービスの再活性化時に、図５に示される方法のステップ１５におけるプリフェッチ発見を介して、ページ・フォールトをもたらすあらゆるアドレスが検査される。実行中のプログラムが、仮想アドレス空間内にマップされているが、実際には、メイン・メモリの中にロードされていないメモリ・ページにアクセスすると、ページ・フォールトが、コンピュータ・ハードウェアによって生成される。いくつかの実施形態において、ページ・フォールトを検出することができるハードウェアは、プロセッサのメモリ管理ユニット（ＭＭＵ）である一方で、ページ・フォールトを扱う例外処理ソフトウェアは、一般に、オペレーティング・システム・カーネルの一部分である。図５に示される方法のステップ１５におけるプリフェッチ発見中に検出され、検査されるページ・フォールトには、マイナー・ページ・フォールト、ソフト・ページ・フォールト、メジャー・ページ・フォールトもしくはハード・ページ・フォールト、および無効ページ・フォールトが含まれることが可能である。Ｗｉｎｄｏｗｓ（Ｒ）およびＵＮＩＸ（Ｒ）（および他のＵＮＩＸ（Ｒ）様のシステム）などのオペレーティング・システムが、ページ・フォールトによってもたらされるエラーを報告するための異なる機構を提供する。いくつかの実施形態において、Ｗｉｎｄｏｗｓ（Ｒ）は、構造化された例外処理を使用して、ページ・フォールト・ベースの無効なアクセスをアクセス違反例外として報告し、ＵＮＩＸ（Ｒ）（およびＵＮＩＸ（Ｒ）様のシステム）は、通常、ＳＩＧＳＥＧＶなどの信号を使用して、これらのエラー条件を報告する。
【００５４】
ページ・フォールトをもたらすあらゆるアドレスが、ステップ２０においてプリフェッチ・グループのうちの１つの中にログ記録されることが可能である。例えば、ページ・フォールト、および関連するアドレスが、バッファの中にログ記録されて、記憶されることが可能である。いくつかの実施形態において、サービスが異なるパスをたどることが発見された場合、複数のプリフェッチ・グループが記憶されることが要求される。
【００５５】
いくつかの実施形態において、サービスに関する後の再活性化とともに、プロセスは、それらのサービスが、通常、メッセージまたはタイマの受取りから開始し、次に、特定のコードおよびデータ・パスをトリガする１つまたは複数のサービス・エントリ・ポイントを有するため、類似したページ・フォールトを経験する可能性が高い。いくつかの実施形態において、ステップ２０においてプリフェッチ・グループを更新するのに先立って、ステップ１５における解析が、以前に認識されているページ・フォールトを誘発するアドレスが飛ばされているかどうかを認識することが可能であり、その時点で、それらのアドレスは、プリフェッチ・グループの中に留まる。識別しない場合、プリフェッチ・グループ・ブランチが作成される。後のページ・フォールトにおいて、アドレスの新たなサブシーケンスが導入されていることが決定された場合、そのサブシーケンスが、その時点で挿入される。後にマージするように見える複数の同時のサブシーケンスが検出された場合、それらのサブシーケンスは、別々に保持されることが可能である。
【００５６】
続くステップにおいて、この方法は、ステップ２５においてプリフェッチ決定ツリーを作成する。ステップ１５および２０におけるプリフェッチ・グループの解析およびログ記録の結果が、アプリケーションまたはサービスの異なるアクセス挙動を表すページ・グループの決定ツリーを作成するのに使用されることが可能である。決定ツリーを形成する１つの方法は、アドレスをログ記録し、アドレスの類似したシーケンスをクラスタ化し、そのようなクラスタ化における分岐(divergence)を識別することである。いくつかの実施形態において、分岐が検出されると、新たなプリフェッチ・グループが作成され、１つのプリフェッチ・グループをフロント部分、ブランチ、および後続の継続プリフェッチ・グループに細分することによってブランチが作成される。フロント部分と各継続グループは、論理的に接続され、いずれかのパスをたどる確率が、前記接続に関連付けられる。この確率は、トラバーサル(traversal)の頻度をカウントすることによって確立され得る。決定ツリーを作成することによって、この方法は、２つの原理、すなわち、１）メモリ使用の時空間表現、および２）ページのコンテキスト・インデックス可能なグループを、事実上、扱う。特に、各サービスに関するページをロードする初期段階中の、メモリ使用の時空間表現は、ロードされるべき適切な「ページのグループ」に「インデックスを付ける」ための「コンテキスト」および状態情報の簡潔な表現をもたらすことが可能である。ページのコンテキスト・インデックス可能なグループは、ページのトラバーサルが、マルコフ・モデルまたはベイジアン・ネット・モデルによって表現され得ることをもたらす。
【００５７】
いくつかの実施形態において、プリフェッチ決定ツリーは、ページの次のグループが、ページ・フォールト率を最小限に抑えることができるような様態でサービスの活性化イベント中、または再活性化イベント中にロードされるようにすることが可能である。プリフェッチ決定は、データ駆動型であることが可能であり、したがって、プリフェッチ決定ツリーは、サービスを活性化するアクセス・ポイントに関するコンテキストをキャプチャしなければならない。本明細書で使用される「コンテキスト」という用語は、サービスが活性化されるシナリオ、および要求されるサービスをデリバリするのに、ページ（命令およびデータ）のいずれのパスをそのシナリオがたどる可能性が高いかを表す。コンテナ・プロセスが渡り歩く時空間パターンに加えて、入力データも、その状態情報の一部でなければならない。
【００５８】
図６は、プリフェッチ決定ツリーの一実施形態を示す。エッジλｉｊ、エッジλｉｋ、エッジλｉｍ、エッジλｋｍ、エッジλｋｎに確率がタグ付けされること、または検査されたデータ・コンテキストがタグ付けされることさえ可能である。一実施形態において、これらのタグは、例えば、学習段階中の観察されたトラバーサルの数によって確立される、前記フロント・プリフェッチ・グループから後続のプリフェッチ・グループに渡り歩く尤度を表す。別の実施形態において、タグは、データ（例えば、受信されたメッセージの特定の変数または内容）を検査して、いずれのエッジをたどるべきかを決定することに関連付けられることが可能である。例えば、電子メールを求めるウェブ要求を受信することが、ビデオ・ストリームを求めるウェブ要求を受信することとは異なるプリフェッチ・グループをトリガする可能性がある。各プリフェッチ・グループ、例えば、プリフェッチ・グループ−ｉ、プリフェッチ・グループ−ｊ、プリフェッチ・グループ−ｋ、プリフェッチ・グループ−ｍ、およびプリフェッチ・グループ−ｎは、サービス要求の処理中に触れられる可能性の高いページのセットまたはシーケンスを含む。エッジに確率またはデータ・コンテキストでタグを付けることによって、１つまたは複数のプリフェッチ・グループが、プロセス目的に関連付けられることが可能である。一実施形態において、最も可能性の高いエッジがプリフェッチされる。一実施形態において、ページ・フォールトが生じ、それらがいずれかのページ・グループとマッチさせられ得る場合、そのページ・グループがプリフェッチされる。
【００５９】
プリフェッチ決定ツリーは、長期間にわたって活性化が行われなかった後にサービスが再活性化された場合、プリフェッチ・グループの中のページがすべてプリフェッチされ、メモリ上に存在することが可能であることを確実にする。ある形態のメモリの中に存在するプリフェッチされたグループの中に、ある期間の不活動の後に活性化され得るサービスに関するページが入っているようにすることにより、再活性化時間短縮システムは、一連のオンデマンドの漸進的なページ・フォールトのオーバヘッドを低減することが可能である。再活性化時間短縮システムは、決定ツリーにより、サービス要求に応答してプロセス目的の一連のページをプリフェッチされた様態で提供することによってオーバヘッドを低減し、サービス要求に応答して、生じ得るページ・フォールトが生じた場合にページ・アドレスを含むプリフェッチされた一連のページを提供する。
【００６０】
再活性化は、予測されることが可能であり（例えば、周期的再活性化に関して）、予期されるコンテナまたはプロセスを優先させるプリフェッチ・キューが作成されることが可能である。例えば、サービスが、ヘルス・チェックを行うように毎分、起動される場合、この事実が、学習されて、プリフェッチ・グループに関連付けられることが可能である。したがって、その挙動は、予測されることが可能であり、プリフェッチすることは、大きな遅延を回避するのに間に合うように開始されることが可能である。
【００６１】
図５を参照すると、このシステムが、再活性化後のプロセスの挙動が概ね学習されて、理解されることが可能であると決定した後、このシステムは、ステップ３０においてそのプロセスを最適化モードにする。いくつかの実施形態において、プロセスの挙動が学習されていると決定することは、サービス要求に応答して特定の数のプリフェッチ・グループを作成することを含む。
【００６２】
いくつかの実施形態において、再活性化時間短縮システムが最適化モードになっている場合、長期間の不活動の後に続く次の再活性化時点で、図５に例示される方法のステップ３５において、オペレーティング・システムが、プリフェッチ・グループを利用し、エントリ・ポイントを決定し、第１のページ・グループを予測する。エントリ・ポイントは、要求が着信すると即時に実行されるコードである。
【００６３】
図６を参照すると、第１のページ・グループがプリフェッチ・グループ−ｉとして識別される。第１のページ・グループは、エントリ・ポイント・データ、例えば、エントリ・ポイント・アドレス、ならびにそのエントリ・ポイントにおいてユーザによって要求されているサービスのタイプを解析することによって予測されることが可能である。
【００６４】
次に、再活性化時間短縮システムは、ステップ４０において、プリフェッチ決定ツリーによって規定されるプリフェッチされたページにより、（図６において例が与えられる、方法のステップ２５において説明されるとおり）これらのページのうちのいずれのページがメモリの中に存在するか、およびいずれのページがページアウトされているかについてページ・テーブルを点検することが可能である。仮想メモリ・システムにおいて、ページ・テーブルと呼ばれるデータ構造を用いて、仮想アドレスと物理アドレスの間でマップすることが一般的である。アドレスのページ番号は、通常、アドレスの最上位ビットから見出され、残りのビットは、そのページ内のメモリ・ロケーションのオフセットを与える。ページ・テーブルは、通常、ページ番号でインデックスが付けられ、そのページが現在、メイン・メモリの中にあるかどうか、およびそのページがメイン・メモリの中の、またはディスク上のどこにあるかに関する情報を包含する。物理メモリの中で利用可能であるページは、ページインされていると言われることが可能である一方で、物理メモリの中で利用可能でないページは、ページアウトされていると言われることが可能である。
【００６５】
図５に示される方法のステップ４５において、ページアウトされたページが、入出力ベクトル（イン・パラメータ・ベクトルまたはアウト・パラメータ・ベクトル）に挿入され、一括復元のために入出力サブシステムにサブミットされる。イン・パラメータは、サービスのための関数、すなわち、プロセスからデータを受け取るように呼び出し元、すなわち、ユーザに関するロケーションを指し示す関数パラメータである。アウト・パラメータは、関数からデータを受け取るように呼び出し元に関するロケーションを指し示す関数パラメータである。イン・パラメータは、呼び出し元から、サービスのための関数、すなわち、プロセスにデータを供給する関数パラメータである。ベクトル型の入出力は、単一のプロシージャ・コールが、複数のバッファからのデータを単一のデータ・ストリームに順次に書き込む、またはデータ・ストリームからのデータを複数のバッファに順次に読み出す入力および出力の方法である。バッファは、バッファのベクトルにおいて与えられる。入出力が完了し、ページが存在すると、ページ・テーブルが更新され、プロセスは、ページ・フォールトを概ね回避して実行されるようにスケジュールされる。
【００６６】
ステップ５０において、再活性化時間短縮システムは、非参加モードに、または学習モードに戻るように、すなわち、ステップ１５においてプリフェッチ発見を行うことに戻るように切り換わることが可能である。いくつかの実施形態において、学習段階と最適化段階は連続的であり、統合される。エッジ確率が閾値を下回ると決定された場合、そのエッジおよびフォロー・グループは、ドロップされ得る（プリフェッチ・グループに至る異なるパスが存在するのでない限り）。再活性化時間短縮システムを最適化モードから学習モードに切り換えることは、サービス要求のパラメータが別のプリフェッチ発見解析を要求するように変化すると、行われることが可能である。例えば、決定ツリーにおける分岐点に到達し、かつその後のページ・フォールトが、以前に形成されたプリフェッチ・グループがページ・フォールトの現在のセットを範囲に含まないことを示す場合、方法は、学習モードに戻るように切り換わり、決定ツリーを更新することを続けることが可能である。一実施形態において、学習段階と最適化段階は、同時に活性であることが可能であり、すなわち、システムは、最適化する（プリフェッチする）一方、それと同時に、知られていないコンテキストおよびページ・アクセス・パターンを学習もする。
【００６７】
図５に示される方法のステップ５５において、再活性化時間短縮システムは、サービス要求のパラメータが別のプリフェッチ発見解析を要求するように変化しない場合、最適化モードから非参加モードに切り換わることが可能である。例えば、サービスが、長期間にわたって不活性になった場合、以前に学習された決定ツリーは、もはや有効でない可能性がある。この問合せが行われる期間は、サービスが再活性化されることなく不活性化にされてから数時間内、または数日内であることが可能である。非参加モードに入ると、プロセスに関連付けられた（またはグローバルな）遅延パラメータが、ステップ１０においてこの方法が活性化されるのに先立ってプロセスがどれだけの時間、不活性でなければならないかを指定することが可能である。
【００６８】
プリフェッチ・グループの代替の表現が可能である。例えば、完全なアドレスを記憶するのではなく、前のアドレスからの距離が記憶されることが可能である。
【００６９】
図７は、本原理の実施形態による、クラウド環境においてサービスに関する再活性化時間を短縮するための例示的なシステム２００、すなわち、再活性化時間短縮システムを示す。図７に示されるシステム２００は、図２に示されるコンピュータ・サービス・システム１３１２に組み込まれることが可能である。例えば、このシステムは、プログラム・モジュール１３４２の（少なくとも１つの）セットを有するプログラムまたはユーティリティ１３４０を提供することが可能であり、プログラムまたはユーティリティ１３４０は、図２に示されるコンピュータ・サービス・システム１３１２のメモリ１３２８の中に記憶されることが可能である。さらに、システム２００は、例えば、図５の方法の少なくとも一部を含む、本明細書で説明される方法の少なくとも一部を実行することが可能であることを認識されたい。
【００７０】
図７を参照すると、ページ・フォールト・アナライザ２０１と、追跡モジュール２０２と、決定ツリー・モジュール２０３と、ページ比較モジュール２０４と、ページ挿入モジュール２０５と、ページ・テーブル更新モジュール２０６と、プロセス実行モジュール２０７と、モード切換えモジュール２０８と、タグ・モジュール２０９とを含む、クラウド・ベースのサービスの再活性化時間を短縮するための再活性化時間短縮システム２００が提供されることが可能である。前述したモジュールのそれぞれは、バス１０２に接続されることが可能である。ページ・フォールト・アナライザ２０１、追跡モジュール２０２、決定ツリー・モジュール２０３、ページ比較モジュール２０４、ページ挿入モジュール２０５、ページ・テーブル更新モジュール２０６、プロセス実行モジュール２０７、モード切換えモジュール２０８、およびタグ・モジュール２０９のそれぞれは、ある形態のメモリ上に具現化され得る、指定された論理機能を実施するための１つまたは複数の実行可能命令またはデータを備える命令またはデータのモジュール、セグメント、または部分を含むことが可能である。バス１０２は、ページ・フォールト・アナライザ２０１、追跡モジュール２０２、決定ツリー・モジュール２０３、ページ比較モジュール２０４、ページ挿入モジュール２０５、ページ・テーブル更新モジュール２０６、プロセス実行モジュール２０７、モード切換えモジュール２０８、およびタグ・モジュール２０９を含むことが可能な様々なシステム構成要素を、これらの構成要素によって提供される命令またはデータを実行するためのプロセッサ、例えば、ハードウェア・プロセッサに結合する。例えば、図７に示されるバス１０２は、図２に示されるコンピュータ・サーバ・システム１３１２のバス１３１８に接続されて、これらの構成要素を、参照符号１３１６によって識別されるコンピュータ・サーバ・システム１３１２のハードウェア・プロセッサに接続することが可能である。
【００７１】
いくつかの実施形態において、ページ・フォールト・アナライザ２０１は、サービスが不活性になった後のサービスの処理中のページ・フォールトのアドレスを検査する。ページ・フォールト・アナライザについてのさらなる詳細は、図５に示される方法のステップ１５の説明によって与えられる。
【００７２】
いくつかの実施形態において、追跡モジュール２０２は、ページ・フォールトをもたらしたアドレスを少なくとも１つのプリフェッチ・グループの中にログ記録する。追跡モジュール２０２についてのさらなる詳細は、図５に示される方法のステップ２０の説明によって与えられる。
【００７３】
決定ツリー・モジュール２０３は、例えば、図６に示されるとおり、プリフェッチ決定ツリーを作成する。プリフェッチ決定ツリーは、サービス要求中にページが触れられる確率を与える複数のエッジを含むことが可能である。決定ツリー・モジュール２０３の機能は、図５に示される方法のステップ２５、および図６に示される決定ツリーの説明において前述されている。
【００７４】
いくつかの実施形態において、再活性化されたサービス要求の後に活性化されるページ比較モジュール２０４は、図５に例示される方法のステップ３５および４０を参照してさらに説明される。例えば、ページ比較モジュール２０４は、サービスに関する初期ページ・テーブルからのページが、プリフェッチ決定ツリーによりプリフェッチされたページとして常駐メモリの中に入っているかどうかを決定するように、ページを比較する。
【００７５】
ページ挿入モジュール２０５は、以前にページアウトされたページを、一括復元のためにイン・パラメータ・ベクトルまたはアウト・パラメータ・ベクトルの中に挿入する。ページ・テーブル更新モジュール２０６は、ページインされたページを初期ページ・テーブルの中に挿入して、実行のために更新されたページ・テーブルをもたらす。ページ挿入モジュール２０５およびページ・テーブル更新モジュール２０６の機能に関するさらなる詳細は、図５を参照して説明される方法のステップ４５の説明において前段で与えられている。
【００７６】
図７を参照すると、再活性化時間短縮システム２００は、前述したとおり実行されて、ページ・フォールトを実質的に回避する、更新されたページ・テーブルを使用するサービスを提供する、すなわち、実行するプロセス実行モジュール２０７も含む。再活性化時間短縮システム２００は、モード切換えモジュール２０８と、タグ・モジュール２０９とをさらに含む。モード切換えモジュール２０８は、非参加モード、学習モード、および最適化モードの間で再活性化時間短縮システム２００のモードを切り換えることができる。モード切換えモジュール２０８に関するさらなる詳細は、図５を参照して説明される方法のステップ１０、３０、および５０に関連して前段で説明されている。モード切換えモジュール２０８は、再活性化時間短縮システム２００が活性化されるのに先立ってプロセスがどれだけの時間、不活性でなければならないかを指定するプロセスに関連する（またはグローバルな）遅延パラメータをもたらすサブモジュールを含むことが可能である。タグ・モジュール２０９は、追跡を可能にするプロセスに関連付けられたタグをもたらすことが可能である。
【００７７】
もちろん、処理システム２００は、当業者には容易に企図されるとおり、他の要素（図示せず）を含むことも、いくつかの要素を省くことも可能である。例えば、当業者には容易に理解されるとおり、処理システム２００の特定の実施様態に依存して、他の様々な入力デバイスまたは出力デバイスあるいはその両方が処理システム２００に含められることが可能である。例えば、様々なタイプの無線入力デバイスおよび無線出力デバイス、または様々なタイプの有線入力デバイスおよび有線出力デバイス、あるいはこれらの組合せが使用されることが可能である。さらに、当業者には容易に認識されるとおり、様々な構成におけるさらなるプロセッサ、コントローラ、メモリなどが利用されることも可能である。処理システム２００のこれら、およびその他の変形形態は、本明細書で提供される本原理の教示を所与として、当業者によって容易に企図される。
【００７８】
前述したモジュールのそれぞれは、ハードウェアとして実装されなくてもよいことにも留意されたい。例えば、ページ・フォールト・アナライザ２０１、追跡モジュール２０２、決定ツリー・モジュール２０３、ページ比較モジュール２０４、ページ挿入モジュール２０５、ページ・テーブル更新モジュール２０６、プロセス実行モジュール２０７、モード切換えモジュール２０８、およびタグ・モジュール２０９のそれぞれは、ソフトウェア命令として提供されてもよい。
【００７９】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはこれらの組合せであることが可能である。コンピュータ・プログラムは、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体（または複数の媒体）を含むことが可能である。
【００８０】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるように命令を保持し、記憶することができる有形のデバイスであることが可能である。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または以上の任意の適切な組合せであることが可能であるが、以上には限定されない。コンピュータ可読記憶媒体のより具体的な例の網羅的でないリストには、以下、すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能なプログラマブル読取り専用メモリ（ＥＥＲＰＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル・バーサタイル・ディスク（ＤＶＤ）、メモリ・スタック、フロッピー（Ｒ）・ディスク、命令が記録されているパンチカードもしくは溝の中の隆起した構造などの機械的に符号化されたデバイス、および以上の任意の適切な組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体の中を伝播する電磁波（例えば、光ファイバ・ケーブルの中を通る光パルス）、または配線を介して伝送される電気信号などの、一時的信号そのものと解釈されるべきではない。
【００８１】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータプログラムからそれぞれのコンピューティング・デバイスまたは処理デバイスに、あるいは、ネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワーク、あるいはこれらの組合せを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードされることが可能である。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、またはエッジサーバ、あるいはこれらの組合せを含むことが可能である。各コンピューティング・デバイスまたは各処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング・デバイスまたは処理デバイスの内部のコンピュータ可読記憶媒体の中に記憶するために転送する。
【００８２】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語もしくは類似したプログラミング言語などの従来の手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組合せで書かれた、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはソース・コードもしくはオブジェクト・コードであることが可能である。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行されること、部分的にユーザのコンピュータ上で実行されること、スタンドアロンのソフトウェア・パッケージとして実行されること、部分的にはユーザのコンピュータ上で、部分的には遠隔コンピュータ上で実行されること、あるいは完全に遠隔コンピュータまたは遠隔サーバ上で実行されることが可能である。完全に遠隔コンピュータまたは遠隔サーバ上で実行されるシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されることが可能であり、あるいはその接続は、外部コンピュータに対して行われることも可能である（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）。いくつかの実施形態において、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路が、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、その電子回路を個人用設定とすることが可能である。
【００８３】
本発明の態様は、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照して本明細書で説明される。流れ図またはブロック図あるいはその両方の各ブロック、ならびに流れ図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることが理解されよう。
【００８４】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、流れ図もしくはブロック図またはその両方の１つまたは複数のブロックにおいて指定される機能または動作を実施するための手段を作成するように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに与えられて、マシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が記憶されているコンピュータ可読記憶媒体が、流れ図もしくはブロック図またはその両方の１つまたは複数のブロックにおいて指定される機能または動作の態様を実装する命令を含む製造品を備えるように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその組合せに特定の様態で機能するよう指示するものであってもよい。
【００８５】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、流れ図もしくはブロック図またはその両方の１つまたは複数のブロックにおいて指定される機能または動作を実装するように、コンピュータ実装プロセスを生成するべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【００８６】
図における流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施様態のアーキテクチャ、機能、および動作を例示する。これに関して、流れ図またはブロック図における各ブロックは、指定された論理機能を実施するための１つまたは複数の実行可能命令を備える命令のモジュール、セグメント、または部分を表すことが可能である。いくつかの代替の実施様態において、ブロックに記載される機能は、図に記載される順序を外れて行われてもよい。例えば、関与する機能に依存して、連続して示される２つのブロックが、実際には、実質的に並行して実行されてもよく、またはそれらのブロックが、時には逆の順序で実行されてもよい。また、ブロック図または流れ図あるいはその両方の各ブロック、ならびにブロック図または流れ図あるいはその両方におけるブロックの組合せは、指定された機能もしくは動作を実行する、または専用ハードウェア命令とコンピュータ命令の組合せを実行する専用のハードウェア・ベースのシステムによって実施され得ることにも留意されたい。
【００８７】
本明細書において、本原理の「一実施形態」または「実施形態」、およびそれらの他の変形形態について述べることは、その実施形態に関連して説明される特定の特徴、構造、特性などが、本原理の少なくとも１つの実施形態に含まれることを意味する。本明細書全体の様々な箇所において現れる「一実施形態」または「実施形態」という句、およびそれらの他の任意の変形の出現は、必ずしもすべて同一の実施形態を指すわけではない。
【００８８】
例えば、「ＡまたはＢ」、「ＡまたはＢあるいはその両方」、および「ＡおよびＢのうちの少なくとも１つ」という事例における、「〜または〜」、「〜または〜あるいはその両方」、および「少なくとも１つの〜」のいずれの使用も、最初にリストアップされるオプション（Ａ）だけの選択、または２番目にリストアップされるオプション（Ｂ）だけの選択、あるいは両方のオプション（ＡおよびＢ）の選択を包含することを意図していることを認識されたい。さらなる例として、「Ａ、Ｂ、またはＣ、あるいはこれらの組合せ」および「Ａ、Ｂ、およびＣのうちの少なくとも１つ」という事例において、そのような言い回しは、最初にリストアップされるオプション（Ａ）だけの選択、または２番目にリストアップされるオプション（Ｂ）だけの選択、または３番目にリストアップされるオプション（Ｃ）だけの選択、または最初にリストアップされるオプションと２番目にリストアップされるオプション（ＡおよびＢ）だけの選択、または最初にリストアップされるオプションと３番目にリストアップされるオプション（ＡおよびＣ）だけの選択、または２番目にリストアップされるオプションと３番目にリストアップされるオプション（ＢおよびＣ）だけの選択、あるいは３つすべてのオプション（ＡおよびＢおよびＣ）の選択を包含することを意図している。このことは、当業者および関連する分野の業者には容易に明らかになるとおり、リストアップされる限りのアイテムに拡張され得る。
【００８９】
システムおよび方法の好ましい実施形態（限定的ではなく、例示的であることが意図される）を説明してきたので、以上の教示に鑑みて、当業者によって変更形態および変形形態が行われ得ることに留意されたい。したがって、添付の特許請求の範囲によって概要が述べられるとおり、本発明の範囲に含まれる変更が、開示される特定の実施形態において行われ得ることを理解されたい。本発明の態様を、特許法によって要求される詳細および細目とともに説明してきたので、特許証によって保護されることが主張され、所望される内容が、添付の特許請求の範囲に記載される。
【符号の説明】
【００９０】
１０２  バス
２０１  ページ・フォールト・アナライザ
２０２  追跡モジュール
２０３  決定ツリー・モジュール
２０４  ページ比較モジュール
２０５  ページ挿入モジュール
２０６  ページ・テーブル更新モジュール
２０７  プロセス実行モジュール
２０８  モード切換えモジュール
２０９  タグ・モジュール
１３１２  コンピュータ・システム・サーバ
１３１４  外部デバイス
１３１６  処理ユニット
１３２０  ネットワーク・アダプタ
１３２２  入出力インターフェース
１３２４  ディスプレイ
１３２８  メモリ
１３３２  キャッシュ
１３３４  ストレージ・システム
１４１０  クラウド・コンピューティング・ノード
１４５０  クラウド・コンピューティング環境
１４５４ａ、１４５４ｂ、１４５４ｃ、１４５４ｎ  コンピューティング・デバイス
１５６０  ハードウェア・レイヤおよびソフトウェア・レイヤ
１５６２  仮想化レイヤ
１５６４  管理レイヤ
１５６６  作業負荷レイヤ
【図１】
0006770396.tif 000002
【図２】
0006770396.tif 000003
【図３】
0006770396.tif 000004
【図４】
0006770396.tif 000005
【図５】
0006770396.tif 000006
【図６】
0006770396.tif 000007
【図７】
0006770396.tif 000008