(57)【要約】【課題】改良された同期粒度を有する拡張同期フレームワークを提供する。【解決手段】同期マネージャは、複数のメモリ・ページをメモリ・ページのサブセットにフィルタするためのフィルタ属性を含む、スケジュール済み同期タスクを呼び出す。同期マネージャは、複数のファイルに対応するファイル・ポインタを選択し、当該選択されたファイル・ポインタを使用して、前記複数のファイルをトラバースする。トラバースを行っている間、同期マネージャは、前記複数のファイルの各々のためのファイル属性を抽出し、そして前記フィルタ属性を当該抽出されたファイル属性と比較することにより、前記複数のファイルをフィルタする。その後、同期マネージャは、当該フィルタされたファイルに対応するメモリ・ページ識別子を抽出し、当該抽出されたメモリ・ページ識別子を使用して、メモリ・ページのサブセットを同期させる。【選択図】  図１０
2010067266.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実装方法であって、
（ａ）複数のメモリ・ページをメモリ・ページのサブセットにフィルタするためのフィルタ属性を含む、スケジュール済み同期タスクを呼び出すステップと、
（ｂ）前記スケジュール済み同期タスクの呼び出しに応答して、複数のファイルに対応する複数のファイル・ポインタを選択するステップと、
（ｃ）前記選択された複数のファイル・ポインタを使用して、前記複数のファイルをトラバースし且つ前記複数のファイルの各々のためのファイル属性を抽出するステップと、
（ｄ）前記フィルタ属性を前記抽出されたファイル属性と比較するステップと、
（ｅ）前記比較に基づき、前記複数のファイルをフィルタするステップと、
（ｆ）前記フィルタされた複数のファイルに対応し且つメモリ・ページの前記サブセットの位置を指示する、メモリ・ページ識別子を抽出するステップと、
（ｇ）前記抽出されたメモリ・ページ識別子を使用して、メモリ・ページの前記サブセットを同期させるステップとを含む、方法。
【請求項２】
前記ステップ（ｂ）が、
前記フィルタ属性内に含まれるアプリケーション組み込みフィルタを使用して、アプリケーションを識別するステップと、
前記アプリケーションに対応する１つ以上のアクティブ・プロセスを識別するステップと、
前記識別された１つ以上のアクティブ・プロセスの各々のためのユーザ領域を識別するステップと、
前記識別された１つ以上のユーザ領域から、前記選択された複数のファイル・ポインタを抽出するステップとを含む、請求項１に記載の方法。
【請求項３】
前記フィルタ属性が、第１のアプリケーション・ファイル・タイプを組み込み且つ第２のアプリケーション・ファイル・タイプを除外する、請求項１に記載の方法。
【請求項４】
前記ステップ（ｃ）が、
物理ファイル・システム内に含まれ且つ前記複数のファイルに対応する複数のｉノード・データ構造を分析するステップと、
前記分析の間に、前記複数のｉノード・データ構造から、前記メモリ・ページ識別子を含むセグメント制御ブロックを抽出するステップとを含む、請求項１に記載の方法。
【請求項５】
前記物理ファイル・システムをトラバースする前に、論理ファイル・システムをトラバースするステップをさらに含み、
前記論理ファイル・システムをトラバースするステップが、
複数のｖノード・データ構造を分析するステップと、
複数のｇノード・データ構造を分析するステップとを含む、請求項４に記載の方法。
【請求項６】
前記フィルタ属性が、アプリケーション組み込みフィルタ、アプリケーション除外フィルタ、ファイル・サイズ・フィルタ及び最終更新フィルタから成るグループから選択される、請求項１に記載の方法。
【請求項７】
前記ステップ（ａ）が、前記スケジュール済み同期タスクに対応する指定された開始時間及び発生頻度に基づく、請求項１に記載の方法。
【請求項８】
周辺装置であって、
１つ以上のプロセッサと、
前記プロセッサの少なくとも１つによってアクセス可能なメモリと、
前記プロセッサの少なくとも１つによってアクセス可能な不揮発性ストレージ領域とを備え、
前記メモリ内に格納された１セットの命令が、前記プロセッサの少なくとも１つに
（ａ）複数のメモリ・ページをメモリ・ページのサブセットにフィルタするためのフィルタ属性を含む、スケジュール済み同期タスクを呼び出すステップと、
（ｂ）前記スケジュール済み同期タスクの呼び出しに応答して、複数のファイルに対応する複数のファイル・ポインタを選択するステップと、
（ｃ）前記選択された複数のファイル・ポインタを使用して、前記複数のファイルをトラバースし且つ前記複数のファイルの各々のためのファイル属性を抽出するステップと、
（ｄ）前記フィルタ属性を前記抽出されたファイル属性と比較するステップと、
（ｅ）前記比較に基づき、前記複数のファイルをフィルタするステップと、
（ｆ）前記フィルタされた複数のファイルに対応し且つメモリ・ページの前記サブセットの位置を指示する、メモリ・ページ識別子を抽出するステップと、
（ｇ）前記抽出されたメモリ・ページ識別子を使用して、前記メモリ内に含まれるメモリ・ページの前記サブセットを前記不揮発性ストレージ領域と同期させるステップとを実行させる、周辺装置。
【請求項９】
前記１セットの命令が、前記プロセッサの少なくとも１つに
前記フィルタ属性内に含まれるアプリケーション組み込みフィルタを使用して、アプリケーションを識別するステップと、
前記アプリケーションに対応する１つ以上のアクティブ・プロセスを識別するステップと、
前記識別された１つ以上のアクティブ・プロセスの各々のためのユーザ領域を識別するステップと、
前記識別された１つ以上のユーザ領域から、前記選択された複数のファイル・ポインタを抽出するステップとを実行させる、請求項８に記載の周辺装置。
【請求項１０】
前記フィルタ属性が、第１のアプリケーション・ファイル・タイプを組み込み且つ第２のアプリケーション・ファイル・タイプを除外する、請求項８に記載の周辺装置。
【請求項１１】
前記ステップ（ｃ）の間に、前記１セットの命令が、前記プロセッサの少なくとも１つに
物理ファイル・システム内に含まれ且つ前記複数のファイルに対応する複数のｉノード・データ構造を分析するステップと、
前記分析の間に、前記複数のｉノード・データ構造から、前記メモリ・ページ識別子を含むセグメント制御ブロックを抽出するステップとを実行させる、請求項８に記載の周辺装置。
【請求項１２】
前記物理ファイル・システムをトラバースする前に、前記１セットの命令が、前記プロセッサの少なくとも１つに
論理ファイル・システムをトラバースするステップを実行させ、
前記論理ファイル・システムをトラバースするステップが、
複数のｖノード・データ構造を分析するステップと、
複数のｇノード・データ構造を分析するステップとを含む、請求項１１に記載の周辺装置。
【請求項１３】
前記フィルタ属性が、アプリケーション組み込みフィルタ、アプリケーション除外フィルタ、ファイル・サイズ・フィルタ及び最終更新フィルタから成るグループから選択される、請求項８に記載の周辺装置。
【請求項１４】
コンピュータ可読媒体内に格納され且つ機能的な記述資料から成るコンピュータ・プログラムであって、
情報処理システムに
（ａ）複数のメモリ・ページをメモリ・ページのサブセットにフィルタするためのフィルタ属性を含む、スケジュール済み同期タスクを呼び出すステップと、
（ｂ）前記スケジュール済み同期タスクの呼び出しに応答して、複数のファイルに対応する複数のファイル・ポインタを選択するステップと、
（ｃ）前記選択された複数のファイル・ポインタを使用して、前記複数のファイルをトラバースし且つ前記複数のファイルの各々のためのファイル属性を抽出するステップと、
（ｄ）前記フィルタ属性を前記抽出されたファイル属性と比較するステップと、
（ｅ）前記比較に基づき、前記複数のファイルをフィルタするステップと、
（ｆ）前記フィルタされた複数のファイルに対応し且つメモリ・ページの前記サブセットの位置を指示する、メモリ・ページ識別子を抽出するステップと、
（ｇ）前記抽出されたメモリ・ページ識別子を使用して、メモリ・ページの前記サブセットを同期させるステップとを実行させる、コンピュータ・プログラム。
【請求項１５】
前記情報処理システムに
前記フィルタ属性内に含まれるアプリケーション組み込みフィルタを使用して、アプリケーションを識別するステップと、
前記アプリケーションに対応する１つ以上のアクティブ・プロセスを識別するステップと、
前記識別された１つ以上のアクティブ・プロセスの各々のためのユーザ領域を識別するステップと、
前記識別された１つ以上のユーザ領域から、前記選択された複数のファイル・ポインタを抽出するステップとをさらに実行させる、請求項１４に記載のコンピュータ・プログラム。
【請求項１６】
前記フィルタ属性が、第１のアプリケーション・ファイル・タイプを組み込み且つ第２のアプリケーション・ファイル・タイプを除外する、請求項１４に記載のコンピュータ・プログラム。
【請求項１７】
前記ステップ（ｃ）の間に、前記情報処理システムに
物理ファイル・システム内に含まれ且つ前記複数のファイルに対応する複数のｉノード・データ構造を分析するステップと、
前記分析の間に、前記複数のｉノード・データ構造から、前記メモリ・ページ識別子を含むセグメント制御ブロックを抽出するステップとをさらに実行させる、請求項１５に記載のコンピュータ・プログラム。
【請求項１８】
前記物理ファイル・システムをトラバースする前に、前記情報処理システムに
論理ファイル・システムをトラバースするステップをさらに実行させ、
前記論理ファイル・システムをトラバースするステップが、
複数のｖノード・データ構造を分析するステップと、
複数のｇノード・データ構造を分析するステップとを含む、請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
前記フィルタ属性が、アプリケーション組み込みフィルタ、アプリケーション除外フィルタ、ファイル・サイズ・フィルタ及び最終更新フィルタから成るグループから選択される、請求項１４に記載のコンピュータ・プログラム。
【請求項２０】
前記ステップ（ａ）が、前記スケジュール済み同期タスクに対応する指定された開始時間及び発生頻度に基づく、請求項１４に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、改良された同期粒度を提供する拡張同期フレームワークに係り、さらに詳細に説明すれば、ユーザ指定のフィルタ基準に基づき、アクティブな複数のメモリ・ページをメモリ・ページのサブセットにフィルタし且つスケジュール済み同期イベント中にメモリ・ページの前記サブセットだけを同期させることに係る。
【背景技術】
【０００２】
コンピュータ・システムは、その完全性を維持するために、定期的にメモリのページをハード・ディスクと同期させる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
多くの場合、「同期」動作は、過剰な数のメモリ・ページをハード・ディスクと同期させることを試みることがある。本発明は、特定の同期動作中に同期させるべきメモリ・ページの数を洗練する、改良されたメモリ・ページ選択粒度を提供する。
【課題を解決するための手段】
【０００４】
同期マネージャは、複数のメモリ・ページをメモリ・ページのサブセットにフィルタするためのフィルタ属性を含む、スケジュール済み同期タスクを呼び出す。同期マネージャは、複数のファイルに対応するファイル・ポインタを選択し、当該選択されたファイル・ポインタを使用して、前記複数のファイルをトラバースする。トラバースを行っている間、同期マネージャは、前記複数のファイルの各々のためのファイル属性を抽出し、前記フィルタ属性を前記抽出されたファイル属性と比較することにより、前記複数のファイルをフィルタする。その後、同期マネージャは、前記フィルタされたファイルに対応するメモリ・ページ識別子を抽出し、当該抽出されたメモリ・ページ識別子を使用して、メモリ・ページのサブセットを同期させる。
【０００５】
前述の内容は、本発明の概要であって、当然に、詳細事項の単純化、一般化及び省略を含む。従って、かかる概要は、一例であるに過ぎず、本発明を制限することを意図するものではない。本発明の他の側面、特徴及び利点は、以下の詳細な説明から明らかになるであろう。
【発明の効果】
【０００６】
本発明は、同期マネージャが、アクティブな全てのメモリ・ページを同期させることなく、メモリ・ページのサブセットを同期させることができ、その結果、処理時間がより短くなるだけでなく、入出力ボトルネックを緩和することができる。
【図面の簡単な説明】
【０００７】
【図１】本発明に従った方法を実装することができるデータ処理システムのブロック図である。
【図２】本発明に従った方法をネットワーク化された環境内で動作する種々の情報処理システム上で実施できることを例示するために、図１に示される情報処理システム環境の拡張を提供する図である。
【図３】１つ以上のフィルタ属性に基づき、メモリ・ページのサブセットを同期させるために、拡張同期フレームワークを使用する同期マネージャを示す図である。
【図４】一のスケジュール済み同期タスクを作成し且つ構成するためのユーザ・インタフェース・ウィンドウを示す図である。
【図５】スケジュール済み同期タスクを格納する、テーブル・ストアを示す図である。
【図６】同期させるべきメモリ・ページのサブセットを識別するためのフィルタ属性を含む、一のスケジュール済み同期タスクを構成する際に取られるステップを示すフローチャートである。
【図７】一のアプリケーションによって呼び出されるアクティブ・プロセスが、使用されるファイルに対応するファイル・ポインタを記録すべきユーザ領域を作成する態様を示す図である。
【図８】特定のファイル・ポインタに対応するファイル属性を識別し且つ抽出するために行われる、論理ファイル・システム及び物理ファイル・システムのトラバーサルを示す図である。
【図９】メモリ・ページのサブセットを同期させる際に取られるステップを示す高水準のフローチャートである。
【図１０】同期させるべきメモリ・ページのサブセットを識別する際に取られるステップを示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下の説明及び図面では、本発明の種々の実施形態を十分に理解することができるように、特定の詳細事項が開示されている。しかし、本発明の種々の実施形態を不明瞭にしないようにするため、コンピューティング及びソフトウェア技術に関連する周知の詳細事項は、開示されていない。さらに、当業者には明らかなように、以下で説明する１つ以上の詳細事項に依拠することなく、本発明の他の実施形態を実施することができる。最後に、ステップ及びステップのシーケンスを参照して種々の方法を説明するが、かかる説明は、本発明の諸実施形態の明瞭な実装を提供するためのものであるに過ぎず、本発明を実施するためにこれらのステップ及びステップのシーケンスが不可欠であるものと解すべきではない。すなわち、以下の説明は、単に本発明の１例を詳細に説明することを意図するものであり、本発明自体を制限するものと解すべきではない。従って、任意の数の変形が、請求項によって定義される本発明の範囲に属することがある。
【０００９】
前述の概要に沿った以下の詳細な説明は、必要に応じて、本発明の種々の側面及び実施形態の定義をさらに説明し且つ拡張する。このため、先ず、本発明に関連するソフトウェア及びハードウェア技術を実装するのに適切な、図１の基本的なコンピューティング環境を説明する。図２のネットワーク化された環境は、基本的なコンピューティング環境の拡張であって、最近のコンピューティング技術が複数の個別装置間で実行できることを強調するために示されている。
【００１０】
図１の情報処理システム１００は、本発明に従ったコンピューティング動作を実行することができる、コンピュータ・システムの単純化された例である。情報処理システム１００は、プロセッサ・インタフェース・バス１１２に結合された１つ以上のプロセッサ１１０を含む。プロセッサ・インタフェース・バス１１２は、プロセッサ１１０をノース・ブリッジ兼メモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ）１１５に接続する。ＮＢ／ＭＣＨ １１５は、システム・メモリ１２０に接続し、プロセッサ１１０がシステム・メモリ１２０にアクセスするための手段を提供する。ＮＢ／ＭＣＨ １１５は、グラフィックス・コントローラ１２５にも接続する。１つの実施形態では、ＰＣＩエクスプレス・バス１１８が、ＮＢ／ＭＣＨ １１５をグラフィックス・コントローラ１２５に接続する。グラフィックス・コントローラ１２５は、コンピュータ・モニタのようなディスプレイ装置１３０に接続する。
【００１１】
ＮＢ／ＭＣＨ １１５及びサウス・ブリッジ兼Ｉ／Ｏコントローラ・ハブ（ＳＢ／ＩＣＨ）１３５は、バス１１９を使用して相互に接続する。１つの実施形態では、バス１１９は、ＮＢ／ＭＣＨ １１５とＳＢ／ＩＣＨ １３５の間の各方向に高速でデータを転送する、ダイレクト・メディア・インタフェース（ＤＭＩ）バスである。他の実施形態では、ＰＣＩバスが、ＮＢ／ＭＣＨ １１５とＳＢ／ＩＣＨ １３５を接続する。一般に、ＳＢ／ＩＣＨ １３５は、ＮＢ／ＭＣＨ １１５によって提供される能力よりも遅い速度で動作する能力を実装するチップである。一般に、ＳＢ／ＩＣＨ １３５は、種々のコンポーネントを接続するために使用される種々のバスを提供する。例えば、これらのバスは、ＰＣＩバス、ＰＣＩエクスプレス・バス、ＩＳＡバス、システム管理（ＳＭ）バス及び小ピン・カウント（ＬＰＣ）バスを含む。一般に、ＬＰＣバスは、ブートＲＯＭ １９６及び（「ｓｕｐｅｒ Ｉ／Ｏ」チップを使用する）「レガシー」入出力装置のような低帯域幅の装置を接続する。例えば、「レガシー」入出力装置１９８は、シリアル及びパラレル・ポート、キーボード、マウス及びフレキシブル・ディスク・コントローラを含むことができる。また、ＬＰＣバスは、ＳＢ／ＩＣＨ １３５をトラステッド・プラットフォーム・モジュール（ＴＰＭ）１９５に接続する。ＳＢ／ＩＣＨ １３５内の他のコンポーネントは、ダイレクト・メモリ・アクセス（ＤＭＡ）コントローラ、プログラム可能な割り込みコントローラ（ＰＩＣ）及びＳＢ／ＩＣＨ １３５をバス１８４を介してハード・ディスク・ドライブのような不揮発性ストレージ装置１８５に接続するストレージ装置コントローラを含む。
【００１２】
エクスプレス・カード１５５は、ホット・プラグ可能な周辺装置を情報処理システム１００に接続するスロットである。エクスプレス・カード１５５は、ユニバーサル・シリアル・バス（ＵＳＢ）及びＰＣＩエクスプレス・バスの両方を使用してＳＢ／ＩＣＨ １３５に接続しているので、ＰＣＩエクスプレス及びＵＳＢ接続性の両方をサポートする。ＳＢ／ＩＣＨ １３５内のＵＳＢコントローラ１４０は、ＵＳＢ装置に対するＵＳＢ接続性を提供する。これらの装置は、ウェブ・カメラ（カメラ）１５０、赤外線（ＩＲ）レシーバ１４８、キーボード及びトラック・パッド１４４、無線パーソナル・エリア・ネットワーク（ＰＡＮ）用のブルートゥース装置１４６を含む。また、ＵＳＢコントローラ１４０は、マウス、取り外し可能な不揮発性ストレージ装置１４５、モデム、ネットワーク・カード、ＩＳＤＮコネクタ、ファックス、プリンタ、ＵＳＢハブ等の、他の種々のＵＳＢ装置１４２に対するＵＳＢ接続性を提供する。取り外し可能な不揮発性ストレージ装置１４５は、ＵＳＢ装置として示されているが、ファイヤワイヤ（Ｆｉｒｅｗｉｒｅ）・インタフェース等の異なるインタフェースを使用して、これを接続することもできる。
【００１３】
無線ローカル・エリア・ネットワーク（ＬＡＮ）装置１７５は、ＰＣＩバス又はＰＣＩエクスプレス・バス１７２を介して、ＳＢ／ＩＣＨ １３５に接続する。一般に、ＬＡＮ装置１７５は、無線変調技術に係るＩＥＥＥ．８０２．１１標準規格のうちの１つを実装することにより、情報処理システム１００と他のコンピュータ・システム又は装置との間の無線通信を行うために全てが同じプロトコルを使用するようにする。光ディスク装置１９０は、シリアルＡＴＡ（ＳＡＴＡ）バス１８８を使用して、ＳＢ／ＩＣＨ １３５に接続する。シリアルＡＴＡアダプタ及び装置は、高速のシリアル・リンクを介して通信する。また、シリアルＡＴＡバスは、ＳＢ／ＩＣＨ １３５を、ハード・ディスク・ドライブのような他の形式のストレージ装置に接続する。サウンド・カードのようなオーディオ回路１６０は、バス１５８を介して、ＳＢ／ＩＣＨ １３５に接続する。オーディオ回路１６０は、オーディオ・ライン入力及び光デジタル・オーディオ入力ポート１６２、光デジタル出力及びヘッドホン・ジャック１６４、内部スピーカ１６６及び内部マイクロホン１６８のような機能性を提供する。イーサネット（登録商標）・コントローラ１７０は、ＰＣＩバス又はＰＣＩエクスプレス・バスのようなバスを使用して、ＳＢ／ＩＣＨ １３５に接続する。イーサネット・コントローラ１７０は、情報処理システム１００を、ローカル・エリア・ネットワーク（ＬＡＮ）、インターネット、他の公衆又は私設コンピュータ・ネットワークのようなコンピュータ・ネットワークに接続する。
【００１４】
図１は、１つの情報処理システムを示すが、情報処理システムは多くの形式を取ることがある。例えば、情報処理システムは、デスクトップ、サーバ、ポータブル、ラップトップ、ノートブック又は他のフォーム・ファクタのコンピュータ又はデータ処理システムの形式を取ることがある。さらに、情報処理システムは、携帯情報端末（ＰＤＡ）、ゲーム装置、ＡＴＭ機、携帯電話機、通信装置又はプロセッサ及びメモリを含む他の装置のような他のフォーム・ファクタを取ることがある。
【００１５】
セキュリティ機能を提供するものとして図１に示されているＴＰＭ １９５は、ハードウェア・セキュリティ・モジュール（ＨＳＭ）の１つの例であるに過ぎない。従って、ＴＰＭ １９５は、「Trusted Platform Module (TPM) Specification Version 1.2」と題する、「Trusted Computing Groups (TCG)」の標準化規格に準拠する、任意のタイプのＨＳＭを含む。ＴＰＭ １９５は、ハードウェア・セキュリティ・サブシステムであって、図２に概略を示すような任意の数の情報処理システムに組み込むことができる。
【００１６】
図２は、本発明に従った方法をネットワーク化された環境内で動作する種々の情報処理システム上で実施できることを例示するために、図１に示される情報処理システム環境の拡張を提供する図である。情報処理システムのタイプは、ハンドヘルド・コンピュータ／携帯電話機２１０のような小型の携帯用装置からメインフレーム・コンピュータ２７０のような大型のメインフレーム・システムにまで及ぶ。ハンドヘルド・コンピュータ２１０の例は、携帯情報端末（ＰＤＡ）、ＭＰ３プレーヤのようなパーソナル娯楽装置、ポータブル・テレビ及びコンパクト・ディスク・プレーヤを含む。情報処理システムの他の例は、ペン（タブレット）・コンピュータ２２０、ラップトップ（ノートブック）・コンピュータ２３０、ワークステーション２４０、パーソナル・コンピュータ２５０及びサーバ２６０を含む。図２に個別に示されていない他のタイプの情報処理システムは、情報処理システム２８０によって表される。図示のように、種々の情報処理システムは、ローカル・エリア・ネットワーク（ＬＡＮ）、無線ローカル・エリア・ネットワーク（ＷＬＡＮ）、インターネット、公衆交換電話ネットワーク（ＰＳＴＮ）、他の無線ネットワーク及びこれらの情報処理システムを相互接続するために使用することができる他の任意のネットワーク・トポロジを含む。これらの情報処理システムの多くは、ハード・ドライブ又は不揮発性メモリのような不揮発性データ・ストアを含む。図２に示す情報処理システムのうちの幾つかは、別個の不揮発性データ・ストアを使用する（サーバ２６０は不揮発性データ・ストア２６５を使用し、メインフレーム・コンピュータ２７０は不揮発性データ・ストア２７５を使用し、情報処理システム２８０は不揮発性データ・ストア２８５を使用する）。かかる不揮発性データ・ストアは、種々の情報処理システムの外部に存在するか又は１つの情報処理システムの内部に存在することがある。さらに、取り外し可能な不揮発性ストレージ装置１４５を、２つ以上の情報処理システム間で共有することができる。そうするためには、取り外し可能な不揮発性ストレージ装置１４５を当該情報処理システムのＵＳＢポート又は他のコネクタに接続するというような種々の技術を使用すればよい。
【００１７】
図３は、１つ以上のフィルタ属性に基づき、メモリ・ページのサブセットを同期させるために、拡張同期フレームワークを使用する同期マネージャを示す図である。ユーザは、フィルタ属性を含むスケジュール済み同期タスクを構成する。これらのスケジュール済み同期タスクは、テーブル・ストア３０５内に格納される（詳細については、図４、図６及び対応する説明を参照）。スケジュール済み同期タスクは、アプリケーション組み込み（inclusion）フィルタ、アプリケーション除外（exclusion）フィルタ、ファイル・サイズ・フィルタ及び最終更新フィルタのようなフィルタ属性を含む。アプリケーション組み込みフィルタは、同期マネージャ３００に対し、特定のアプリケーションに対応するメモリ・ページを同期させるように命令する。アプリケーション除外フィルタは、同期マネージャ３００に対し、特定のアプリケーションに対応するメモリ・ページを同期させないように命令する。ファイル・サイズ・フィルタは、同期マネージャ３００に対し、特定のサイズ（例えば、２ＧＢ超）であるファイルに対応するメモリ・ページを同期させるように命令する。また、最終更新フィルタは、同期マネージャ３００に対し、特定の時間（例えば、１日以上）に最後に更新されたファイルに対応するメモリ・ページを同期させるように命令する。テーブル・ストア３０５は、コンピュータ・ハード・ドライブのような不揮発性ストレージ領域上に格納することができる。
【００１８】
同期マネージャ３００は、テーブル・ストア３０５から一のスケジュール済み同期タスクを検索し、当該スケジュール済み同期タスクのフィルタ属性を識別する。これらのフィルタ属性が特定のアプリケーションを指定する場合、同期マネージャ３００は、当該特定のアプリケーションのプロセスに対応するユーザ領域３２０を識別し、当該ユーザ領域３２０からファイル・ポインタ３１０を抽出する。ファイル・ポインタ３１０は、当該特定のアプリケーションによって使用されるファイルに対応する。前記フィルタ属性が一のアプリケーションを指定しない場合、同期マネージャ３００は、アクティブな全てのファイル・ポインタを選択することができる。
【００１９】
次に、同期マネージャ３００は、前記ファイル・ポインタ（ファイル・ポインタ３１０又はアクティブな全てのファイル・ポインタ）を使用してトラバーサル３３０を実行することにより、論理ファイル・システム３４０内に含まれる、対応するｖノード・データ構造３４２及びｇノード・データ構造３４８をトラバースする。次に、同期マネージャ３００は、論理データ・システム３４０をトラバースすることによって得られた情報を使用して、物理ファイル・システム３５０（例えば、ユーザ・ブロック（ｕｂｌｏｃｋ）情報）内に含まれる、ｉノード・データ構造３５５をトラバースする。ｉノード・データ構造３５５をトラバースしている間に、メモリ・ページ識別子を含む、セグメント制御ブロック３６０を抽出する。セグメント制御ブロック３６０内に含まれる当該メモリ・ページ識別子は、トラバーサル３３０内に含まれる前記ファイル・ポインタに対応する。
【００２０】
一旦、前記メモリ・ページ識別子を得ると、同期マネージャ３００は、当該スケジュール済み同期タスク内に含まれる他のフィルタ属性を使用して、追加のフィルタリングを実行することができる。例えば、当該スケジュール済み同期タスクがファイル・サイズ・フィルタを含む場合、同期マネージャ３００は、ｉノード・データ構造３５５をトラバースする間に得られたファイル・サイズ情報を比較することにより、同期させるべき特定のメモリ・ページを決定することができる。他の例として、当該スケジュール済み同期タスクが最終更新フィルタを含む場合、同期マネージャ３００は、ｉノード・データ構造３５５をトラバースする間に得られたファイル更新情報を比較することにより、同期させるべき特定のメモリ・ページを決定することができる。
【００２１】
一旦、複数のメモリ・ページをメモリ・ページのサブセットまでフィルタすると、同期マネージャ３００は、当該メモリ・ページをメモリ３７０からディスク・ストア３８０にコピーすることにより、メモリ・ページの当該サブセット（ページ３７５）を同期させる（同期３６５）。このように、同期マネージャ３００は、アクティブな全てのメモリ・ページを同期させることなく、メモリ・ページのサブセットを同期させることができ、その結果、処理時間がより短くなるだけでなく、入出力ボトルネックを緩和することができる。
【００２２】
図４は、一のスケジュール済み同期タスクを作成し且つ構成するためのユーザ・インタフェース・ウィンドウを示す図である。ウィンドウ４００は、ユーザが１つ以上のフィルタ属性を使用して、一のスケジュール済み同期タスクを構成するための複数の領域を含む。同期マネージャがユーザにウィンドウ４００を提供する場合、ユーザは、ボックス４１０内に、「ｓｙｎｃｄｂ２ｐａｇｅｓ」のような同期タスク名を入力する。
【００２３】
次に、ユーザは、１つ以上のフィルタ属性をボックス４２０〜４５０内に入力することができる。ユーザが、特定のアプリケーションによって使用される複数のメモリ・ページを同期させることを望む場合、ユーザは、当該アプリケーションに対応し且つ当該同期に組み込むべきファイル・タイプをボックス４２０内に入力する。これは、アプリケーション組み込みフィルタに帰着する。また、ユーザは、組み込むべき特定のファイルをブラウズするために、ボタン４２５を選択することができる。ユーザが、特定のアプリケーションによって使用される複数のメモリ・ページを除外することを望む場合、ユーザは、当該アプリケーションに対応し且つ除外すべきファイル・タイプをボックス４３０内に入力する。これは、アプリケーション除外フィルタに帰着する。また、ユーザは、除外すべき特定のファイルをブラウズするために、ボタン４２５を選択することができる。
【００２４】
また、ユーザは、「２ＧＢ超」のように、同期させるべきメモリ・ページの対応するファイルのサイズに基づいてフィルタする、ファイル・サイズ・フィルタをボックス４４０内に入力することができる。ユーザが、ファイルの最終更新日に基づきメモリ・ページの同期を指定することを望む場合、ユーザは、最終更新日フィルタをボックス４５０内に入力する。
【００２５】
また、ユーザは、指定された開始時間をボックス４６０内に入力し且つ発生頻度（例えば、４５秒ごと）ボックス４７０内に入力することにより、当該スケジュール済み同期タスクを実行すべき時間及び同期させるべき頻度を構成することができる。一旦、フィルタ属性及びスケジュール属性の入力を終了すると、ユーザは、当該スケジュール済み同期タスクを保存するために、ボタン４８０を選択する。また、ユーザは、当該スケジュール済み同期タスクの作成及び構成をキャンセルするために、ボタン４９０を選択することができる。
【００２６】
図５は、スケジュール済み同期タスクを格納する、テーブル・ストアを示す図である。ユーザが、図４に示すようなユーザ・インタフェース・ウィンドウを使用して一のスケジュール済み同期タスクを作成する場合、同期マネージャは、当該スケジュール済み同期タスクをテーブル・ストア５００内に格納する。
【００２７】
テーブル・ストア５００内の列５１０は、ユーザによって指定されたスケジュール済み同期タスク名のリストを含む。列５２０は、特定のスケジュール済み同期タスクのためのフィルタ属性のリストを含み、列５３０は、特定のスケジュール済み同期タスクのためのスケジュール属性のリストを含む。行５４０は、「同期タスクＡ」が、「ｄｂ２ファイル」のアプリケーション組み込みフィルタと、「＞２ＧＢ」のファイル・サイズ・フィルタと、「１／１／０８の後」の最終更新フィルタを含むことを示す。また、行５４０は、「同期タスクＡ」が、「２:００ＡＭ」の指定された開始時間スケジュール属性と、「４５秒」ごとの発生頻度スケジュール属性を含むことを示す
【００２８】
同様に、行５５０は、「同期タスクＢ」が、「ｄｂ２ファイル」のアプリケーション除外フィルタと、「１２:００ＰＭ」の指定された開始時間スケジュール属性と、「１２０秒」ごとの発生頻度スケジュール属性を含むことを示す。同期マネージャは、スケジュール属性に基づく時間に同期させるべきメモリ・ページのサブセットを識別するために、これらのスケジュール済み同期タスク・フィルタ属性を使用する（詳細については、図９、図１０及び対応する説明を参照）。
【００２９】
図６は、同期させるべきメモリ・ページのサブセットを識別するためのフィルタ属性を含む、一のスケジュール済み同期タスクを構成する際に取られるステップを示すフローチャートである。ステップ６００で開始した後、同期タスク構成処理は、図４に例示されるようなユーザ・インタフェースをユーザ６２０に表示する（ステップ６１０）。本処理は、同期させるべきメモリ・ページのファイル・タイプを指定する、フィルタ属性をユーザ６２０から受け取る（ステップ６３０）。例えば、当該フィルタ属性は、ｄｂ２アプリケーションによって使用される全てのメモリ・ページを同期させるために、アプリケーション組み込みフィルタを含むことがある。他のフィルタ属性は、アプリケーション除外フィルタ、ファイル・サイズ・フィルタ及び最終更新フィルタを含むことがある。また、ユーザ６２０は、指定された開始時間（例えば、９:００ＡＭ）及び発生頻度（例えば、６０秒ごと）を提供する（詳細については、図４及び対応する説明を参照）。
【００３０】
本処理は、当該スケジュール済み同期タスクをテーブル・ストア３０５内に記録することにより（ステップ６４０）、当該同期タスクの後の使用に備える（詳細については、図９、図１０及び対応する説明を参照）。テーブル・ストア３０５は、図３に示すものと同じである。
【００３１】
ユーザ６２０が、他のスケジュール済み同期タスクを作成することを望むか否かという決定が行われる（ステップ６５０）。そうであれば、「ＹＥＳ」枝路６５２を介して、他のスケジュール済み同期タスクを構成し且つ格納するステップにループバックする。このループが継続するのは、ユーザ６２０がスケジュール済み同期タスクの構成を終了するまでである。この時点で、ステップ６５０は、「ＮＯ」枝路６５８を介してステップ６６０に至り、本処理が終了する。
【００３２】
図７は、一のアプリケーションによって呼び出されるアクティブ・プロセスが、使用されるファイルに対応するファイル・ポインタを記録すべきユーザ領域を作成する態様を示す図である。アプリケーション７００は、その別個のインスタンスを表す、プロセスＡ ７１０、Ｂ ７２０及びＣ ７３０を呼び出し且つ実行する。各プロセスは、特定のプロセスが使用するファイルに対応するログファイル・ポインタを記録すべき、一のユーザ領域を作成する。図示のように、プロセスＡ ７１０が作成するユーザ領域Ａ ７４０は、ファイル・ポインタ７７０を含み、プロセスＢ ７２０が作成するユーザ領域Ｂ ７５０は、ファイル・ポインタ７８０を含み、プロセスＣ ７３０が作成するユーザ領域Ｃ ７６０は、ファイル・ポインタ７９０を含む。
【００３３】
ユーザが、アプリケーション組み込みフィルタを使用して、特定のアプリケーションのために同期させるべきメモリ・ページを指定する場合、本処理は、当該アプリケーションによって呼び出されるプロセスを識別し、対応するユーザ領域を識別し、当該ユーザ領域からファイル・ポインタを抽出する。次に、本処理は、当該抽出されたファイル・ポインタを使用して、論理ファイル・システム及び物理ファイル・システムをトラバースする。この動作は、これらのファイルに対応するメモリ・ページ識別子を含む、対応するセグメント制御ブロックを識別するために行われる。次に、本処理は、これらのメモリ・ページをハード・ディスクと同期させる（詳細については、図８、図１０及び対応する説明を参照）。
【００３４】
図８は、特定のファイル・ポインタに対応するファイル属性を識別し且つ抽出するために行われる、論理ファイル・システム及び物理ファイル・システムのトラバーサルを示す図である。同期マネージャ３００は、対応するメモリ・ページを同期させるべき、特定のファイル・ポインタを選択する。同期マネージャ３００は、これらのファイル・ポインタを選択するためにアプリケーション組み込みフィルタ又はアプリケーション除外フィルタを使用するか、或いは現に開かれているファイルに対応する全てのファイル・ポインタを選択することができる。
【００３５】
同期マネージャ３００は、当該選択されたファイル・ポインタを使用して、論理ファイル・システム３４０内に含まれる、ｖノード・データ構造３４２（当該ファイル・ポインタに対応）及びｇノード・データ構造３４８（当該ファイル・ポインタに対応）のトラバーサル３３０を実行する。同期マネージャ３００は、論理ファイル・システム３４０をトラバースすることにより受け取られた情報に基づいて、ｉノード・データ構造３５５（当該ファイル・ポインタに対応）をトラバースすることができる。
【００３６】
ｉノード・データ構造３５５は、一のファイルに対応し、ファイル属性８００を含む。ファイル属性８００は、ファイル名８１０、（メモリ・ページ識別子を含む）セグメント制御ブロック３６０、ファイル・サイズ８２０及び最終同期時間８３０を含む。同期マネージャ３００は、ファイル属性８００からセグメント制御ブロック３６０を抽出し、（そこに含まれるメモリ・ページ識別子を使用して）同期させるべき適切なメモリ・ページを識別する。また、同期マネージャ３００は、サイズ８２０又は最終同期時間８３０のような他のファイル属性８００を抽出し、当該他のフィルタ属性に基づいて同期させるべきメモリ・ページをフィルタすることができる（詳細については、図１０及び対応する説明を参照）。
【００３７】
図９は、メモリ・ページのサブセットを同期させる際に取られるステップを示す高水準のフローチャートである。ステップ９００で開始した後、ページ同期処理は、テーブル・ストア３０５内に含まれるスケジュール済み同期タスクをロードする（ステップ９１０）。ユーザが以前に作成し且つ構成したスケジュール済み同期タスクの各々は、１つ以上のフィルタ属性を含む（詳細については、図４、図５及び対応する説明を参照）。テーブル・ストア３０５は、図３に示すものと同じである。
【００３８】
ステップ９２０では、本処理は、一のスケジュール済み同期タスクを呼び出すべき時間を待機する。例えば、スケジュール済み同期タスクのうちの１つは、１２:００ＡＭに開始し且つ６０秒ごとの頻度で実行するというスケジュール属性を含むことがある。一旦、当該スケジュール済み同期タスクを呼び出すと、同期マネージャは、一連のステップを通して進行することにより、当該スケジュール済み同期タスク内に含まれるフィルタ属性に基づいて同期させるべきメモリ・ページのサブセットを識別する（予め定義されたプロセス・ブロックの詳細については、図１０及び対応する説明を参照）。
【００３９】
同期マネージャが、適切なメモリ・ページを識別した後、本処理は、当該メモリ・ページをメモリ３７０からディスク・ストア３８０にコピーすることにより、当該メモリ・ページを同期させる（ステップ９４０）。メモリ３７０及びディスク・ストア３８０は、図３に示すものと同じである。
【００４０】
スケジュール済み同期タスクを待機し且つ処理することを継続すべきか否かという決定が行われる（ステップ９５０）。そうであれば、「ＹＥＳ」枝路９５２を介して、他のスケジュール済み同期タスクを処理するステップにループバックする。このループが継続するのは、本処理を終了するまでである。この時点で、ステップ９５０は、「ＮＯ」枝路９５８を介してステップ９６０に至り、本処理が終了する。
【００４１】
図１０は、同期させるべきメモリ・ページのサブセットを識別する際に取られるステップを示すフローチャートである。ステップ１０００で開始した後、メモリ・ページ識別処理は、一のスケジュール済み同期タスクのフィルタ属性を分析する（ステップ１００５）。アプリケーション・タイプに基づいてメモリ・ページを同期させるべきか否かという決定が行われる（ステップ１０１０）。例えば、これらのフィルタ属性は、アプリケーション組み込みフィルタ又はアプリケーション除外フィルタを含むことがある。
【００４２】
本処理が、アプリケーション・タイプに基づいてメモリ・ページを同期させるべきものであれば、ステップ１０１０の「ＹＥＳ」枝路が取られ、そこで本処理は、当該アプリケーション・タイプに対応するユーザ領域を識別する（ステップ１０１５）。例えば、本処理は、当該アプリケーションのアクティブ・プロセスを識別し且つ当該アクティブ・プロセスによって作成されるユーザ領域を識別することができる（詳細については、図７及び対応する説明を参照）。ステップ１０２０では、本処理は、前記識別されたユーザ領域３２０に含まれるファイル・ポインタを抽出し且つ選択する。ユーザ領域３２０は、図３に示すものと同じである。一方、本処理が、アプリケーション・タイプに基づいてメモリ・ページを同期させるべきものでなければ、ステップ１０１０の「ＮＯ」枝路１０１８が取られ、そこで本処理は、アクティブな全てのファイル・ポインタを選択する（ステップ１０３０）。
【００４３】
一旦、本処理がファイル・ポインタを選択すれば、本処理は、これらのファイル・ポインタを使用して、論理ファイル・システム３４０内に含まれる、対応するｖノード・データ構造及びｇノード・データ構造をトラバースする（ステップ１０４０）。次に、論理ファイル・システム３４０のトラバースから得られた情報を使用して、本処理は、物理ファイル・システム３５０内にある、対応するｉノード・データ構造をトラバースし、当該対応するｉノード・データ構造からセグメント制御ブロック、ファイル・サイズ等のファイル属性を抽出する（ステップ１０５０）。
【００４４】
本処理は、これらのファイル属性を、当該スケジュール済み同期タスク内に含まれるフィルタ属性と比較することにより、ファイルをフィルタする（ステップ１０６０）。例えば、本処理は、サイズが２ＧＢ超のファイルをフィルタすることができる。ステップ１０７０では、本処理は、同期すせるべきメモリ・ページのサブセットである、当該フィルタされたファイルのセグメント制御ブロックからメモリ・ページ識別子を抽出する。これらのメモリ・ページ識別子は、「ページ１〜１００」のような範囲を指定することができる。本処理は、ステップ１０８０で戻る。
【００４５】
本発明の好ましい実装のうちの１つは、クライアント・アプリケーション、すなわち、コンピュータのランダム・アクセス・メモリに常駐することがある、コード・モジュール内の１セットの命令（プログラム・コード）又は他の機能的な記述資料である。コンピュータによって必要とされるまで、当該１セットの命令は、他のコンピュータ・メモリ（例えば、ハード・ディスク・ドライブ、又は光ディスク若しくはフレキシブル・ディスクのような取り外し可能なメモリ）に格納することができる。従って、本発明は、コンピュータ内で使用するためのコンピュータ・プログラムとして実装することができる。また、本明細書で説明した種々の方法は、ソフトウェアによって選択的に活動化又は再構成される汎用コンピュータ内で実装するのが通例であるが、当業者には明らかなように、かかる方法は、ハードウェア、ファームウェア又は必要とされる方法ステップを実行するように構成された専用装置においても、これを実施することができる。機能的な記述資料は、コンピュータに対し機能性を与える情報である。かかる機能的な記述資料は、コンピュータ・プログラム、命令、規則、事実、計算可能な関数、オブジェクト及びデータ構造の定義等を含む。
【００４６】
以上、本発明の特定の実施形態を説明したが、本明細書に開示した教示に基づいて、本発明及びその広い側面から逸脱することなく、種々の変更及び修正を施しうることは明らかである。従って、本願の各請求項は、かかる変更及び修正の全てが本発明の真の精神及び範囲に属するものとして、これを包含することを意図している。本発明は、各請求項の記載によってのみ定義されるものである。
【符号の説明】
【００４７】
３００・・・同期マネージャ
３０５・・・テーブル・ストア
３１０・・・ファイル・ポインタ
３２０・・・ユーザ領域
３３０・・・トラバーサル（ポインタ）
３４０・・・論理ファイル・システム
３４２・・・ｖノード・データ構造
３４８・・・ｇノード・データ構造
３５０・・・物理ファイル・システム
３５５・・・ｉノード・データ構造
３６０・・・セグメント制御ブロック（ＳＣＢ）
３６５・・・同期
３７０・・・メモリ
３７５・・・ページ
３８０・・・ディスク
【図１】
2010067266.tif 000003
【図２】
2010067266.tif 000004
【図３】
2010067266.tif 000005
【図４】
2010067266.tif 000006
【図５】
2010067266.tif 000007
【図６】
2010067266.tif 000008
【図７】
2010067266.tif 000009
【図８】
2010067266.tif 000010
【図９】
2010067266.tif 000011
【図１０】
2010067266.tif 000012