JP2009176146A - Multi-processor system, failure detecting method and failure detecting program - Google Patents

Multi-processor system, failure detecting method and failure detecting program Download PDF

Info

Publication number
JP2009176146A
JP2009176146A JP2008015330A JP2008015330A JP2009176146A JP 2009176146 A JP2009176146 A JP 2009176146A JP 2008015330 A JP2008015330 A JP 2008015330A JP 2008015330 A JP2008015330 A JP 2008015330A JP 2009176146 A JP2009176146 A JP 2009176146A
Authority
JP
Japan
Prior art keywords
processor
watchdog
failure
cpu
daemon
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.)
Granted
Application number
JP2008015330A
Other languages
Japanese (ja)
Other versions
JP4992740B2 (en
Inventor
Shinichi Hayashi
伸一 林
Atsuyuki Uchihira
敬幸 内平
学 ▲塚▼田
Manabu Tsukada
Yoshiaki Horinouchi
義章 堀之内
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/en
Publication of JP2009176146A publication Critical patent/JP2009176146A/en
Application granted granted Critical
Publication of JP4992740B2 publication Critical patent/JP4992740B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a multi-processor system capable of detecting failures occurring in all CPUs of the system. <P>SOLUTION: The multi-processor system includes a plurality of CPUs, where a WD daemon 11 detects failures using a watchdog timer. The system includes a primary storage device 2 for storing CPU information storing a CPU identifier operated when a standby task acquires the right of execution for each corresponding task and CPU moving rules as rules for a watchdog daemon to sequentially move and circulate the CPU, and a WD management part 12 which updates the CPU information corresponding to the task of the watchdog daemon based on the CPU moving rules and writes the updated CPU information in the primary storage device 2. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

この発明は、システムが正常に動作しているかどうかを監視するためのウォッチドッグタイマ(WDT)を用いて障害検出を行うマルチプロセッサシステム、障害検出方法および障害検出プログラムに関するものである。   The present invention relates to a multiprocessor system that detects a failure using a watchdog timer (WDT) for monitoring whether or not the system is operating normally, a failure detection method, and a failure detection program.

従来、サーバ等のコンピュータシステムでは、プログラムのバグ等による障害の要因を特定する為の有効な方法として、次のような方法が一般に用いられている。プログラムのバグ等により障害が発生した際、障害発生時にプログラムが使用していたメモリ内容を「ダンプファイル」としてディスク等へ出力するダンプ機能がOS(Operating System)に備わっている。そして、ダンプファイルの内容を専用のツール等で解析する事によって、障害の要因を特定する。ダンプファイル内には、障害を検出した時に走行していたプログラムのアドレスを含むレジスタ情報、タスク情報、スタック情報も含まれている。   Conventionally, in a computer system such as a server, the following method is generally used as an effective method for specifying the cause of a failure due to a bug in a program or the like. When a failure occurs due to a bug in the program, the OS (Operating System) has a dump function that outputs the memory contents used by the program at the time of the failure to a disk or the like as a “dump file”. Then, the cause of the failure is identified by analyzing the contents of the dump file with a dedicated tool or the like. The dump file also includes register information, task information, and stack information including the address of the program that was running when the failure was detected.

また、一般的なコンピュータシステムでは、動作中のプログラムの正常性を確認するための一つの手段としてウォッチドッグタイマが搭載されている。通常時はウォッチドッグデーモン(以下、WDデーモン)と呼ばれるOS上のタスクがCPU(Central Processing Unit)の実行権を獲得する度にWDTのカウンタをクリアする仕組みになっている。図21は、従来技術における通常運用時のWDTとWDデーモンの動きを示す図である。   In general computer systems, a watchdog timer is mounted as one means for confirming the normality of an operating program. Normally, a task on the OS called a watchdog daemon (hereinafter referred to as a WD daemon) clears the WDT counter every time it acquires the execution right of a CPU (Central Processing Unit). FIG. 21 is a diagram illustrating the movement of the WDT and the WD daemon during normal operation in the conventional technology.

プログラムに暴走等の障害が発生すると、WDデーモンがCPUの実行権を獲得する事が出来なくなる為、WDTへのクリアも実施されなくなる。図22は、従来技術における障害発生時のWDTとWDデーモンの動きを示す図である。一定期間以上このクリアが実施されないとWDTはウォッチドッグタイムアウト(以下、WDタイムアウト)として障害を検出し、CPUへ割込み等で通知を行い、この通知を契機として前述のダンプファイルの出力処理が開始される。   If a fault such as runaway occurs in the program, the WD daemon cannot acquire the right to execute the CPU, and clearing to the WDT is not performed. FIG. 22 is a diagram illustrating the movement of the WDT and the WD daemon when a failure occurs in the related art. If this clearing is not carried out for a certain period of time, WDT detects a failure as a watchdog timeout (hereinafter referred to as WD timeout), notifies the CPU with an interrupt, etc., and this dump file output process is triggered by this notification. The

一方、近年では、コンピュータシステムの処理能力を向上させ、種々のタスクを実行するための技術として、複数のCPU上で複数のタスクを並列実行するマルチプロセッサシステムが多用されるようになっている。マルチプロセッサシステムでも、動作中のプログラムの正常性の確認のためには、上述の例と同様、OS上のWDTおよびWDデーモンによる障害検出が行われるのが一般である。   On the other hand, in recent years, a multiprocessor system that executes a plurality of tasks in parallel on a plurality of CPUs is frequently used as a technique for improving the processing capability of a computer system and executing various tasks. Even in a multiprocessor system, in order to confirm the normality of an operating program, failure detection by a WDT and a WD daemon on the OS is generally performed as in the above example.

また、複数の計算機を接続して負荷分散を可能とする計算機システムの障害発生に対する技術として、たとえば、下記特許文献1に記載の技術がある。下記特許文献1では、複数の計算機で構成される分散システムで、各計算機の障害を検出して障害が発生した場合に、上位機に問い合わせることなく、バックアップ計算機を決定することを可能とする技術が開示されている。   Further, as a technique for the occurrence of a failure in a computer system that enables load distribution by connecting a plurality of computers, for example, there is a technique described in Patent Document 1 below. In the following Patent Document 1, in a distributed system composed of a plurality of computers, when a failure occurs by detecting a failure of each computer, it is possible to determine a backup computer without inquiring of a host computer Is disclosed.

特開昭62−072052号公報JP 62-072052 A

しかしながら、マルチプロセッサシステムの各CPU上では、タスクはCPU実行権を獲得したり解放したりを繰り返しながら並列動作を行っており、あるタスクが実行権を解放した際、次にどのタスクが実行権を持つかはOSの機能であるスケジューラが決定し、スケジューラが次のタスクへの切替えを行っている。通常、タスクはなるべく同じCPU上に留るため、CPU実行権を解放した後、次に実行権が回って来る際は同じCPU上で実行されるようスケジューリングされる事になる。上述のWDデーモンもタスクの一種であるため、通常であれば同じCPU上で動作する。したがって、WDデーモンは実行権を獲得する度に同一のCPU上で動作して、WDTのクリアを実施することになる。   However, on each CPU of a multiprocessor system, tasks perform parallel operations while repeatedly acquiring and releasing CPU execution rights, and when a task releases execution rights, which task executes next. Is determined by the scheduler, which is a function of the OS, and the scheduler switches to the next task. Usually, since the task stays on the same CPU as much as possible, after the CPU execution right is released, the next execution right will be scheduled to be executed on the same CPU. Since the above-mentioned WD daemon is also a kind of task, it normally runs on the same CPU. Therefore, the WD daemon operates on the same CPU every time the execution right is acquired, and clears the WDT.

このため、上記WDTおよびWDデーモンを用いた障害検出の従来技術をマルチプロセッサシステムに適用する場合に、WDデーモンが稼動しているCPUとは異なるCPU上で無限ループ等の暴走障害が発生しても、WDデーモンは稼動しているCPUが正常であるためWDTをクリアし続け、システム全体としての障害を検出する事ができない、という問題がある。   For this reason, when the conventional technology for detecting a failure using the WDT and the WD daemon is applied to a multiprocessor system, a runaway failure such as an infinite loop occurs on a CPU different from the CPU on which the WD daemon is operating. However, the WD daemon has a problem that since the operating CPU is normal, the WDT continues to be cleared, and the failure of the entire system cannot be detected.

また、ロードバランス機能を備えたOSの場合は、あるCPU上に多数のタスクが偏ってしまった場合等に、別のCPU上へタスクを強制移動させて負荷分散を行うことがある。この場合、暴走障害が発生したCPU以外のCPUへWDデーモンが割当てられる可能性が高くなり、その場合、上記の例と同様に、システム全体としての障害を検出する事ができない、という問題がある。図23は、従来技術におけるWDTが障害を検出できないケースを示す図である。このように、CPU#2のタスクが暴走していても、WDデーモンがCPU#0またはCPU#1で動作しているとWDTはカウンタをクリアし、障害を検出できない。   In the case of an OS having a load balance function, when a large number of tasks are biased on a certain CPU, the tasks may be forcibly moved to another CPU to perform load distribution. In this case, there is a high possibility that the WD daemon is assigned to a CPU other than the CPU in which the runaway failure has occurred. In this case, as in the above example, there is a problem that the failure of the entire system cannot be detected. . FIG. 23 is a diagram illustrating a case where WDT in the related art cannot detect a failure. Thus, even if the task of CPU # 2 runs away, if the WD daemon is operating on CPU # 0 or CPU # 1, WDT clears the counter and cannot detect a failure.

また、CPUと同じ数のWDTを実装すれば、全てのCPUに渡って発生する障害を監視することが可能であるが、コスト的に負担が大きい上に、専用ハードを搭載することになり汎用性が損なわれる。近年では汎用CPUを搭載したボード上で汎用OSを動かし同一ハードウェアで多様なサービスに対応するサーバシステムの導入がキャリア等を中心に広がっている。そうしたシステムに障害監視や障害情報収集のために独自に専用ハードウェアを搭載すると、汎用性を損なうことになるため、導入は難しい。   Also, if the same number of WDTs as the CPUs are installed, it is possible to monitor failures that occur across all CPUs. However, the cost is high and dedicated hardware is installed. Sexuality is impaired. In recent years, the introduction of a server system that runs a general-purpose OS on a board equipped with a general-purpose CPU and supports various services with the same hardware has spread mainly in carriers and the like. If such systems are equipped with dedicated hardware for fault monitoring and fault information collection, the versatility will be impaired, making it difficult to introduce.

この発明は、上述した従来技術による問題点を解消するためになされたものであり、専用ハードウェアを搭載することなく、システムの全てのCPUで発生した障害を検出することができることができるマルチプロセッサシステム、障害検出方法および障害検出プログラムを提供することを目的とする。   The present invention has been made to solve the above-described problems caused by the prior art, and is a multiprocessor capable of detecting a failure occurring in all CPUs of the system without installing dedicated hardware. It is an object to provide a system, a failure detection method, and a failure detection program.

上述した課題を解決し、目的を達成するため、本発明は、複数のプロセッサを備え、ウォッチドッグデーモンがウォッチドッグタイマを用いて障害の検出を行い、障害を検出した場合に障害発生の通知を行うマルチプロセッサシステムであって、待機中のタスクが実行権を獲得した際に動作するプロセッサの識別子が対応するタスクごとに格納されているプロセッサ情報と、ウォッチドッグデーモンが動作するプロセッサを順次移動させて巡回させるためのルールであるプロセッサ移動ルールと、を格納するための記憶手段と、ウォッチドッグデーモンのタスクに対応する前記プロセッサ情報を前記プロセッサ移動ルールに基づいて更新し、更新後のプロセッサ情報を前記記憶手段に書き込むウォッチドッグ管理手段と、を備えることを特徴とする。   In order to solve the above-described problems and achieve the object, the present invention includes a plurality of processors, and the watchdog daemon detects a failure using a watchdog timer and notifies the occurrence of the failure when the failure is detected. In this multiprocessor system, the processor information stored for each task corresponding to the identifier of the processor that operates when the waiting task acquires the execution right and the processor on which the watchdog daemon operates are moved sequentially. A processor movement rule, which is a rule for making a circulation, and updating the processor information corresponding to the task of the watchdog daemon based on the processor movement rule, and updating the updated processor information. And a watchdog management means for writing to the storage means. To.

また、本発明は、前記記憶手段に、ウォッチドッグデーモンが動作したプロセッサの識別子とウォッチドッグデーモンがウォッチドッグタイマをクリアした時刻とを対応付けてウォッチドッグ起動履歴として格納するウォッチドッグ履歴記録手段と、前記ウォッチドッグ起動履歴に基づいて、所定の時間を超えてウォッチドッグデーモンが動作していないプロセッサがあると判断した場合には、そのプロセッサに障害が発生したことを示す障害発生を通知するウォッチドッグ起動監視手段と、をさらに備えることを特徴とする。   Further, the present invention relates to a watchdog history recording means for associating the identifier of the processor in which the watchdog daemon is operated and the time when the watchdog daemon clears the watchdog timer in the storage means in association with each other. When it is determined that there is a processor for which the watchdog daemon has not been operated for a predetermined time based on the watchdog activation history, a watch for notifying the occurrence of a failure indicating that the processor has failed And a dog activation monitoring means.

また、本発明は、前記プロセッサ移動ルールに対するユーザーからの変更要求を受け付けるウォッチドッグデーモン挙動指定手段、をさらに備え、前記ウォッチドッグ管理手段が、前記変更要求に基づいて前記プロセッサ移動ルールを書き換えることを特徴とする。   The present invention further comprises watchdog daemon behavior specifying means for accepting a change request from a user for the processor movement rule, wherein the watchdog management means rewrites the processor movement rule based on the change request. Features.

また、本発明は、障害発生の通知が行われた場合、実行命令を含むレジスタ情報、タスク情報、スタック情報を含むプログラム走行情報を、所定の期間収集し、収集したプログラム走行情報を前記記憶手段へ書き込むプログラム走行履歴記録手段、をさらに備えることを特徴とする   Further, the present invention collects program running information including register information including task instructions, task information, and stack information for a predetermined period when a failure occurrence is notified, and the collected program running information is stored in the storage means. It further comprises program running history recording means for writing to

また、本発明は、前記プログラム走行履歴の出力先の装置を変更可能とすることを特徴とする。   Further, the present invention is characterized in that the output destination device of the program travel history can be changed.

本発明によれば、WDデーモンの動作プロセッサを所定のプロセッサ移動ルールに従って移動させるようにしたので、WDデーモンが満遍なく全プロセッサ上で動作することができ、専用ハードウェアを搭載することなく、マルチプロセッサシステム内のどのプロセッサで障害が発生した場合でも、WDタイムアウトによる障害の検出を行うことができるという効果を奏する。   According to the present invention, the operation processor of the WD daemon is moved according to a predetermined processor movement rule, so that the WD daemon can operate on all the processors evenly, and the multiprocessor is installed without installing dedicated hardware. Even if a failure occurs in any processor in the system, it is possible to detect a failure due to a WD timeout.

また、本発明によれば、WDTクリアを行ったプロセッサ番号とその時刻をWD起動履歴として格納し、WD起動履歴に基づいて所定の基準時間の間WDTクリアが行われていないプロセッサがある場合に、そのプロセッサ上で障害が発生したと判断して障害通知を出すようにしたので、OSがロードバランス機能を有する場合でも、長時間WDデーモンが動作していないプロセッサを検出することにより、全てのプロセッサについて障害検出を行うことができるという効果を奏する。   Further, according to the present invention, the processor number and time at which WDT is cleared is stored as a WD activation history, and there is a processor that has not been cleared for a predetermined reference time based on the WD activation history. Since it is determined that a failure has occurred on the processor and a failure notification is issued, even if the OS has a load balancing function, all processors can be detected by detecting a processor that has not been operated for a long time. There is an effect that failure detection can be performed for the processor.

また、本発明によれば、プロセッサ移動ルールに対するユーザーの変更指示を受付け、変更指示に基づいて格納されたプロセッサ移動ルールを書き換えるようにしたので、プロセッサ移動ルールをいつでも任意に変更することができ、ユーザーの要求を容易に反映することができるという効果を奏する。   In addition, according to the present invention, since the change instruction of the processor for the processor movement rule is accepted and the stored processor movement rule is rewritten based on the change instruction, the processor movement rule can be arbitrarily changed at any time, There is an effect that the user's request can be easily reflected.

また、本発明によれば、障害発生通知があった場合に、プログラムの実行命令を含むレジスタ情報、タスク情報、スタック情報、時刻情報などをあらかじめ定められた任意の時間の間収集して格納するようにしたので、障害発生時のみの情報を格納する通常のダンプファイルとは異なり所定の時間の情報を確認することができ、無限ループが発生するような障害についても、格納されたプログラム走行履歴を解析することにより、容易に障害箇所を特定することができるという効果を奏する。   Further, according to the present invention, when there is a failure notification, register information including task execution instructions, task information, stack information, time information, and the like are collected and stored for a predetermined arbitrary time. As a result, unlike a normal dump file that stores information only when a failure occurs, it is possible to check information for a predetermined time, and even for failures that cause an infinite loop, stored program running history By analyzing the above, it is possible to easily identify the fault location.

また、本発明によれば、ダンプファイルの出力先を指定できるようにしたので、システムの利用状況に応じてより利便性の高いメディアへの出力が選択可能となり、また、ダンプファイルを出力する装置に障害があった場合でも出力先を変更することによりダンプファイルの記録が可能となるという効果を奏する。   In addition, according to the present invention, the output destination of the dump file can be specified, so that it is possible to select more convenient output to the medium according to the usage status of the system, and an apparatus for outputting the dump file Even if there is a failure, it is possible to record a dump file by changing the output destination.

以下に添付図面を参照して、この発明に係るマルチプロセッサシステム、障害検出方法および障害検出プログラムの好適な実施の形態を詳細に説明する。なお、本実施例の説明では、プロセッサとして、CPUを例に挙げて説明するが、プロセッサの形態は、MPU(Micro Processing Unit)等の他の形態であってもよい。また、ウォッチドッグデーモンおよびウォッチドッグタイマについても、所定のタイミングでシステムの動作状態を監視して障害の発生を検知する機能を有するものであればよい。   Exemplary embodiments of a multiprocessor system, a failure detection method, and a failure detection program according to the present invention will be described below in detail with reference to the accompanying drawings. In the description of the present embodiment, the CPU will be described as an example of the processor, but the processor may be in other forms such as an MPU (Micro Processing Unit). The watchdog daemon and the watchdog timer may also have a function of monitoring the system operating state at a predetermined timing and detecting the occurrence of a failure.

図1は、本発明にかかるマルチプロセッサシステムの実施例1の機能構成例を示す図である。本実施例のマルチプロセッサシステムは、複数のCPU(図示せず)で構成される制御部1と一次記憶装置2を備える。また、制御部1上では、OSが稼動する。図1に示すように、本実施例のマルチプロセッサシステムは、実行するタスクに使用するCPUの割り当てを行うスケジューラ10と、CPU実行権を獲得する度にWDTに対してカウンタのクリアを行うWDデーモン11と、WD管理部12と、WDデーモン11により障害が検出された場合にダンプファイルを生成するダンプファイル出力部13と、で構成される。また、出力先装置3は、磁気ディスク,メモリ,表示装置などで構成され、ダンプファイル出力部13が生成するダンプファイルの出力先となる装置である。   FIG. 1 is a diagram illustrating a functional configuration example of a first embodiment of the multiprocessor system according to the present invention. The multiprocessor system of the present embodiment includes a control unit 1 and a primary storage device 2 that are constituted by a plurality of CPUs (not shown). In addition, on the control unit 1, an OS is operated. As shown in FIG. 1, the multiprocessor system of this embodiment includes a scheduler 10 that assigns a CPU to be used for a task to be executed, and a WD daemon that clears a counter for the WDT each time a CPU execution right is acquired. 11, a WD management unit 12, and a dump file output unit 13 that generates a dump file when a failure is detected by the WD daemon 11. The output destination device 3 includes a magnetic disk, a memory, a display device, and the like, and is a device that is an output destination of the dump file generated by the dump file output unit 13.

なお、スケジューラ10,WDデーモン11,ダンプファイル出力部13は、ここでは、OSの一般的な機能の一部とするが、これに限らず、同様の機能を実現するOS以外の手段を用いるようにしてもよい。   Here, the scheduler 10, the WD daemon 11, and the dump file output unit 13 are a part of the general functions of the OS, but the present invention is not limited to this, and means other than the OS that realizes the same function is used. It may be.

一次記憶装置2には、各タスクがどのCPUが使用されるかの情報であるCPU情報を含むタスク情報と、WDデーモン11に割り当てるCPUの移動ルールが格納されているCPU移動ルールとが記憶される。   The primary storage device 2 stores task information including CPU information, which is information about which CPU is used for each task, and a CPU movement rule in which a CPU movement rule assigned to the WD daemon 11 is stored. The

つづいて、本実施例の動作について説明する。ここでは、本実施例のマルチプロセッサシステムが、計4個のCPU(CPU#0〜CPU#3)を備える場合を仮定して説明する。まず、前提条件として、図2に、これらのCPU上で動作するタスクの状態遷移を示す。「実行状態」とはスケジューラ10によりそのCPUの実行権を渡され、タスクが処理を実行している状態を指す。「待機状態」とはタスクの処理が終了し、他のタスクへCPU実行権を明け渡しスリープしている状態を指す。「実行待ち状態」とは、待機状態からタスクが起床されてCPU毎に用意された実行待ちキューへ入った状態を指す。WDデーモン11もタスクの一つであり、図2の状態遷移を行いつつ、「実行状態」となりCPU実行権を獲得する度にタスク処理としてWDTに対してカウンタのクリアを行う。   Next, the operation of this embodiment will be described. Here, description will be made assuming that the multiprocessor system of this embodiment includes a total of four CPUs (CPU # 0 to CPU # 3). First, as a precondition, FIG. 2 shows state transitions of tasks operating on these CPUs. The “execution state” refers to a state in which the execution right of the CPU is passed by the scheduler 10 and the task is executing a process. The “standby state” refers to a state in which the processing of a task is completed, the CPU execution right is given to another task, and the computer is sleeping. The “execution waiting state” refers to a state in which a task is woken up from the standby state and enters an execution waiting queue prepared for each CPU. The WD daemon 11 is one of the tasks, and clears the counter to the WDT as a task process every time the CPU executes the execution state while performing the state transition of FIG.

図3は、CPU毎に用意されたタスクの実行待ちキューを説明するための図である。実行待ちキューは、タスクごとのタスク情報として、データがリスト状に格納されている。起床されたタスクは実行待ちキューの最後尾(Tail)に入る(最後尾のタスク情報として格納される)。スケジューリング契機が来ると、スケジューラ10はキューの先頭(Head)に格納されているタスク情報に対応するタスクから優先して該当CPUの実行権を渡す。たとえば、図3では、先頭(Head)に格納されているタスク情報に対応するタスクから順に実行権が与えられる。そして、タスク情報の順に対応するタスクに実行権が与えられ、最後にTailのタスク情報に実行権が与えられる。CPU上で処理を終えたタスクは、待機状態に移行すると共にキューから外され、次の実行契機まで待機する。   FIG. 3 is a diagram for explaining a task execution waiting queue prepared for each CPU. In the waiting queue, data is stored in a list as task information for each task. The wake-up task enters the tail of the execution queue (stored as tail task information). When a scheduling opportunity comes, the scheduler 10 gives the execution right of the CPU in preference to the task corresponding to the task information stored at the head (Head) of the queue. For example, in FIG. 3, the execution right is given in order from the task corresponding to the task information stored at the head (Head). Then, the execution right is given to the tasks corresponding to the order of the task information, and finally the execution right is given to the task information of the tail. The task that has finished processing on the CPU shifts to a standby state, is removed from the queue, and waits until the next execution trigger.

以上を前提として、本実施例の処理手順を説明する。図4は、本実施例の処理手順の一例を示すフローチャートである。図5−1,5−2,5−3,5−4は、本実施例の動作を説明するためのそれぞれ第1,第2,第3,第4の概念図である。まず、CPU移動ルールがあらかじめ決められ、一次記憶装置2に格納されているとする。ここでは、例として「ラウンドロビン形式かつCPU番号の降順(CPU#3→CPU#2→CPU#1→CPU#0)へ移動」というルールが設定されたとする。   Based on the above, the processing procedure of the present embodiment will be described. FIG. 4 is a flowchart illustrating an example of a processing procedure according to the present exemplary embodiment. FIGS. 5-1, 5-2, 5-3, and 5-4 are first, second, third, and fourth conceptual diagrams for explaining the operation of the present embodiment, respectively. First, it is assumed that CPU movement rules are determined in advance and stored in the primary storage device 2. Here, as an example, it is assumed that a rule of “move to round robin format and descending order of CPU numbers (CPU # 3 → CPU # 2 → CPU # 1 → CPU # 0)” is set.

ある時点で、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)。   It is assumed that the task A executed on the CPU # 3 finishes the process at a certain point and the scheduler 10 assigns the execution right of the CPU # 3 to the WD daemon 11 (step S11). Specifically, as shown in the first conceptual diagram shown in FIG. 5A, after the task processing of the task A is completed, the task A is removed from the execution waiting queue of the CPU # 3 and enters the standby state. The execution right is given by the scheduler 10 to the task of the WD daemon 11 that is the head of the execution waiting queue # 3. Then, the WD daemon 11 requests clearing of the WDT counter (step S12).

WDTのカウンタのクリア要求の実行によりカウンタのクリアが終了すると、WDデーモンはWD管理部12に対しCPU#3上でWDTのクリア処理を行った旨を通知する(ステップS13)。通知を受けたWD管理部12は、一次記憶装置のCPU移動ルールを読み出し、CPU移動ルールに基づいて、次回のWDデーモン11のタスクを実行するCPUを決定する(ステップS14)。この場合には、CPU移動ルールが「ラウンドロビン形式かつCPU番号の降順」であることから、次回WDデーモン11が起動される時の実行CPUをCPU#2に決定する。   When the counter clearing is completed by executing the WDT counter clear request, the WD daemon notifies the WD management unit 12 that the WDT clear process has been performed on the CPU # 3 (step S13). Receiving the notification, the WD management unit 12 reads the CPU migration rule of the primary storage device, and determines the CPU to execute the task of the next WD daemon 11 based on the CPU migration rule (step S14). In this case, since the CPU movement rule is “round robin format and descending order of CPU numbers”, the CPU to be executed when the WD daemon 11 is started next time is determined to be 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の実行権を獲得し、タスク処理を開始する。   Next, the WD management unit 12 retrieves and reads out the task information of the WD daemon 11 from the task information group corresponding to each task, and refers to the CPU information area included in the read task information. At this time, since the task of the WD daemon 11 is executed by the CPU # 3, a numerical value (here, “3”) indicating the CPU # 3 is recorded in the referred CPU information area. The WD management unit 12 rewrites the CPU information area to a numerical value (“2”) indicating the CPU # 2 determined in step S14 (step S15). When the rewriting in step S15 is completed, the WD management unit 12 notifies the WD daemon 11 of the completion of the change of the CPU information (step S16), and the WD daemon 11 changes to a standby state. Then, as shown in the second conceptual diagram of FIG. 5B, the WD daemon 11 is removed from the execution waiting queue of the CPU # 3, and the next task B acquires the execution right of the CPU by the scheduler 10, and task processing To start.

一定時間経過後、待機していた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となる。   When the waiting WD daemon 11 is woken up after a certain period of time, the task of the WD daemon 11 enters the execution waiting queue again as described above. At this time, the task information in the task information of the WD daemon 11 is included. Since the CPU information of “# 2” has been rewritten to “2”, the WD daemon 11 automatically enters the execution waiting queue of CPU # 2 as shown in the third conceptual diagram of FIG. Stored as task information). As a result, as shown in the fourth conceptual diagram of FIG. 5-4, when the task of the WD daemon 11 moves to the head of the queue after the elapse of time, the execution right of the CPU # 2 is passed by the scheduler, and the above-mentioned As in step S12, the clearing of the WDT counter is requested. Thereafter, the processing after step S13 is performed, but the CPU determined in step S14 is CPU # 1 in accordance with the CPU movement rule.

このような動作を繰り返しながら、WDデーモン11が動作する(WDTのカウンタクリアを実施する)CPUは、CPU#3→CPU#2、CPU#2→CPU#1、CPU#1→CPU#0、CPU#0→CPU#3と、システムが正常に運用されている間はラウンドロビン形式に従って全CPU間を満遍なく巡るよう移動していく。   The CPU in which the WD daemon 11 operates (repeating the WDT counter) while repeating such operations is as follows: CPU # 3 → CPU # 2, CPU # 2 → CPU # 1, CPU # 1 → CPU # 0, During the normal operation of the system, such as CPU # 0 → CPU # 3, it moves so that it can travel evenly among all CPUs according to the round robin format.

つづいて、障害発生時の動作について説明する。図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に書き換えられている。   Next, the operation when a failure occurs will be described. FIG. 6 is a diagram for explaining the operation when a failure occurs in this embodiment. According to the above-described processing procedure of the present embodiment (hereinafter referred to as CPU movement processing), CPU # 3 at time T1, past CPU # 2 at time T2, CPU # 1 at time T3, and time T4 at time T2. It is assumed that the WDT counter is cleared by the WD daemon 11 on the CPU # 0. Assume that a failure due to an infinite loop or the like has occurred in task D being executed on CPU # 3 after time T4. Since the WD daemon 11 is activated by the CPU # 0 at time T4, the CPU information area of the task information is rewritten to 3 at the time of occurrence of the failure.

しかし、WDデーモン11のタスクがCPU#3の実行待ちキューの先頭にきても、タスクDがCPU#3の実行権を獲得したまま暴走し続けているため、CPUの実行権が回って来ないまま待ち続けざるを得ない。そして、時刻T4以降一定期間WDTのクリアが実施されないとWDTはWDタイムアウトを検出し、OSに対して割込み(割込みの要因はWDタイムアウト)を通知する。割込みが通知されると、OSはそれを障害発生のトリガとみなし、ダンプファイル出力部13が全CPU分のメモリ情報をダンプファイルへと出力する処理を行う。ここでは、CPU#3で障害が発生した例について説明したが、他のCPUで障害が発生した場合でも、上述のCPU移動処理によりいずれは障害が発生したCPUの実行待ちキューにWDデーモン11のタスクが入るため、障害発生を検出することができる。   However, even if the task of the WD daemon 11 comes to the head of the CPU # 3 waiting queue, the task D continues to run away while acquiring the execution right of the CPU # 3. I have to keep waiting. If the WDT is not cleared for a certain period after time T4, the WDT detects a WD timeout and notifies the OS of an interrupt (the cause of the interrupt is a WD timeout). When an interrupt is notified, the OS regards it as a failure occurrence trigger, and the dump file output unit 13 performs a process of outputting memory information for all CPUs to the dump file. Here, an example in which a failure has occurred in CPU # 3 has been described, but even if a failure has occurred in another CPU, any of the WD daemon 11 will be queued in the execution queue of the CPU that has failed due to the above-described CPU movement process. Since a task is entered, the occurrence of a failure can be detected.

なお、本実施例では、CPU移動ルールを、CPU番号の降順に従ってラウンドロビン方式に移動としたが、これに限らず、たとえば、CPU番号の昇順にする、ラウンドロビン方式ではなく他の方式により巡回方式にする、など全てのCPUを一定期間の間に一巡するようなルールであればどのようなルールとしてもよい。   In this embodiment, the CPU movement rule is moved to the round robin method according to the descending order of the CPU numbers. However, the present invention is not limited to this. Any rule may be used as long as it is a rule that makes a round of all CPUs during a certain period, such as a system.

以上のように、本実施例では、WDデーモンの動作CPUを所定のCPU移動ルールに従って移動させるようにした。このため、専用ハードウェアを搭載することなく、マルチプロセッサシステム内のどのCPUで障害が発生した場合でも、WDタイムアウトによる障害の検出を行うことができる。   As described above, in this embodiment, the operation CPU of the WD daemon is moved according to a predetermined CPU movement rule. For this reason, it is possible to detect a failure due to a WD timeout regardless of which CPU in the multiprocessor system has a failure without mounting dedicated hardware.

図7は、本発明にかかるマルチプロセッサシステムの実施例2の機能構成例を示す図である。図7に示すように、本実施例のマルチプロセッサシステムは、実施例1のマルチプロセッサシステムに、WD履歴記録部14とWD起動監視部15を追加しているが、それ以外は実施例1と同様である。実施例1と同様の機能を有する構成要素は、実施例1と同一の符号を付して説明を省略する。   FIG. 7 is a diagram illustrating an example of a functional configuration of the multiprocessor system according to the second embodiment of the present invention. As shown in FIG. 7, in the multiprocessor system of the present embodiment, a WD history recording unit 14 and a WD activation monitoring unit 15 are added to the multiprocessor system of the first embodiment. It is the same. Components having the same functions as those of the first embodiment are denoted by the same reference numerals as those of the first embodiment, and description thereof is omitted.

本実施例のOSは、CPUの実行待ちキュー内のタスク数に偏りが生じた場合に、実行待ちキュー内のタスク数が多いCPUから少ないCPUへ強制移動を行うロードバランス機能を備えていると仮定する。本実施例のCPU移動処理については実施例1と同様であり、以下、実施例1と異なる部分について説明する。   The OS of this embodiment has a load balance function that forcibly moves from a CPU with a large number of tasks in the execution queue to a CPU with a small number of tasks in the CPU. Assume. The CPU movement process of the present embodiment is the same as that of the first embodiment, and only the parts different from the first embodiment are described below.

通常運用時は実施例1と同様に、WDデーモン11はCPU移動ルールに従って、動作CPUを移動しながらWDTのカウンタのクリア処理を行う。ここでは、実施例1と同様に、CPU移動ルールを、CPU番号の降順に従ってラウンドロビン方式で移動しながらWDTのクリアを行うこととする。   During normal operation, as in the first embodiment, the WD daemon 11 clears the WDT counter while moving the operating CPU according to the CPU movement rule. Here, as in the first embodiment, the WDT is cleared while the CPU movement rule is moved in a round-robin manner according to the descending order of the CPU numbers.

図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の実行待ちキューに入る。   FIGS. 8A and 8B are first and second conceptual diagrams for explaining the operation when a failure occurs according to the present embodiment. First, as shown in FIG. 8A, according to the above-described CPU movement rule, the WD daemon is on CPU # 3 at the past time T1, on CPU # 2 at time T2, and on CPU # 1 at time T3. 11, the WDT counter is cleared. At this point (after time T3), it is assumed that a failure due to an infinite loop has occurred in task D being executed on CPU # 3. When the WD daemon 11 wakes up from the standby state, the CPU information area of the task information is changed to “0”, so the task of the WD daemon 11 enters the execution waiting queue of the 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の実行待ちキューへ移動させられたと仮定する。   For this reason, the WD daemon 11 should next clear the WDT counter on the CPU # 0. However, since the OS has a load balancing function in this embodiment, if the OS determines that there are too many tasks in the execution waiting queue of the CPU # 0, the OS is as shown in FIG. In addition, a part of the task in the execution waiting queue of CPU # 0 is forcibly moved to the execution waiting queue of another CPU. The WD daemon 11 is also subject to load balancing. Here, it is assumed that the task of the WD daemon 11 has been moved from the CPU # 0 to the execution waiting queue of the CPU # 2.

以上のロードバランス機能による処理により、次にWDデーモン11はCPU#2上でWDTのカウンタのクリアを実施し、以降は再びCPU番号の降順のCPU移動が続行される。このようなロードバランス機能による強制的な実行待ちキュー移動が、何度も繰り返されているような状況では、場合によってはWDデーモン11がCPU#3の実行待ちキューへ入ることができないことがある。この場合、WDタイムアウトが発生しないため、CPU#3上でタスクDが暴走していることを検出できないことになる。   With the above processing by the load balance function, the WD daemon 11 then clears the WDT counter on the CPU # 2, and thereafter, the CPU movement in the descending order of the CPU number is continued again. In such a situation where the forced execution waiting queue movement by the load balance function is repeated many times, the WD daemon 11 may not be able to enter the execution waiting queue of the CPU # 3 in some cases. . In this case, since the WD timeout does not occur, it cannot be detected that the task D is running out of control on the CPU # 3.

こうしたケースに対応するため、本実施例では、WDTのカウンタのクリア処理(以下、WDTクリアという)を行ったCPU番号をWD起動履歴として記憶し、所定の時間WDTクリアの行われていないCPUを検出できるようにしている。図9は、本実施例の処理手順の一例を示すフローチャートである。まず、WD管理部12がWDデーモン11のタスク情報のCPU情報エリアを書き換えた(実施例1のステップS16)後、WD管理部12がWD履歴記録部14にWDTクリアを行ったCPU番号(WDデーモン11が動作したCPU番号)を通知する(ステップS21)。   In order to cope with such a case, in this embodiment, the CPU number for which the WDT counter clear process (hereinafter referred to as WDT clear) is performed is stored as a WD activation history, and CPUs that have not been cleared for a predetermined time are stored. It can be detected. FIG. 9 is a flowchart illustrating an example of a processing procedure of the present embodiment. First, after the WD management unit 12 rewrites the CPU information area of the task information of the WD daemon 11 (step S16 in the first embodiment), the WD management unit 12 performs the CPU number (WD) for which the WD history recording unit 14 has performed WDT clear. The CPU number on which the daemon 11 operates is notified (step S21).

通知を受けたWD履歴記録部14は、現在時刻をシステム時計より取得した上で、一次記憶装置2内にWD起動履歴を書き込む(ステップS22)。図10はWD起動履歴として書き込むテーブル情報の一例を示す図である。このテーブル内には少なくとも現在時刻およびWDTをクリアしたCPU番号が含まれるものとする。   Receiving the notification, the WD history recording unit 14 obtains the current time from the system clock and writes the WD activation history in the primary storage device 2 (step S22). FIG. 10 is a diagram showing an example of table information written as a WD activation history. This table includes at least the current time and the CPU number that cleared WDT.

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)。   When the writing to the WD activation history is completed, the WD history recording unit 14 activates the WD activation monitoring unit 15 (step S23). The WD activation monitoring unit 15 refers back to the WD activation history for a certain past time, and the period during which the WD daemon 11 is not activated among the CPUs # 0 to # 3 is a predetermined reference time (for example, 120 seconds). It is determined whether there is a CPU exceeding () (step S24). If it is determined that there is a CPU for which the WD daemon 11 has not been activated for longer than the reference time (Yes in step S24), the WD activation monitoring unit 15 determines that a failure has occurred on the CPU, and notifies the occurrence of the failure. (Step S25). Upon receiving this notification, the dump file output unit 13 generates a dump file and outputs the dump file to the output destination device 3 in the same manner as when receiving the notification of the occurrence of the WD timeout (step 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は、障害発生の通知を出す。   FIG. 11 shows a third conceptual diagram for explaining the operation of this embodiment. As in FIG. 8A, in a situation where the task D is running out of control such as an infinite loop on the CPU # 3, the WD daemon 11 clears the WDT while moving the operating CPU. Since processing by the load balance function frequently occurs, it is assumed that the situation where the WD daemon 11 is activated only within the range of CPU # 0 to CPU # 2 continues for a while. In this example, the WD daemon 11 is not operating on the CPU # 3 from T3 when the WD daemon 11 is operated on the CPU # 1 to T11 when m seconds as the reference time has elapsed. FIG. 12 is a diagram illustrating an example of the WD activation history of the present embodiment. FIG. 12 is an example of the WD activation history at the time T11 in the example described in FIG. Thus, since it can be determined that the WD daemon has not been activated on the CPU # 3 once in m seconds from T3 to T11 (reference time: for example, 120 seconds) based on the WD activation history, Assuming that a failure has occurred on CPU # 3, WD activation monitoring unit 15 issues a failure notification.

このように、本実施例では、WD履歴記録部14がWDTクリアを行ったCPU番号とその時刻をWD起動履歴として一次記憶装置2に格納し、WD起動監視部15が、WD起動履歴に基づいて所定の基準時間の間WDTクリアが行われていないCPUがある場合に、そのCPU上で障害が発生したと判断して障害通知を出すようにした。このため、OSがロードバランス機能を有するシステムで、マルチプロセッサシステム内のどのCPUで障害が発生した場合でも、WDタイムアウトによる障害検出を行うことができる。   As described above, in this embodiment, the CPU number and the time at which the WD history recording unit 14 has performed WDT clearing are stored in the primary storage device 2 as the WD activation history, and the WD activation monitoring unit 15 is based on the WD activation history. When there is a CPU that has not been WDT cleared for a predetermined reference time, it is determined that a failure has occurred on that CPU and a failure notification is issued. For this reason, in a system in which the OS has a load balance function, even if any CPU in the multiprocessor system has a failure, failure detection by WD timeout can be performed.

図13は、本発明にかかるマルチプロセッサシステムの実施例3の機能構成例を示す図である。図13に示すように、本実施例のマルチプロセッサシステムは、実施例1のマルチプロセッサシステムのWD管理部12をWD管理部12aに替え、WD挙動指定部16を追加しているが、それ以外は実施例1と同様である。実施例1と同様の機能を有する構成要素は、実施例1と同一の符号を付して説明を省略する。   FIG. 13 is a diagram illustrating an example of a functional configuration of the multiprocessor system according to the third embodiment of the present invention. As shown in FIG. 13, the multiprocessor system of this embodiment replaces the WD management section 12 of the multiprocessor system of the first embodiment with the WD management section 12a and adds a WD behavior specifying section 16, but otherwise Is the same as in Example 1. Components having the same functions as those of the first embodiment are denoted by the same reference numerals as those of the first embodiment, and description thereof is omitted.

本実施例では、CPU移動ルールをユーザーが指定するためにWD挙動指定部16を追加し、WD管理部12aがユーザーの指定に基づいて一次記憶装置2のCPU移動ルールを書き換える。   In the present embodiment, the WD behavior specifying unit 16 is added in order for the user to specify the CPU movement rule, and the WD management unit 12a rewrites the CPU movement rule of the primary storage device 2 based on the user's specification.

図14は、本実施例の処理手順の一例を示すフローチャートである。また、図15は、本実施例のWDデーモン11が動作するCPUの流れを示す図である。まず、実施例1と同様にCPU移動ルールがあらかじめ定められ、一次記憶装置2に格納されているとする。ここでは、あらかじめ定められたCPU移動ルールとしてランダム巡回(ランダムな順番で全てのCPUの移動を繰り返す)が設定されていたとする。そして、実施例1で説明したCPU移動処理によって、そのCPU移動ルールに基づいた処理が行われているとする。その状態ではWDデーモン11は、たとえば、図15の期間(a)のようにランダム巡回を行っている。   FIG. 14 is a flowchart illustrating an example of a processing procedure according to this embodiment. FIG. 15 is a diagram illustrating the flow of the CPU on which the WD daemon 11 of this embodiment operates. First, similarly to the first embodiment, it is assumed that CPU movement rules are determined in advance and stored in the primary storage device 2. Here, it is assumed that random circulation (repeating movement of all CPUs in a random order) is set as a predetermined CPU movement rule. Then, it is assumed that the process based on the CPU movement rule is performed by the CPU movement process described in the first embodiment. In this state, the WD daemon 11 performs random patrol as shown in the period (a) of FIG.

このとき、ユーザーがCPU移動ルールを「ラウンドロビン形式かつCPU番号の降順へ移動」というルールに変更したいとする。この場合、WD挙動指定部16が、ユーザーの指示(この例では「ラウンドロビン形式かつCPU番号の降順へ移動」というルールへの変更指示)を受付け、指示内容をWD管理部12aに通知する(ステップS31)。ユーザーからの指示は、たとえば、図示しないキーボード,マウスなどの入力装置を経由して行われることとする。つぎに、通知をうけたWD管理部12aは、その指示内容に基づいて一次記憶装置2上のCPU移動ルールを書き換える(ステップS32)。   At this time, it is assumed that the user wants to change the CPU movement rule to a rule of “move to the round robin format and descending CPU number”. In this case, the WD behavior specifying unit 16 accepts a user instruction (in this example, an instruction to change to the rule of “round robin format and move to descending CPU number”) and notifies the WD management unit 12a of the instruction content ( Step S31). The instruction from the user is performed via an input device such as a keyboard and a mouse (not shown). Next, the WD management unit 12a that receives the notification rewrites the CPU migration rule on the primary storage device 2 based on the contents of the instruction (step S32).

この処理以降、WD管理部12aは、WDデーモン11に対するCPU割り当てをユーザーにより変更された「ラウンドロビン形式かつCPU番号の降順へ移動」というルールに基づいて行うことになる(図15の期間(b))。なお、CPU移動ルールのユーザーによる変更を受付けるタイミングに特に制約はない。   After this processing, the WD management unit 12a performs the CPU assignment for the WD daemon 11 based on the rule of “moving in a round robin format and descending CPU number” changed by the user (period (b) in FIG. )). There is no particular restriction on the timing of accepting the change of the CPU movement rule by the user.

