JP4992740B2 - マルチプロセッサシステム、障害検出方法および障害検出プログラム - Google Patents

マルチプロセッサシステム、障害検出方法および障害検出プログラム Download PDF

Info

Publication number
JP4992740B2
JP4992740B2 JP2008015330A JP2008015330A JP4992740B2 JP 4992740 B2 JP4992740 B2 JP 4992740B2 JP 2008015330 A JP2008015330 A JP 2008015330A JP 2008015330 A JP2008015330 A JP 2008015330A JP 4992740 B2 JP4992740 B2 JP 4992740B2
Authority
JP
Japan
Prior art keywords
processor
watchdog
daemon
cpu
failure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008015330A
Other languages
English (en)
Other versions
JP2009176146A (ja
Inventor
伸一 林
敬幸 内平
学 ▲塚▼田
義章 堀之内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008015330A priority Critical patent/JP4992740B2/ja
Publication of JP2009176146A publication Critical patent/JP2009176146A/ja
Application granted granted Critical
Publication of JP4992740B2 publication Critical patent/JP4992740B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

この発明は、システムが正常に動作しているかどうかを監視するためのウォッチドッグタイマ(WDT)を用いて障害検出を行うマルチプロセッサシステム、障害検出方法および障害検出プログラムに関するものである。
従来、サーバ等のコンピュータシステムでは、プログラムのバグ等による障害の要因を特定する為の有効な方法として、次のような方法が一般に用いられている。プログラムのバグ等により障害が発生した際、障害発生時にプログラムが使用していたメモリ内容を「ダンプファイル」としてディスク等へ出力するダンプ機能がOS(Operating System)に備わっている。そして、ダンプファイルの内容を専用のツール等で解析する事によって、障害の要因を特定する。ダンプファイル内には、障害を検出した時に走行していたプログラムのアドレスを含むレジスタ情報、タスク情報、スタック情報も含まれている。
また、一般的なコンピュータシステムでは、動作中のプログラムの正常性を確認するための一つの手段としてウォッチドッグタイマが搭載されている。通常時はウォッチドッグデーモン(以下、WDデーモン)と呼ばれるOS上のタスクがCPU(Central Processing Unit)の実行権を獲得する度にWDTのカウンタをクリアする仕組みになっている。図21は、従来技術における通常運用時のWDTとWDデーモンの動きを示す図である。
プログラムに暴走等の障害が発生すると、WDデーモンがCPUの実行権を獲得する事が出来なくなる為、WDTへのクリアも実施されなくなる。図22は、従来技術における障害発生時のWDTとWDデーモンの動きを示す図である。一定期間以上このクリアが実施されないとWDTはウォッチドッグタイムアウト(以下、WDタイムアウト)として障害を検出し、CPUへ割込み等で通知を行い、この通知を契機として前述のダンプファイルの出力処理が開始される。
一方、近年では、コンピュータシステムの処理能力を向上させ、種々のタスクを実行するための技術として、複数のCPU上で複数のタスクを並列実行するマルチプロセッサシステムが多用されるようになっている。マルチプロセッサシステムでも、動作中のプログラムの正常性の確認のためには、上述の例と同様、OS上のWDTおよびWDデーモンによる障害検出が行われるのが一般である。
また、複数の計算機を接続して負荷分散を可能とする計算機システムの障害発生に対する技術として、たとえば、下記特許文献1に記載の技術がある。下記特許文献1では、複数の計算機で構成される分散システムで、各計算機の障害を検出して障害が発生した場合に、上位機に問い合わせることなく、バックアップ計算機を決定することを可能とする技術が開示されている。
特開昭62−072052号公報
しかしながら、マルチプロセッサシステムの各CPU上では、タスクはCPU実行権を獲得したり解放したりを繰り返しながら並列動作を行っており、あるタスクが実行権を解放した際、次にどのタスクが実行権を持つかはOSの機能であるスケジューラが決定し、スケジューラが次のタスクへの切替えを行っている。通常、タスクはなるべく同じCPU上に留るため、CPU実行権を解放した後、次に実行権が回って来る際は同じCPU上で実行されるようスケジューリングされる事になる。上述のWDデーモンもタスクの一種であるため、通常であれば同じCPU上で動作する。したがって、WDデーモンは実行権を獲得する度に同一のCPU上で動作して、WDTのクリアを実施することになる。
このため、上記WDTおよびWDデーモンを用いた障害検出の従来技術をマルチプロセッサシステムに適用する場合に、WDデーモンが稼動しているCPUとは異なるCPU上で無限ループ等の暴走障害が発生しても、WDデーモンは稼動しているCPUが正常であるためWDTをクリアし続け、システム全体としての障害を検出する事ができない、という問題がある。
また、ロードバランス機能を備えたOSの場合は、あるCPU上に多数のタスクが偏ってしまった場合等に、別のCPU上へタスクを強制移動させて負荷分散を行うことがある。この場合、暴走障害が発生したCPU以外のCPUへWDデーモンが割当てられる可能性が高くなり、その場合、上記の例と同様に、システム全体としての障害を検出する事ができない、という問題がある。図23は、従来技術におけるWDTが障害を検出できないケースを示す図である。このように、CPU#2のタスクが暴走していても、WDデーモンがCPU#0またはCPU#1で動作しているとWDTはカウンタをクリアし、障害を検出できない。
また、CPUと同じ数のWDTを実装すれば、全てのCPUに渡って発生する障害を監視することが可能であるが、コスト的に負担が大きい上に、専用ハードを搭載することになり汎用性が損なわれる。近年では汎用CPUを搭載したボード上で汎用OSを動かし同一ハードウェアで多様なサービスに対応するサーバシステムの導入がキャリア等を中心に広がっている。そうしたシステムに障害監視や障害情報収集のために独自に専用ハードウェアを搭載すると、汎用性を損なうことになるため、導入は難しい。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、専用ハードウェアを搭載することなく、システムの全てのCPUで発生した障害を検出することができることができるマルチプロセッサシステム、障害検出方法および障害検出プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明は、複数のプロセッサを備え、ウォッチドッグデーモンがウォッチドッグタイマを用いて障害の検出を行い、障害を検出した場合に障害発生の通知を行うマルチプロセッサシステムであって、待機中のタスクが実行権を獲得した際に動作するプロセッサの識別子が対応するタスクごとに格納されているプロセッサ情報と、ウォッチドッグデーモンが動作するプロセッサを順次移動させて巡回させるためのルールであるプロセッサ移動ルールと、を格納するための記憶手段と、ウォッチドッグデーモンのタスクに対応する前記プロセッサ情報を前記プロセッサ移動ルールに基づいて更新し、更新後のプロセッサ情報を前記記憶手段に書き込むウォッチドッグ管理手段と、を備えることを特徴とする。
また、本発明は、前記記憶手段に、ウォッチドッグデーモンが動作したプロセッサの識別子とウォッチドッグデーモンがウォッチドッグタイマをクリアした時刻とを対応付けてウォッチドッグ起動履歴として格納するウォッチドッグ履歴記録手段と、前記ウォッチドッグ起動履歴に基づいて、所定の時間を超えてウォッチドッグデーモンが動作していないプロセッサがあると判断した場合には、そのプロセッサに障害が発生したことを示す障害発生を通知するウォッチドッグ起動監視手段と、をさらに備えることを特徴とする。
また、本発明は、前記プロセッサ移動ルールに対するユーザーからの変更要求を受け付けるウォッチドッグデーモン挙動指定手段、をさらに備え、前記ウォッチドッグ管理手段が、前記変更要求に基づいて前記プロセッサ移動ルールを書き換えることを特徴とする。
また、本発明は、障害発生の通知が行われた場合、実行命令を含むレジスタ情報、タスク情報、スタック情報を含むプログラム走行情報を、所定の期間収集し、収集したプログラム走行情報を前記記憶手段へ書き込むプログラム走行履歴記録手段、をさらに備えることを特徴とする
また、本発明は、前記プログラム走行履歴の出力先の装置を変更可能とすることを特徴とする。
本発明によれば、WDデーモンの動作プロセッサを所定のプロセッサ移動ルールに従って移動させるようにしたので、WDデーモンが満遍なく全プロセッサ上で動作することができ、専用ハードウェアを搭載することなく、マルチプロセッサシステム内のどのプロセッサで障害が発生した場合でも、WDタイムアウトによる障害の検出を行うことができるという効果を奏する。
また、本発明によれば、WDTクリアを行ったプロセッサ番号とその時刻をWD起動履歴として格納し、WD起動履歴に基づいて所定の基準時間の間WDTクリアが行われていないプロセッサがある場合に、そのプロセッサ上で障害が発生したと判断して障害通知を出すようにしたので、OSがロードバランス機能を有する場合でも、長時間WDデーモンが動作していないプロセッサを検出することにより、全てのプロセッサについて障害検出を行うことができるという効果を奏する。
また、本発明によれば、プロセッサ移動ルールに対するユーザーの変更指示を受付け、変更指示に基づいて格納されたプロセッサ移動ルールを書き換えるようにしたので、プロセッサ移動ルールをいつでも任意に変更することができ、ユーザーの要求を容易に反映することができるという効果を奏する。
また、本発明によれば、障害発生通知があった場合に、プログラムの実行命令を含むレジスタ情報、タスク情報、スタック情報、時刻情報などをあらかじめ定められた任意の時間の間収集して格納するようにしたので、障害発生時のみの情報を格納する通常のダンプファイルとは異なり所定の時間の情報を確認することができ、無限ループが発生するような障害についても、格納されたプログラム走行履歴を解析することにより、容易に障害箇所を特定することができるという効果を奏する。
また、本発明によれば、ダンプファイルの出力先を指定できるようにしたので、システムの利用状況に応じてより利便性の高いメディアへの出力が選択可能となり、また、ダンプファイルを出力する装置に障害があった場合でも出力先を変更することによりダンプファイルの記録が可能となるという効果を奏する。
以下に添付図面を参照して、この発明に係るマルチプロセッサシステム、障害検出方法および障害検出プログラムの好適な実施の形態を詳細に説明する。なお、本実施例の説明では、プロセッサとして、CPUを例に挙げて説明するが、プロセッサの形態は、MPU(Micro Processing Unit)等の他の形態であってもよい。また、ウォッチドッグデーモンおよびウォッチドッグタイマについても、所定のタイミングでシステムの動作状態を監視して障害の発生を検知する機能を有するものであればよい。
図1は、本発明にかかるマルチプロセッサシステムの実施例1の機能構成例を示す図である。本実施例のマルチプロセッサシステムは、複数のCPU(図示せず)で構成される制御部1と一次記憶装置2を備える。また、制御部1上では、OSが稼動する。図1に示すように、本実施例のマルチプロセッサシステムは、実行するタスクに使用するCPUの割り当てを行うスケジューラ10と、CPU実行権を獲得する度にWDTに対してカウンタのクリアを行うWDデーモン11と、WD管理部12と、WDデーモン11により障害が検出された場合にダンプファイルを生成するダンプファイル出力部13と、で構成される。また、出力先装置3は、磁気ディスク,メモリ,表示装置などで構成され、ダンプファイル出力部13が生成するダンプファイルの出力先となる装置である。
なお、スケジューラ10,WDデーモン11,ダンプファイル出力部13は、ここでは、OSの一般的な機能の一部とするが、これに限らず、同様の機能を実現するOS以外の手段を用いるようにしてもよい。
一次記憶装置2には、各タスクがどのCPUが使用されるかの情報であるCPU情報を含むタスク情報と、WDデーモン11に割り当てるCPUの移動ルールが格納されているCPU移動ルールとが記憶される。
つづいて、本実施例の動作について説明する。ここでは、本実施例のマルチプロセッサシステムが、計4個のCPU(CPU#0〜CPU#3)を備える場合を仮定して説明する。まず、前提条件として、図2に、これらのCPU上で動作するタスクの状態遷移を示す。「実行状態」とはスケジューラ10によりそのCPUの実行権を渡され、タスクが処理を実行している状態を指す。「待機状態」とはタスクの処理が終了し、他のタスクへCPU実行権を明け渡しスリープしている状態を指す。「実行待ち状態」とは、待機状態からタスクが起床されてCPU毎に用意された実行待ちキューへ入った状態を指す。WDデーモン11もタスクの一つであり、図2の状態遷移を行いつつ、「実行状態」となりCPU実行権を獲得する度にタスク処理としてWDTに対してカウンタのクリアを行う。
図3は、CPU毎に用意されたタスクの実行待ちキューを説明するための図である。実行待ちキューは、タスクごとのタスク情報として、データがリスト状に格納されている。起床されたタスクは実行待ちキューの最後尾(Tail)に入る(最後尾のタスク情報として格納される)。スケジューリング契機が来ると、スケジューラ10はキューの先頭(Head)に格納されているタスク情報に対応するタスクから優先して該当CPUの実行権を渡す。たとえば、図3では、先頭(Head)に格納されているタスク情報に対応するタスクから順に実行権が与えられる。そして、タスク情報の順に対応するタスクに実行権が与えられ、最後にTailのタスク情報に実行権が与えられる。CPU上で処理を終えたタスクは、待機状態に移行すると共にキューから外され、次の実行契機まで待機する。
以上を前提として、本実施例の処理手順を説明する。図4は、本実施例の処理手順の一例を示すフローチャートである。図5−1,5−2,5−3,5−4は、本実施例の動作を説明するためのそれぞれ第1,第2,第3,第4の概念図である。まず、CPU移動ルールがあらかじめ決められ、一次記憶装置2に格納されているとする。ここでは、例として「ラウンドロビン形式かつCPU番号の降順(CPU#3→CPU#2→CPU#1→CPU#0)へ移動」というルールが設定されたとする。
ある時点で、CPU#3上で実行していたタスクAが処理を終了し、スケジューラ10がWDデーモン11にCPU#3の実行権を割当てたとする(ステップS11)。具体的には、図5−1に示した第1の概念図のように、タスクAのタスク処理の終了後、タスクAはCPU#3の実行待ちキューから外され待機状態へ移行し、CPU#3の実行待ちキューのHeadであったWDデーモン11のタスクにスケジューラ10により実行権が与えられる。そして、WDデーモン11がWDTのカウンタのクリアを要求する(ステップS12)。
WDTのカウンタのクリア要求の実行によりカウンタのクリアが終了すると、WDデーモンはWD管理部12に対しCPU#3上でWDTのクリア処理を行った旨を通知する(ステップS13)。通知を受けたWD管理部12は、一次記憶装置のCPU移動ルールを読み出し、CPU移動ルールに基づいて、次回のWDデーモン11のタスクを実行するCPUを決定する(ステップS14)。この場合には、CPU移動ルールが「ラウンドロビン形式かつCPU番号の降順」であることから、次回WDデーモン11が起動される時の実行CPUをCPU#2に決定する。
つぎに、WD管理部12は各タスクに対応したタスク情報群の中から、WDデーモン11のタスク情報を検索して読み出し、読み出したタスク情報に含まれるCPU情報のエリアを参照する。この時点では、WDデーモン11のタスクはCPU#3で実行された為、参照したCPU情報のエリアにはCPU#3を示す数値(ここでは、“3”とする)が記録されている。WD管理部12は、このCPU情報のエリアをステップS14で決定したCPU#2を示す数値(“2”)へ書き換える(ステップS15)。ステップS15の書き換えが終了すると、WD管理部12はWDデーモン11に対しCPU情報の変更完了を通知し(ステップS16)、WDデーモン11は待機状態へと状態遷移する。そして、図5−2の第2の概念図に示すように、WDデーモン11はCPU#3の実行待ちキューから外され、スケジューラ10により次のタスクBがCPUの実行権を獲得し、タスク処理を開始する。
一定時間経過後、待機していたWDデーモン11が起床されると、前述のようにWDデーモン11のタスクは、再び実行待ちキューへ入ることになるが、この時、WDデーモン11のタスク情報内のCPU情報は“2”に書き換えられているため、図5−3の第3の概念図に示すように、WDデーモン11はCPU#2の実行待ちキューへ自動的に入る(CPU#2のタスク情報として格納される)。この結果、図5−4の第4の概念図に示すように、さらに時間経過後に、WDデーモン11のタスクがキューの先頭へ移動すると、スケジューラによりCPU#2の実行権を渡され、上述のステップS12と同様にWDTのカウンタのクリアを要求する。以降、ステップS13以降の処理が行われるが、ステップS14で決定されるCPUは、CPU移動ルールに従いCPU#1となる。
このような動作を繰り返しながら、WDデーモン11が動作する(WDTのカウンタクリアを実施する)CPUは、CPU#3→CPU#2、CPU#2→CPU#1、CPU#1→CPU#0、CPU#0→CPU#3と、システムが正常に運用されている間はラウンドロビン形式に従って全CPU間を満遍なく巡るよう移動していく。
つづいて、障害発生時の動作について説明する。図6は、本実施例の障害発生時の動作を説明するための図である。上述の本実施例の処理手順(以下、CPU移動処理という)により、過去の時刻T1にCPU#3上で、時刻T2にCPU#2上で、時刻T3にCPU#1上で、時刻T4にCPU#0上で、それぞれWDデーモン11によるWDTのカウンタのクリアが実施されたとする。時刻T4の後に、CPU#3上で実行中のタスクD内で無限ループ等による障害が発生したと仮定する。時刻T4でWDデーモン11がCPU#0で起動されたため、障害発生の時点では、タスク情報のCPU情報エリアが3に書き換えられている。
しかし、WDデーモン11のタスクがCPU#3の実行待ちキューの先頭にきても、タスクDがCPU#3の実行権を獲得したまま暴走し続けているため、CPUの実行権が回って来ないまま待ち続けざるを得ない。そして、時刻T4以降一定期間WDTのクリアが実施されないとWDTはWDタイムアウトを検出し、OSに対して割込み(割込みの要因はWDタイムアウト)を通知する。割込みが通知されると、OSはそれを障害発生のトリガとみなし、ダンプファイル出力部13が全CPU分のメモリ情報をダンプファイルへと出力する処理を行う。ここでは、CPU#3で障害が発生した例について説明したが、他のCPUで障害が発生した場合でも、上述のCPU移動処理によりいずれは障害が発生したCPUの実行待ちキューにWDデーモン11のタスクが入るため、障害発生を検出することができる。
なお、本実施例では、CPU移動ルールを、CPU番号の降順に従ってラウンドロビン方式に移動としたが、これに限らず、たとえば、CPU番号の昇順にする、ラウンドロビン方式ではなく他の方式により巡回方式にする、など全てのCPUを一定期間の間に一巡するようなルールであればどのようなルールとしてもよい。
以上のように、本実施例では、WDデーモンの動作CPUを所定のCPU移動ルールに従って移動させるようにした。このため、専用ハードウェアを搭載することなく、マルチプロセッサシステム内のどのCPUで障害が発生した場合でも、WDタイムアウトによる障害の検出を行うことができる。
図7は、本発明にかかるマルチプロセッサシステムの実施例2の機能構成例を示す図である。図7に示すように、本実施例のマルチプロセッサシステムは、実施例1のマルチプロセッサシステムに、WD履歴記録部14とWD起動監視部15を追加しているが、それ以外は実施例1と同様である。実施例1と同様の機能を有する構成要素は、実施例1と同一の符号を付して説明を省略する。
本実施例のOSは、CPUの実行待ちキュー内のタスク数に偏りが生じた場合に、実行待ちキュー内のタスク数が多いCPUから少ないCPUへ強制移動を行うロードバランス機能を備えていると仮定する。本実施例のCPU移動処理については実施例1と同様であり、以下、実施例1と異なる部分について説明する。
通常運用時は実施例1と同様に、WDデーモン11はCPU移動ルールに従って、動作CPUを移動しながらWDTのカウンタのクリア処理を行う。ここでは、実施例1と同様に、CPU移動ルールを、CPU番号の降順に従ってラウンドロビン方式で移動しながらWDTのクリアを行うこととする。
図8−1,2は、本実施例の障害発生時の動作を説明するための第1,第2の概念図である。まず、図8−1に示すように、前述のCPU移動ルールにより、過去の時刻T1にCPU#3上で、時刻T2にCPU#2上で、時刻T3にCPU#1上で、それぞれWDデーモン11によりWDTカウンタのクリアが実施されたとする。この時点で(時刻T3以降)、CPU#3上で実行されているタスクD内で無限ループによる障害が発生したと仮定する。WDデーモン11が待機状態より起床すると、タスク情報のCPU情報エリアが“0”に変更されているため、WDデーモン11のタスクはCPU#0の実行待ちキューに入る。
このため、つぎにWDデーモン11がWDTのカウンタのクリアを実施するのはCPU#0上になるはずである。しかし、本実施例ではOSがロードバランス機能を備えているため、もしCPU#0の実行待ちキューに入っているタスク数が多すぎるとOSが判断すると、OSは、図8−2に示すように、CPU#0の実行待ちキュー内のタスクの一部を強制的に別のCPUの実行待ちキューへ移動させてしまう。WDデーモン11もロードバランスの対象となる。ここでは、WDデーモン11のタスクがCPU#0からCPU#2の実行待ちキューへ移動させられたと仮定する。
以上のロードバランス機能による処理により、次にWDデーモン11はCPU#2上でWDTのカウンタのクリアを実施し、以降は再びCPU番号の降順のCPU移動が続行される。このようなロードバランス機能による強制的な実行待ちキュー移動が、何度も繰り返されているような状況では、場合によってはWDデーモン11がCPU#3の実行待ちキューへ入ることができないことがある。この場合、WDタイムアウトが発生しないため、CPU#3上でタスクDが暴走していることを検出できないことになる。
こうしたケースに対応するため、本実施例では、WDTのカウンタのクリア処理(以下、WDTクリアという)を行ったCPU番号をWD起動履歴として記憶し、所定の時間WDTクリアの行われていないCPUを検出できるようにしている。図9は、本実施例の処理手順の一例を示すフローチャートである。まず、WD管理部12がWDデーモン11のタスク情報のCPU情報エリアを書き換えた(実施例1のステップS16)後、WD管理部12がWD履歴記録部14にWDTクリアを行ったCPU番号(WDデーモン11が動作したCPU番号)を通知する(ステップS21)。
通知を受けたWD履歴記録部14は、現在時刻をシステム時計より取得した上で、一次記憶装置2内にWD起動履歴を書き込む(ステップS22)。図10はWD起動履歴として書き込むテーブル情報の一例を示す図である。このテーブル内には少なくとも現在時刻およびWDTをクリアしたCPU番号が含まれるものとする。
WD起動履歴への書込みが終了すると、WD履歴記録部14はWD起動監視部15を起動する(ステップS23)。WD起動監視部15は、過去一定時間分のWD起動履歴を遡って参照し、CPU#0〜CPU#3の中でWDデーモン11が起動していない期間が所定の基準時間(例:120秒)を超えているCPUがあるか否かを判断する(ステップS24)。基準時間を超えてWDデーモン11が起動されていないCPUが存在すると判断した場合(ステップS24 Yes)、WD起動監視部15は、そのCPU上で障害が発生したものと判断し、障害発生の通知を出す(ステップS25)。この通知を受けたダンプファイル出力部13は、WDタイムアウト発生の通知を受けた時と同様に、ダンプファイルを生成し、出力先装置3にダンプファイルを出力する(ステップS26)。
図11に本実施例の動作を説明するための第3の概念図を示す。図8−1と同様にCPU#3上でタスクDが無限ループ等の暴走を起こしている状況で、WDデーモン11が動作CPUを移動しながらWDTのクリアを実施している。頻繁にロードバランス機能による処理が発生するためCPU#0〜CPU#2の範囲内でのみWDデーモン11が起動される状況がしばらく続いていることとする。この例では、CPU#1上でWDデーモン11が動作したT3から、基準時間であるm秒経過したT11の時点までの間で、CPU#3上でWDデーモン11は動作していない。図12は、本実施例のWD起動履歴の一例を示す図である。図12は、図11で説明した例のT11の時点でのWD起動履歴の例である。このように、WD起動履歴に基づいてT3〜T11までのm秒(基準時間:たとえば120秒)の間に一度もCPU#3上でWDデーモンが起動されていないと判断できるため、この場合、CPU#3上で障害が発生したものとみなし、WD起動監視部15は、障害発生の通知を出す。
このように、本実施例では、WD履歴記録部14がWDTクリアを行ったCPU番号とその時刻をWD起動履歴として一次記憶装置2に格納し、WD起動監視部15が、WD起動履歴に基づいて所定の基準時間の間WDTクリアが行われていないCPUがある場合に、そのCPU上で障害が発生したと判断して障害通知を出すようにした。このため、OSがロードバランス機能を有するシステムで、マルチプロセッサシステム内のどのCPUで障害が発生した場合でも、WDタイムアウトによる障害検出を行うことができる。
図13は、本発明にかかるマルチプロセッサシステムの実施例3の機能構成例を示す図である。図13に示すように、本実施例のマルチプロセッサシステムは、実施例1のマルチプロセッサシステムのWD管理部12をWD管理部12aに替え、WD挙動指定部16を追加しているが、それ以外は実施例1と同様である。実施例1と同様の機能を有する構成要素は、実施例1と同一の符号を付して説明を省略する。
本実施例では、CPU移動ルールをユーザーが指定するためにWD挙動指定部16を追加し、WD管理部12aがユーザーの指定に基づいて一次記憶装置2のCPU移動ルールを書き換える。
図14は、本実施例の処理手順の一例を示すフローチャートである。また、図15は、本実施例のWDデーモン11が動作するCPUの流れを示す図である。まず、実施例1と同様にCPU移動ルールがあらかじめ定められ、一次記憶装置2に格納されているとする。ここでは、あらかじめ定められたCPU移動ルールとしてランダム巡回(ランダムな順番で全てのCPUの移動を繰り返す)が設定されていたとする。そして、実施例1で説明したCPU移動処理によって、そのCPU移動ルールに基づいた処理が行われているとする。その状態ではWDデーモン11は、たとえば、図15の期間(a)のようにランダム巡回を行っている。
このとき、ユーザーがCPU移動ルールを「ラウンドロビン形式かつCPU番号の降順へ移動」というルールに変更したいとする。この場合、WD挙動指定部16が、ユーザーの指示(この例では「ラウンドロビン形式かつCPU番号の降順へ移動」というルールへの変更指示)を受付け、指示内容をWD管理部12aに通知する(ステップS31)。ユーザーからの指示は、たとえば、図示しないキーボード,マウスなどの入力装置を経由して行われることとする。つぎに、通知をうけたWD管理部12aは、その指示内容に基づいて一次記憶装置2上のCPU移動ルールを書き換える(ステップS32)。
この処理以降、WD管理部12aは、WDデーモン11に対するCPU割り当てをユーザーにより変更された「ラウンドロビン形式かつCPU番号の降順へ移動」というルールに基づいて行うことになる(図15の期間(b))。なお、CPU移動ルールのユーザーによる変更を受付けるタイミングに特に制約はない。
なお、本実施例では、実施例1のマルチプロセッサシステムのWD管理部12をWD管理部12aに替え、WD挙動指定部16を追加しているが、実施例2のマルチプロセッサシステムのWD管理部12をWD管理部12aに替え、さらにWD挙動指定部16を追加して、上述のCPU移動ルールに対するユーザーの変更指示を反映する処理を行うようにしてもよい。
このように、本実施例では、WD挙動指定部16が、CPU移動ルールに対するユーザーの変更指示を受付け、WD管理部12aが変更指示に基づいて一次記憶装置2に格納されたCPU移動ルールを書き換えるようにした。このため、CPU移動ルールをいつでも任意に変更することができる。
図16は、本発明にかかるマルチプロセッサシステムの実施例4の機能構成例を示す図である。図16に示すように、本実施例のマルチプロセッサシステムは、実施例1のマルチプロセッサシステムに、プログラム走行履歴記録部17を追加し、一次記憶装置2にさらにプログラム走行履歴を格納するようにしているが、それ以外は実施例1と同様である。実施例1と同様の機能を有する構成要素は、実施例1と同一の符号を付して説明を省略する。
従来のWDタイムアウト検出により、出力されたダンプファイルからは、障害原因を調査する事が困難なケースが存在する。障害の原因がプログラム内で発生した不正メモリアクセスや論理矛盾の場合であれば、障害発生時に走行していたプログラムのアドレスが障害箇所そのものであるため、ダンプファイル内の情報から障害要因を特定する事は比較的容易である。これに対し、プログラム内で無限ループが発生しWDタイムアウトが検出された場合では、ダンプファイルから得られるCPUの実行アドレス情報は、ループしているアドレス範囲のうちWDタイムアウトが発生した瞬間に走行していたアドレスに過ぎない。そのため、プログラムのどの範囲内でループが発生していたのか、そして何が原因でループ発生に至ったのかという要因についてはダンプファイル内に残る情報からは特定する事ができず、障害の根本原因の究明が困難であるという課題があった。したがって、こうした障害の場合は、プログラムの走行情報を実行命令毎に記録する事が解析の有効な情報となり得る。しかし、通常運用中にもそうした走行情報を常時記録することは、システムに多大な負荷をかける事になり実用的では無い。
上記の問題を解決するため、本実施例では、障害を検出した時点から一定時間プログラムの走行履歴を収集する機能を追加している。プログラムの走行履歴には、一般にダンプファイルとして出力される内容と同様な情報(たとえば、プログラムの実行命令を含むレジスタ情報、タスク情報、スタック情報、時刻情報など)と共に、システムから取得した各命令の実行時刻の情報も含まれる。
つづいて、本実施例の動作について説明する。図17は、本実施例の処理手順の一例を示すフローチャートである。また、図18は、本実施例の障害発生前後の処理概念を示す図である。まず、本実施例のマルチプロセッサシステムは、通常の状態では、実施例1と同様にCPU移動ルールに従ってCPU移動処理を行っている(図18の(a)通常動作期間)。
このとき、プログラム暴走等が発生し、実施例1の障害発生時の動作と同様に、WDTはWDタイムアウトを検出し障害発生を通知したとする(ステップS41)。障害発生通知をうけて、通常は、OSがダンプファイルに必要な情報を収集してダンプファイル出力部13がダンプファイルの生成を行う。つまり、障害発生通知が、障害情報収集のトリガとなっているため、以下では、障害発生通知を障害情報収集トリガとよぶこととする。
一般に、障害発生トリガをうけたOSは即座にその時点でのメモリの内容をダンプファイルとして出力するための情報として収集する処理を開始する。これに対し、本実施例では、まず、障害発生トリガが生じた場合に、OSはプログラム走行履歴記録部17に障害発生を通知し、通知を受けたプログラム走行履歴記録部17が各CPUで実行されているプログラムの実行命令を含むレジスタ情報、タスク情報、スタック情報(通常ダンプファイルに出力されるのと同様の項目)と命令の実行時刻情報を収集し、プログラム走行履歴として一次記憶装置2へ格納する(図17のステップS42,図18の(c)CPU毎の走行情報収集)。この収集および格納は、あらかじめ定められた任意の時間(図18の例では5秒間)続行する。
そして、あらかじめ定められた任意の時間が経過すると、通常のダンプファイル出力処理が行われる(ステップS43)。本実施例のこれ以外の動作は、実施例1と同様である。
なお、本実施例では、実施例1のマルチプロセッサシステムにプログラム走行履歴記録部17を追加しているが、実施例2のマルチプロセッサシステムまたは実施例3のマルチプロセッサシステムにプログラム走行履歴記録部17を追加し、本実施例と同様に、障害収集トリガが生じた場合にプログラム走行履歴を収集して、一次記憶装置2に格納するようにしてもよい。
このように、本実施例では、障害発生通知があった場合に、プログラム走行履歴記録部17がプログラムの実行命令を含むレジスタ情報、タスク情報、スタック情報、時刻情報などをあらかじめ定められた任意の時間の間収集して、プログラム走行履歴として一次記憶装置2に格納するようにした。このため、無限ループが発生するような障害についても、格納されたプログラム走行履歴を解析することにより、容易に障害箇所を特定することができる。
図19は、本発明にかかるマルチプロセッサシステムの実施例5の機能構成例を示す図である。図19に示すように、本実施例のマルチプロセッサシステムは、実施例4のマルチプロセッサシステムに、ダンプファイル出力先指定部18を追加しているが、それ以外は実施例4のマルチプロセッサシステムと同様である。実施例4と同様の機能を有する構成要素は、実施例4と同一の符号を付して説明を省略する。
また、本実施例では、出力先装置3は、磁気ディスクなどで構成されるディスク31と、パケットとして出力しネットワーク上へ転送するパケット処理装置32と、モニタなどで構成され表示を行う標準出力装置33と、半導体などで構成されるメモリ34と、を備えることする。
図20は、本実施例の処理手順の一例を示すフローチャートである。本実施例の動作は、実施例4の動作と同様であるが、本実施例では、実施例4で出力されるダンプファイルとプログラム走行情報の出力先を選択できるようにしている。まず、実施例4と同様に障害発生が通知されたとする(ステップS51)。その後、実施例4と同様にプログラム走行履歴記録部17が、実施例4のステップS42を実行し、その後、ダンプファイル出力部13へダンプファイルの出力指示する(ステップS52)。ダンプファイル出力部13は、プログラム走行情報とダンプ情報(ダンプファイルの情報として収集した情報)をダンプファイル出力先指定部18へ出力する(ステップS53)。そして、ダンプファイル出力先指定部18は、あらかじめユーザーにより設定されている出力先の指定に基づいて、プログラム走行情報とダンプファイルを出力する(ステップS54)。たとえば、出力装置3のうち、ディスク31,パケット処理装置32,標準出力装置33,メモリ34のいずれかへと出力させる。なお、ダンプファイル出力先指定部18は、あらかじめ設定された出力先を保持しており、ユーザーからの指定があった場合には、その設定内容を書き換えることとする。
なお、本実施例では、プログラム走行履歴情報と通常のダンプファイルの両方を出力先装置3へ出力するようにしたが、プログラム走行履歴情報のみを出力するようにしてもよい。
このように、本実施例では、ダンプファイルの出力先を指定できるようにした。このため、ユーザーの利用しやすい形態でダンプファイルを出力することができる。また、たとえば、ダンプファイルを出力する装置に障害があった場合、通常であればダンプファイルを記録することができなくなるが、本実施例では出力先を変更することによりダンプファイルの記録が可能となる。
(付記1)複数のプロセッサを備え、ウォッチドッグデーモンがウォッチドッグタイマを用いて障害の検出を行い、障害を検出した場合に障害発生の通知を行うマルチプロセッサシステムであって、
待機中のタスクが実行権を獲得した際に動作するプロセッサの識別子が対応するタスクごとに格納されているプロセッサ情報と、ウォッチドッグデーモンが動作するプロセッサを順次移動させて巡回させるためのルールであるプロセッサ移動ルールと、を格納するための記憶手段と、
ウォッチドッグデーモンのタスクに対応する前記プロセッサ情報を前記プロセッサ移動ルールに基づいて更新し、更新後のプロセッサ情報を前記記憶手段に書き込むウォッチドッグ管理手段と、
を備えることを特徴とするマルチプロセッサシステム。
(付記2)前記記憶手段に、ウォッチドッグデーモンが動作したプロセッサの識別子とウォッチドッグデーモンがウォッチドッグタイマをクリアした時刻とを対応付けてウォッチドッグ起動履歴として格納するウォッチドッグ履歴記録手段と、
前記ウォッチドッグ起動履歴に基づいて、所定の時間を超えてウォッチドッグデーモンが動作していないプロセッサがあると判断した場合には、そのプロセッサに障害が発生したことを示す障害発生を通知するウォッチドッグ起動監視手段と、
をさらに備えることを特徴とする付記1に記載のマルチプロセッサシステム。
(付記3)前記プロセッサ移動ルールに対するユーザーからの変更要求を受け付けるウォッチドッグデーモン挙動指定手段、
をさらに備え、
前記ウォッチドッグ管理手段が、前記変更要求に基づいて前記プロセッサ移動ルールを書き換えることを特徴とする付記1または2に記載のマルチプロセッサシステム。
(付記4)障害発生の通知が行われた場合、実行命令を含むレジスタ情報、タスク情報、スタック情報を含むプログラム走行情報を、所定の期間収集し、収集したプログラム走行情報を前記記憶手段へ書き込むプログラム走行履歴記録手段、
をさらに備えることを特徴とする付記1、2または3に記載のマルチプロセッサシステム。
(付記5)前記プログラム走行履歴の出力先の装置を変更可能とすることを特徴とする付記4に記載のマルチプロセッサシステム。
(付記6)複数のプロセッサを備え、ウォッチドッグデーモンがウォッチドッグタイマを用いて障害の検出を行行い、障害を検出した場合に障害発生の通知を行うマルチプロセッサシステムにおける障害検出方法であって、
ウォッチドッグデーモンが動作するプロセッサを順次移動させて巡回させるためのルールであるプロセッサ移動ルールを格納するプロセッサ移動ルール格納ステップと、
待機中のタスクが実行権を獲得した際に動作するプロセッサの識別子が対応するタスクごとに格納されているプロセッサ情報のうち、ウォッチドッグデーモンのタスクに対応するプロセッサ情報を、前記プロセッサ移動ルールに基づいて更新するウォッチドッグ管理ステップと、
を含むことを特徴とする障害検出方法。
(付記7)ウォッチドッグデーモンが動作したプロセッサの識別子とウォッチドッグデーモンがウォッチドッグタイマをクリアした時刻とを対応付けてウォッチドッグ起動履歴として格納するウォッチドッグ履歴記録ステップと、
前記ウォッチドッグ起動履歴に基づいて、所定の時間を超えてウォッチドッグデーモンが動作していないプロセッサがあると判断した場合には、そのプロセッサに障害が発生したことを示す障害発生を通知するウォッチドッグ起動監視ステップと、
をさらに含むことを特徴とする付記6に記載の障害検出方法。
(付記8)前記プロセッサ移動ルールに対するユーザーからの変更要求を受け付けるウォッチドッグデーモン挙動指定ステップと、
前記変更要求に基づいて前記プロセッサ移動ルールを書き換えるステップと、
をさらに含むことを特徴とする付記6または7に記載の障害検出方法。
(付記9)ウォッチドッグデーモンによる障害の検出により障害発生の通知が行われた場合、または、前記ウォッチドッグ起動監視ステップによる障害発生の通知が行われた場合に、実行命令を含むレジスタ情報、タスク情報、スタック情報を含むプログラム走行情報を、所定の期間収集し、収集したプログラム走行情報を記録するプログラム走行履歴記録ステップ、
をさらに含むことを特徴とする付記6、7または8に記載の障害検出方法。
(付記10)前記プログラム走行履歴の出力先の装置を変更可能とすることを特徴とする付記9に記載の障害検出方法。
(付記11)複数のプロセッサを備え、ウォッチドッグデーモンがウォッチドッグタイマを用いて障害の検出を行うマルチプロセッサシステムにおいて、障害を検出するための障害検出プログラムであって、
ウォッチドッグデーモンが動作するプロセッサを順次移動させて巡回させるためのルールであるプロセッサ移動ルールを記憶部に格納するプロセッサ移動ルール格納手順と、
記憶部からプロセッサ移動ルールを読み出し、さらに待機中のタスクが実行権を獲得した際に動作するプロセッサの識別子が対応するタスクごとに格納されているプロセッサ情報のうち、ウォッチドッグデーモンのタスクに対応するプロセッサ情報を記憶部から読み出し、読み出したプロセッサ情報を前記プロセッサ移動ルールに基づいて更新し、更新後のプロセッサ情報を記憶部に書き込むウォッチドッグ管理手順と、
をコンピュータに実行させることを特徴とする障害検出プログラム。
(付記12)ウォッチドッグデーモンが動作したプロセッサの識別子とウォッチドッグデーモンがウォッチドッグタイマをクリアした時刻とを対応付けてウォッチドッグ起動履歴として記憶部に格納するウォッチドッグ履歴記録手順と、
記憶部からウォッチドッグ起動履歴を読み出し、読み出したウォッチドッグ起動履歴に基づいて、所定の時間を超えてウォッチドッグデーモンが動作していないプロセッサがあると判断した場合には、そのプロセッサに障害が発生したことを示す障害発生を通知するウォッチドッグ起動監視手順と、
をさらに含むことを特徴とする付記11に記載の障害検出プログラム。
(付記13)前記プロセッサ移動ルールに対するユーザーからの変更要求を受け付けるウォッチドッグデーモン挙動指定手順と、
前記変更要求に基づいて前記プロセッサ移動ルールを書き換える手順と、
をさらに含むことを特徴とする付記11または12に記載の障害検出プログラム。
(付記14)ウォッチドッグデーモンによる障害の検出により障害発生の通知が行われた場合、または、前記ウォッチドッグ起動監視手順による障害発生の通知が行われた場合に、実行命令を含むレジスタ情報、タスク情報、スタック情報を含むプログラム走行情報を、所定の期間収集し、収集したプログラム走行情報を記憶部へ書き込むプログラム走行履歴記録手順、
をさらに含むことを特徴とする付記11、12または13に記載の障害検出プログラム。
(付記15)前記プログラム走行履歴の出力先の装置を変更可能とすることを特徴とする付記14に記載の障害検出プログラム。
以上のように、本発明に係るマルチプロセッサシステム、障害検出方法および障害検出プログラムは、複数のプロセッサを有し、WDTを利用した障害検出機能を持つコンピュータシステムに適している。
本発明にかかるマルチプロセッサシステムの実施例1の機能構成例を示す図である。 タスクの状態遷移を示す図である。 タスクの実行待ちキューを説明するための図である。 実施例1の処理手順の一例を示すフローチャートである。 実施例1の動作を説明するためのそれぞれ第1の概念図である。 実施例1の動作を説明するためのそれぞれ第2の概念図である。 実施例1の動作を説明するためのそれぞれ第3の概念図である。 実施例1の動作を説明するためのそれぞれ第4の概念図である。 実施例1の障害発生時の動作を説明するための図である。 本発明にかかるマルチプロセッサシステムの実施例2の機能構成例を示す図である。 実施例2の障害発生時の動作を説明するための第1の概念図である。 実施例2の障害発生時の動作を説明するための第2の概念図である。 実施例2の処理手順の一例を示すフローチャートである。 WD起動履歴として書き込むテーブル情報の一例を示す図である。 実施例2の動作を説明するための第3の概念図である。 実施例2のWD起動履歴の一例を示す図である。 本発明にかかるマルチプロセッサシステムの実施例3の機能構成例を示す図である。 実施例3の処理手順の一例を示すフローチャートである。 実施例3のWDデーモンが動作するCPUの流れを示す図である。 本発明にかかるマルチプロセッサシステムの実施例4の機能構成例を示す図である。 実施例4の処理手順の一例を示すフローチャートである。 実施例4の障害発生前後の処理概念を示す図である。 本発明にかかるマルチプロセッサシステムの実施例5の機能構成例を示す図である。 実施例5の処理手順の一例を示すフローチャートである。 従来技術における通常運用時のWDTとWDデーモンの動きを示す図である。 従来技術における障害発生時のWDTとWDデーモンの動きを示す図である。 従来技術におけるWDTが障害を検出できないケースを示す図である。
符号の説明
1 制御部
2 一次記憶装置
3 出力先装置
10 スケジューラ
11 WDデーモン
12,12a WD管理部
13 ダンプファイル出力部
14 WD履歴記録部
15 WD起動監視部
16 WD挙動指定部
17 プログラム走行履歴記録部
18 ダンプファイル出力先指定部
31 ディスク
32 パケット処理装置
33 標準出力装置
34 メモリ

Claims (7)

  1. 複数のプロセッサと、計数した時間が所定の時間を超過した場合には、障害発生を通知する1つのウォッチドッグタイマとを備えるマルチプロセッサシステムにおいて、
    待機中のタスクが実行権を獲得した際に動作するプロセッサの識別子が対応するタスクごとに格納されているプロセッサ情報と、前記プロセッサにより実行された場合には、前記ウォッチドッグタイマが計数した時間をクリアするウォッチドッグデーモンが動作するプロセッサを順次移動させて巡回させるためのルールであるプロセッサ移動ルールと、を格納するための記憶手段と、
    ウォッチドッグデーモンのタスクに対応する前記プロセッサ情報を前記プロセッサ移動ルールに基づいて更新し、更新後のプロセッサ情報を前記記憶手段に書き込むウォッチドッグ管理手段と、
    を備えることを特徴とするマルチプロセッサシステム。
  2. 前記記憶手段に、ウォッチドッグデーモンが動作したプロセッサの識別子とウォッチドッグデーモンがウォッチドッグタイマをクリアした時刻とを対応付けてウォッチドッグ起動履歴として格納するウォッチドッグ履歴記録手段と、
    前記ウォッチドッグ起動履歴に基づいて、所定の時間を超えてウォッチドッグデーモンが動作していないプロセッサがあると判断した場合には、そのプロセッサに障害が発生したことを示す障害発生を通知するウォッチドッグ起動監視手段と、
    をさらに備えることを特徴とする請求項1に記載のマルチプロセッサシステム。
  3. 前記プロセッサ移動ルールに対するユーザーからの変更要求を受け付けるウォッチドッグデーモン挙動指定手段、
    をさらに備え、
    前記ウォッチドッグ管理手段が、前記変更要求に基づいて前記プロセッサ移動ルールを書き換えることを特徴とする請求項1または2に記載のマルチプロセッサシステム。
  4. 障害発生の通知が行われた場合、実行命令を含むレジスタ情報、タスク情報、スタック情報を含むプログラム走行情報を、障害発生を検出してから所定の期間収集し、収集したプログラム走行情報を前記記憶手段へ書き込むプログラム走行履歴記録手段、
    をさらに備えることを特徴とする請求項1、2または3に記載のマルチプロセッサシステム。
  5. 前記プログラム走行履歴の出力先の装置を変更可能とすることを特徴とする請求項4に記載のマルチプロセッサシステム。
  6. 複数のプロセッサと、計数した時間が所定の時間を超過した場合には、障害発生を通知する1つのウォッチドッグタイマとを備えるマルチプロセッサシステムが実行する障害検出方法であって、
    前記プロセッサにより実行された場合には、前記ウォッチドッグタイマが計数した時間をクリアするウォッチドッグデーモンが動作するプロセッサを順次移動させて巡回させるためのルールであるプロセッサ移動ルールを格納するプロセッサ移動ルール格納ステップと、
    待機中のタスクが実行権を獲得した際に動作するプロセッサの識別子が対応するタスクごとに格納されているプロセッサ情報のうち、ウォッチドッグデーモンのタスクに対応するプロセッサ情報を、当該ウォッチドッグデーモンが動作するプロセッサを順次移動させて巡回させるためのルールであるプロセッサ移動ルールに基づいて更新するウォッチドッグ管理ステップと
    含むことを特徴とする障害検出方法。
  7. 複数のプロセッサと、計数した時間が所定の時間を超過した場合には、障害発生を通知する1つのウォッチドッグタイマとを備えるコンピュータが実行する障害検出プログラムであって、
    前記プロセッサにより実行された場合には、前記ウォッチドッグタイマが計数した時間をクリアするウォッチドッグデーモンが動作するプロセッサを順次移動させて巡回させるためのルールであるプロセッサ移動ルールを記憶部に格納するプロセッサ移動ルール格納手順と、
    記憶部からプロセッサ移動ルールを読み出し、さらに待機中のタスクが実行権を獲得した際に動作するプロセッサの識別子が対応するタスクごとに格納されているプロセッサ情報のうち、ウォッチドッグデーモンのタスクに対応するプロセッサ情報を記憶部から読み出し、読み出したプロセッサ情報を、当該ウォッチドッグデーモンが動作するプロセッサを順次移動させて巡回させるためのルールであるプロセッサ移動ルールに基づいて更新するウォッチドッグ管理手順と
    コンピュータに実行させることを特徴とする障害検出プログラム。
JP2008015330A 2008-01-25 2008-01-25 マルチプロセッサシステム、障害検出方法および障害検出プログラム Expired - Fee Related JP4992740B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008015330A JP4992740B2 (ja) 2008-01-25 2008-01-25 マルチプロセッサシステム、障害検出方法および障害検出プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008015330A JP4992740B2 (ja) 2008-01-25 2008-01-25 マルチプロセッサシステム、障害検出方法および障害検出プログラム

Publications (2)

Publication Number Publication Date
JP2009176146A JP2009176146A (ja) 2009-08-06
JP4992740B2 true JP4992740B2 (ja) 2012-08-08

Family

ID=41031140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008015330A Expired - Fee Related JP4992740B2 (ja) 2008-01-25 2008-01-25 マルチプロセッサシステム、障害検出方法および障害検出プログラム

Country Status (1)

Country Link
JP (1) JP4992740B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391174A (zh) * 2017-06-15 2017-11-24 广州视源电子科技股份有限公司 一种***在线升级的控制方法及控制装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5440073B2 (ja) 2009-09-30 2014-03-12 富士通株式会社 情報処理装置,情報処理装置の制御方法および制御プログラム
JP6191211B2 (ja) * 2013-04-16 2017-09-06 株式会社リコー 電子機器、画像処理装置及び信号送信方法
CN104572332B (zh) * 2015-02-09 2018-08-21 华为技术有限公司 处理***崩溃的方法和装置
JP6562744B2 (ja) 2015-07-13 2019-08-21 キヤノン株式会社 システム、及び制御方法
JP7304732B2 (ja) * 2019-04-16 2023-07-07 ローム株式会社 監視装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0253169A (ja) * 1988-08-17 1990-02-22 Hitachi Ltd マルチマイクロプロセッサシステムの故障検知装置
JPH07114518A (ja) * 1993-10-15 1995-05-02 Fujitsu Ltd マルチプロセッサシステムにおけるタスクスケジューリング方式
JPH11282780A (ja) * 1998-03-26 1999-10-15 Omron Corp Faネットワークシステム
JPH11288406A (ja) * 1998-04-02 1999-10-19 Toshiba Corp 動作監視機能付きマルチプロセッサシステム
JP2000293407A (ja) * 1999-04-09 2000-10-20 Nec Eng Ltd 監視制御装置及びcpu監視方法並びにプログラム記録媒体
JP2002351702A (ja) * 2001-05-25 2002-12-06 Nec Soft Ltd オンライン利用の端末稼働統計データ作成方法及び装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391174A (zh) * 2017-06-15 2017-11-24 广州视源电子科技股份有限公司 一种***在线升级的控制方法及控制装置
CN107391174B (zh) * 2017-06-15 2020-12-04 广州视源电子科技股份有限公司 一种***在线升级的控制方法及控制装置

Also Published As

Publication number Publication date
JP2009176146A (ja) 2009-08-06

Similar Documents

Publication Publication Date Title
JP4489802B2 (ja) マルチcpuコンピュータおよびシステム再起動方法
US9335998B2 (en) Multi-core processor system, monitoring control method, and computer product
US8935698B2 (en) Management of migrating threads within a computing environment to transform multiple threading mode processors to single thread mode processors
JP5259714B2 (ja) 実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置
US8448013B2 (en) Failure-specific data collection and recovery for enterprise storage controllers
US20090193298A1 (en) System and method of fault detection, diagnosis and prevention for complex computing systems
US20090144742A1 (en) Method, system and computer program to optimize deterministic event record and replay
JP4992740B2 (ja) マルチプロセッサシステム、障害検出方法および障害検出プログラム
US20090089554A1 (en) Method for tuning chipset parameters to achieve optimal performance under varying workload types
JP6288275B2 (ja) 仮想化基盤管理装置、仮想化基盤管理システム、仮想化基盤管理方法、及び、仮想化基盤管理プログラム
US20120180057A1 (en) Activity Recording System for a Concurrent Software Environment
JP2006277115A (ja) 異常検出プログラムおよび異常検出方法
JP2011108201A (ja) 情報処理装置、診断方法および診断プログラム
US20130227586A1 (en) Recording Activity of Software Threads in a Concurrent Software Environment
JP5623557B2 (ja) 診断データを収集するためのマルチスレッド化コンピューティング環境における方法、装置、およびコンピュータ・プログラム
US20140373029A1 (en) Recording Activity of Software Threads in a Concurrent Software Environment
JP2013206379A (ja) クラスタ監視装置、クラスタ監視方法、及びプログラム
JP4761229B2 (ja) 運用管理装置、運用管理方法ならびにプログラム
JP5440073B2 (ja) 情報処理装置,情報処理装置の制御方法および制御プログラム
WO2009123343A1 (ja) 競合分析装置、競合分析方法、及びプログラム
JP6677021B2 (ja) 情報処理装置、情報処理方法、プログラム
US6658510B1 (en) Software method to retry access to peripherals that can cause bus timeouts during momentary busy periods
WO2009147738A1 (ja) 情報処理装置及びその制御方法並びにモニタプログラム
JPH11353284A (ja) ジョブ再実行方法
JPH11288406A (ja) 動作監視機能付きマルチプロセッサシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100820

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111004

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120410

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120423

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150518

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees