説明

コンピュータ実装方法、周辺装置及びコンピュータ・プログラム

【課題】改良された同期粒度を有する拡張同期フレームワークを提供する。
【解決手段】同期マネージャは、複数のメモリ・ページをメモリ・ページのサブセットにフィルタするためのフィルタ属性を含む、スケジュール済み同期タスクを呼び出す。同期マネージャは、複数のファイルに対応するファイル・ポインタを選択し、当該選択されたファイル・ポインタを使用して、前記複数のファイルをトラバースする。トラバースを行っている間、同期マネージャは、前記複数のファイルの各々のためのファイル属性を抽出し、そして前記フィルタ属性を当該抽出されたファイル属性と比較することにより、前記複数のファイルをフィルタする。その後、同期マネージャは、当該フィルタされたファイルに対応するメモリ・ページ識別子を抽出し、当該抽出されたメモリ・ページ識別子を使用して、メモリ・ページのサブセットを同期させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、改良された同期粒度を提供する拡張同期フレームワークに係り、さらに詳細に説明すれば、ユーザ指定のフィルタ基準に基づき、アクティブな複数のメモリ・ページをメモリ・ページのサブセットにフィルタし且つスケジュール済み同期イベント中にメモリ・ページの前記サブセットだけを同期させることに係る。
【背景技術】
【0002】
コンピュータ・システムは、その完全性を維持するために、定期的にメモリのページをハード・ディスクと同期させる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
多くの場合、「同期」動作は、過剰な数のメモリ・ページをハード・ディスクと同期させることを試みることがある。本発明は、特定の同期動作中に同期させるべきメモリ・ページの数を洗練する、改良されたメモリ・ページ選択粒度を提供する。
【課題を解決するための手段】
【0004】
同期マネージャは、複数のメモリ・ページをメモリ・ページのサブセットにフィルタするためのフィルタ属性を含む、スケジュール済み同期タスクを呼び出す。同期マネージャは、複数のファイルに対応するファイル・ポインタを選択し、当該選択されたファイル・ポインタを使用して、前記複数のファイルをトラバースする。トラバースを行っている間、同期マネージャは、前記複数のファイルの各々のためのファイル属性を抽出し、前記フィルタ属性を前記抽出されたファイル属性と比較することにより、前記複数のファイルをフィルタする。その後、同期マネージャは、前記フィルタされたファイルに対応するメモリ・ページ識別子を抽出し、当該抽出されたメモリ・ページ識別子を使用して、メモリ・ページのサブセットを同期させる。
【0005】
前述の内容は、本発明の概要であって、当然に、詳細事項の単純化、一般化及び省略を含む。従って、かかる概要は、一例であるに過ぎず、本発明を制限することを意図するものではない。本発明の他の側面、特徴及び利点は、以下の詳細な説明から明らかになるであろう。
【発明の効果】
【0006】
本発明は、同期マネージャが、アクティブな全てのメモリ・ページを同期させることなく、メモリ・ページのサブセットを同期させることができ、その結果、処理時間がより短くなるだけでなく、入出力ボトルネックを緩和することができる。
【図面の簡単な説明】
【0007】
【図1】本発明に従った方法を実装することができるデータ処理システムのブロック図である。
【図2】本発明に従った方法をネットワーク化された環境内で動作する種々の情報処理システム上で実施できることを例示するために、図1に示される情報処理システム環境の拡張を提供する図である。
【図3】1つ以上のフィルタ属性に基づき、メモリ・ページのサブセットを同期させるために、拡張同期フレームワークを使用する同期マネージャを示す図である。
【図4】一のスケジュール済み同期タスクを作成し且つ構成するためのユーザ・インタフェース・ウィンドウを示す図である。
【図5】スケジュール済み同期タスクを格納する、テーブル・ストアを示す図である。
【図6】同期させるべきメモリ・ページのサブセットを識別するためのフィルタ属性を含む、一のスケジュール済み同期タスクを構成する際に取られるステップを示すフローチャートである。
【図7】一のアプリケーションによって呼び出されるアクティブ・プロセスが、使用されるファイルに対応するファイル・ポインタを記録すべきユーザ領域を作成する態様を示す図である。
【図8】特定のファイル・ポインタに対応するファイル属性を識別し且つ抽出するために行われる、論理ファイル・システム及び物理ファイル・システムのトラバーサルを示す図である。
【図9】メモリ・ページのサブセットを同期させる際に取られるステップを示す高水準のフローチャートである。
【図10】同期させるべきメモリ・ページのサブセットを識別する際に取られるステップを示すフローチャートである。
【発明を実施するための形態】
【0008】
以下の説明及び図面では、本発明の種々の実施形態を十分に理解することができるように、特定の詳細事項が開示されている。しかし、本発明の種々の実施形態を不明瞭にしないようにするため、コンピューティング及びソフトウェア技術に関連する周知の詳細事項は、開示されていない。さらに、当業者には明らかなように、以下で説明する1つ以上の詳細事項に依拠することなく、本発明の他の実施形態を実施することができる。最後に、ステップ及びステップのシーケンスを参照して種々の方法を説明するが、かかる説明は、本発明の諸実施形態の明瞭な実装を提供するためのものであるに過ぎず、本発明を実施するためにこれらのステップ及びステップのシーケンスが不可欠であるものと解すべきではない。すなわち、以下の説明は、単に本発明の1例を詳細に説明することを意図するものであり、本発明自体を制限するものと解すべきではない。従って、任意の数の変形が、請求項によって定義される本発明の範囲に属することがある。
【0009】
前述の概要に沿った以下の詳細な説明は、必要に応じて、本発明の種々の側面及び実施形態の定義をさらに説明し且つ拡張する。このため、先ず、本発明に関連するソフトウェア及びハードウェア技術を実装するのに適切な、図1の基本的なコンピューティング環境を説明する。図2のネットワーク化された環境は、基本的なコンピューティング環境の拡張であって、最近のコンピューティング技術が複数の個別装置間で実行できることを強調するために示されている。
【0010】
図1の情報処理システム100は、本発明に従ったコンピューティング動作を実行することができる、コンピュータ・システムの単純化された例である。情報処理システム100は、プロセッサ・インタフェース・バス112に結合された1つ以上のプロセッサ110を含む。プロセッサ・インタフェース・バス112は、プロセッサ110をノース・ブリッジ兼メモリ・コントローラ・ハブ(NB/MCH)115に接続する。NB/MCH 115は、システム・メモリ120に接続し、プロセッサ110がシステム・メモリ120にアクセスするための手段を提供する。NB/MCH 115は、グラフィックス・コントローラ125にも接続する。1つの実施形態では、PCIエクスプレス・バス118が、NB/MCH 115をグラフィックス・コントローラ125に接続する。グラフィックス・コントローラ125は、コンピュータ・モニタのようなディスプレイ装置130に接続する。
【0011】
NB/MCH 115及びサウス・ブリッジ兼I/Oコントローラ・ハブ(SB/ICH)135は、バス119を使用して相互に接続する。1つの実施形態では、バス119は、NB/MCH 115とSB/ICH 135の間の各方向に高速でデータを転送する、ダイレクト・メディア・インタフェース(DMI)バスである。他の実施形態では、PCIバスが、NB/MCH 115とSB/ICH 135を接続する。一般に、SB/ICH 135は、NB/MCH 115によって提供される能力よりも遅い速度で動作する能力を実装するチップである。一般に、SB/ICH 135は、種々のコンポーネントを接続するために使用される種々のバスを提供する。例えば、これらのバスは、PCIバス、PCIエクスプレス・バス、ISAバス、システム管理(SM)バス及び小ピン・カウント(LPC)バスを含む。一般に、LPCバスは、ブートROM 196及び(「super I/O」チップを使用する)「レガシー」入出力装置のような低帯域幅の装置を接続する。例えば、「レガシー」入出力装置198は、シリアル及びパラレル・ポート、キーボード、マウス及びフレキシブル・ディスク・コントローラを含むことができる。また、LPCバスは、SB/ICH 135をトラステッド・プラットフォーム・モジュール(TPM)195に接続する。SB/ICH 135内の他のコンポーネントは、ダイレクト・メモリ・アクセス(DMA)コントローラ、プログラム可能な割り込みコントローラ(PIC)及びSB/ICH 135をバス184を介してハード・ディスク・ドライブのような不揮発性ストレージ装置185に接続するストレージ装置コントローラを含む。
【0012】
エクスプレス・カード155は、ホット・プラグ可能な周辺装置を情報処理システム100に接続するスロットである。エクスプレス・カード155は、ユニバーサル・シリアル・バス(USB)及びPCIエクスプレス・バスの両方を使用してSB/ICH 135に接続しているので、PCIエクスプレス及びUSB接続性の両方をサポートする。SB/ICH 135内のUSBコントローラ140は、USB装置に対するUSB接続性を提供する。これらの装置は、ウェブ・カメラ(カメラ)150、赤外線(IR)レシーバ148、キーボード及びトラック・パッド144、無線パーソナル・エリア・ネットワーク(PAN)用のブルートゥース装置146を含む。また、USBコントローラ140は、マウス、取り外し可能な不揮発性ストレージ装置145、モデム、ネットワーク・カード、ISDNコネクタ、ファックス、プリンタ、USBハブ等の、他の種々のUSB装置142に対するUSB接続性を提供する。取り外し可能な不揮発性ストレージ装置145は、USB装置として示されているが、ファイヤワイヤ(Firewire)・インタフェース等の異なるインタフェースを使用して、これを接続することもできる。
【0013】
無線ローカル・エリア・ネットワーク(LAN)装置175は、PCIバス又はPCIエクスプレス・バス172を介して、SB/ICH 135に接続する。一般に、LAN装置175は、無線変調技術に係るIEEE.802.11標準規格のうちの1つを実装することにより、情報処理システム100と他のコンピュータ・システム又は装置との間の無線通信を行うために全てが同じプロトコルを使用するようにする。光ディスク装置190は、シリアルATA(SATA)バス188を使用して、SB/ICH 135に接続する。シリアルATAアダプタ及び装置は、高速のシリアル・リンクを介して通信する。また、シリアルATAバスは、SB/ICH 135を、ハード・ディスク・ドライブのような他の形式のストレージ装置に接続する。サウンド・カードのようなオーディオ回路160は、バス158を介して、SB/ICH 135に接続する。オーディオ回路160は、オーディオ・ライン入力及び光デジタル・オーディオ入力ポート162、光デジタル出力及びヘッドホン・ジャック164、内部スピーカ166及び内部マイクロホン168のような機能性を提供する。イーサネット(登録商標)・コントローラ170は、PCIバス又はPCIエクスプレス・バスのようなバスを使用して、SB/ICH 135に接続する。イーサネット・コントローラ170は、情報処理システム100を、ローカル・エリア・ネットワーク(LAN)、インターネット、他の公衆又は私設コンピュータ・ネットワークのようなコンピュータ・ネットワークに接続する。
【0014】
図1は、1つの情報処理システムを示すが、情報処理システムは多くの形式を取ることがある。例えば、情報処理システムは、デスクトップ、サーバ、ポータブル、ラップトップ、ノートブック又は他のフォーム・ファクタのコンピュータ又はデータ処理システムの形式を取ることがある。さらに、情報処理システムは、携帯情報端末(PDA)、ゲーム装置、ATM機、携帯電話機、通信装置又はプロセッサ及びメモリを含む他の装置のような他のフォーム・ファクタを取ることがある。
【0015】
セキュリティ機能を提供するものとして図1に示されているTPM 195は、ハードウェア・セキュリティ・モジュール(HSM)の1つの例であるに過ぎない。従って、TPM 195は、「Trusted Platform Module (TPM) Specification Version 1.2」と題する、「Trusted Computing Groups (TCG)」の標準化規格に準拠する、任意のタイプのHSMを含む。TPM 195は、ハードウェア・セキュリティ・サブシステムであって、図2に概略を示すような任意の数の情報処理システムに組み込むことができる。
【0016】
図2は、本発明に従った方法をネットワーク化された環境内で動作する種々の情報処理システム上で実施できることを例示するために、図1に示される情報処理システム環境の拡張を提供する図である。情報処理システムのタイプは、ハンドヘルド・コンピュータ/携帯電話機210のような小型の携帯用装置からメインフレーム・コンピュータ270のような大型のメインフレーム・システムにまで及ぶ。ハンドヘルド・コンピュータ210の例は、携帯情報端末(PDA)、MP3プレーヤのようなパーソナル娯楽装置、ポータブル・テレビ及びコンパクト・ディスク・プレーヤを含む。情報処理システムの他の例は、ペン(タブレット)・コンピュータ220、ラップトップ(ノートブック)・コンピュータ230、ワークステーション240、パーソナル・コンピュータ250及びサーバ260を含む。図2に個別に示されていない他のタイプの情報処理システムは、情報処理システム280によって表される。図示のように、種々の情報処理システムは、ローカル・エリア・ネットワーク(LAN)、無線ローカル・エリア・ネットワーク(WLAN)、インターネット、公衆交換電話ネットワーク(PSTN)、他の無線ネットワーク及びこれらの情報処理システムを相互接続するために使用することができる他の任意のネットワーク・トポロジを含む。これらの情報処理システムの多くは、ハード・ドライブ又は不揮発性メモリのような不揮発性データ・ストアを含む。図2に示す情報処理システムのうちの幾つかは、別個の不揮発性データ・ストアを使用する(サーバ260は不揮発性データ・ストア265を使用し、メインフレーム・コンピュータ270は不揮発性データ・ストア275を使用し、情報処理システム280は不揮発性データ・ストア285を使用する)。かかる不揮発性データ・ストアは、種々の情報処理システムの外部に存在するか又は1つの情報処理システムの内部に存在することがある。さらに、取り外し可能な不揮発性ストレージ装置145を、2つ以上の情報処理システム間で共有することができる。そうするためには、取り外し可能な不揮発性ストレージ装置145を当該情報処理システムのUSBポート又は他のコネクタに接続するというような種々の技術を使用すればよい。
【0017】
図3は、1つ以上のフィルタ属性に基づき、メモリ・ページのサブセットを同期させるために、拡張同期フレームワークを使用する同期マネージャを示す図である。ユーザは、フィルタ属性を含むスケジュール済み同期タスクを構成する。これらのスケジュール済み同期タスクは、テーブル・ストア305内に格納される(詳細については、図4、図6及び対応する説明を参照)。スケジュール済み同期タスクは、アプリケーション組み込み(inclusion)フィルタ、アプリケーション除外(exclusion)フィルタ、ファイル・サイズ・フィルタ及び最終更新フィルタのようなフィルタ属性を含む。アプリケーション組み込みフィルタは、同期マネージャ300に対し、特定のアプリケーションに対応するメモリ・ページを同期させるように命令する。アプリケーション除外フィルタは、同期マネージャ300に対し、特定のアプリケーションに対応するメモリ・ページを同期させないように命令する。ファイル・サイズ・フィルタは、同期マネージャ300に対し、特定のサイズ(例えば、2GB超)であるファイルに対応するメモリ・ページを同期させるように命令する。また、最終更新フィルタは、同期マネージャ300に対し、特定の時間(例えば、1日以上)に最後に更新されたファイルに対応するメモリ・ページを同期させるように命令する。テーブル・ストア305は、コンピュータ・ハード・ドライブのような不揮発性ストレージ領域上に格納することができる。
【0018】
同期マネージャ300は、テーブル・ストア305から一のスケジュール済み同期タスクを検索し、当該スケジュール済み同期タスクのフィルタ属性を識別する。これらのフィルタ属性が特定のアプリケーションを指定する場合、同期マネージャ300は、当該特定のアプリケーションのプロセスに対応するユーザ領域320を識別し、当該ユーザ領域320からファイル・ポインタ310を抽出する。ファイル・ポインタ310は、当該特定のアプリケーションによって使用されるファイルに対応する。前記フィルタ属性が一のアプリケーションを指定しない場合、同期マネージャ300は、アクティブな全てのファイル・ポインタを選択することができる。
【0019】
次に、同期マネージャ300は、前記ファイル・ポインタ(ファイル・ポインタ310又はアクティブな全てのファイル・ポインタ)を使用してトラバーサル330を実行することにより、論理ファイル・システム340内に含まれる、対応するvノード・データ構造342及びgノード・データ構造348をトラバースする。次に、同期マネージャ300は、論理データ・システム340をトラバースすることによって得られた情報を使用して、物理ファイル・システム350(例えば、ユーザ・ブロック(ublock)情報)内に含まれる、iノード・データ構造355をトラバースする。iノード・データ構造355をトラバースしている間に、メモリ・ページ識別子を含む、セグメント制御ブロック360を抽出する。セグメント制御ブロック360内に含まれる当該メモリ・ページ識別子は、トラバーサル330内に含まれる前記ファイル・ポインタに対応する。
【0020】
一旦、前記メモリ・ページ識別子を得ると、同期マネージャ300は、当該スケジュール済み同期タスク内に含まれる他のフィルタ属性を使用して、追加のフィルタリングを実行することができる。例えば、当該スケジュール済み同期タスクがファイル・サイズ・フィルタを含む場合、同期マネージャ300は、iノード・データ構造355をトラバースする間に得られたファイル・サイズ情報を比較することにより、同期させるべき特定のメモリ・ページを決定することができる。他の例として、当該スケジュール済み同期タスクが最終更新フィルタを含む場合、同期マネージャ300は、iノード・データ構造355をトラバースする間に得られたファイル更新情報を比較することにより、同期させるべき特定のメモリ・ページを決定することができる。
【0021】
一旦、複数のメモリ・ページをメモリ・ページのサブセットまでフィルタすると、同期マネージャ300は、当該メモリ・ページをメモリ370からディスク・ストア380にコピーすることにより、メモリ・ページの当該サブセット(ページ375)を同期させる(同期365)。このように、同期マネージャ300は、アクティブな全てのメモリ・ページを同期させることなく、メモリ・ページのサブセットを同期させることができ、その結果、処理時間がより短くなるだけでなく、入出力ボトルネックを緩和することができる。
【0022】
図4は、一のスケジュール済み同期タスクを作成し且つ構成するためのユーザ・インタフェース・ウィンドウを示す図である。ウィンドウ400は、ユーザが1つ以上のフィルタ属性を使用して、一のスケジュール済み同期タスクを構成するための複数の領域を含む。同期マネージャがユーザにウィンドウ400を提供する場合、ユーザは、ボックス410内に、「syncdb2pages」のような同期タスク名を入力する。
【0023】
次に、ユーザは、1つ以上のフィルタ属性をボックス420〜450内に入力することができる。ユーザが、特定のアプリケーションによって使用される複数のメモリ・ページを同期させることを望む場合、ユーザは、当該アプリケーションに対応し且つ当該同期に組み込むべきファイル・タイプをボックス420内に入力する。これは、アプリケーション組み込みフィルタに帰着する。また、ユーザは、組み込むべき特定のファイルをブラウズするために、ボタン425を選択することができる。ユーザが、特定のアプリケーションによって使用される複数のメモリ・ページを除外することを望む場合、ユーザは、当該アプリケーションに対応し且つ除外すべきファイル・タイプをボックス430内に入力する。これは、アプリケーション除外フィルタに帰着する。また、ユーザは、除外すべき特定のファイルをブラウズするために、ボタン425を選択することができる。
【0024】
また、ユーザは、「2GB超」のように、同期させるべきメモリ・ページの対応するファイルのサイズに基づいてフィルタする、ファイル・サイズ・フィルタをボックス440内に入力することができる。ユーザが、ファイルの最終更新日に基づきメモリ・ページの同期を指定することを望む場合、ユーザは、最終更新日フィルタをボックス450内に入力する。
【0025】
また、ユーザは、指定された開始時間をボックス460内に入力し且つ発生頻度(例えば、45秒ごと)ボックス470内に入力することにより、当該スケジュール済み同期タスクを実行すべき時間及び同期させるべき頻度を構成することができる。一旦、フィルタ属性及びスケジュール属性の入力を終了すると、ユーザは、当該スケジュール済み同期タスクを保存するために、ボタン480を選択する。また、ユーザは、当該スケジュール済み同期タスクの作成及び構成をキャンセルするために、ボタン490を選択することができる。
【0026】
図5は、スケジュール済み同期タスクを格納する、テーブル・ストアを示す図である。ユーザが、図4に示すようなユーザ・インタフェース・ウィンドウを使用して一のスケジュール済み同期タスクを作成する場合、同期マネージャは、当該スケジュール済み同期タスクをテーブル・ストア500内に格納する。
【0027】
テーブル・ストア500内の列510は、ユーザによって指定されたスケジュール済み同期タスク名のリストを含む。列520は、特定のスケジュール済み同期タスクのためのフィルタ属性のリストを含み、列530は、特定のスケジュール済み同期タスクのためのスケジュール属性のリストを含む。行540は、「同期タスクA」が、「db2ファイル」のアプリケーション組み込みフィルタと、「>2GB」のファイル・サイズ・フィルタと、「1/1/08の後」の最終更新フィルタを含むことを示す。また、行540は、「同期タスクA」が、「2:00AM」の指定された開始時間スケジュール属性と、「45秒」ごとの発生頻度スケジュール属性を含むことを示す
【0028】
同様に、行550は、「同期タスクB」が、「db2ファイル」のアプリケーション除外フィルタと、「12:00PM」の指定された開始時間スケジュール属性と、「120秒」ごとの発生頻度スケジュール属性を含むことを示す。同期マネージャは、スケジュール属性に基づく時間に同期させるべきメモリ・ページのサブセットを識別するために、これらのスケジュール済み同期タスク・フィルタ属性を使用する(詳細については、図9、図10及び対応する説明を参照)。
【0029】
図6は、同期させるべきメモリ・ページのサブセットを識別するためのフィルタ属性を含む、一のスケジュール済み同期タスクを構成する際に取られるステップを示すフローチャートである。ステップ600で開始した後、同期タスク構成処理は、図4に例示されるようなユーザ・インタフェースをユーザ620に表示する(ステップ610)。本処理は、同期させるべきメモリ・ページのファイル・タイプを指定する、フィルタ属性をユーザ620から受け取る(ステップ630)。例えば、当該フィルタ属性は、db2アプリケーションによって使用される全てのメモリ・ページを同期させるために、アプリケーション組み込みフィルタを含むことがある。他のフィルタ属性は、アプリケーション除外フィルタ、ファイル・サイズ・フィルタ及び最終更新フィルタを含むことがある。また、ユーザ620は、指定された開始時間(例えば、9:00AM)及び発生頻度(例えば、60秒ごと)を提供する(詳細については、図4及び対応する説明を参照)。
【0030】
本処理は、当該スケジュール済み同期タスクをテーブル・ストア305内に記録することにより(ステップ640)、当該同期タスクの後の使用に備える(詳細については、図9、図10及び対応する説明を参照)。テーブル・ストア305は、図3に示すものと同じである。
【0031】
ユーザ620が、他のスケジュール済み同期タスクを作成することを望むか否かという決定が行われる(ステップ650)。そうであれば、「YES」枝路652を介して、他のスケジュール済み同期タスクを構成し且つ格納するステップにループバックする。このループが継続するのは、ユーザ620がスケジュール済み同期タスクの構成を終了するまでである。この時点で、ステップ650は、「NO」枝路658を介してステップ660に至り、本処理が終了する。
【0032】
図7は、一のアプリケーションによって呼び出されるアクティブ・プロセスが、使用されるファイルに対応するファイル・ポインタを記録すべきユーザ領域を作成する態様を示す図である。アプリケーション700は、その別個のインスタンスを表す、プロセスA 710、B 720及びC 730を呼び出し且つ実行する。各プロセスは、特定のプロセスが使用するファイルに対応するログファイル・ポインタを記録すべき、一のユーザ領域を作成する。図示のように、プロセスA 710が作成するユーザ領域A 740は、ファイル・ポインタ770を含み、プロセスB 720が作成するユーザ領域B 750は、ファイル・ポインタ780を含み、プロセスC 730が作成するユーザ領域C 760は、ファイル・ポインタ790を含む。
【0033】
ユーザが、アプリケーション組み込みフィルタを使用して、特定のアプリケーションのために同期させるべきメモリ・ページを指定する場合、本処理は、当該アプリケーションによって呼び出されるプロセスを識別し、対応するユーザ領域を識別し、当該ユーザ領域からファイル・ポインタを抽出する。次に、本処理は、当該抽出されたファイル・ポインタを使用して、論理ファイル・システム及び物理ファイル・システムをトラバースする。この動作は、これらのファイルに対応するメモリ・ページ識別子を含む、対応するセグメント制御ブロックを識別するために行われる。次に、本処理は、これらのメモリ・ページをハード・ディスクと同期させる(詳細については、図8、図10及び対応する説明を参照)。
【0034】
図8は、特定のファイル・ポインタに対応するファイル属性を識別し且つ抽出するために行われる、論理ファイル・システム及び物理ファイル・システムのトラバーサルを示す図である。同期マネージャ300は、対応するメモリ・ページを同期させるべき、特定のファイル・ポインタを選択する。同期マネージャ300は、これらのファイル・ポインタを選択するためにアプリケーション組み込みフィルタ又はアプリケーション除外フィルタを使用するか、或いは現に開かれているファイルに対応する全てのファイル・ポインタを選択することができる。
【0035】
同期マネージャ300は、当該選択されたファイル・ポインタを使用して、論理ファイル・システム340内に含まれる、vノード・データ構造342(当該ファイル・ポインタに対応)及びgノード・データ構造348(当該ファイル・ポインタに対応)のトラバーサル330を実行する。同期マネージャ300は、論理ファイル・システム340をトラバースすることにより受け取られた情報に基づいて、iノード・データ構造355(当該ファイル・ポインタに対応)をトラバースすることができる。
【0036】
iノード・データ構造355は、一のファイルに対応し、ファイル属性800を含む。ファイル属性800は、ファイル名810、(メモリ・ページ識別子を含む)セグメント制御ブロック360、ファイル・サイズ820及び最終同期時間830を含む。同期マネージャ300は、ファイル属性800からセグメント制御ブロック360を抽出し、(そこに含まれるメモリ・ページ識別子を使用して)同期させるべき適切なメモリ・ページを識別する。また、同期マネージャ300は、サイズ820又は最終同期時間830のような他のファイル属性800を抽出し、当該他のフィルタ属性に基づいて同期させるべきメモリ・ページをフィルタすることができる(詳細については、図10及び対応する説明を参照)。
【0037】
図9は、メモリ・ページのサブセットを同期させる際に取られるステップを示す高水準のフローチャートである。ステップ900で開始した後、ページ同期処理は、テーブル・ストア305内に含まれるスケジュール済み同期タスクをロードする(ステップ910)。ユーザが以前に作成し且つ構成したスケジュール済み同期タスクの各々は、1つ以上のフィルタ属性を含む(詳細については、図4、図5及び対応する説明を参照)。テーブル・ストア305は、図3に示すものと同じである。
【0038】
ステップ920では、本処理は、一のスケジュール済み同期タスクを呼び出すべき時間を待機する。例えば、スケジュール済み同期タスクのうちの1つは、12:00AMに開始し且つ60秒ごとの頻度で実行するというスケジュール属性を含むことがある。一旦、当該スケジュール済み同期タスクを呼び出すと、同期マネージャは、一連のステップを通して進行することにより、当該スケジュール済み同期タスク内に含まれるフィルタ属性に基づいて同期させるべきメモリ・ページのサブセットを識別する(予め定義されたプロセス・ブロックの詳細については、図10及び対応する説明を参照)。
【0039】
同期マネージャが、適切なメモリ・ページを識別した後、本処理は、当該メモリ・ページをメモリ370からディスク・ストア380にコピーすることにより、当該メモリ・ページを同期させる(ステップ940)。メモリ370及びディスク・ストア380は、図3に示すものと同じである。
【0040】
スケジュール済み同期タスクを待機し且つ処理することを継続すべきか否かという決定が行われる(ステップ950)。そうであれば、「YES」枝路952を介して、他のスケジュール済み同期タスクを処理するステップにループバックする。このループが継続するのは、本処理を終了するまでである。この時点で、ステップ950は、「NO」枝路958を介してステップ960に至り、本処理が終了する。
【0041】
図10は、同期させるべきメモリ・ページのサブセットを識別する際に取られるステップを示すフローチャートである。ステップ1000で開始した後、メモリ・ページ識別処理は、一のスケジュール済み同期タスクのフィルタ属性を分析する(ステップ1005)。アプリケーション・タイプに基づいてメモリ・ページを同期させるべきか否かという決定が行われる(ステップ1010)。例えば、これらのフィルタ属性は、アプリケーション組み込みフィルタ又はアプリケーション除外フィルタを含むことがある。
【0042】
本処理が、アプリケーション・タイプに基づいてメモリ・ページを同期させるべきものであれば、ステップ1010の「YES」枝路が取られ、そこで本処理は、当該アプリケーション・タイプに対応するユーザ領域を識別する(ステップ1015)。例えば、本処理は、当該アプリケーションのアクティブ・プロセスを識別し且つ当該アクティブ・プロセスによって作成されるユーザ領域を識別することができる(詳細については、図7及び対応する説明を参照)。ステップ1020では、本処理は、前記識別されたユーザ領域320に含まれるファイル・ポインタを抽出し且つ選択する。ユーザ領域320は、図3に示すものと同じである。一方、本処理が、アプリケーション・タイプに基づいてメモリ・ページを同期させるべきものでなければ、ステップ1010の「NO」枝路1018が取られ、そこで本処理は、アクティブな全てのファイル・ポインタを選択する(ステップ1030)。
【0043】
一旦、本処理がファイル・ポインタを選択すれば、本処理は、これらのファイル・ポインタを使用して、論理ファイル・システム340内に含まれる、対応するvノード・データ構造及びgノード・データ構造をトラバースする(ステップ1040)。次に、論理ファイル・システム340のトラバースから得られた情報を使用して、本処理は、物理ファイル・システム350内にある、対応するiノード・データ構造をトラバースし、当該対応するiノード・データ構造からセグメント制御ブロック、ファイル・サイズ等のファイル属性を抽出する(ステップ1050)。
【0044】
本処理は、これらのファイル属性を、当該スケジュール済み同期タスク内に含まれるフィルタ属性と比較することにより、ファイルをフィルタする(ステップ1060)。例えば、本処理は、サイズが2GB超のファイルをフィルタすることができる。ステップ1070では、本処理は、同期すせるべきメモリ・ページのサブセットである、当該フィルタされたファイルのセグメント制御ブロックからメモリ・ページ識別子を抽出する。これらのメモリ・ページ識別子は、「ページ1〜100」のような範囲を指定することができる。本処理は、ステップ1080で戻る。
【0045】
本発明の好ましい実装のうちの1つは、クライアント・アプリケーション、すなわち、コンピュータのランダム・アクセス・メモリに常駐することがある、コード・モジュール内の1セットの命令(プログラム・コード)又は他の機能的な記述資料である。コンピュータによって必要とされるまで、当該1セットの命令は、他のコンピュータ・メモリ(例えば、ハード・ディスク・ドライブ、又は光ディスク若しくはフレキシブル・ディスクのような取り外し可能なメモリ)に格納することができる。従って、本発明は、コンピュータ内で使用するためのコンピュータ・プログラムとして実装することができる。また、本明細書で説明した種々の方法は、ソフトウェアによって選択的に活動化又は再構成される汎用コンピュータ内で実装するのが通例であるが、当業者には明らかなように、かかる方法は、ハードウェア、ファームウェア又は必要とされる方法ステップを実行するように構成された専用装置においても、これを実施することができる。機能的な記述資料は、コンピュータに対し機能性を与える情報である。かかる機能的な記述資料は、コンピュータ・プログラム、命令、規則、事実、計算可能な関数、オブジェクト及びデータ構造の定義等を含む。
【0046】
以上、本発明の特定の実施形態を説明したが、本明細書に開示した教示に基づいて、本発明及びその広い側面から逸脱することなく、種々の変更及び修正を施しうることは明らかである。従って、本願の各請求項は、かかる変更及び修正の全てが本発明の真の精神及び範囲に属するものとして、これを包含することを意図している。本発明は、各請求項の記載によってのみ定義されるものである。
【符号の説明】
【0047】
300・・・同期マネージャ
305・・・テーブル・ストア
310・・・ファイル・ポインタ
320・・・ユーザ領域
330・・・トラバーサル(ポインタ)
340・・・論理ファイル・システム
342・・・vノード・データ構造
348・・・gノード・データ構造
350・・・物理ファイル・システム
355・・・iノード・データ構造
360・・・セグメント制御ブロック(SCB)
365・・・同期
370・・・メモリ
375・・・ページ
380・・・ディスク

