(57)【要約】【課題】  コンピュータプログラムのデバッグを効率よく行うこと。【解決手段】  タスクを識別するタスク識別情報と、該タスクが所定状態となった場合に停止させる少なくとも１つの停止対象タスクを識別する停止対象タスク識別情報と、を対応付けて記憶する記憶部７１と、前記タスクが前記所定状態となったことを検出するタスク状態管理部７０と、前記所定状態検出手段により前記所定状態となったことが検出された場合に、該所定状態となったタスクと対応付けて記憶される前記停止対象タスクを停止させる停止用タスクと、を含むことを特徴とする。【選択図】図２
2006127166.tif 000002
【特許請求の範囲】
【請求項１】
タスクを識別するタスク識別情報と、該タスクが所定状態となった場合に停止させる少なくとも１つの停止対象タスクを識別する停止対象タスク識別情報と、を対応付けて記憶するタスク識別情報記憶手段と、
前記タスクが前記所定状態となったことを検出する所定状態検出手段と、
前記所定状態検出手段により前記所定状態となったことが検出された場合に、該所定状態となったタスクと対応付けて記憶される前記停止対象タスクを停止させるタスク停止手段と、
を含むことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記タスク識別情報記憶手段は、
複数の前記タスク識別情報のそれぞれに対応付けて、前記少なくとも１つの停止対象タスク識別情報を記憶する、
ことを特徴とする情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置において、
前記タスク停止手段は、当該タスク停止手段により停止された前記停止対象タスクであるタスクを識別するタスク識別情報と対応付けて記憶される停止対象タスク識別情報が識別する停止対象タスクをさらに停止させる、
ことを特徴とする情報処理装置。
【請求項４】
請求項１乃至３のいずれかに記載の情報処理装置において、
前記タスク停止手段は、
前記所定状態検出手段により前記所定状態が検出された場合に、停止用タスクを起動する停止用タスク起動手段、
を含み、
前記タスク停止手段は、前記起動された停止用タスクにより、前記停止対象タスクを停止させる、
ことを特徴とする情報処理装置。
【請求項５】
請求項１乃至４に記載の情報処理装置において、
第１のタスクから第２のタスクへの通信があった場合に、前記タスク識別情報記憶手段は、該第２のタスクを識別するタスク識別情報を、該第１のタスクが前記所定状態となった場合に停止させる停止対象タスクを識別する停止対象タスク識別情報として記憶する、
ことを特徴とする情報処理装置。
【請求項６】
請求項１乃至５のいずれかに記載の情報処理装置において、
前記タスク識別情報と対応付けて前記タスク識別情報記憶手段により記憶される停止対象タスク識別情報により識別される停止対象タスクは、該タスク識別情報により識別されるタスクと共通のメモリアドレスにアクセスするタスクである、
ことを特徴とする情報処理装置。
【請求項７】
請求項６に記載の情報処理装置において、
第１モードと、第２モードと、のいずれかのモードを記憶するモード記憶手段と、
前記記憶されるモードが第１モードである場合には、前記タスク停止手段を起動させ、前記記憶されるモードが第２モードである場合には、所定の復旧処理を行うモード対応処理手段と、
を含むことを特徴とする情報処理装置。
【請求項８】
前記タスクが前記所定状態となったことを検出する所定状態検出ステップと、
前記所定状態検出ステップにおいて前記所定状態となったことが検出された場合に、該所定状態となったタスクと対応付けて、タスクを識別するタスク識別情報と、該タスクが所定状態となった場合に停止させる少なくとも１つの停止対象タスクを識別する停止対象タスク識別情報と、を対応付けて記憶するタスク識別情報記憶手段により記憶される前記停止対象タスクを停止させるタスク停止ステップと、
を含むことを特徴とするタスク停止方法。
【請求項９】
前記タスクが前記所定状態となったことを検出する所定状態検出手段、及び、
前記所定状態検出手段により前記所定状態となったことが検出された場合に、該所定状態となったタスクと対応付けて、タスクを識別するタスク識別情報と、該タスクが所定状態となった場合に停止させる少なくとも１つの停止対象タスクを識別する停止対象タスク識別情報と、を対応付けて記憶するタスク識別情報記憶手段により記憶される前記停止対象タスクを停止させるタスク停止手段、
としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、タスク停止方法及びプログラムに関し、特にマルチタスク構成のコンピュータプログラムを実行する場合におけるデバッグ技術に関する。
【背景技術】
【０００２】
コンピュータシステムにおいて不正な条件での関数コールがあった場合に、その原因を解析するための方法について、従来から種々の方法が提案されている。例えば特許文献１には、マルチタスク構成のコンピュータプログラムの試験を行うために、試験プログラムを使用することに関する技術が記載されている。
【０００３】
マルチタスクの場合には、あるタスクにおいて不正な条件での関数コールがあった場合に、該タスクのみを止めても他のタスクは通常停止しておらず、コンピュータシステムが起動された状態のままでは、他のタスクをも含めたコンピュータシステム全体の状態を確認することは困難である。そこで該技術では、上述のように不正な条件の関数コールがあったことを検出するような場合には、試験プログラムを使用して再現試験を行うことによりデバッグを行うことが可能となっている。
【特許文献１】特開平９−１９０３６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の方法では、試験プログラムを動作させ、再現試験を行う必要がある。このため、原因を特定するための工数が非常に多くなってしまい、デバッグの効率が悪いという問題があった。また、机上トレースを行うという方法もあるが、いずれにしてもデバッグの効率は悪かった。
【０００５】
本発明は、上記課題を解決するためになされたもので、その目的の一つは、コンピュータプログラムのデバッグを効率よく行うことを可能とする情報処理装置、タスク停止方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するための本発明に係る情報処理装置は、タスクを識別するタスク識別情報と、該タスクが所定状態となった場合に停止させる少なくとも１つの停止対象タスクを識別する停止対象タスク識別情報と、を対応付けて記憶するタスク識別情報記憶手段と、前記タスクが前記所定状態となったことを検出する所定状態検出手段と、前記所定状態検出手段により前記所定状態となったことが検出された場合に、該所定状態となったタスクと対応付けて記憶される前記停止対象タスクを停止させるタスク停止手段と、を含むことを特徴とする。
【０００７】
このようにすることにより、あるタスクが所定の状態となった場合に該タスクと対応付けて記憶される停止対象タスクをも停止させることができるため、関連タスクによる状態変化を抑制できるので、コンピュータプログラムのデバッグを効率よく行うことが可能となる。
【０００８】
また、上記情報処理装置において、前記タスク識別情報記憶手段は、複数の前記タスク識別情報のそれぞれに対応付けて、前記少なくとも１つの停止対象タスク識別情報を記憶する、こととしてもよい。このようにすれば、複数のタスクについてそれぞれ関連タスクによる状態変化を抑制できる。
【０００９】
また、上記情報処理装置において、前記タスク停止手段は、当該タスク停止手段により停止された前記停止対象タスクであるタスクを識別するタスク識別情報と対応付けて記憶される停止対象タスク識別情報が識別する停止対象タスクをさらに停止させる、こととしてもよい。このようにすれば、複数の関連タスクからなるタスク群を一度に停止させることができる。
【００１０】
また、上記情報処理装置において、前記タスク停止手段は、前記所定状態検出手段により前記所定状態が検出された場合に、停止用タスクを起動する停止用タスク起動手段、を含み、前記タスク停止手段は、前記起動された停止用タスクにより、前記停止対象タスクを停止させる、こととしてもよい。このようにすれば、停止対象タスクを停止させる処理を、所定状態となったタスク及び停止対象タスクとは異なるタスクである停止用タスクにおいて実行できるので、より確実に停止対象タスクを停止させることができる。
【００１１】
また、上記情報処理装置において、第１のタスクから第２のタスクへの通信があった場合に、前記タスク識別情報記憶手段は、該第２のタスクを識別するタスク識別情報を、該第１のタスクが前記所定状態となった場合に停止させる停止対象タスクを識別する停止対象タスク識別情報として記憶する、こととしてもよい。このようにすれば、動的に停止対象タスクを決定することができる。
【００１２】
また、上記情報処理装置において、前記タスク識別情報と対応付けて前記タスク識別情報記憶手段により記憶される停止対象タスク識別情報により識別される停止対象タスクは、該タスク識別情報により識別されるタスクと共通のメモリアドレスにアクセスするタスクである、こととしてもよい。このようにすれば、メモリの変化を抑制することにより、関連タスクによる状態変化を抑制することができる。
【００１３】
また、上記情報処理装置において、第１モードと、第２モードと、のいずれかのモードを記憶するモード記憶手段と、前記記憶されるモードが第１モードである場合には、前記タスク停止手段を起動させ、前記記憶されるモードが第２モードである場合には、所定の復旧処理を行うモード対応処理手段と、を含むこととしてもよい。このようにすれば、情報処理装置のモードに応じたデバッグ処理と復旧処理を行うことができるので、タスクを止めてデバッグを行うことよりも、早期に復旧させることの方が、優先順位が高い場合にも対応することができる。
【００１４】
また、本発明に係るタスク停止方法は、前記タスクが前記所定状態となったことを検出する所定状態検出ステップと、前記所定状態検出ステップにおいて前記所定状態となったことが検出された場合に、該所定状態となったタスクと対応付けて、タスクを識別するタスク識別情報と、該タスクが所定状態となった場合に停止させる少なくとも１つの停止対象タスクを識別する停止対象タスク識別情報と、を対応付けて記憶するタスク識別情報記憶手段により記憶される前記停止対象タスクを停止させるタスク停止ステップと、を含むことを特徴とする。
【００１５】
また、本発明に係るプログラムは、前記タスクが前記所定状態となったことを検出する所定状態検出手段、及び、前記所定状態検出手段により前記所定状態となったことが検出された場合に、該所定状態となったタスクと対応付けて、タスクを識別するタスク識別情報と、該タスクが所定状態となった場合に停止させる少なくとも１つの停止対象タスクを識別する停止対象タスク識別情報と、を対応付けて記憶するタスク識別情報記憶手段により記憶される前記停止対象タスクを停止させるタスク停止手段、としてコンピュータを機能させることを特徴とする。
【発明を実施するための最良の形態】
【００１６】
本発明の実施の形態について、図面を参照しながら説明する。
【００１７】
本実施の形態に係る情報処理装置１は、図１に示される構造のコンピュータとして構成されている。すなわち、情報処理装置１はハードウェアとしてターゲットＣＰＵ１０、メモリ１５及び周辺装置デバイス２０を含み、これらのハードウェアを利用するソフトウェアとして汎用ＯＳプログラム３０とアプリケーション４０とドライバ５０とを含んで構成される。そして、アプリケーション４０はタスク４１乃至４７を含んで構成され、ドライバ５０はタスク５１乃至５３を含んで構成される。なおここでのタスクとは、汎用ＯＳプログラム３０から見た処理の実行単位を意味している。より具体的には、プログラムを実行することによりタスクが生成され、該タスクが汎用ＯＳプログラム３０の管理の下、ターゲットＣＰＵ１０において処理される。
【００１８】
各タスクはプリエンティブマルチタスク方式で管理される。すなわち、汎用ＯＳプログラム３０によって各タスクの処理が管理され、時分割により各タスクにターゲットＣＰＵ１０を使用するための時間が割り当てられる。このとき、汎用ＯＳプログラム３０はメモリ１５にタスクテーブルを記憶し、該テーブルに各タスクの処理状態を記憶する。タスクテーブルには、タスクを識別する識別情報と、その状態（実行中／実行可能状態、短時間休止状態、長時間休止状態、終了状態、一時停止状態、スワップアウト状態、ディスク待ち状態、ページ待ち状態など）が記憶される。
【００１９】
なお、本実施の形態においては、情報処理装置１は複数のタスクを使用することにより複数の処理を行うことができるコンピュータである。そして、該複数の処理は、基本機能部分と追加機能部分とから成り、タスク４１乃至４７のうち、タスク４１乃至４４から構成されるタスク群６０が基本機能部分の処理のためのタスクであり、タスク４５乃至４７から構成されるタスク群６１が追加機能部分の処理のためのタスクである。具体的な一例を挙げると、情報処理装置が交換機である場合には、基本機能部分は基本呼処理であり、追加機能部分は例えばコールウエイティングのための処理である。
【００２０】
これらのタスクを停止させる場合の処理について、図２を参照しながら説明する。図２に示すように、情報処理装置１はタスク状態管理部７０及び記憶部７１を含んで構成される。これらはともに汎用ＯＳプログラム３０によって実現される機能ブロックである。ハードウェアとしては、ターゲットＣＰＵ１０及びメモリ１５により実現される。タスク状態管理部７０は各タスク（タスク７２−１乃至７２−ｎ）の状態を管理するための処理を行い、記憶部７１は上述のタスクテーブル及び後述の停止対象タスクテーブルを記憶する。
【００２１】
従来から行われているタスク停止処理を、タスク５１が、タスク５２が使用するメモリ１５を壊した（メモリ１５のある部分に、タスク５２が書き込まれることを想定していない情報をタスク５１が書き込んだ）ために、タスク５２において不正な関数コールが発生した状態となった場合を例にとり説明する。図７は、従来技術にかかる障害発生時タスク停止処理の処理フローである。まず、タスク５１とタスク５２とはマルチタスクとして時分割処理されている。そして、タスク５２においてタスク５１が障害を発生させた（メモリを破壊した）状態を検出する（Ｓ２００）。すると、タスク５２はタスク状態管理部７０に対し、タスク５１を止めるよう依頼する（Ｓ２０２）。依頼を受けたタスク状態管理部７０は、タスク５１の停止処理を行う。一方、タスク５１によってメモリが破壊されたタスク５２についても停止する処理を行う（Ｓ２０４）。このようにして、タスク５１とタスク５２を停止させることにより、タスク５１によるメモリ破壊がその後の処理に悪影響を及ぼさないようにしている。
【００２２】
ところで以上説明した処理によれば、他のタスクについては処理が進み、メモリも書き換わっていくため、タスク停止後に情報処理装置１の状態を確認することにより原因を特定することが困難となる場合がある。このため、原因を特定するためには試験プログラムを使用するか、机上トレースをすることになるが、上述の通りデバッグの効率がよくない。そこで、本実施の形態では記憶部７１に停止対象タスクテーブルを記憶し、該テーブルに従ってタスクを停止させることにより、試験プログラムの使用や机上トレースを行うことなく、デバッグを行うことを可能にしている。
【００２３】
図３は停止対象タスクテーブルの例である。同テーブルでは、タスクごとに他のタスク（自タスクを含む）との関係が記憶されている。より具体的には、テーブルの最上部（同図領域８０の部分）に記載される検出タスク群の各タスク（検出タスク）と対応付けて記憶される列には、該検出タスクにおいて所定状態が検出された場合に、関連タスク群（同図領域８１の部分）に含まれるタスク（関連タスク）ごとに、停止すべき停止対象タスクであるか否かを示す情報として停止対象フラグが記憶される。同図では、黒丸が停止対象フラグにより該当関連タスクが停止対象タスクであることを示す状態、白抜き丸が停止対象フラグにより該当関連タスクが停止対象タスクでないことを示す状態、をそれぞれ示している。なおタスクの停止とは、該タスクがＣＰＵ実行権を取得する対象のタスクでないものとして処理されることを意味する。
【００２４】
換言すれば、停止対象タスクテーブルにおいては、検出タスクを識別するタスク識別情報と、関連タスクを識別するタスク識別情報と、を対応付けて記憶し、さらに該検出タスクが所定状態となった場合に停止させる少なくとも１つの関連タスクについて、停止対象タスクであることを識別する停止対象フラグを記憶している。ある検出タスクと関連タスクの組み合わせについての停止対象フラグが停止対象タスクであることを示す状態である場合には、該関連タスクは該検出タスクとの関連において停止対象タスクであり、該検出タスクには停止対象タスクが対応付けて記憶されているということができる。
【００２５】
なお、所定状態とは、例えば不正な関数処理があった状態をいう。該所定状態を検出する処理の具体例としては、関数コールのリターンがエラーであるか否かを判断する処理を使用することができる。該処理を各タスクに含めておくことにより、各タスクにおいて所定状態を検出することができる。
【００２６】
図３に示すように、領域Ａでは検出タスクがドライバ５０に含まれるタスク５１乃至５３又は基本機能部分の処理のためのタスクであるタスク４１乃至４４であり、関連タスクも同じくタスク５１乃至５３又はタスク４１乃至４４である。基本機能に係るタスクにおいて後述する所定状態が検出された場合には、その他の基本機能に係るタスクは全て停止する必要がある。ドライバ５０や基本機能部分の処理のためのタスクにおいて不正な関数コールが発生した状態となった場合には、該タスクが情報処理装置１において行われる処理の基本的な部分をなすため、全てのタスクを停止し、その後再開処理を行うことで復旧させることが適当だからである。このため領域Ａには、それぞれの検出タスクである基本機能に係るタスクに対応付けて、関連タスクである他の基本機能に係るタスクが停止対象タスクであることを示す停止対象フラグが記憶される。
【００２７】
また領域Ｂでは、検出タスクがタスク５１乃至５３又はタスク４１乃至４４であり、関連タスク追加機能部分の処理のためのタスクであるタスク４５乃至４７である。基本機能に係るタスクにおいて後述する所定状態が検出された場合には、追加機能に係るタスクは全て停止する必要がある。ドライバ５０や基本機能部分の処理のためのタスクにおいて不正な関数コールが発生した状態となった場合には、該タスクが情報処理装置１において行われる処理の基本的な部分をなすため、全てのタスクを停止し、その後再開処理を行うことで復旧させることが適当だからである。このため領域Ｂにも、それぞれの検出タスクである基本機能に係るタスクに対応付けて、関連タスクである追加機能に係るタスクが停止対象タスクであることを示す停止対象フラグが記憶される。
【００２８】
一方領域Ｃでは検出タスクが追加機能部分の処理のためのタスクであるタスク４５乃至４７であり、関連タスクも同じくタスク４５乃至４７である。そして該タスク４５乃至４７において所定状態が検出された場合には、他の追加機能部分の処理のためのタスクを必要に応じ停止することとしている。このため領域Ｃには、必要に応じ停止すべき停止対象タスクであることを示す停止対象フラグが記憶される。なお、検出タスクが追加機能部分の処理のためのタスクであるタスク４５乃至４７である場合、ドライバ５０や基本機能部分の処理のためのタスクについては停止すべき停止対象タスクであることを示す停止対象フラグは記憶されない。追加機能部分の処理のためのタスクにおいて不正な関数コールが発生した状態となった場合には、基本機能部分やドライバ部分に影響を与えないようにすれば足りるからである。
【００２９】
次に、あるタスクにおいて所定状態が検出された場合に停止すべき停止対象タスクを決定する方法について、説明する。すなわち領域Ｃの部分における検出タスクと関連タスクの関係は、上述の通り、検出タスクにおいて所定状態が検出された場合には他のタスクを全て停止させなければならないという関係にはない。このため、特に検出タスクで所定状態が検出された場合に停止させなければならない関連タスクのみを選択して、停止対象フラグを記憶しておく方法が必要となる。そのひとつは、例えばプログラムを作成した段階で、停止対象タスクテーブルに記憶させておく方法である。すなわちこの方法では、あるタスクにおいて所定状態が検出された場合に停止すべき停止対象タスクであることを示す停止対象フラグは予め停止対象タスクテーブルに記憶される。このとき、あるタスクと共通のメモリアドレスに対するアクセスを行うことがあるタスクを、該タスクとの関係において停止対象タスクとすることが好適である。このようにすれば、該タスクが所定の状態となったときのメモリテーブルの状態を、タスク停止後に保持することができるからである。
【００３０】
また他のひとつには、タスクの処理に応じて停止対象タスクテーブルに停止対象フラグを記憶させていく方法もある。具体的には、タスク間通信を監視することにより、該通信において送信したタスクとの関係において、該通信において受信したタスクを停止対象タスクとして記憶させる。
【００３１】
このタスク間通信を監視する処理について、図８及び図９を参照しながら説明する。タスク間通信とは、例えばタスク７２−１がメモリ１５のタスク間通信用記憶領域１６に通信内容を書き込み、別のタスク７２−２が該タスク間通信用記憶領域１６から該通信内容を読み出すことにより実現される通信である。従って、タスク間通信ごとにタスク間通信用記憶領域１６が割り当てられている。図８には図示されていないが、メモリ１５には複数のタスク間通信用領域１６が確保されており、各タスク間通信用領域１６は通信リソース情報により識別されるようになっている。すなわち、通信リソース情報は各タスク間通信用領域１６を識別する情報である。メモリ１５には、また、通信リソース管理情報９０が記憶されている。通信リソース管理情報９０は、通信リソース情報と、該通信リソース情報により識別されるタスク間通信用領域１６を使用してタスク間通信を行っているタスクのプログラムカウンタと、を対応づけてなる情報である。一つのタスク間通信用領域１６を使用してタスク間通信を行っているタスクは、送信側と受信側とで２つ存在するから、同じ通信リソース情報を含む通信リソース管理情報９０は２つ存在している（図９に示す通信リソース管理情報９０−１及び９０−２）。
【００３２】
メモリ１５には、さらにタスク管理テーブルが記憶されている。このタスク管理テーブルは、各タスクを識別するタスクＩＤと、該タスクのプログラムカウンタと、を対応づけてなるテーブルである。
【００３３】
本実施形態では、上記のようにメモリ１５に記憶されている通信リソース管理情報９０と、通信リソース管理情報９０とから、共通のリソース（ここではタスク間通信用領域１６）を使用してタスク間通信を行っている２つのタスクを示すタスクペア情報９２を生成するようにしている。タスクペア情報９２は、共通のリソースを使用してタスク間通信を行っている２つのタスクのタスクＩＤを含んで構成されるようにしている。
【００３４】
図９は、以上説明した通信リソース情報及び通信リソース管理情報９０を利用してタスクペア情報９２を生成する処理のより具体的な例である。まず、タスク状態管理部７０が、通信リソース情報の一致する通信リソース管理情報９０を抽出する。そして、同じ通信リソース情報により識別されるタスク間通信用領域１６を使用する２つのプログラムカウンタを関連付けたプログラムカウンタペア情報９１を作成する。そして、該プログラムカウンタペア情報９１に含まれるプログラムカウンタと対応付けて上記タスク管理テーブルに記憶されるタスクＩＤを読み出す。そして、こうして読み出したタスクＩＤと、プログラムカウンタペア情報９１に含まれるプログラムカウンタと、を置換することにより、同じ通信リソース情報により識別されるタスク間通信用領域１６を使用する２つのタスク、すなわちタスク通信中の２つのタスクを関連付けるタスクペア情報９２を作成することができる。
【００３５】
このようにしてタスクペア情報９２を作成することで、タスク間通信を行っているタスクを監視し、一方のタスクに対応付けて、停止対象タスクテーブルに停止対象タスクとして記憶することができる。換言すれば、動的に停止対象フラグを停止対象タスクテーブルに記憶していくことができるとともに、あるタスクとデータを共有するタスク（すなわち、共通のメモリアドレスを参照するタスク）を停止対象タスクとすることができる。
【００３６】
以上のようにして記憶された停止対象フラグを参照してタスクを停止するタスク停止処理について、図４及び図５に示す処理フロー図を参照しながら説明する。なお図４及び図５では、簡単のためにタスク４５乃至４７のみを取り上げて説明する。すなわち図４には図３の領域Ｃ部分を取り出して記載している。
【００３７】
タスク４７において所定の状態（ここでは障害状態、例えば不正な関数コール）がタスク状態管理部７０により検出された場合（Ｓ１００）、タスク状態管理部７０はまず停止用タスクを起動させる（Ｓ１０２）。このとき起動された停止用タスクは、最も高い優先度でターゲットＣＰＵ１０を使用するための時間が割り当てられる。停止用タスクは、タスク４７の列に停止対象タスクとして記憶されている（停止対象フラグ(同図の符号Ｃ１及び符号Ｃ２で示される停止対象フラグ)が記憶されている）タスクであるタスク４６及びタスク４７を停止させる（Ｓ１０４，Ｓ１０６）。さらに停止用タスクは、停止されたタスク４６の列に停止対象タスクとして記憶されているタスクのうち既に停止させたタスク以外のタスク（停止対象フラグ(同図の符号Ｃ３で示される停止対象フラグ)が記憶されている）であるタスク４５を停止させる（Ｓ１０８）。このようにして、あるタスクが所定の状態となった場合に、停止対象タスクとして対応付けられているタスクを停止させることができる。
【００３８】
以上のようにしてあるタスクが所定の状態となった場合にタスクを停止させることにより、コンピュータプログラムのデバッグを効率よく行うことが可能となる。より具体的には、メモリやトランザクションの状態を、タスクが所定の状態となった場合の状態で保つことができるため、該メモリやトランザクションの状態を所定の状態となった後に確認することができるので、コンピュータプログラムのデバッグを効率よく行うことが可能となる。もちろん、ハードウェア由来の故障などについても効率よく検出することができる。
【００３９】
なお、情報処理装置１が商用の運用状態にある場合、タスクを止めてデバッグを行うことよりも、早期に復旧させることの方が、優先順位が高い場合がある。そのような場合に対応するため、情報処理装置１において運用モードと障害解析モードと設け、いずれのモードであるかを記憶部７１に記憶しておくことにより、タスク状態管理部７０は、該モードに応じた処理を行うこととしてもよい。この処理にいて、図６に示す処理フロー図を参照しながら説明する。
【００４０】
図６は、モードに応じた処理を行うためのタスク状態管理部７０の処理のフロー図である。まず、モード設定がなされる（Ｓ１５０）。該モード設定では図示しない入力装置により、運用モード／障害解析モードのいずれであるかを人間が設定することとしてもよい。そしてモード設定された結果は記憶部７１に記憶される。すなわち、記憶部７１には運用モード／障害解析モードのいずれであるかが記憶される。そしてタスク状態管理部７０は、障害が発生したことを検出する（Ｓ１５２）と、上記記憶されているモードが、運用モード／障害解析モードのいずれであるかを取得することにより現在のモードが運用モードであるか否かを判断し（Ｓ１５４）、運用モードであれば復旧処理を行う（Ｓ１６０）。該復旧処理では、障害の状態に応じて、トランザクションの再設定処理、タスクの再開処理若しくは情報処理装置１全体の再開処理などが行われる。一方、障害解析モードであった場合には、タスク停止処理を行う（Ｓ１５６）。そして、タスク状態管理部７０は、所定のタスク情報取得処理を行う（Ｓ１５８）。これは例えば自動ダンプ処理であってもよい。また、人間によるメモリ状態の確認を受け入れる処理であってもよい。そして該処理が終了すると、復旧処理を行う（Ｓ１６０）。そして、通常の運用状態に戻す（Ｓ１６２）。このようにすることにより情報処理装置１では、モードに応じたデバッグ処理と復旧処理を行うことができる。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施の形態に係る情報処理装置の構成図である。
【図２】本発明の実施の形態に係る情報処理装置の機能ブロック図である。
【図３】本発明の実施の形態に係る停止対象タスクテーブルである。
【図４】本発明の実施の形態に係る停止対象タスクテーブルの一部である。
【図５】本発明の実施の形態に係る処理フロー図である。
【図６】本発明の実施の形態に係る処理フロー図である。
【図７】本発明の実施の形態に係る処理フロー図である。
【図８】本発明の実施の形態に係るタスク間通信の説明図である。
【図９】本発明の実施の形態に係るタスク間通信監視処理の説明図である。
【符号の説明】
【００４２】
１  情報処理装置、１０  ターゲットＣＰＵ、１５  メモリ、１６  タスク間通信用領域、２０  周辺装置デバイス、３０  プログラム、４０  アプリケーション、５０  ドライバ、６０，６１  タスク群、７０  タスク状態管理部、７１  記憶部、７２  タスク、９０  通信リソース管理情報、９１  プログラムカウンタペア情報、９２  タスクペア情報。
【図１】
2006127166.tif 000003
【図２】
2006127166.tif 000004
【図３】
2006127166.tif 000005
【図４】
2006127166.tif 000006
【図５】
2006127166.tif 000007
【図６】
2006127166.tif 000008
【図７】
2006127166.tif 000009
【図８】
2006127166.tif 000010
【図９】
2006127166.tif 000011