(57)【要約】【課題】処理プロセスの実行中にクラッシュが発生したときに、クラッシュしたときのデータを可能な限り保持しながら、迅速に処理プロセスを再開できるプロセス管理システムを提供する。【解決手段】判定ユニットが、検出されたクラッシュは処理プロセスで用いたデータに起因するクラッシュではないと判定したときには、処理ユニットが、クラッシュを発生した処理プロセスを再実行し、判定ユニットが、検出されたクラッシュは処理プロセスで用いたデータに起因するクラッシュであると判定したときには、初期化ユニットが、処理プロセスで用いたデータを初期化することを特徴とする。【選択図】      図９
2006065440.tif 000002
【特許請求の範囲】
【請求項１】
処理プロセスを実行し、かつ処理プロセスの実行中にクラッシュが発生したときに処理プロセスを復帰させるプロセス管理システムであって、
処理プロセス実行に必要なデータを保持するデータメモリ領域と、
前記データメモリ領域に保持されたデータを使用して処理プロセスを実行する処理ユニットと、
前記処理ユニットによる処理プロセス実行中に、クラッシュによって処理プロセスが中断されたことを検出するクラッシュ検出ユニットと、
クラッシュを発生した処理プロセスに関するクラッシュ履歴に基づき、検出されたクラッシュが、処理プロセスで用いたデータに起因するクラッシュかどうかを判定する判定ユニットと、
前記データメモリ領域に保持されたデータを初期化する初期化ユニットとを備え、
前記判定ユニットが、検出されたクラッシュは処理プロセスで用いたデータに起因するクラッシュではないと判定したときには、前記処理ユニットが、クラッシュを発生した処理プロセスを再実行し、
前記判定ユニットが、検出されたクラッシュは処理プロセスで用いたデータに起因するクラッシュであると判定したときには、前記初期化ユニットが、処理プロセスで用いたデータを初期化することを特徴とする、プロセス管理システム。
【請求項２】
前記判定ユニットは、検出されたクラッシュを発生した処理プロセスが、以前にクラッシュを発生していない場合には、処理プロセスで用いたデータに起因するクラッシュではないと判定し、かつ検出されたクラッシュを発生した処理プロセスが、以前にクラッシュを発生している場合には、処理プロセスで用いたデータに起因するクラッシュであると判定することを特徴とする、請求項１に記載のプロセス管理システム。
【請求項３】
前記データメモリ領域が、各データについて、処理プロセス実行のために必要かどうかを示すプロセス識別フラグと、以前にクラッシュを発生しており、クラッシュが検出された場合にはデータを初期化する必要があることを示す初期化フラグとをさらに含むことを特徴とする、請求項１または２に記載のプロセス管理システム。
【請求項４】
前記処理ユニットが、処理プロセスを実行する処理実行ユニットと、クラッシュが発生したときに処理プロセスを実行するために待機している待機ユニットとを備えることを特徴とする、請求項１から３のいずれか一項に記載のプロセス管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理プロセスを実行し、かつ処理プロセスの実行中にクラッシュが発生したときに処理プロセスを復帰させるプロセス管理システムに関するものであり、より詳細には、処理プロセスがクラッシュした場合に、クラッシュの原因がデータ異常によるものかどうかを判定し、判定結果に基づき処理プロセスを復帰させるプロセス管理システムに関するものである。
【０００２】
本明細書における「クラッシュ」との表現は、処理プロセスのソフトウエアの製作者が意図しない箇所で、その実行が中断されることを意味し、主に、オペレーティングシステムによって、強制的に処理プロセスの実行が途中で打ち切られる状態を意味するものである。
【背景技術】
【０００３】
ソフトウエアが、適切に動作するように作られていない場合には、不良箇所で、処理プロセスのクラッシュが発生する場合がある。複雑かつ大規模なソフトウエアでは、そのような不良箇所を完全に取り除くことは困難である。このような処理プロセスにクラッシュを引き起こす不良箇所は、しばしば特定のデータにその原因がある。このようにデータに問題がある場合、または特定のデータが、処理プロセスのソフトウエアの不良によって正しく処理できない場合には、当該データを取り除かない限り、処理プロセスを継続することができない。その他にアクセスタイミングなどが原因となって、処理プロセスがクラッシュする場合もあり、この場合には、処理プロセスを再実行することで解決する可能性がある。
【０００４】
処理プロセスの実行が停止した場合には、データの消失およびサービスの停止は、最小限にとどめなければならない。そのために設備を多重化する解決方法が考えられるが、そうすると追加の設備投資が必要になってしまい、好ましい解決方法ではない。
【０００５】
そこで、処理プロセスのクラッシュに伴う問題を解決するの多くの技術が開示されている。
【０００６】
例えば、クラッシュなどの障害が発生する前に、障害を発生する可能性が高いシステムを再起動することが、特開２０００−１２２９７１号公報に開示されている。また特開平１１−２６５３６１号公報には、コンピュータの再起動時に、共有ファイル内のトランザクション未実行の電文が廃棄されることを回避するために、トランザクション処理システムが障害となっても、端末パスを解放しない通信処理装置と、再起動時に共有ファイルを初期化しないトランザクション処理システムとを有する多重計算機システムが開示されている。
【特許文献１】特開２０００−１２２９７１号公報
【特許文献２】特開平１１−２６５３６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、処理プロセスの実行中にクラッシュが発生したときに、クラッシュしたときのデータを可能な限り保持しながら、迅速に処理プロセスを再開できるプロセス管理システムを提供するものである。
【課題を解決するための手段】
【０００８】
請求項１に係る発明によれば、処理プロセスを実行し、かつ処理プロセスの実行中にクラッシュが発生したときに処理プロセスを復帰させるプロセス管理システムであって、
処理プロセス実行に必要なデータを保持するデータメモリ領域と、
データメモリ領域に保持されたデータを使用して処理プロセスを実行する処理ユニットと、
処理ユニットによる処理プロセス実行中に、クラッシュによって処理プロセスが中断されたことを検出するクラッシュ検出ユニットと、
クラッシュを発生した処理プロセスに関するクラッシュ履歴に基づき、検出されたクラッシュが、処理プロセスで用いたデータに起因するクラッシュかどうかを判定する判定ユニットと、
データメモリ領域に保持されたデータを初期化する初期化ユニットとを備え、
判定ユニットが、検出されたクラッシュは処理プロセスで用いたデータに起因するクラッシュではないと判定したときには、処理ユニットが、クラッシュを発生した処理プロセスを再実行し、
判定ユニットが、検出されたクラッシュは処理プロセスで用いたデータに起因するクラッシュであると判定したときには、初期化ユニットが、処理プロセスで用いたデータを初期化することを特徴とする。
【０００９】
このような構成を有することによって、処理プロセスにクラッシュが発生したときに、クラッシュが発生した処理プロセスで用いたデータの詳細を調査することなく、処理プロセスを再実行するか、またはデータを初期化することによって、クラッシュしたときのデータを可能な限り保持しながら、迅速に処理プロセスを再開できる。
【００１０】
請求項２に係る発明によれば、判定ユニットは、検出されたクラッシュを発生した処理プロセスが、以前にクラッシュを発生していない場合には、処理プロセスで用いたデータに起因するクラッシュではないと判定し、かつ検出されたクラッシュを発生した処理プロセスが、以前にクラッシュを発生している場合には、処理プロセスで用いたデータに起因するクラッシュであると判定することを特徴とする。
【００１１】
このような構成を有することによって、以前にクラッシュを発生していない処理プロセスでクラッシュが発生した場合には、例えばアクセスタイミングが原因であるとも考えられるので、処理プロセスを再実行することで処理プロセスを復帰させる。一方、２回続けて同じデータを用いる処理プロセスでクラッシュが発生した場合には、処理プロセスのクラッシュの原因がデータにある可能性が高く、再実行してもクラッシュを回避することができないと判定して、処理プロセスで用いたデータを初期化することで処理プロセスを復帰させる。このような復帰方法を用いて、迅速に処理プロセスを再開できる。
【００１２】
請求項３に係る発明によれば、データメモリ領域が、各データについて、処理プロセス実行のために必要かどうかを示すプロセス識別フラグと、以前にクラッシュを発生しており、クラッシュが検出された場合にはデータを初期化する必要があることを示す初期化フラグとをさらに含むことを特徴とする。
【００１３】
このような構成を有することによって、判定ユニットは、データのプロセス識別フラグにより、どのデータが処理プロセスで用いられたかを判定し、そのデータの初期化フラグに基づき、クラッシュがそのデータに起因するものであるかどうかを容易に判定することができる。
【００１４】
請求項４に係る発明によれば、処理ユニットが、処理プロセスを実行する処理実行ユニットと、クラッシュが発生したときに処理プロセスを実行するために待機している待機ユニットとを備えることを特徴とする。
【００１５】
このような構成を有することによって、クラッシュが発生した後に、待機ユニットによってより迅速に処理プロセスを再実行することができる。
【発明を実施するための最良の形態】
【００１６】
図１に、本発明のプロセス管理システム１の概略構成図を示す。
プロセス管理システム１は、処理プロセス実行に必要なデータを保持するデータメモリ領域１０と、データメモリ領域に保持されたデータを使用して処理プロセスを実行する処理ユニット３０と、処理ユニット３０による処理プロセス実行中に、クラッシュによって処理プロセスが中断されたことを検出するクラッシュ検出ユニット４０と、クラッシュを発生した処理プロセスに関するクラッシュ履歴に基づき、検出されたクラッシュが、処理プロセスで用いたデータに起因するクラッシュかどうかを判定する判定ユニット５０と、データメモリ領域１０に保持されたデータを初期化する初期化ユニット２０とを含む。
【００１７】
図２に、データメモリ領域１０における内部構造の詳細を示す。
【００１８】
データメモリ領域１０は、複数のブロックから構成される。各ブロックには、データ１１と、このデータ１１に対応付けられたフラグ領域１２とが含まれる。各データ１１は、処理プロセス終了によりデータ内容が破棄されずかつ論理的に分割されたデータを含む。このようなデータメモリ領域１１としては、オペレーティングシステムで用意されている共有メモリ、ディスク、外部データベースシステムなどを用いることができる。ただし、共有メモリを使用する場合には、全ての処理プロセスが終了すると、その内容が失われる。
【００１９】
フラグ領域１２には、プロセス識別フラグ１３と、初期化フラグ１４とが格納される。プロセス識別フラグ１３は、そのデータが処理プロセス実行に必要かどうかを識別するフラグである。例えば、そのデータが、処理プロセス実行に必要な場合には「必要」フラグであり、または処理プロセス実行に不要な場合には「不要」フラグであるとする。初期化フラグ１４は、以前にクラッシュが発生しているかどうかを示し、再びクラッシュが検出された場合にはデータを初期化する必要があるかどうかを識別するフラグである。例えば、以前にクラッシュを発生している場合には「初期化」フラグであり、以前にクラッシュを発生していない場合には「継続」フラグであるとする。なお、プロセス識別フラグ１３が、処理プロセス実行に必要であるかまたは不要であるかを示す、二値のフラグとして説明したが、複数のプロセスを同時に並行して動作させる場合には、各処理プロセスの実行に必要であるか不要であるかを示すことができるように、プロセス識別フラグ１３を、各処理プロセスに対応する多値のフラグにすることもできる。このようにプロセス識別フラグ１３を構成すると、複数のプロセスの中でクラッシュしたプロセスで使用していたデータを識別することができる。
【００２０】
図３に、処理ユニット３０の内部構造を示す。
【００２１】
処理ユニット３０は、処理実行ユニット３１と、フラグ設定ユニット３２と、フラグクリアユニット３３とを含む。処理実行ユニット３１は、データメモリ領域１０に保持されるデータ１１を用いて処理プロセスを実行するものであり、実行すべき実際の処理プロセスが記述されている。フラグ設定ユニット３２は、処理実行ユニット３１が処理プロセスを実行する前に、処理プロセスに必要なデータ１１のプロセス識別フラグ１３に、「必要」フラグを設定する。フラグクリアユニット３３は、処理実行ユニット３１の処理プロセスが完了した後に、プロセス識別フラグ１３の「必要」フラグを削除して、「不要」フラグに変更する。
【００２２】
なお、処理ユニット３０は、複数の処理実行ユニット３１を備えるように構成することもできる。その場合は、ある処理実行ユニットが、クラッシュを発生しないときには処理プロセスを実行しない、待機ユニットとして機能することができる。この待機ユニットは、クラッシュが発生したときには、処理実行ユニットに代わって、処理プロセスを再実行する。このように既に起動している待機ユニットによって、クラッシュ発生時に、より迅速に処理プロセスを再実行することができる。
【００２３】
次に、本発明のプロセス管理システム１の動作について、データメモリ領域１０におけるプロセス識別フラグ１３および初期化フラグ１４のフラグの状態を示す、図４および図５を参照しながら説明する。
【００２４】
なお、データメモリ領域１０には、ｎ個のデータ１〜ｎがあるとする。以下の図４および図５では、プロセス識別フラグ１３の「必要」フラグを「必要」で表し、「不要」フラグ「不要」で表すものとする。また、初期化フラグ２１３の「初期化」フラグを「初期化」で表し、「継続」フラグを「継続」で表すものとする。
【００２５】
まず、処理プロセスを開始する前に、初期化ユニット２０が、データ１１を初期化して、プロセス識別フラグ１３を「不要」フラグに、初期化フラグ１４を「継続」フラグに設定する。
【００２６】
次に、処理実行ユニット３１が処理プロセスを実行する前に、フラグ設定ユニット３２が、実行する処理プロセスに必要なデータ１１のプロセス識別フラグ１３を、「必要」フラグに設定する。図４の例では、処理プロセスがデータ３を使用する。
【００２７】
処理実行ユニット３１が、データ３を用いて処理プロセスの実行を完了すると、フラグクリアユニット３３が、データ３のプロセス識別フラグ１３を、「不要」フラグに変更する。これが図５に示されている。
【００２８】
このように、処理プロセスを実行する前に、それぞれの処理プロセスで用いるデータのプロセス識別フラグ１３に「必要」フラグを設定し、処理プロセスが完了すると、そのフラグを「不要」フラグに変更する。このような処理を順次繰り返す。複数のデータを用いる処理プロセスの場合には、用いられる複数のデータのプロセス識別フラグ１３の全てに、「必要」フラグを設定し、処理プロセスが完了すると、その複数のフラグを「不要」フラグに変更する。このように、プロセス識別フラグ１３が、「必要」フラグであるか、「不要」フラグであるかを調べることによって、その処理プロセスでどのデータを使用するかが分かることになる。
【００２９】
次に、クラッシュにより処理プロセスが中断した場合のプロセス管理システム１の動作について、図６および図７を参照しながら以下に説明する。
【００３０】
図４を用いて説明した例のように、処理プロセスでデータ３を用いる場合を考える。
【００３１】
処理実行ユニット３１が処理プロセスを実行する前は、図４と同じプロセス識別フラグ１３および初期化フラグ１４のフラグの状態にある。
【００３２】
クラッシュにより、データ３を用いる処理プロセスが中断すると、クラッシュ検出ユニット４０が、処理プロセスがクラッシュしたことを検出する。これに応答して、判定ユニット５０が、プロセス識別フラグ１３を検査し、データ３が処理プロセスで用いられたデータであることを知り、さらにそのデータ３の初期化フラグ１４を検査する。データ３の初期化フラグ１４は、以前にクラッシュが発生していないことを表す「継続」フラグである。そこで、判定ユニット５０は、発生したクラッシュが、処理プロセスで用いたデータ３に起因したクラッシュではないと判定するとともに、データ３の初期化フラグ１４に「初期化」フラグを設定し、プロセス識別フラグ２１２に「不要」フラグに変更する。これが図６に示されている。
【００３３】
その後、処理プロセスを再実行する。処理プロセスで用いられるデータ３のプロセス識別フラグ１３を、「必要」フラグに設定する。これが図７に示されている。
【００３４】
クラッシュの原因が、データ３の内容には関係のない例えばアクセスタイミングが原因などの場合には、処理プロセスを再実行することで、クラッシュせずに処理プロセスが完了することが考えられる。この場合には、１回目のクラッシュ時の仮定が誤っていたと考えられ、データ３の初期化フラグ１４を「継続」フラグに戻し、次の処理プロセスに移ることになる。
【００３５】
処理プロセスの再実行が、再びクラッシュにより中断された場合には、判定ユニット５０は、処理プロセスで用いられたデータ３の初期化フラグ１４が、「初期化」フラグであることから、クラッシュが、このデータ３に起因するクラッシュであると判定するとともに、初期化ユニット２０に、データ３の初期化を実行させて、プロセス識別フラグ１３を「不要」フラグに、初期化フラグ１４を「継続」フラグに変更する。
【００３６】
その後、再び処理プロセスを実行する。
【００３７】
図８に、クラッシュが発生してから、処理プロセスの再実行またはデータの初期化が行われる、データ１１の状態遷移を示す。
【００３８】
データの状態としては、未初期化の状態（１００）と、データが正常である状態（１１０）と、データ異常の可能性がある状態（１２０）とがある。例えば、未初期化の状態（１００）から初期化を実行すれば、データが正常である状態（１１０）へ遷移し、データが正常である状態（１１０）で、クラッシュが発生すれば、データ異常の可能性がある状態（１２０）へ遷移し、あるいはこの状態で、データ異常が検出されれば、未初期化の状態（１００）へ遷移することが考えられる。また、データ異常の可能性がある状態（１２０）で、再びクラッシュが発生すれば、未初期化の状態（１００）へ遷移し、あるいはこの状態で、処理が正常終了すれば、データが正常である状態（１１０）へ遷移することが考えられるなどである。
【００３９】
クラッシュ検出ユニット４０が、クラッシュの発生を検出する方法の一例としては、正常に動作中の処理プロセスのプロセス識別子（例えば、ＵＮＩＸ（登録商標）におけるプロセスＩＤなど）のリストに従って、現在実行中の処理プロセスを定期的に監視し、リスト上にある処理プロセスが、実行中の処理プロセスのリストから無くなった場合には、その処理プロセスが異常終了したと判定して、判定ユニット５０の動作を開始する方法がある。
【００４０】
また、クラッシュが発生したときに、処理プロセスのプロセス識別子は取得できないが、現在動作中の処理プロセスのプロセス識別子のリストは取得できる場合には、判定ユニット５０において、指定されたプロセス識別子を探す代わりに、取得したプロセス識別子のリストに無い処理プロセスをクラッシュが発生した処理プロセスの対象として、データに起因するクラッシュかどうかの判定を行うことができる。
【００４１】
図９に、プロセス管理システム１が備える管理機能および処理機能の処理の流れを示す。
【００４２】
クラッシュが発生したときに、処理プロセスを継続して実行するためには、プロセス管理システム１は、処理プロセスの管理機能を実行する１つ以上の管理機能部と、処理プロセスの実際の処理を実行する１つ以上の処理機能部とを備える必要がある。管理機能部としては、処理プロセスの起動、およびクラッシュ検出ユニット４０などを含む。一方、処理機能部としては、処理プロセスを実行する処理ユニット３０に加えて、初期化ユニット２０、および判定ユニット５０を含む。ここで初期化ユニット２０を、処理機能部で行うのは、初期化処理が各ソフトウエアに固有のものであり、初期化処理プロセス自体が、クラッシュの原因となる可能性が少ないためである。
【００４３】
管理機能部が、処理プロセスを起動し（２００）、処理機能部に必要に応じて情報を与える。処理機能部は、初期化ユニット２０によってデータメモリ領域を初期化し（２２０）、処理ユニット３０（１、２、３、…）が、データメモリ領域に保持されるデータを用いて、処理プロセスを実行する（２３０）。
【００４４】
管理機能部は、クラッシュ検出ユニット４０が、処理プロセスを監視し（２１０）、クラッシュを検出すると、処理プロセスを起動し（２４０）、処理機能部に必要に応じて情報を与え、その後、再びクラッシュ検出ユニット４０が、処理プロセスを監視する（２５０）する。
【００４５】
処理機能部の判定ユニット５０は、クラッシュを発生した処理プロセスで用いたデータの初期化フラグを検査し、初期化するか、処理プロセスを再実行するかを判定する（２６０）。初期化する場合には、初期化ユニット２０が、データを初期化し（２７０）、再実行する場合には、処理ユニット３０が処理プロセスを再実行し（２８０）、処理を進める。
【００４６】
図１０には、処理ユニットが、処理プロセスを実行する処理実行ユニットと、クラッシュが発生したときに処理プロセスを実行するために待機している待機ユニットとを備える構成での処理の流れを示す。
【００４７】
図１０に示される処理では、処理機能部が、実際に処理プロセスを実行する処理ユニット３０（１、２、３、…）（３３０、３４０、３５０）に加えて、クラッシュ発生時に処理プロセスを実行させるために処理ユニットを待機させること（３８０）処理の流れが、図９とは異なる。
【００４８】
管理機能部がクラッシュを検出したときに処理を開始し（３６０）、待機している処理ユニットを用いて処理プロセスを継続する。
【００４９】
図１１に、初期化ユニット２０の処理の流れを示す。
【００５０】
初期化処理プロセスにおけるクラッシュもさらに考慮すると、初期化処理プロセスの実行中に、プロセス識別フラグ１３に初期化プロセスを表すフラグを設定する。データの初期化の処理プロセスが完了するまで、データは不完全なままである。そのため、データの初期化の処理プロセスが完了する前に処理プロセスが再実行されたときに、強制的にデータの初期化が再度実行されるように、初期化処理プロセスの実行中は、初期化フラグ１４を「初期化」フラグに設定する。データ１１の初期化の処理プロセスが完了したら、初期化フラグ１４を「継続」フラグに変更し（５３０）、またプロセス識別フラグ１３を「不要」フラグに変更する（５４０）。この初期化フラグの変更（５３０）およびプロセス識別フラグの変更（５４０）は、逆順でもよい。
【００５１】
図１２に、処理プロセスの実行状況、データの状態、プロセス識別フラグの状態、および初期化フラグの状態をまとめたものを示す。これらの状態間の状態遷移を表したのが図１３である。図１３に示される図では、クラッシュによる処理プロセス実行の中断以外に、自発的なデータの整合性検査をプログラム中で行った結果、継続が不可能と判定された場合の遷移も含まれている。
【００５２】
図１２および図１３で示される状態には、初期化の処理プロセスを実行中である状態（６００）と、初期化が完了して、処理プロセスの実行を待っている状態（６１０）と、処理プロセスを実行中の状態（６２０）と、処理プロセス実行中にクラッシュが発生した状態（６３０）と、クラッシュが発生して、初期化フラグ１４が「初期化」の状態で、次の処理プロセスを待っている状態（６４０）と、その状態で処理プロセスを実行している状態（６５０）と、再びクラッシュが発生した状態（６６０）とが含まれる。
【００５３】
以上のように、本発明のプロセス管理システムによって、処理プロセスにクラッシュが発生したときに、クラッシュが発生した処理プロセスで用いたデータの詳細を調査することなく、処理プロセスを再実行するか、またはデータを初期化することによって、クラッシュしたときのデータを可能な限り保持しながら、迅速に処理プロセスを再開できる。
【図面の簡単な説明】
【００５４】
【図１】プロセス管理システムの概略構成図を示す。
【図２】データメモリ領域における内部構造を示す。
【図３】処理ユニットの内部構造を示す。
【図４】処理プロセス実行中のプロセス識別フラグおよび初期化フラグの状態を示す。
【図５】処理プロセス実行中のプロセス識別フラグおよび初期化フラグの状態を示す。
【図６】処理プロセス実行中のプロセス識別フラグおよび初期化フラグの状態を示す。
【図７】処理プロセス実行中のプロセス識別フラグおよび初期化フラグの状態を示す。
【図８】データの状態遷移を示す。
【図９】管理機能部および処理機能が行う処理の流れを示す。
【図１０】管理機能部および処理機能が行う処理の別の流れを示す。
【図１１】初期化ユニット内部の処理の流れを示す。
【図１２】処理プロセスの実行状況、データの状態、プロセス識別フラグの状態、および初期化フラグの状態を示す。
【図１３】状態遷移を示す。
【符号の説明】
【００５５】
１  プロセス管理システム
１０  データメモリ領域
２０  初期化ユニット
３０  処理ユニット
４０  クラッシュ検出ユニット
５０  判定ユニット
１１  データ
１２  フラグ領域
１３  プロセス識別フラグ
１４  初期化フラグ
３１  処理実行ユニット
３２  フラグ設定ユニット
３３  フラグクリアユニット
【図１】
2006065440.tif 000003
【図２】
2006065440.tif 000004
【図３】
2006065440.tif 000005
【図４】
2006065440.tif 000006
【図５】
2006065440.tif 000007
【図６】
2006065440.tif 000008
【図７】
2006065440.tif 000009
【図８】
2006065440.tif 000010
【図９】
2006065440.tif 000011
【図１０】
2006065440.tif 000012
【図１１】
2006065440.tif 000013
【図１２】
2006065440.tif 000014
【図１３】
2006065440.tif 000015