なお、本実施例では、実施例1のマルチプロセッサシステムのWD管理部12をWD管理部12aに替え、WD挙動指定部16を追加しているが、実施例2のマルチプロセッサシステムのWD管理部12をWD管理部12aに替え、さらにWD挙動指定部16を追加して、上述のCPU移動ルールに対するユーザーの変更指示を反映する処理を行うようにしてもよい。   In the present embodiment, the WD management specifying section 16 of the multiprocessor system of the second embodiment is added by replacing the WD management section 12 of the multiprocessor system of the first embodiment with the WD management section 12a. 12 may be replaced with the WD management unit 12a, and a WD behavior specifying unit 16 may be added to perform a process of reflecting the user's change instruction for the above-described CPU movement rule.

このように、本実施例では、WD挙動指定部16が、CPU移動ルールに対するユーザーの変更指示を受付け、WD管理部12aが変更指示に基づいて一次記憶装置2に格納されたCPU移動ルールを書き換えるようにした。このため、CPU移動ルールをいつでも任意に変更することができる。   As described above, in this embodiment, the WD behavior specifying unit 16 receives a user change instruction for the CPU movement rule, and the WD management unit 12a rewrites the CPU movement rule stored in the primary storage device 2 based on the change instruction. I did it. For this reason, the CPU movement rule can be arbitrarily changed at any time.

