(57)【特許請求の範囲】
【請求項１】
周期的にパルスを発生する素子からのパルス信号を基に生成され且つ所定間隔でオンとなるリセット信号と、特定のデータの更新に応じてオンとなるセット信号とが入力されるＲＳラッチを有し、前記ＲＳラッチは、前記セット信号がオンであり且つ前記リセット信号がオフの時に更新情報の付加を示す信号を出力し、前記セット信号及び前記リセット信号の双方がオフのとき前記更新情報の維持を示す信号を出力し、前記リセット信号がオンのときに前記更新情報の削除を示す信号を出力し、前記ＲＳラッチが前記更新情報の付加を示す信号を出力した場合、前記更新情報を前記特定のデータに付加し且つ所定のプログラムによる前記更新情報の削除を抑制し、前記ＲＳラッチが前記更新情報の削除を示す信号を出力した場合、前記特定のデータに付加された前記更新情報を削除し、前記ＲＳラッチが前記更新情報の維持を示す信号を出力した場合、前記特定のデータに対する前記更新情報の状態を維持する更新情報管理部と、
前記更新情報が付加されている場合に、前記特定のデータに対して所定の処理を行う処理実行部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記処理実行部は、前記特定のデータに対してウイルス対策処理を行うことを特徴とする請求項１に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理装置制御方法に関する。
【背景技術】
【０００２】
一般的にプログラムは、ＯＳ（Operating  System）のファイルシステムを経由してファイルにアクセスする。以後、ファイルシステムを利用するプログラムを、「利用プログラム」と呼ぶ。すなわち、利用プログラムがファイルを読み書きする動作においては、ファイルシステム、デバイスドライバ、ハードウェアであるストレージの順又はその逆で制御やデータが伝送される。ファイルシステムは、ストレージに格納されたデータやその関連情報をファイルという扱いやすい形で利用プログラムに見せるＯＳの基本的な機能を有する。
【０００３】
ファイルシステムは、ファイルを管理するためにファイルの状態を表す各種情報に加えて属性情報を管理している。各種情報には、例えばファイル名、アクセス権、ファイルサイズ及び更新日時が含まれる。また、属性情報には、例えば読み取り専用か否か、アーカイブ要因か否か、システムファイルか否か、隠しファイルか否かを示す情報が含まれる。
【０００４】
例えば、ファイルがアーカイブ要因か否かを表すアーカイブ属性のフラグは、ファイルの作成時及び更新時にファイルシステムによって自動的にフラグをオンにされ、そのファイルはアーカイブ属性を有することが示される。また、利用プログラムは、ファイルシステムの専用コマンドを呼び出してアーカイブ属性をオフにすることができる。
【０００５】
この属性を使用する利用プログラムにバックアップソフトがある。バックアップソフトにおける増分バックアップや差分バックアップは、アーカイブ属性がオンのファイルだけをコピーし、コピー後にコピーされたファイルのバックアップ属性をオフにするモードである。このモードにより、全てのファイルをコピーする通常のバックアップと異なり、更新のあったファイルのみをコピーすることができ、バックアップ時間を短縮することができる。
【０００６】
また、近年コンピュータの安全性の確保は重要な課題であり、そのためにウイルス対策ソフトの導入は欠かせないものとなっている。このウイルス対策ソフトも、ファイルから読み取ったデータをウイルスパターンと比較するスキャン処理を行うことでコンピュータに対する脅威を検出する利用プログラムである。
【０００７】
なお、ファイルに更新日時という属性を設け、ファイルシステムがプログラムからレコードの読込要求に対してデータとともに更新日時エリアの内容も取得し、読込日時と更新日時との比較により排他制御を行う従来技術がある。また、ウイルス対策として、新たに更新されたファイルを示す更新ファイルリストを作成し、更新ファイルリストに示されたファイルに対してだけウイルスチェックを行うことで、短時間で検疫を終わらせる従来技術がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平１１−０６５９１０号公報
【特許文献２】特開２０１１−１７０５０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、最近ではハードディスクなどで構成されるストレージの容量は増大を続けており、スキャン処理が完了するまでに数時間以上かかることも珍しくない。この点、スキャン処理は、コンピュータの処理能力の一部を使用するため、本来のコンピュータの使用目的としての業務や操作の処理が延伸してしまう。そのため、全ファイルをスキャンする完全スキャンを行った場合、ストレージの容量が大きいシステムでは、数時間以上の間、本来実行したい利用プログラムの処理速度が遅くなるおそれがある。
【００１０】
そこで、ファイルの内容が変更されたことを示す更新属性をファイル毎に付与し、ウイルス対策ソフトに更新属性がオンであるファイルのみスキャンさせる方法が考えられる。この方法を用いれば、スキャン処理時間を短くすることができる。例えば、更新属性として、アーカイブ属性を用いることもできる。
【００１１】
このようにウイルス対策ソフトがファイルの更新情報を利用して効率的に処理を行う方法に対して、ファイルシステムの構造を知るウイルスが、スキャンを逃れるためにファイルの更新情報を改ざんするおそれがある。具体的には、ウイルスがＯＳの特権モードを奪いコンピュータを乗っ取った場合、更新属性を変更することができてしまい、ウイルスは自己が感染したファイルをウイルス対策ソフトが行うスキャンの対象外としてしまうことが考えられる。
【００１２】
また、別の問題としてデータのバックアップツールと共存できないことが挙げられる。更新属性としてアーカイブ属性を使用した場合、バックアップ実行により属性がオフされてしまうので、ウイルス対策ソフトは、バックアップ実行前にスキャンを終わらせなければ、更新ファイルを漏れなくスキャンすることが困難になる。これらのように、アーカイブ属性などのファイル属性を用いて更新のあったファイルのみをスキャンする技術では、信頼性が低く有効なスキャンを行うことが困難である。
【００１３】
また、更新ファイルリストに示されたファイルに対してだけウイルスチェックを行う従来技術を用いても、ウイルスが更新ファイルリスト自体を書き換えることが考えられ、ウイルスがスキャンを逃れるおそれがある。
【００１４】
開示の技術は、上記に鑑みてなされたものであって、更新されたファイルに対して確実に処理を実行する情報処理装置及び情報処理装置制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本願の開示する情報処理装置は、一つの態様において、更新情報管理部は、周期的にパルスを発生する素子からのパルス信号を基に生成され且つ所定間隔でオンとなるリセット信号と、特定データの更新に応じてオンとなるセット信号とが入力されるＲＳラッチを有し、前記ＲＳラッチは、前記セット信号がオンであり且つ前記リセット信号がオフの時に更新情報の付加を示す信号を出力し、前記セット信号及び前記リセット信号の双方がオフのとき前記更新情報の維持を示す信号を出力し、前記リセット信号がオンのときに前記更新情報の削除を示す信号を出力し、前記ＲＳラッチが前記更新情報の付加を示す信号を出力した場合、前記更新情報を前記特定のデータに付加し且つ所定のプログラムによる前記更新情報の削除を抑制し、前記ＲＳラッチが前記更新情報の削除を示す信号を出力した場合、前記特定のデータに付加された前記更新情報を削除し、前記ＲＳラッチが前記更新情報の維持を示す信号を出力した場合、前記特定のデータに対する前記更新情報の状態を維持する。処理実行部は、前記更新情報が付加されている場合に、前記特定のデータに対して所定の処理を行う。
【発明の効果】
【００１６】
本願の開示する情報処理装置及び情報処理装置制御方法の一つの態様によれば、更新されたファイルに対して確実に処理を実行することができるという効果を奏する。
【図面の簡単な説明】
【００１７】
【図１】図１は、情報処理装置のハードウェア構成図である。
【図２】図２は、情報処理装置で動作するソフトウェア及びファイルの状態を表す図である。
【図３】図３は、属性情報の一例を表す図である。
【図４】図４は、情報処理装置のブロック図である。
【図５】図５は、差分スキャンの概要を説明するための図である。
【図６】図６は、リセット指示部の模式的な回路図である。
【図７】図７は、付加指示部、テーブル管理部及び更新検出テーブルの模式的な回路図である。
【図８】図８は、付加指示部の入出力を説明するための図である。
【図９】図９は、ＳＲラッチの真理値表の図である。
【図１０】図１０は、更新検出テーブルとスキャンとの関係を表すタイミングチャートである。
【図１１Ａ】図１１Ａは、更新属性フラグのオフのタイミングとスキャンタイミングが近接している場合のタイミングチャートである。
【図１１Ｂ】図１１Ｂは、更新属性フラグのオフのタイミングとスキャンタイミングが十分離れている場合のタイミングチャートである。
【図１２】図１２は、ファイル管理の処理のフローチャートである。
【図１３】図１３は、ファイル更新時処理のフローチャートである。
【図１４】図１４は、属性読取処理のフローチャートである。
【図１５】図１５は、更新情報管理処理のフローチャートである。
【図１６】図１６は、属性更新処理のフローチャートである。
【図１７】図１７は、更新情報管理部による更新属性フラグの設定処理のフローチャートである。
【図１８】図１８は、ＳＲラッチにおける出力決定処理のフローチャートである。
【図１９】図１９は、実施例１に係る情報処理装置を用いた場合のウイルス検出の効果を説明するための図である。
【図２０】図２０は、実施例２に係るクロック発生部の模式的な回路図である。
【発明を実施するための形態】
【００１８】
以下に、本願の開示する情報処理装置及び情報処理装置制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置及び情報処理装置制御方法が限定されるものではない。
【実施例１】
【００１９】
図１は、情報処理装置のハードウェア構成図である。本実施例に係る情報処理装置１は、ＣＰＵ（Central  Processing  Unit）２、メモリ３、更新検出テーブル回路４、インタフェース５、ストレージ６、アドレスバス７及びデータバス８を有する。
【００２０】
メモリ３及び更新検出テーブル回路４は、アドレスバス７及びデータバス８を介してＣＰＵ２に接続している。また、ストレージ６は、インタフェース５、アドレスバス７及びデータバス８を介してＣＰＵ２に接続している。
【００２１】
インタフェース５は、アドレスバス７及びデータバス８とストレージ６とを接続するためのインタフェースである。
【００２２】
ストレージ６は、例えばハードディスクなどの副記憶装置である。ストレージ６には、ＯＳ（Operating  System）が格納される。また、ストレージ６には、ＯＳが提供するファイルシステムを利用する利用プログラムを含む各種プログラムが格納されている。ストレージ６には、利用プログラムとして、例えば、ウイルス検出ソフトが格納さている。また、ストレージ６には、ＣＰＵ２により実行されたＯＳ及び利用プログラムを含む各種プログラムによりデータの読み出し及び書き込みが行われる。例えば、ウイルス検出ソフトは、ストレージ６に格納されたデータを読み出し、ウイルスチェックを行う。
【００２３】
メモリ３は、例えばＤＲＡＭ（Dynamic  Random  Access  Memory）などの主記憶装置である。メモリ３には、ＣＰＵ２により各種プログラムが展開され、プロセスが生成される。
【００２４】
ＣＰＵ２は、ストレージ６からＯＳを読み出しメモリ３に展開して実行する。ＣＰＵ２は、ＯＳを実行することでデバイスドライバ及びファイルシステムを提供する。また、ＣＰＵ２は、ストレージ６から利用プログラムを含む各種プログラムを読み出し実行する。
【００２５】
ＣＰＵ２は、アドレスバス７を用いて利用するアドレスの送受信をメモリ３、更新検出テーブル回路４及びストレージ６との間で行う。また、ＣＰＵ２は、データバス８を用いてファイルの送受信をメモリ３、更新検出テーブル回路４及びストレージ６との間で行う。例えば、ＣＰＵ２は、メモリ３、更新検出テーブル回路４及びストレージ６に対して、アドレスバス７で送信したアドレスにデータバス８で送信してファイルのデータを書き込ませる。また、ＣＰＵ２は、アドレスバス７で送信したアドレスに格納されるファイルをメモリ３、更新検出テーブル回路４及びストレージ６から読み出す。また、ＣＰＵ２は、ストレージ６のファイルを更新した場合、更新検出テーブル回路４におけるファイルが更新されたか否かを表す更新属性のフラグをオンにする。更新属性のフラグがオンになっているファイルは、更新があったファイルとして認識される。このファイルが、「特定のデータ」の一例にあたる。
【００２６】
更新検出テーブル回路４は、ハードウェアで構成されるテーブルである。このように、更新検出テーブル回路４は、例えば、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read  Only  Memory）のようなメモリ素子である。
【００２７】
更新検出テーブル回路４は、ストレージ６に格納されたファイルが更新されたか否か、すなわち更新属性を有するか否かを表す更新情報を格納するテーブルである。具体的には、更新検出テーブル回路４は、各ファイルに対応する更新属性のフラグを有する。以下では、更新検出テーブル回路４における更新属性のフラグを、「更新属性フラグ」という。
【００２８】
更新検出テーブル回路４の更新属性フラグがオンであれば、そのファイルが更新されたことを表す。逆に、更新検出テーブル回路４の更新属性フラグがオフであれば、そのファイルに更新が無いことを表す。例えば、ＣＰＵ２によって実行されるウイルス対策ソフトは、更新検出テーブル回路４に格納された更新情報を取得し、更新されたファイルをスキャンしてウイルスの検出を行う。
【００２９】
更新検出テーブル回路４は、ストレージ６のファイルの更新があった場合に、ＣＰＵ２からの指示を受け更新されたファイルに対応する更新属性フラグをオンにする。また、更新検出テーブル回路４では、更新属性フラグがオンになった後に所定の時間が経過した場合、ＯＳから独立して更新属性フラグがオフになる。この更新検出テーブル回路４における更新属性フラグのオンオフは、後で詳細に説明する。
【００３０】
図２は、情報処理装置で動作するソフトウェア及びファイルの状態を表す図である。ストレージ６には、ファイルテーブル６１及びファイルのデータ６２が格納される。ファイルテーブル６１の情報及びデータ６２の組み合わせが１つのファイルを指す。
【００３１】
ファイルテーブル６１には、例えば、ファイル名及びデータ位置が格納される。また、ファイルテーブル６１には、属性情報６１１が格納される。属性情報６１１は、対応するファイルの各種属性を表す情報である。具体的には、属性情報６１１は、図３に示すように各属性のフラグが割り当てられたビットの値によりファイルがそれぞれの属性を有するか否かを表す。図３は、属性情報の一例を表す図である。
【００３２】
図３に示すように、例えば、属性情報６１１は、読取専用か否かを表すフラグであるＲｏ（Read  Only）のフラグ、隠しファイルであるか否かを表すＨｄ（Hidden）のフラグ及びアーカイブであるか否かを表すＡｃ（Archive）のフラグを有する。また、本実施例では、更新されたファイルであるか否かを表す更新情報に対応するビットとして、ビット６１２が確保されている。ビット６１２には、属性情報６１１の空きビットを用いる。たとえば、属性情報６１１が８ビットの場合、読取専用属性には、ビット位置を１６進数で表すと０ｘ８０が割り当てられている。また、隠しファイル属性には、０ｘ２０が割り当てられている。また、アーカイブ属性には、０ｘ０２が割り当てられている。そして、それ以外の場所は空きビットである。そこで、本実施例では、更新属性にあたるビット６１２として、０ｘ０１が割り当てられている。また、属性情報６１１のそれ以外の空きビットには、０がセットされる。
【００３３】
例えば、Ｒｏのフラグがオンであれば、ファイルは読取専用属性を有する。また、Ｈｄのフラグがオンであれば、ファイルは隠しファイル属性を有する。また、Ａｃのフラグがオンであれば、ファイルはアーカイブ属性を有する。更新属性のフラグについては、ビット６１２はリザーブされているだけであり、属性情報６１１上でのオンオフが禁止されており、フラグの値は属性情報６１１に格納されない。
【００３４】
また、ファイルテーブル６１に格納されたファイル名に対応するデータ６２は、ファイルテーブル６１のデータ位置で示される位置に格納される。
【００３５】
更新検出テーブル回路４は、各ファイルに対応する更新属性フラグ４１を有する。本実施例では、ファイルテーブル６１と同じエントリ順序を有する。例えば、図２のようにファイルテーブル６１のエントリが並んでいる場合、更新検出テーブル回路４の更新属性フラグ４１のエントリは上から順に同じエントリとして点線で表されるように１対１で対応する。すなわち、ファイルテーブル６１の上からｎ番目のエントリ番号をｎ番とすると、更新検出テーブル回路４の更新属性フラグ４１のｎ番目のエントリ番号がｎ番となる。
【００３６】
さらに、図２に示すように、情報処理装置１では、ＯＳ９２が動作し、そのＯＳ９２において、ファイルシステム９３及びデバイスドライバ９４が動作する。ここで、ＯＳ９２、ファイルシステム９３及びデバイスドライバ９４は、ＣＰＵ２によってメモリ３上に展開されプロセスを生成する。また、利用プログラム９１もメモリ３上に展開され動作する。そして、利用プログラム９１は、ファイルシステム９３及びデバイスドライバ９４を介して、ストレージ６に格納されたファイルテーブル６１のデータ位置で示されるデータ６２にアクセスする。ファイルシステム９１は、実際にはデバイスドライバ９４を介してファイルにアクセスするが、以下では説明の都合上、ファイルシステム９１が直接ファイルにアクセスするように説明する。
【００３７】
ファイルシステム９３は、特定のファイルのデータ６２を更新した場合に、その特定のファイルのファイルテーブル６１上のエントリに対応する更新検出テーブル回路４の更新属性フラグ４１のエントリをオンにする。また、ファイルシステム９３は、利用プログラム９１であるウイルス検出ソフトから属性情報６１１の取得を受ける。そして、ファイルシステム９３は、属性情報６１１を取得するとともに対応する更新属性フラグ４１の値を取得する。その後、ファイルシステム９３は、属性情報６１１のビット６１２に更新属性フラグ４１の値を格納し、利用プログラム９１であるウイルス検出ソフトに送信する。利用プログラム９１であるウイルス検出ソフトは、取得した属性情報６１１に格納された更新属性フラグ４１の値から更新されたファイルを特定し、特定したファイルについてウイルスチェックを行う。
【００３８】
また、ファイルシステム９３は、利用プログラム９１の指示を受けて、ファイル作成処理、ファイル削除処理、データ書込処理、データ読出処理、属性設定処理、属性更新処理、属性読取処理及びファイル更新時処理などを行う。この利用プログラム９１、ＯＳ９２、ファイルシステム９３及びデバイスドライバ９４を含む情報処理装置１のＣＰＵ２により実行される各種プログラムが、「所定のプログラム」の一例にあたる。
【００３９】
次に、図４を参照して、情報処理装置１が有する各機能の詳細について説明する。図４は、情報処理装置のブロック図である。
【００４０】
図４に示すように、情報処理装置１は、利用プログラム実行部１０１、データ読書処理部１０２、ファイル情報管理部１０３、属性読取部１０４及び更新情報管理部１０５を有する。データ読書処理部１０２、ファイル情報管理部１０３及び属性読取部１０４は、ファイルシステム９３により実現される。
【００４１】
利用プログラム実行部１０１は、図１のＣＰＵ２及びメモリ３により実現される。具体的には、ＣＰＵ２及びメモリ３により実行される図２の利用プログラム９１の動作によりその機能が発揮される。
【００４２】
利用プログラム実行部１０１は、ファイル作成の指示をファイル情報管理部１０３へ指示する。その後、利用プログラム実行部１０１は、エラー応答又は処理完了の応答をファイル情報管理部１０３から受ける。
【００４３】
また、利用プログラム実行部１０１は、データ書込指示をデータ読書処理部１０２及びファイル情報管理部１０３へ出力する。さらにこの場合、利用プログラム実行部１０１は、データが更新されたファイルの更新属性フラグ４１のオンをファイル情報管理部１０３へ指示する。その後、利用プログラム実行部１０１は、エラー応答又は処理完了の応答をデータ読書処理部１０２及びファイル情報管理部１０３から受ける。
【００４４】
また、利用プログラム実行部１０１は、データ読出の指示をデータ読書処理部１０２及びファイル情報管理部１０３へ出力する。その後、利用プログラム実行部１０１は、エラー応答又は読み出されたデータをデータ読書処理部１０２から受信する。
【００４５】
また、利用プログラム実行部１０１は、ファイル削除をデータ読書処理部１０２及びファイル情報管理部１０３に指示する。その後、利用プログラム実行部１０１は、データ読書処理部１０２及びファイル情報管理部１０３からエラー応答又は処理完了の応答を受ける。
【００４６】
また、利用プログラム実行部１０１は、属性設定の場合、属性を変更するファイルの情報を含む属性設定の指示をファイル情報管理部１０３へ出力する。その後、利用プログラム実行部１０１は、エラー応答又は処理完了の応答をファイル情報管理部１０３から受ける。
【００４７】
また、利用プログラム実行部１０１は、属性読取をファイル情報管理部１０３及び属性読取部１０４に指示する。その後、利用プログラム実行部１０１は、指定した属性の情報を属性読取部１０４から取得する。
【００４８】
ここで、利用プログラム実行部１０１の動作について、利用プログラム９１であるウイルス検出ソフトを実行する場合を特に説明する。利用プログラム実行部１０１は、一定期間毎に全てのファイルに対してウイルスチェックを行う完全スキャンを実行する。例えば、利用プログラム実行部１０１は、１週間に１度完全スキャンを行う。具体的には、利用プログラム実行部１０１は、全てのファイルのデータ６２の読み出しをデータ読書処理部１０２に指示する。そして、利用プログラム実行部１０１は、読み出された全てのファイルのデータ６２をスキャンしウイルスの検出を実行する。
【００４９】
また、完全スキャンに加えて、利用プログラム実行部１０１は、完全スキャンの実行頻度よりも高い頻度となる所定期間毎に更新されたファイルのみをスキャンする差分スキャンを実行する。例えば、利用プログラム実行部１０１は、２４時間ごとに差分スキャンを実行する。
【００５０】
具体的には、利用プログラム実行部１０１は、ファイルの更新属性の読み取りをファイル情報管理部１０３及び属性読取部１０４に指示する。その後、利用プログラム実行部１０１は、各ファイルの更新属性を属性読取部１０４から取得する。そして、利用プログラム実行部１０１は、各ファイルの更新属性から更新されたファイルを特定する。次に、利用プログラム実行部１０１は、特定したファイルのデータ６２の読み出しをデータ読書処理部１０２及びファイル情報管理部１０３へ指示する。その後、利用プログラム実行部１０１は、更新されたファイルのデータ６２をデータ読書処理部１０２から取得する。そして、利用プログラム実行部１０１は、更新されたファイルのデータ６２のスキャンを行いウイルスの検出を実施する。この利用プログラム実行部１０１が、「処理実行部」の一例にあたる。
【００５１】
ここで、図５を参照して、完全スキャン及び差分スキャンの概要について説明する。図５は、差分スキャンの概要を説明するための図である。状態３０１が完全スキャン時の状態を表し、状態３０２が差分スキャン時の状態を表す。図５では、ウイルス対策ソフト２００から各ファイルに延びている矢印がスキャンを行っていることを示す。
【００５２】
状態３０１に示すように、完全スキャンの場合、ウイルス対策ソフト２００は、ストレージ６に格納された全てのファイルＡ〜Ｆのデータ６２をスキャンする。ここでは、完全スキャン後、ファイルＢが削除され、ファイルＣ及びＥが更新され、ファイルＧが新たに作成された場合で説明する。状態３０２における色がついているファイルが更新されたファイルである。ウイルス対策ソフト２００は、差分スキャンの場合、更新されたファイルＣ及びＥ、並びに、新しく作成されたファイルＧのデータ６２のみをスキャンする。このように、差分スキャンでは、あらたに作成されたファイルを含む更新されたファイルのデータ６２のみがスキャン対象となるので、情報処理装置１は、完全スキャンに比べて負荷を抑えつつ短時間でスキャンを行うことができる。この差分スキャンが、「所定の処理」の一例にあたる。
【００５３】
データ読書処理部１０２は、図１のＣＰＵ２及びメモリ３により実現される。具体的には、ＣＰＵ２及びメモリ３により実行される図２のファイルシステム９３の動作によりその機能が発揮される。
【００５４】
データ読書処理部１０２は、データ書込の指示を利用プログラム実行部１０１から受ける。さらに、データ読書処理部１０２は、データ書込を行うファイルのデータ６２のデータ位置の情報をファイル情報管理部１０３から取得する。そして、データ読書処理部１０２は、ストレージ６の取得したデータ位置にあるデータ６２に対してデータ書込を行う。その後、データ読書処理部１０２は、処理が完了した場合には処理完了の応答を利用プログラム実行部１０１へ送信する。また、処理が完了せずにエラーが発生した場合、データ読書処理部１０２は、エラー応答を利用プログラム実行部１０１へ送信する。
【００５５】
また、データ読書処理部１０２は、データ読出の指示を利用プログラム実行部１０１から受ける。さらに、データ読書処理部１０２は、データ読出を行うファイルのデータ６２のデータ位置の情報をファイル情報管理部１０３から取得する。そして、データ読書処理部１０２は、指定されたファイルのデータ６２をストレージ６の取得したデータ位置から読み出す。その後、データ読書処理部１０２は、読み出したデータ６２を利用プログラム実行部１０１へ送信する。また、処理が完了せずにエラーが発生した場合、データ読書処理部１０２は、エラー応答を利用プログラム実行部１０１へ送信する。
【００５６】
また、データ読書処理部１０２は、ファイル削除の指示を利用プログラム実行部１０１から受ける。さらに、データ読書処理部１０２は、消去を行うファイルのデータ６２のデータ位置の情報をファイル情報管理部１０３から取得する。そして、データ読書処理部１０２は、ストレージ６の取得したデータ位置に格納されたデータを消去する。その後、データ読書処理部１０２は、処理が完了した場合には処理完了の応答を利用プログラム実行部１０１へ送信する。また、処理が完了せずにエラーが発生した場合、データ読書処理部１０２は、エラー応答を利用プログラム実行部１０１へ送信する。
【００５７】
ファイル情報管理部１０３は、図１のＣＰＵ２及びメモリ３により実現される。具体的には、ＣＰＵ２及びメモリ３により実行される図２のファイルシステム９３及びデバイスドライバ９４の動作によりその機能が発揮される。ファイル情報管理部１０３は、各ファイルの属性の設定及び変更を含むファイルテーブル６１の管理を行う。以下にファイル情報管理部１０３の処理の詳細について説明する。
【００５８】
ファイル情報管理部１０３は、ファイルの識別情報を含む属性設定の指示を利用プログラム実行部１０１から受ける。ただし、更新属性フラグ４１は、ファイルの更新時に自動的にオンされ、所定期間経過後自動的にオフされるものである。そのためファイル情報管理部１０３が受ける属性設定の指示の中には、更新属性フラグ４１の明示的なオンオフの指定は含まれない。
【００５９】
その後、ファイル情報管理部１０３は、ファイルテーブル６１の中から指定されたファイルの識別情報に対応するエントリ番号を特定する。そして、ファイル情報管理部１０３は、ファイルテーブル６１上の特定したエントリにおける属性情報６１１の設定を行う。具体的には、ファイル情報管理部１０３は、属性情報６１１における指定された属性のフラグのオンオフを指定された値に設定する。その後、ファイル情報管理部１０３は、設定完了の応答を利用プログラム実行部１０１に出力する。
【００６０】
また、ファイル情報管理部１０３は、ファイルの作成の指示を利用プログラム実行部１０１から受ける。次に、ファイル情報管理部１０３は、ファイルテーブル６１の中の空きエントリを特定する。そして、空きエントリがあれば、ファイル情報管理部１０３は、特定したエントリにファイルの識別子などを登録する。また、ファイル情報管理部１０３は、作成したファイルの更新属性以外の属性情報の設定を行う。さらにファイル情報管理部１０３は、新しくファイルを作成したエントリのエントリ番号、書込データの情報及びライトイネーブル（Write  Enable）信号を更新情報管理部１０５の付加指示部１５１へ出力する。ここで、書込データは、更新属性フラグ４１をオンにするデータであり、値が「１」すなわちＨｉｇｈの値を有するデータである。その後、ファイル情報管理部１０３は、設定完了の応答を利用プログラム実行部１０１に出力する。また、空きエントリが無い場合、ファイル情報管理部１０３は、エラーの応答を利用プログラム実行部１０１へ出力する。
【００６１】
また、ファイル情報管理部１０３は、データ書込の場合、ファイルの識別情報とともにデータ書込の指示を利用プログラム実行部１０１から受ける。そして、ファイル情報管理部１０３は、ファイルテーブル６１の中から取得したファイルの識別情報に対応するエントリ番号を特定する。その後、ファイル情報管理部１０３は、特定したエントリ番号を有するエントリからデータ位置を取得し、データ読書処理部１０２へ出力する。次に、ファイル情報管理部１０３は、ファイルテーブル６１の特定したエントリにおける更新日時などの情報を更新する。さらに、ファイル情報管理部１０３は、特定したエントリ番号、書込データの情報及びライトイネーブル信号を更新情報管理部１０５の付加指示部１５１へ出力する。
【００６２】
また、ファイル情報管理部１０３は、データ読出の場合、ファイルの識別情報とともにデータ読出の指示を利用プログラム実行部１０１から受ける。そして、ファイル情報管理部１０３は、ファイルテーブル６１の中から取得したファイルの識別情報に対応するエントリ番号を特定する。その後、ファイル情報管理部１０３は、特定したエントリ番号を有するエントリからデータ位置を取得し、データ読書処理部１０２へ出力する。
【００６３】
また、ファイル情報管理部１０３は、ファイル削除の場合、ファイルの識別情報とともにファイル削除の指示を利用プログラム実行部１０１から受ける。そして、ファイル情報管理部１０３は、ファイルテーブル６１の中から取得したファイルの識別情報に対応するエントリ番号を特定する。その後、ファイル情報管理部１０３は、特定したエントリ番号を有するエントリからデータ位置を取得し、データ読書処理部１０２へ出力する。さらに、ファイル情報管理部１０３は、特定したエントリ番号を有するエントリに格納された情報を削除する。その後、ファイル情報管理部１０３は、処理完了の応答を利用プログラム実行部１０１へ出力する。
【００６４】
さらに、ファイル情報管理部１０３は、属性読取の場合、ファイルの識別情報とともに属性読取の指示を利用プログラム実行部１０１から受ける。そして、ファイル情報管理部１０３は、ファイルテーブル６１の中から取得したファイルの識別情報に対応するエントリ番号を特定する。その後、ファイル情報管理部１０３は、特定したエントリ番号を有するエントリからデータ位置を取得し、属性読取部１０４及び更新情報管理部１０５へ出力する。
【００６５】
属性読取部１０４は、図１のＣＰＵ２及びメモリ３により実現される。具体的には、ＣＰＵ２及びメモリ３により実行される図２のファイルシステム９３の動作によりその機能が発揮される。
【００６６】
属性読取部１０４は、属性読取の指示を利用プログラム実行部１０１から受ける。さらに、属性読取部１０４は、ファイル情報管理部１０３から属性を読み取るファイルのエントリ番号をファイル情報管理部１０３から取得する。
【００６７】
読み取る属性として更新属性以外が指定された場合、属性読取部１０４は、取得したエントリの属性情報６１１の中から、指定された属性のフラグの値を読み取る。そして、属性読取部１０４は、読み取った各属性のフラグの値を利用プログラム実行部１０１へ出力する。
【００６８】
これに対して、読み取る属性として更新属性が指定された場合、属性読取部１０４は、更新情報管理部１０５の更新検出テーブル１５４の取得したエントリに対応する更新属性フラグ４１の値を取得する。次に、属性読取部１０４は、取得した更新属性フラグ４１の値を特定したエントリの属性情報６１１のビット６１２に格納された更新属性のフラグを表す値とする。そして、属性読取部１０４は、更新属性のフラグを表す値を利用プログラム実行部１０１へ出力する。
【００６９】
更新情報管理部１０５は、更新検出テーブル回路４によって実現される。更新情報管理部１０５は、付加指示部１５１、リセット指示部１５２、テーブル管理部１５３及び更新検出テーブル１５４を有する。本実施例では、付加指示部１５１〜更新検出テーブル１５４は、ハードウェア回路である。
【００７０】
リセット指示部１５２は、所定の周期でテーブル管理部１５３に対して周期をずらした２つのリセット信号である第１リセット信号及び第２リセット信号を出力する。図６は、リセット指示部の模式的な回路図である。図６に示すように、リセット指示部１５２は、クロック生成部５２１、Ｔ型ＦＦ（Flip  Flop）５２２、遅延付加部５２３、並びに、ＡＮＤ回路５２４及び５２５を有する。このリセット指示部１５２が、「削除指示部」の一例にあたる。
【００７１】
クロック生成部５２１は、周期的にクロックパルスを出力する。例えば、クロック生成部５２１は、情報処理装置１が有するＲＴＣ（Real  Time  Clock）素子からクロックを受信し、２４時間毎にクロックパルスを発生する。ただし、クロックパルスの周期は完全スキャンの周期より短ければよく、ウイルススキャンの処理負荷とウイルス検出の確度とのバランスから決定されることが好ましい。クロックパルスの周期が短ければ、ウイルススキャンの頻度があがり、ウイルス検出の確度が向上するが、情報処理装置１の処理負荷が上昇する。クロック生成部５２１は、生成したクロックパルスをＴ型ＦＦ５２２及び遅延付加部５２３へ出力する。図６では、クロック生成部５２１が出力するクロックパルスを「ＣＬＫ（Clock）」として表している。
【００７２】
Ｔ型ＦＦ５２２は、クロックパルスの入力をクロック生成部５２１から受ける。Ｔ型ＦＦ５２２は、互いに反転した２つの信号である第１タイミング信号及び第２タイミング信号を出力する。図６では、第１タイミング信号を「Ｔ−Ｑ１」と表し、第２タイミング信号を「Ｔ−Ｑ２」と表している。そして、Ｔ型ＦＦ５２２は、クロックパルスの立ち上がりのタイミングで第１タイミング信号及び第２タイミング信号を反転させる。すなわち、第１タイミング信号及び第２タイミング信号は２４時間毎に反転する。Ｔ型ＦＦ５２２は、第１タイミング信号をＡＮＤ回路５２４へ出力する。また、Ｔ型ＦＦ５２２は、第２タイミング信号をＡＮＤ回路５２５へ出力する。
【００７３】
遅延付加部５２３は、信号遅延用の一般素子である。遅延付加部５２３は、クロックパルスの入力をクロック生成部５２１から受ける。そして、遅延付加部５２３は、入力されたクロックパルスに所定の遅延を与えて遅延クロックパルスを生成する。例えば、遅延付加部５２３は、クロックパルスに４分の１周期の遅延を与えて遅延クロックパルスを生成する。そして、遅延付加部５２３は、遅延クロックパルスをＡＮＤ回路５２４及び５２５へ出力する。図６では、遅延クロックパルスを「ＤＣＬＫ」と表している。
【００７４】
ＡＮＤ回路５２４は、第１タイミング信号の入力をＴ型ＦＦ５２２から受ける。また、ＡＮＤ回路５２４は、遅延クロックパルスの入力を遅延付加部５２３から受ける。次に、ＡＮＤ回路５２４は、第１タイミング信号と遅延クロックパルスとの論理積を求める。そして、ＡＮＤ回路５２４は、求めた論理積の値を有する第１リセット信号をテーブル管理部１５３へ出力する。図６では、第１リセット信号は「ＲＳＴ１」と表されている。第１リセット信号は、クロックパルス信号の２倍のインターバルを有する。
【００７５】
ＡＮＤ回路５２５は、第２タイミング信号の入力をＴ型ＦＦ５２２から受ける。また、ＡＮＤ回路５２５は、遅延クロックパルスの入力を遅延付加部５２３から受ける。次に、ＡＮＤ回路５２５は、第２タイミング信号と遅延クロックパルスとの論理積を求める。そして、ＡＮＤ回路５２５は、求めた論理積の値を有する第２リセット信号をテーブル管理部１５３へ出力する。図６では、第２リセット信号は「ＲＳＴ２」と表されている。第２リセット信号は、クロックパルス信号の２倍のインターバルを有する。
【００７６】
ここで、第１タイミング信号及び第２タイミング信号は、クロックパルスのインターバルの２倍の周期をもつ、互いにパルスタイミングが半周期ずれた信号である。そして、第１タイミング信号と第２タイミング信号の周期は４８時間である。さらに、遅延クロックパルスは、２４時間毎に入力される。そこで、ＡＮＤ回路５２４が第１リセット信号を出力した後、２４時間後にＡＮＤ回路５２５が第２リセット信号を出力し、その２４時間後にＡＮＤ回路５２４が第１リセット信号を出力する処理が繰り返される。第１タイミング信号及び第２タイミング信号は、更新属性フラグ４１のリセットのタイミングを与える信号である。
【００７７】
次に、図７を参照して、付加指示部１５１、テーブル管理部１５３及び更新検出テーブル１５４について説明する。図７は、付加指示部、テーブル管理部及び更新検出テーブルの模式的な回路図である。
【００７８】
付加指示部１５１は、更新属性を付加する指示、すなわち、更新属性フラグ４１のオンの指示をテーブル管理部１５３へ出力する。図７に示すように、付加指示部１５１は、ＡＮＤ回路５１１を有する。
【００７９】
ここで、図８を参照して、付加指示部の入出力について説明する。図８は、付加指示部の入出力を説明するための図である。ＡＮＤ回路５１１は、Ｈｉｇｈの値を有する書込データ及び当該データの有効信号の入力をファイル情報管理部１０３から受ける。データの有効信号は、Ｈｉｇｈ／Ｌｏｗが確定した書込データであることを保証する期間を示す信号である。本実施例では、次のように生成する。メモリアクセスにおいて一般的な信号であるバスクロック４０１と一般的なライトイネーブル信号４０２の論理積を求め、求めた信号を反転させることで、データの有効信号４０３が求められる。そして、ＡＮＤ回路５１１は、書込データ（ＷＲＩＴＥ  ＤＡＴＡ）４０４と算出したデータの有効信号４０３との論理積を求める。その後、ＡＮＤ回路５１１は、求めた論理積の値を有する設定信号４０５をテーブル管理部１５３へ出力する。図７及び８では、設定信号が「ＳＥＴ」として表されている。
【００８０】
テーブル管理部１５３は、付加指示部１５１から受信した更新属性フラグ４１をオンする指示及びリセット指示部１５２から受信した第１リセット信号及び第２リセット信号を用いて、更新属性フラグ４１の設定を行う。テーブル管理部１５３は、ＳＲ（Set  Reset）ラッチ５３１及び５３２を有する。このテーブル管理部１５３が、「管理部」の一例にあたる。
【００８１】
ＳＲラッチ５３１は、Ｓ（Set）の入力ポートに対して、設定信号の入力を付加指示部１５１から受ける。また、ＳＲラッチ５３１は、Ｒ（Reset）の入力ポートに対して、第１リセット信号の入力をリセット指示部１５２から受ける。そして、ＳＲラッチ５３１は、図９で示す真理値表にしたがい第１属性信号を出力する。図９は、ＳＲラッチの真理値表の図である。
【００８２】
具体的には、設定信号及び第１リセット信号がＬｏｗであれば、ＳＲラッチ５３１は出力中の第１属性信号を保持する。また、設定信号がＬｏｗであり第１リセット信号がＨｉｇｈであれば、ＳＲラッチ５３１は第１属性信号としてＬｏｗの信号を出力する。また、設定信号がＨｉｇｈであり第１リセット信号がＬｏｗであれば、ＳＲラッチ５３１は第１属性信号としてＨｉｇｈの信号を出力する。さらに、設定信号及び第１リセット信号がＨｉｇｈの場合、ＳＲラッチ５３１は第１属性信号としてＬｏｗの信号を出力する。図６では、第１属性信号を「Ｕ１」で表している。
【００８３】
ＳＲラッチ５３２は、Ｓの入力ポートに対して、設定信号の入力を付加指示部１５１から受ける。また、ＳＲタッチ５３２は、Ｒの入力ポートに対して、第２リセット信号の入力をリセット指示部１５２から受ける。そして、ＳＲラッチ５３２は、ＳＲラッチ５３１と同様に図９で示す真理値表にしたがい第２属性信号を出力する。図６では、第２属性信号を「Ｕ２」で表している。
【００８４】
更新検出テーブル１５４は、更新属性フラグ４１をファイルの数分有する。更新検出テーブル１５４は、ファイル情報管理部１０３から受信したエントリ番号に対応するファイルの更新属性フラグ４１のオンオフを、テーブル管理部１５３から受信した第１属性信号及び第２属性信号を用いて設定し、設定値を属性読取部１０４へ出力する。
【００８５】
更新検出テーブル１５４は、アドレスデコーダ５４２及びＯＲ回路５４１を有する。ここで、図７では、選択された状態のＯＲ回路５４１のみを記載しているが、更新検出テーブル１５４は、ファイルの数分のＯＲ回路５４１を有する。そして、ファイルの数分のＯＲ回路５４１は、１つの回路で構成される。
【００８６】
アドレスデコーダ５４２は、エントリ番号の入力をファイル情報管理部１０３から受ける。そして、アドレスデコーダ５４２は、取得したエントリ番号をＯＲ回路５４１を表すアドレスに変換する。その後、アドレスデコーダ５４２は、取得したアドレスで表されるＯＲ回路５４１を選択する。
【００８７】
ＯＲ回路５４１の中で、アドレスデコーダ５４２により選択されたＯＲ回路５４１が以下の処理を行う。ＯＲ回路５４１は、第１属性信号の入力をＳＲラッチ５３１から受ける。また、ＯＲ回路５４１は、第２属性信号の入力をＳＲラッチ５３２から受ける。そして、ＯＲ回路５４１は、第１属性信号及び第２属性信号の論理積を求め、求めた論理積の値を更新属性フラグ４１の値として属性読取部１０４へ出力する。
【００８８】
ここで、ＡＮＤ回路５１１は、上述したように、書込データとデータ有効信号の論理積の値を設定信号として出力する。そこで、例えば、悪意のプログラムが更新属性フラグ４１をオフにしようとした場合について考える。その場合、ＡＮＤ回路５１１は、更新属性フラグ４１をオフにするためにＬｏｗの値を有する書込データの書き込みが指示される。書込データがＬｏｗの値を有する場合、ＡＮＤ回路５１１は、Ｌｏｗの値を有する設定信号を出力する。しかし、ＳＲラッチはＳの入力ポートへの信号入力において、ＡＮＤ回路５１１の出力がＨｉｇｈからＬｏｗへ変化する動作は存在しない。すなわち、更新属性フラグ４１は、ファイルシステム９３を含むＣＰＵ２によって実行されるプログラムによってオフにされることはない。つまり、更新情報管理部１０５は、ファイルシステム９３を含むＣＰＵ２によって実行されるプログラムによる属性情報の削除を抑制しているといえる。言い換えれば、更新情報管理部１０５は、更新属性フラグ４１のオフをファイルシステム９３、ひいてはＯＳ９２から独立して行うといえる。
【００８９】
次に、図１０を参照して、更新検出テーブル１５４とスキャンとのタイミングについて説明する。図１０は、更新検出テーブルとスキャンとの関係を表すタイミングチャートである。図１０は、横軸で時間の経過を表している。図１０の各グラフは、左端に示した種類の信号の変化を表す。以下においてスキャン動作の説明の対象とするファイルを対象ファイルという。また、ここでは２４時間間隔で差分スキャンを行う場合で説明する。
【００９０】
クロックパルス（ＣＬＫ）は、２４時間毎に出力される。そして、遅延クロックパルス（ＤＣＫＬ）は、所定の遅延が与えられてパルスタイミングがずらされている。
【００９１】
第１タイミング信号（Ｔ−Ｑ１）は、クロックパルスの立ち上がりから次の立ち上がりまでの２倍を１周期、すなわち４８時間を１周期とするパルス信号である。また、第２タイミング信号（Ｔ−Ｑ２）は、第１タイミング信号を反転させた信号である。
【００９２】
そして、第１リセット信号（ＲＳＴ１）は、第１タイミング信号がＨｉｇｈの期間において、遅延クロックパルスがＨｉｇｈになったタイミングでＨｉｇｈの値を持つ。また、第２リセット信号（ＲＳＴ２）は、第２タイミング信号がＨｉｇｈの期間において、遅延クロックパルスがＨｉｇｈになったタイミングでＨｉｇｈの値を持つ。すなわち、第１リセット信号及び第２リセット信号は、いずれもクロックパルスの２倍のインターバル、すなわち４８時間のインターバルをもつ。また、第１リセット信号と第２リセット信号とは、図１０に示すように第１及び第２タイミング信号の半周期分のずれ、すなわち２４時間のずれを有する。
【００９３】
ここでは、設定信号（ＳＥＴ）が時刻Ｔ１及びＴ４のタイミングでＳＲラッチ５３１及び５３２に入力された場合で説明する。Ｔ１以前には設定信号が入力されておらず、タイミング２０１におけるスキャンでは、対象ファイルは更新されておらず、スキャンの対象にならない。
【００９４】
時刻Ｔ１で設定信号が入力されたため、それ以降第１属性信号（Ｕ１）及び第２属性信号（Ｕ２）は、Ｈｉｇｈの値を有する状態に遷移する。
【００９５】
そして、時刻Ｔ１の後、時刻Ｔ２で第２リセット信号はＬｏｗの値を有する状態に遷移する。これにより、ＳＲラッチ５３２から出力される第２属性信号がＬｏｗの値を有する状態に遷移する。しかしこの状態では、第１リセット信号はＬｏｗの値のままなので、更新属性フラグ４１であるＯＲ回路５４１は、Ｈｉｇｈの値を出力し続ける。すなわち、対象ファイルの更新属性フラグ４１がオンの状態が保持される。
【００９６】
そして、タイミング２０２では対象ファイルの更新属性フラグ４１がオンになっているので、対象ファイルはスキャンの対象となり、ウイルスの検出が行われる。
【００９７】
次に、時刻Ｔ３で第１リセット信号はＬｏｗの値を有する状態に遷移する。これにより、ＳＲラッチ５３１から出力される第１属性信号がＬｏｗの値を有する状態に遷移する。この場合、第２リセット信号もＬｏｗの値を有するので、更新属性フラグ４１であるＯＲ回路５４１は、時刻Ｔ３でＬｏｗの値に遷移する。すなわち、対象ファイルの更新属性フラグ４１がオフの状態となる。
【００９８】
そして、タイミング２０３では対象ファイルの更新属性フラグ４１がオフになっているので、対象ファイルはスキャンの対象から外れる。
【００９９】
また、時刻Ｔ４で設定信号が入力されたため、それ以降第１属性信号及び第２属性信号は、Ｈｉｇｈの値を有する状態に遷移する。
【０１００】
そして、時刻Ｔ４の後、第１リセット信号及び第２リセット信号のいずれもがＬｏｗの値となる以前のタイミング２０４では、対象ファイルの更新属性フラグ４１がオンであるので、対象ファイルはスキャンの対象となり、ウイルスの検出が行われる。
【０１０１】
次に、時刻Ｔ５で第１リセット信号はＬｏｗの値を有する状態に遷移する。これにより、ＳＲラッチ５３１から出力される第１属性信号がＬｏｗの値を有する状態に遷移する。しかしこの状態では、第２リセット信号はＬｏｗの値のままなので、更新属性フラグ４１であるＯＲ回路５４１は、Ｈｉｇｈの値を出力し続ける。すなわち、対象ファイルの更新属性フラグ４１がオンの状態が保持される。
【０１０２】
そして、タイミング２０５では対象ファイルの更新属性フラグ４１がオンになっているので、対象ファイルはスキャンの対象となり、ウイルスの検出が行われる。すなわち、この場合は、１回の更新に対して、２回のウイルススキャンが行われることになる。
【０１０３】
その後、時刻Ｔ６で第２リセット信号はＬｏｗの値を有する状態に遷移する。これにより、ＳＲラッチ５３２から出力される第２属性信号がＬｏｗの値を有する状態に遷移する。この場合、第１リセット信号もＬｏｗの値を有するので、更新属性フラグ４１であるＯＲ回路５４１は、時刻Ｔ６でＬｏｗの値に遷移する。すなわち、対象ファイルの更新属性フラグ４１がオフの状態となる。これにより、それ以降のタイミング２０６で行われるスキャンでは、対象ファイルは、スキャン対象から外れる。
【０１０４】
このように、更新属性フラグ４１は、最低でも第１リセット信号と第２リセット信号との周期のずれの期間は更新属性フラグ４１がオンの状態が保持される。本実施例では、更新属性フラグ４１は、最低でも２４時間はオンの状態が保持される。そこで、スキャンタイミングを第１リセット信号と第２リセット信号との周期のずれの期間より短くすることで、更新されたファイルのスキャンを確実に行うことができる。この更新属性フラグ４１がオンの状態の継続期間が、「所定期間」の一例にあたる。
【０１０５】
そして、第１リセット信号と第２リセット信号との周期のずれの期間は、第１及び第２タイミング信号の半周期の期間にあたる。また、第１及び第２タイミング信号の１周期は、クロックパルスの周期の２倍である。したがって、第１リセット信号と第２リセット信号との周期のずれの期間は、クロックパルスの周期にあたる。言い換えれば、クロックパルスの周期が、ファイルの更新情報を保持する期間を与える。そこで、スキャンタイミングは、クロックパルスの周期より短くすれば、ウイルス検出ソフトはファイルの更新を見逃すことなく、更新されたファイルのスキャンが確実に行われる。
【０１０６】
さらに、図１１Ａ及び１１Ｂを参照して、ウイルス検出ソフトによるスキャンタイミングの条件について説明する。図１１Ａは、更新属性フラグのオフのタイミングとスキャンタイミングが近接している場合のタイミングチャートである。また、図１１Ｂは、更新属性フラグのオフのタイミングとスキャンタイミングが十分離れている場合のタイミングチャートである。図１１Ａ及び１１Ｂは、横軸で時間の経過を表す。また、図１１Ａ及び１１Ｂでは、第１及び第２属性信号を組み合わせて更新属性フラグ４１のオンオフの状態を表している。
【０１０７】
更新属性フラグ４１がオフになるタイミングとスキャンのタイミングが近接する場合、ウイルス検出ソフトの動作期間によりチェック漏れが生じるおそれがある。例えば、図１１Ａに示すように、時刻Ｔ０１でスキャンが開始されると対象ファイルの更新属性フラグ４１はオンであるので、本来であればスキャン対象となることが好ましい。しかし、ウイルス検出ソフトの動作期間が時間ＴＳであり、時刻Ｔ０３で処理が終わるとすると、その間の時刻Ｔ０２で、対象ファイルの更新属性フラグ４１がオフになってしまう。ウイルス検出ソフトが、時刻Ｔ０２までに対象ファイルの更新属性フラグ４１の確認を終えていなければ、対象ファイルはスキャンの対象外になってしまう。
【０１０８】
さらに、本実施例のように、更新属性フラグ４１がオフになるタイミングが１日１回であり、スキャンのタイミングも１日１回の場合、毎回スキャン漏れのおそれが発生し、信頼性の高いウイルスの検出ができなくなる。
【０１０９】
そこで、このリスクを回避するために、図１１Ｂのようにウイルス対策ソフトの動作開始の時刻Ｔ１１から動作終了の時刻Ｔ１２までの期間ＴＳの後に更新属性フラグ４１のオフの時刻Ｔ１３が来るように、スキャンのタイミングを設定すればよい。すなわち、更新属性フラグ４１がオフになる時刻Ｔ１３から期間ＴＳよりも十分前にウイルス対策ソフトが起動されることが好ましい。これにより、ウイルス検出ソフトの動作期間内に更新属性フラグ４１がオフにならないようにすることができ、スキャン漏れを低減することができる。
【０１１０】
例えば、更新属性フラグ４１がオフになる周期及びスキャンの周期が２４時間毎であり、ウイルス対策ソフトの最大処理時間が４時間である場合について考える。この場合、更新属性フラグ４１をオフにする時刻が０時とされたならば、ウイルス対策ソフトの起動時刻は、５時や１８時に設定されることが好ましい。
【０１１１】
また、更新情報管理部１０５の目的の１つは、更新属性フラグ４１をオンにする書き込み操作、すなわちＨｉｇｈのデータの書き込み操作により更新検出テーブル１５４をＨｉｇｈの信号を保持する状態とすることである。また、更新情報管理部１０５の他の目的は、リセットの操作により更新検出テーブル１５４をＬｏｗの信号を保持する状態とすることである。一般的なメモリは、Ｌｏｗのデータの書き込み操作により、Ｌｏｗのデータを保持する状態に遷移するが、更新情報管理部１０５は、この機能を有さない。その代わりに、更新情報管理部１０５は、ＯＳに依存しないリセット信号により、更新検出テーブル１５４をＬｏｗのデータを保持する状態に遷移させる。
【０１１２】
ここで、ＳＲラッチ５３１及び５３２において、Ｈｉｇｈのデータの書き込み操作とリセット操作のタイミングが重なった場合、更新検出テーブル１５４が保持する値が不安定になるおそれがある。具体的には以下のような理由による。すなわち、本実施例に係る更新情報管理部１０５は、ＳＲラッチ５３１及び５３２の出力を用いて、Ｈｉｇｈのデータを保持する状態に遷移する。しかし、ＳＲラッチ５３１及び５３２では、Ｓの入力ポートにＨｉｇｈの信号が入力されるタイミングとＲの入力ポートにＬｏｗの信号が入力されるタイミングとが重なると、出力は不安定になり、Ｈｉｇｈのデータを出力しないという誤った状態が生じるおそれがある。
【０１１３】
そこで、本実施例では、ＳＲラッチ５３１とＳＲラッチ５３２という２系統を配置し、その論理和を更新検出テーブル１５４の出力とすることで、更新検出テーブル１５４が保持する値が不安定となる状態の発生を抑制する。すなわち、ＳＲラッチ５３１及び５３２の一方が不安定であっても、他方は必ずＨｉｇｈの値を出力する。そのため、ＳＲラッチ５３１の出力とＳＲラッチ５３２の出力との論理和を更新属性フラグ４１の値とすることで、リセットのタイミングに依らず、設定信号がＨｉｇｈの場合には更新属性フラグ４１がオンになる。
【０１１４】
次に、図１２を参照して、本実施例に係る情報システムによるファイル管理の流れについて説明する。図１２は、ファイル管理の処理のフローチャートである。図１２のファイル管理の処理は、ＣＰＵ２及びメモリ３により実行されるファイルシステム９３によって行われる。以下では、ファイルシステム９３に対応する図４の各部を動作主体として説明する。
【０１１５】
ファイル情報管理部１０３は、利用プログラム実行部１０１により指示された操作がファイル作成か否かを判定する（ステップＳ１０１）。操作がファイル作成の場合（ステップＳ１０１：肯定）、ファイル情報管理部１０３は、ストレージ６に格納されたファイルテーブル６１における空きエントリの検出を行う（ステップＳ１０２）。
【０１１６】
そして、ファイル情報管理部１０３は、ファイルテーブル６１に空きエントリがあるか否かを判定する（ステップＳ１０３）。空きエントリがない場合（ステップＳ１０３：否定）、ファイル情報管理部１０３は、エラーを利用プログラム実行部１０１に出力し（ステップＳ１０４）、ステップＳ１２１へ進む。
【０１１７】
これに対して、空きエントリがある場合（ステップＳ１０３：肯定）、ファイル情報管理部１０３は、指定されたファイルの識別情報をファイルテーブル６１の空きエントリに設定する（ステップＳ１０５）。さらに、ファイル情報管理部１０３は、属性更新処理を行う（ステップＳ１０６）。その後、ファイル情報管理部１０３は、ステップＳ１１４へ進む。
【０１１８】
一方、操作がファイル作成でない場合（ステップＳ１０１：否定）、ファイル情報管理部１０３は、利用プログラム実行部１０１から受信したファイルの識別情報に対応するエントリ番号のファイルテーブル６１からの取得を実行する（ステップＳ１０７）。
【０１１９】
そして、ファイル情報管理部１０３は、ファイルの識別情報に対応するエントリ番号を取得したか否かを判定する（ステップＳ１０８）。エントリ番号を取得できない場合（ステップＳ１０８：否定）、ファイル情報管理部１０３は、エラーを利用プログラム実行部１０１へ出力する（ステップＳ１０９）。その後、処理はステップＳ１２１へ進む。
【０１２０】
これに対して、エントリ番号が取得できた場合（ステップＳ１０８：肯定）、ファイル情報管理部１０３は、取得したエントリ番号を有するエントリからデータ位置を取得し、データ読書処理部１０２へ出力する。そして、データ読書処理部１０２及びファイル情報管理部１０３は、利用プログラム実行部１０１から指示された操作がファイル削除か否かを判定する（ステップＳ１１０）。指示された操作がファイル削除の場合（ステップＳ１１０：肯定）、データ読書処理部１０２及びファイル情報管理部１０３は、特定したエントリ番号を有するエントリを解放する（ステップＳ１１１）。具体的には、データ読書処理部１０２は、取得したエントリ番号を有するエントリに登録された情報を削除する。また、ファイル情報管理部１０３は、ストレージ６上の取得したデータ位置のデータ６２を削除する。その後、データ読書処理部１０２及びファイル情報管理部１０３は、処理を終了する。
【０１２１】
これに対して、指示された操作がファイル削除でない場合（ステップＳ１１０：否定）、データ読書処理部１０２及びファイル情報管理部１０３は、利用プログラム実行部１０１から指示された操作がデータ書込か否かを判定する（ステップＳ１１２）。指示された操作がデータ書込の場合（ステップＳ１１２：肯定）、データ読書処理部１０２は、ストレージ６上のファイル情報管理部１０３から通知されたデータ位置にデータ６２を書き込む（ステップＳ１１３）。また、ファイル情報管理部１０３は、ファイル更新時処理を実行する（ステップＳ１１４）。その後処理は、ステップＳ１２１へ進む。
【０１２２】
これに対して、指示された操作がデータ書込でない場合（ステップＳ１１２：否定）、データ読書処理部１０２は、利用プログラム実行部１０１から指示された操作がデータ読出か否かを判定する（ステップＳ１１５）。指示された操作がデータ読出の場合（ステップＳ１１５：肯定）、データ読書処理部１０２は、ストレージ６上のファイル情報管理部１０３から通知されたデータ位置からデータ６２を読み出す（ステップＳ１１６）。その後、処理はステップＳ１２１へ進む。
【０１２３】
これに対して、指示された操作がデータ読出でない場合（ステップＳ１１５：否定）、ファイル情報管理部１０３は、利用プログラム実行部１０１から指示された操作が属性設定か否かを判定する（ステップＳ１１７）。指示された操作が属性設定の場合（ステップＳ１１７：肯定）、ファイル情報管理部１０３は、属性更新処理を実行する（ステップＳ１１８）。その後、処理はステップＳ１２１へ進む。
【０１２４】
これに対して、指示された操作がデータ属性設定でない場合（ステップＳ１１７：否定）、属性読取部１０４は、利用プログラム実行部１０１から指示された操作が属性取得であることを確認する（ステップＳ１１９）。そして、属性読取部１０４は、属性読取処理を実行する（ステップＳ１２０）。
【０１２５】
その後、ファイル情報管理部１０３は、ファイルテーブル６１の特定したエントリ番号を有するエントリのアクセス日時を現在の日時に更新する（ステップＳ１２１）。
【０１２６】
次に、図１３を参照して、ファイル更新時処理について説明する。図１３は、ファイル更新時処理のフローチャートである。図１３のフローチャートは、図１２におけるステップＳ１１４において実行される処理の一例にあたる。
【０１２７】
ファイル情報管理部１０３は、更新情報管理処理を実行する（ステップＳ２０１）。
【０１２８】
その後、ファイル情報管理部１０３は、利用プログラム実行部１０１が指定した識別情報に対応するファイルテーブル６１におけるエントリのアーカイブ属性をオンにする（ステップＳ２０２）。
【０１２９】
次に、図１４を参照して、属性読取処理について説明する。図１４は、属性読取処理のフローチャートである。図１４のフローチャートは、図１２のステップＳ１２０において実行される処理の一例にあたる。
【０１３０】
属性読取部１０４は、利用プログラム実行部１０１に指定された識別情報に対応するファイルテーブル６１の属性情報を取得する（ステップＳ３０１）。
【０１３１】
次に、属性読取部１０４は、更新情報管理処理を実行する（ステップＳ３０２）。そして、属性読取部１０４は、更新情報管理部１０５から更新属性フラグ４１のオンオフの情報を取得する。
【０１３２】
そして、属性読取部１０４は、更新情報管理部１０５から取得した更新属性フラグ４１がオンか否かを判定する（ステップＳ３０３）。更新情報管理部１０５から取得した更新属性フラグ４１がオンの場合（ステップＳ３０３：肯定）、属性読取部１０４は、ファイルテーブル６１から取得した属性情報の更新属性フラグ４１をオンに設定する（ステップＳ３０４）。
【０１３３】
これに対して、更新情報管理部１０５から取得した更新属性フラグ４１がオフの場合（ステップＳ３０３：否定）、属性読取部１０４は、ファイルテーブル６１から取得した属性情報の更新属性フラグ４１をオフに設定する（ステップＳ３０５）。
【０１３４】
その後、属性読取部１０４は、属性情報を利用プログラム実行部１０１へ出力する（ステップＳ３０６）。
【０１３５】
次に、図１５を参照して、更新情報管理処理について説明する。図１５は、更新情報管理処理のフローチャートである。図１５のフローチャートは、図１３のステップＳ２０１及び図１４のステップＳ３０２において実行される処理の一例にあたる。ここで、図１５の更新情報管理処理は、ＣＰＵ２及びメモリ３によって実行される更新情報アクセス用のデバイスドライバ９４及び更新検出テーブル回路４によって行われる。以下では、更新情報アクセス用のデバイスドライバ９４及び更新情報管理部１０５にあたる回路に対応する図４の各部を動作主体として説明する。
【０１３６】
更新検出テーブル１５４は、エントリ番号の入力をファイル情報管理部１０３から受ける。そして、更新検出テーブル１５４は、取得したエントリ番号を自身が有するＯＲ回路５４１の何れかを表すアドレスに変換する（ステップＳ４０１）。
【０１３７】
次に、ファイル情報管理部１０３及び属性読取部１０４は、属性の書込処理か否かを判定する（ステップＳ４０２）。
【０１３８】
属性の書込処理の場合（ステップＳ４０２：肯定）、ファイル情報管理部１０３は、ライトイネーブル信号及び書込データを更新情報管理部１０５へ出力する。更新情報管理部１０５は、エントリ番号に対応するＯＲ回路５４１の値をオンに設定する（ステップＳ４０３）。
【０１３９】
これに対して、属性の読取処理の場合（ステップＳ４０２：否定）、属性読取部１０４は、更新属性フラグ４１の値を更新検出テーブル１５４から取得する（ステップＳ４０４）。
【０１４０】
次に、図１６を参照して、属性更新処理について説明する。図１６は、属性更新処理のフローチャートである。図１６のフローチャートは、図１２のステップＳ１０６及びＳ１１８において実行される処理の一例にあたる。
【０１４１】
ファイル情報管理部１０３は、利用プログラム実行部１０１が指定した識別情報に対応するエントリ番号を取得する。そして、ファイル情報管理部１０３は、指定されたファイルが読取専用か否かを判定する（ステップＳ５０１）。指定されたファイルが読取専用でない場合（ステップＳ５０１：否定）、ファイル情報管理部１０３は、取得したエントリ番号を有するエントリの読取専用属性のフラグをオフにする（ステップＳ５０２）。これに対して、指定されたファイルが読取専用の場合（ステップＳ５０１：肯定）、ファイル情報管理部１０３は、取得したエントリ番号を有するエントリの読取専用属性のフラグをオンにする（ステップＳ５０３）。
【０１４２】
次に、ファイル情報管理部１０３は、指定されたファイルが隠しファイルかを判定する（ステップＳ５０４）。指定されたファイルが隠しファイルでない場合（ステップＳ５０４：否定）、ファイル情報管理部１０３は、取得したエントリ番号を有するエントリの隠しファイル属性のフラグをオフにする（ステップＳ５０５）。これに対して、指定されたファイルが隠しファイルの場合（ステップＳ５０４：肯定）、ファイル情報管理部１０３は、取得したエントリ番号を有するエントリの隠しファイル属性のフラグをオンにする（ステップＳ５０６）。
【０１４３】
次に、ファイル情報管理部１０３は、指定されたファイルがアーカイブかを判定する（ステップＳ５０７）。指定されたファイルがアーカイブでない場合（ステップＳ５０７：否定）、ファイル情報管理部１０３は、取得したエントリ番号を有するエントリのアーカイブ属性のフラグをオフにする（ステップＳ５０８）。これに対して、指定されたファイルがアーカイブの場合（ステップＳ５０７：肯定）、ファイル情報管理部１０３は、取得したエントリ番号を有するエントリのアーカイブ属性のフラグをオンにする（ステップＳ５０９）。
【０１４４】
次に、図１７を参照して、更新情報管理部１０５による更新属性フラグ４１の設定処理ついて説明する。図１７は、更新情報管理部による更新属性フラグの設定処理のフローチャートである。ここでは、Ｈｉｇｈの信号の値を１とし、Ｌｏｗの信号の値を０として説明する。
【０１４５】
付加指示部１５１のＡＮＤ回路５１１は、書込データが１であり、且つ、書き込み可能、すなわちデータ有効信号が入力されているか否かを判定する（ステップＳ６０１）。書込データが１であり、且つ、書き込み可能である場合（ステップＳ６０１：肯定）、ＡＮＤ回路５１１は、値が１の設定信号（ＳＥＴ）を、テーブル管理部１５３のＳＲラッチ５３１及び５３２へ出力する（ステップＳ６０２）。
【０１４６】
これに対して、書込データが０、又は、書き込み禁止の場合（ステップＳ６０１：否定）、ＡＮＤ回路５１１は、値が０の設定信号（ＳＥＴ）を、テーブル管理部１５３のＳＲラッチ５３１及び５３２へ出力する（ステップＳ６０３）。
【０１４７】
ＳＲラッチ５３１は、設定信号（ＳＥＴ）の入力をＡＮＤ回路５１１から受ける。また、ＳＲラッチ５３１は、第１リセット信号（ＲＳＴ１）の入力をリセット指示部１５２から受ける。そして、設定信号（ＳＥＴ）及び第１リセット信号（ＲＳＴ１）を基に第１属性信号（Ｕ１）を生成する処理を実行し、生成した第１属性信号（Ｕ１）を更新検出テーブル１５４のＯＲ回路５４１へ出力する（ステップＳ６０４）。ここで、図１７における「ラッチ（Ｓ，Ｒ）」は、括弧内のＳがＳの入力ポートに入力される信号を表し、括弧内のＲがＲの入力ポートに入力される信号を表し、それらの信号を用いて出力を生成し、出力する処理を表す。
【０１４８】
ＳＲラッチ５３２は、設定信号（ＳＥＴ）の入力をＡＮＤ回路５１１から受ける。また、ＳＲラッチ５３２は、第２リセット信号（ＲＳＴ２）の入力をリセット指示部１５２から受ける。そして、設定信号（ＳＥＴ）及び第２リセット信号（ＲＳＴ２）を基に第２属性信号（Ｕ２）を生成する処理を実行し、生成した第２属性信号（Ｕ２）を更新検出テーブル１５４のＯＲ回路５４１へ出力する（ステップＳ６０５）。
【０１４９】
ＯＲ回路５４１は、第１属性信号（Ｕ１）及び第２属性信号（Ｕ２）のいずれもが０であるか否かを判定する（ステップＳ６０６）。第１属性信号（Ｕ１）及び第２属性信号（Ｕ２）のいずれかが１の場合（ステップＳ６０６：否定）、ＯＲ回路５４１は、更新属性フラグ４１の値として１を出力し、更新属性フラグ４１をオンにする（ステップＳ６０７）。
【０１５０】
これに対して、第１属性信号（Ｕ１）及び第２属性信号（Ｕ２）のいずれも０の場合（ステップＳ６０６：肯定）、ＯＲ回路５４１は、更新属性フラグ４１の値として０を出力し、更新属性フラグ４１をオフにする（ステップＳ６０８）。
【０１５１】
次に、図１８を参照して、ＳＲラッチ５３１及び５３２における出力決定処理について説明する。図１８は、ＳＲラッチにおける出力決定処理のフローチャートである。ここでは、ＳＲラッチ５３１及び５３２を区別しないため、「ＳＲラッチ５３０」と表す。また、ここでは、Ｓの入力ポートに入力された信号を「Ｓ」、Ｒの入力ポートに入力された信号を「Ｒ」とする。そして、ＳＲラッチ５３０の出力を「Ｑ」と表す。
【０１５２】
ＳＲラッチ５３０は、Ｒの入力ポートに「１」が入力されたか否かを判定する（ステップＳ７０１）。Ｒの入力ポートに「１」が入力されていない場合（ステップＳ７０１：否定）、ＳＲラッチ５３０は、０を出力する（ステップＳ７０２）。
【０１５３】
これに対して、Ｒの入力ポートに「１」が入力された場合（ステップＳ７０１：肯定）、ＳＲラッチ５３０は、Ｓの入力ポートに「１」が入力されたか否かを判定する（ステップＳ７０３）。Ｓの入力ポートに「１」が入力されていない場合（ステップＳ７０３：否定）、ＳＲラッチ５３０は、１を出力する（ステップＳ７０４）。
【０１５４】
これに対して、Ｓの入力ポートに「１」が入力された場合（ステップＳ７０３：肯定）、ＳＲラッチ５３０は、出力の値を保持する。
【０１５５】
次に、図１９を参照して、本実施例に係る情報処理装置を用いた場合のウイルス検出の効果について説明する。図１９は、実施例１に係る情報処理装置を用いた場合のウイルス検出の効果を説明するための図である。
【０１５６】
グラフ４１１は、週に１回の完全スキャンのみを行う場合のウイルス駆除の状態を表す。グラフ４１２は、更新属性フラグ４１がオンの状態を２４時間保証し、２４時間毎に差分スキャンを行う場合の本実施例に係る情報処理装置を用いた場合のウイルス駆除の状態を表す。グラフ４１３は、更新属性フラグ４１がオンの状態を４８時間保証し、２４時間毎に差分スキャンを行う場合の本実施例に係る情報処理装置を用いた場合のウイルス駆除の状態を表す。さらに、グラフ４１２及び４１３では、一点鎖線のタイミングでリセット信号が出力されるものとする。すなわち、グラフ４１２及び４１３では、ウイルス侵入後２つ目の一点鎖線で更新属性フラグ４１がオフになる。
【０１５７】
また、太線の縦軸がスキャンの実行を表す。また、黒丸が、各ウイルスに対応するパターンの入手タイミングを表す。また、ファイルが更新されたことにより、ウイルスが侵入したものとする。
【０１５８】
また、グラフ４１１〜４１３ともに横軸で時間を表す。さらに、横軸のメモリは２４時間単位で記載されている。また、グラフ４１１〜４１３のそれぞれの縦方向の各段は、上からウイルスＶＡの侵入状態、ウイルスＶＢの侵入状態、ウイルスＶＣの侵入状態及びウイルスＶＤの侵入状態を表す。無地の領域がウイルスに侵入されていない状態を示す。また、色がついている領域がウイルスに侵入されている状態を示す。グラフ４１１〜４１３のいずれも、ウイルスＶＡ〜ＶＤの侵入のタイミングは同じである。
【０１５９】
完全スキャンのみを行う場合は、グラフ４１１のように、週に１回のタイミング４２１で全てのファイルがスキャンされる。この場合、情報処理装置１は、タイミング４２１以前にウイルスＶＡ〜ＶＤのパターンを入手しているので、ウイルスＶＡ〜ＶＤを全て駆除できる。ただし、ウイルスＶＡ〜ＶＤの侵入期間が長くなっている。
【０１６０】
これに対して、２４時間保証で差分スキャンを２４時間ごとに行う場合、グラフ４１２に示すように、ウイルスＶＡが侵入した次のタイミング４２２のスキャンでウイルスＶＡは駆除される。ただし、次のスキャンのタイミング４２３まで更新属性フラグ４１はオンの状態が維持される。そのため、タイミング４２３では、既にウイルスが駆除されたファイルに対して再度スキャンが行われる。また、ウイルスＶＢが侵入した後のタイミング４２４のスキャンでは、ウイルスＶＢのパターンが入手できていないため、ウイルスＶＢを駆除することは困難である。さらに、タイミング４２５では、既に一点鎖線を２本通過しており、更新属性フラグ４１がオフになっている。そのため、タイミング４２５及び４２６では差分スキャンが行われず、ウイルスＶＢは駆除されない。ウイルスＶＢは、完全スキャンを待って駆除されることになる。また、ウイルスＶＣは、侵入直後のスキャン４２５によって駆除される。しかし、その後、１度スキャンしたファイルへのスキャンが発生する。また、ウイルスＶＤは、侵入直後のスキャンではパターンが入手されていないため駆除されず、完全スキャンで駆除されることになる。
【０１６１】
一方、４８時間保証で差分スキャンを２４時間ごとに行う場合、グラフ４１３に示すように、ウイルスＶＡ、ＶＣ及びＶＤについては、２４時間保証の場合と同様である。これに対して、ウイルスＶＢについては、タイミング４２７の時点で更新属性フラグ４１はオンの状態が維持されているので、スキャンが行われ駆除される。
【０１６２】
このように、完全スキャンのみを行う場合に比べて、完全スキャンの間に差分スキャンを行うことで、迅速にウイルスを駆除でき、リスクを低減することができる。また、完全スキャンよりも差分スキャンは負荷も低く短時間で完了するので、情報処理装置１の他の処理への影響を抑えることができる。
【０１６３】
また、更新属性フラグ４１のオンの状態の継続期間を長くすることで、ウイルスの検出確率を向上させることができる。一方、更新属性フラグ４１のオンの状態の継続期間を短くすることで、既にウイルスが駆除されたファイルに対する再度のスキャンを回避でき、処理負荷を低減することができる。このように、更新属性フラグ４１のオンの状態の継続期間は、リスクと処理負荷とを考慮して決定することが好ましい。また、上述したように更新属性フラグ４１のオンの状態の継続期間は、クロックパルスの周期により決定することができる。
【０１６４】
なお、更新属性フラグ４１のオンの状態の継続期間は、スキャンのタイミングと関係を持たないため、グラフ４１２及び４１３のウイルスＶＡに対するスキャンのように同じファイルを複数回スキャンする冗長性を有する。ここで、例えば、情報処理装置１の１日の更新ファイル数を９３９個とし、全体のファイル数を１３６５７７個として考えると、ストレージ６に格納されたファイル数に対する更新ファイルの比率は１日あたり０．７％である。この場合、差分スキャンにおけるスキャンするファイル数も０．７％となる。例えば、完全スキャンで２時間を要するファイル量の場合、１日の差分スキャンの時間は１分未満となる。したがって、スキャンする回数が２倍になっても、差分スキャンによる影響は少なく、スキャン時間を十分に短縮することができる。したがって、差分スキャンが上述した冗長性を有していてもスキャン時間は十分短縮される。
【０１６５】
以上に説明したように、本実施例に係る情報処理装置では、ファイルが更新されたことを表す更新属性フラグがファイル更新時にオンにされ、ソフトウェアからの削除を抑制し、所定期間経過後にてオフされる。そして、更新属性フラグがオンのファイルに対してのみ処理が行われる。このように、更新属性フラグはソフトウェアによりオフされないので、更新されたファイルに対して確実に処理を実行することができる。
【０１６６】
特にウイルススキャンの場合、ウイルスによる改ざんを受けることなく所定期間更新されたファイルであることを示し続けることができる。また、本実施例に係る情報処理装置は、更新属性フラグがオンのファイルに対して差分スキャンを行うことで、短時間で信頼性の高いウイルス検出を行うことができる。さらに、差分スキャンを完全スキャンの間に定期的に行うことで、確実且つ迅速にウイルスを駆除でき、リスクを低減することができる。
【実施例２】
【０１６７】
次に、実施例２について説明する。本実施例に係る情報処理装置は、クロックパルスの周期を変更できることが実施例１と異なる。本実施例に係る情報処理装置も、図４，６及び７で表される。以下の説明では、各部の実施例１と同様の機能については説明を省略する。
【０１６８】
図２０は、実施例２に係るクロック発生部の模式的な回路図である。クロック生成部５２１は、図２０に示すように、ＲＴＣ６０１、カウンタ６０２、セレクタ６０３及びディップスイッチ６０４を有する。
【０１６９】
ディップスイッチ６０４は、例えば、操作者によるスイッチの操作により、２ビットの情報をセレクタ６０３に与える。具体的には、ディップスイッチ６０４は、操作者からの指示にしたがい、信号＃１として０又は１及び信号＃２として０又は１をセレクタ６０３に入力する。これにより、ディップスイッチ６０４は、４種類の信号をセレクタ６０３へ入力する。
【０１７０】
ＲＴＣ６０１は、周期的にパルス信号をカウンタ６０２へ出力する。例えば、ＲＴＣ６０１は、２４時間毎にパルス信号をカウンタ６０２へ出力する。
【０１７１】
カウンタ６０２は、出力ポートＱＡ〜ＱＤを有する。カウンタ６０２は、周期的なパルス信号の入力をＲＴＣ６０１から受ける。そして、カウンタ６０２は、パルス信号をカウントし、カウント回数に応じたそれぞれ異なる周期的なタイミングで各出力ポートＱＡ〜ＱＤからパルス信号を出力する。以下では、出力ポートＱＡ〜ＱＤから出力されるパルス信号を、それぞれ信号ＱＡ〜ＱＤという。
【０１７２】
例えば、次のようにカウンタ６０２は、信号ＱＡ〜ＱＤを出力する。カウンタ６０２は、パルス信号の１回のカウント毎に信号ＱＡを出力する。また、カウンタ６０２は、パルス信号の２回のカウント毎に信号ＱＢを出力する。また、カウンタ６０２は、パルス信号の３回のカウントごとに信号ＱＣを出力する。また、カウンタ６０２は、パルス信号の４回のカウントごとに信号ＱＤを出力する。これにより、カウンタ６０２は、２４時間周期で信号ＱＡを出力し、４８時間周期で信号ＱＢを出力し、７２時間周期で信号ＱＣを出力し、９６時間周期で信号ＱＤを出力する。
【０１７３】
セレクタ６０３は、入力ポートＤ１〜Ｄ４を有する。また、セレクタ６０３は、ディップスイッチ６０４から入力された信号に対応して入力ポートＤ１〜Ｄ４の何れに入力された信号を選択するかを予め記憶する。
【０１７４】
セレクタ６０３は、各入力ポートＤ１〜Ｄ４で、信号ＱＡ〜ＱＤの入力を受ける。そして、セレクタ６０３は、ディップスイッチ６０４から入力された信号にしたがって入力ポートＤ１〜Ｄ４に入力された信号から１つの信号を選択する。そして、セレクタ６０３は、選択した信号をクロックパルスとしてＴ型ＦＦ５２２及び遅延付加部５２３へ出力する。
【０１７５】
ここで、本実施例では、４種類の信号からクロックパルスとして用いる信号を選択したが、選択候補とする信号の種類の数に特に制限はない。
【０１７６】
このように、本実施例に係る情報処理装置１では、ディップスイッチ６０４の操作によりクロックパルスの周期が変更される。すなわち、操作者は、ディップスイッチ６０４を操作することで、更新属性フラグ４１のオンの状態の継続期間を変更することができる。
【０１７７】
以上に説明したように、本実施例に係る情報処理装置は、ディップスイッチの操作により更新属性フラグをオンにしておく期間を変更することができ、システム環境に応じた差分スキャンを容易に実現することができる。
【０１７８】
ここで、以上の各実施例では更新属性を用いたウイルススキャンについて説明したが、各実施例に係る機能は、更新属性を用いる処理であれば他の処理に用いてもよい。例えば、他の利用プログラムへの適応例として次のような処理がある。１つには、本実施例で説明した機構はアーカイブ属性を用いないことからバックアップソフトと共存でき、バックアップ系のプログラムに用いることができる。また、最近のファイルのみ処理したいプログラムに適用することで、そのプログラムは、日付のチェックを省いて処理を行うことができる。
【０１７９】
また、更新属性フラグ４１のオンの状態の継続期間は、本実施例では時間で判断したが、これに限らず、例えば、各種スイッチ及びセンサの信号入力と併用してもよい。例えば、更新属性フラグ４１のオンの状態の継続期間は、ディップスイッチからの情報に加えて、温度センサの情報を組み合わせてもよい。例えば、負荷が高い状態では情報処理装置内部の温度が高いため、温度センサにより計測された温度が所定値より高ければ、スキャンの頻度を減らすために更新属性フラグ４１のオンの状態を短くしてもよい。また、更新検出テーブル回路４は、ハードウェアだけで構成してもよいし、ＲＯＭ（Read  Only  Memory）を用いてファームウェアを使用してもよいし、専用のコンピュータを用いてもよい。
【符号の説明】
【０１８０】
１  情報処理装置
２  ＣＰＵ
３  メモリ
４  更新検出テーブル回路
５  インタフェース
６  ストレージ
７  アドレスバス
８  データバス
４１  更新属性フラグ
６１  ファイルテーブル
６２  データ
９１  利用プログラム
９２  ＯＳ
９３  ファイルシステム
９４  デバイスドライバ
１０１  利用プログラム実行部
１０２  データ読書処理部
１０３  ファイル情報管理部
１０４  属性読取部
１０５  更新情報管理部
１５１  付加指示部
１５２  リセット指示部
１５３  テーブル管理部
１５４  更新検出テーブル
５１１  ＡＮＤ回路
５２１  クロック生成部
５２２  Ｔ型ＦＦ
５２３  遅延付加部
５２４，５２５  ＡＮＤ回路
５３１，５３２  ＳＲラッチ
５４１  ＯＲ回路
【図１】
0006686309.tif 000002
【図２】
0006686309.tif 000003
【図３】
0006686309.tif 000004
【図４】
0006686309.tif 000005
【図５】
0006686309.tif 000006
【図６】
0006686309.tif 000007
【図７】
0006686309.tif 000008
【図８】
0006686309.tif 000009
【図９】
0006686309.tif 000010
【図１０】
0006686309.tif 000011
【図１１Ａ】
0006686309.tif 000012
【図１１Ｂ】
0006686309.tif 000013
【図１２】
0006686309.tif 000014
【図１３】
0006686309.tif 000015
【図１４】
0006686309.tif 000016
【図１５】
0006686309.tif 000017
【図１６】
0006686309.tif 000018
【図１７】
0006686309.tif 000019
【図１８】
0006686309.tif 000020
【図１９】
0006686309.tif 000021
【図２０】
0006686309.tif 000022