(57)【要約】【課題】  コンピュータにおける致命的エラーの発生時に、より高速にシステム復旧を行うことが可能なコンピュータ等を提供すること。【解決手段】  ＢＩＯＳプログラム１２１を記憶するＢＩＯＳＲＯＭ１２０と、ＯＳ１４２の起動前に、ブルースクリーン表示モジュール１２４に代えて復帰処理モジュール１２６が実行されるようにカーネルクラッシュ判定モジュール１２２を更新する更新部１１４と、ＯＳ１４２の起動後にカーネルクラッシュが発生したと判定された場合、復帰処理モジュール１２６を実行する制御部１１６とを含んでコンピュータ１０を構成する。【選択図】      図１
2005234873.tif 000002
【特許請求の範囲】
【請求項１】
所定の致命的エラーが発生したことを示すブルースクリーン画像を表示するためのブルースクリーン表示モジュールと、前記致命的エラーが発生したかどうかを判定し、前記致命的エラーが発生した場合、前記ブルースクリーン表示モジュールを実行するための判定モジュールと、復帰処理を実行するための復帰処理モジュールとを有するＢＩＯＳプログラムを記憶する記憶手段と、
ＯＳの起動前に、前記ブルースクリーン表示モジュールに代えて前記復帰処理モジュールが実行されるように前記判定モジュールを更新する更新手段と、
前記判定モジュールに基づき、ＯＳの起動後に前記致命的エラーが発生したかどうかを判定する判定手段と、
当該判定手段によって前記致命的エラーが発生したと判定された場合、前記復帰処理モジュールを実行する制御手段と、
を含むことを特徴とするコンピュータ。
【請求項２】
請求項１において、
前記記憶手段は、ユーザーの選択に応じて前記ブルースクリーン表示モジュールを実行するか前記復帰処理モジュールを実行するかを判定するための鍵データを記憶し、
前記判定手段は、前記鍵データに基づき、前記ブルースクリーン表示モジュールを実行するか前記復帰処理モジュールを実行するかを判定し、
前記更新手段は、前記判定手段によって前記復帰処理モジュールを実行すると判定された場合、前記ブルースクリーン表示モジュールに代えて前記復帰処理モジュールが実行されるように前記判定モジュールを更新し、前記判定手段によって前記ブルースクリーン表示モジュールを実行すると判定された場合、前記判定モジュールを更新しないことを特徴とするコンピュータ。
【請求項３】
請求項１、２のいずれかにおいて、
前記復帰処理モジュールは、コンピュータを再起動するためのモジュールであることを特徴とするコンピュータ。
【請求項４】
コンピュータの動作時に所定の致命的エラーが発生したかどうかを判定し、
前記致命的エラーが発生した場合、通常実行されるブルースクリーン表示モジュールに代えて復帰処理モジュールを実行することを特徴とするシステム復旧方法。
【請求項５】
請求項４において、
前記ブルースクリーン表示モジュールを実行するか前記復帰処理モジュールを実行するかをユーザーに選択させ、
前記ユーザーが前記復帰処理モジュールを実行することを選択した場合、前記致命的エラーの発生時に前記復帰処理モジュールを実行し、
前記ユーザーが前記復帰処理モジュールを実行することを選択しなかった場合、前記致命的エラーの発生時に前記ブルースクリーン表示モジュールを実行することを特徴とするシステム復旧方法。
【請求項６】
コンピュータにより読み取り可能なプログラムであって、
前記コンピュータに復帰処理を実行させるための復帰処理モジュールと、
前記コンピュータにブルースクリーン画像を表示させるためのブルースクリーン表示モジュールと、
ＯＳの起動後に所定の致命的エラーが発生したかどうかを前記コンピュータに判定させ、前記致命的エラーが発生した場合、前記ブルースクリーン表示モジュールを前記コンピュータに実行させる判定モジュールと、
を含み、
前記コンピュータを、ＯＳの起動前に、前記ブルースクリーン表示モジュールに代えて前記復帰処理モジュールを前記コンピュータに実行させるように前記判定モジュールを更新する更新手段として機能させることを特徴とするプログラム。
【請求項７】
請求項６において、
ユーザーの選択に応じて前記ブルースクリーン表示モジュールを実行するか前記復帰処理モジュールを実行するかを判定するための鍵データを含み、
前記コンピュータを、前記鍵データに基づき、前記ブルースクリーン表示モジュールを実行するか前記復帰処理モジュールを実行するかを判定する判定手段として機能させ、
前記更新手段は、ユーザーが、前記ブルースクリーン表示モジュールを実行することを選択した場合、前記鍵データを前記コンピュータの有する記憶部に記憶し、
前記判定手段は、前記致命的エラーが発生した場合、前記プログラム内の鍵データと、前記記憶部内の鍵データとが一致するかどうかを判定し、一致する場合は前記コンピュータに前記ブルースクリーン表示モジュールを実行させ、一致しない場合は前記コンピュータに前記復帰処理モジュールを実行させることを特徴とするプログラム。
【請求項８】
コンピュータにより読み取り可能なプログラムを記憶した情報記憶媒体であって、
請求項６、７のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ、システム復旧方法、プログラムおよび情報記憶媒体に関する。
【背景技術】
【０００２】
従来のＰＣは、ウォッチドッグと呼ばれる手法を用いて致命的なエラー（例えば、ＯＳのカーネルのクラッシュ等）の検出を行っていた。この手法では、所定のプログラムを定期的に動作させ、ウォッチドッグ用のタイマーを用いて当該プログラムの動作を監視し、当該プログラムの実行が所定時間内に行われないこと（タイムアウト）を検出して致命的なエラーの検出を行っていた。
【０００３】
例えば、特許文献１では、カウンタ回路が所定値を計数した時にパルス信号を発生してＣＰＵをリセットする手法が開示されている。
【特許文献１】特公昭６３−２６３９７号公報
【特許文献２】特開２００１−５６９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、ウォッチドッグを用いる場合、タイマーが必須となる上、タイマー値の初期化やタイムアウト値の設定等を行うため、システム構成が複雑となってしまっていた。また、ウォッチドッグを用いる場合、致命的なエラーが発生してからタイムアウトまでの時間が必要となるため、エラーが発生してから検出するまでの時間のずれが発生していた。
【０００５】
一方、ＰＣ等が、致命的なエラーが発生した際にブルースクリーン画像と共に障害内容を示すダンプ情報を画面に表示することにより、後日の障害解析に役立てる技術が提案されている。
【０００６】
この技術は、例えば、特許文献２のように、ＰＣ等が画面に表示するだけでなく、解析情報を後日利用できるような用途としても使われている。しかし、この技術は、システムの復旧機能を持たないので、実際に解析されるまではシステムの動作は復帰せず、ブルースクリーン画像を表示したままになるという欠点を有していた。
【０００７】
本発明は、上記課題に鑑みなされたものであり、その目的は、コンピュータにおける致命的エラーの発生時に、より高速にシステム復旧を行うことが可能なコンピュータ、システム復旧方法、プログラムおよび情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明に係るコンピュータは、所定の致命的エラーが発生したことを示すブルースクリーン画像を表示するためのブルースクリーン表示モジュールと、前記致命的エラーが発生したかどうかを判定し、前記致命的エラーが発生した場合、前記ブルースクリーン表示モジュールを実行するための判定モジュールと、復帰処理を実行するための復帰処理モジュールとを有するＢＩＯＳプログラムを記憶する記憶手段と、
前記判定モジュールに基づき、ＯＳの起動後に前記致命的エラーが発生したかどうかを判定する判定手段と、
当該判定手段によって前記致命的エラーが発生したと判定された場合、前記復帰処理モジュールを実行する制御手段と、
を含むことを特徴とする。
【０００９】
また、本発明に係るシステム復旧方法は、コンピュータの動作時に所定の致命的エラーが発生したかどうかを判定し、
前記致命的エラーが発生した場合、通常実行されるブルースクリーン表示モジュールに代えて復帰処理モジュールを実行することを特徴とする。
【００１０】
また、本発明に係るプログラムは、コンピュータにより読み取り可能なプログラムであって、
前記コンピュータに復帰処理を実行させるための復帰処理モジュールと、
前記コンピュータにブルースクリーン画像を表示させるためのブルースクリーン表示モジュールと、
ＯＳの起動後に所定の致命的エラーが発生したかどうかを前記コンピュータに判定させ、前記致命的エラーが発生した場合、前記ブルースクリーン表示モジュールを前記コンピュータに実行させる判定モジュールと、
を含み、
前記コンピュータを、ＯＳの起動前に、前記ブルースクリーン表示モジュールに代えて前記復帰処理モジュールを前記コンピュータに実行させるように前記判定モジュールを更新する更新手段として機能させることを特徴とする。
【００１１】
また、本発明に係る情報記憶媒体は、コンピュータにより読み取り可能なプログラムを記憶した情報記憶媒体であって、
上記プログラムを記憶したことを特徴とする。
【００１２】
本発明によれば、コンピュータ等は、ウォッチドッグを用いることなく、致命的なエラーの発生を検出した時点で即座に復帰処理を実行することができる。これにより、コンピュータ等は、コンピュータにおける致命的エラーの発生時に、より高速にシステム復旧を行うことができる。
【００１３】
また、前記コンピュータにおいて、前記記憶手段は、ユーザーの選択に応じて前記ブルースクリーン表示モジュールを実行するか前記復帰処理モジュールを実行するかを判定するための鍵データを記憶し、
前記判定手段は、前記鍵データに基づき、前記ブルースクリーン表示モジュールを実行するか前記復帰処理モジュールを実行するかを判定し、
前記更新手段は、前記判定手段によって前記復帰処理モジュールを実行すると判定された場合、前記ブルースクリーン表示モジュールに代えて前記復帰処理モジュールが実行されるように前記判定モジュールを更新し、前記判定手段によって前記ブルースクリーン表示モジュールを実行すると判定された場合、前記判定モジュールを更新しないでもよい。
【００１４】
また、前記システム復旧方法において、前記ブルースクリーン表示モジュールを実行するか前記復帰処理モジュールを実行するかをユーザーに選択させ、
前記ユーザーが前記復帰処理モジュールを実行することを選択した場合、前記致命的エラーの発生時に前記復帰処理モジュールを実行し、
前記ユーザーが前記復帰処理モジュールを実行することを選択しなかった場合、前記致命的エラーの発生時に前記ブルースクリーン表示モジュールを実行してもよい。
【００１５】
また、前記プログラムにおいて、ユーザーの選択に応じて前記ブルースクリーン表示モジュールを実行するか前記復帰処理モジュールを実行するかを判定するための鍵データを含み、
前記コンピュータを、前記鍵データに基づき、前記ブルースクリーン表示モジュールを実行するか前記復帰処理モジュールを実行するかを判定する判定手段として機能させ、
前記更新手段は、ユーザーが、前記ブルースクリーン表示モジュールを実行することを選択した場合、前記鍵データを前記コンピュータの有する記憶部に記憶し、
前記判定手段は、前記致命的エラーが発生した場合、前記プログラム内の鍵データと、前記記憶部内の鍵データとが一致するかどうかを判定し、一致する場合は前記コンピュータに前記ブルースクリーン表示モジュールを実行させ、一致しない場合は前記コンピュータに前記復帰処理モジュールを実行させてもよい。
【００１６】
これによれば、コンピュータ等は、ユーザーの選択に応じて従来通りブルースクリーン表示を行うこともできる。これにより、コンピュータ等は、復帰処理を実行するだけでなく、ブルースクリーン表示やデバッグ用の表示を行うことも可能となるため、汎用性を向上させることができる。
【００１７】
また、前記コンピュータ、前記システム復旧方法、前記プログラムおよび前記情報記憶媒体において、前記復帰処理モジュールは、コンピュータを再起動するためのモジュールであってもよい。
【００１８】
これによれば、コンピュータ等は、致命的なエラーの発生時にコンピュータを再起動することができる。これにより、ユーザーは、ブルースクリーン表示を見ることなく、快適に作業を続行することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明を、ブルースクリーン表示モジュール等を含むＢＩＯＳプログラムを記憶したコンピュータに適用した場合を例に採り、図面を参照しつつ説明する。なお、以下に示す実施形態は、特許請求の範囲に記載された発明の内容を何ら限定するものではない。また、以下の実施形態に示す構成の全てが、特許請求の範囲に記載された発明の解決手段として必須であるとは限らない。
【００２０】
（システム全体の説明）
図１は、本実施形態の一例に係るコンピュータ１０の機能ブロック図である。
【００２１】
コンピュータ１０は、ＣＰＵ１１０と、ＢＩＯＳプログラム１２１を記憶したＢＩＯＳＲＯＭ１２０と、ＯＳ１４２を記憶したＨＤＤ１４０と、入力部１５０と、表示部１６０と、これらの各部を接続するバス１３０とを含んで構成されている。
【００２２】
また、ＣＰＵ１１０は、ＯＳ１４２の起動前に、ブルースクリーン表示モジュール１２４に代えて復帰処理モジュール１２６が実行されるようにカーネルクラッシュ判定モジュール１２２を更新する更新部１１４と、ＯＳ１４２の起動後にカーネルクラッシュ判定モジュール１２２に基づきカーネルクラッシュが発生したかどうかを判定する判定部１１２と、カーネルクラッシュが発生した場合、復帰処理モジュール１２６を実行する制御部１１６と、ユーザーの選択に応じて鍵データ１１９を記憶する記憶手段の一種であるレジスタ１１８とを含んで構成されている。
【００２３】
また、ＢＩＯＳプログラム１２１は、致命的エラーの一種であるＯＳ１４２のカーネルクラッシュが発生したことを示すブルースクリーン画像を表示するためのブルースクリーン表示モジュール１２４と、カーネルクラッシュが発生したかどうかを判定し、カーネルクラッシュが発生した場合、ブルースクリーン表示モジュール１２４を実行するためのカーネルクラッシュ判定モジュール１２２と、復帰処理を実行するための復帰処理モジュール１２６と、ユーザーの選択に応じてブルースクリーン表示モジュール１２４を実行するか復帰処理モジュール１２６を実行するかを判定するための鍵データ１２８とを含んで構成されている。
【００２４】
また、上述した更新部１１４等としてコンピュータ１０を機能させるためのハードウェアとしては、例えば、以下のものを適用できる。
【００２５】
例えば、判定部１１２、更新部１１４および制御部１１６としてはＣＰＵ１１０内部の処理回路等、入力部１５０としてはキーボード等、表示部１６０としては液晶ディスプレイ等を用いて更新部１１４等の機能をコンピュータ１０に実装できる。
【００２６】
また、これらの各部を、回路を用いてハードウェア的にコンピュータ１０に実装してもよいし、プログラムを用いてソフトウェア的にコンピュータ１０に実装してもよい。
【００２７】
さらに、更新部１１４等としてコンピュータを機能させるためのプログラムを記憶した情報記憶媒体２０からプログラムを読み取って更新部１１４等の機能をコンピュータ１０に実装してもよい。
【００２８】
このような情報記憶媒体２０としては、例えば、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＲＯＭ、ＲＡＭ、ＨＤＤ等を適用でき、そのプログラムの読み取り方式は接触方式であっても、非接触方式であってもよい。
【００２９】
また、情報記憶媒体２０に代えて、上述した各機能を実現するためのプログラム等を、伝送路を介してホスト装置等からダウンロードすることによって上述した各機能をコンピュータ１０に実装することも可能である。
【００３０】
（処理の流れの説明）
次に、これらの各部を用いた処理の流れについて説明する。
【００３１】
図２は、本実施形態の一例に係る処理の流れを示すフローチャートである。
【００３２】
まず、更新部１１４は、ＯＳ１４２の起動前にカーネルクラッシュ判定モジュール１２２を書き換える（ステップＳ１）。具体的には、更新部１１４は、カーネルクラッシュ判定モジュール１２２でブルースクリーン表示モジュール１２４を呼んでいる部分を、復帰処理モジュール１２６を呼ぶように書き換える。
【００３３】
ユーザーは、コンピュータ１０の電源をＯＮにする（ステップＳ２）。なお、ステップＳ１とステップＳ２は実行順序が逆でもよい。
【００３４】
判定部１１２は、ＯＳ１４２が起動したかどうかを判定する（ステップＳ３）。なお、この判定基準としては、例えば、ビデオモードがＯＳ１４２用のモードに切り替わったこと等を採用してもよい。
【００３５】
ＯＳ１４２が起動した場合、更新部１１４は、鍵データ１２８をレジスタ１１８に鍵データ１１９として書き込む（ステップＳ４）。なお、この場合、レジスタ１１８としては、いわゆるスクラッチパッドレジスタ（作業用レジスタ）を使用することが好ましい。
【００３６】
制御部１１６は、ＯＳ１４２に基づき、通常処理を実行する（ステップＳ５）。
【００３７】
通常処理の実行中、判定部１１２は、カーネルクラッシュ判定モジュール１２２に基づき、カーネルクラッシュが発生したかどうかを判定する（ステップＳ６）。
【００３８】
カーネルクラッシュが発生した場合、判定部１１２は、さらに、ＢＩＯＳプログラム１２１に記憶された鍵データ１２８と、レジスタ１１８に記憶された鍵データ１１９とが一致するかどうかを判定する（ステップＳ７）。
【００３９】
一致した場合、制御部１１６は、カーネルクラッシュ判定モジュール１２２の呼んでいるモジュールである復帰処理モジュール１２６に基づき、復帰処理を実行する（ステップＳ８）。なお、復帰処理としては、例えば、コンピュータ１０の再起動等が該当する。
【００４０】
また、コンピュータ１０は、鍵データ１１９、１２８を用いることにより、ユーザーの選択に応じてカーネルクラッシュ発生時に通常通りブルースクリーン表示を行うことも可能である。
【００４１】
例えば、判定部１１２により、入力部１５０からの入力情報に基づき、ユーザーが通常通りブルースクリーン表示を行うことを選択したと判定された場合、更新部１１４は、ステップＳ１における処理を行わない。これにより、レジスタ１１８には鍵データ１１９が存在しない状態となる。
【００４２】
これにより、鍵データ一致判定処理（ステップＳ７）の判定結果はＮＯになる。この場合、表示部１６０は、ブルースクリーン表示モジュール１２４に基づき、通常のブルースクリーン表示を行う（ステップＳ９）。また、表示部１６０は、ブルースクリーン表示に付随するデバッグ用画像等を表示してもよい。
【００４３】
以上のように、本実施形態によれば、コンピュータ１０は、ウォッチドッグを用いることなく、カーネルクラッシュの発生を検出した時点で即座に復帰処理を実行することができる。これにより、コンピュータ１０は、コンピュータ１０におけるカーネルクラッシュの発生時に、より高速にシステム復旧を行うことができる。
【００４４】
また、コンピュータ１０は、ユーザーの選択に応じて従来通りブルースクリーン表示を行うこともできる。これにより、コンピュータ１０は、復帰処理を実行するだけでなく、ブルースクリーン表示やデバッグ用の表示を行うことも可能となるため、汎用性を向上させることができる。
【００４５】
さらに、コンピュータ１０は、システム復旧処理として、コンピュータ１０を再起動することができる。これにより、ユーザーは、ブルースクリーン表示を見ることなく、快適に作業を続行することができる。また、これにより、ユーザーが、ＯＳ１４２に起因する不具合をコンピュータ１０のハードウェアによる不具合であると誤解する事態の発生を防止できる。
【００４６】
（変形例）
以上、本発明を適用した好適な実施の形態について説明してきたが、本発明の適用は上述した実施例に限定されない。
【００４７】
例えば、致命的なエラーは、ＯＳ１４２のカーネルクラッシュに限定されない。致命的なエラーとして、例えば、コンピュータ１０による処理の続行が不可能な種々のエラーを採用してもよい。
【００４８】
また、上述した実施例では、鍵データ１２８と鍵データ１１９の一致を判定したが、変形例として、更新部１１４が、ユーザーの選択に応じて鍵データ１１９の内容を更新し、判定部１１２が、レジスタ１１８内の鍵データ１１９の内容に応じて復帰処理を実行するかブルースクリーン表示処理を実行するかを判定してもよい。また、この場合、第３の選択肢として、デバッグ処理の実行を行ってもよい。すなわち、この場合、制御部１１６は、鍵データ１１９の内容に応じて３つ以上の処理のうちいずれか１つの処理を実行することも可能である。
【００４９】
また、変形例として、コンピュータ１０の機能を複数の装置に分散してもよい。
【図面の簡単な説明】
【００５０】
【図１】本実施形態の一例に係るコンピュータの機能ブロック図である。
【図２】本実施形態の一例に係る処理の流れを示すフローチャートである。
【符号の説明】
【００５１】
１０  コンピュータ、２０  情報記憶媒体、１１０  ＣＰＵ、１１２  判定部、１１４  更新部、１１６  制御部、１１８  レジスタ、１１９、１２８  鍵データ、１２０  ＢＩＯＳＲＯＭ（記憶手段）、１２１  ＢＩＯＳプログラム、１２２  カーネルクラッシュ判定モジュール（判定モジュール）、１２４  ブルースクリーン表示モジュール、１２６  復帰処理モジュール、１４２  ＯＳ
【図１】
2005234873.tif 000003
【図２】
2005234873.tif 000004