図16は、本発明にかかるマルチプロセッサシステムの実施例4の機能構成例を示す図である。図16に示すように、本実施例のマルチプロセッサシステムは、実施例1のマルチプロセッサシステムに、プログラム走行履歴記録部17を追加し、一次記憶装置2にさらにプログラム走行履歴を格納するようにしているが、それ以外は実施例1と同様である。実施例1と同様の機能を有する構成要素は、実施例1と同一の符号を付して説明を省略する。   FIG. 16 is a diagram illustrating an example of a functional configuration of the multiprocessor system according to the fourth embodiment of the present invention. As shown in FIG. 16, in the multiprocessor system of this embodiment, a program running history recording unit 17 is added to the multiprocessor system of the first embodiment, and the program running history is further stored in the primary storage device 2. However, the rest is the same as in the first embodiment. Components having the same functions as those of the first embodiment are denoted by the same reference numerals as those of the first embodiment, and description thereof is omitted.

従来のWDタイムアウト検出により、出力されたダンプファイルからは、障害原因を調査する事が困難なケースが存在する。障害の原因がプログラム内で発生した不正メモリアクセスや論理矛盾の場合であれば、障害発生時に走行していたプログラムのアドレスが障害箇所そのものであるため、ダンプファイル内の情報から障害要因を特定する事は比較的容易である。これに対し、プログラム内で無限ループが発生しWDタイムアウトが検出された場合では、ダンプファイルから得られるCPUの実行アドレス情報は、ループしているアドレス範囲のうちWDタイムアウトが発生した瞬間に走行していたアドレスに過ぎない。そのため、プログラムのどの範囲内でループが発生していたのか、そして何が原因でループ発生に至ったのかという要因についてはダンプファイル内に残る情報からは特定する事ができず、障害の根本原因の究明が困難であるという課題があった。したがって、こうした障害の場合は、プログラムの走行情報を実行命令毎に記録する事が解析の有効な情報となり得る。しかし、通常運用中にもそうした走行情報を常時記録することは、システムに多大な負荷をかける事になり実用的では無い。   There are cases where it is difficult to investigate the cause of the failure from the dump file output by the conventional WD timeout detection. If the cause of the failure is an illegal memory access or logical contradiction that occurred in the program, the cause of the failure is identified from the information in the dump file because the address of the program that was running when the failure occurred is the failure location itself. Things are relatively easy. On the other hand, if an infinite loop occurs in the program and a WD timeout is detected, the CPU execution address information obtained from the dump file runs at the moment the WD timeout occurs in the looped address range. It was just the address I had. Therefore, it is impossible to identify the cause of the loop within the program and what caused the loop from the information remaining in the dump file. There was a problem that it was difficult to investigate. Therefore, in the case of such a failure, recording the running information of the program for each execution command can be effective information for analysis. However, it is not practical to always record such traveling information even during normal operation because it places a great load on the system.

上記の問題を解決するため、本実施例では、障害を検出した時点から一定時間プログラムの走行履歴を収集する機能を追加している。プログラムの走行履歴には、一般にダンプファイルとして出力される内容と同様な情報(たとえば、プログラムの実行命令を含むレジスタ情報、タスク情報、スタック情報、時刻情報など)と共に、システムから取得した各命令の実行時刻の情報も含まれる。   In order to solve the above problem, in this embodiment, a function of collecting a running history of a program for a certain period of time from the time when a failure is detected is added. The running history of a program generally includes information similar to the contents output as a dump file (for example, register information including program execution instructions, task information, stack information, time information, etc.) and information on each instruction acquired from the system. Execution time information is also included.

つづいて、本実施例の動作について説明する。図17は、本実施例の処理手順の一例を示すフローチャートである。また、図18は、本実施例の障害発生前後の処理概念を示す図である。まず、本実施例のマルチプロセッサシステムは、通常の状態では、実施例1と同様にCPU移動ルールに従ってCPU移動処理を行っている(図18の(a)通常動作期間)。   Next, the operation of this embodiment will be described. FIG. 17 is a flowchart illustrating an example of a processing procedure according to this embodiment. FIG. 18 is a diagram illustrating a processing concept before and after the occurrence of a failure according to the present embodiment. First, in the normal state, the multiprocessor system of the present embodiment performs the CPU movement process according to the CPU movement rule as in the first embodiment ((a) normal operation period in FIG. 18).

