情報処理装置及びコンピュータプログラム
【課題】オリジナルのデータを必要時に複製し、その複製したデータにアクセスさせることで、オリジナルのデータを保護し、そのデータを瞬間的に復元することができる情報処理装置及びコンピュータプログラムを提供する。
【解決手段】アクセスするオリジナルファイル25の指定を受け付け、指定を受け付けたオリジナルファイル25が保護対象であるか否かを判定する。保護対象であると判定された場合、オリジナルファイル25をワーク領域22へ複製する。ワーク領域22に複製されたコピーファイル26に対してアクセスし、書き換えなどの処理を行う。
【解決手段】アクセスするオリジナルファイル25の指定を受け付け、指定を受け付けたオリジナルファイル25が保護対象であるか否かを判定する。保護対象であると判定された場合、オリジナルファイル25をワーク領域22へ複製する。ワーク領域22に複製されたコピーファイル26に対してアクセスし、書き換えなどの処理を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、保護対象となっているデータが変更された場合であっても、変更前のデータを復元することができる情報処理装置及びコンピュータプログラムに関する。
【背景技術】
【0002】
Operating System(OS)などが動作するコンピュータは、OSが正常に動作するソフトウェア環境を構築させるための様々なデータを記憶している。コンピュータが、例えば学校など多数のユーザにより利用される場所に設置された場合、これらデータは、ユーザにより変更されることがある。コンピュータ上で常に同じソフトウェア環境を構築させるためには、データが変更された場合には、データを変更前の状態に復元する必要がある。
【0003】
データを復元する方法として、例えばディスク装置に記憶されたデータに対して新たにデータを上書きする場合、新しいデータを元のデータのディスク位置とは異なるディスク位置に格納する方法がある。そしてこの方法では、元のデータが必要となったときには、そのデータが格納されたディスク位置からデータを読み取る。これにより、データが変更された場合でも、過去の状態を復元することが可能となっている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第3797864号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1では、例えば元のデータをユーザが読み出す際に、エラーが生じ、そのエラーが原因となって元のデータが破損するおそれがある。この場合、元のデータを読み取ることができず、過去の状態を確実に復元できない場合がある。またデータを格納したディスク位置を管理する必要があり、装置における処理負担が増加し、ユーザが行う処理に影響を及ぼすおそれがある。さらに、定期的に元のデータを他の記憶領域などにコピー(バックアップ)することもあり得るが、この場合、バックアップのための記憶領域が必要となり、コスト上昇の原因となる。
【0006】
本発明はかかる事情に鑑みてなされたものであり、その目的とするところは、オリジナルのデータを必要時に複製し、その複製したデータにアクセスさせることで、オリジナルのデータを保護し、そのデータを瞬間的に復元することができる情報処理装置及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0007】
本願に開示する情報処理装置は、プロセスから所望のファイルに対応するファイル記述子の取得を要求する取得要求を受け付ける取得要求受付部と、受け付けた取得要求により指定されるファイルが保護対象か否かを判定する判定部と、受け付けた取得要求により指定されるファイルが保護対象であると判定された場合、前記ファイルを複製した内容に基づいて作業用ファイルを生成する作業用ファイル生成部と、生成した作業用ファイルのファイル記述子を取得する取得部と、該取得部により取得したファイル記述子を、受け付けた取得要求により指定されるファイルのファイル記述子として、前記取得要求元に応答する取得要求応答部とを備える。
【発明の効果】
【0008】
本願に開示する情報処理装置の一観点によれば、指定を受け付けた保護対象のデータにアクセスする場合、そのデータを複製し、指定されたデータではなく、そのデータの複製(コピー)のファイル記述子を取得し、取得したファイル記述子を要求元に応答する。すなわち、ユーザがデータを変更する場合には、複製データが変更される。従って、元のデータに対しては変更されることがなく、また、ユーザによってアクセスもされないため、元のデータの破損などのおそれを低減できる。そして、複製されたデータを消去することにより、瞬時に元のデータを復元することができる。
【図面の簡単な説明】
【0009】
【図1】実施の形態に係る情報処理装置が行うファイル復元処理を説明するための模式図である。
【図2】実施の形態に係る情報処理装置の電気的な構成を示す模式図である。
【図3A】ファイル復元処理の実行時に必要なテーブルを模式的に示す図である。
【図3B】ファイル復元処理の実行時に必要なテーブルを模式的に示す図である。
【図3C】ファイル復元処理の実行時に必要なテーブルを模式的に示す図である。
【図4A】オリジナル記憶領域、ワーク領域及び事前コピー領域について説明するための模式図である。
【図4B】オリジナル記憶領域、ワーク領域及び事前コピー領域について説明するための模式図である。
【図4C】オリジナル記憶領域、ワーク領域及び事前コピー領域について説明するための模式図である。
【図5A】オリジナル記憶領域、ワーク領域及び事前コピー領域について説明するための模式図である。
【図5B】オリジナル記憶領域、ワーク領域及び事前コピー領域について説明するための模式図である。
【図6】情報処理装置における処理の動作を示すフローチャートである。
【図7】ワーク領域ファイル処理を示すフローチャートである。
【図8】事前コピー処理を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に、本願に開示する情報処理装置及びコンピュータプログラムの好適な実施の形態について図面を参照しつつ説明する。
【0011】
本実施の形態では、情報処理装置は、例えばデスクトップ型又はノート型の一般的なパーソナルコンピュータである。本実施の形態に係る情報処理装置は、ファイル復元処理を行う。ファイル復元処理とは、情報処理装置に記憶されるデータファイルがユーザにより書き換えられた場合に、データファイルを書き換え前の状態に復元する処理を言う。以下の説明では、書き換え前の状態のデータファイルを、オリジナルのデータファイルと言う。またデータファイルの書き換えには、データファイルの消去も含むものとする。
【0012】
図1は、本実施の形態に係る情報処理装置が行うファイル復元処理を説明するための模式図である。
【0013】
情報処理装置1は、演算装置10、記憶装置20及び入出力装置30等を備えている。演算装置10は、例えばWindows(登録商標)又はLinux(登録商標)等のOS50、及び複数のアプリケーションプログラム(以下、単にアプリと言う)51,52,53等が実行可能としてある。記憶装置20は、例えばHard Disk Drive(HDD)やSolid State Drive(SSD)等の不揮発性の記憶装置等であり、複数のデータファイルを記憶する。なお、記憶装置20として、Dynamic Random Access Memory(DRAM)やStatic Random Access Memory(SRAM)などの揮発性記憶装置を用いてもよく、不揮発性の記憶装置と揮発性の記憶装置とを組み合わせて用いてもよい。入出力装置30は、キーボード、マウス及びモニタ等であって、ユーザによる操作を受け付け、必要な情報を表示する。
【0014】
記憶装置20は、データファイルを記憶するための記憶領域として、オリジナル記憶領域(第1記憶領域)21、ワーク領域(第2記憶領域)22及び事前コピー領域(第3記憶領域)23等を有している。データファイルは、例えばOS50又はアプリ51等に関するファイルであって、OS50等のプログラムが情報処理装置1にインストールされることにより生成され、又は情報処理装置1の管理者などの操作者によって生成される。生成されたデータファイルは、オリジナルのデータファイル(以下、オリジナルファイルと言う)としてオリジナル記憶領域21に記憶される。オリジナル記憶領域21に記憶されたオリジナルファイル25は、OS50等の起動時に演算装置10により読み取られ、演算装置10にはオリジナルファイル25に従ったソフトウェア環境が構築される。
【0015】
ソフトウェア環境が構築された後、各オリジナルファイル25は、演算装置10によりアクセスされる。演算装置10は、例えばアプリ51を介してユーザが指定したオリジナルファイル25に対してアクセスする。OS50上で動作するアプリ51などのユーザアプリケーションとしての処理手順を実行する演算装置10は、OS50が提供するファイルシステム機能を介して、指定されたオリジナルファイル25にアクセスする。これは、ユーザアプリケーションのプロセスが、記憶装置20に格納されているファイルを直接的に操作することをOS50により制限されているためである。なお、本実施の形態においてユーザアプリケーションは、情報処理装置1のユーザが作成したアプリケーションに限定する意図は無く、OS50上で動作する全てのプログラムを含み得る。
【0016】
上述のファイルシステム機能を介したアクセス処理において、ユーザアプリケーションのプロセスは、記憶装置20に格納されているデータファイルに対応するファイル記述子(ファイルハンドラとも称呼する)を、OS50が提供するファイルシステム機能から取得する。そして、データファイルの参照やデータファイルへの書き込み等のファイル操作の要求を、取得したファイル記述子を用いてOS50に発行することにより、OS50が提供する機能を介して所望のファイル操作を実行する。なお、上述のファイル操作の要求は、データファイルの参照やデータファイルへの書き込みの他に、データファイルの移動や、データファイルの削除などの要求も含み得る。上述のように、ユーザアプリケーションの処理手順を実行する演算装置10が記憶装置20に格納されているデータファイルへアクセスする場合、ファイル記述子を取得する要求と、取得したファイル記述子に対応するデータファイルへのファイル操作を実行する要求とがOS50に対して発行される。
【0017】
本実施の形態では、オリジナルファイル25には、予め保護(復元)対象に指定されているものがある。演算装置10によりアクセスされたオリジナルファイル25が保護対象である場合、そのオリジナルファイル25はワーク領域22へコピーされる。このコピー処理の実行を開始する前に、オリジナルファイル25に対応付けてワーク領域22に格納されているコピーファイル26が既に存在するか否かを判定し、既に存在すると判定された場合にはコピー処理を省略してもよい。ここで、演算装置10によるオリジナルファイル25へのアクセスとは、ユーザアプリケーションの処理手順を実行する演算装置10によるオリジナルファイル25に対するファイル処理におけるファイル記述子の取得要求の発行を意味する。なお、ファイル記述子の取得要求には、ファイルからデータを取得する参照処理における取得要求と、ファイルへデータを書き込む更新処理における取得要求とがある。
【0018】
本実施の形態では、データファイルへデータを書き込む更新処理におけるファイル記述子の取得要求に対してのみ、保護対象のオリジナルファイル25をワーク領域22へコピーする。これにより、ファイルからデータの取得しかしないファイル処理において、保護対象のオリジナルファイル25をワーク領域22へコピーする処理を省略することができる。すなわち、参照処理において上述のコピー処理に要する時間が省略されるため、保護対象のオリジナルファイル25からデータを取得し終えるまでの処理時間を短縮することが可能となる。
【0019】
ワーク領域22へコピーされた場合、演算装置10は、アクセス先を、オリジナル記憶領域21のオリジナルファイル25からワーク領域22にコピーされたデータファイル(以下、コピーファイルと言う)26へと切り替える。すなわち、本実施の形態に係る演算装置10は、オリジナルファイル25に対するファイルの更新処理におけるファイル記述子の取得要求の発行を検知し、オリジナルファイル25に対応付けてワーク領域22に格納されているコピーファイル26に対応するファイル記述子を取得する。そして、その取得したコピーファイル26に対応するファイル記述子を、要求元のユーザアプリケーションのプロセスに通知する。
【0020】
これにより、アプリケーションによるプロセスは、ワーク領域22のコピーファイル26に対応するファイル記述子を用いてファイル操作の要求をOS50に対して発行することになる。そして、OS50の処理手順を実行する演算装置10は、アプリケーションのプロセスから受けたファイル操作の要求に従い、アクセスしたワーク領域22のコピーファイル26に対する書き換え等のファイル操作を行う。従って、保護対象のオリジナルファイル25はアプリケーションにより書き換えられることがない。そのため、保護対象のデータファイルに対する書き換え等のファイル操作の要求を発行した場合であっても、本実施の形態における復元処理を実行することにより、演算装置10にはそのファイル操作の要求を発行する前と同じソフトウェア環境が構築される。なお、本実施の形態では、OS50の起動時に、ワーク領域22のコピーファイル26は消去される。
【0021】
また、演算装置10によりアクセスされた保護対象のオリジナルファイル25は、所定のタイミングで事前コピー領域23にコピーされる。すなわち、更新処理におけるファイル記述子の取得要求の対象とされ、そのファイル記述子を用いてデータファイルへの書き込み等のファイル操作の要求が発行されたファイルが、事前コピー領域23へのコピー対象となる。事前コピー領域23にコピーされたデータファイル(以下、事前コピーファイルと言う)27は、OS50の再起動時にワーク領域22へ移動される。そして、ユーザが再起動前と同じオリジナルファイル25へアクセスした場合、演算装置10は、アクセス先を、オリジナル記憶領域21のオリジナルファイル25からワーク領域22に移動された事前コピーファイル27へと切り替える。すなわち、本実施の形態に係る演算装置10は、オリジナルファイル25に対する更新処理におけるファイル記述子の取得要求の発行を検知し、オリジナルファイル25に対応付けて格納されている事前コピーファイル27に対応するファイル記述子を取得する。そして、その取得した事前コピーファイル27に対応するファイル記述子を、要求元のユーザアプリケーションのプロセスに通知する。そして、演算装置10は、ユーザの操作などにより、取得したファイル記述子を用いてアクセスしたワーク領域22のコピーファイル26の書き換え等を行う。
【0022】
すなわち、アプリケーションのプロセスによる保護対象のデータファイルに対する書き換え等のファイル操作は、ワーク領域22に記憶されるデータファイルに対応するファイル記述子を用いて発行されるため、結果として、保護対象のデータファイルの書き換え等のファイル操作を回避することができる。さらに、アプリケーションの一般的な実装では、同じファイルへの2回目以降のアクセス時には1回目のアクセス時に取得したファイル記述子を再利用することにより、ファイル記述子を取得する要求の再度の発行を省略する場合がある。これにより、同じファイルへの2回目以降のアクセスに対して、上述のオリジナルファイルのコピー処理やファイル記述子の変換処理の実行を省略することができる。また、本実施の形態の制御を経由してファイル記述子を取得した後は、各ユーザアプリケーションは本実施の形態の制御を経由せずに所定のファイルへのアクセス要求を実行するため、本実施の形態の制御に要する演算コストを省略することができる。
【0023】
アプリケーションのプロセスにより書き換え等のファイル操作の要求が発行された保護対象のデータファイルは、その要求が発行されたことを示す履歴情報に基づいて、オリジナル記憶領域21から事前コピー領域23へコピーされる。すなわち、保護対象であると判定されたデータファイルを複製し、上述の作業用ファイルであるコピーファイル26とは別のデータファイルとして記憶装置に格納する。これにより、二度目以降(具体的には、OS50の再起動後)は、事前コピー領域23からワーク領域22へ移動される。データファイルの移動処理は、コピー処理との対比において、処理速度が速くなる。従って、例えばOS50の再起動後などの事前コピーファイル27が格納されている状態での動作時には、ユーザがオリジナルファイル25の書き換えを行うまでの時間を、初回起動時などの事前コピーファイル27が格納されていない状態での動作時との対比において短縮させることができる。
【0024】
なお、本実施の形態では、情報処理装置1は演算装置10及び記憶装置20を一体的に備えているものとして説明しているが、ネットワークを介してそれぞれを接続する構成としてもよい。例えば、記憶装置20をNetwork Attached Storage(NAS)としてもよい。また記憶装置20は、リムーバブルハードディスク、Universal Serial Bus(USB)メモリ等としてもよい。また情報処理装置1は、サーバ装置などのコンピュータであってもよい。
【0025】
以下、ファイル復元処理を実行する情報処理装置1の具体的な構成及び動作について詳述する。
【0026】
図2は、本実施の形態に係る情報処理装置1の電気的な構成を示す模式図である。情報処理装置1は、上述の演算装置10を構成するCentral Processing Unit(CPU)11、Read Only Memory(ROM)12、及びRandom Access Memory(RAM)13と、上述した記憶装置20及び入出力装置30とのハードウェア各部を備える。これらのハードウェア各部はバス1aを介して相互に接続されている。
【0027】
CPU11は、ROM12に予め記憶されている制御プログラムを適宜RAM13に読み出して実行すると共に、上述したハードウェア各部の動作を制御する。ROM12は、情報処理装置1を本願に開示する情報処理装置として動作させるために必要な種々の制御プログラム12a、及び保護対象管理テーブル12bなどを予め記憶している。保護対象管理テーブル12bは、保護(復元)すべきオリジナルファイル25を管理するためのテーブルである。保護対象管理テーブル12bで保護対象に指定されているオリジナルファイル25が、上述のようにオリジナル記憶領域21からワーク領域22へコピーされる。この保護対象管理テーブル12bは、ファイル復元処理のプログラムのインストール時に生成されてもよいし、管理者によって生成されてもよい。また、保護対象管理テーブル12bは書き換え可能としてもよい。なお制御プログラム12a及び保護対象管理テーブル12b等は、記憶装置20に記憶されていてもよい。
【0028】
RAM13は、例えばStatic RAM(SRAM)、Dynamic RAM(DRAM)、フラッシュメモリ等である。RAM13は、CPU11による制御プログラムの実行時に発生する種々のデータを一時的に記憶する。例えばRAM13は、ファイル名変換テーブル13a、アクセスファイル管理テーブル13b、及び事前コピー管理テーブル13c等を記憶する。
【0029】
図3は、ファイル復元処理の実行時に必要な各テーブルを模式的に示す図である。図3Aはファイル名変換テーブル13aを示し、図3Bはアクセスファイル管理テーブル13bを示し、図3Cは事前コピー管理テーブル13cを示している。
【0030】
図3Aに示すファイル名変換テーブル13aは、オリジナル記憶領域21に記憶されるオリジナルファイル25と、ワーク領域22に記憶されるコピーファイル26とを対応付けるためのテーブルである。例えば図3Aの場合、オリジナル記憶領域21の「C:\aa」に記憶される「bb.txt」のオリジナルファイル25は、ワーク領域22の「C:\WF\1」にコピーされたことを示している。このファイル名変換テーブル13aは、オリジナルファイル25がワーク領域22へコピーされたときに生成される。
【0031】
図3Bに示すアクセスファイル管理テーブル13bは、特定の期間内にアクセスされたオリジナルファイル25を管理するためのテーブルである。換言すれば、アクセスファイル管理テーブル13bに格納されるオリジナルファイル25は、ワーク領域22にコピーされたオリジナルファイル25である。このアクセスファイル管理テーブル13bには、アクセスされたオリジナルファイル25のファイルサイズ(例えば、単位は「byte」)が格納されている。
【0032】
図3Cに示す事前コピー管理テーブル13cは、オリジナル記憶領域21に記憶されるオリジナルファイル25と、事前コピー領域23に記憶される事前コピーファイル27とを対応付けるためのテーブルである。例えば図3Cの場合、オリジナル記憶領域21の「C:\aa」に記憶される「bb.txt」のオリジナルファイル25は、事前コピー領域23の「C:\ZF\1」にコピーされていることを示している。
【0033】
記憶装置20は、上述したオリジナル記憶領域21、ワーク領域22、及び事前コピー事前領域23を有している。ワーク領域22及び事前コピー領域23それぞれは、領域が2つに分割されている。以下に、記憶装置20が有する各領域について詳述する。図4及び図5は、オリジナル記憶領域21、ワーク領域22及び事前コピー領域23について説明するための模式図である。なお以下では、ワーク領域22及び事前コピー領域23には何も記憶されていない状態から開始するものとして説明する。
【0034】
オリジナル記憶領域21に記憶されているオリジナルファイル25に対する更新処理におけるファイル記述子の取得要求の発行を検知した場合、保護対象管理テーブル12bに基づいて、アクセスされたオリジナルファイル25が保護対象に指定されているか否かが判断される。保護対象に指定されている場合、そのオリジナルファイル25がワーク領域22の第1領域(以下、第1ワーク領域と言う)22aにコピーされる(図4A参照)。このとき、ファイル名変換テーブル13aが生成され、オリジナルファイル25とコピーファイル26とが対応付けられる。そして、アプリケーションのプロセスが発行した取得要求により指定されるオリジナルファイル25に対応するファイル記述子が、コピーファイル26に対応するファイル記述子へと切り替えられる。すなわち、コピーファイル26に対応するファイル記述子を、取得要求を発行したプロセスへ通知する。
【0035】
またアクセスファイル管理テーブル13bが生成され、RAM13へ記憶される。上述のコピー処理の実行を開始する前に、ファイル名変換テーブル13aを参照し、検知した取得要求の対象であるオリジナルファイル25のファイル名がファイル名変換テーブル13aに既に登録されていると判定される場合は、コピー処理の実行を省略しても良い。すなわち、取得要求により指定されるオリジナルファイル25がファイル名変換テーブル13aに既に登録済みの場合は、オリジナルファイル25と対応付けてファイル名変換テーブル13aに登録されているコピーファイル26に対応するファイル記述子を、取得要求を発行したプロセスへ通知する。
【0036】
以上により、オリジナルファイル25に対応するファイル記述子の取得要求を発行したプロセスは、オリジナルファイル25の内容に基づいてワーク領域22に生成されたコピーファイル26に対応するファイル記述子を取得することになる。そしてファイル記述子を取得したプロセスは、取得したファイル記述子を用いてコピーファイル26への書き込み等のファイル操作の実行をOS50に対して要求する。OS50は、ファイル操作の実行要求を受け、その要求において指定されたファイル記述子により特定される管理情報を参照し、ファイルを構成するデータの格納場所を解決する。そして、データの格納場所を指定したアクセスの指示を記憶装置20へ通知する。これらOS50の処理は、従来と同様であるため、詳細な説明を省略する。
【0037】
以上により、オリジナルファイル25への書き込みや削除などを回避することができる。さらに、本実施の形態に係る制御プログラムは、プロセスから発行されるファイル記述子を用いたファイル操作の実行要求を検知の対象から除外することができる。すなわち、本実施の形態に係る制御プログラムは、プロセスから発行されるファイル記述子の取得要求のみを検知の対象とすればよい。また、更新処理におけるファイル記述子の取得要求のみを検知の対象とし、参照操作におけるファイル記述子の取得要求を検知対象から除外することにより、検知処理に要する演算コストをさらに削減することができる。
【0038】
次に特定のタイミングで、アクセスファイル管理テーブル13bに基づいて、ファイル更新処理におけるファイル記述子の取得要求の対象とされたオリジナルファイル25が事前コピー領域23の第1領域(以下、第1事前コピー領域と言う)23aにコピーされる(図4B参照)。このとき、事前コピー管理テーブル24が生成されて、記憶装置20内に記憶される。事前コピー管理テーブル24は、図3Cで説明した事前コピー管理テーブル13cと同様である。以下の説明では、オリジナルファイル25を事前コピー領域23へコピーする動作を事前コピーと言う。この図4A及び図4Bの動作は、OS50が動作し続ける限り繰り返される。
【0039】
OS50が再起動された場合など事前コピーファイル27が格納されている状態で情報処理装置1が起動された場合は、記憶装置20内の事前コピー管理テーブル24がRAM13に展開される。そして、図4Aと同様に、オリジナル記憶領域21に記憶されているオリジナルファイル25に対するファイル更新処理におけるファイル記述子の取得要求を検知した場合、事前コピー管理テーブル13cに基づいて、アクセスされたオリジナルファイル25が事前コピーされたか否かが判定される。このアクセスされたオリジナルファイル25が事前コピーされている場合、対応する第1事前コピー領域23aの事前コピーファイル27が、ワーク領域22の第2領域(以下、第2ワーク領域と言う)22bへ移動される(図4C参照)。このとき、第1ワーク領域22aのコピーファイル26は消去される。事前コピーファイル27を第2ワーク領域22bへコピーすることで、第1ワーク領域22aにおける消去処理と、第2ワーク領域22bにおける移動処理とを並行に行うことができ、時間の短縮化を図ることができる。
【0040】
また図4Bと同様に、特定のタイミングで、アクセスファイル管理テーブル13bに基づいて、アクセスされたオリジナルファイル25が、事前コピー領域23の第2領域(以下、第2事前コピー領域と言う)23bにコピーされる(図5A参照)。このとき、オリジナルファイル25を第2事前コピー領域23bへコピーすることで、第1事前コピー領域23aからから第2ワーク領域22bへの移動処理と重ならないようにでき、時間の短縮化を図ることができる。
【0041】
さらにOS50が再起動された場合、図4Cと同様に、事前コピー管理テーブル13cに基づいて、第2事前コピー領域23bの事前コピーファイル27が、第1ワーク領域22aへ移動される(図5B参照)。このとき、第2ワーク領域22bのコピーファイル26は消去される。このとき、図4Cで説明したように、事前コピーファイル27を第1ワーク領域22aへコピーすることで、消去処理及び移動処理とを並行に行うことができ、時間の短縮化を図ることができる。
【0042】
次に、上述の情報処理装置1における処理の動作について説明する。
【0043】
図6は、情報処理装置1における処理の動作を示すフローチャートである。
【0044】
CPU11は、情報処理装置1の電源が投入されることで、OS50を起動する(S1)。OS50が起動することで、ファイル復元処理を実行するドライバがロードされ、ファイル復元処理の実行が開始される。次にCPU11は、初期化処理を実行する(S2)。初期化処理とは、例えばRAM13の記憶内容を初期化し、ROM12からRAM13への保護対象管理テーブル12bの読み出し(展開)等を行う。また、CPU11は、ワーク領域22にコピーファイル26が記憶されている場合には、コピーファイル26を消去する処理を行う。
【0045】
CPU11は、記憶装置20に事前コピー管理テーブル24が記憶されてあるか否かを判定する(S3)。事前コピー管理テーブル24が記憶されてある場合(S3:YES)、CPU11は、事前コピー管理テーブル24をRAM13へ読み出す(S4)。事前コピー管理テーブル24が記憶されていない場合(S3:NO)、又はRAM13へ読み出した後、CPU11は、ワーク領域ファイル処理(S5)を実行する。
【0046】
図7は、ワーク領域ファイル処理を示すフローチャートである。
【0047】
ワーク領域ファイル処理では、CPU11は、オリジナル記憶領域21のオリジナルファイル25へのアクセスを受け付けたか否かを判定する(S11)。ここでアクセスの受け付けとは、例えばアプリ51でオリジナルファイル25のファイル名が指定され、ファイルの更新処理が要求された場合を言う。またアクセスの受け付けは、例えばコマンドを入力するものであってもよいし、データファイルのアイコンを選択するものであってもよい。アクセスを受け付けていない場合(S11:NO)、CPU11は受け付けるまで待機する。このとき、CPU11は、情報処理装置1における他の処理を行うようにしてもよいし、所定時間が経過すれば他の処理に移行するようにしてもよい。
【0048】
アクセスを受け付けた場合、すなわち、ファイルの更新処理におけるファイル記述子の取得要求を受け付けた場合(S11:YES)、CPU11は、アクセス先のオリジナルファイル25が事前コピーされているか否かを判定する(S12)。具体的には、CPU11は、RAM13の事前コピー管理テーブル13cを参照し、事前コピー管理テーブル13cに対象のオリジナルファイル25が記憶されているか否かを判定する。事前コピーされていない場合(S12:NO)、CPU11は、保護対象管理テーブル12bを参照して、アクセス先のオリジナルファイル25が保護対象であるか否かを判定する(S13)。
【0049】
保護対象である場合(S13:YES)、CPU11は、アクセス先のオリジナルファイル25をワーク領域22へコピーする(S14)。S14においてCPU11は、第1ワーク領域22aにコピーファイル26が記憶されていない場合には、オリジナルファイル25を第1ワーク領域22aへコピーする。第1ワーク領域22aにコピーファイル26が記憶されている場合には、CPU11は、第2ワーク領域22bへコピーする。なお、CPU11は、S11で受け付けたアクセス先のオリジナルファイル25がオリジナル記憶領域21へ記憶されているかを確認し、記憶されている場合にコピーを実行するようにしてもよい。これにより、オリジナル記憶領域21から削除されたオリジナルファイル25の内容が、ワーク領域22に格納されたコピーファイル26を通じて、意図せず利用し続けられることを回避することができる。
【0050】
次にCPU11は、S11で受け付けたアクセス先を第1ワーク領域22aのコピーファイル26へ切り替える(S15)。これ以降の処理では、CPU11は、第1ワーク領域22aのコピーファイル26へアクセスするようになる。すなわち、ユーザにより書き換え処理が行われた場合、CPU11は、第1ワーク領域22aのコピーファイル26を書き換えるようになる。
【0051】
次に、CPU11、コピー結果をファイル名変換テーブル13aへ記録する(S16)。このときファイル名変換テーブル13aがRAM13にない場合、CPU11は、ファイル名変換テーブル13aを生成し、RAM13へ記憶する。その後、CPU11は、アクセスファイル管理テーブル13bへアクセスしたオリジナルファイル25に関する情報(例えばファイル名及びファイルサイズ)を記録する(S17)。そして、CPU11は本処理を終了し、図6のS6に移行する。
【0052】
一方、S13において、アクセス先のオリジナルファイル25が保護対象でない場合(S13:NO)、CPU11は、アクセス先を切り替えることなく、本処理を終了し、図6のS6に移行する。この場合、CPU11は、オリジナル記憶領域21のオリジナルファイル25に対してアクセスし、ユーザにより書き換え処理が行われた場合に、オリジナルファイル25に対してその処理を実行する。
【0053】
またS12において、オリジナルファイル25が事前コピーされている場合(S12:YES)、CPU11は、事前コピー領域23に記憶されている事前コピーファイル27を、ワーク領域22へ移動させる(S18)。このときCPU11は、第1ワーク領域22aにコピーファイル26が記憶されていない場合には、事前コピーファイル27を第1ワーク領域22aへ移動させる。第1ワーク領域22aにコピーファイル26が記憶されている場合には、CPU11は、第2ワーク領域22bへ事前コピーファイル27を移動させる。その後、CPU11はS15に移行し、S11で受け付けたアクセス先をワーク領域22のコピーファイル26へ切り替える(S15)。すなわち、S15においてCPU11は、ワーク領域22のコピーファイル26に対応するファイル記述子を取得し、取得要求を発行したプロセスへその取得したファイル記述子を通知する。
【0054】
S15におけるファイル記述子の取得処理は以下の通りである。ファイル記述子の取得要求を検知した際に、取得要求を発行したプロセスに関する情報が取得される。その取得された情報には、発行したプロセスを識別するためのプロセスIDが含まれている。S15においてCPU11は、そのプロセスIDからOS50が管理するプロセス制御ブロック(タスク制御ブロックとも呼称する)を取得する。さらに、そのプロセス制御ブロックのデータ構造内に管理されているエントリー(ファイルアクセス管理簿とも呼称する)として取得要求の対象とされているファイルに対応するコピーファイル26のファイル制御ブロックが登録されているか否かを判定する。すでにエントリーとして対応するファイル制御ブロックが登録されている場合には、そのエントリーのエントリー番号をファイル記述子として、取得要求元のプロセスに返送する。
【0055】
一方、未登録の場合、取得要求の対象とされているファイルに対応するコピーファイル26のファイル制御ブロックをOS50から取得し、そのファイル制御ブロックをプロセス制御ブロックのデータ構造により管理されている何れかのエントリーに登録する。さらに、取得要求において指定されたオープンモードをそのエントリーに設定する。例えば、更新処理におけるファイル記述子の取得要求では、書き込みや追加書き込みなどの更新処理を示すオープンモードが設定される。参照処理におけるファイル記述子の取得要求では、読み取り専用などの参照処理を示すオープンモードが設定される。そして、ファイル制御ブロックを登録したエントリーのエントリー番号をファイル記述子として、取得要求元のプロセスに返送する。S15により通知を受けたプロセスは、取得したファイル記述子を用いてファイル操作の実行要求をOSへ要求した場合、第1ワーク領域22aのコピーファイル26へアクセスすることになる。
【0056】
CPU11は、所定のタイミングとなったか否かを判定する(S6)。ここで所定のタイミングとは、記憶装置20へのアクセス要求を受け付ける頻度(所定時間単位におけるアクセス要求を受け付ける回数)が所定値未満となった場合、又は、OS50等の起動開始時刻から所定時間が経過した場合などであってもよい。また、所定のプログラム(例えば、ログイン画面の表示プログラム、又はログイン後に自動的に起動されるプログラム)のロード要求をCPU11が受け付けた場合、又は、ロード要求を受け付けてから所定時間が経過した場合であってもよい。所定のタイミングとなった場合(S6:YES)、CPU11は、事前コピー処理を実行する(S7)。所定のタイミングとなっていない場合(S6:NO)、CPU11は、S8の処理に移行する。
【0057】
図8は、事前コピー処理を示すフローチャートである。
【0058】
事前コピー処理では、CPU11は、アクセスファイル管理テーブル13bがRAM13に記憶されているか否かを判定する(S21)。換言すれば、CPU11は、ワーク領域コピー処理で保護対象のオリジナルファイル25がワーク領域22へコピーされたか否かを判定する。アクセスファイル管理テーブル13bがRAM13へ記憶されていない場合(S21:NO)、CPU11は事前コピー処理を終了し、図6のS8へ処理を移す。
【0059】
アクセスファイル管理テーブル13bがRAM13へ記憶されている場合(S21:YES)、CPU11は、アクセスファイル管理テーブル13bにオリジナルファイル25が複数格納されているか否かを判定する(S22)。オリジナルファイル25が複数格納されていない場合(S22:NO)、CPU11は、アクセスファイル管理テーブル13bに格納されたオリジナルファイル25のファイルサイズがワーク領域22の空き領域サイズ未満であるか否かを判定する(S24)。ファイルサイズが空き領域サイズ未満である場合(S24:YES)、CPU11は、そのオリジナルファイル25を事前コピー領域23へコピーする(S25)。一方、ファイルサイズが空き領域サイズ未満でない場合(S24:NO)、CPU11は、事前コピー領域23へのコピーを行うことなく事前コピー処理を終了し、図6のS8へ処理を移す。
【0060】
オリジナルファイル25が複数格納されている場合(S22:YES)、CPU11は、事前コピー領域23へコピーするオリジナルファイル25を抽出する(S23)。例えば、ファイルサイズが所定値(第一の閾値)を超えるオリジナルファイル25は、コピー対象から除外するようにしてもよい。この場合、ファイルサイズが著しく大きいファイルにより事前コピー領域23が独占されることを防止することができる。また、ファイルサイズが所定値(第二の閾値)未満のオリジナルファイル25は、コピー対象から除外するようにしてもよい。ファイルサイズが小さい場合、そのオリジナルファイル25をワーク領域22へコピーしてもコピー処理に要する時間が無視できる程度である。従って、アクセスファイル管理テーブル13bの全てのオリジナルファイル25を事前コピー領域23へコピーすることができない場合、ファイルサイズが大きく、コピー処理の時間が無視できないオリジナルファイル25を優先的に事前コピー領域23へコピーすることができる。なお、上述の第一の閾値と第二の閾値とは、異なる値に設定しても良いし、同じ値に設定しても良い。また、上述の第一の閾値を用いた制御と第二の閾値を用いた制御とは、いずれか一方を実装しても良いし、両方の制御を実装しても良い。両方の制御を実装する場合、第一の閾値は第二の閾値よりも大きい値を設定することが望ましい。この場合、第一の閾値以下であり第二の閾値以上のファイルサイズを有するファイルが、事前コピー処理の対象となり得る。
【0061】
なおオリジナルファイル25が複数格納されている場合、アクセスファイル管理テーブル13bの全てのオリジナルファイル25を事前コピー領域23へコピーするようにしてもよい。また、ファイルサイズの小さいオリジナルファイル25を優先して事前コピー領域23へコピーしてもよい。これにより、事前コピー処理の実行のために確保できる時間が確定的でない状況下において、事前コピー領域23に格納されるファイル数を増やすことができる。さらにCPU11は、ファイルサイズの降順で、ファイルサイズの大きいファイルを優先してコピー処理の対象としてもよい。これにより、事前コピー処理の実行のために確保できる時間が確定的でない状況下において、オリジナルファイル25のコピー処理に要する時間が長いものから優先的に事前コピー領域23へ格納することができる。
【0062】
次にCPU11は、抽出したオリジナルファイル25を事前コピー領域23へコピーする(S25)。このとき、CPU11は、第1及び第2事前コピー領域23a,23bの何れにも事前コピーファイル27が記憶されていない場合には、第1事前コピー領域23aへコピーする。また第1及び第2事前コピー領域23a,23bの何れかに事前コピーファイル27が記憶されている場合には、CPU11は、他方の領域にコピーする。その後、CPU11は、事前コピー領域23へのコピー結果を、記憶装置20に記憶されている事前コピー管理テーブル24へ記録する(S26)。このとき、CPU11は、記憶装置20に事前コピー管理テーブル24が記憶されていない場合には、事前コピー管理テーブル24を生成し、記憶装置20へ記憶する。その後CPU11は、事前コピー処理を終了し、図6のS8へ処理を移す。
【0063】
S6で所定のタイミングとなっていない場合(S6:NO)、又はS7の事前コピー処理の終了後、CPU11は、OS50の再起動を行うか否かを判定する(S8)。再起動を行う場合(S8:YES)、CPU11は再起動処理を行い、処理をS1に戻す。再起動を行わない場合(S8:NO)、CPU11は、本処理を終了するか、すなわちOS50を終了するか否かを判定する(S9)。終了しない場合(S9:NO)、CPU11は処理をS5に戻す。なお、処理がS5に戻され、ワーク領域ファイル処理が繰り返し実行された場合、図7のS18において事前コピーファイル27が事前コピー領域23からワーク領域22へ移動されているときには、S18は省略される。終了する場合(S9:YES)、CPU11は、OS50の終了処理を行い、本処理を終了する。
【0064】
以上説明したように、本実施の形態では、保護対象のオリジナルファイル25に対する更新処理におけるファイル記述子の取得要求の発行を検知した場合、そのオリジナルファイル25の内容に基づいてワーク領域22へそのコピーファイル26を生成する。なお、オリジナルファイル25への参照操作の場合はオリジナルファイル25を直接参照するファイル記述子をアプリケーションに返すことで、直接参照を許容する。また、新規作成操作によるアクセスにおいては、ワーク領域22に新規ファイルとなるデータファイルを構成し、そのファイル記述子を返すことで、オリジナル記憶領域21にはファイル生成の痕跡を残さないようにすることもできる。
【0065】
また、既にファイル更新処理が行われワーク領域22にコピーファイル26が生成されたファイルへの参照アクセスは、作成済みのコピーファイル26へのファイル記述子を返すことにより、変更されたファイルへの継続した操作を実現することもできる。この場合、本実施の形態に係る制御プログラムによる処理において、ファイルの参照処理におけるファイル記述子の取得要求も検知対象とし、その検知した取得要求により指定されるファイルに対応付けられたバックアップファイルをファイル名変換テーブル13aから特定すればよい。
【0066】
本実施の形態に係る情報処理装置は、コピーファイル26に対応したファイル記述子を取得要求を発行したプロセスに取得させ、その取得したファイル記述子を用いたファイル操作の要求を実行させる。これにより、オリジナルファイル25に対しては変更されることがなく、また、ユーザによってアクセスもされないため、オリジナルファイル25の破損などのおそれを低減できる。そして、ワーク領域22のコピーファイル26を消去することにより、オリジナルファイル25を復元した状態を瞬時に実現することができる。
【0067】
またオリジナルファイル25を事前コピーしておき、OS50の再起動後には、事前コピーした事前コピーファイル27をワーク領域22へ移動させる。これにより、オリジナル記憶領域21からワーク領域22へオリジナルファイル25をコピーする場合との対比において、処理時間を短縮させることができる。
【0068】
以上、本発明の実施の形態について、具体的に説明したが、各構成及び動作等は適宜変更可能であって、上述の実施の形態に限定されることはない。
【0069】
例えば、上述の実施の形態では、事前コピー領域23へ事前コピーした事前コピーファイル27をワーク領域22へ移動させる構成としているが、事前コピー領域23の役割と、ワーク領域22の役割とを交互に切り替える構成としてもよい。すなわち、例えばOS50を再起動した場合、事前コピー領域23をワーク領域22として扱い、事前コピー領域23の事前コピーファイル27に対してアクセスし、ワーク領域22へオリジナルファイル25を事前コピーするようにしてもよい。
【0070】
また各領域21,22,23は、媒体上に設定された物理的な区画(例えばパーティション又はドライブ等)、ファイルシステム上に階層的に設定された論理的な区画(例えばフォルダ)を用いて実装すればよい。さらにデータファイルは、記憶する各領域21,22,23によって、ファイル名を変更するようにしてもよい。例えば、オリジナルファイル25のファイル名の末尾に識別子を追加、又はオリジナルファイル25のファイル名の末尾に存する拡張子と置換して、コピーファイル26及び事前コピーファイル27を識別するようにしてもよい。また、拡張子は各ファイル毎に異なっていてもよい。例えば、ワーク領域22のコピーファイル26を「.tmp」とし、事前コピー領域23の事前コピーファイル27を「.pre」としてもよい。この場合には、各種ファイルを同一の領域に格納することができる。
【0071】
また、上述の実施の形態では、CPU11がROM12に記憶された制御プログラム12aを実行するものとして説明したが、CPU11がCompact Disk-ROM(CD−ROM)等の記録媒体から制御プログラムを読み取って、上述の処理を行うようにしてもよい。
【符号の説明】
【0072】
1 情報処理装置
10 演算装置
20 記憶装置
21 オリジナル記憶領域
22 ワーク領域
23 事前コピー領域
25 オリジナルファイル
26 コピーファイル
27 事前コピーファイル
【技術分野】
【0001】
本発明は、保護対象となっているデータが変更された場合であっても、変更前のデータを復元することができる情報処理装置及びコンピュータプログラムに関する。
【背景技術】
【0002】
Operating System(OS)などが動作するコンピュータは、OSが正常に動作するソフトウェア環境を構築させるための様々なデータを記憶している。コンピュータが、例えば学校など多数のユーザにより利用される場所に設置された場合、これらデータは、ユーザにより変更されることがある。コンピュータ上で常に同じソフトウェア環境を構築させるためには、データが変更された場合には、データを変更前の状態に復元する必要がある。
【0003】
データを復元する方法として、例えばディスク装置に記憶されたデータに対して新たにデータを上書きする場合、新しいデータを元のデータのディスク位置とは異なるディスク位置に格納する方法がある。そしてこの方法では、元のデータが必要となったときには、そのデータが格納されたディスク位置からデータを読み取る。これにより、データが変更された場合でも、過去の状態を復元することが可能となっている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第3797864号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1では、例えば元のデータをユーザが読み出す際に、エラーが生じ、そのエラーが原因となって元のデータが破損するおそれがある。この場合、元のデータを読み取ることができず、過去の状態を確実に復元できない場合がある。またデータを格納したディスク位置を管理する必要があり、装置における処理負担が増加し、ユーザが行う処理に影響を及ぼすおそれがある。さらに、定期的に元のデータを他の記憶領域などにコピー(バックアップ)することもあり得るが、この場合、バックアップのための記憶領域が必要となり、コスト上昇の原因となる。
【0006】
本発明はかかる事情に鑑みてなされたものであり、その目的とするところは、オリジナルのデータを必要時に複製し、その複製したデータにアクセスさせることで、オリジナルのデータを保護し、そのデータを瞬間的に復元することができる情報処理装置及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0007】
本願に開示する情報処理装置は、プロセスから所望のファイルに対応するファイル記述子の取得を要求する取得要求を受け付ける取得要求受付部と、受け付けた取得要求により指定されるファイルが保護対象か否かを判定する判定部と、受け付けた取得要求により指定されるファイルが保護対象であると判定された場合、前記ファイルを複製した内容に基づいて作業用ファイルを生成する作業用ファイル生成部と、生成した作業用ファイルのファイル記述子を取得する取得部と、該取得部により取得したファイル記述子を、受け付けた取得要求により指定されるファイルのファイル記述子として、前記取得要求元に応答する取得要求応答部とを備える。
【発明の効果】
【0008】
本願に開示する情報処理装置の一観点によれば、指定を受け付けた保護対象のデータにアクセスする場合、そのデータを複製し、指定されたデータではなく、そのデータの複製(コピー)のファイル記述子を取得し、取得したファイル記述子を要求元に応答する。すなわち、ユーザがデータを変更する場合には、複製データが変更される。従って、元のデータに対しては変更されることがなく、また、ユーザによってアクセスもされないため、元のデータの破損などのおそれを低減できる。そして、複製されたデータを消去することにより、瞬時に元のデータを復元することができる。
【図面の簡単な説明】
【0009】
【図1】実施の形態に係る情報処理装置が行うファイル復元処理を説明するための模式図である。
【図2】実施の形態に係る情報処理装置の電気的な構成を示す模式図である。
【図3A】ファイル復元処理の実行時に必要なテーブルを模式的に示す図である。
【図3B】ファイル復元処理の実行時に必要なテーブルを模式的に示す図である。
【図3C】ファイル復元処理の実行時に必要なテーブルを模式的に示す図である。
【図4A】オリジナル記憶領域、ワーク領域及び事前コピー領域について説明するための模式図である。
【図4B】オリジナル記憶領域、ワーク領域及び事前コピー領域について説明するための模式図である。
【図4C】オリジナル記憶領域、ワーク領域及び事前コピー領域について説明するための模式図である。
【図5A】オリジナル記憶領域、ワーク領域及び事前コピー領域について説明するための模式図である。
【図5B】オリジナル記憶領域、ワーク領域及び事前コピー領域について説明するための模式図である。
【図6】情報処理装置における処理の動作を示すフローチャートである。
【図7】ワーク領域ファイル処理を示すフローチャートである。
【図8】事前コピー処理を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に、本願に開示する情報処理装置及びコンピュータプログラムの好適な実施の形態について図面を参照しつつ説明する。
【0011】
本実施の形態では、情報処理装置は、例えばデスクトップ型又はノート型の一般的なパーソナルコンピュータである。本実施の形態に係る情報処理装置は、ファイル復元処理を行う。ファイル復元処理とは、情報処理装置に記憶されるデータファイルがユーザにより書き換えられた場合に、データファイルを書き換え前の状態に復元する処理を言う。以下の説明では、書き換え前の状態のデータファイルを、オリジナルのデータファイルと言う。またデータファイルの書き換えには、データファイルの消去も含むものとする。
【0012】
図1は、本実施の形態に係る情報処理装置が行うファイル復元処理を説明するための模式図である。
【0013】
情報処理装置1は、演算装置10、記憶装置20及び入出力装置30等を備えている。演算装置10は、例えばWindows(登録商標)又はLinux(登録商標)等のOS50、及び複数のアプリケーションプログラム(以下、単にアプリと言う)51,52,53等が実行可能としてある。記憶装置20は、例えばHard Disk Drive(HDD)やSolid State Drive(SSD)等の不揮発性の記憶装置等であり、複数のデータファイルを記憶する。なお、記憶装置20として、Dynamic Random Access Memory(DRAM)やStatic Random Access Memory(SRAM)などの揮発性記憶装置を用いてもよく、不揮発性の記憶装置と揮発性の記憶装置とを組み合わせて用いてもよい。入出力装置30は、キーボード、マウス及びモニタ等であって、ユーザによる操作を受け付け、必要な情報を表示する。
【0014】
記憶装置20は、データファイルを記憶するための記憶領域として、オリジナル記憶領域(第1記憶領域)21、ワーク領域(第2記憶領域)22及び事前コピー領域(第3記憶領域)23等を有している。データファイルは、例えばOS50又はアプリ51等に関するファイルであって、OS50等のプログラムが情報処理装置1にインストールされることにより生成され、又は情報処理装置1の管理者などの操作者によって生成される。生成されたデータファイルは、オリジナルのデータファイル(以下、オリジナルファイルと言う)としてオリジナル記憶領域21に記憶される。オリジナル記憶領域21に記憶されたオリジナルファイル25は、OS50等の起動時に演算装置10により読み取られ、演算装置10にはオリジナルファイル25に従ったソフトウェア環境が構築される。
【0015】
ソフトウェア環境が構築された後、各オリジナルファイル25は、演算装置10によりアクセスされる。演算装置10は、例えばアプリ51を介してユーザが指定したオリジナルファイル25に対してアクセスする。OS50上で動作するアプリ51などのユーザアプリケーションとしての処理手順を実行する演算装置10は、OS50が提供するファイルシステム機能を介して、指定されたオリジナルファイル25にアクセスする。これは、ユーザアプリケーションのプロセスが、記憶装置20に格納されているファイルを直接的に操作することをOS50により制限されているためである。なお、本実施の形態においてユーザアプリケーションは、情報処理装置1のユーザが作成したアプリケーションに限定する意図は無く、OS50上で動作する全てのプログラムを含み得る。
【0016】
上述のファイルシステム機能を介したアクセス処理において、ユーザアプリケーションのプロセスは、記憶装置20に格納されているデータファイルに対応するファイル記述子(ファイルハンドラとも称呼する)を、OS50が提供するファイルシステム機能から取得する。そして、データファイルの参照やデータファイルへの書き込み等のファイル操作の要求を、取得したファイル記述子を用いてOS50に発行することにより、OS50が提供する機能を介して所望のファイル操作を実行する。なお、上述のファイル操作の要求は、データファイルの参照やデータファイルへの書き込みの他に、データファイルの移動や、データファイルの削除などの要求も含み得る。上述のように、ユーザアプリケーションの処理手順を実行する演算装置10が記憶装置20に格納されているデータファイルへアクセスする場合、ファイル記述子を取得する要求と、取得したファイル記述子に対応するデータファイルへのファイル操作を実行する要求とがOS50に対して発行される。
【0017】
本実施の形態では、オリジナルファイル25には、予め保護(復元)対象に指定されているものがある。演算装置10によりアクセスされたオリジナルファイル25が保護対象である場合、そのオリジナルファイル25はワーク領域22へコピーされる。このコピー処理の実行を開始する前に、オリジナルファイル25に対応付けてワーク領域22に格納されているコピーファイル26が既に存在するか否かを判定し、既に存在すると判定された場合にはコピー処理を省略してもよい。ここで、演算装置10によるオリジナルファイル25へのアクセスとは、ユーザアプリケーションの処理手順を実行する演算装置10によるオリジナルファイル25に対するファイル処理におけるファイル記述子の取得要求の発行を意味する。なお、ファイル記述子の取得要求には、ファイルからデータを取得する参照処理における取得要求と、ファイルへデータを書き込む更新処理における取得要求とがある。
【0018】
本実施の形態では、データファイルへデータを書き込む更新処理におけるファイル記述子の取得要求に対してのみ、保護対象のオリジナルファイル25をワーク領域22へコピーする。これにより、ファイルからデータの取得しかしないファイル処理において、保護対象のオリジナルファイル25をワーク領域22へコピーする処理を省略することができる。すなわち、参照処理において上述のコピー処理に要する時間が省略されるため、保護対象のオリジナルファイル25からデータを取得し終えるまでの処理時間を短縮することが可能となる。
【0019】
ワーク領域22へコピーされた場合、演算装置10は、アクセス先を、オリジナル記憶領域21のオリジナルファイル25からワーク領域22にコピーされたデータファイル(以下、コピーファイルと言う)26へと切り替える。すなわち、本実施の形態に係る演算装置10は、オリジナルファイル25に対するファイルの更新処理におけるファイル記述子の取得要求の発行を検知し、オリジナルファイル25に対応付けてワーク領域22に格納されているコピーファイル26に対応するファイル記述子を取得する。そして、その取得したコピーファイル26に対応するファイル記述子を、要求元のユーザアプリケーションのプロセスに通知する。
【0020】
これにより、アプリケーションによるプロセスは、ワーク領域22のコピーファイル26に対応するファイル記述子を用いてファイル操作の要求をOS50に対して発行することになる。そして、OS50の処理手順を実行する演算装置10は、アプリケーションのプロセスから受けたファイル操作の要求に従い、アクセスしたワーク領域22のコピーファイル26に対する書き換え等のファイル操作を行う。従って、保護対象のオリジナルファイル25はアプリケーションにより書き換えられることがない。そのため、保護対象のデータファイルに対する書き換え等のファイル操作の要求を発行した場合であっても、本実施の形態における復元処理を実行することにより、演算装置10にはそのファイル操作の要求を発行する前と同じソフトウェア環境が構築される。なお、本実施の形態では、OS50の起動時に、ワーク領域22のコピーファイル26は消去される。
【0021】
また、演算装置10によりアクセスされた保護対象のオリジナルファイル25は、所定のタイミングで事前コピー領域23にコピーされる。すなわち、更新処理におけるファイル記述子の取得要求の対象とされ、そのファイル記述子を用いてデータファイルへの書き込み等のファイル操作の要求が発行されたファイルが、事前コピー領域23へのコピー対象となる。事前コピー領域23にコピーされたデータファイル(以下、事前コピーファイルと言う)27は、OS50の再起動時にワーク領域22へ移動される。そして、ユーザが再起動前と同じオリジナルファイル25へアクセスした場合、演算装置10は、アクセス先を、オリジナル記憶領域21のオリジナルファイル25からワーク領域22に移動された事前コピーファイル27へと切り替える。すなわち、本実施の形態に係る演算装置10は、オリジナルファイル25に対する更新処理におけるファイル記述子の取得要求の発行を検知し、オリジナルファイル25に対応付けて格納されている事前コピーファイル27に対応するファイル記述子を取得する。そして、その取得した事前コピーファイル27に対応するファイル記述子を、要求元のユーザアプリケーションのプロセスに通知する。そして、演算装置10は、ユーザの操作などにより、取得したファイル記述子を用いてアクセスしたワーク領域22のコピーファイル26の書き換え等を行う。
【0022】
すなわち、アプリケーションのプロセスによる保護対象のデータファイルに対する書き換え等のファイル操作は、ワーク領域22に記憶されるデータファイルに対応するファイル記述子を用いて発行されるため、結果として、保護対象のデータファイルの書き換え等のファイル操作を回避することができる。さらに、アプリケーションの一般的な実装では、同じファイルへの2回目以降のアクセス時には1回目のアクセス時に取得したファイル記述子を再利用することにより、ファイル記述子を取得する要求の再度の発行を省略する場合がある。これにより、同じファイルへの2回目以降のアクセスに対して、上述のオリジナルファイルのコピー処理やファイル記述子の変換処理の実行を省略することができる。また、本実施の形態の制御を経由してファイル記述子を取得した後は、各ユーザアプリケーションは本実施の形態の制御を経由せずに所定のファイルへのアクセス要求を実行するため、本実施の形態の制御に要する演算コストを省略することができる。
【0023】
アプリケーションのプロセスにより書き換え等のファイル操作の要求が発行された保護対象のデータファイルは、その要求が発行されたことを示す履歴情報に基づいて、オリジナル記憶領域21から事前コピー領域23へコピーされる。すなわち、保護対象であると判定されたデータファイルを複製し、上述の作業用ファイルであるコピーファイル26とは別のデータファイルとして記憶装置に格納する。これにより、二度目以降(具体的には、OS50の再起動後)は、事前コピー領域23からワーク領域22へ移動される。データファイルの移動処理は、コピー処理との対比において、処理速度が速くなる。従って、例えばOS50の再起動後などの事前コピーファイル27が格納されている状態での動作時には、ユーザがオリジナルファイル25の書き換えを行うまでの時間を、初回起動時などの事前コピーファイル27が格納されていない状態での動作時との対比において短縮させることができる。
【0024】
なお、本実施の形態では、情報処理装置1は演算装置10及び記憶装置20を一体的に備えているものとして説明しているが、ネットワークを介してそれぞれを接続する構成としてもよい。例えば、記憶装置20をNetwork Attached Storage(NAS)としてもよい。また記憶装置20は、リムーバブルハードディスク、Universal Serial Bus(USB)メモリ等としてもよい。また情報処理装置1は、サーバ装置などのコンピュータであってもよい。
【0025】
以下、ファイル復元処理を実行する情報処理装置1の具体的な構成及び動作について詳述する。
【0026】
図2は、本実施の形態に係る情報処理装置1の電気的な構成を示す模式図である。情報処理装置1は、上述の演算装置10を構成するCentral Processing Unit(CPU)11、Read Only Memory(ROM)12、及びRandom Access Memory(RAM)13と、上述した記憶装置20及び入出力装置30とのハードウェア各部を備える。これらのハードウェア各部はバス1aを介して相互に接続されている。
【0027】
CPU11は、ROM12に予め記憶されている制御プログラムを適宜RAM13に読み出して実行すると共に、上述したハードウェア各部の動作を制御する。ROM12は、情報処理装置1を本願に開示する情報処理装置として動作させるために必要な種々の制御プログラム12a、及び保護対象管理テーブル12bなどを予め記憶している。保護対象管理テーブル12bは、保護(復元)すべきオリジナルファイル25を管理するためのテーブルである。保護対象管理テーブル12bで保護対象に指定されているオリジナルファイル25が、上述のようにオリジナル記憶領域21からワーク領域22へコピーされる。この保護対象管理テーブル12bは、ファイル復元処理のプログラムのインストール時に生成されてもよいし、管理者によって生成されてもよい。また、保護対象管理テーブル12bは書き換え可能としてもよい。なお制御プログラム12a及び保護対象管理テーブル12b等は、記憶装置20に記憶されていてもよい。
【0028】
RAM13は、例えばStatic RAM(SRAM)、Dynamic RAM(DRAM)、フラッシュメモリ等である。RAM13は、CPU11による制御プログラムの実行時に発生する種々のデータを一時的に記憶する。例えばRAM13は、ファイル名変換テーブル13a、アクセスファイル管理テーブル13b、及び事前コピー管理テーブル13c等を記憶する。
【0029】
図3は、ファイル復元処理の実行時に必要な各テーブルを模式的に示す図である。図3Aはファイル名変換テーブル13aを示し、図3Bはアクセスファイル管理テーブル13bを示し、図3Cは事前コピー管理テーブル13cを示している。
【0030】
図3Aに示すファイル名変換テーブル13aは、オリジナル記憶領域21に記憶されるオリジナルファイル25と、ワーク領域22に記憶されるコピーファイル26とを対応付けるためのテーブルである。例えば図3Aの場合、オリジナル記憶領域21の「C:\aa」に記憶される「bb.txt」のオリジナルファイル25は、ワーク領域22の「C:\WF\1」にコピーされたことを示している。このファイル名変換テーブル13aは、オリジナルファイル25がワーク領域22へコピーされたときに生成される。
【0031】
図3Bに示すアクセスファイル管理テーブル13bは、特定の期間内にアクセスされたオリジナルファイル25を管理するためのテーブルである。換言すれば、アクセスファイル管理テーブル13bに格納されるオリジナルファイル25は、ワーク領域22にコピーされたオリジナルファイル25である。このアクセスファイル管理テーブル13bには、アクセスされたオリジナルファイル25のファイルサイズ(例えば、単位は「byte」)が格納されている。
【0032】
図3Cに示す事前コピー管理テーブル13cは、オリジナル記憶領域21に記憶されるオリジナルファイル25と、事前コピー領域23に記憶される事前コピーファイル27とを対応付けるためのテーブルである。例えば図3Cの場合、オリジナル記憶領域21の「C:\aa」に記憶される「bb.txt」のオリジナルファイル25は、事前コピー領域23の「C:\ZF\1」にコピーされていることを示している。
【0033】
記憶装置20は、上述したオリジナル記憶領域21、ワーク領域22、及び事前コピー事前領域23を有している。ワーク領域22及び事前コピー領域23それぞれは、領域が2つに分割されている。以下に、記憶装置20が有する各領域について詳述する。図4及び図5は、オリジナル記憶領域21、ワーク領域22及び事前コピー領域23について説明するための模式図である。なお以下では、ワーク領域22及び事前コピー領域23には何も記憶されていない状態から開始するものとして説明する。
【0034】
オリジナル記憶領域21に記憶されているオリジナルファイル25に対する更新処理におけるファイル記述子の取得要求の発行を検知した場合、保護対象管理テーブル12bに基づいて、アクセスされたオリジナルファイル25が保護対象に指定されているか否かが判断される。保護対象に指定されている場合、そのオリジナルファイル25がワーク領域22の第1領域(以下、第1ワーク領域と言う)22aにコピーされる(図4A参照)。このとき、ファイル名変換テーブル13aが生成され、オリジナルファイル25とコピーファイル26とが対応付けられる。そして、アプリケーションのプロセスが発行した取得要求により指定されるオリジナルファイル25に対応するファイル記述子が、コピーファイル26に対応するファイル記述子へと切り替えられる。すなわち、コピーファイル26に対応するファイル記述子を、取得要求を発行したプロセスへ通知する。
【0035】
またアクセスファイル管理テーブル13bが生成され、RAM13へ記憶される。上述のコピー処理の実行を開始する前に、ファイル名変換テーブル13aを参照し、検知した取得要求の対象であるオリジナルファイル25のファイル名がファイル名変換テーブル13aに既に登録されていると判定される場合は、コピー処理の実行を省略しても良い。すなわち、取得要求により指定されるオリジナルファイル25がファイル名変換テーブル13aに既に登録済みの場合は、オリジナルファイル25と対応付けてファイル名変換テーブル13aに登録されているコピーファイル26に対応するファイル記述子を、取得要求を発行したプロセスへ通知する。
【0036】
以上により、オリジナルファイル25に対応するファイル記述子の取得要求を発行したプロセスは、オリジナルファイル25の内容に基づいてワーク領域22に生成されたコピーファイル26に対応するファイル記述子を取得することになる。そしてファイル記述子を取得したプロセスは、取得したファイル記述子を用いてコピーファイル26への書き込み等のファイル操作の実行をOS50に対して要求する。OS50は、ファイル操作の実行要求を受け、その要求において指定されたファイル記述子により特定される管理情報を参照し、ファイルを構成するデータの格納場所を解決する。そして、データの格納場所を指定したアクセスの指示を記憶装置20へ通知する。これらOS50の処理は、従来と同様であるため、詳細な説明を省略する。
【0037】
以上により、オリジナルファイル25への書き込みや削除などを回避することができる。さらに、本実施の形態に係る制御プログラムは、プロセスから発行されるファイル記述子を用いたファイル操作の実行要求を検知の対象から除外することができる。すなわち、本実施の形態に係る制御プログラムは、プロセスから発行されるファイル記述子の取得要求のみを検知の対象とすればよい。また、更新処理におけるファイル記述子の取得要求のみを検知の対象とし、参照操作におけるファイル記述子の取得要求を検知対象から除外することにより、検知処理に要する演算コストをさらに削減することができる。
【0038】
次に特定のタイミングで、アクセスファイル管理テーブル13bに基づいて、ファイル更新処理におけるファイル記述子の取得要求の対象とされたオリジナルファイル25が事前コピー領域23の第1領域(以下、第1事前コピー領域と言う)23aにコピーされる(図4B参照)。このとき、事前コピー管理テーブル24が生成されて、記憶装置20内に記憶される。事前コピー管理テーブル24は、図3Cで説明した事前コピー管理テーブル13cと同様である。以下の説明では、オリジナルファイル25を事前コピー領域23へコピーする動作を事前コピーと言う。この図4A及び図4Bの動作は、OS50が動作し続ける限り繰り返される。
【0039】
OS50が再起動された場合など事前コピーファイル27が格納されている状態で情報処理装置1が起動された場合は、記憶装置20内の事前コピー管理テーブル24がRAM13に展開される。そして、図4Aと同様に、オリジナル記憶領域21に記憶されているオリジナルファイル25に対するファイル更新処理におけるファイル記述子の取得要求を検知した場合、事前コピー管理テーブル13cに基づいて、アクセスされたオリジナルファイル25が事前コピーされたか否かが判定される。このアクセスされたオリジナルファイル25が事前コピーされている場合、対応する第1事前コピー領域23aの事前コピーファイル27が、ワーク領域22の第2領域(以下、第2ワーク領域と言う)22bへ移動される(図4C参照)。このとき、第1ワーク領域22aのコピーファイル26は消去される。事前コピーファイル27を第2ワーク領域22bへコピーすることで、第1ワーク領域22aにおける消去処理と、第2ワーク領域22bにおける移動処理とを並行に行うことができ、時間の短縮化を図ることができる。
【0040】
また図4Bと同様に、特定のタイミングで、アクセスファイル管理テーブル13bに基づいて、アクセスされたオリジナルファイル25が、事前コピー領域23の第2領域(以下、第2事前コピー領域と言う)23bにコピーされる(図5A参照)。このとき、オリジナルファイル25を第2事前コピー領域23bへコピーすることで、第1事前コピー領域23aからから第2ワーク領域22bへの移動処理と重ならないようにでき、時間の短縮化を図ることができる。
【0041】
さらにOS50が再起動された場合、図4Cと同様に、事前コピー管理テーブル13cに基づいて、第2事前コピー領域23bの事前コピーファイル27が、第1ワーク領域22aへ移動される(図5B参照)。このとき、第2ワーク領域22bのコピーファイル26は消去される。このとき、図4Cで説明したように、事前コピーファイル27を第1ワーク領域22aへコピーすることで、消去処理及び移動処理とを並行に行うことができ、時間の短縮化を図ることができる。
【0042】
次に、上述の情報処理装置1における処理の動作について説明する。
【0043】
図6は、情報処理装置1における処理の動作を示すフローチャートである。
【0044】
CPU11は、情報処理装置1の電源が投入されることで、OS50を起動する(S1)。OS50が起動することで、ファイル復元処理を実行するドライバがロードされ、ファイル復元処理の実行が開始される。次にCPU11は、初期化処理を実行する(S2)。初期化処理とは、例えばRAM13の記憶内容を初期化し、ROM12からRAM13への保護対象管理テーブル12bの読み出し(展開)等を行う。また、CPU11は、ワーク領域22にコピーファイル26が記憶されている場合には、コピーファイル26を消去する処理を行う。
【0045】
CPU11は、記憶装置20に事前コピー管理テーブル24が記憶されてあるか否かを判定する(S3)。事前コピー管理テーブル24が記憶されてある場合(S3:YES)、CPU11は、事前コピー管理テーブル24をRAM13へ読み出す(S4)。事前コピー管理テーブル24が記憶されていない場合(S3:NO)、又はRAM13へ読み出した後、CPU11は、ワーク領域ファイル処理(S5)を実行する。
【0046】
図7は、ワーク領域ファイル処理を示すフローチャートである。
【0047】
ワーク領域ファイル処理では、CPU11は、オリジナル記憶領域21のオリジナルファイル25へのアクセスを受け付けたか否かを判定する(S11)。ここでアクセスの受け付けとは、例えばアプリ51でオリジナルファイル25のファイル名が指定され、ファイルの更新処理が要求された場合を言う。またアクセスの受け付けは、例えばコマンドを入力するものであってもよいし、データファイルのアイコンを選択するものであってもよい。アクセスを受け付けていない場合(S11:NO)、CPU11は受け付けるまで待機する。このとき、CPU11は、情報処理装置1における他の処理を行うようにしてもよいし、所定時間が経過すれば他の処理に移行するようにしてもよい。
【0048】
アクセスを受け付けた場合、すなわち、ファイルの更新処理におけるファイル記述子の取得要求を受け付けた場合(S11:YES)、CPU11は、アクセス先のオリジナルファイル25が事前コピーされているか否かを判定する(S12)。具体的には、CPU11は、RAM13の事前コピー管理テーブル13cを参照し、事前コピー管理テーブル13cに対象のオリジナルファイル25が記憶されているか否かを判定する。事前コピーされていない場合(S12:NO)、CPU11は、保護対象管理テーブル12bを参照して、アクセス先のオリジナルファイル25が保護対象であるか否かを判定する(S13)。
【0049】
保護対象である場合(S13:YES)、CPU11は、アクセス先のオリジナルファイル25をワーク領域22へコピーする(S14)。S14においてCPU11は、第1ワーク領域22aにコピーファイル26が記憶されていない場合には、オリジナルファイル25を第1ワーク領域22aへコピーする。第1ワーク領域22aにコピーファイル26が記憶されている場合には、CPU11は、第2ワーク領域22bへコピーする。なお、CPU11は、S11で受け付けたアクセス先のオリジナルファイル25がオリジナル記憶領域21へ記憶されているかを確認し、記憶されている場合にコピーを実行するようにしてもよい。これにより、オリジナル記憶領域21から削除されたオリジナルファイル25の内容が、ワーク領域22に格納されたコピーファイル26を通じて、意図せず利用し続けられることを回避することができる。
【0050】
次にCPU11は、S11で受け付けたアクセス先を第1ワーク領域22aのコピーファイル26へ切り替える(S15)。これ以降の処理では、CPU11は、第1ワーク領域22aのコピーファイル26へアクセスするようになる。すなわち、ユーザにより書き換え処理が行われた場合、CPU11は、第1ワーク領域22aのコピーファイル26を書き換えるようになる。
【0051】
次に、CPU11、コピー結果をファイル名変換テーブル13aへ記録する(S16)。このときファイル名変換テーブル13aがRAM13にない場合、CPU11は、ファイル名変換テーブル13aを生成し、RAM13へ記憶する。その後、CPU11は、アクセスファイル管理テーブル13bへアクセスしたオリジナルファイル25に関する情報(例えばファイル名及びファイルサイズ)を記録する(S17)。そして、CPU11は本処理を終了し、図6のS6に移行する。
【0052】
一方、S13において、アクセス先のオリジナルファイル25が保護対象でない場合(S13:NO)、CPU11は、アクセス先を切り替えることなく、本処理を終了し、図6のS6に移行する。この場合、CPU11は、オリジナル記憶領域21のオリジナルファイル25に対してアクセスし、ユーザにより書き換え処理が行われた場合に、オリジナルファイル25に対してその処理を実行する。
【0053】
またS12において、オリジナルファイル25が事前コピーされている場合(S12:YES)、CPU11は、事前コピー領域23に記憶されている事前コピーファイル27を、ワーク領域22へ移動させる(S18)。このときCPU11は、第1ワーク領域22aにコピーファイル26が記憶されていない場合には、事前コピーファイル27を第1ワーク領域22aへ移動させる。第1ワーク領域22aにコピーファイル26が記憶されている場合には、CPU11は、第2ワーク領域22bへ事前コピーファイル27を移動させる。その後、CPU11はS15に移行し、S11で受け付けたアクセス先をワーク領域22のコピーファイル26へ切り替える(S15)。すなわち、S15においてCPU11は、ワーク領域22のコピーファイル26に対応するファイル記述子を取得し、取得要求を発行したプロセスへその取得したファイル記述子を通知する。
【0054】
S15におけるファイル記述子の取得処理は以下の通りである。ファイル記述子の取得要求を検知した際に、取得要求を発行したプロセスに関する情報が取得される。その取得された情報には、発行したプロセスを識別するためのプロセスIDが含まれている。S15においてCPU11は、そのプロセスIDからOS50が管理するプロセス制御ブロック(タスク制御ブロックとも呼称する)を取得する。さらに、そのプロセス制御ブロックのデータ構造内に管理されているエントリー(ファイルアクセス管理簿とも呼称する)として取得要求の対象とされているファイルに対応するコピーファイル26のファイル制御ブロックが登録されているか否かを判定する。すでにエントリーとして対応するファイル制御ブロックが登録されている場合には、そのエントリーのエントリー番号をファイル記述子として、取得要求元のプロセスに返送する。
【0055】
一方、未登録の場合、取得要求の対象とされているファイルに対応するコピーファイル26のファイル制御ブロックをOS50から取得し、そのファイル制御ブロックをプロセス制御ブロックのデータ構造により管理されている何れかのエントリーに登録する。さらに、取得要求において指定されたオープンモードをそのエントリーに設定する。例えば、更新処理におけるファイル記述子の取得要求では、書き込みや追加書き込みなどの更新処理を示すオープンモードが設定される。参照処理におけるファイル記述子の取得要求では、読み取り専用などの参照処理を示すオープンモードが設定される。そして、ファイル制御ブロックを登録したエントリーのエントリー番号をファイル記述子として、取得要求元のプロセスに返送する。S15により通知を受けたプロセスは、取得したファイル記述子を用いてファイル操作の実行要求をOSへ要求した場合、第1ワーク領域22aのコピーファイル26へアクセスすることになる。
【0056】
CPU11は、所定のタイミングとなったか否かを判定する(S6)。ここで所定のタイミングとは、記憶装置20へのアクセス要求を受け付ける頻度(所定時間単位におけるアクセス要求を受け付ける回数)が所定値未満となった場合、又は、OS50等の起動開始時刻から所定時間が経過した場合などであってもよい。また、所定のプログラム(例えば、ログイン画面の表示プログラム、又はログイン後に自動的に起動されるプログラム)のロード要求をCPU11が受け付けた場合、又は、ロード要求を受け付けてから所定時間が経過した場合であってもよい。所定のタイミングとなった場合(S6:YES)、CPU11は、事前コピー処理を実行する(S7)。所定のタイミングとなっていない場合(S6:NO)、CPU11は、S8の処理に移行する。
【0057】
図8は、事前コピー処理を示すフローチャートである。
【0058】
事前コピー処理では、CPU11は、アクセスファイル管理テーブル13bがRAM13に記憶されているか否かを判定する(S21)。換言すれば、CPU11は、ワーク領域コピー処理で保護対象のオリジナルファイル25がワーク領域22へコピーされたか否かを判定する。アクセスファイル管理テーブル13bがRAM13へ記憶されていない場合(S21:NO)、CPU11は事前コピー処理を終了し、図6のS8へ処理を移す。
【0059】
アクセスファイル管理テーブル13bがRAM13へ記憶されている場合(S21:YES)、CPU11は、アクセスファイル管理テーブル13bにオリジナルファイル25が複数格納されているか否かを判定する(S22)。オリジナルファイル25が複数格納されていない場合(S22:NO)、CPU11は、アクセスファイル管理テーブル13bに格納されたオリジナルファイル25のファイルサイズがワーク領域22の空き領域サイズ未満であるか否かを判定する(S24)。ファイルサイズが空き領域サイズ未満である場合(S24:YES)、CPU11は、そのオリジナルファイル25を事前コピー領域23へコピーする(S25)。一方、ファイルサイズが空き領域サイズ未満でない場合(S24:NO)、CPU11は、事前コピー領域23へのコピーを行うことなく事前コピー処理を終了し、図6のS8へ処理を移す。
【0060】
オリジナルファイル25が複数格納されている場合(S22:YES)、CPU11は、事前コピー領域23へコピーするオリジナルファイル25を抽出する(S23)。例えば、ファイルサイズが所定値(第一の閾値)を超えるオリジナルファイル25は、コピー対象から除外するようにしてもよい。この場合、ファイルサイズが著しく大きいファイルにより事前コピー領域23が独占されることを防止することができる。また、ファイルサイズが所定値(第二の閾値)未満のオリジナルファイル25は、コピー対象から除外するようにしてもよい。ファイルサイズが小さい場合、そのオリジナルファイル25をワーク領域22へコピーしてもコピー処理に要する時間が無視できる程度である。従って、アクセスファイル管理テーブル13bの全てのオリジナルファイル25を事前コピー領域23へコピーすることができない場合、ファイルサイズが大きく、コピー処理の時間が無視できないオリジナルファイル25を優先的に事前コピー領域23へコピーすることができる。なお、上述の第一の閾値と第二の閾値とは、異なる値に設定しても良いし、同じ値に設定しても良い。また、上述の第一の閾値を用いた制御と第二の閾値を用いた制御とは、いずれか一方を実装しても良いし、両方の制御を実装しても良い。両方の制御を実装する場合、第一の閾値は第二の閾値よりも大きい値を設定することが望ましい。この場合、第一の閾値以下であり第二の閾値以上のファイルサイズを有するファイルが、事前コピー処理の対象となり得る。
【0061】
なおオリジナルファイル25が複数格納されている場合、アクセスファイル管理テーブル13bの全てのオリジナルファイル25を事前コピー領域23へコピーするようにしてもよい。また、ファイルサイズの小さいオリジナルファイル25を優先して事前コピー領域23へコピーしてもよい。これにより、事前コピー処理の実行のために確保できる時間が確定的でない状況下において、事前コピー領域23に格納されるファイル数を増やすことができる。さらにCPU11は、ファイルサイズの降順で、ファイルサイズの大きいファイルを優先してコピー処理の対象としてもよい。これにより、事前コピー処理の実行のために確保できる時間が確定的でない状況下において、オリジナルファイル25のコピー処理に要する時間が長いものから優先的に事前コピー領域23へ格納することができる。
【0062】
次にCPU11は、抽出したオリジナルファイル25を事前コピー領域23へコピーする(S25)。このとき、CPU11は、第1及び第2事前コピー領域23a,23bの何れにも事前コピーファイル27が記憶されていない場合には、第1事前コピー領域23aへコピーする。また第1及び第2事前コピー領域23a,23bの何れかに事前コピーファイル27が記憶されている場合には、CPU11は、他方の領域にコピーする。その後、CPU11は、事前コピー領域23へのコピー結果を、記憶装置20に記憶されている事前コピー管理テーブル24へ記録する(S26)。このとき、CPU11は、記憶装置20に事前コピー管理テーブル24が記憶されていない場合には、事前コピー管理テーブル24を生成し、記憶装置20へ記憶する。その後CPU11は、事前コピー処理を終了し、図6のS8へ処理を移す。
【0063】
S6で所定のタイミングとなっていない場合(S6:NO)、又はS7の事前コピー処理の終了後、CPU11は、OS50の再起動を行うか否かを判定する(S8)。再起動を行う場合(S8:YES)、CPU11は再起動処理を行い、処理をS1に戻す。再起動を行わない場合(S8:NO)、CPU11は、本処理を終了するか、すなわちOS50を終了するか否かを判定する(S9)。終了しない場合(S9:NO)、CPU11は処理をS5に戻す。なお、処理がS5に戻され、ワーク領域ファイル処理が繰り返し実行された場合、図7のS18において事前コピーファイル27が事前コピー領域23からワーク領域22へ移動されているときには、S18は省略される。終了する場合(S9:YES)、CPU11は、OS50の終了処理を行い、本処理を終了する。
【0064】
以上説明したように、本実施の形態では、保護対象のオリジナルファイル25に対する更新処理におけるファイル記述子の取得要求の発行を検知した場合、そのオリジナルファイル25の内容に基づいてワーク領域22へそのコピーファイル26を生成する。なお、オリジナルファイル25への参照操作の場合はオリジナルファイル25を直接参照するファイル記述子をアプリケーションに返すことで、直接参照を許容する。また、新規作成操作によるアクセスにおいては、ワーク領域22に新規ファイルとなるデータファイルを構成し、そのファイル記述子を返すことで、オリジナル記憶領域21にはファイル生成の痕跡を残さないようにすることもできる。
【0065】
また、既にファイル更新処理が行われワーク領域22にコピーファイル26が生成されたファイルへの参照アクセスは、作成済みのコピーファイル26へのファイル記述子を返すことにより、変更されたファイルへの継続した操作を実現することもできる。この場合、本実施の形態に係る制御プログラムによる処理において、ファイルの参照処理におけるファイル記述子の取得要求も検知対象とし、その検知した取得要求により指定されるファイルに対応付けられたバックアップファイルをファイル名変換テーブル13aから特定すればよい。
【0066】
本実施の形態に係る情報処理装置は、コピーファイル26に対応したファイル記述子を取得要求を発行したプロセスに取得させ、その取得したファイル記述子を用いたファイル操作の要求を実行させる。これにより、オリジナルファイル25に対しては変更されることがなく、また、ユーザによってアクセスもされないため、オリジナルファイル25の破損などのおそれを低減できる。そして、ワーク領域22のコピーファイル26を消去することにより、オリジナルファイル25を復元した状態を瞬時に実現することができる。
【0067】
またオリジナルファイル25を事前コピーしておき、OS50の再起動後には、事前コピーした事前コピーファイル27をワーク領域22へ移動させる。これにより、オリジナル記憶領域21からワーク領域22へオリジナルファイル25をコピーする場合との対比において、処理時間を短縮させることができる。
【0068】
以上、本発明の実施の形態について、具体的に説明したが、各構成及び動作等は適宜変更可能であって、上述の実施の形態に限定されることはない。
【0069】
例えば、上述の実施の形態では、事前コピー領域23へ事前コピーした事前コピーファイル27をワーク領域22へ移動させる構成としているが、事前コピー領域23の役割と、ワーク領域22の役割とを交互に切り替える構成としてもよい。すなわち、例えばOS50を再起動した場合、事前コピー領域23をワーク領域22として扱い、事前コピー領域23の事前コピーファイル27に対してアクセスし、ワーク領域22へオリジナルファイル25を事前コピーするようにしてもよい。
【0070】
また各領域21,22,23は、媒体上に設定された物理的な区画(例えばパーティション又はドライブ等)、ファイルシステム上に階層的に設定された論理的な区画(例えばフォルダ)を用いて実装すればよい。さらにデータファイルは、記憶する各領域21,22,23によって、ファイル名を変更するようにしてもよい。例えば、オリジナルファイル25のファイル名の末尾に識別子を追加、又はオリジナルファイル25のファイル名の末尾に存する拡張子と置換して、コピーファイル26及び事前コピーファイル27を識別するようにしてもよい。また、拡張子は各ファイル毎に異なっていてもよい。例えば、ワーク領域22のコピーファイル26を「.tmp」とし、事前コピー領域23の事前コピーファイル27を「.pre」としてもよい。この場合には、各種ファイルを同一の領域に格納することができる。
【0071】
また、上述の実施の形態では、CPU11がROM12に記憶された制御プログラム12aを実行するものとして説明したが、CPU11がCompact Disk-ROM(CD−ROM)等の記録媒体から制御プログラムを読み取って、上述の処理を行うようにしてもよい。
【符号の説明】
【0072】
1 情報処理装置
10 演算装置
20 記憶装置
21 オリジナル記憶領域
22 ワーク領域
23 事前コピー領域
25 オリジナルファイル
26 コピーファイル
27 事前コピーファイル
【特許請求の範囲】
【請求項1】
プロセスから所望のファイルに対応するファイル記述子の取得を要求する取得要求を受け付ける取得要求受付部と、
受け付けた取得要求により指定されるファイルが保護対象か否かを判定する判定部と、
受け付けた取得要求により指定されるファイルが保護対象であると判定された場合、前記ファイルを複製した内容に基づいて作業用ファイルを生成する作業用ファイル生成部と、
生成した作業用ファイルのファイル記述子を取得する取得部と、
該取得部により取得したファイル記述子を、受け付けた取得要求により指定されるファイルのファイル記述子として、前記取得要求元に応答する取得要求応答部と
を備える情報処理装置。
【請求項2】
作業用ファイルを生成した場合に、生成した作業用ファイルと当該作業用ファイルの基となったファイルとを関連付けるファイル変換情報を記憶部に登録するファイル変換情報登録部
をさらに備え、
前記作業用ファイル生成部は、
受け付けた取得要求により指定されるファイルに関連付けられた前記ファイル変換情報が登録されている場合、当該取得要求の受け付けに伴う前記作業用ファイルの生成処理を省略し、
前記取得部は、
受け付けた取得要求により指定されるファイルに関連付けられたファイル変換情報が登録されている場合、当該ファイル変換情報により示される前記作業用ファイルのファイル記述子を取得するようにしてある
請求項1に記載の情報処理装置。
【請求項3】
自装置について起動又は終了の少なくとも何れかを実行させる度に、生成した作業用ファイルを消去する消去部
をさらに備える請求項1又は2に記載の情報処理装置。
【請求項4】
前記判定部が保護対象であると判定したファイルを複製し、複製した内容に基づいて前記作業用ファイルとは別のファイルである事前ファイルを生成する事前ファイル生成部と、
前記事前ファイルと当該事前ファイルの基となったファイルとを関連付ける事前ファイル情報を記憶部に登録する事前ファイル情報登録部と
をさらに備え、
前記作業用ファイル生成部は、
受け付けた取得要求により指定されるファイルに関連付けられた前記事前ファイルが登録されている場合、当該取得要求の受付に伴う前記作業用ファイルの生成処理を省略し、
前記取得部は、
受け付けた取得要求により指定されるファイルに関連付けられた前記事前ファイル情報が登録されている場合、当該事前ファイル情報により示される前記事前ファイルのファイル記述子を取得するようにしてある
請求項1から3の何れか一つに記載の情報処理装置。
【請求項5】
前記事前ファイル生成部は、
前記取得要求受付部が前記取得要求を受け付ける頻度が所定値未満となったことに応じて、前記事前ファイルの生成を実行する第1の実行契機部と、
自装置が起動を開始してからの経過時間が所定値以上となったことに応じて前記事前ファイルの生成を実行する第2の実行契機部と、
前記取得要求受付部が受け付けた取得要求により指定されるファイルが予め設定したファイルであることを検出したことに応じて、前記事前ファイルの生成を実行する第3の実行契機部と、
前記取得要求受付部において受け付けた前記取得要求により指定されるファイルが予め設定したファイルであることを検出した時刻からの経過時間が所定値以上となったことに応じて前記事前ファイルの生成を実行する第4の実行契機部と
の少なくともいずれか一つを有する
請求項4に記載の情報処理装置。
【請求項6】
前記取得要求を受け付けた場合に、前記受け付けた取得要求により指定されるファイルに関する情報であるアクセス情報を記憶部に登録するアクセス情報登録部
をさらに備え、
前記事前ファイル生成部は、
前記記憶部に登録されたアクセス情報により示されるファイルのファイルサイズを参照し、そのファイルサイズが第一の閾値を超えるファイルを前記事前ファイルの生成対象から除外する第1の生成対象制御部と、
前記記憶部に登録されたアクセス情報により示されるファイルのファイルサイズを参照し、そのファイルサイズが第二の閾値未満のファイルを前記事前ファイルの生成対象から除外する第2の生成対象制御部と、
前記記憶部に登録されたアクセス情報により示されるファイルのファイルサイズを参照し、そのファイルサイズが他の前記ファイルのファイルサイズより小さいファイルを優先的に前記事前ファイルの生成対象とする第3の生成対象制御部と、
前記記憶部に登録されたアクセス情報により示されるファイルのファイルサイズを参照し、そのファイルサイズが他の前記ファイルのファイルサイズより大きいファイルを優先的に前記事前ファイルの生成対象とする第4の生成対象制御部と
の少なくともいずれか一つを有する
請求項4又は5に記載の情報処理装置。
【請求項7】
プロセスから所望のファイルに対応するファイル記述子の取得を要求する取得要求を受け付けることと、
受け付けた取得要求により指定されるファイルが保護対象か否かを判定することと、
受け付けた取得要求により指定されるファイルが保護対象であると判定された場合、そのファイルを複製した内容に基づいて作業用ファイルを生成することと、
生成した作業用ファイルのファイル記述子を取得することと、
取得したファイル記述子を、受け付けた取得要求により指定されるファイルのファイル記述子として、前記取得要求元に応答することと
をコンピュータに実行させるコンピュータプログラム。
【請求項1】
プロセスから所望のファイルに対応するファイル記述子の取得を要求する取得要求を受け付ける取得要求受付部と、
受け付けた取得要求により指定されるファイルが保護対象か否かを判定する判定部と、
受け付けた取得要求により指定されるファイルが保護対象であると判定された場合、前記ファイルを複製した内容に基づいて作業用ファイルを生成する作業用ファイル生成部と、
生成した作業用ファイルのファイル記述子を取得する取得部と、
該取得部により取得したファイル記述子を、受け付けた取得要求により指定されるファイルのファイル記述子として、前記取得要求元に応答する取得要求応答部と
を備える情報処理装置。
【請求項2】
作業用ファイルを生成した場合に、生成した作業用ファイルと当該作業用ファイルの基となったファイルとを関連付けるファイル変換情報を記憶部に登録するファイル変換情報登録部
をさらに備え、
前記作業用ファイル生成部は、
受け付けた取得要求により指定されるファイルに関連付けられた前記ファイル変換情報が登録されている場合、当該取得要求の受け付けに伴う前記作業用ファイルの生成処理を省略し、
前記取得部は、
受け付けた取得要求により指定されるファイルに関連付けられたファイル変換情報が登録されている場合、当該ファイル変換情報により示される前記作業用ファイルのファイル記述子を取得するようにしてある
請求項1に記載の情報処理装置。
【請求項3】
自装置について起動又は終了の少なくとも何れかを実行させる度に、生成した作業用ファイルを消去する消去部
をさらに備える請求項1又は2に記載の情報処理装置。
【請求項4】
前記判定部が保護対象であると判定したファイルを複製し、複製した内容に基づいて前記作業用ファイルとは別のファイルである事前ファイルを生成する事前ファイル生成部と、
前記事前ファイルと当該事前ファイルの基となったファイルとを関連付ける事前ファイル情報を記憶部に登録する事前ファイル情報登録部と
をさらに備え、
前記作業用ファイル生成部は、
受け付けた取得要求により指定されるファイルに関連付けられた前記事前ファイルが登録されている場合、当該取得要求の受付に伴う前記作業用ファイルの生成処理を省略し、
前記取得部は、
受け付けた取得要求により指定されるファイルに関連付けられた前記事前ファイル情報が登録されている場合、当該事前ファイル情報により示される前記事前ファイルのファイル記述子を取得するようにしてある
請求項1から3の何れか一つに記載の情報処理装置。
【請求項5】
前記事前ファイル生成部は、
前記取得要求受付部が前記取得要求を受け付ける頻度が所定値未満となったことに応じて、前記事前ファイルの生成を実行する第1の実行契機部と、
自装置が起動を開始してからの経過時間が所定値以上となったことに応じて前記事前ファイルの生成を実行する第2の実行契機部と、
前記取得要求受付部が受け付けた取得要求により指定されるファイルが予め設定したファイルであることを検出したことに応じて、前記事前ファイルの生成を実行する第3の実行契機部と、
前記取得要求受付部において受け付けた前記取得要求により指定されるファイルが予め設定したファイルであることを検出した時刻からの経過時間が所定値以上となったことに応じて前記事前ファイルの生成を実行する第4の実行契機部と
の少なくともいずれか一つを有する
請求項4に記載の情報処理装置。
【請求項6】
前記取得要求を受け付けた場合に、前記受け付けた取得要求により指定されるファイルに関する情報であるアクセス情報を記憶部に登録するアクセス情報登録部
をさらに備え、
前記事前ファイル生成部は、
前記記憶部に登録されたアクセス情報により示されるファイルのファイルサイズを参照し、そのファイルサイズが第一の閾値を超えるファイルを前記事前ファイルの生成対象から除外する第1の生成対象制御部と、
前記記憶部に登録されたアクセス情報により示されるファイルのファイルサイズを参照し、そのファイルサイズが第二の閾値未満のファイルを前記事前ファイルの生成対象から除外する第2の生成対象制御部と、
前記記憶部に登録されたアクセス情報により示されるファイルのファイルサイズを参照し、そのファイルサイズが他の前記ファイルのファイルサイズより小さいファイルを優先的に前記事前ファイルの生成対象とする第3の生成対象制御部と、
前記記憶部に登録されたアクセス情報により示されるファイルのファイルサイズを参照し、そのファイルサイズが他の前記ファイルのファイルサイズより大きいファイルを優先的に前記事前ファイルの生成対象とする第4の生成対象制御部と
の少なくともいずれか一つを有する
請求項4又は5に記載の情報処理装置。
【請求項7】
プロセスから所望のファイルに対応するファイル記述子の取得を要求する取得要求を受け付けることと、
受け付けた取得要求により指定されるファイルが保護対象か否かを判定することと、
受け付けた取得要求により指定されるファイルが保護対象であると判定された場合、そのファイルを複製した内容に基づいて作業用ファイルを生成することと、
生成した作業用ファイルのファイル記述子を取得することと、
取得したファイル記述子を、受け付けた取得要求により指定されるファイルのファイル記述子として、前記取得要求元に応答することと
をコンピュータに実行させるコンピュータプログラム。
【図1】
【図2】
【図3A】
【図3B】
【図3C】
【図4A】
【図4B】
【図4C】
【図5A】
【図5B】
【図6】
【図7】
【図8】
【図2】
【図3A】
【図3B】
【図3C】
【図4A】
【図4B】
【図4C】
【図5A】
【図5B】
【図6】
【図7】
【図8】
【公開番号】特開2011−113397(P2011−113397A)
【公開日】平成23年6月9日(2011.6.9)
【国際特許分類】
【出願番号】特願2009−270559(P2009−270559)
【出願日】平成21年11月27日(2009.11.27)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成23年6月9日(2011.6.9)
【国際特許分類】
【出願日】平成21年11月27日(2009.11.27)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]