【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
(a)複数のメモリ・ページをメモリ・ページのサブセットにフィルタするためのフィルタ属性を含む、スケジュール済み同期タスクを呼び出すステップと、
(b)前記スケジュール済み同期タスクの呼び出しに応答して、複数のファイルに対応する複数のファイル・ポインタを選択するステップと、
(c)前記選択された複数のファイル・ポインタを使用して、前記複数のファイルをトラバースし且つ前記複数のファイルの各々のためのファイル属性を抽出するステップと、
(d)前記フィルタ属性を前記抽出されたファイル属性と比較するステップと、
(e)前記比較に基づき、前記複数のファイルをフィルタするステップと、
(f)前記フィルタされた複数のファイルに対応し且つメモリ・ページの前記サブセットの位置を指示する、メモリ・ページ識別子を抽出するステップと、
(g)前記抽出されたメモリ・ページ識別子を使用して、メモリ・ページの前記サブセットを同期させるステップとを含む、方法。
【請求項2】
前記ステップ(b)が、
前記フィルタ属性内に含まれるアプリケーション組み込みフィルタを使用して、アプリケーションを識別するステップと、
前記アプリケーションに対応する1つ以上のアクティブ・プロセスを識別するステップと、
前記識別された1つ以上のアクティブ・プロセスの各々のためのユーザ領域を識別するステップと、
前記識別された1つ以上のユーザ領域から、前記選択された複数のファイル・ポインタを抽出するステップとを含む、請求項1に記載の方法。
【請求項3】
前記フィルタ属性が、第1のアプリケーション・ファイル・タイプを組み込み且つ第2のアプリケーション・ファイル・タイプを除外する、請求項1に記載の方法。
【請求項4】
前記ステップ(c)が、
物理ファイル・システム内に含まれ且つ前記複数のファイルに対応する複数のiノード・データ構造を分析するステップと、
前記分析の間に、前記複数のiノード・データ構造から、前記メモリ・ページ識別子を含むセグメント制御ブロックを抽出するステップとを含む、請求項1に記載の方法。
【請求項5】
前記物理ファイル・システムをトラバースする前に、論理ファイル・システムをトラバースするステップをさらに含み、
前記論理ファイル・システムをトラバースするステップが、
複数のvノード・データ構造を分析するステップと、
複数のgノード・データ構造を分析するステップとを含む、請求項4に記載の方法。
【請求項6】
前記フィルタ属性が、アプリケーション組み込みフィルタ、アプリケーション除外フィルタ、ファイル・サイズ・フィルタ及び最終更新フィルタから成るグループから選択される、請求項1に記載の方法。
【請求項7】
前記ステップ(a)が、前記スケジュール済み同期タスクに対応する指定された開始時間及び発生頻度に基づく、請求項1に記載の方法。
【請求項8】
周辺装置であって、
1つ以上のプロセッサと、
前記プロセッサの少なくとも1つによってアクセス可能なメモリと、
前記プロセッサの少なくとも1つによってアクセス可能な不揮発性ストレージ領域とを備え、
前記メモリ内に格納された1セットの命令が、前記プロセッサの少なくとも1つに
(a)複数のメモリ・ページをメモリ・ページのサブセットにフィルタするためのフィルタ属性を含む、スケジュール済み同期タスクを呼び出すステップと、
(b)前記スケジュール済み同期タスクの呼び出しに応答して、複数のファイルに対応する複数のファイル・ポインタを選択するステップと、
(c)前記選択された複数のファイル・ポインタを使用して、前記複数のファイルをトラバースし且つ前記複数のファイルの各々のためのファイル属性を抽出するステップと、
(d)前記フィルタ属性を前記抽出されたファイル属性と比較するステップと、
(e)前記比較に基づき、前記複数のファイルをフィルタするステップと、
(f)前記フィルタされた複数のファイルに対応し且つメモリ・ページの前記サブセットの位置を指示する、メモリ・ページ識別子を抽出するステップと、
(g)前記抽出されたメモリ・ページ識別子を使用して、前記メモリ内に含まれるメモリ・ページの前記サブセットを前記不揮発性ストレージ領域と同期させるステップとを実行させる、周辺装置。
【請求項9】
前記1セットの命令が、前記プロセッサの少なくとも1つに
前記フィルタ属性内に含まれるアプリケーション組み込みフィルタを使用して、アプリケーションを識別するステップと、
前記アプリケーションに対応する1つ以上のアクティブ・プロセスを識別するステップと、
前記識別された1つ以上のアクティブ・プロセスの各々のためのユーザ領域を識別するステップと、
前記識別された1つ以上のユーザ領域から、前記選択された複数のファイル・ポインタを抽出するステップとを実行させる、請求項8に記載の周辺装置。
【請求項10】
前記フィルタ属性が、第1のアプリケーション・ファイル・タイプを組み込み且つ第2のアプリケーション・ファイル・タイプを除外する、請求項8に記載の周辺装置。
【請求項11】
前記ステップ(c)の間に、前記1セットの命令が、前記プロセッサの少なくとも1つに
物理ファイル・システム内に含まれ且つ前記複数のファイルに対応する複数のiノード・データ構造を分析するステップと、
前記分析の間に、前記複数のiノード・データ構造から、前記メモリ・ページ識別子を含むセグメント制御ブロックを抽出するステップとを実行させる、請求項8に記載の周辺装置。
【請求項12】
前記物理ファイル・システムをトラバースする前に、前記1セットの命令が、前記プロセッサの少なくとも1つに
論理ファイル・システムをトラバースするステップを実行させ、
前記論理ファイル・システムをトラバースするステップが、
複数のvノード・データ構造を分析するステップと、
複数のgノード・データ構造を分析するステップとを含む、請求項11に記載の周辺装置。
【請求項13】
前記フィルタ属性が、アプリケーション組み込みフィルタ、アプリケーション除外フィルタ、ファイル・サイズ・フィルタ及び最終更新フィルタから成るグループから選択される、請求項8に記載の周辺装置。
【請求項14】
コンピュータ可読媒体内に格納され且つ機能的な記述資料から成るコンピュータ・プログラムであって、
情報処理システムに
(a)複数のメモリ・ページをメモリ・ページのサブセットにフィルタするためのフィルタ属性を含む、スケジュール済み同期タスクを呼び出すステップと、
(b)前記スケジュール済み同期タスクの呼び出しに応答して、複数のファイルに対応する複数のファイル・ポインタを選択するステップと、
(c)前記選択された複数のファイル・ポインタを使用して、前記複数のファイルをトラバースし且つ前記複数のファイルの各々のためのファイル属性を抽出するステップと、
(d)前記フィルタ属性を前記抽出されたファイル属性と比較するステップと、
(e)前記比較に基づき、前記複数のファイルをフィルタするステップと、
(f)前記フィルタされた複数のファイルに対応し且つメモリ・ページの前記サブセットの位置を指示する、メモリ・ページ識別子を抽出するステップと、
(g)前記抽出されたメモリ・ページ識別子を使用して、メモリ・ページの前記サブセットを同期させるステップとを実行させる、コンピュータ・プログラム。
【請求項15】
前記情報処理システムに
前記フィルタ属性内に含まれるアプリケーション組み込みフィルタを使用して、アプリケーションを識別するステップと、
前記アプリケーションに対応する1つ以上のアクティブ・プロセスを識別するステップと、
前記識別された1つ以上のアクティブ・プロセスの各々のためのユーザ領域を識別するステップと、
前記識別された1つ以上のユーザ領域から、前記選択された複数のファイル・ポインタを抽出するステップとをさらに実行させる、請求項14に記載のコンピュータ・プログラム。
【請求項16】
前記フィルタ属性が、第1のアプリケーション・ファイル・タイプを組み込み且つ第2のアプリケーション・ファイル・タイプを除外する、請求項14に記載のコンピュータ・プログラム。
【請求項17】
前記ステップ(c)の間に、前記情報処理システムに
物理ファイル・システム内に含まれ且つ前記複数のファイルに対応する複数のiノード・データ構造を分析するステップと、
前記分析の間に、前記複数のiノード・データ構造から、前記メモリ・ページ識別子を含むセグメント制御ブロックを抽出するステップとをさらに実行させる、請求項15に記載のコンピュータ・プログラム。
【請求項18】
前記物理ファイル・システムをトラバースする前に、前記情報処理システムに
論理ファイル・システムをトラバースするステップをさらに実行させ、
前記論理ファイル・システムをトラバースするステップが、
複数のvノード・データ構造を分析するステップと、
複数のgノード・データ構造を分析するステップとを含む、請求項17に記載のコンピュータ・プログラム。
【請求項19】
前記フィルタ属性が、アプリケーション組み込みフィルタ、アプリケーション除外フィルタ、ファイル・サイズ・フィルタ及び最終更新フィルタから成るグループから選択される、請求項14に記載のコンピュータ・プログラム。
【請求項20】
前記ステップ(a)が、前記スケジュール済み同期タスクに対応する指定された開始時間及び発生頻度に基づく、請求項14に記載のコンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−67266(P2010−67266A)
【公開日】平成22年3月25日(2010.3.25)
【国際特許分類】
【出願番号】特願2009−192902(P2009−192902)
【出願日】平成21年8月24日(2009.8.24)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】