このとき、プログラム暴走等が発生し、実施例1の障害発生時の動作と同様に、WDTはWDタイムアウトを検出し障害発生を通知したとする(ステップS41)。障害発生通知をうけて、通常は、OSがダンプファイルに必要な情報を収集してダンプファイル出力部13がダンプファイルの生成を行う。つまり、障害発生通知が、障害情報収集のトリガとなっているため、以下では、障害発生通知を障害情報収集トリガとよぶこととする。   At this time, it is assumed that a program runaway or the like has occurred, and the WDT detects a WD timeout and notifies the occurrence of the failure in the same manner as the operation when the failure occurs in the first embodiment (step S41). Upon receipt of the failure occurrence notification, the OS normally collects information necessary for the dump file, and the dump file output unit 13 generates the dump file. That is, since the failure occurrence notification is a failure information collection trigger, hereinafter, the failure occurrence notification is referred to as a failure information collection trigger.

一般に、障害発生トリガをうけたOSは即座にその時点でのメモリの内容をダンプファイルとして出力するための情報として収集する処理を開始する。これに対し、本実施例では、まず、障害発生トリガが生じた場合に、OSはプログラム走行履歴記録部17に障害発生を通知し、通知を受けたプログラム走行履歴記録部17が各CPUで実行されているプログラムの実行命令を含むレジスタ情報、タスク情報、スタック情報(通常ダンプファイルに出力されるのと同様の項目)と命令の実行時刻情報を収集し、プログラム走行履歴として一次記憶装置2へ格納する(図17のステップS42,図18の(c)CPU毎の走行情報収集)。この収集および格納は、あらかじめ定められた任意の時間(図18の例では5秒間)続行する。   In general, the OS that has received the failure occurrence trigger immediately starts processing to collect the contents of the memory at that time as information for outputting as a dump file. On the other hand, in this embodiment, first, when a failure occurrence trigger occurs, the OS notifies the program running history recording unit 17 of the occurrence of the failure, and the received program running history recording unit 17 is executed by each CPU. Register information including task execution instructions, task information, stack information (items similar to those normally output to a dump file) and instruction execution time information are collected and stored in the primary storage device 2 as a program running history Store (step S42 in FIG. 17, (c) travel information collection for each CPU in FIG. 18). This collection and storage continues for a predetermined time (5 seconds in the example of FIG. 18).

そして、あらかじめ定められた任意の時間が経過すると、通常のダンプファイル出力処理が行われる(ステップS43)。本実施例のこれ以外の動作は、実施例1と同様である。   Then, when an arbitrary predetermined time has elapsed, normal dump file output processing is performed (step S43). Other operations in the present embodiment are the same as those in the first embodiment.

なお、本実施例では、実施例1のマルチプロセッサシステムにプログラム走行履歴記録部17を追加しているが、実施例2のマルチプロセッサシステムまたは実施例3のマルチプロセッサシステムにプログラム走行履歴記録部17を追加し、本実施例と同様に、障害収集トリガが生じた場合にプログラム走行履歴を収集して、一次記憶装置2に格納するようにしてもよい。   In this embodiment, the program running history recording unit 17 is added to the multiprocessor system of the first embodiment. However, the program running history recording unit 17 is added to the multiprocessor system of the second embodiment or the multiprocessor system of the third embodiment. As in the present embodiment, the program running history may be collected and stored in the primary storage device 2 when a failure collection trigger occurs.

このように、本実施例では、障害発生通知があった場合に、プログラム走行履歴記録部17がプログラムの実行命令を含むレジスタ情報、タスク情報、スタック情報、時刻情報などをあらかじめ定められた任意の時間の間収集して、プログラム走行履歴として一次記憶装置2に格納するようにした。このため、無限ループが発生するような障害についても、格納されたプログラム走行履歴を解析することにより、容易に障害箇所を特定することができる。   As described above, in this embodiment, when there is a failure occurrence notification, the program running history recording unit 17 stores register information including a program execution instruction, task information, stack information, time information, etc. It was collected during the time and stored in the primary storage device 2 as a program running history. For this reason, it is possible to easily identify the fault location by analyzing the stored program running history even for a fault that causes an infinite loop.

図19は、本発明にかかるマルチプロセッサシステムの実施例5の機能構成例を示す図である。図19に示すように、本実施例のマルチプロセッサシステムは、実施例4のマルチプロセッサシステムに、ダンプファイル出力先指定部18を追加しているが、それ以外は実施例4のマルチプロセッサシステムと同様である。実施例4と同様の機能を有する構成要素は、実施例4と同一の符号を付して説明を省略する。   FIG. 19 is a diagram illustrating a functional configuration example of the fifth embodiment of the multiprocessor system according to the present invention. As shown in FIG. 19, in the multiprocessor system of the present embodiment, a dump file output destination designating unit 18 is added to the multiprocessor system of the fourth embodiment. Otherwise, the multiprocessor system of the fourth embodiment is the same as the multiprocessor system of the fourth embodiment. It is the same. Components having functions similar to those of the fourth embodiment are denoted by the same reference numerals as those of the fourth embodiment, and description thereof is omitted.

