(57)【要約】  ウォッチドッグタイマのクリアを行ったプログラムを記録する記録部と、ウォッチドッグタイマがタイムアウトした場合、記録部を参照し、複数のアプリケーションおよび複数のオペレーティングシステムの中から、実行するアプリケーションおよび実行するオペレーティングシステムを判定する判定部と、判定部が判定したオペレーティングシステムを実行する実行部と、実行するアプリケーションを実行するオペレーティングシステムに通知する通信部とを有することを特徴とする情報処理装置。
2016151626.tif 000002
【特許請求の範囲】
【請求項１】
ウォッチドッグタイマのクリアを行ったプログラムを記録する記録部と、
前記ウォッチドッグタイマがタイムアウトした場合、前記記録部を参照し、複数のアプリケーションおよび複数のオペレーティングシステムの中から、実行するアプリケーションおよび実行するオペレーティングシステムを判定する判定部と、
前記判定部が判定したオペレーティングシステムを実行する実行部と、
前記実行するアプリケーションを前記実行するオペレーティングシステムに通知する通信部と
を有することを特徴とする情報処理装置。
【請求項２】
前記判定部は、前記クリアを行ったプログラムがオペレーティングシステムであった場合、前回実行していたアプリケーションと同じアプリケーションを実行すると判定し、前記クリアを行ったプログラムがアプリケーションであった場合、前回実行していたオペレーティングシステムと同じオペレーティングシステムを実行すると判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記記録部は、前記ウォッチドッグタイマがタイムアウトした回数を記録し、
前記判定部は、前記回数が特定の回数を越えた場合に、実行するアプリケーションおよび実行するオペレーティングシステムの判定を行うことを特徴とする請求項１および２に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置における障害解析に関する。
【背景技術】
【０００２】
発電所システムや列車車両システムなどで用いられる情報処理装置では、ソフトウェアの不具合によるシステムのハングアップを監視するのにウォッチドックタイマ（以下、ＷＤＴ）を備えている。ＷＤＴは、決められた時間内（タイムアウトするまでの間）にタイマのクリア処理が実施されないと、システムがハングアップしていると判断し、システムのリセット処理を実施する機能である。
このＷＤＴを用いることにより、システムで不具合が発生し、システムが動作しなくなっても、ＷＤＴがシステムをリセットすることによって、システムを再び動作させることが可能である。
しかし、不具合が頻発するような場合では、ＷＤＴがシステムをリセットさせても、再び不具合が発生し、リセットが繰り返し発生してしまうだけで、状況が改善しないという課題があった。
これに対し、例えば、特許文献１では、２つのプログラムをＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に保持しておき、プログラムに障害が発生した際、もう一方のプログラムを起動し、復旧を試みる方法が提示されている。
また、特許文献２では、ＷＤＴのタイムアウト発生回数によって起動するブートローダをセレクタ回路によって障害発生時用のブートローダに切り替えることで、障害発生時の状況出力する方法が提示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３４８５４６号公報
【特許文献２】特開２０１２−１１３６１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１および２に記載の技術は、いずれもシステム上で障害が発生した際、動作するプログラム全体を障害発生時用のプログラムに切り替えて起動して障害解析を行うことにより、復旧する可能性を示している。
このため、障害解析の対象となるプログラムがオペレーティングシステムを有する大規模なものであった場合、不具合原因を追究するのに必要なログの量が膨大となり、不具合原因を特定するのに多くの時間を要してしまうという問題がある。
【課題を解決するための手段】
【０００５】
この本発明は、上記のような問題点を解決するためになされたもので、ウォッチドッグタイマのクリアを行ったプログラムを記録する記録部と、ウォッチドッグタイマがタイムアウトした場合、記録部を参照し、複数のアプリケーションおよび複数のオペレーティングシステムの中から、実行するアプリケーションおよび実行するオペレーティングシステムを判定する判定部と、判定部が判定したオペレーティングシステムを実行する実行部と、実行するアプリケーションを実行するオペレーティングシステムに通信する通信部とを有することを特徴とする情報処理装置を提供する。
【発明の効果】
【０００６】
本発明によれば、少ない時間で不具合原因の特定が可能となる。
【図面の簡単な説明】
【０００７】
【図１】実施の形態１における情報処理装置のハードウェア構成図である。
【図２】実施の形態１における記憶装置の構成を示すブロック図である。
【図３】実施の形態１におけるＷＤＴクリア処理のタイミングの例を示す図である。
【図４】実施の形態１におけるＷＤＴ発生装置の構成を示すブロック図である。
【図５】ＷＤＴ情報の構成を示すブロック図である。
【図６】実施の形態１における機能構成図である。
【図７】実施の形態１における情報処理装置の動作を示すフローチャートである。
【図８】ＷＤＴ発生時処理のフローチャートである。
【図９】起動対象検討処理のフローチャートである。
【図１０】ＷＤＴのクリアが行われた場合のＷＤＴ発生装置の処理を示すフローチャートである。
【図１１】ＷＤＴのタイムアウトが発生した場合のＷＤＴ発生装置の処理を示すフローチャートである。
【発明を実施するための形態】
【０００８】
実施の形態１．
図１はこの発明の情報処理装置１０のハードウェア構成図である。図１において、ＣＰＵ２（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）は情報処理装置１の全体の制御をつかさどる演算装置、ＲＡＭ３（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）はＣＰＵ２のワークエリアとして利用される主記憶装置、記憶装置４はオペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ：以下、ＯＳ）やＯＳ上で動作するアプリケーション（Ａｐｐｌｉｃａｔｉｏｎ：以下、ＡＰ）などのプログラムを格納するフラッシュメモリなどの不揮発性記憶装置、ＷＤＴ発生装置５はＡＰやＯＳによって一定時間クリア（ＷＤＴを予め設定された値に戻す処理）が行われない状況が継続し、タイムアウトが発生すると、システムを再起動するリセット装置である。
【０００９】
図２は、本実施の形態における記憶装置４の構成とその記憶内容を示すブロック図である。記憶装置４は、ブートローダ１０、第１のＯＳ  ２１、第２のＯＳ  ２２、第１のＡＰ領域３１、第２のＡＰ領域３２を備えている。
ブートローダ１０は、情報処理装置１へ電源投入後、制御部であるＣＰＵ２によって最初に呼び出されるプログラムである。ブートローダ１０は、ＣＰＵ２に呼び出されると、情報処理装置１のハードウェア初期化を行った後、ＯＳを起動する。
第１のＯＳ  ２１と第２のＯＳ  ２２は、アプリケーションを動作させる基本的なソフトウェアであり、第１のＡＰ領域３１と第２のＡＰ領域３２は、ファイルシステムなどのアプリケーションやコマンドなどのソフトウェア群である。
なお、第１のＯＳ  ２１と第２のＯＳ  ２２は、内部にＷＤＴのクリアを行う処理（ＯＳ内のＷＤＴクリア処理）が実装されているものとする。ＯＳ内のＷＤＴクリア処理は、例えば、ＷＤＴがタイムアウトする周期よりも短い周期で割り込みを発生するよう、ＯＳが使用しているタイマを設定しておき、割り込み処理ルーチンやタスク、スレッドの中でＷＤＴのクリアを行うようにしてもよい。
また、ＡＰ領域３１およびＡＰ領域３２にも、ＷＤＴのクリアを行うＷＤＴクリアＡＰが実装され、ＡＰ領域の中の一つのＡＰとして実行するものとする。ＷＤＴクリアＡＰは、ＯＳ内のＷＤＴクリア処理と同様、ＯＳが使用しているタイマを設定しておき、割り込み処理ルーチンやタスク、スレッドなどの中でＷＤＴのクリアを行うようにしてもよい。
なお、ＡＰ領域にＡＰが一つしか存在しない場合には、そのＡＰの内部にＷＤＴのクリアを行う処理が含まれているものとする。
ＯＳ内のＷＤＴクリア処理およびＷＤＴクリアＡＰは、上記の処理の他にも、自身を特定できる情報をＷＤＴ発生装置５に通知する。
また、ＷＤＴ発生装置にＷＤＴクリア処理を受け付ける装置が複数個ある場合には、そのどれによってクリアされたかを判断することでＷＤＴ発生装置が記録するようにしてもよい。ＷＤＴクリア処理のタイミングについて、図３を用いて説明する。
【００１０】
図３は、ＷＤＴクリア処理のタイミングの一例を示す図である。図３においてＷＤＴ発生装置５は、一定のタイムアウト間隔が経過し、ＷＤＴのタイムアウトが発生する。これに対し、第１のＯＳ  ２１または第２のＯＳ  ２２の内部のＷＤＴクリア処理がＷＤＴ発生装置のタイムアウト周期よりも短い周期で割込みを発生し、ＷＤＴ発生装置がタイムアウトするのを防いでいる。同様にＷＤＴクリアＡＰからもＷＤＴ発生装置のタイムアウト周期よりも短い周期でＷＤＴクリア処理が割込みを発生し、ＷＤＴ発生装置がタイムアウトするのを防いている。
なお、本実施の形態１では、第１のＯＳ  ２１と第１のＡＰ領域３１は、通常使用する状態のＯＳとＡＰ領域、第２のＯＳ  ２２と第２のＡＰ領域３２は、不具合原因の解析を行うためのログを出力したり、動作状況をモニタリングしたりすることが可能なデバッグ用ＯＳとデバッグ用ＡＰ領域とする。
また、第１のＡＰ領域３１および第２のＡＰ領域３２は、第１のＯＳ  ２１および第２のＯＳ  ２２のどちらからも呼び出しが可能なものとする。
本実施の形態では、ＯＳが２つ、ＡＰ領域が２つの場合を例としたが、１つであってもよいし、３つ以上であってもよい。また、ＯＳの数とＡＰ領域の数が違っていてもよい。
なお、本実施の形態では、デバッグ用のＯＳおよびＡＰ領域を用意したが、デバッグ用のＯＳ及びＡＰ領域を用意しなくてもよい。
【００１１】
図４は、本実施の形態におけるＷＤＴ発生装置の機能構成図である。ＷＤＴ発生装置５は、ＷＤＴ内のタイマがタイムアウトしたことにより、ＣＰＵ２を再起動する機能（図示せず）に加え、ＷＤＴのタイムアウト発生時の状況を収集する収集部５１と、収集部５１が収集したＷＤＴのタイムアウト発生時の状況を格納する格納領域５２を備えている。なお、本実施の形態１では、格納領域５２をＷＤＴ発生装置５の中の一部としたが、記憶装置４の中の一部としてもよい。
記録部５１は、ＷＤＴのタイムアウトが発生した時にＷＤＴ発生状況情報５２０を格納領域５２に記録する。
なお、この格納領域には、どのプログラムがＷＤＴのクリアを行ったのか、つまり、ＯＳ内のＷＤＴクリア処理が行ったのか、ＷＤＴクリアＡＰが行ったのか、の情報を記録しても良い。
【００１２】
図５にＷＤＴ発生状況情報５２０の詳細を示す。図５において、ＷＤＴ発生状況情報５２０は、ＷＤＴのタイムアウト発生状況を示す更新フラグ５２１、複数あるＯＳおよび複数あるＡＰ領域のうち、どのＯＳおよびどのＡＰ領域を選択したのかを示す履歴情報５２２、情報処理装置１に電源を投入してから発生したＷＤＴのタイムアウト発生回数５２３、最後にＷＤＴのクリアを実施したプログラムを示すクリア情報５２４を備えている。
【００１３】
更新フラグ５２１は、ＷＤＴのタイムアウト発生状況を示すものであり、情報処理装置１に電源が入れられた直後は、発生していない状態を示している。ＷＤＴ発生装置５でＷＤＴのタイムアウトが発生すると、記録部５１が呼び出され、更新フラグ５２１にはＷＤＴのタイムアウトが発生した状態が書き込まれる。更新フラグ５２１に書き込まれる値は、例えば、ＷＤＴのタイムアウトが発生した状態の場合１、発生していない場合０を書き込む。
【００１４】
履歴情報５２２は、複数あるＯＳおよび複数あるＡＰ領域のうち、どのＯＳおよびどのＡＰ領域を選択したのかを示す履歴情報であり、ブートローダ１０によって書き込まれる。これにより、起動を行った複数あるＯＳおよび複数あるＡＰ領域の組合せを記録することができ、ブートローダ１０はどの組み合わせを既に試したのかを確認することができる。例えば、情報処理装置１で用いられる全てのＯＳ及び全てのＡＰ領域に対し、一意に特定できる番号を予め割り振っておき、それぞれの番号に対し、使用した際の時刻や順番を示す数値を合わせて記憶しておくことにより、どのＯＳもしくはＡＰ領域が既に使われたものなのか、そして、現在使われているＯＳもしくはＡＰ領域がどれなのかを判定できるようになる。
発生回数５２３は、情報処理装置１に電源を投入してから発生したＷＤＴのタイムアウト発生回数であり、現在実行しているプログラムを変更する際の判断に用いられる。例えば、繰り返し発生回数の制限値をＮと予め設定しておき、ＷＤＴのタイムアウト発生回数がＮを越えた場合、現在使用しているＯＳを他のＯＳに切り替えたり、現在使用しているＡＰ領域を他のＡＰ領域に切り替えたりする。
クリア情報５２４は、最後にＷＤＴのクリアを実施したプログラムを示す情報であり、例えば、ＯＳ内でＷＤＴのクリアを実行した場合、クリア情報５２４には、ＯＳが最後にＷＤＴのクリアを行ったという情報が、ＷＤＴ発生装置５によって書き込まれる。なお、ＯＳがＷＤＴのクリアを実行する際、同時にクリア情報５２４にＯＳが最後にＷＤＴのクリアを行ったと言う情報を書き込むようにしても良い。
【００１５】
図６を用いて、本実施の形態におけるソフトウェアモジュールについて説明する。
ブートローダ１０は、電源が投入されるとはじめに動作するプログラムである。ブートローダ１０は、起動後ハードウェアの初期を実施し、ＯＳを起動する設定を行う。ブートローダ１０は、ハードウェアの初期化時に、ＲＡＭ３などのハードウェアの不具合チェックを実施する場合もある。ブートローダ１０は、ハードウェアの初期化が完了すると記憶装置４からＯＳのイメージをＲＡＭ上にコピーし、ＯＳの起動し、ブートローダ１０の動作は終了する。
ブートローダ１０は、複数あるＯＳ（第１のＯＳ  ２１、第２のＯＳ  ２２）のうちどのＯＳを、複数あるＡＰ領域（第１のＡＰ領域３１、第２のＡＰ領域３２）のうちアプリケーションやアプリケーションのログ出力を強化する設定が含まれるなどのどのＡＰ領域を使用するかを決定する判定部１０１、判定部１０１から呼び出され、メモリの短絡などの不具合を確認するＲＡＭチェック部１０２、同じく、判定部１０１から呼び出され、起動するＯＳおよびＡＰ領域に対し、不具合がないかを確認するプログラムチェック部１０３、判定部１０１で、使用すると決定したＯＳを起動するＯＳ起動部１０４、判定部１０１で使用すると決定したＡＰ領域をＯＳに通知する通信部１０５が備えられている。
【００１６】
第１のＯＳ  ２１は、ブートローダ１０の通信部１０５が使用すると決定した第１のＡＰ領域３１または第２のＡＰ領域３２の情報を受信する通信部２１１、ブートローダ１０から通知された選択情報に従って、第１のＡＰ領域３１または第２のＡＰ領域３２を起動する選択部２１２を備えている。
同様に、第２のＯＳ  ２２は、ブートローダ１０の通信部１０５が使用すると決定した第１のＡＰ領域３１または第２のＡＰ領域３２の情報を受信する通信部２２１、ブートローダから通知された選択情報に従って、第１のＡＰ領域３１または第２のＡＰ領域３２を起動する選択部２１２を備えている。
【００１７】
次に図７〜１０を用いて情報処理装置１の動作について説明する。
【００１８】
図７は、ブートローダ１０およびＯＳの動作を説明するフローチャートである。
情報処理装置１に電源が投入され、ブートローダ１０が起動される。なお、後で説明するが、ＷＤＴ発生装置５によって情報処理装置１がリセットされた場合も、ブートローダ１０が起動される。
ブートローダ１０は、起動されると、判定部１０１が実行される。
判定部１０１では、まず、ＲＡＭチェック部１０２が呼び出され、ＲＡＭのチェックを実行する（ＳＴ１０２）。なお、ＲＡＭのチェックは、単純なメモリの全領域に「０」を書込み、その後メモリ領域をすべて読みだして「０」になっているかを確認したりするものものでもよい。また、メモリのデータバスやアドレスバスの短絡を見つけることが可能な、ウォーキング方式、ギャロッピング方式や、マーチング方式などのメモリのテストアルゴリズムを利用したメモリチェック方法を用いるものでよい。
ＲＡＭのチェックを行った結果、ＲＡＭに異常があった場合、正常にプログラムを実行することができないため、判定部１０１は、情報処理装置１を停止する（ＳＴ１０４）。
なお、ＲＡＭに異常があった場合、ブートローダはメモリに異常があったこと、異常を発見したアドレスや書込もうとした値と実際にメモリに書かれていた値を画面に表示したり、記憶装置４などに記録したりし、システムを停止する。
画面出力の場合は、電源を落とすような処理をしてしまうと画面が消えてしまうため、情報処理装置１処理は停止するが電源は供給した状態となる。一方、記憶装置４などの電源供給を停止してもデータが残る場合には、電源を落として停止してもよい。
ＳＴ１０２に戻り、ＲＡＭチェックを行った結果が正常であった場合、判定部１０１は、ＷＤＴ情報５２０を取得し、更新フラグ５２１を参照することでＷＤＴのタイムアウト発生状況を確認する（ＳＴ１０６）。
判定部１０１は、更新フラグ５２１を参照し（ＳＴ１０６）、ＷＤＴリセットが発生していない場合、情報処理装置１が前回起動された際に使用したＯＳおよびＡＰ領域を選択する（ＳＴ１０８）。履歴情報５２２には、情報処理装置１に実装されているＯＳおよびＡＰ領域が、どの順に実行されたのかが記録されているため、判定部１０１は、履歴情報５２２を参照して前回起動された際に使用したＯＳおよびＡＰ領域を選定する。
なお、電源が入れられた直後は、前回起動された際に使用したＯＳおよびＡＰ領域に関する情報がないため、電源投入直後に用いるＯＳおよびＡＰ領域を予め設定しておき、それに従うようにしても良い。
ＳＴ１０６に戻り、更新フラグ５２１を参照した結果、ＷＤＴのタイムアウトが発生していない場合（ＷＤＴのタイムアウトが発生し、情報処理装置１がリセットしていた場合）、判定部１０１は、ＷＤＴのタイムアウト発生状況に応じた起動対象の選択を実施する（ＳＴ１０７）。
【００１９】
図８を用いて、ＷＤＴリセットの発生状況に応じた起動対象の選択について説明する。
まず判定部１０１は、ＷＤＴ発生装置５がもつＷＤＴ情報５２０を取得する（ＳＴ２０１）。
次に判定部１０１は、ＷＤＴ情報５２０に記録された発生回数５２３が予め定められたＷＤＴのタイムアウト発生回数の限界値Ｎとの比較を行う（ＳＴ２０２）。なお、予め定められた回数Ｎは、ＷＤＴが繰り返しの頻度を判断するための数値である。例えば、障害が発生しても可能な限りシステムの動作を止めたくないシステムであった場合、回数Ｎは５回とかの少ない回数とし、早期に違うＯＳやアプリケーケーションに切り替え、以後ＷＤＴが発生しない状況を模索する。
一方、可能な限り特定のＯＳやアプリケーケーションの組合せで長期に渡って動作させたいシステムの場合、回数Ｎは２０とかの多めの回数とする。
発生回数５２３が一定回数Ｎ以内であれば、判定部１０１は、更新フラグ５２１をなしとし、ＷＤＴのタイムアウトが発生しなかったこととする（ＳＴ２０３）。
判定部１０１は、情報処理装置１が前回起動された際に使用したＯＳおよびＡＰ領域を選択する（ＳＴ１０８）。
その後、判定部１０１は、プログラムチェック部１０３を呼出し、ＳＴ１０８で選択したＯＳ及びＡＰ領域に対する記憶領域のチェックを行う（ＳＴ１０９）。
ＳＴ２０２に戻り、ＷＤＴ情報５２０の結果が一定回数Ｎを超えていた場合、判定部１０１は、ＷＤＴ発生状況情報５２０に記録されたクリア情報５２４を参照し、ＷＤＴのタイムアウトが発生した時に実行していたのが、ＯＳだったのか、ＡＰ領域だったのかの判定を行う（ＳＴ２０４）。クリア情報５２４にＯＳが代入されていた場合、ＯＳの動作のどこかで異常が発生し、ＷＤＴのタイムアウトが発生したと判断できる。同様に、クリア情報５２４にＡＰ領域が代入されていた場合、ＡＰ領域のアプリケーションが動作していた最中に、ＷＤＴのタイムアウトが発生したと判断できる。
ＷＤＴのタイムアウト発生要因がＯＳであったと判断した場合、判定部１０１は、ＯＳの起動対象を変更する（ＳＴ２０５）。
ＯＳの起動対象を変更するにあたって、判定部１０１は、履歴情報５２２を参照する。例えば、第１のＯＳ  ２１には実行した履歴があり、第２のＯＳ  ２２には実行した履歴が無かった場合、第２のＯＳ  ２２を起動対象とする。
同様に判定部１０１は、ＷＤＴのタイムアウト発生要因がＡＰ領域であったと判断した場合、ＡＰ領域の起動対象を変更設定する。ＯＳの時と同様に判定部１０１は、履歴情報５２２を参照し、ＡＰ領域の起動対象の変更を行う。
判定部１０１は、ＷＤＴのタイムアウトが発生していなかった旨、例えば、図５の説明で用いた例だと、０を更新フラグ５２１に代入する（ＳＴ２０７）。
【００２０】
以上で図８の説明を終了し、図７の説明に戻る。
判定部１０１は、プログラムチェック部１０３を呼出し、起動対象として選択したＯＳ及びＡＰ領域が割付けられている記憶領域に対し、不具合がないかを確認する（ＳＴ１１０）。なお、記憶領域に対する不具合の確認方法として、巡回冗長検査やサム値チェックによる検査などを用いても良い。
プログラムチェック部１０３が記憶領域に対するチェックを行った結果、エラーありだった場合、起動対象として選択したＯＳ及びＡＰ領域を起動することはできないため、起動対象検討処理を行う（ＳＴ１１１）。
【００２１】
図９を用いて、起動対象として選択したＯＳ及びＡＰ領域が割り当てられる記憶領域に不具合があった場合の処理について説明する。
プログラムチェック部１０３がチェックを行った結果、記憶領域に不具合があると診断されたのがＯＳであった場合（ＳＴ３０１）、判定部１０１は、履歴情報５２２を参照し、現在起動対象として選択しているＯＳ以外に、変更できるＯＳが存在するかを確認する（ＳＴ３０２）。
既に、全てのＯＳを起動対象として選択してしまい、他に選択するＯＳが無かった場合、つまり、変更が不可であった場合、判定部１０１は、最後に起動対象にしようとしたＯＳの情報を履歴情報５２２へ代入し、記録する（ＳＴ３０３）。代入する情報は、図５の説明で述べたように、起動対象として選択した順が判る情報で良い。
その後、判定部１０１は、情報処理装置１を停止する（ＳＴ３０４）。
ＳＴ３０２に戻り、他に選択するＯＳがあった場合、つまり、変更が可能であった場合、判定部１０１は、次に起動すべきＯＳの選択を行う（ＳＴ３０５）。
ＯＳの起動対象を変更するにあたって、判定部１０１は、履歴情報５２２を参照する。例えば、第１のＯＳ  ２１には実行した履歴があり、第２のＯＳ  ２２には実行した履歴が無かった場合、第２のＯＳ  ２２を起動対象とする。
判定部１０１は、プログラムチェック部１０３を呼出し、起動対象として選択したＯＳ及びＡＰ領域が割付けられている記憶領域に対し、不具合がないかを確認する（ＳＴ３０９）。
プログラムチェック部１０３が記憶領域に対するチェックを行った結果、エラーありだった場合、起動対象として選択したＯＳ及びＡＰ領域を起動することはできないため、再度、起動対象検討処理の先頭（ＳＴ３０１）に戻る。エラーなしだった場合は起動対象検討処理し、図５に戻る。
図９でまだ説明していないフローの説明に戻る。
ＳＴ３０１に戻り、プログラムチェック部１０３がチェックを行った結果、記憶領域に不具合があると診断されたのがＡＰ領域であった場合、判定部１０１は、現在起動対象として選択しているＡＰ領域以外に、変更できるＡＰ領域が存在するかを確認する。（ＳＴ３０６）。
既に、全てのＡＰ領域を起動対象として選択してしまい、他に選択するＡＰ領域が無かった場合、つまり、変更が不可であった場合、判定部１０１は、最後に起動対象にしようとしたＡＰ領域の情報を履歴情報５２２へ代入し、記録する（ＳＴ３０３）。記憶領域に不具合があると診断されたのがＯＳの時と同様、代入する情報は、図５の説明で述べたように、起動対象として選択した順が判る情報で良い。
その後、判定部１０１は、情報処理装置１を停止する（ＳＴ３０４）。
ＳＴ３０６に戻り、他に選択するＡＰ領域があった場合、つまり、変更が可能であった場合、判定部１０１は、次に起動すべきＡＰ領域の選択を行う（ＳＴ３０７）。
なお、次に起動すべきＡＰ領域の選択方法は、ＯＳの場合と同じである。
判定部１０１は、プログラムチェック部１０３を呼出し、起動対象として選択したＯＳ及びＡＰ領域が割付けられている記憶領域に対し、不具合がないかを確認する（ＳＴ３０９）。
プログラムチェック部１０３が記憶領域に対するチェックを行った結果、エラーありだった場合、起動対象として選択したＯＳ及びＡＰ領域を起動することはできないため、再度、起動対象検討処理の先頭（ＳＴ３０１）に戻る。エラーなしだった場合は起動対象検討処理を終了し、図５に戻る。
【００２２】
図９の説明を終了し、図７の説明に戻る。
判定部１０１は、起動対象として選択したＯＳ及びＡＰ領域の情報を、履歴情報５２２へ代入し、記録する（ＳＴ１１２）。
判定部１０１は、ＯＳ起動部１０４を実行し、起動対象として選択したＯＳを起動する（ＳＴ１１３）。なお、ここでは、第１のＯＳと第２のＡＰ領域が起動対象として選択されていたものとする。
判定部１０１は、通信部１０５を実行し、起動対象として選択したＯＳに対し、起動対象として選択したＡＰ領域の情報を通知する（ＳＴ１１４）。
第１のＯＳ  ２１の通信部２１１は、起動対象として選択したＡＰ領域の情報を受信する（ＳＴ１１５）。
以後、第１のＯＳ  ２１がＡＰを実行する時には、起動対象として選択したＡＰ領域の情報を元に選択部２１２が、第２のＡＰ領域３２を選択する。第１のＯＳ  ２１は、第２のＡＰ領域３２内のＡＰを起動する（ＳＴ１１６）。
なお、本実施の形態では、ブートローダ５内の通信部１０５および第１のＯＳ  ２１内の通信部２１１を用いることによって、起動対象として選択したＡＰ領域の情報の伝達を行ったが、判定部１０１が、記憶装置４上のどこかに書き込み、それをＯＳが起動時に確認するようにしてもよい。
【００２３】
次に図１０と図１１を用いて、ＷＤＴ発生装置５の処理について説明する。ＷＤＴ発生装置５の処理には、ＯＳおよびＡＰからＷＤＴクリアの処理を受けた場合の処理と、ＷＤＴクリアの処理を受けずにＷＤＴのタイムアウトが発生した場合の処理がある。
【００２４】
図１０は、ＷＤＴ発生装置５が、ＯＳおよびＡＰからＷＤＴクリアの処理を受けた場合のフローチャートである。
ＯＳ内のＷＤＴクリア処理およびＡＰ領域内のＷＤＴクリア処理用ＡＰによって、ＷＤＴのクリアが行われると、ＷＤＴ発生装置５が信号の変化を読み取ってＷＤＴタイマが延長する。ＷＤＴ発生装置５は、ＷＤＴタイマを延長した後に、記録部５１を実行する。
記録部５１は、格納領域５２を参照し、ＷＤＴクリア処理を行ったプログラムの情報をクリア情報５２４に記録する（ＳＴ４０１）。なお、本実施の形態では、記録部５１が、ＷＤＴクリア処理を行ったプログラムの情報をクリア情報５２４に記録するようにしたが、ＷＤＴのクリア処理を行う側である、ＯＳ内のＷＤＴクリア処理およびＷＤＴクリアＡＰの中で、記録するようにしてもよい。
【００２５】
図１１は、ＷＤＴ発生装置５が、誰からもＷＤＴクリアの処理を受けず、その結果、ＷＤＴのタイムアウトが発生した場合のフローチャートである。
ＷＤＴ発生装置５は、誰からもＷＤＴクリアの処理を受けずにいると、タイムアウトが発生し、記録部５１を実行し、その後ハードウェアをリセットする機能が呼びだされ、再起動する。
記録部５１は、ＷＤＴのタイムアウトが発生した状態であることを、更新フラグ５２１にセットする（ＳＴ５０１）。
次に記録部５１は、発生回数５２３を参照し、参照した値に１を加算し（ＳＴ５０２）、発生回数５２３に記録する（ＳＴ５０３）。
その後、ＷＤＴ発生装置５は、情報処理装置１をリセットする。
【００２６】
上記のような構成にすることにより、ブートローダ１０は、ＷＤＴ発生装置５が記録したＷＤＴ情報５２０を参照することによって、起動対象とすべきＯＳおよびＡＰ領域の選択を行うことが可能となる。そして、起動対象とされたＯＳは、起動対象とすべきＡＰ領域の情報をブートローダ１０から受け取ることによって、起動対象とすべきＡＰ領域のＡＰを起動することが可能となる。
また、制御機器によっては、ログの記録媒体がフラッシュメモリのような書き換え回数に制限があるデバイスが用いられていることがある。このような場合、常に大量の動作ログを出力しているとフラッシュメモリの寿命が短くなってしまうことが問題となる。
上記のような構成にすることにより、ＯＳおよびＡＰ領域のＡＰを、それぞれ、通常のものとデバッグ出力付き機能入りのものを用意することで、障害の原因がＡＰにあった場合、ＯＳは通常のまま、ＡＰ領域のＡＰだけデバッグ出力機能入りに切り替えることができ、不必要なログ情報を抑制することができる。その結果、少ない時間で不具合原因を特定することも可能となる。
【符号の説明】
【００２７】
１  情報処理装置、２  ＣＰＵ、３  ＲＡＭ、４  記憶装置、５  ＷＤＴ発生装置、１０  ブートローダ、２１  第１のＯＳ、２２  第２のＯＳ、３１  第１のＡＰ領域、３２  第２のＡＰ領域、５１  記録部、５２  格納領域、１０１  判定部、１０２  ＲＡＭチェック部、１０３  プログラムチェック部、１０４  ＯＳ起動部、１０５  通信部、２１１通信部、２１２  選択部、２２１  通信部、２２２  選択部、５２０  ＷＤＴ情報、５２１  更新フラグ、５２２  履歴情報、５２３  発生回数、５２４  クリア情報
【図１】
2016151626.tif 000003
【図２】
2016151626.tif 000004
【図３】
2016151626.tif 000005
【図４】
2016151626.tif 000006
【図５】
2016151626.tif 000007
【図６】
2016151626.tif 000008
【図７】
2016151626.tif 000009
【図８】
2016151626.tif 000010
【図９】
2016151626.tif 000011
【図１０】
2016151626.tif 000012
【図１１】
2016151626.tif 000013
【手続補正書】
【提出日】平成29年3月2日(2017.3.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ウォッチドッグタイマのクリアを行ったプログラムを記録する記録部と、
前記ウォッチドッグタイマがタイムアウトした場合、前記記録部を参照し、複数のアプリケーションおよび複数のオペレーティングシステムの中から、実行するアプリケーションおよび実行するオペレーティングシステムを判定する判定部と、
前記判定部が判定したオペレーティングシステムを実行する実行部と、
前記実行するアプリケーションを前記実行するオペレーティングシステムに通知する通信部と
を有することを特徴とする情報処理装置。
【請求項２】
前記判定部は、前記クリアを行ったプログラムがオペレーティングシステムであった場合、前回実行していたアプリケーションと同じアプリケーションを実行すると判定し、前記クリアを行ったプログラムがアプリケーションであった場合、前回実行していたオペレーティングシステムと同じオペレーティングシステムを実行すると判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記記録部は、前記ウォッチドッグタイマがタイムアウトした回数を記録し、
前記判定部は、前記回数が特定の回数を越えた場合に、実行するアプリケーションおよび実行するオペレーティングシステムの判定を行うことを特徴とする請求項１又は２に記載の情報処理装置。
【国際調査報告】
2016151626.tif 000014
2016151626.tif 000015
2016151626.tif 000016
2016151626.tif 000017