(57)【特許請求の範囲】
【請求項１】
情報処理装置の電源をオフにする処理を制御する制御プログラムを記録した記録媒体であって、
前記情報処理装置を、
前記情報処理装置の電源をオフにするオフ指示を受けた場合に、前記情報処理装置のオペレーティングシステムにより管理されて動作するプロセス及び前記オペレーティングシステムの終了処理を指示する終了処理指示部と、
前記オフ指示を受けてから前記オペレーティングシステムが終了するまでの間に、前記オペレーティングシステムにより管理される入出力デバイスを初期化するデバイス初期化部と、
前記オペレーティングシステムを終了させた場合に、前記情報処理装置の電源をオフにする電源オフ設定部と
して機能させる制御プログラムを記録し、
当該制御プログラムは、前記オペレーティングシステムによるタスク管理の対象とならないＢＩＯＳプログラムと、前記オペレーティングシステムによるタスク管理の対象である終了プログラムとを備え、
前記情報処理装置は、前記ＢＩＯＳプログラムにより、前記終了処理指示部及び前記デバイス初期化部として機能し、
前記終了処理指示部は、前記プロセスを終了させる前記終了プログラムを前記オペレーティングシステムによりタスク管理されるプロセスとして動作させることにより、前記オペレーティングシステムのプロセスを終了させ、
前記デバイス初期化部は、前記終了プログラムが正常に動作している間に、前記入出力デバイスを初期化する記録媒体。
【請求項２】
前記デバイス初期化部は、前記情報処理装置に設けられたＩ／Ｏコントローラから、前記ＢＩＯＳプログラムに対する割込要求を定期的に受けることにより動作し、前記終了プログラムが正常に動作しているか否かを定期的に判断する
請求項１記載の記録媒体。
【請求項３】
前記情報処理装置を、利用者から前記オフ指示を受けた場合に、前記Ｉ／Ｏコントローラが前記ＢＩＯＳプログラムに対してインターバルタイマにより定期的に割り込むように設定する割込設定部として更に機能させる制御プログラムを記録した請求項１記載の記録媒体。
【請求項４】
前記制御プログラムは、前記情報処理装置を、前記終了プログラムの動作に障害が発生したと判断した場合に、前記情報処理装置の入出力デバイスの電源をオフにしてよい状態に設定する終了状態設定部として更に機能させ、
前記電源オフ設定部は、前記終了状態設定部により前記入出力デバイスが終了状態に設定された場合に、前記情報処理装置の電源をオフにする
請求項１記載の記録媒体。
【請求項５】
前記制御プログラムは、前記情報処理装置を、
前記終了プログラムの動作に障害が発生した場合に、前記オペレーティングシステムを終了させることなく電源をオフにする旨の終了状況を出力し、前記終了処理指示部により前記オペレーティングシステムが終了した場合に、前記オペレーティングシステムを終了させてから電源をオフにする旨の終了状況を出力する終了状況出力部として更に機能させる
請求項１記載の記録媒体。
【請求項６】
前記終了状況出力部は、前記情報処理装置が起動した場合に、前記情報処理装置の電源が前回オフにされた時における終了状況を出力する
請求項５記載の記録媒体。
【請求項７】
前記制御プログラムは、前記情報処理装置を、
前記オペレーティングシステムを通常終了させる通常終了指示を利用者から受けた場合に、前記オペレーティングシステムに対する割込要求を中央処理装置に送信することにより、前記オペレーティングシステムを終了させ、前記オペレーティングシステムを強制終了させる強制終了指示を利用者から受けた場合に、前記ＢＩＯＳプログラムに対する割込要求を中央処理装置に送信することにより、前記終了処理指示部に前記オフ指示を送信する終了判断部
として更に機能させる請求項１記載の記録媒体。
【請求項８】
前記情報処理装置を、前記終了プログラムにより、
前記デバイス初期化部により前記入出力デバイスが初期化され、かつ前記オペレーティングシステムが終了していない場合に、前記オペレーティングシステムを終了するか否かを前記終了プログラムにより利用者に問い合わせる終了処理部として機能させる
請求項１記載の記録媒体。
【請求項９】
情報処理装置の電源をオフにする処理を制御する制御プログラムであって、
前記情報処理装置を、
前記情報処理装置の電源をオフにするオフ指示を受けた場合に、前記情報処理装置のオペレーティングシステムにより管理されて動作するプロセス及び前記オペレーティングシステムの終了処理を指示する終了処理指示部と、
前記オフ指示を受けてから前記オペレーティングシステムが終了するまでの間に、前記オペレーティングシステムにより管理される入出力デバイスを初期化するデバイス初期化部と、
前記オペレーティングシステムを終了させた場合に、前記情報処理装置の電源をオフにする電源オフ設定部と
して機能させると共に、
前記オペレーティングシステムによるタスク管理の対象とならないＢＩＯＳプログラムと、前記オペレーティングシステムによるタスク管理の対象である終了プログラムとを備え、
前記情報処理装置を、前記ＢＩＯＳプログラムにより、前記終了処理指示部及び前記デバイス初期化部として機能させ、
前記終了処理指示部で、前記プロセスを終了させる前記終了プログラムを前記オペレーティングシステムによりタスク管理されるプロセスとして動作させることにより、前記オペレーティングシステムのプロセスを終了させ、
前記デバイス初期化部で、前記終了プログラムが正常に動作している間に、前記入出力デバイスを初期化させる制御プログラム。
【請求項１０】
電源をオフにする処理を制御する情報処理装置であって、
前記情報処理装置の電源をオフにするオフ指示を受けた場合に、前記情報処理装置のオペレーティングシステムにより管理されて動作するプロセス及び前記オペレーティングシステムの終了処理を指示する終了処理指示部と、
前記オフ指示を受けてから前記オペレーティングシステムが終了するまでの間に、前記オペレーティングシステムにより管理される入出力デバイスを初期化するデバイス初期化部と、
前記オペレーティングシステムを終了させた場合に、前記情報処理装置の電源をオフにする電源オフ設定部とを備え、
前記オペレーティングシステムによるタスク管理の対象とならないＢＩＯＳプログラムにより、前記終了処理指示部及び前記デバイス初期化部として機能し、
前記終了処理指示部で、前記プロセスを終了させる前記オペレーティングシステムによるタスク管理の対象である終了プログラムを、前記オペレーティングシステムによりタスク管理されるプロセスとして動作させることにより、前記オペレーティングシステムのプロセスを終了させ、
前記デバイス初期化部で、前記終了プログラムが正常に動作している間に、前記入出力デバイスを初期化する情報処理装置。
【請求項１１】
前記情報処理装置は、オペレーティングシステムによるタスク管理の対象とならないＢＩＯＳプログラムにより、前記終了処理指示部及び前記デバイス初期化部として機能し、
前記ＢＩＯＳプログラムに対するＳＭＩ割込処理を中央処理装置に要求するＳＭＩ割込指示を、前記情報処理装置のエンベッデドコントローラからＩ／Ｏコントローラに対して送信する信号線と、
前記オペレーティングシステムに対するＳＣＩ割込処理を中央処理装置に要求するＳＣＩ割込指示を、前記エンベッデドコントローラからＩ／Ｏコントローラに対して送信する信号線と、
前記オペレーティングシステムを通常終了させる通常終了指示を利用者から受けた場合に、前記ＳＣＩ割込指示を前記Ｉ／Ｏコントローラに対して送信することにより、前記オペレーティングシステムを終了させ、前記オペレーティングシステムを強制終了させる強制終了指示を利用者から受けた場合に、前記ＳＭＩ割込指示を前記Ｉ／Ｏコントローラに対して送信することにより、前記終了処理指示部に前記オフ指示を送信する終了判断部とを更に備える請求項１０記載の情報処理装置。
【請求項１２】
前記終了判断部は、利用者が前記情報処理装置の電源スイッチを予め定められた基準時間以上オフ状態にした場合に、前記強制終了指示を受けたと判断し、前記オフ状態が前記基準時間未満である場合に、前記通常終了指示を受けたと判断する
請求項１１記載の情報処理装置。
【請求項１３】
情報処理装置の電源をオフにする処理を制御する制御方法であって、
前記情報処理装置の電源をオフにするオフ指示を受けた場合に、前記情報処理装置のオペレーティングシステムにより管理されて動作するプロセス及び前記オペレーティングシステムの終了処理を指示する終了処理指示段階と、
前記オフ指示を受けてから前記オペレーティングシステムが終了するまでの間に、前記オペレーティングシステムにより管理される入出力デバイスを初期化するデバイス初期化段階と、
前記オペレーティングシステムを終了させた場合に、前記情報処理装置の電源をオフにする電源オフ設定段階と
を備え、
前記情報処理装置を、前記オペレーティングシステムによるタスク管理の対象とならないＢＩＯＳプログラムにより、前記終了処理指示段階及び前記デバイス初期化段階として機能させ、
前記終了処理指示段階で、前記プロセスを終了させる前記オペレーティングシステムによるタスク管理の対象である終了プログラムを、前記オペレーティングシステムによりタスク管理されるプロセスとして動作させることにより、前記オペレーティングシステムのプロセスを終了させ、
前記デバイス初期化段階で、前記終了プログラムが正常に動作している間に、前記入出力デバイスを初期化させる制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御プログラム、記録媒体、制御方法、及び情報処理装置に関する。特に、本発明は、情報処理装置の終了処理を制御する制御プログラム、記録媒体、制御方法、及び情報処理装置に関する。
【背景技術】
【０００２】
近年、様々なアプリケーションプログラムをインストールして実行可能な汎用の情報処理装置、例えばパーソナル・コンピュータ等が普及している。このような情報処理装置においては、複数のアプリケーションプログラムが互いに悪影響を与え合い、結果として情報処理装置の動作が停止してしまう場合がある。この場合、利用者は、電源ボタン等を数秒間押しつづけることにより、情報処理装置の電源を強制的にオフ状態にしていた。【０００３】
情報処理装置のオペレーティングシステムを正常に終了させることなく、情報処理装置の電源をオフ状態とすると、アプリケーションプログラムにより処理中のデータが失われる等の不都合がある。そこで、電源ボタンが押された場合に、オペレーティングシステムを正常終了させてから情報処理装置をオフ状態にする技術が提案されている（特許文献１から４参照）。
【特許文献１】特開平７−２６１８８８号公報
【特許文献２】特開平１１−３２７７０３号公報
【特許文献３】特開平２００２−７３２２０号公報
【特許文献４】特開平２００２−３１２０７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、オペレーティングシステム自体がハングアップしている場合や、情報処理装置の入力デバイスによる操作に障害が発生している場合には、利用者は、オペレーティングシステムの終了を待たずに情報処理装置を強制的に終了させることしかできない。例えば、Windows（登録商標）オペレーティングシステムは、Ctrlキー、Altキー、及びDelキーの押下を受けると、利用者に対してプロセスを終了させる機能を提供する。しかしながら、オペレーティングシステムの大部分が正常動作していても、キーボートの操作に障害が発生していれば、利用者はこの操作を行うことができず、情報処理装置を強制的に終了させることしかできなかった。【０００５】
そこで本発明は、上記の課題を解決することのできる制御プログラム、記録媒体、制御方法、及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の第１の形態においては、情報処理装置の電源をオフにする処理を制御する制御プログラムを記録した記録媒体であって、情報処理装置を、情報処理装置の電源をオフにするオフ指示を受けた場合に、情報処理装置のオペレーティングシステムにより管理されて動作するプロセス及びオペレーティングシステムの終了処理を指示する終了処理指示部と、オフ指示を受けてからオペレーティングシステムが終了するまでの間に、オペレーティングシステムにより管理される入出力デバイスを初期化するデバイス初期化部と、オペレーティングシステムを終了させた場合に、情報処理装置の電源をオフにする電源オフ設定部として機能させる制御プログラムを記録した記録媒体、当該制御プログラムにより動作する情報処理装置、及び当該制御プログラムによる制御方法を提供する。【０００７】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【０００８】
本発明によれば、情報処理装置を適切に終了させることができる。
【発明を実施するための最良の形態】
【０００９】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。【００１０】
図１は、情報処理装置１０のハードウェア構成の一例を示す。情報処理装置１０は、ホストコントローラ１０８２により相互に接続される中央処理装置１０００、ＲＡＭ１０２０、グラフィックコントローラ１０７５、及び表示装置１０８０を有する中央処理装置周辺部と、Ｉ／Ｏコントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、入力デバイス１０３２、エンベッデドコントローラ１０３５、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、Ｉ／Ｏコントローラ１０８４に接続されるＢＩＯＳ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。【００１１】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスする中央処理装置１０００及びグラフィックコントローラ１０７５とを接続する。中央処理装置１０００は、ＢＩＯＳ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、中央処理装置１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、中央処理装置１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。【００１２】
Ｉ／Ｏコントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、入力デバイス１０３２、エンベッデドコントローラ１０３５、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介して外部の装置と通信する。【００１３】
エンベッデドコントローラ１０３５は、電源スイッチ１０３８と、ＳＣＩ割込指示をＩ／Ｏコントローラ１０８４に送るＳＣＩ割込要求指示信号線と、ＳＭＩ割込指示をＩ／Ｏコントローラ１０８４に送るＳＭＩ割込要求指示信号線とに接続する。そして、エンベッデドコントローラ１０３５は、電源スイッチ１０３８が押下された場合に、Ｉ／Ｏコントローラ１０８４を介して中央処理装置１０００等に指示を送信する。【００１４】
ここで、ＳＣＩ割込指示とは、オペレーティングシステムに対する割込処理であるＳＣＩ割込処理を中央処理装置１０００に要求する指示である。そして、ＳＣＩとは、System Control Interruptの略である。また、ＳＭＩ割込指示とは、ＢＩＯＳプログラムに対する割込処理であるＳＭＩ割込処理を中央処理装置１０００に要求する指示である。そして、ＳＭＩとは、SystemManagement Interruptの略である。【００１５】
入力デバイス１０３２は、例えば、マウス又はキーボード等であり、利用者からの操作を受けて中央処理装置１０００に割込処理を要求する。ハードディスクドライブ１０４０は、情報処理装置１０が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０を介して入出力チップ１０７０に提供する。また、Ｉ／Ｏコントローラ１０８４には、ＢＩＯＳ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＢＩＯＳ１０１０は、情報処理装置１０の起動時に中央処理装置１０００が実行するブートプログラムや、情報処理装置１０のハードウェアに依存するプログラム等を格納する。【００１６】
フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、ＲＡＭ１０２０を介して入出力チップ１０７０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。【００１７】
情報処理装置１０に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び/又はＩ／Ｏコントローラ１０８４を介して、
記録媒体から読み出され情報処理装置１０にインストールされて実行される。例えば、本発明に係る制御プログラムは、各々が本発明に係る記録媒体の一例であるＢＩＯＳ１０１０、ハードディスクドライブ１０４０、又は、エンベッデドコントローラ１０３５により用いられる記録領域に記録されてもよい。【００１８】
情報処理装置１０にインストールされて実行される制御プログラムは、終了判断モジュールと、電源オフ設定モジュールと、終了処理指示モジュールと、割込設定モジュールと、デバイス初期化モジュールと、終了状態設定モジュールと、終了状況出力モジュールと、オペレーティングシステムとを含む。各モジュールが情報処理装置１０に働きかけて行わせる動作は、図２から図６において説明する情報処理装置１０における、対応する部材の動作と同一であるから、説明を省略する。また、以降の説明においてオペレーティングシステムをＯＳと略記する。【００１９】
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを情報処理装置１０に提供してもよい。【００２０】
図２は、エンベッデドコントローラ１０３５のブロック図の一例を示す。エンベッデドコントローラ１０３５は、終了判断部２００と、電源オフ設定部２１０として機能する。終了判断部２００は、ＯＳを強制終了させる強制終了指示を利用者から受けた場合に、ＳＭＩ割込指示をＩ／Ｏコントローラ１０８４に対して送信することにより、Ｉ／Ｏコントローラ１０８４から中央処理装置１０００に対してＳＭＩ割込要求を送信させる。この結果、中央処理装置１０００においてＢＩＯＳプログラムが動作を開始する。そして、終了判断部２００は、ＢＩＯＳプログラムの動作を開始させた旨を電源オフ設定部２１０に通知する。【００２１】
一方、終了判断部２００は、ＯＳを通常終了させる通常終了指示を利用者から受けた場合に、ＳＣＩ割込指示をＩ／Ｏコントローラ１０８４に対して送信することにより、Ｉ／Ｏコントローラ１０８４から中央処理装置１０００に対してＳＣＩ割込要求を送信させる。この結果、中央処理装置１０００においてオペレーティングシステムが、通常の終了処理を開始する。【００２２】
具体的には、終了判断部２００は、利用者が電源スイッチ１０３８を予め定められた基準時間以上オフ状態にした場合、例えば利用者が電源スイッチ１０３８のボタンを基準時間以上押し続けた場合に、利用者から強制終了指示を受けたと判断する。一方、終了判断部２００は、オフ状態が基準時間未満である場合、例えば利用者が電源スイッチ１０３８のボタンを押してすぐに離した場合に、利用者から通常終了指示を受けたと判断する。【００２３】
なお、好ましくは、終了判断部２００は、強制終了指示を受けている間に通常終了指示を受け付けない。具体的には、終了判断部２００は、強制終了指示を受けてから情報処理装置１０を終了させるまでの間に通常終了指示を受けた場合には、ＳＣＩ割込要求を送信しない。これにより、互いに異なるＯＳ終了処理が並行して実行されることを防止できる。【００２４】
電源オフ設定部２１０は、ＢＩＯＳプログラムの動作を開始させた旨の通知を終了判断部２００から受けた場合に、ＢＩＯＳプログラムが動作している旨の通知をデバイス初期化部３２０から定期的に受ける。そして、電源オフ設定部２１０は、ＢＩＯＳプログラムが動作している旨の通知を最後に受けてから、基準待機時間内に、次の当該通知を受け取れなかった場合に、Ｉ／Ｏコントローラ１０８４に指示して情報処理装置１０の電源をオフにする。【００２５】
図３は、中央処理装置１０００のブロック図の一例を示す。中央処理装置１０００は、ＢＩＯＳプログラム及び終了プログラムにより、終了処理指示部３００と、割込設定部３１０と、デバイス初期化部３２０と、終了状態設定部３３０と、終了処理部３３５と、終了状況出力部３４０として機能する。ＢＩＯＳプログラム、終了プログラム、及びエンベッデドコントローラ１０３５を動作させるプログラムの組が、本発明に係る制御プログラムの一例である。ここで、ＢＩＯＳプログラムは、ＯＳによるタスク管理の対象とならないプログラムであり、例えば、ＯＳに障害が発生している場合であっても動作可能なプログラムである。【００２６】
終了処理指示部３００は、利用者から情報処理装置１０が強制終了指示を受けた場合に、利用者からオフ指示を受けたと判断し、ＯＳ及びプロセスの終了処理を指示する。例えば、終了処理指示部３００は、プロセスを終了させる終了プログラムを、ＯＳによりタスク管理されるプロセスとして動作させることにより、ＯＳのプロセスを終了させ、ＯＳのプロセスを終了させた後、ＯＳを終了させる。より具体的には、終了処理指示部３００は、Ｉ／Ｏコントローラ１０８４により中央処理装置１０００に対してＳＣＩ割込を要求させることにより、ＯＳ上の終了プログラムの動作を開始させてもよい。ここで、終了プログラムとは、ＢＩＯＳプログラムからの指示を受けて起動するプログラムであってもよいし、予めＯＳ上に常駐してＢＩＯＳプログラムからの指示により動作を開始するプログラムであってもよい。【００２７】
割込設定部３１０は、情報処理装置１０が利用者から強制終了指示を受けると、Ｉ／Ｏコントローラ１０８４がＢＩＯＳプログラムに対してインターバルタイマにより定期的に割り込むように設定する。デバイス初期化部３２０は、ＢＩＯＳプログラムに対する割込要求をＩ／Ｏコントローラ１０８４から定期的に受けることにより動作する。そして、デバイス初期化部３２０は、終了プログラムにより不揮発性の記録媒体に書き込まれた情報をチェックすることにより、終了プログラムが正常に動作しているか否かを定期的に判断する。【００２８】
終了プログラムが正常に動作している場合に、デバイス初期化部３２０は、入出力デバイスの入出力待ちにより終了できないプロセスの入出力待ち状態を解除するべく、ＯＳにより管理される入出力デバイス、例えば通信インターフェイス１０３０又は入力デバイス１０３２を初期化する。そして、デバイス初期化部３２０は、ＢＩＯＳプログラムが正常に動作している旨を定期的に電源オフ設定部２１０に通知する。通知方法としては、デバイス初期化部３２０は、中央処理装置１０００から入出力デバイスに指示を送るインターフェイスを用いればよい。【００２９】
一方、終了状態設定部３３０は、デバイス初期化部３２０が、終了プログラムの動作に障害が発生したと判断した場合に、情報処理装置１０の入出力デバイスの電源をオフにしてよい終了状態に設定する。例えば、終了状態設定部３３０は、ハードディスクドライブ１０４０の磁気ヘッドを磁性面から退避する処理を行ってもよい。この場合、好ましくは、終了状態設定部３３０は、入出力デバイスを終了状態に設定した旨をＩ／Ｏコントローラ１０８４等に設けられた不揮発性の記録媒体に記憶させる。【００３０】
ＯＳは、ＯＳによるタスク管理の対象として、終了プログラムと、その他の複数のプロセスとを動作させる。そして、ＯＳは、ＯＳを終了する旨の指示を、ＳＣＩ割込要求によりＩ／Ｏコントローラ１０８４から受けると、ＯＳに予め備わっている終了処理機能を用いてＯＳを終了させる。【００３１】
終了プログラムは、中央処理装置１０００を、終了処理部３３５と、終了状況出力部３４０として機能させる。終了処理部３３５は、終了処理指示部３００から指示を受けると、ＯＳ上で動作するプロセスに対して、処理を終了させる終了指示を定期的に送信する。また、終了処理部３３５は、終了プログラムが正常に動作している旨を定期的にデバイス初期化部３２０に通知する。【００３２】
更に、終了処理部３３５は、終了プログラムが正常に動作している旨の情報を、Ｉ／Ｏコントローラ１０８４に設けられた不揮発性の記録媒体に定期的に記憶させることにより、デバイス初期化部３２０に通知してもよい。また、終了処理部３３５は、ＯＳを終了させるか否かを利用者に問い合わせる画面を表示してもよい。終了させない旨の返答を取得した場合には、ＯＳを通常動作させる。これにより、利用者は、ＯＳの終了前に情報処理装置１０を操作して重要なデータ等を退避する機会を得ることができる。更に、終了プログラムは、全てのプロセスを正常に終了させることができた場合には、その旨を当該不揮発性の記録媒体に記憶させてもよい。【００３３】
終了状況出力部３４０は、情報処理装置１０が起動した場合に、情報処理装置１０の電源が前回オフにされた時における終了状況をグラフィックコントローラ１０７５に対して出力し、表示装置１０８０に表示する。例えば、情報処理装置１０が起動すると、まず、終了状況出力部３４０は、終了状態設定部３３０又は終了プログラムにより記憶された不揮発性の記録媒体から、情報を読み出す。【００３４】
そして、終了状況出力部３４０は、読み出した情報に基づき、ＯＳを終了させることなく電源をオフにしたか、又は、ＯＳを終了させてから電源をオフにしたかを判断し、その旨を終了状況として表示する。これにより、利用者は、前回電源をオフにした時の状況を適切に把握して、その後の復旧処理に役立てることができる。これに代えて、情報処理装置１０の電源をオフにする時に、ＢＩＯＳプログラムが、終了状況を示すビープ音を発してもよい。【００３５】
図４は、エンベッデドコントローラ１０３５の動作フローの一例を示す。終了判断部２００は、電源スイッチ１０３８のボタンが利用者から基準時間以上押し続けられたか否かを判断する（Ｓ４００）。利用者から押された時間が基準時間未満である場合に（Ｓ４００：ＮＯ）、終了判断部２００は、オペレーティングシステムに対して通常の終了処理を行う旨の終了指示を送信する（Ｓ４０５）。【００３６】
一方、基準時間以上押し続けられた場合に（Ｓ４００：ＹＥＳ）、電源オフ設定部２１０は、ＢＩＯＳプログラムが動作している旨を検出する検出間隔を調整する（Ｓ４１０）。そして、終了判断部２００は、ＳＭＩ割込指示をＩ／Ｏコントローラ１０８４に対して送信することにより、Ｉ／Ｏコントローラ１０８４から中央処理装置１０００に対してＳＭＩ割込要求を送信させる（Ｓ４１５）。【００３７】
続いて、エンベッデドコントローラ１０３５は、Ｓ４１０において調節された検出間隔により、以下の処理を繰り返す。
まず、電源オフ設定部２１０は、前回の繰り返しから今までに、ＢＩＯＳプログラムから通知を受けたか否か判断する（Ｓ４２０）。即ち、これにより、電源オフ設定部２１０は、基準時間内にＢＩＯＳプログラムから通知を受けたか否か判断できる。基準時間内にＢＩＯＳプログラムから通知を受けていない場合に（Ｓ４２０：ＮＯ）、電源オフ設定部２１０は、Ｓ４２５に処理を移す。【００３８】
一方、基準時間内にＢＩＯＳプログラムから通知を受けた場合に（Ｓ４２０：ＹＥＳ）、エンベッデドコントローラ１０３５は、他の処理を所定時間行う（Ｓ４３０）。続いて、電源オフ設定部２１０は、情報処理装置１０の電源がオンか否か判断する（Ｓ４４０）。情報処理装置１０の電源がオンの場合に（Ｓ４４０：ＹＥＳ）、電源オフ設定部２１０は、ＳＭＩ割込み指示を送信してから基準待機時間が経過したか否か判断する（Ｓ４５０）。基準待機時間が経過していない場合に（Ｓ４５０：ＮＯ）、エンベッデドコントローラ１０３５は、Ｓ４２０に処理を戻す。【００３９】
一方、基準時間内にＢＩＯＳプログラムから通知を受けていない場合（Ｓ４２０：ＮＯ）、又は、基準待機時間が経過した場合に（Ｓ４５０：ＹＥＳ）、電源オフ設定部２１０は、Ｉ／Ｏコントローラ１０８４に指示して、情報処理装置１０の電源をオフにする（Ｓ４２５、Ｓ４６０）。情報処理装置１０の電源をオフにした場合、又は、情報処理装置１０の電源が既にオフである場合に（Ｓ４４０：ＮＯ）、エンベッデドコントローラ１０３５は、処理を終了する。【００４０】
これにより、電源オフ設定部２１０は、ＢＩＯＳプログラムが正常動作してＯＳを終了させた場合、又は、障害の発生によりＢＩＯＳプログラムの処理が基準待機時間内に完了しない場合に、情報処理装置１０の電源をオフにすることができる。【００４１】
図５は、中央処理装置１０００上で動作するＢＩＯＳプログラムの動作フローの一例を示す。終了処理指示部３００は、終了判断部２００からの指示に基づくＳＭＩ割込要求をＩ／Ｏコントローラ１０８４から受けると、Ｉ／Ｏコントローラ１０８４により中央処理装置１０００に対してＳＣＩ割込要求を送信させることにより、ＯＳ上の終了プログラムの動作を開始させる（Ｓ５００）。そして、割込設定部３１０は、Ｉ／Ｏコントローラ１０８４がＢＩＯＳプログラムに対してインターバルタイマにより定期的に割り込むように設定する（Ｓ５０５）。好ましくは、割込設定部３１０は、情報処理装置１０のシステムパフォーマンスに影響を与えない充分に低い頻度で割り込むように設定する。
ＢＩＯＳプログラムは、Ｉ／Ｏコントローラ１０８４からＳＭＩ割込要求を定期的に受けることにより、以下の処理を繰り返し行う。【００４２】
デバイス初期化部３２０は、ＳＭＩ割込要求を受けると、ＢＩＯＳプログラムが正常に動作している旨を、エンベッデドコントローラ１０３５の電源オフ設定部２１０に対して通知する（Ｓ５１０）。次に、デバイス初期化部３２０は、入出力デバイスの入出力待ちにより終了できないプロセスの入出力待ち状態を解除するべく、ＯＳにより管理される入出力デバイス、例えば通信インターフェイス１０３０又は入力デバイス１０３２を初期化する（Ｓ５２０）。より具体的には、デバイス初期化部３２０は、ある入出力デバイスが中央処理装置１０００に対して割込処理を要求している場合に、その入出力デバイスを初期化してもよい。これに代えて、デバイス初期化部３２０は、中央処理装置１０００に対して割込み処理を要求する全ての入出力デバイスを初期化してもよい。一例として、デバイス初期化部３２０は、キーボード又はマウスを初期化するべくキーボード等のキー入力バッファをクリアする処理を行ってもよい。【００４３】
そして、デバイス初期化部３２０は、終了プログラムにより不揮発性の記録媒体に書き込まれた情報をチェックすることにより、終了プログラムが正常に動作しているか否かを判断する（Ｓ５３０）。終了プログラムが正常に動作している場合に（Ｓ５３０：ＹＥＳ）、ＢＩＯＳプログラムは、Ｓ５１０に処理を戻す。一方、終了プログラムが正常に動作していない場合に（Ｓ５３０：ＮＯ）、終了状態設定部３３０は、情報処理装置１０の入出力デバイスの電源をオフにしてよい終了状態に設定する（Ｓ５４０）。例えば、終了状態設定部３３０は、ハードディスクドライブ１０４０の磁気ヘッドを磁性面から退避する処理を行ってもよい。【００４４】
ここで、終了プログラムが正常に動作していない場合とは、終了プログラムの動作に障害が発生したと場合と、終了プログラムの処理が正常に完了した場合とを含む。これにより、終了プログラムの処理が正常に完了した場合のみならず、終了プログラムの動作に障害が発生した場合であっても、情報処理装置１０をできる限り安全に終了させることができる。【００４５】
なお、この場合、ＢＩＯＳプログラムは、エンベッデドコントローラ１０３５に対する通知処理を停止する。この結果、エンベッデドコントローラ１０３５は、情報処理装置１０の電源をオフにする。即ち、電源オフ設定部２１０は、終了状態設定部３３０により入出力デバイスが終了状態に設定された場合に、情報処理装置１０の電源をオフにする。これにより、入出力デバイスの損傷、例えばハードディスクドライブの磁性面の損傷等を防ぐことができる。【００４６】
図６は、中央処理装置１０００上で動作する終了プログラムの動作フローの一例を示す。終了処理部３３５は、終了処理指示部３００からの指示に基づくＳＣＩ割込要求をＩ／Ｏコントローラ１０８４から受けると、ＯＳを終了させるか否かを利用者に問い合わせる画面を表示する（Ｓ６１０）。この際、好ましくは、終了処理部３３５は、「緊急終了処理を開始します」等のメッセージを利用者に表示することにより、ＯＳの強制終了処理が開始した旨を利用者に通知する。これにより、利用者は、電源スイッチ１０３８を押し続けなくてもよいことを知ることができる。更に好ましくは、終了処理部３３５は、利用者がＯＳを終了させない旨を指示した場合に、ＯＳを継続して正常に使用することはできない旨を利用者に通知する。更に、終了処理部３３５は、手動でプロセス及びＯＳを終了させた後にＯＳを再起動してからＯＳの使用を再開すべき旨を通知してもよい。
そして、終了プログラムは、以下の処理を繰り返す。【００４７】
まず、終了処理部３３５は、当該終了プログラムが正常に動作している旨をＢＩＯＳプログラムに通知する（Ｓ６２０）。そして、終了処理部３３５は、Ｓ６１０における利用者の問合せがタイムアウトしたか否か、即ちＳ６１０においてＯＳを終了させるか否かを利用者に問い合わせてから所定の時間が経過したか否か判断する（Ｓ６３０）。タイムアウトした場合に（Ｓ６３０：ＹＥＳ）、終了処理部３３５は、Ｓ６５５に処理を移す。【００４８】
一方、タイムアウトしていない場合に（Ｓ６３０：ＮＯ）、終了処理部３３５は、問合せに対して利用者から操作を受けたか否か判断する（Ｓ６４０）。操作を受けていない場合に（Ｓ６４０：ＮＯ）、終了処理部３３５は、Ｓ６２０に処理を戻す。操作を受けた場合に（Ｓ６４０：ＹＥＳ）、終了処理部３３５は、その操作がＯＳを終了する指示か否か判断する（Ｓ６５０）。【００４９】
ＯＳを終了する指示でない場合に（Ｓ６５０：ＮＯ）、終了処理部３３５は、終了プログラムが正常に動作している旨を、ＢＩＯＳプログラムに定期的に通知する（Ｓ６５２）。この結果、終了処理部３３５は、デバイス初期化部３２０により入出力デバイスが初期化され、かつＯＳが未だ終了していない状態で、ＯＳが動作を再開したのであれば、利用者にＯＳの使用を継続させることができる。これにより、利用者は、ＯＳを通常の状態で使用することはできないものの、必要に応じてアプリケーションプログラムのデータを正常に保存してから、ＯＳを手動で終了させることができる。【００５０】
タイムアウトした場合（Ｓ６３０：ＹＥＳ）、又はＯＳを終了する指示を受けた場合（Ｓ６５０：ＹＥＳ）に、終了処理部３３５は、ＯＳに終了指示を送信する（Ｓ６５５）。そして、終了処理部３３５は、終了プログラムが正常に動作している旨を、ＢＩＯＳプログラムに通知する（Ｓ６６０）。そして、終了処理部３３５は、ＯＳ上で動作するプロセスのリストをＯＳから取得し、これらのプロセスに終了指示を送信する（Ｓ６７０）。終了処理部３３５は、Ｓ６６０及びＳ６７０の処理を繰り返す。【００５１】
なお、本図の処理は、終了プログラムに代えてオペレーティングシステムの一つの機能として実現されてもよい。即ち、終了処理指示部３００は、プロセスをＯＳに要求して終了させた後、ＯＳを終了させてもよい。この場合、オペレーティングシステムに発生する障害の種類によっては適切に終了処理できない場合があるものの、終了プログラムをオペレーティングシステムに常駐等させる必要がなく、効率がよい。【００５２】
以上、本実施例によると、情報処理装置１０は、ＢＩＯＳプログラムにより、ＯＳのプロセスに対して処理を終了する終了指示を送信させると共に、入出力デバイスの入出力待ちにより終了できないプロセスの入出力待ち状態を解除するべく、入出力デバイスを初期化する。これにより、ハングアップしたＯＳを通常の状態に復帰させて正常に終了させることができる。【００５３】
また、情報処理装置１０は、電源スイッチがどのように操作されたのかに応じて、電源をオフする場合の処理を切り換えることができる。これにより、キーボード等による操作が不能となる障害が発生した場合であっても、電源をオフにする処理を利用者に選択させることができる。また、情報処理装置１０は、電源をオフする時の終了状況を保存しておき、次回の起動時に表示する。これにより、障害の原因を追求し易くすることができる。【００５４】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００５５】
【図１】図１は、情報処理装置１０のハードウェア構成の一例を示す。
【図２】図２は、エンベッデドコントローラ１０３５のブロック図の一例を示す。
【図３】図３は、中央処理装置１０００のブロック図の一例を示す。
【図４】図４は、エンベッデドコントローラ１０３５の動作フローの一例を示す。
【図５】図５は、中央処理装置１０００上で動作するＢＩＯＳプログラムの動作フローの一例を示す。
【図６】図６は、中央処理装置１０００上で動作する終了プログラムの動作フローの一例を示す。
【符号の説明】
【００５６】
１０  情報処理装置
２００  終了判断部
２１０  電源オフ設定部
３００  終了処理指示部
３１０  割込設定部
３２０  デバイス初期化部
３３０  終了状態設定部
３３５  終了処理部
３４０  終了状況出力部
１０００  中央処理装置
１０３２  入力デバイス
１０３５  エンベッデドコントローラ
１０３８  電源スイッチ
１０８４  Ｉ／Ｏコントローラ
【図１】
0004364241.tif 000002
【図２】
0004364241.tif 000003
【図３】
0004364241.tif 000004
【図４】
0004364241.tif 000005
【図５】
0004364241.tif 000006
【図６】
0004364241.tif 000007