また、本実施例では、出力先装置3は、磁気ディスクなどで構成されるディスク31と、パケットとして出力しネットワーク上へ転送するパケット処理装置32と、モニタなどで構成され表示を行う標準出力装置33と、半導体などで構成されるメモリ34と、を備えることする。   In the present embodiment, the output destination device 3 includes a disk 31 formed of a magnetic disk, a packet processing device 32 that outputs a packet and transfers it to the network, and a standard output device that includes a monitor and performs display. 33 and a memory 34 composed of a semiconductor or the like.

図20は、本実施例の処理手順の一例を示すフローチャートである。本実施例の動作は、実施例4の動作と同様であるが、本実施例では、実施例4で出力されるダンプファイルとプログラム走行情報の出力先を選択できるようにしている。まず、実施例4と同様に障害発生が通知されたとする(ステップS51)。その後、実施例4と同様にプログラム走行履歴記録部17が、実施例4のステップS42を実行し、その後、ダンプファイル出力部13へダンプファイルの出力指示する(ステップS52)。ダンプファイル出力部13は、プログラム走行情報とダンプ情報(ダンプファイルの情報として収集した情報)をダンプファイル出力先指定部18へ出力する(ステップS53)。そして、ダンプファイル出力先指定部18は、あらかじめユーザーにより設定されている出力先の指定に基づいて、プログラム走行情報とダンプファイルを出力する(ステップS54)。たとえば、出力装置3のうち、ディスク31,パケット処理装置32,標準出力装置33,メモリ34のいずれかへと出力させる。なお、ダンプファイル出力先指定部18は、あらかじめ設定された出力先を保持しており、ユーザーからの指定があった場合には、その設定内容を書き換えることとする。   FIG. 20 is a flowchart illustrating an example of a processing procedure according to this embodiment. The operation of the present embodiment is the same as the operation of the fourth embodiment, but in this embodiment, the dump file output in the fourth embodiment and the output destination of the program running information can be selected. First, it is assumed that the occurrence of a failure is notified as in the fourth embodiment (step S51). Thereafter, similarly to the fourth embodiment, the program running history recording unit 17 executes step S42 of the fourth embodiment, and then instructs the dump file output unit 13 to output a dump file (step S52). The dump file output unit 13 outputs the program running information and dump information (information collected as dump file information) to the dump file output destination designating unit 18 (step S53). Then, the dump file output destination designation unit 18 outputs the program running information and the dump file based on the designation of the output destination set in advance by the user (step S54). For example, the output device 3 outputs the data to any of the disk 31, the packet processing device 32, the standard output device 33, and the memory 34. Note that the dump file output destination designation unit 18 holds a preset output destination, and rewrites the setting contents when designated by the user.

なお、本実施例では、プログラム走行履歴情報と通常のダンプファイルの両方を出力先装置3へ出力するようにしたが、プログラム走行履歴情報のみを出力するようにしてもよい。   In the present embodiment, both the program travel history information and the normal dump file are output to the output destination device 3, but only the program travel history information may be output.

このように、本実施例では、ダンプファイルの出力先を指定できるようにした。このため、ユーザーの利用しやすい形態でダンプファイルを出力することができる。また、たとえば、ダンプファイルを出力する装置に障害があった場合、通常であればダンプファイルを記録することができなくなるが、本実施例では出力先を変更することによりダンプファイルの記録が可能となる。   As described above, in this embodiment, the output destination of the dump file can be specified. Therefore, the dump file can be output in a form that is easy for the user to use. Also, for example, if there is a failure in the device that outputs the dump file, the dump file cannot be recorded normally, but in this embodiment, the dump file can be recorded by changing the output destination. Become.

(付記1)複数のプロセッサを備え、ウォッチドッグデーモンがウォッチドッグタイマを用いて障害の検出を行い、障害を検出した場合に障害発生の通知を行うマルチプロセッサシステムであって、
待機中のタスクが実行権を獲得した際に動作するプロセッサの識別子が対応するタスクごとに格納されているプロセッサ情報と、ウォッチドッグデーモンが動作するプロセッサを順次移動させて巡回させるためのルールであるプロセッサ移動ルールと、を格納するための記憶手段と、
ウォッチドッグデーモンのタスクに対応する前記プロセッサ情報を前記プロセッサ移動ルールに基づいて更新し、更新後のプロセッサ情報を前記記憶手段に書き込むウォッチドッグ管理手段と、
を備えることを特徴とするマルチプロセッサシステム。
(Appendix 1) A multiprocessor system comprising a plurality of processors, wherein a watchdog daemon detects a failure using a watchdog timer, and notifies a failure when a failure is detected,
This is a rule for moving the processor where the identifier of the processor that operates when the waiting task acquires the execution right for each corresponding task and the processor on which the watchdog daemon operates to move around. Storage means for storing processor movement rules;
Watchdog management means for updating the processor information corresponding to the task of the watchdog daemon based on the processor movement rule, and writing the updated processor information in the storage means;
A multiprocessor system comprising:

(付記2)前記記憶手段に、ウォッチドッグデーモンが動作したプロセッサの識別子とウォッチドッグデーモンがウォッチドッグタイマをクリアした時刻とを対応付けてウォッチドッグ起動履歴として格納するウォッチドッグ履歴記録手段と、
前記ウォッチドッグ起動履歴に基づいて、所定の時間を超えてウォッチドッグデーモンが動作していないプロセッサがあると判断した場合には、そのプロセッサに障害が発生したことを示す障害発生を通知するウォッチドッグ起動監視手段と、
をさらに備えることを特徴とする付記1に記載のマルチプロセッサシステム。
(Appendix 2) Watchdog history recording means for storing in the storage means the identifier of the processor in which the watchdog daemon has been operated and the time when the watchdog daemon has cleared the watchdog timer in association with each other, and storing it as a watchdog activation history;
When it is determined that there is a processor for which the watchdog daemon has not been operated for a predetermined time based on the watchdog activation history, a watchdog for notifying the occurrence of a failure indicating that the processor has failed Startup monitoring means;
The multiprocessor system according to appendix 1, further comprising:

(付記3)前記プロセッサ移動ルールに対するユーザーからの変更要求を受け付けるウォッチドッグデーモン挙動指定手段、
をさらに備え、
前記ウォッチドッグ管理手段が、前記変更要求に基づいて前記プロセッサ移動ルールを書き換えることを特徴とする付記1または2に記載のマルチプロセッサシステム。
(Appendix 3) Watchdog daemon behavior designation means for accepting a change request from the user for the processor movement rule,
Further comprising
The multiprocessor system according to appendix 1 or 2, wherein the watchdog management unit rewrites the processor movement rule based on the change request.

(付記4)障害発生の通知が行われた場合、実行命令を含むレジスタ情報、タスク情報、スタック情報を含むプログラム走行情報を、所定の期間収集し、収集したプログラム走行情報を前記記憶手段へ書き込むプログラム走行履歴記録手段、
をさらに備えることを特徴とする付記1、2または3に記載のマルチプロセッサシステム。
(Supplementary Note 4) When a failure notification is made, register running information including execution instructions, task information, and program running information including stack information are collected for a predetermined period, and the collected program running information is written to the storage means Program running history recording means,
The multiprocessor system according to appendix 1, 2, or 3, further comprising:

(付記5)前記プログラム走行履歴の出力先の装置を変更可能とすることを特徴とする付記4に記載のマルチプロセッサシステム。 (Supplementary note 5) The multiprocessor system according to supplementary note 4, wherein the output destination device of the program running history can be changed.

(付記6)複数のプロセッサを備え、ウォッチドッグデーモンがウォッチドッグタイマを用いて障害の検出を行行い、障害を検出した場合に障害発生の通知を行うマルチプロセッサシステムにおける障害検出方法であって、
ウォッチドッグデーモンが動作するプロセッサを順次移動させて巡回させるためのルールであるプロセッサ移動ルールを格納するプロセッサ移動ルール格納ステップと、
待機中のタスクが実行権を獲得した際に動作するプロセッサの識別子が対応するタスクごとに格納されているプロセッサ情報のうち、ウォッチドッグデーモンのタスクに対応するプロセッサ情報を、前記プロセッサ移動ルールに基づいて更新するウォッチドッグ管理ステップと、
を含むことを特徴とする障害検出方法。
(Appendix 6) A failure detection method in a multiprocessor system comprising a plurality of processors, wherein a watchdog daemon detects a failure using a watchdog timer and notifies the occurrence of a failure when a failure is detected,
A processor movement rule storage step for storing a processor movement rule that is a rule for sequentially moving and circulating the processors on which the watchdog daemon operates;
Based on the processor movement rule, the processor information corresponding to the task of the watchdog daemon among the processor information stored for each task corresponding to the identifier of the processor that operates when the waiting task acquires the execution right Watchdog management steps to update,
A failure detection method comprising:

(付記7)ウォッチドッグデーモンが動作したプロセッサの識別子とウォッチドッグデーモンがウォッチドッグタイマをクリアした時刻とを対応付けてウォッチドッグ起動履歴として格納するウォッチドッグ履歴記録ステップと、
前記ウォッチドッグ起動履歴に基づいて、所定の時間を超えてウォッチドッグデーモンが動作していないプロセッサがあると判断した場合には、そのプロセッサに障害が発生したことを示す障害発生を通知するウォッチドッグ起動監視ステップと、
をさらに含むことを特徴とする付記6に記載の障害検出方法。
(Appendix 7) A watchdog history recording step for storing the identifier of the processor in which the watchdog daemon has been operated and the time when the watchdog daemon has cleared the watchdog timer in association with each other and storing it as a watchdog activation history;
When it is determined that there is a processor for which the watchdog daemon has not been operated for a predetermined time based on the watchdog activation history, a watchdog for notifying the occurrence of a failure indicating that the processor has failed A startup monitoring step;
The failure detection method according to appendix 6, further comprising:

(付記8)前記プロセッサ移動ルールに対するユーザーからの変更要求を受け付けるウォッチドッグデーモン挙動指定ステップと、
前記変更要求に基づいて前記プロセッサ移動ルールを書き換えるステップと、
をさらに含むことを特徴とする付記6または7に記載の障害検出方法。
(Appendix 8) Watchdog daemon behavior designation step for accepting a change request from a user for the processor movement rule;
Rewriting the processor migration rule based on the change request;
The failure detection method according to appendix 6 or 7, further comprising:

(付記9)ウォッチドッグデーモンによる障害の検出により障害発生の通知が行われた場合、または、前記ウォッチドッグ起動監視ステップによる障害発生の通知が行われた場合に、実行命令を含むレジスタ情報、タスク情報、スタック情報を含むプログラム走行情報を、所定の期間収集し、収集したプログラム走行情報を記録するプログラム走行履歴記録ステップ、
をさらに含むことを特徴とする付記6、7または8に記載の障害検出方法。
(Supplementary Note 9) When a failure occurrence is notified by detecting a failure by the watchdog daemon, or when a failure occurrence is notified by the watchdog activation monitoring step, register information including an execution instruction, a task Program running history recording step for collecting program running information including information and stack information for a predetermined period and recording the collected program running information;
The failure detection method according to appendix 6, 7 or 8, further comprising:

