JP5335552B2 - 情報処理装置、その制御方法、及びコンピュータプログラム - Google Patents

情報処理装置、その制御方法、及びコンピュータプログラム Download PDF

Info

Publication number
JP5335552B2
JP5335552B2 JP2009118042A JP2009118042A JP5335552B2 JP 5335552 B2 JP5335552 B2 JP 5335552B2 JP 2009118042 A JP2009118042 A JP 2009118042A JP 2009118042 A JP2009118042 A JP 2009118042A JP 5335552 B2 JP5335552 B2 JP 5335552B2
Authority
JP
Japan
Prior art keywords
subsystem
task
counter
updated
software counter
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
JP2009118042A
Other languages
English (en)
Other versions
JP2010267091A5 (ja
JP2010267091A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2009118042A priority Critical patent/JP5335552B2/ja
Priority to US12/771,013 priority patent/US8156386B2/en
Publication of JP2010267091A publication Critical patent/JP2010267091A/ja
Publication of JP2010267091A5 publication Critical patent/JP2010267091A5/ja
Application granted granted Critical
Publication of JP5335552B2 publication Critical patent/JP5335552B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、情報処理装置、その制御方法、及びコンピュータプログラムに関する。
高機能でかつ高速な処理を求められる組み込み機器においては、そのすべての機能を同一のCPU上で駆動するとシステムが巨大化してしまうため、メンテナンス性やパフォーマンスへ影響が出ることがある。一方で、LSIの集積化が進み、ワンチップに複数のCPUを搭載することは容易になってきている。したがって、組み込み機器開発において、複数のCPUを備えたチップ上で複数のサブシステムを駆動し、それぞれのサブシステムがシステムで要求される処理を機能ごとに行うシステム開発手法が有用な手法となっている。このような複数のサブシステムを備えるシステムにおいては障害発生時にその障害検出が難しいといわれている。別々のCPUにて駆動するサブシステムは、一方のサブシステムが停止しても他方のサブシステムは動作を続けることが可能なため、一部のサブシステムがダウンしてもシステム全体の障害として発見できないことがあるためである。そこで、サブシステムの障害検出方法として、サブシステム間のコマンド応答の有無で障害の発生を検出する方式が広く取られている。
例えば、特許文献1に記載の技術では、一つサブシステムが別のサブシステムに対してコマンドを発行し、そのコマンドの返答がタイムアウトとなった場合にサブシステムが停止状態であると判断する。特許文献2に記載の技術では、共有メモリを用いてサブシステムの障害検知を行う。サブシステム間の共有メモリ上にカウンタを配置し、一つサブシステムがカウンタを更新することを別のサブシステムが監視し、このカウンタの更新がない場合にサブシステムが停止状態と判断する。
一般に、サブシステムで発生する障害には、CPUやメモリなどのデバイス不良によるデバイス障害と、サブシステム内部のソフトウェアのバグによるデッドロックなどのシステム動作停止とがある。デバイス障害が発生した場合には、ユーザに通知するなどの対応が必要であるのに対して、システム動作停止が発生した場合には、ソフトウェアのリカバリー処理によって復旧が可能である。そのため、サブシステムにおいてどのような障害が発生したかを、他のサブシステムにおいて検出できることが望ましい。
しかしながら、コマンドを使用して障害を検出する方法では、サブシステム内部でソフトウェアの一部がデッドロックを起こして停止していることを検出することができない。コマンド処理が割り込み処理とタスク処理との複合処理であり、コマンドの失敗がどのレイヤの失敗か判別ができない場合があるからである。また、タスクの一部がデッドロックなどで停止している場合でも、コマンド処理にかかわるタスクが優先的に実行され、コマンドが成功してしまう場合もある。また、既存のカウンタを用いた障害検出方法では、ひとつのカウンタを用いて、そのカウンタの更新を確認することでサブシステム全体の障害検出を行っている。この方法では、サブシステム内部でソフトウェアの一部がデッドロックを起こして停止していることを検出することができない場合がある。カウンタを更新するタスクがデッドロック発生タスクよりも高い優先度で実行されている場合に、デッドロックを起こしたタスクに依存せず正常にカウント処理を行うからである。
特開平5−181760号公報 特開昭55−138149号公報
そこで、本発明は、サブシステムで発生した障害を正確に検出する技術を提供することを目的とする。
上記課題に鑑みて、本発明に係る情報処理装置は、第1のサブシステム及び第2のサブシステムを備える情報処理装置であって、前記第1のサブシステムは、前記第1のサブシステムが実行する処理タスクよりも高い優先度で第1のソフトウェアカウンタを更新する第1の更新手段と、前記処理タスクよりも低い優先度で第2のソフトウェアカウンタを更新する第2の更新手段とを有し、前記第2のサブシステムは、前記第1のソフトウェアカウンタ及び前記第2のソフトウェアカウンタが更新されたか否かを確認する確認手段と、前記第1のソフトウェアカウンタ及び前記第2のソフトウェアカウンタの少なくともいずれかが更新されていない場合に、前記第1のサブシステムにおいて障害が発生したと判定する判定手段とを有することを特徴とする。
本発明により、サブシステムで発生した障害を正確に検出することができる。
実施形態に係る情報処理装置100の構成の一例を説明するブロック図。 実施形態における通信用サブシステム110の動作の一例を説明するフローチャート。 実施形態におけるアプリケーション用サブシステム120の動作の一例を説明するフローチャート。 第1の実施形態における正常時の情報処理装置100におけるシーケンス図の一例。 第1の実施形態におけるソフトウェア障害発生時の情報処理装置100のシーケンス図の一例。 第1の実施形態におけるハードウェア障害発生時の情報処理装置100のシーケンス図の一例。 第1の実施形態におけるエラー発生時の情報処理装置100のシーケンス図の一例。 第2の実施形態における処理正常終了時の情報処理装置100のシーケンス図の一例。 第2の実施形態における処理エラー終了時の情報処理装置100のシーケンス図の一例。
添付の図面を参照しつつ、本発明の実施形態について以下に説明する。
<第1の実施形態>
本発明は、一般に、複数のサブシステムと、これらのサブシステムで共用されるメモリとを含む情報処理装置に適用できる。本実施形態においては、そのような情報処理装置として、TCP/IP以下の処理を通信用サブシステム110で処理し、アプリケーション用サブシステム120の処理負担を軽減する情報処理装置100を扱う。
〔情報処理装置100の構成図〕
図1を用いて、本実施形態に係る情報処理装置100の構成について説明する。情報処理装置100は、通信用サブシステム110、アプリケーション用サブシステム120、共有メモリ130、ユーザ・インタフェース141、通信インタフェース142、サブシステム間通信回路143を備える。図1においては簡略化のために、第1のサブシステムである通信用サブシステム110と第2のサブシステムであるアプリケーション用サブシステム120とだけを記載しているが、サブシステムの個数は2個以上であってもかまわない。また、本実施形態では、通信用サブシステム110の障害をアプリケーション用サブシステム120で監視する形態について説明するが、障害の監視は他のサブシステム(不図示)で行われてもよいし、複数のサブシステムの障害が監視されてもよい。
通信用サブシステム110は、TCP/IPや通信ドライバなどの処理を行い、CPU111、占有メモリ112、実行部113を含む。通信用サブシステム110は、他のサブシステムから通信処理の要求があった場合に、通信インタフェース142を用いて通信機能を提供する。アプリケーション用サブシステム120は、SMBやメール・アプリケーションなどのネットワーク・アプリケーションを実行し、CPU121、占有メモリ122、確認部123、および監視部124を含む。アプリケーション用サブシステム120は、TCP/IP以下の通信処理を通信用サブシステム110にオフロードする。共有メモリ130は、通信用サブシステム110とアプリケーション用サブシステム120とで共用されるメモリであり、サブシステムで共有されるコンピュータプログラムやデータ、一時ファイルなどを記憶するRAMやROMを含む。共有メモリ130は、第1のカウンタであるカウンタH131、第2のカウンタであるカウンタL132、および第3のカウンタであるカウンタM133を含む。カウンタM133は処理タスク116によって用いられるが、本実施形態においては使用されない。
ユーザ・インタフェース141は、ユーザからの入力の取得やユーザへの結果の出力を行い、例えば、ディスプレイ、キーボード、ポインティングデバイスなどを含む。通信インタフェース142は、ネットワーク160を介して接続される他の装置150とのTCP/IPのパケット通信を行う。ネットワーク160は、有線LAN、無線LAN、インターネットなど、どのような形態であってもかまわない。サブシステム間通信回路143は、サブシステム間の通信機能を提供する。例えば、各サブシステムは、サブシステム間通信回路143を用いて双方向にイベント情報などを通知する。
通信用サブシステム110についてさらに詳細に説明する。CPU111は、通信用サブシステム110が占有して使用するCPUであり、通信用サブシステム110全体の制御を司る。占有メモリ112は、通信用サブシステム110が占有して使用するメモリであり、通信用サブシステム110のみが用いるコンピュータプログラムやデータなどを記憶するRAMやROMを含む。実行部113は、第1のカウンタ・タスクであるカウンタ・タスクH114、第2のカウンタ・タスクであるカウンタ・タスクL115、および所定の処理を実行する処理タスク116を実行する。カウンタ・タスクH114は、カウンタH131を更新する第1の更新処理を実行する。カウンタ・タスクL115は、カウンタL132を更新する第2の更新処理を実行する。カウンタの更新は、通常はカウント値を順次増加させるが、カウンタが更新されたことを認識できればどのようなものであってもかまわない。処理タスク116は、通信用サブシステム110で処理されるTCP/IPに関する処理、例えば通信インタフェース142に対する送信命令などを行う。処理タスク116は複数存在してもよい。
実行部113は、カウンタ・タスクH114とカウンタ・タスクL115とをそれぞれ定期的に起動する。例えば、実行部113は、システム・クロックが一定期間経過するごとにこれらのカウンタ・タスクを起動する。実行部113は、起動されたタスクを優先度に従って実行する。実行部113は、あるタスクを実行中に、実行中のタスクよりも優先度が高いタスクが起動された場合に、当該起動されたタスクに実行権を移して処理を実行する。この場合に、もともと実行中であったタスクは処理が中断される。一方、実行部113は、あるタスクの実行中に、実行中のタスクよりも優先度が低いタスクが起動された場合に、当該起動されたタスクには実行権を移さずに、実行中のタスクの処理を継続する。この場合に、起動されたタスクは実行中のタスクの処理が終了するまで待ち状態となる。実行中のタスクの終了後に起動されたタスクは実行される。カウンタ・タスクH114は、処理タスク116よりも高い優先度を有し、カウンタ・タスクL115は、処理タスク116よりも低い優先度を有する。例えば、カウンタ・タスクH114に通信用サブシステム110内のタスクの最高の優先度を設定し、カウンタ・タスクL115に通信用サブシステム110内のタスクの最低の優先度を設定する。
アプリケーション用サブシステム120についてさらに詳細に説明する。CPU121は、アプリケーション用サブシステム120が占有して使用するCPUであり、アプリケーション用サブシステム120全体の制御を司る。占有メモリ122は、アプリケーション用サブシステム120が占有して使用するメモリであり、アプリケーション用サブシステム120のみが用いるコンピュータプログラムやデータなどを記憶するRAMやROMを含む。確認部123は、共有メモリ130のカウンタが更新されているか否かを定期的に確認する。監視部124は、確認部123の確認結果に基づいて、通信用サブシステム110の障害を検知する。これについての詳細は後述する。
〔通信用サブシステム110の動作〕
図2のフローチャートを用いて通信用サブシステム110の動作について説明する。このフローチャートは、コンピュータで読み取り可能な記録媒体である占有メモリ112に記憶されたコンピュータプログラムをCPU111が実行することにより処理される。
S201で、実行部113は、処理タスク116の実行が指示されたか否かを判定する。実行が指示されていない場合(S201において「NO」)に、処理はS201を繰り返し、実行部113は処理タスク116の実行が指示されるのを待つ。実行が指示された場合(S201において「YES」)に、S202で、実行部113は指示された処理タスク116を起動して、実行を開始する。
S203で、実行部113は、カウンタ・タスクH114を起動するタイミングであるか否かを判定する。起動するタイミングである場合(S203において「YES」)に処理はS204に移行し、起動するタイミングでない場合(S203において「NO」)には処理はS205に移行する。S204で、実行部113は、カウンタ・タスクH114を起動する。カウンタ・タスクH114は処理タスク116よりも高い優先度を有するため、たとえ処理タスク116が実行中であったとしても、直ちに実行され、カウンタH131が更新される。
S205で、実行部113は、カウンタ・タスクL115を起動するタイミングであるか否かを判定する。起動するタイミングでない場合(S205において「NO」)に、処理はS203に戻る。起動するタイミングである場合(S205において「YES」)に、実行部113はカウンタ・タスクL115を起動し、処理はS206に移行する。
S206で、実行部113は、処理タスク116が実行中であるか否かを判定する。実行中である場合(S206において「YES」)は、処理タスク116よりも優先度が低いカウンタ・タスクL115は実行されずに待ち状態となる。そこで、処理はS203に戻り、カウンタ・タスクH114の更新タイミングであるか否かを判定する。実行中でない場合(S206において「NO」)は、カウンタ・タスクL115が実行され、カウンタL132が更新される。その後、処理はS201に戻り、新たな処理タスク116の実行が指示されるのを待つ。なお、S205において、すでに起動されているカウンタ・タスクL115が存在する場合には、新たなカウンタ・タスクL115を起動しなくてもよい。
以上のように、処理タスク116が実行中か否かに関わらず、通信用サブシステム110がタスクを実行可能な状態であれば、カウンタ・タスクH114によりカウンタH131が必ず更新される。一方、処理タスク116が実行中の場合には、カウンタ・タスクL115は実行されず、カウンタL132は更新されない。
〔アプリケーション用サブシステム120の動作〕
図3のフローチャートを用いてアプリケーション用サブシステム120の動作について説明する。このフローチャートは、コンピュータで読み取り可能な記録媒体である占有メモリ122に記憶されたコンピュータプログラムをCPU121が実行することにより処理される。簡略化のために通信用サブシステム110の監視に関連する動作のみを説明する。
S301で、確認部123は、カウンタL132を確認するタイミングであるか否かを判定する。確認するタイミングでない場合(S301において「NO」)に、処理はS301を繰り返す。確認するタイミングである場合(S301において「YES」)に、S302で、確認部123はカウンタL132が更新されているか否かを確認する。カウンタL132が更新されている場合(S302において「YES」)に、処理はS301に戻る。カウンタL132が更新されていない場合(S302において「NO」)に、S303で、確認部123はカウンタH131が更新されているか否かを確認する。カウンタH131が更新されている場合(S303において「YES」)に処理はS304に移行し、カウンタH131が更新されていない場合(S303において「NO」)に処理はS305に移行する。
S304で、監視部124は、通信用サブシステム110においてソフトウェア障害が発生していることを検出する。ここで、ソフトウェア障害とは、処理タスク116において発生し得るデッドロックや無限ループのような、サブシステムにおける実行権を不当に占有する状態をいう。ソフトウェア障害が発生している場合には、障害が修復されるまでの間は、障害の発生している処理タスク116よりも優先度が同じか低いタスクは一切実行されない。したがって、カウンタH131が更新されているがカウンタL132が更新されていない場合に、監視部124は通信用サブシステム110においてソフトウェア障害が発生していると判定する。
一方、S305で、監視部124は、通信用サブシステム110においてハードウェア障害が発生していることを検出する。ここで、ハードウェア障害とは、CPU障害やメモリ障害のようなデバイス障害により、サブシステムにおいてタスクを一切実行できない例外状態をいう。カウンタ・タスクH114は処理タスク116よりも高い優先度を有するため、たとえサブシステムにおいてソフトウェア障害が発生している場合であっても、カウンタ・タスクH114は必ず実行される。したがって、カウンタH131が更新されていない場合に、監視部124は通信用サブシステム110においてハードウェア障害が発生していると判定する。
なお、カウンタL132が更新されている場合にはカウンタH131も必ず更新されているため、確認部123はカウンタL132だけを定期的に確認すればよい。また、確認部123は、カウンタを複数回確認しても更新されていない場合に、カウンタが更新されていないと判定してもよい。
〔正常時の情報処理装置100のシーケンス〕
図4のシーケンス図を用いて正常時の情報処理装置100全体の動作について説明する。処理タスク116は、通信用サブシステム110が他の装置150への伝送処理を行う処理であるとする。処理タスク116の処理は、以下の実施例においても同様とする。
S401で、実行部113は処理タスク116を開始する。S402で、実行部113はカウンタ・タスクH114を起動する。カウンタ・タスクH114は処理タスク116よりも優先度が高いため、実行権がカウンタ・タスクH114に移り、処理タスク116の処理は中断され、S403でカウンタH131が更新される。S404で、実行部113は処理タスク116の処理を再開する。S405で、実行部113はカウンタ・タスクL115を起動するが、これよりも優先度の高い処理タスク116が実行中であるため、カウンタ・タスクL115はすぐには実行されずに待ち状態となる。処理タスク116は、通信インタフェース142に伝送処理命令を発行し、S406で通信インタフェースは伝送処理を行う。処理タスク116の処理が終了した後に、S407で、実行権がカウンタ・タスクL115に移り、実行部113はカウンタ・タスクL115を実行してカウンタL132を更新する。S408で、確認部123はカウンタL132が更新されているか否かを判定する。カウンタL132が更新されている場合には、当然ながらカウンタH131も更新されているため、確認部123はカウンタH131の更新を確認する必要はない。この場合には、監視部124は、通信用サブシステム110に障害が発生していないと判定する。
〔ソフトウェア障害発生時の情報処理装置100のシーケンス〕
図5のシーケンス図を用いてソフトウェア障害発生時の情報処理装置100全体の動作について説明する。S501で、実行部113は処理タスク116を開始する。S502で、処理タスク116でデッドロックが発生したとする。この場合、デッドロックが解消されるまでは、実行中の処理タスク116より同じか低い優先度を有する処理タスク116には実行権は移らないため、これらの処理が実行されることはない。S503で、実行部113はカウンタ・タスクH114を起動する。カウンタ・タスクH114は処理タスク116よりも優先度が高いため、デッドロックが発生している場合でも、実行権がカウンタ・タスクH114に移り、処理タスク116の処理は中断され、S504でカウンタH131が更新される。S505で、実行部113は処理タスク116の処理を再開する。S506で、実行部113はカウンタ・タスクL115を起動するが、これよりも優先度の高い処理タスク116が実行中であるため、カウンタ・タスクL115はすぐには実行されずに待ち状態となる。カウンタ・タスクL115はデッドロックが解消されるまでは実行されない。
S507で、確認部123はカウンタL132が更新されているか否かを判定する。カウンタL132が更新されていないため、S508で、確認部123はカウンタH131が更新されているか否かを確認する。カウンタH131は更新されているため、監視部124は、通信用サブシステム110においてソフトウェア障害が発生したと判定する。そこで、S509で、監視部124は通信用サブシステム110に対して、デッドロックのリカバリー処理を行う。デッドロックのリカバリー処理として、ソフトウェアの再起動を行う。デッドロックが解消された処理タスク116は処理を継続し、S510で通信インタフェース142は伝送処理を行う。処理タスク116の処理が終了した後に、S407で、実行権がカウンタ・タスクL115に移り、実行部113はカウンタ・タスクL115を実行してカウンタL132を更新する。
〔ハードウェア障害発生時の情報処理装置100のシーケンス〕
図6のシーケンス図を用いてハードウェア障害発生時の情報処理装置100全体の動作について説明する。
S601で、実行部113は処理タスク116を開始する。S602で、通信用サブシステム110のCPU111がCPU障害を発生したとする。したがって、CPU障害が解消されるまでの間は、通信用サブシステム110に含まれるタスクのすべてが実行されない。S603で、確認部123はカウンタL132が更新されているか否かを確認する。カウンタL132は更新されていないため、S604で、確認部123はカウンタH131が更新されているか否かを確認する。カウンタH131も更新されていないため、監視部124は通信用サブシステム110でハードウェア障害が発生したと判定する。そこで、S605で、監視部124は、ユーザ・インタフェース141に対して障害通知命令を発行する。そして、S606で、ユーザ・インタフェースは情報処理装置100のユーザに対して通信用サブシステム110においてハードウェア障害が発生したことを通知する。
〔エラー発生時の情報処理装置100のシーケンス〕
図7のシーケンス図を用いてエラー発生時の情報処理装置100の動作について説明する。図4を用いて上述したシーケンスと同様の処理は同一の参照符号を付して説明を省略する。S701で、通信インタフェース142において、エラーが発生したとする。そのため、S702で、通信インタフェース142は監視部124に対してイベント・エラー通知を行う。S703で、監視部124は、カウンタL132が更新されていることから通信用サブシステム110において障害は発生していないと判定し、通常のイベント・エラーに対するリカバリー処理を行う。
以上のように、本実施形態によれば、アプリケーション用サブシステム120は、通信用サブシステム110で発生した障害を正確に検出することが出来る。さらに、発生した障害の種類が、ソフトウェア障害であるのかハードウェア障害であるのかも合わせて検出することが可能となる。したがって、発生した障害の種類に応じた(適した)対応(リカバリー処理、ユーザ通知)を行うことができる。
<第2の実施形態>
本実施形態は、第1の実施形態で説明した情報処理装置100において、処理タスク116もカウンタを更新する場合について説明する。本実施形態における情報処理装置100の構成図は第1の実施形態で用いた図1と同様であるため、説明を省略する。ただし、本実施形態では、第1の実施形態で用いなかったカウンタM133を用いる。処理タスク116は、自己の処理が正常に終了した場合に、カウンタM133を更新する第3の更新処理を実行する。確認部123はさらに、カウンタM133が更新されているか否かを確認する。通信用サブシステム110およびアプリケーション用サブシステム120の動作は第1の実施形態と同様のため、フローチャートによる説明は省略し、異なる部分のみを以下にシーケンス図を用いて説明する。
〔処理正常終了時の情報処理装置100のシーケンス〕
図8のシーケンス図を用いて処理正常終了時の情報処理装置100の動作について説明する。図4を用いて上述したシーケンスと同様の処理は同一の参照符号を付して説明を省略する。S801で、処理が再開された処理タスク116は、処理が正常に終了した場合に、カウンタM133を更新する。S802で、確認部123は、カウンタM133が更新されているか否かを確認する。この場合はカウンタM133が更新されているため、監視部124は処理タスク116が正常に終了したと判定する。なお、確認部123は、カウンタM133が更新されているか否かを確認するために、処理タスク116が開始される前のカウンタM133のカウント値を確認しておく。
〔処理エラー終了時の情報処理装置100におけるシーケンス〕
図9のシーケンス図を用いて処理エラー終了時の情報処理装置100の動作について説明する。図4を用いて上述したシーケンスと同様の処理は同一の参照符号を付して説明を省略する。S901で、処理が再開された処理タスク116は、エラーにより処理が終了したとする。この場合、カウンタM133は更新されない。S902で、確認部123は、カウンタM133が更新されているか否かを確認する。この場合はカウンタM133が更新されていないため、監視部124は処理タスク116が正常に終了していないと判定する。さらに、カウンタL132は更新されているため、監視部124は、通信用サブシステム110において障害は発生していないと判定する。そこで、S903で、監視部124は、処理タスク116がエラーにより処理が終了したと判定して、エラー回復処理を実行する。
以上のように、本実施形態によれば、アプリケーション用サブシステム120は、通信用サブシステム110で発生したエラーを検出することが出来る。
さらに、アプリケーション用サブシステム120は、そのエラーがソフトウェア障害によって発生したものであるか否かを判定することが出来る。
<第3の実施形態>
本実施形態は、第1の実施形態で説明した情報処理装置100において、複数の処理タスク116がそれぞれのカウンタを更新する場合について説明する。本実施形態における情報処理装置100の構成図は第1の実施形態で用いた図1と同様であるため、説明を省略する。
本実施形態では、通信用サブシステム110は複数の処理タスク116を有し、これらの処理タスク116は種々の優先度を有する。さらに、共有メモリ130は、処理タスク116ごとに対応するカウンタを有する。つまり、共有メモリ130はタスク別カウンタを有する。処理タスク116は、処理が終了した場合に、関連付けられたタスク別カウンタを更新する。ここで、処理は正常に終了していても、エラーで終了していても、処理タスク116はタスク別カウンタを更新する。さらに、確認部123はさらに、タスク別カウンタが更新されているか否かを確認する。
確認部123が更新されていないタスク別カウンタを確認したとする。その場合に、監視部124は、更新されていないタスク別カウンタの優先度を確認する。監視部124は、更新されていないタスク別カウンタの優先度のうちで、最も優先度の高い処理タスク116でソフトウェア障害が発生していると判定する。なぜなら、ある優先度の処理タスク116でソフトウェア障害が発生した場合は、その優先度以下の処理タスク116には実行権が移らずに、それらのタスク別カウンタも更新されないからである。
以上のように、本実施形態によれば、アプリケーション用サブシステム120は、通信用サブシステムでソフトウェア障害が発生した場合に、どの優先度の処理タスク116でソフトウェア障害が発生したかを特定することが可能となる。

Claims (11)

  1. 第1のサブシステム及び第2のサブシステムを備える情報処理装置であって、
    前記第1のサブシステムは、
    前記第1のサブシステムが実行する処理タスクよりも高い優先度で第1のソフトウェアカウンタを更新する第1の更新手段と、
    記処理タスクよりも低い優先度で第2のソフトウェアカウンタを更新する第2の更新手段とを有し、
    前記第2のサブシステムは、
    前記第1のソフトウェアカウンタ及び前記第2のソフトウェアカウンタが更新されたか否かを確認する確認手段と、
    前記第1のソフトウェアカウンタ及び前記第2のソフトウェアカウンタの少なくともいずれかが更新されていない場合に、前記第1のサブシステムにおいて障害が発生したと判定する判定手段と
    を有することを特徴とする情報処理装置。
  2. 前記判定手段は、前記第1のソフトウェアカウンタが更新されたが前記第2のソフトウェアカウンタが更新されていない場合に、前記第1のサブシステムにおいてソフトウェア障害が発生したと判定することを特徴とする請求項1に記載の情報処理装置。
  3. 前記ソフトウェア障害は、前記第1のサブシステムで実行中の処理タスクで発生したデッドロックと無限ループとの少なくともいずれかを含むことを特徴とする請求項2に記載の情報処理装置。
  4. 前記判定手段は、前記第1のソフトウェアカウンタが更新されていない場合に、前記第1のサブシステムにおいてハードウェア障害が発生したと判定することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. 前記ハードウェア障害は、前記第1のサブシステムで発生したCPU障害とメモリ障害との少なくともいずれかを含むことを特徴とする請求項4に記載の情報処理装置。
  6. 前記判定手段は、前記第2のソフトウェアカウンタが更新された場合に、前記第1のサブシステムにおいてソフトウェア障害とハードウェア障害といずれも発生していないと判定することを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
  7. 前記第1のソフトウェアカウンタ及び前記第2のソフトウェアカウンタは、前記第1のサブシステム及び前記第2のサブシステムで共有されるメモリが有することを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
  8. 前記情報処理装置は、第3のソフトウェアカウンタをさらに有し、
    前記第1のサブシステムは、前記処理タスクが正常に終了した場合に前記第3のソフトウェアカウンタを更新する第3の更新手段を有し、
    前記確認手段は、前記第3のソフトウェアカウンタが更新されたか否かを確認し、
    前記判定手段は、前記第3のソフトウェアカウンタが更新されていないと判定された場合に、前記処理タスクが正常に終了しなかったと判定する
    ことを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
  9. 記処理タスクは、異なる優先度を有する複数の処理タスクを含み
    前記情報処理装置は、前記複数の処理タスクのそれぞれに対応するタスク別ソフトウェアカウンタをさらに有し、
    前記複数の処理タスクのそれぞれは、処理が終了した場合に前記対応するタスク別ソフトウェアカウンタを更新し、
    前記確認手段は、前記タスク別ソフトウェアカウンタが更新されたか否かを確認し、
    前記判定手段は、前記タスク別ソフトウェアカウンタが更新されていない場合に、更新されていない前記タスク別ソフトウェアカウンタに基づいて、ソフトウェア障害が発生した処理タスクの優先度を特定することを特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。
  10. 第1のサブシステム及び第2のサブシステムを備える情報処理装置の制御方法であって、
    前記第1のサブシステムは、
    理タスクを実行する工程と、
    記処理タスクよりも高い優先度で第1のソフトウェアカウンタを更新する第1の更新工程と、
    記処理タスクよりも低い優先度で第2のソフトウェアカウンタを更新する第2の更新工程とを実行し、
    前記第2のサブシステムは、
    前記第1のソフトウェアカウンタ及び前記第2のソフトウェアカウンタが更新されたか否かを判定する工程と、
    前記第1のソフトウェアカウンタ及び前記第2のソフトウェアカウンタの少なくともいずれかが更新されていない場合に、前記第1のサブシステムにおいて障害が発生したと判定する工程とを実行することを特徴とする制御方法。
  11. コンピュータを請求項1乃至9のいずれか1項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
JP2009118042A 2009-05-14 2009-05-14 情報処理装置、その制御方法、及びコンピュータプログラム Expired - Fee Related JP5335552B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009118042A JP5335552B2 (ja) 2009-05-14 2009-05-14 情報処理装置、その制御方法、及びコンピュータプログラム
US12/771,013 US8156386B2 (en) 2009-05-14 2010-04-30 Information processing apparatus, and method and computer program for controlling same, for detecting certain failures

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009118042A JP5335552B2 (ja) 2009-05-14 2009-05-14 情報処理装置、その制御方法、及びコンピュータプログラム

Publications (3)

Publication Number Publication Date
JP2010267091A JP2010267091A (ja) 2010-11-25
JP2010267091A5 JP2010267091A5 (ja) 2012-06-28
JP5335552B2 true JP5335552B2 (ja) 2013-11-06

Family

ID=43069480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009118042A Expired - Fee Related JP5335552B2 (ja) 2009-05-14 2009-05-14 情報処理装置、その制御方法、及びコンピュータプログラム

Country Status (2)

Country Link
US (1) US8156386B2 (ja)
JP (1) JP5335552B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120221884A1 (en) * 2011-02-28 2012-08-30 Carter Nicholas P Error management across hardware and software layers
JP5737055B2 (ja) * 2011-08-18 2015-06-17 三菱電機株式会社 プログラム監視システム
JP5906807B2 (ja) * 2012-02-28 2016-04-20 日本電気株式会社 演算処理装置及びストール監視方法
WO2016204070A1 (ja) * 2015-06-16 2016-12-22 オリンパス株式会社 Cpu監視装置
JP6536374B2 (ja) * 2015-11-17 2019-07-03 富士通株式会社 情報処理装置、情報処理方法及びプログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3996567A (en) * 1972-05-23 1976-12-07 Telefonaktiebolaget L M Ericsson Apparatus for indicating abnormal program execution in a process controlling computer operating in real time on different priority levels
JPS594054B2 (ja) * 1979-04-17 1984-01-27 株式会社日立製作所 マルチプロセツサ障害検出方式
JPS63163932A (ja) * 1986-12-26 1988-07-07 Fuji Electric Co Ltd 制御用計算機のシステム監視方式
JPH05181760A (ja) 1991-12-27 1993-07-23 Sharp Corp Cpuの暴走監視装置
JPH05324409A (ja) * 1992-05-27 1993-12-07 Meidensha Corp ソフトウェアの暴走監視方式
US5737515A (en) * 1996-06-27 1998-04-07 Sun Microsystems, Inc. Method and mechanism for guaranteeing timeliness of programs
JPH1063544A (ja) * 1996-08-20 1998-03-06 Toshiba Corp タイムアウト監視方式
JP3524700B2 (ja) * 1996-11-01 2004-05-10 シャープ株式会社 タスク監視方法
US6351824B1 (en) * 1998-01-05 2002-02-26 Sophisticated Circuits, Inc. Methods and apparatuses for controlling the operation of a digital processing system
JP2000122900A (ja) * 1998-10-20 2000-04-28 Fujitsu Ltd マイクロコントローラの暴走監視方法
US6665758B1 (en) * 1999-10-04 2003-12-16 Ncr Corporation Software sanity monitor
JP2001117796A (ja) * 1999-10-22 2001-04-27 Yamatake Building Systems Co Ltd コンピュータ装置及びプログラム記録媒体
US7194665B2 (en) * 2001-11-01 2007-03-20 Advanced Micro Devices, Inc. ASF state determination using chipset-resident watchdog timer
US7219268B2 (en) * 2003-05-09 2007-05-15 Hewlett-Packard Development Company, L.P. System and method for determining transaction time-out
US7383470B2 (en) * 2004-09-30 2008-06-03 Microsoft Corporation Method, system, and apparatus for identifying unresponsive portions of a computer program
US20080126650A1 (en) * 2006-09-21 2008-05-29 Swanson Robert C Methods and apparatus for parallel processing in system management mode
JP2009075769A (ja) * 2007-09-19 2009-04-09 Seiko Epson Corp プログラムの暴走検出システムおよびプログラムの暴走検出方法
US8099637B2 (en) * 2007-10-30 2012-01-17 Hewlett-Packard Development Company, L.P. Software fault detection using progress tracker

Also Published As

Publication number Publication date
US20100293414A1 (en) 2010-11-18
US8156386B2 (en) 2012-04-10
JP2010267091A (ja) 2010-11-25

Similar Documents

Publication Publication Date Title
CN108121630B (zh) 电子装置、重新启动方法及记录媒介
JP4468426B2 (ja) 高可用システム及び実行状態制御方法
JP5335552B2 (ja) 情報処理装置、その制御方法、及びコンピュータプログラム
JP2009217474A (ja) ジョブ管理プログラム、情報処理装置およびジョブ管理方法
US20110197193A1 (en) Device and method for controlling communication between bios and bmc
JP4851719B2 (ja) 周辺装置管理システム及び方法
JP5548647B2 (ja) 計算機システムでの部分障害処理方法
JP2006099331A5 (ja)
US10379931B2 (en) Computer system
JP5333735B2 (ja) 仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラム
JP2013182303A (ja) 仮想マシン管理システム、方法、およびプログラム
JP2007206955A (ja) 情報処理装置および方法、プログラム、並びに記録媒体
JP5704176B2 (ja) プロセッサ処理方法、およびプロセッサシステム
JP2018092571A (ja) 電子装置、再起動方法およびプログラム
JP2009151440A (ja) プログラムハング検出方法及びそれを適用したコンピュータ装置
JP2008040750A (ja) 遠隔監視制御装置及びシステム
JP3688217B2 (ja) マルチプロセッサ初期化/並行診断方法
JP5961507B2 (ja) 地震発生時の自動運用切り替えシステムおよび方法
JP4773715B2 (ja) チェックポイント取得方法
JP2008117268A (ja) 情報管理システム
JP6465719B2 (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP6112205B2 (ja) 情報処理システム、装置、方法及びプログラム
JP5446666B2 (ja) プロセス管理プログラム及びプロセス管理方法
EP4068096A1 (en) Data processing program, information processing system, and data processing method
JP5906807B2 (ja) 演算処理装置及びストール監視方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120510

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130626

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: 20130701

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130731

R151 Written notification of patent or utility model registration

Ref document number: 5335552

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees