(57)【要約】【課題】情報処理システムにおけるＩ／Ｏ処理に関し、情報処理システムに重大な障害が発生する確率を低減する。【解決手段】記憶装置１６００に対するデータＩ／Ｏ要求の処理方法であって、記憶装置１６００に管理されるファイル又はディレクトリについて、ディレクトリの階層構造に基づいて、各ファイル又はディレクトリについての重要度３１０１を設定し、設定された重要度３１０１をファイル又ディレクトリに対応づけて管理し、記憶装置１６００に対する複数のデータＩ／Ｏ要求を受け付け、受け付けた各データＩ／Ｏ要求に指定されているファイル又はディレクトリに対応づけられている重要度３１０１に基づいて、データＩ／Ｏ要求の処理順序を決定し、決定した処理順序で、記憶装置１６００に対してデータＩ／Ｏ要求に対応する処理を行うようにする。【選択図】図１
2007286983.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ及びメモリを含んで構成され、記憶装置に記憶されるデータをファイルシステムによって管理する情報処理システムによって行われる、前記記憶装置に対するデータＩ／Ｏ要求の処理方法であって、
前記記憶装置に管理されるファイル又はディレクトリについて、前記ディレクトリの階層構造に基づいて、前記各ファイル又はディレクトリについての重要度を設定するステップと、
前記メモリ又は前記記憶装置が、設定された前記重要度を前記ファイル又はディレクトリに対応づけて記憶するステップと、
前記記憶装置に対する複数のデータＩ／Ｏ要求を受け付けるステップと、
受け付けた前記各データＩ／Ｏ要求に指定されているファイル又はディレクトリに対応づけられている前記重要度に基づいて、前記データＩ／Ｏ要求の処理順序を決定するステップと、
決定した前記処理順序で、前記記憶装置に対して前記データＩ／Ｏ要求に対応する処理を行うステップと
を含むこと
を特徴とするデータＩ／Ｏ処理方法。
【請求項２】
請求項１に記載のデータＩ／Ｏ処理方法であって、
前記記憶装置に管理されるファイル又はディレクトリについて、前記ディレクトリの階層構造に基づいて、前記各ファイル又はディレクトリに付与する重要度を設定する前記ステップは、配下に有するファイル又はディレクトリの数が多いディレクトリほど、前記データＩ／Ｏ要求の処理順序が優先されるように、前記重要度を設定するステップであること
を特徴とするデータＩ／Ｏ処理方法。
【請求項３】
請求項１に記載のデータＩ／Ｏ処理方法であって、
前記記憶装置に管理されるファイル又はディレクトリについて、前記ディレクトリの階層構造に基づいて、前記各ファイル又はディレクトリに付与する重要度を設定する前記ステップは、前記ディレクトリの上位にあるファイル又はディレクトリほど、前記データＩ／Ｏ要求の処理順序が優先されるように、前記重要度を設定するステップであること
を特徴とするデータＩ／Ｏ処理方法。
【請求項４】
請求項１に記載のデータＩ／Ｏ処理方法であって、
前記メモリ又は前記記憶装置が、前記記憶装置に管理されているファイル又はディレクトリに対応づけて、前記ファイル又は前記ディレクトリのその時点での被参照数を記憶するステップをさらに含み、
前記記憶装置に管理されるファイル又はディレクトリについて、前記ディレクトリの階層構造に基づいて、前記各ファイル又はディレクトリに付与する重要度を設定する前記ステップは、前記被参照数が高いファイル又はディレクトリほど、前記データＩ／Ｏ要求の処理順序が優先されるように、前記重要度を設定するステップであること
を特徴とするデータＩ／Ｏ処理方法。
【請求項５】
請求項１に記載のデータＩ／Ｏ処理方法であって、
前記ファイル又はディレクトリの利用開始時に前記重要度を示す情報を取得して、取得した前記情報に基づいて前記重要度を設定するステップをさらに含むこと
を特徴とするデータＩ／Ｏ処理方法。
【請求項６】
請求項１に記載のデータＩ／Ｏ処理方法であって、
前記メモリ又は前記記憶装置が、設定された前記重要度を前記ファイル又はディレクトリに対応づけて記憶する前記ステップは、前記メモリ又は前記記憶装置が、前記重要度を、前記ファイルシステムにおける前記ファイル又はディレクトリのメタデータとして記憶するステップであること
を特徴とするデータＩ／Ｏ処理方法。
【請求項７】
請求項１に記載のデータＩ／Ｏ処理方法であって、
前記メモリ又は前記記憶装置が、設定された前記重要度を前記ファイル又はディレクトリに対応づけて記憶する前記ステップは、前記メモリ又は前記記憶装置が、前記重要度を、前記ファイルシステムにおける拡張属性ブロックに記憶するステップであること
を特徴とするデータＩ／Ｏ処理方法。
【請求項８】
ＣＰＵ及びメモリを含んで構成され、記憶装置に記憶されるデータをファイルシステムによって管理する情報処理システムにおいて実行されるプログラムであって、
前記記憶装置に管理されるファイル又はディレクトリについて、前記ディレクトリの階層構造に基づいて、前記各ファイル又はディレクトリについての重要度を設定する機能と、
前記記憶装置に対する複数のデータＩ／Ｏ要求を受け付ける機能と、
受け付けた前記各データＩ／Ｏ要求に指定されているファイル又はディレクトリに対応づけられている前記重要度に基づいて、前記データＩ／Ｏ要求の処理順序を決定する機能と、
決定した前記処理順序で、前記記憶装置に対して前記データＩ／Ｏ要求に対応する処理を行う機能と
を実現するためのプログラム。
【請求項９】
請求項８に記載のプログラムであって、
前記記憶装置に管理されるファイル又はディレクトリについて、前記ディレクトリの階層構造に基づいて、前記各ファイル又はディレクトリに付与する重要度を設定する前記機能は、配下に有するファイル又はディレクトリの数が多いディレクトリほど、前記データＩ／Ｏ要求の処理順序が優先されるように、前記重要度を設定する機能であること
を特徴とするプログラム。
【請求項１０】
請求項８に記載のプログラムであって、
前記記憶装置に管理されるファイル又はディレクトリについて、前記ディレクトリの階層構造に基づいて、前記各ファイル又はディレクトリに付与する重要度を設定する前記機能は、前記ディレクトリの上位にあるファイル又はディレクトリほど、前記データＩ／Ｏ要求の処理順序が優先されるように、前記重要度を設定する機能であること
を特徴とするプログラム。
【請求項１１】
ＣＰＵ及びメモリを含み、記憶装置に記憶されるデータをファイルシステムによって管理する情報処理システムであって、
前記記憶装置に管理されるファイル又はディレクトリについて、前記ディレクトリの階層構造に基づいて、前記各ファイル又はディレクトリについての重要度を設定し、
前記記憶装置に対する複数のデータＩ／Ｏ要求を受け付け、
受け付けた前記各データＩ／Ｏ要求に指定されているファイル又はディレクトリに対応づけられている前記重要度に基づいて、前記データＩ／Ｏ要求の処理順序を決定し、
決定した前記処理順序で、前記記憶装置に対して前記データＩ／Ｏ要求に対応する処理を行うこと
を特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データＩ／Ｏ処理方法、プログラム、及び情報処理システムに関し、とくに情報処理システムに重大な障害が発生する確率を低減するための技術に関する。
【背景技術】
【０００２】
情報処理システムにおける記憶装置に対するＩ／Ｏ処理において、記憶装置に対するＩ／Ｏ要求の並び替えや、Ｉ／Ｏ要求を処理するタイミングを決定するなど、Ｉ／Ｏスケジューリング方式を工夫することにより、Ｉ／Ｏ処理全体のスループットを向上したり、Ｉ／Ｏのリアルタイム性を維持することが行われている。
【０００３】
例えば、特許文献１には、Ｉ／Ｏ要求にデッドラインを設定し、最もデッドラインが近いＩ／Ｏ要求を先に処理するようにディスクヘッドを移動させ、最もデッドラインが近いＩ／Ｏ要求のデッドラインまでの時間に余裕がある場合には、ディスクヘッドを移動する経路上に存在するデッドラインの近いＩ／Ｏ要求も処理することにより、Ｉ／Ｏ要求に対する処理のリアルタイム性と高いＩ／Ｏスループットを維持するＩ／Ｏスケジューリング方式について記載されている。
【０００４】
また、非特許文献１には、プロセスが同期的な読み込み要求を連続して発行する傾向が現れている一定時間の間、そのプロセスのＩ／Ｏ要求を優先的に処理し、これにより他のプロセスからのＩ／Ｏ要求によって前者のプロセスの処理の進行が妨害されるのを防ぐようにしたＩ／Ｏスケジューリング方式について記載されている。
【０００５】
また、特許文献２には、通常は高優先度のＩ／Ｏ要求を先に処理するが、デッドラインの近い低優先度のＩ／Ｏ要求を先に処理する機会を設け、Ｉ／Ｏのリアルタイム性を維持しつつ、低優先度のＩ／Ｏ要求が無期限に待たされることを防ぐようにしたＩ／Ｏスケジューリング方式について記載されている。
【０００６】
さらに、非特許文献２には、プロセス毎にＩ／Ｏ要求キューを持たせるとともに各Ｉ／Ｏ要求キューに対して均等な帯域幅を与え、これによりプロセス間で公平なＩ／Ｏ処理を実現するようにする技術が記載されている。
【特許文献１】特開平９−５０６６７号公報
【特許文献２】特開２００２−１９７０４６号公報
【非特許文献１】S. Iyer and P. Druschel著「Anticipatory scheduling: A disk scheduling framework to overcome deceptive idleness in synchronous I/O」SOSP 2001.
【非特許文献２】J. Axboe著「Linux Block IO ― present and future」Linux Symposium 2004.
【発明の開示】
【発明が解決しようとする課題】
【０００７】
情報処理システムにおいては、ユーザの不注意やシステム障害の発生によって記憶装置に対する未完了の書き込み要求が失われてしまうと、ファイル内容の破壊や、ファイルシステムの不整合が起きることがある。とくに重要なファイルやディレクトリに関するデータが破損してしまうと、その被害は甚大となる。
【０００８】
ここで前述のいずれのＩ／Ｏスケジューリング方式についても、ファイルの重要性を考慮することなくＩ／Ｏ要求を並び替えているため、これらのＩ／Ｏスケジューリング方式の場合には、重要なファイルやディレクトリに対するＩ／Ｏ要求が先送りされてしまうことがある。このため、Ｉ／Ｏスケジューリングの状態によっては、ユーザの不注意やシステム障害の発生時に書き込み要求を喪失してしまう確率が高くなることがある。
【０００９】
また、ファイルやディレクトリを移動する場合やデータを更新する場合等、ファイルシステムに対して不可分な高レベルな操作が行われる場合には、複数のＩ／Ｏ要求が発生し、それにより不可分な高レベルな操作の開始から終了までに要する時間が長くなることがある。この場合、記憶装置に対する各Ｉ／Ｏ要求についての処理の実行中にシステム障害が発生すると、記憶装置に記憶されているデータに不整合が生じる可能性が高くなる。
【００１０】
本発明は、このような背景に鑑みてなされたもので、システムに重大な障害が発生する確率を低減することが可能なデータＩ／Ｏ処理方法、プログラム、及び情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するための本発明のうちの主たる発明の一つは、ＣＰＵ及びメモリを含んで構成され、記憶装置に記憶されるデータをファイルシステムによって管理する情報処理システムにおける、前記記憶装置に対するデータＩ／Ｏ要求の処理方法であって、前記ＣＰＵが、前記記憶装置に管理されるファイル又はディレクトリについて、前記ディレクトリの階層構造に基づいて、前記各ファイル又はディレクトリについての重要度を設定するステップと、前記メモリ又は前記記憶装置が、設定された前記重要度を前記ファイル又ディレクトリに対応づけて記憶するステップと、前記ＣＰＵが、前記記憶装置に対する複数のデータＩ／Ｏ要求を受け付けるステップと、前記ＣＰＵが、受け付けた前記各データＩ／Ｏ要求に指定されているファイル又はディレクトリに対応づけられている前記重要度に基づいて、前記データＩ／Ｏ要求の処理順序を決定するステップと、前記ＣＰＵが、決定した前記処理順序で、前記記憶装置に対して前記データＩ／Ｏ要求に対応する処理を行うステップとを含むこととする。
【００１２】
このように、本発明にあっては、ディレクトリの階層構造に基づいてファイル又はディレクトリに重要度を設定し、記憶装置に対するデータＩ／Ｏ要求を、Ｉ／Ｏ要求に指定されているファイル又はディレクトリに対応づけられている重要度に基づいて決定される処理順序で処理する。このため、例えば、システム維持の観点から見て重要度の高いファイルやディレクトリについてのＩ／Ｏ要求を優先的に処理させることができる。つまり、本発明によれば、重要度の高いファイルやディレクトリについて、Ｉ／Ｏ要求の発生から完了までの時間を短縮することにより書き込み保証率を向上させることが可能であり、これによりファイルシステムの破壊や情報処理システムの起動障害など、システムに重大な障害が発生する確率を低減することができる。
【発明の効果】
【００１３】
本発明によれば、システムに重大な障害が発生する確率を低減することができる。
【発明を実施するための最良の形態】
【００１４】
＜＜実施例１＞＞
以下、本発明の実施の形態について図面とともに詳細に説明する。図１に本発明の一実施形態として説明する情報処理システム１の構成を示している。情報処理装置の一例として示す計算機１００は、プログラムやデータが記憶されるメモリ１１００、メモリ１１００に記憶されているプログラムを実行するＣＰＵ１２００、データが記憶されるディスクドライブや半導体ディスクなどの記憶装置１６００、及び記憶装置１６００に対するデータのＩ／Ｏ（入出力）を制御するディスクコントローラ１５００などのハードウエアを含んでいる。
【００１５】
計算機１００には、液晶ディスプレイやブラウン管ディスプレイなどの出力装置１３００、キーボードやマウスなどの入力装置１４００が接続している。また、計算機１００ではオペレーティングシステムが動作しており、計算機１００は、記憶装置１６００に記憶されるデータをファイルシステム２０００によって管理することができる。
【００１６】
メモリ１１００上には、ファイル２１００に対する操作を行なうアプリケーションプログラム１１１０、重要度情報取得・設定プログラム１１３０、及びＩ／Ｏ処理プログラム群１１９０が記憶されている。
【００１７】
アプリケーションプログラム１１１０は、ファイル操作処理プログラム１１２０を通じてファイル２１００に関する操作を行なう。
【００１８】
重要度情報取得・設定プログラム１１３０は、ファイル又はディレクトリの重要度情報１１６２を取得・設定するためのプログラムである。重要度情報取得・設定プログラム１１３０は、例えば、入力装置１４００に対してユーザが行うコマンド操作に応じて実行される。重要度情報取得・設定プログラム１１３０によって取得された重要度情報は、適宜出力装置１３００に出力されてユーザの利用に供される。また重要度情報取得・設定プログラム１１３０は、ファイル又はディレクトリについての情報である重要度情報１１６２の手動設定に関する処理、手動設定された重要度情報１１６２によるファイルシステム２０００上の重要度情報の更新、ファイル管理テーブル１１６０中の重要度情報によるファイルシステム２０００上の重要度情報の上書き更新などの処理を行う。
【００１９】
Ｉ／Ｏ処理プログラム群１１９０には、ファイル２１００に関する操作を行なうための機能を提供するファイル操作処理プログラム１１２０、Ｉ／Ｏスケジューリングプログラム１１４０、デバイスドライバプログラム１１５０、ファイル管理テーブル１１６０、及びＩ／Ｏ要求キューテーブル１１７０が含まれる。ファイル管理テーブル１１６０は、ファイルに関する操作に際して必要となる情報が管理され、ディレクトリの親子関係情報である依存関係情報１１６１、ファイル又はディレクトリの重要度に関する情報である重要度情報１１６２、ファイル名、ファイルサイズ、及び記憶装置１６００中の位置を示す情報などが含まれる。
【００２０】
Ｉ／Ｏ処理プログラム群１１９０のうち、ファイル操作処理プログラム１１２０は、ファイル管理テーブル生成部１１２１、重要度決定部１１２２、及びＩ／Ｏ要求生成部１１２３などのプログラムが含まれる。このうちファイル管理テーブル生成部１１２１は、ファイル管理テーブル１１６０を生成する。重要度決定部１１２２は、ファイル管理テーブル１１６０の依存関係情報１１６１を利用してファイル又はディレクトリの重要度情報１１６２を算出し、算出した重要度情報をファイル管理テーブル１１６０に記憶する。Ｉ／Ｏ要求生成部１１２３は、ファイル操作において記憶装置１６００に対するＩ／Ｏが必要な場合、Ｉ／Ｏ要求を生成し、Ｉ／Ｏスケジューリングプログラム１１４０に渡す。
【００２１】
Ｉ／Ｏ処理プログラム群１１９０のうち、Ｉ／Ｏスケジューリングプログラム１１４０は、Ｉ／Ｏ要求生成部１１２３からＩ／Ｏ要求を受け取り、受け取ったＩ／Ｏ要求が持つ優先度に基づきＩ／Ｏ要求の処理順序やタイミングを決定する。Ｉ／Ｏスケジューリングプログラム１１４０は、決定した処理順序に従って、Ｉ／Ｏ要求１１８０をＩ／Ｏ要求キューテーブル１１７０に記憶する。Ｉ／Ｏ要求１１８０は、記憶装置１６００へのＩ／Ｏを行なうために必要な情報を保持するデータ構造を有し、Ｉ／Ｏ要求１１８０には少なくとも優先度１１８１を示す情報が含まれている。優先度１１８１とは、Ｉ／Ｏ要求１１８０の処理順序に関する優先度を示す数値である。
【００２２】
Ｉ／Ｏ処理プログラム群１１９０のうち、デバイスドライバプログラム１１５０は、Ｉ／Ｏスケジューリングプログラム１１４０が指示したタイミングでＩ／Ｏ要求１１８０をＩ／Ｏ要求キューテーブル１１７０から順に取り出し、取り出したＩ／Ｏ要求を処理する。Ｉ／Ｏ要求１１８０の処理は、ディスクコントローラ１５００を通じて記憶装置１６００内のデータが読み書きされることによって実現される。
【００２３】
図２に記憶装置１６００に記憶されているファイルシステム２０００の論理的な構成を示している。記憶装置１６００に記憶されている各ファイル２１００，２１０１，２１０２は、メタデータ２１１０、及び、データ２１２０を含んでいる。メタデータ２１１０は、各ファイル２１００，２１０１，２１０２の構成情報の集合である。メタデータ２１１０には、ファイルへのアクセス日時、アクセス許可情報、ファイルサイズ、ファイルを構成するデータの記憶装置１６００における記憶位置を示す情報などが含まれる。メタデータ２１１０は、メモリ１１００上のファイル管理テーブル１１６０の重要度情報１１６２と同等の情報を含む。ファイル管理テーブル１１６０の重要度情報１１６２と、ファイルシステム２０００の重要度情報１１６２とは、それぞれが示す内容が同期するように管理される。データ２１２０は、ファイルの本体データを示す。なお、ディレクトリについても図２と同様の論理構成で管理される。
【００２４】
図３に図１における重要度情報１１６２の一例を示している。同図において、左列の項目３１００は、情報の種類を表し、重要度情報１１６２には、少なくとも、重要度３１０１、重要度設定状態３１０２、及び継承フラグ３１０３の三つの項目に対応する情報が含まれる。右列の設定値３２００は、左列の各項目に対する設定値を表す。
【００２５】
重要度３１０１は、ファイル又はディレクトリの重要度を表す値である。本実施例の場合、重要度３１０１に設定されている値が大きいほど、重要なファイル又はディレクトリである。重要度設定状態３１０２は、重要度３１０１の設定値３２０１がどのように設定されたかを示す。本実施例では、重要度設定状態３１０２は、手動設定済み、自動設定済み、未設定のうちのいずれかの値をとるものとする。継承フラグ３１０３は、親ディレクトリの重要度情報１１６２を子ファイル及び子ディレクトリに引き継ぐかどうかを示す。本実施例では、継承フラグ３１０３は、継承する／継承しないのうち、いずれかの値をとる。
【００２６】
＜動作説明＞
次に、以上の構成からなる情報処理システム１の具体的な動作について説明する。図４は、アプリケーションプログラム１１１０によってファイル操作が行われる際の、Ｉ／Ｏ処理プログラム群１１９０の動作の一例を示すフローチャートである。また、図５から図９は、図４のフローチャートに示す処理の詳細である。図５は、ファイル管理テーブル生成部１１２１における処理４００２の詳細である。図６は、重要度決定部１１２２における処理４００４の詳細である。図７及び図８は、図６に示される処理に対応する処理である。図９は、Ｉ／Ｏ要求生成部１１２３における処理４００５の詳細である。なお、図５から図９に示す処理は、いずれも図４のフローチャートに対してサブルーチンとして動作する。
【００２７】
以下、図４を中心として情報処理システム１の具体的な動作について説明する。アプリケーションプログラム１１１０は、ファイル操作処理プログラム１１２０を通じてファイル操作を行なう。図４に示すように、アプリケーションプログラム１１１０によってファイルに対する操作が開始されると、まず、ファイル管理テーブル生成部１１２１が、操作対象となるファイルについてのファイル管理テーブル１１６０が生成済みであるかどうかを判断する（ステップ４００１）。ファイル管理テーブル１１６０が生成済みである場合には（ステップ４００１：ＹＥＳ）、ステップ４００５に進む。ファイル管理テーブル１１６０が未生成である場合には（ステップ４００１：ＮＯ）、ファイル管理テーブル生成部１１２１によってファイル管理テーブル１１６０が生成され、生成したファイル管理テーブル１１６０内の重要度情報１１６２が初期化される（ステップ４００２）。
【００２８】
次に、重要度決定部１１２２が、重要度情報の中の重要度設定状態３１０２の設定値が「設定済み」であるかどうかを判断する（ステップ４００３）。ここで重要度設定状態３１０２の設定値が「設定済み」である場合には（ステップ４００３：ＹＥＳ）、ステップ４００５に進む。一方、重要度設定状態３１０２の設定値が「設定済み」でなかった場合、すなわち、重要度設定状態３１０２の設定値が「未設定」であった場合には（ステップ４００３：ＮＯ）、ステップ４００４に進む。ステップ４００４では、重要度決定部１１２２により重要度３１０１の決定と、重要度情報１１６２の更新とが行われ（ステップ４００４）、その後、ステップ４００５に進む。
【００２９】
ステップ４００５では、Ｉ／Ｏ要求生成部１１２３が、要求されたファイルに対する操作を実現するためのＩ／Ｏ要求１１８０を生成し、生成したＩ／Ｏ要求をＩ／Ｏスケジューリングプログラム１１４０に渡す。このとき、Ｉ／Ｏ要求生成部１１２３は、ファイルの重要度３１０１に基づいてＩ／Ｏ優先度１１８１を算出し、算出した優先度をＩ／Ｏ要求１１８０とともに記憶する。
【００３０】
Ｉ／Ｏスケジューリングプログラム１１４０は、Ｉ／Ｏ要求１１８０を受け取ると、受け取ったＩ／Ｏ要求１１８０の優先度１１８１に基づいて、当該Ｉ／Ｏ要求１１８０の処理順序を決定する。そして、Ｉ／Ｏスケジューリングプログラム１１４０は、決定した順序に従って、当該Ｉ／Ｏ要求１１８０をＩ／Ｏ要求キューテーブル１１７０に記憶する（ステップ４００６）。なお、この際、Ｉ／Ｏスケジューリングプログラム１１４０は、優先度１１８１の高いＩ／Ｏ要求１１８０を優先的に処理するアルゴリズムを用いる。なお、このアルゴリズムは任意のものであってよい。
【００３１】
続いて、デバイスドライバプログラム１１５０は、Ｉ／Ｏスケジューリングプログラム１１４０によって指示されたタイミングで、Ｉ／Ｏ要求キューテーブル１１７０からＩ／Ｏ要求１１８０を取り出し、ディスクコントローラ１５００を介して記憶装置１６００内のデータを読み書きする（ステップ４００７）。
【００３２】
図５は、図４におけるステップ４００２のファイル管理テーブルの生成処理、及び、重要度情報の初期化処理の詳細を示すフローチャートである。
【００３３】
まず、ファイル管理テーブル生成部１１２１が、メモリ１１００上にファイル管理テーブル１１６０のための領域を確保し（ステップ５００１）、重要度情報１１６２を既定値に初期化する（ステップ５００２）。本実施例では、重要度設定状態３１０２を「未設定」に、継承フラグ３１０３を「継承しない」に、夫々設定している。
【００３４】
次に、ファイル管理テーブル生成部１１２１は、対象のファイル又はディレクトリが既存のファイル又はディレクトリであるかを調べる（ステップ５００３）。ここで対象のファイル又はディレクトリが既存のファイル又はディレクトリであれば（ステップ５００３：ＹＥＳ）、ファイル管理テーブル生成部１１２１は、そのファイル又はディレクトリの重要度情報１１６２をメタデータ２１１０と共に記憶装置１６００から読み込み、ファイル管理テーブル１１６０に記憶する（ステップ５００４）。なお、この読み込み処理は、図４のステップ４００５〜４００７と同様の手順で行なう。
【００３５】
次に、ファイル管理テーブル生成部１１２１は、操作対象がディレクトリであるかどうかを判断する（ステップ５００５）。ここで操作対象がディレクトリでない場合には（ステップ５００５：ＮＯ）、ステップ５００７に進む。
【００３６】
一方、操作対象がディレクトリであった場合には（ステップ５００５：ＹＥＳ）、当該ディレクトリと、当該ディレクトリの子ファイル及び子ディレクトリとの親子関係情報をファイルシステム２０００から取得する。そして、ファイル管理テーブル生成部１１２１は、取得した親子関係情報を、依存関係情報１１６１としてファイル管理テーブル１１６０に記憶する（ステップ５００６）。
【００３７】
ステップ５００７では、ファイル管理テーブル生成部１１２１は、操作対象になっているファイル又はディレクトリの親ディレクトリ情報をパス名などから調べ、これにより得られた情報を依存関係情報１１６１としてファイル管理テーブル１１６０に記憶する。またファイル管理テーブル生成部１１２１は、以後、取得した親ディレクトリ情報を参照できるように、図５のフローチャートの手順に従って、親ディレクトリのファイル管理テーブル１１６０をメモリ１１００に生成する（ステップ５００７）。
【００３８】
図６は、ステップ４００４の重要度決定処理の詳細を示すフローチャートである。まず、重要度決定部１１２２は、ファイルシステムから重要度の手動設定情報を探す（ステップ６００１）。手動設定情報は、例えば、対象になっているファイルと同じディレクトリに格納されている所定の名前（例えば、「.importance」等）のファイルに、ファイル名と重要度とを対応づけて記述しておく。また、手動設定情報は、アプリケーションプログラム１１１０からファイル操作処理プログラム１１２０に、例えばファイルアクセスの開始時にパラメータとして渡すようにしても良い。
【００３９】
重要度決定部１１２２は、重要度の手動設定情報が見つかったかどうか判断し（ステップ６００２）、手動設定情報が見つかった場合には（ステップ６００２：ＹＥＳ）、対象になっているファイル又はディレクトリの重要度情報１１６２の重要度３１０１を、手動設定情報に指定されている値に、また重要度設定状態３１０２を「手動設定済み」に、継承フラグ３１０３を「継承する」に、それぞれ設定する（ステップ６００８）。さらに、重要度決定部１１２２は、親子関係にあるファイル及びディレクトリの重要度の更新処理を行う（ステップ６００９）。
【００４０】
手動設定情報が見つからなかった場合には（ステップ６００２：ＮＯ）、重要度決定部１１２２は、継承フラグ３１０３による重要度３１０１の決定を試みる（ステップ６００３、６００４、６００７）。まず、重要度決定部１１２２は、操作対象となっているファイル又はディレクトリの親ディレクトリの重要度情報１１６２を順に調べ、重要度情報１１６２の重要度設定状態３１０２が「手動設定済み」であり、かつ、継承フラグ３１０３が「継承する」になっているものを探す（ステップ６００３）。ここで親ディレクトリの探索は、ファイル管理テーブル１１６０の依存関係情報１１６１を用いて行なう。なお、依存関係情報１１６１については、ステップ６００６で設定されている。
【００４１】
次に、重要度決定部１１２２は、該当する親ディレクトリが見つかったかどうか判断し（ステップ６００４）、見つかった場合には、操作対象となっているファイル又はディレクトリの重要度情報１１６２に、見つかった親ディレクトリの重要度情報１１６２を複製する（ステップ６００７）。
【００４２】
ここで操作対象のファイル又はディレクトリの重要度３１０１は、親ディレクトリの重要度以下の値であれば良く、例えば、親ディレクトリの重要度−１となるように更新してもよい。なお、このように、親ディレクトリの重要度をその配下にあるファイルやディレクトリよりも高い値に設定するようにしているのは、例えば、あるファイル又はディレクトリの親ディレクトリが破壊されてしまうと、その親ディレクトリの配下に存在するファイルやディレクトリにアクセスすることができなくなってしまうので、親ディレクトリはその配下に存在するファイル又はディレクトリよりも重要である、という考えに基づいている。
【００４３】
一方、ステップ６００３において、該当する親ディレクトリが見つからなかった場合には、重要度の自動算出を行い（ステップ６００５）、自動算出した重要度をファイル管理テーブル１１６０の重要度情報１１６２に記憶する。なお、この際、重要度設定状態３１０２は「自動設定済み」に、継承フラグ３１０３は「継承しない」に設定する（ステップ６００６）。
【００４４】
図７は、図６のステップ６００５の重要度の自動算出処理の詳細を示すフローチャートである。まず、重要度決定部１１２２は、重要度の自動算出の対象になっているファイル又はディレクトリが、ディレクトリツリーの末端であるかどうかを、依存関係情報１１６１から調べ（ステップ７００１）、末端のファイル又はディレクトリであれば（ステップ７００１：ＹＥＳ）、そのファイル又はディレクトリの重要度を１とする（ステップ７００４）。なお、重要度は必ずしも１でなくてもよく、低い重要度を意味する値であるならば、重要度は任意の値であってよい。
【００４５】
一方、重要度の自動算出の対象になっているファイル又はディレクトリが末端のファイル又はディレクトリでない場合には（ステップ７００１：ＮＯ）、上記ファイル又はディレクトリの全ての子ファイル及び子ディレクトリの重要度３１０１を求め（ステップ７００２）、それらの総和＋１を重要度とする（ステップ７００３）。ここで子ファイル及び子ディレクトリの重要度は、図４のステップ４００２〜４００４の手順によって求める。なお、ステップ７００３では、子ファイル及び子ディレクトリの重要度の総和＋１としているが、総和に加算する値は必ずしも１である必要はなく、０以上の値であればよい。
【００４６】
なお、重要度は、ファイル又はディレクトリの利用カウンタの値（その時点における被参照数）に基づいて設定するようにしてもよい。ここで利用カウンタは、例えば、オペレーティングシステムが、安全にリソースを解放できるようにする目的で、ファイル又はディレクトリに対応づけてメモリ１１００に管理している情報であり、より多くのオブジェクトから参照されている程、大きな値に設定される数値である。例えば、利用カウンタ値が大きいファイルやディレクトリには高い重要度を設定し、これにより処理が優先されるようにする。
【００４７】
図８は、図６のステップ６００９の重要度更新処理の詳細を示すフローチャートである。重要度更新処理は、あるファイル又はディレクトリの重要度が変更されたのに起因して行われる。重要度決定部１１２２は、まず重要度更新処理のきっかけとなったファイル又はディレクトリの親ディレクトリをファイル管理テーブル１１６０の依存関係情報１１６１に基づいて探索し、その親ディレクトリの重要度情報を調べ、きっかけとなったファイル又はディレクトリよりも小さい重要度３１０１を持つ親ディレクトリを探す（ステップ８００１）。
【００４８】
該当する親ディレクトリが見つかった場合（ステップ８００２：ＹＥＳ）、重要度決定部１１２２は、見つかった親ディレクトリの重要度３１０１を、各ファイル又はディレクトリの重要度３１０１以上の値に更新する（ステップ８００３）。なお、ステップ８００１〜８００３の処理は、ルートディレクトリまでの経路上に存在する各ファイル又はディレクトリについて繰り返し行われる。
【００４９】
該当する親ディレクトリが見つからなくなると（ステップ８００２：ＮＯ）、次に、重要度決定部１１２２は、重要度更新処理のきっかけとなったファイル又はディレクトリ配下の子ファイル又は子ディレクトリを依存関係情報１１６１を頼りに探索し、上記ファイル又はディレクトリよりも大きい重要度３１０１を持つものを探す（ステップ８００４）。なお、この処理は、重要度更新処理のきっかけとなった上記ファイル又はディレクトリの配下の各ファイル又はディレクトリについて再帰的に行われる。
【００５０】
該当する子ファイル又は子ディレクトリが見つかった場合には（ステップ８００５：ＹＥＳ）、重要度決定部１１２２は、見つかった子ファイル又は子ディレクトリの重要度設定状態３１０２が自動設定済みとなっているかどうか判断する（ステップ８００６）。ここで重要度設定状態３１０２が自動設定済みとなっていれば（ステップ８００６：ＹＥＳ）、重要度決定部１１２２は、見つかった子ファイル又は子ディレクトリの重要度３１０１を、自分の重要度３１０１以下の値に更新する（ステップ８００７）。一方、手動設定済みとなっていれば（ステップ８００６：ＮＯ）、そのファイル又はディレクトリの重要度情報１１６２は更新せず、それ以上深い探索は行なわない。重要度決定部１１２２は、該当ファイル又はディレクトリが見つからなくなるまで以上の手順を繰り返す。
【００５１】
図９は、図４のステップ４００５のＩ／Ｏ要求生成処理の詳細を示すフローチャートである。まずＩ／Ｏ要求生成部１１２３は、アプリケーションプログラム１１１０がファイル操作処理プログラム１１２０に対して要請したファイル操作に従って、Ｉ／Ｏ要求１１８０を生成する（ステップ９００１）。このとき、複数のＩ／Ｏ要求１８８０が生成されることもある。
【００５２】
次に、Ｉ／Ｏ要求生成部１１２３は、生成されたＩ／Ｏ要求１８８０が、書き込み要求を示すものであるか判断する（ステップ９００２）。書き込み要求であった場合には（ステップ９００２：ＹＥＳ）、Ｉ／Ｏ要求生成部１１２３は、Ｉ／Ｏの対象となるファイルのファイル管理テーブル１１６０を参照して重要度３１０１を取得し（ステップ９００３）、取得した重要度をＩ／Ｏ優先度に変換し、その優先度をＩ／Ｏ要求１１８０内の優先度１１８１の記憶エリアに記憶する（ステップ９００４）。
【００５３】
ここで重要度から優先度への変換方式は、高重要度ほど高優先度となる方式であれば任意の方式であってよい。例えば、重要度に正の定数を乗じた値を優先度としたり、テーブルを用いて重要度を優先度に変換するようにしても良い。なお、重要度をそのまま優先度としないようにすることで、重要度の決定方法とＩ／Ｏスケジューラとの間の独立性が高まる。すなわち、重要度の決定方法を換えたことにより重要度のとりうる値の範囲が変わったとしても、重要度から優先度への変換処理を修正するだけでよく、Ｉ／Ｏスケジューラに変更を加える必要がない。逆にＩ／Ｏスケジューラの処理を変更し、Ｉ／Ｏスケジューラが受け入れ可能な優先度の値の範囲が変わったとしても、変換処理だけを修正すればよい。
【００５４】
ステップ９００２において、Ｉ／Ｏ要求が書き込み要求でないと判断した場合、すなわち、読み込み要求であった場合には（９００２：ＮＯ）、ファイルの重要度３１０１に関わらず、特定の優先度をＩ／Ｏ要求１１８０に設定する（ステップ９００５）。
【００５５】
＜重要度情報の設定等＞
図１０は、重要度情報設定・表示プログラム１１３０を利用した、重要度情報１１６２へのアクセス処理の動作を示すフローチャートである。ユーザが入力装置１４００によって重要度情報設定・表示プログラム１１３０を実行すると、重要度情報設定・表示プログラム１１３０は、どのオペレーションが指定されたか判断する（ステップ１０００１）。
【００５６】
まず、指定されたオペレーションがＧＥＴオペレーションであった場合には、重要度情報設定・表示プログラム１１３０は、ファイル操作処理プログラム１１２０に、指定したファイルの重要度情報の取得を要請する（ステップ１０００２）。その後、ファイル操作処理プログラム１１２０は、ファイル管理テーブル１１６０の重要度情報１１６２を、重要度情報設定・表示プログラム１１３０に返す（ステップ１０００３）。
【００５７】
このとき、ファイル管理テーブル１１６０がメモリ１１００に存在しない場合には、ファイル管理テーブル生成部１１２１を通じてファイル管理テーブル１１６０を生成する。重要度情報１１６２を受け取った重要度情報設定・表示プログラム１１３０は、取得した重要度情報を出力装置１３００に出力する（ステップ１０００４）。
【００５８】
ステップ１０００１において、指定されたオペレーションがＳＥＴオペレーションであった場合には、重要度情報設定・表示プログラム１１３０は、ファイル操作処理プログラム１１２０に、指定ファイルの重要度情報１１６２の設定を要請する（ステップ１０００５）。ファイル操作処理プログラム１１２０は、上記要請に応じて指定ファイルのファイル管理テーブル１１６０内に指定された重要度情報１１６２を記憶する（ステップ１０００６）。
【００５９】
このとき、ファイル管理テーブル１１６０がメモリ１１００に存在しない場合には、ファイル管理テーブル生成部１１２１によってファイル管理テーブル１１６０を生成する。次に、指定ファイルの親子関係にあるファイル及びディレクトリの重要度を更新する（図８に示す処理）。またファイルシステム２０００の重要度情報１１６２についても、同様に更新する（ステップ１０００８）。但し、ステップ１０００８の更新処理は非同期的に行なっても良く（遅延書き込み）、例えば、メタデータ２１１０が更新されるタイミングで記憶装置１６００に書き出すようにしても良い。
【００６０】
ステップ１０００１において、指定されたオペレーションがＳＹＮＣオペレーションであった場合には、重要度情報設定・表示プログラム１１３０は、ファイル操作処理プログラム１１２０に重要度情報の記憶装置１６００への書き出し要請をする（ステップ１０００９）。ファイル操作処理プログラム１１２０は、メモリ１１００のファイル管理テーブル１１６０内の重要度情報１１６２を、ファイルシステム２０００の所定の位置に書き出す（ステップ１００１０）。この書き込みは同期的に行なう。なお、メモリ１１００に該当ファイル管理テーブル１１６０が存在しない場合には、重要度情報１１６２は変更されてないことを意味するため、ファイル操作処理プログラム１１２０は特に何もしない。
【００６１】
以上で重要度情報取得・設定プログラム１１３０の実行を終了し、再びユーザが当該プログラムを実行するまで、基本的に重要度情報取得・設定プログラム１１３０は動作しない。
【００６２】
＜＜実施例２＞＞
図１１のフローチャートは、実施例１における重要度の自動算出処理（図７）の代替案である。なお、本実施例においては、重要度の最大値と最小値を予め規定しておく必要があるが、ここでは重要度の最大値は１００、最小値は０であるものとして説明する。
【００６３】
まず重要度決定部１１２２は、処理の対象になっているファイル又はディレクトリがルートディレクトリかどうかを調べる（ステップ１１００１）。ここでルートディレクトリであれば（ステップ１１００１：ＹＥＳ）、そのディレクトリの重要度を最大値１００とする（ステップ１１００６）。一方、ステップ１１００１において、ルートディレクトリでなかった場合には（ステップ１１００１：ＮＯ）、重要度決定部１１２２は、親ディレクトリの重要度を求め（ステップ１１００２）、処理の対象になっているファイル又はディレクトリの重要度を、親ディレクトリの重要度−１とする（ステップ１１００３）。次に、重要度決定部１１２２は、求めた重要度が最小値より小さいか否かを確認し（ステップ１１００４）、最小値より小さければ（１１００４：ＹＥＳ）、注目しているファイル又はディレクトリの重要度を最小値０にする（ステップ１１００５）。
【００６４】
図１２は、親ディレクトリの重要度を求めるステップ１１００２の処理を説明するフローチャートである。この処理は図１１のフローチャートに対してサブルーチンとして動作する。
【００６５】
同図に示すように、まず、ファイル管理テーブル生成部１１２１が、操作対象となるファイルについてのファイル管理テーブル１１６０が生成済みであるかどうかを判断する（ステップ４００１）。ファイル管理テーブル１１６０が生成済みであれば（ステップ４００１：ＹＥＳ）、図１２に示す処理は終了し、図１１のステップ１１００３の処理に進む。ファイル管理テーブル１１６０が未生成であれば（ステップ４００１：ＮＯ）、ファイル操作処理プログラム１１２０のサブルーチンであるファイル管理テーブル生成部１１２１によってファイル管理テーブル１１６０が生成され、生成したファイル管理テーブル１１６０内の重要度情報１１６２が初期化される（ステップ４００２）。
【００６６】
次に、重要度決定部１１２２が、重要度情報の中の重要度設定状態３１０２の設定値が「設定済み」であるかどうか判断する（ステップ４００３）。ここで設定値が「設定済み」であれば（ステップ４００３：ＹＥＳ）、図１２に示す処理は終了し、図１１のステップ１１００３の処理に進む。一方、設定値が「設定済み」でなかった場合、すなわち、重要度設定状態３１０２の設定値が「未設定」であった場合は（ステップ４００３：ＮＯ）、ステップ４００４に進み、重要度決定部１１２２によって重要度３１０１の決定と、重要度情報１１６２の更新が行われ（ステップ４００４）、その後、図１２に示す処理が終了して図１１のステップ１１００３の処理に進む。
【００６７】
本方式によれば、実施例１の方式に比べて処理コストを抑えることができ、かつ、ファイルシステムの互換性も確保することができる。
【００６８】
＜＜実施例３＞＞
図１３は、図２に示されるファイルシステム２０００への重要度情報１１６２の記憶方法の別の形態であり、ファイルシステム２０００上のファイルの一つとして重要度情報ファイルを設けた場合における、重要度情報ファイル１３０００を示すブロック図である。重要度情報ファイル１３０００は、例えば、「/.importance」といったパス名の特別な意味を持ったファイルであり、ファイルシステム２０００上の各ファイル及びディレクトリの重要度情報１１６２をまとめて記憶する。
【００６９】
重要度情報ファイル１３０００は、通常のファイルと同様に、メタデータ１３１００とデータ１３２００とから成る。実施例１（図２）の場合と異なり、メタデータ１３１００は重要度情報１１６２を含まない。データ１３２００は、ファイル内のデータを示し、この中にファイルと重要度情報の対応関係を列挙したテーブル１３３００が含まれる。
【００７０】
テーブル１３３００の左列のパス名１３３１０は、ディレクトリ階層中のファイルを特定するための文字列を記憶する領域であり、右列の重要度情報１３３２０は、ファイル又はディレクトリの重要度情報１１６２が記憶される領域である。また行１３３１１は、パス名がパス名１であるファイルに関して、重要度情報１１６２が重要度情報１であることを意味する。行１３３１２、１３３１３についても同様である。
【００７１】
重要度情報ファイル１３０００は、各ディレクトリの配下に特定のファイル名で配置するようにしても良い。この場合、テーブル１３３００は、各ディレクトリの直下に存在するファイル及びディレクトリについてのみ記載する。ファイル管理テーブル生成部１１２１が重要度情報１１６２にアクセスする場合は、対象ファイルと同じディレクトリにある重要度情報ファイル１３０００にアクセスする。
【００７２】
本実施例によれば、ファイルのメタデータ２１１０領域に重要度情報１１６２を記憶するための領域を設ける必要がなく、従来ファイルシステムとの間の互換性を維持することができる。
【００７３】
＜＜実施例４＞＞
図１４は図２に示されるファイルシステム２０００への重要度情報１１６２の記憶方法の別の実施例を表すブロック図である。本実施例では、拡張属性ブロックを有するファイルシステムにおいて、拡張属性ブロック内に各ファイルの重要度情報を記憶するようにしている。ここで拡張属性ブロックとは、ファイルやディレクトリに付随する属性情報を列挙した、ファイルシステムにおける領域（ブロック）である。拡張属性ブロックは、通常はファイルのデータや前述のメタデータとは独立した領域（ブロック）に確保される。
【００７４】
拡張属性ブロックには、通常はメタデータ領域に格納されない属性情報が記憶される。これらの属性情報は、例えば、「名前：値」といった形式で記述され、拡張属性ブロック（通常は１ブロックのサイズ）に収まる限り、任意の数の任意の種類の属性を記述することができる。このため、新しい属性情報を拡張属性ブロックに追加しても、ファイルシステムの互換性は確保される。属性情報の具体例としては、ファイルのＭＩＭＥタイプ、キャラクタセット、ユーザ毎のアクセス許可情報などがある。
【００７５】
各属性情報は、上述のように属性名と値の組で記述され、新たな属性として重要度情報を追記しても、ファイルシステムの互換性は保たれる。また、あるファイル又はディレクトリに対応する拡張属性ブロックは、当該ファイル又はディレクトリのメタデータから参照することが可能であり、同じ属性情報であれば、同一の拡張属性ブロックを複数のファイルやディレクトリが参照することもある。
【００７６】
各ファイル１４１０１〜１４１０３は、メタデータ１４２０１〜１４２０３及びデータ１４３０１〜１４３０３から成る。メタデータ１４２０１〜１４２０３は、少なくとも拡張属性ブロックの所在情報１４２１１〜１４２１３を含む。拡張属性ブロックの所在情報１４２１１〜１４２１３は、拡張属性ブロックの記憶装置１６００上の位置を示している。図１３の例では、拡張属性ブロックの所在情報１４２１１、１４２１２は、拡張属性ブロック１４５０１の記憶装置上の位置を指し、拡張属性ブロックの所在情報１４２１３は拡張属性ブロック１４５０２の記憶装置上の位置を指している。
【００７７】
拡張属性ブロックの所在情報１４２１１、１４２１２は、共に同じ拡張属性ブロック１４５０１を指しているが、これは二つのファイルが全く同じ属性情報を持っていることを意味する。拡張属性ブロック１４５０１、１４５０２は、少なくとも重要度情報１４５１１、１４５１２を含む。
【００７８】
本実施例によれば、一つの拡張属性ブロックを複数のファイルやディレクトリから参照することができるため、あるディレクトリ配下のファイル及びディレクトリの重要度を容易に一括変更することができる。すなわち、あるディレクトリ配下の全てのファイル、ディレクトリについて、同一の拡張属性ブロックを指すように予め該メタデータ２１１０を設定しておけば、上記拡張属性ブロック内に記載した重要度情報が変更された場合に上記各ファイル、ディレクトリの重要度情報が一括変更されることになる。
【００７９】
なお、以上の実施形態の説明は本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明はその趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることは勿論である。
【図面の簡単な説明】
【００８０】
【図１】本発明の一実施形態として説明する情報処理システム１の構成を示す図である。
【図２】本発明の一実施形態として説明するファイルシステム２０００の論理的な構成を示す図である。
【図３】本発明の一実施形態として説明する重要度情報１１６２の一例を示す図である。
【図４】本発明の一実施形態として説明するＩ／Ｏ処理プログラム群１１９０の動作の一例を示すフローチャートである。
【図５】本発明の一実施形態として説明する図４に示すファイル管理テーブル生成部１１２１における処理４００２の詳細を示すフローチャートである。
【図６】本発明の一実施形態として説明する重要度決定部１１２２における処理４００４の詳細を示すフローチャートである。
【図７】本発明の一実施形態として説明する図６における重要度の自動算出手順を示すフローチャートである。
【図８】本発明の一実施形態として説明する図６における親子関係にあるファイル又はディレクトリの重要度の更新手順を示すフローチャートである。
【図９】本発明の一実施形態として説明する図４における重要度に基づいたＩ／Ｏ優先度付きのＩ／Ｏ要求を生成する手順を示すフローチャートである。
【図１０】本発明の一実施形態として説明する重要度情報設定・表示プログラム１１３０の処理手順を示すフローチャートである。
【図１１】本発明の一実施形態として説明する図７に示される重要度の自動算出手順の代替案を示すフローチャートである。
【図１２】本発明の一実施形態として説明する図１１に示される親ディレクトリの重要度を求めるステップ１１００２の処理を説明するフローチャートである。
【図１３】本発明の一実施形態として説明する図２に示されるファイルシステム２０００への重要度情報の記憶方法の代替案を示すブロック図である。
【図１４】本発明の一実施形態として説明する図２に示されるファイルシステムへの重要度情報の記憶方法の代替案を示すブロック図である。
【符号の説明】
【００８１】
１  情報処理システム
１００  計算機
１１２１  ファイル管理テーブル生成部
１１２２  重要度決定部
１１２３  Ｉ／Ｏ要求生成部
１１４０  Ｉ／Ｏスケジューリングプログラム
１１６０  ファイル管理テーブル
１１６２  重要度情報
２０００  ファイルシステム
３１０１  重要度
【図１】
2007286983.tif 000003
【図２】
2007286983.tif 000004
【図３】
2007286983.tif 000005
【図４】
2007286983.tif 000006
【図５】
2007286983.tif 000007
【図６】
2007286983.tif 000008
【図７】
2007286983.tif 000009
【図８】
2007286983.tif 000010
【図９】
2007286983.tif 000011
【図１０】
2007286983.tif 000012
【図１１】
2007286983.tif 000013
【図１２】
2007286983.tif 000014
【図１３】
2007286983.tif 000015
【図１４】
2007286983.tif 000016