(付記10)前記プログラム走行履歴の出力先の装置を変更可能とすることを特徴とする付記9に記載の障害検出方法。 (Supplementary note 10) The failure detection method according to supplementary note 9, wherein the output destination device of the program running history can be changed.

(付記11)複数のプロセッサを備え、ウォッチドッグデーモンがウォッチドッグタイマを用いて障害の検出を行うマルチプロセッサシステムにおいて、障害を検出するための障害検出プログラムであって、
ウォッチドッグデーモンが動作するプロセッサを順次移動させて巡回させるためのルールであるプロセッサ移動ルールを記憶部に格納するプロセッサ移動ルール格納手順と、
記憶部からプロセッサ移動ルールを読み出し、さらに待機中のタスクが実行権を獲得した際に動作するプロセッサの識別子が対応するタスクごとに格納されているプロセッサ情報のうち、ウォッチドッグデーモンのタスクに対応するプロセッサ情報を記憶部から読み出し、読み出したプロセッサ情報を前記プロセッサ移動ルールに基づいて更新し、更新後のプロセッサ情報を記憶部に書き込むウォッチドッグ管理手順と、
をコンピュータに実行させることを特徴とする障害検出プログラム。
(Supplementary Note 11) A multi-processor system including a plurality of processors, wherein a watchdog daemon detects a fault using a watchdog timer, and a fault detection program for detecting a fault,
A processor movement rule storage procedure for storing a processor movement rule, which is a rule for sequentially moving and circulating the processor on which the watchdog daemon operates, in the storage unit;
The processor movement rule is read from the storage unit, and the identifier of the processor that operates when the waiting task acquires the execution right corresponds to the task of the watchdog daemon among the processor information stored for each corresponding task. A watchdog management procedure for reading processor information from the storage unit, updating the read processor information based on the processor movement rule, and writing the updated processor information to the storage unit;
A failure detection program for causing a computer to execute

(付記12)ウォッチドッグデーモンが動作したプロセッサの識別子とウォッチドッグデーモンがウォッチドッグタイマをクリアした時刻とを対応付けてウォッチドッグ起動履歴として記憶部に格納するウォッチドッグ履歴記録手順と、
記憶部からウォッチドッグ起動履歴を読み出し、読み出したウォッチドッグ起動履歴に基づいて、所定の時間を超えてウォッチドッグデーモンが動作していないプロセッサがあると判断した場合には、そのプロセッサに障害が発生したことを示す障害発生を通知するウォッチドッグ起動監視手順と、
をさらに含むことを特徴とする付記11に記載の障害検出プログラム。
(Appendix 12) A watchdog history recording procedure in which the identifier of the processor in which the watchdog daemon has been operated and the time when the watchdog daemon clears the watchdog timer are associated with each other and stored in the storage unit as a watchdog activation history;
When the watchdog activation history is read from the storage unit, and it is determined that there is a processor that has not operated the watchdog daemon for a predetermined time based on the read watchdog activation history, a failure has occurred in that processor Watchdog activation monitoring procedure to notify the occurrence of a failure indicating
The failure detection program according to appendix 11, further comprising:

(付記13)前記プロセッサ移動ルールに対するユーザーからの変更要求を受け付けるウォッチドッグデーモン挙動指定手順と、
前記変更要求に基づいて前記プロセッサ移動ルールを書き換える手順と、
をさらに含むことを特徴とする付記11または12に記載の障害検出プログラム。
(Supplementary note 13) Watchdog daemon behavior designation procedure for accepting a change request from the user to the processor movement rule;
Rewriting the processor movement rule based on the change request;
The failure detection program according to appendix 11 or 12, further comprising:

(付記14)ウォッチドッグデーモンによる障害の検出により障害発生の通知が行われた場合、または、前記ウォッチドッグ起動監視手順による障害発生の通知が行われた場合に、実行命令を含むレジスタ情報、タスク情報、スタック情報を含むプログラム走行情報を、所定の期間収集し、収集したプログラム走行情報を記憶部へ書き込むプログラム走行履歴記録手順、
をさらに含むことを特徴とする付記11、12または13に記載の障害検出プログラム。
(Supplementary Note 14) Register information including an execution instruction and task when a failure occurrence is notified by detecting a failure by the watchdog daemon or when a failure occurrence is notified by the watchdog activation monitoring procedure Program running history recording procedure for collecting information, program running information including stack information for a predetermined period, and writing the collected program running information to the storage unit,
The failure detection program according to appendix 11, 12 or 13, further comprising:

(付記15)前記プログラム走行履歴の出力先の装置を変更可能とすることを特徴とする付記14に記載の障害検出プログラム。 (Supplementary note 15) The failure detection program according to supplementary note 14, wherein an output destination device of the program running history can be changed.

以上のように、本発明に係るマルチプロセッサシステム、障害検出方法および障害検出プログラムは、複数のプロセッサを有し、WDTを利用した障害検出機能を持つコンピュータシステムに適している。   As described above, the multiprocessor system, the failure detection method, and the failure detection program according to the present invention are suitable for a computer system having a plurality of processors and having a failure detection function using WDT.

本発明にかかるマルチプロセッサシステムの実施例1の機能構成例を示す図である。It is a figure which shows the function structural example of Example 1 of the multiprocessor system concerning this invention. タスクの状態遷移を示す図である。It is a figure which shows the state transition of a task. タスクの実行待ちキューを説明するための図である。It is a figure for demonstrating the task waiting queue. 実施例1の処理手順の一例を示すフローチャートである。3 is a flowchart illustrating an example of a processing procedure according to the first exemplary embodiment. 実施例1の動作を説明するためのそれぞれ第1の概念図である。FIG. 3 is a first conceptual diagram for explaining the operation of the first embodiment. 実施例1の動作を説明するためのそれぞれ第2の概念図である。FIG. 6 is a second conceptual diagram for explaining the operation of the first embodiment. 実施例1の動作を説明するためのそれぞれ第3の概念図である。FIG. 6 is a third conceptual diagram for explaining the operation of the first embodiment. 実施例1の動作を説明するためのそれぞれ第4の概念図である。FIG. 9 is a fourth conceptual diagram for explaining the operation of the first embodiment. 実施例1の障害発生時の動作を説明するための図である。FIG. 6 is a diagram for explaining an operation when a failure occurs according to the first embodiment. 本発明にかかるマルチプロセッサシステムの実施例2の機能構成例を示す図である。It is a figure which shows the function structural example of Example 2 of the multiprocessor system concerning this invention. 実施例2の障害発生時の動作を説明するための第1の概念図である。FIG. 10 is a first conceptual diagram for explaining an operation when a failure occurs in the second embodiment. 実施例2の障害発生時の動作を説明するための第2の概念図である。FIG. 10 is a second conceptual diagram for explaining an operation when a failure occurs according to the second embodiment. 実施例2の処理手順の一例を示すフローチャートである。10 is a flowchart illustrating an example of a processing procedure according to the second embodiment. WD起動履歴として書き込むテーブル情報の一例を示す図である。It is a figure which shows an example of the table information written as a WD starting log | history. 実施例2の動作を説明するための第3の概念図である。FIG. 10 is a third conceptual diagram for explaining the operation of the second embodiment. 実施例2のWD起動履歴の一例を示す図である。It is a figure which shows an example of the WD starting log | history of Example 2. FIG. 本発明にかかるマルチプロセッサシステムの実施例3の機能構成例を示す図である。It is a figure which shows the function structural example of Example 3 of the multiprocessor system concerning this invention. 実施例3の処理手順の一例を示すフローチャートである。10 is a flowchart illustrating an example of a processing procedure according to the third embodiment. 実施例3のWDデーモンが動作するCPUの流れを示す図である。It is a figure which shows the flow of CPU which the WD daemon of Example 3 operate | moves. 本発明にかかるマルチプロセッサシステムの実施例4の機能構成例を示す図である。It is a figure which shows the function structural example of Example 4 of the multiprocessor system concerning this invention. 実施例4の処理手順の一例を示すフローチャートである。10 is a flowchart illustrating an example of a processing procedure according to a fourth embodiment. 実施例4の障害発生前後の処理概念を示す図である。It is a figure which shows the processing concept before and behind the failure generation of Example 4. 本発明にかかるマルチプロセッサシステムの実施例5の機能構成例を示す図である。It is a figure which shows the function structural example of Example 5 of the multiprocessor system concerning this invention. 実施例5の処理手順の一例を示すフローチャートである。10 is a flowchart illustrating an example of a processing procedure according to a fifth embodiment. 従来技術における通常運用時のWDTとWDデーモンの動きを示す図である。It is a figure which shows the motion of WDT and WD daemon at the time of normal operation in a prior art. 従来技術における障害発生時のWDTとWDデーモンの動きを示す図である。It is a figure which shows the motion of WDT and WD daemon at the time of the failure occurrence in a prior art. 従来技術におけるWDTが障害を検出できないケースを示す図である。It is a figure which shows the case where WDT in a prior art cannot detect a failure.

符号の説明Explanation of symbols

1 制御部
2 一次記憶装置
3 出力先装置
10 スケジューラ
11 WDデーモン
12,12a WD管理部
13 ダンプファイル出力部
14 WD履歴記録部
15 WD起動監視部
16 WD挙動指定部
17 プログラム走行履歴記録部
18 ダンプファイル出力先指定部
31 ディスク
32 パケット処理装置
33 標準出力装置
34 メモリ
1 Control Unit 2 Primary Storage Device 3 Output Destination Device 10 Scheduler 11 WD Daemon 12, 12a WD Management Unit 13 Dump File Output Unit 14 WD History Recording Unit 15 WD Activation Monitoring Unit 16 WD Behavior Designation Unit 17 Program Running History Recording Unit 18 Dump File output destination designation unit 31 Disk 32 Packet processing device 33 Standard output device 34 Memory

Claims (7)

複数のプロセッサを備え、ウォッチドッグデーモンがウォッチドッグタイマを用いて障害の検出を行い、障害を検出した場合に障害発生の通知を行うマルチプロセッサシステムであって、
待機中のタスクが実行権を獲得した際に動作するプロセッサの識別子が対応するタスクごとに格納されているプロセッサ情報と、ウォッチドッグデーモンが動作するプロセッサを順次移動させて巡回させるためのルールであるプロセッサ移動ルールと、を格納するための記憶手段と、
ウォッチドッグデーモンのタスクに対応する前記プロセッサ情報を前記プロセッサ移動ルールに基づいて更新し、更新後のプロセッサ情報を前記記憶手段に書き込むウォッチドッグ管理手段と、
を備えることを特徴とするマルチプロセッサシステム。
A multiprocessor system comprising a plurality of processors, wherein a watchdog daemon detects a failure using a watchdog timer, and notifies a failure when a failure is detected,
This is a rule for moving the processor where the identifier of the processor that operates when the waiting task acquires the execution right for each corresponding task and the processor on which the watchdog daemon operates to move around. Storage means for storing processor movement rules;
Watchdog management means for updating the processor information corresponding to the task of the watchdog daemon based on the processor movement rule, and writing the updated processor information in the storage means;
A multiprocessor system comprising:
前記記憶手段に、ウォッチドッグデーモンが動作したプロセッサの識別子とウォッチドッグデーモンがウォッチドッグタイマをクリアした時刻とを対応付けてウォッチドッグ起動履歴として格納するウォッチドッグ履歴記録手段と、
前記ウォッチドッグ起動履歴に基づいて、所定の時間を超えてウォッチドッグデーモンが動作していないプロセッサがあると判断した場合には、そのプロセッサに障害が発生したことを示す障害発生を通知するウォッチドッグ起動監視手段と、
をさらに備えることを特徴とする請求項1に記載のマルチプロセッサシステム。
Watchdog history recording means for associating the storage means with the identifier of the processor on which the watchdog daemon has been operated and the time when the watchdog daemon has cleared the watchdog timer, and storing it as a watchdog activation history;
When it is determined that there is a processor for which the watchdog daemon has not been operated for a predetermined time based on the watchdog activation history, a watchdog for notifying the occurrence of a failure indicating that the processor has failed Startup monitoring means;
The multiprocessor system according to claim 1, further comprising:
前記プロセッサ移動ルールに対するユーザーからの変更要求を受け付けるウォッチドッグデーモン挙動指定手段、
をさらに備え、
前記ウォッチドッグ管理手段が、前記変更要求に基づいて前記プロセッサ移動ルールを書き換えることを特徴とする請求項1または2に記載のマルチプロセッサシステム。
A watchdog daemon behavior specifying means for accepting a change request from a user to the processor movement rule;
Further comprising
The multiprocessor system according to claim 1, wherein the watchdog management unit rewrites the processor movement rule based on the change request.
障害発生の通知が行われた場合、実行命令を含むレジスタ情報、タスク情報、スタック情報を含むプログラム走行情報を、障害発生を検出してから所定の期間収集し、収集したプログラム走行情報を前記記憶手段へ書き込むプログラム走行履歴記録手段、
をさらに備えることを特徴とする請求項1、2または3に記載のマルチプロセッサシステム。
When a failure is notified, register running information including execution instructions, task information, and program running information including stack information are collected for a predetermined period after the occurrence of the failure, and the collected program running information is stored in the memory. Program running history recording means for writing to the means,
The multiprocessor system according to claim 1, further comprising:
前記プログラム走行履歴の出力先の装置を変更可能とすることを特徴とする請求項4に記載のマルチプロセッサシステム。   5. The multiprocessor system according to claim 4, wherein an output destination device of the program running history can be changed. 複数のプロセッサを備え、ウォッチドッグデーモンがウォッチドッグタイマを用いて障害の検出を行い、障害を検出した場合に障害発生の通知を行うマルチプロセッサシステムにおける障害検出方法であって、
ウォッチドッグデーモンが動作するプロセッサを順次移動させて巡回させるためのルールであるプロセッサ移動ルールを格納するプロセッサ移動ルール格納ステップと、
待機中のタスクが実行権を獲得した際に動作するプロセッサの識別子が対応するタスクごとに格納されているプロセッサ情報のうち、ウォッチドッグデーモンのタスクに対応するプロセッサ情報を、前記プロセッサ移動ルールに基づいて更新するウォッチドッグ管理ステップと、
を含むことを特徴とする障害検出方法。
A failure detection method in a multiprocessor system comprising a plurality of processors, wherein a watchdog daemon detects a failure using a watchdog timer, and notifies a failure when a failure is detected,
A processor movement rule storage step for storing a processor movement rule which is a rule for sequentially moving and circulating the processors on which the watchdog daemon operates;
Based on the processor movement rule, the processor information corresponding to the task of the watchdog daemon among the processor information stored for each task corresponding to the identifier of the processor that operates when the waiting task acquires the execution right Watchdog management steps to update,
A failure detection method comprising:
複数のプロセッサを備え、ウォッチドッグデーモンがウォッチドッグタイマを用いて障害の検出を行うマルチプロセッサシステムにおいて、障害を検出するための障害検出プログラムであって、
ウォッチドッグデーモンが動作するプロセッサを順次移動させて巡回させるためのルールであるプロセッサ移動ルールを記憶部に格納するプロセッサ移動ルール格納手順と、
記憶部からプロセッサ移動ルールを読み出し、さらに待機中のタスクが実行権を獲得した際に動作するプロセッサの識別子が対応するタスクごとに格納されているプロセッサ情報のうち、ウォッチドッグデーモンのタスクに対応するプロセッサ情報を記憶部から読み出し、読み出したプロセッサ情報を前記プロセッサ移動ルールに基づいて更新し、更新後のプロセッサ情報を記憶部に書き込むウォッチドッグ管理手順と、
をコンピュータに実行させることを特徴とする障害検出プログラム。
A failure detection program for detecting a failure in a multiprocessor system comprising a plurality of processors, wherein a watchdog daemon detects a failure using a watchdog timer,
A processor movement rule storage procedure for storing a processor movement rule, which is a rule for sequentially moving and circulating the processor on which the watchdog daemon operates, in the storage unit;
The processor movement rule is read from the storage unit, and the identifier of the processor that operates when the waiting task acquires the execution right corresponds to the task of the watchdog daemon among the processor information stored for each corresponding task. A watchdog management procedure for reading processor information from the storage unit, updating the read processor information based on the processor movement rule, and writing the updated processor information to the storage unit;
A failure detection program for causing a computer to execute
JP2008015330A 2008-01-25 2008-01-25 Multiprocessor system, failure detection method, and failure detection program Expired - Fee Related JP4992740B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008015330A JP4992740B2 (en) 2008-01-25 2008-01-25 Multiprocessor system, failure detection method, and failure detection program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008015330A JP4992740B2 (en) 2008-01-25 2008-01-25 Multiprocessor system, failure detection method, and failure detection program

Publications (2)

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

Family

ID=41031140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008015330A Expired - Fee Related JP4992740B2 (en) 2008-01-25 2008-01-25 Multiprocessor system, failure detection method, and failure detection program

Country Status (1)

Country Link
JP (1) JP4992740B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011076344A (en) * 2009-09-30 2011-04-14 Fujitsu Ltd Information processing apparatus, method of controlling information processing apparatus and control program
JP2014209276A (en) * 2013-04-16 2014-11-06 株式会社リコー Electronic apparatus, image processing device and signal transmission method
CN104572332A (en) * 2015-02-09 2015-04-29 华为技术有限公司 Method and device for processing system crash
DE102016008158A1 (en) 2015-07-13 2017-01-19 Canon Kabushiki Kaisha SYSTEM AND CONTROL METHOD
JP2020177358A (en) * 2019-04-16 2020-10-29 ローム株式会社 Monitoring device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391174B (en) * 2017-06-15 2020-12-04 广州视源电子科技股份有限公司 Control method and control device for online upgrading of system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0253169A (en) * 1988-08-17 1990-02-22 Hitachi Ltd Trouble detecting device for multi-microprocessor system
JPH07114518A (en) * 1993-10-15 1995-05-02 Fujitsu Ltd Task scheduling system of multiprocessor system
JPH11282780A (en) * 1998-03-26 1999-10-15 Omron Corp Fa network system
JPH11288406A (en) * 1998-04-02 1999-10-19 Toshiba Corp Multi-processor system with operation monitoring function
JP2000293407A (en) * 1999-04-09 2000-10-20 Nec Eng Ltd Monitoring controller, cpu monitoring method and program recording medium
JP2002351702A (en) * 2001-05-25 2002-12-06 Nec Soft Ltd Method and device for preparing terminal operation statistical data utilizing online

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0253169A (en) * 1988-08-17 1990-02-22 Hitachi Ltd Trouble detecting device for multi-microprocessor system
JPH07114518A (en) * 1993-10-15 1995-05-02 Fujitsu Ltd Task scheduling system of multiprocessor system
JPH11282780A (en) * 1998-03-26 1999-10-15 Omron Corp Fa network system
JPH11288406A (en) * 1998-04-02 1999-10-19 Toshiba Corp Multi-processor system with operation monitoring function
JP2000293407A (en) * 1999-04-09 2000-10-20 Nec Eng Ltd Monitoring controller, cpu monitoring method and program recording medium
JP2002351702A (en) * 2001-05-25 2002-12-06 Nec Soft Ltd Method and device for preparing terminal operation statistical data utilizing online

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011076344A (en) * 2009-09-30 2011-04-14 Fujitsu Ltd Information processing apparatus, method of controlling information processing apparatus and control program
US8732531B2 (en) 2009-09-30 2014-05-20 Fujitsu Limited Information processing apparatus, method of controlling information processing apparatus, and control program
JP2014209276A (en) * 2013-04-16 2014-11-06 株式会社リコー Electronic apparatus, image processing device and signal transmission method
CN104572332A (en) * 2015-02-09 2015-04-29 华为技术有限公司 Method and device for processing system crash
DE102016008158A1 (en) 2015-07-13 2017-01-19 Canon Kabushiki Kaisha SYSTEM AND CONTROL METHOD
JP2020177358A (en) * 2019-04-16 2020-10-29 ローム株式会社 Monitoring device
JP7304732B2 (en) 2019-04-16 2023-07-07 ローム株式会社 monitoring device

Also Published As

Publication number Publication date
JP4992740B2 (en) 2012-08-08

Similar Documents

Publication Publication Date Title
US9335998B2 (en) Multi-core processor system, monitoring control method, and computer product
JP4489802B2 (en) Multi-CPU computer and system restart method
US8935698B2 (en) Management of migrating threads within a computing environment to transform multiple threading mode processors to single thread mode processors
US8949671B2 (en) Fault detection, diagnosis, and prevention for complex computing systems
JP5259714B2 (en) Execution order determination apparatus, execution order determination program, execution order determination circuit, and information processing apparatus
JP4992740B2 (en) Multiprocessor system, failure detection method, and failure detection program
US20120180057A1 (en) Activity Recording System for a Concurrent Software Environment
JP2006277115A (en) Abnormality detection program and abnormality detection method
US20130227586A1 (en) Recording Activity of Software Threads in a Concurrent Software Environment
JP2011108201A (en) Information processing apparatus, method and program of diagnosis
WO2016013199A1 (en) Virtualization substrate management device, virtualization substrate management system, virtualization substrate management method, and recording medium for recording virtualization substrate management program
JP5623557B2 (en) Method, apparatus, and computer program in a multi-threaded computing environment for collecting diagnostic data
US20130332932A1 (en) Command control method
JP4761229B2 (en) Operation management apparatus, operation management method and program
WO2009123343A1 (en) Contention analysis device, contention analysis method, and program
US7797473B2 (en) System for executing system management interrupts and methods thereof
JP6677021B2 (en) Information processing apparatus, information processing method, and program
JP2011076344A (en) Information processing apparatus, method of controlling information processing apparatus and control program
JP2008204011A (en) Multi-thread system and thread operation failure detecting method
JPH11288406A (en) Multi-processor system with operation monitoring function
JP2009223841A (en) Instruction log acquisition program and virtual machine system
JP2010003153A (en) Information processor and program
JP2006172065A (en) Checkpoint collection method, system and program
JP2010033131A (en) Management device and program
JPH0764811A (en) Computer backup system

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