(57)【特許請求の範囲】
【請求項１】
オペレーションシステムを含む複数のプログラムが搭載された情報処理装置において、
前記複数のプログラムのうち、起動中の前記プログラムに対して、当該プログラムの起動を終了させる終了要求を行う終了要求指示手段と、
前記終了要求指示手段によって前記終了要求を受けた前記プログラムに対し、順次、起動を終了処理させる実行手段とを備え、
前記終了要求指示手段は、
入力される電源の状態によって決定される第１の終了指示と、当該情報処理装置の内部に記憶されている第２の終了指示との優先順位に基づいて、前記第１の終了指示、或いは前記第２の終了指示の何れか一方の終了指示により、前記終了要求を行うことを判別する判別手段と、
前記第２の終了指示は、前記電源の状態が入力される度に、入力される直前の前記第１の終了指示が上書きされて当該情報処理装置の内部に記憶され、前記優先順位が更新される更新手段と、
を更に備えることを特徴とする情報処理装置。
【請求項２】
前記実行手段は、
前記判別手段の判別結果に応じて前記各プログラムに該当する相互依存性が関係付けられており、当該相互依存性に基づいて前記各プログラムに対して前記終了処理を実施する
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記終了要求は、
前記相互依存性に基づいて、前記ローバッテリのために行われたとき、前記メインスイッチが押下されたために行われたとき、前記停電のために行われたときの順に、前記終了処理を完了するまでの時間を長くする
ことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記相互依存性は、
依存性の高い前記プログラムに対してグルーピングを行い、前記終了処理を行うことを特徴とする請求項２記載の情報処理装置。
【請求項５】
前記判別手段は、
前記第１の終了指示及び前記第２の終了指示が、当該情報処理装置本体への電力供給源がローバッテリにより行われたのか、又は、当該情報処理装置本体のメインスイッチが押下されたことにより行われたか、又は、停電のために行われたのか、又は、復電のために行われたのか、或いは、通常の終了であるかにより判別する
ことを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記実行手段によって前記各プログラムの前記終了処理を開始してから当該情報処理装置本体のメインスイッチがオフする前に復電したときに、実行している前記プログラムの前記終了処理を停止する停止手段を更に備え、
前記プログラムに対する前記終了要求が停電、或いは当該情報処理装置本体への電力供給源がローバッテリのために行われた場合に、前記停止手段によって前記プログラムの当該終了処理を停止することを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記停止手段は、既に終了したプログラムを再起動する手段を含むことを特徴とする請求項６記載の情報処理装置。
【請求項８】
電力の供給状況を確認する確認手段を更に備え、
前記情報処理装置に電源が投入された際、前記確認手段は当該情報処理装置を駆動する前記電力の供給状況を確認し、
当該情報処理装置が搭載する前記複数のプログラムを起動する前記電力を有している場合には、前記複数のプログラムを起動し、
当該情報処理装置が搭載する前記複数のプログラムを起動する前記電力を有していない場合には、前記供給状況に基づいて所定のプログラムの起動処理を中止する
ことを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置に関し、特に、パーソナルコンピュータやサーバ等の情報処理装置に関する。
【０００２】
【従来の技術】
従来、パソコンやサーバ等の情報処理装置は、本体の起動時、又は終了時には、複数の常駐プロセスやコマンドを含むプログラムを決められた順序で起動、又は終了している。
【０００３】
具体的には、終了時の場合には、１つ目のプログラムに対して終了処理を実行して、そのプログラムが実際に終了したら、２つ目のプログラムに対して終了処理を実行する、とのように、前に終了処理を行ったプログラムが実際に終了した後に次のプログラムに対して終了処理を実行している。
【０００４】
また、特開２０００−１９４５７２号公報には、各ジョブについて停電発生時の打切り処理の優先度および打切り時の動作状況情報の認識を可能とし、自動ジョブ運用の効率化を図ることを課題とした自動ジョブ運用方式が記載されている。
【０００５】
上記公報に記載されている発明は、システム運用中に、各ジョブに対する終了優先度，ジョブ名，および再実行要否情報をジョブ情報表に登録するジョブ情報登録手段と、停電発生時におけるＵＰＳからの指示によるシステムシャットダウン処理の際に、前記ジョブ情報表を検索して実行ジョブ群の中から終了優先度の高い順序で各実行ジョブを検出するジョブ終了優先度検索手段と、停電発生時に、前記ジョブ終了優先度検索手段によって検出された実行ジョブであって前記ジョブ情報表内の再実行要否情報に「再実行が必要である旨を示す情報」が設定されているジョブの打切り時点における動作状況情報をジョブ動作状況ファイルに登録した上で、各実行ジョブの打切り処理を行うジョブ動作状況参照登録手段と、システム再起動時に、前記ジョブ情報表内の各ジョブに対する再実行要否情報を参照して全ての再実行ジョブを順次検出する再実行ジョブ検索手段と、システム再起動時に、前記再実行ジョブ検索手段によって検出された再実行ジョブに対する動作状況情報を前記ジョブ動作状況ファイルから取得して停電発生時の打切り時点からの当該再実行ジョブの後続処理を起動する再実行ジョブ実行手段とを有するものである。
【０００６】
【発明が解決しようとする課題】
しかし、従来の技術は、情報処理装置を緊急に終了させる必要がある場合にまで、通常の終了処理のままで終了処理を行うと、終了処理中に突然電源が落ちて、システムを破壊してしまう可能性がある。
【０００７】
例えば、パソコンが無停電電源装置（uninterruptable power supply：ＵＰＳ）から電源供給を受けている状態において、停電が発生し、ＵＰＳがローバッテリ状態になり、突然電源供給が断たれれば、プログラムが強制終了されてしまう可能性がある。
【０００８】
そこで、本発明は、起動中の各プログラムに対して通常の終了要求が行われたかどうかによって、プログラムの終了手順を変更できるようにすることを課題とする。
【０００９】
【課題を解決するための手段】
上記課題を解決するために、本発明は、オペレーションシステムを含む複数のプログラムが搭載された情報処理装置において、前記複数のプログラムのうち、起動中の前記プログラムに対して、当該プログラムの起動を終了させる終了要求を行う終了要求指示手段と、前記終了要求指示手段によって前記終了要求を受けた前記プログラムに対し、順次、起動を終了処理させる実行手段とを備え、前記終了要求指示手段は、入力される電源の状態によって決定される第１の終了指示と、当該情報処理装置の内部に記憶されている第２の終了指示との優先順位に基づいて、前記第１の終了指示、或いは前記第２の終了指示の何れか一方の終了指示により、前記終了要求を行うことを判別する判別手段と、前記第２の終了指示は、前記電源の状態が入力される度に、入力される直前の前記第１の終了指示が上書きされて当該情報処理装置の内部に記憶され、前記優先順位が更新される更新手段と、を更に備えることを特徴とする。
【００１０】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照して説明する。
【００１１】
（実施形態１）
［構成の説明］
図１は、本発明の実施形態１の情報処理装置の一部の模式的な構成を示すブロック図である。
【００１２】
図１には、情報処理装置に搭載されているＯＳを含む複数のプログラムの起動／終了を制御するための各種情報を記憶しておくメモリ１と、メモリ１に記憶されている情報に基づいてプログラムの起動／終了の順序等を指示する指示部２と、指示部２の指示に従って各プログラムの起動処理又は終了処理を実行する実行部３と、指示部２に対してユーザが情報処理装置本体の電源のオン／オフの指示を入力する入力部４と、図示しないＵＰＳから送られてくる停電又はローバッテリの信号を指示部２へ送るＵＰＳドライバ５とを示している。
【００１３】
メモリ１は、以下説明する旧指示メモリ１１と、新指示メモリ１２と、優先情報等メモリ１３と、実行手順メモリ１４とを含むファイルのようなものである。
【００１４】
新指示メモリ１２は、記憶部２１に送られてくる「起動」、「通常の終了」、「停電による終了」、「ローバッテリによる終了」、「復電」、「ユーザによるメイン電源の押下」のいずれか新しい指示が記憶されるものである。
【００１５】
旧指示メモリ１１は、記憶部２１によって、新指示メモリ１２に記憶されている指示が更新される際に、それまで新指示メモリ１２に記憶されていた指示が記憶されるものである。
【００１６】
なお、後述するように、一旦、新指示メモリ１２に記憶された指示が、旧指示メモリ１１に書き直されることもある。
【００１７】
優先情報等メモリ１３は、優先指示判別部２２が旧指示メモリ１１，新指示メモリ１２のいずれに記憶されている指示を優先して実行するかを判別するための情報と、旧指示メモリ１１に記憶されている指示を優先して実行する場合にどのような手順で処理を実行するかを実行処理判別部２３が判別するための情報とを記憶しておくものである。
【００１８】
実行手順メモリ１４は、実行処理判別部２３の判別結果に応じて起動／終了手段３１へ送る情報を記憶しておくものである。具体的な手順の内容については図２を用いて後述する。
【００１９】
指示部２は、以下説明する記憶部２１と、優先指示判別部２２と、実行処理判別部２３と、読出部２４とを含むプログラムである。
【００２０】
記憶部２１は、本体のメインスイッチから押下されたことを示す指示が入力されたときや、ＵＰＳからローバッテリ、停電又は復電を示す指示が入力されたときに、新指示メモリ１２に記憶してある指示を更新と共に、それまで新指示メモリ１２に記憶していた指示を旧指示メモリ１１に記憶するものである。
【００２１】
優先指示判別部２２は、記憶部２１から送られる旧指示メモリ１１への指示の記憶を完了したことを示す信号をトリガとして旧指示メモリ１１，新指示メモリ１２に記憶されている各指示を読み出して、それらの指示に基づく優先情報等メモリ１３に記憶してある情報を参照し、旧指示メモリ１１，新指示メモリ１２のいずれに記憶されている指示を優先して実行するかを判別するものである。
【００２２】
実行処理判別部２３は、優先指示判別部２２の判別の結果、新指示メモリ１２に記憶されている指示を優先して実行する場合に、具体的にどのような手順で処理を実行するかを判別するものである。
【００２３】
読出部２４は、実行処理判別部２３の判別結果に従って、実行手順メモリ１４に記憶してある情報を読み出し、実行部３へ送るものである。
【００２４】
実行部３は、以下説明する複数の起動／終了処理手段３１を含むプログラムである。
【００２５】
起動／終了手段３１は、例えば情報処理装置本体に搭載されているプログラム毎に用意されており、読出部２４から送られてきた情報に従って駆動されるものである。
【００２６】
図２は、図１に示している優先情報等メモリ１３に記憶してある情報の概念図である。
【００２７】
図２は、旧指示メモリ１１，新指示メモリ１２に「ローバッテリ」による終了、ユーザによる「メインスイッチＯＦＦ」、「停電」による終了、「復電」、「通常の終了」、「起動」という指示が格納されたときに、旧指示メモリ１１と新指示メモリ１２とに記憶されている各指示のいずれを優先して実行するかということと、実際にどのような処理を実行するかを示すものである。
【００２８】
なお、図２に示す「○」は新指示メモリ１２に記憶されている指示の方を旧指示メモリ１１に記憶されている指示に優先して実行し、「×」は旧指示メモリ１１に記憶されている指示の方を新指示メモリ１２に記憶されている指示に優先して実行することを示している。また、「△」について実施形態２で説明するように、ＵＰＳのバッテリ残量に応じて旧指示メモリ１１と新指示メモリ１２とに記憶されている各指示のいずれかを優先して実行することを示している。
【００２９】
具体的には、例えば旧指示メモリ１１に「停電」による終了という指示が格納され、新指示メモリ１２に「ローバッテリ」による終了という指示が格納されたときには、新指示メモリ１２に記憶されている指示を旧指示メモリ１１に記憶されている指示に優先して実行する。そのとき、実際に実行する処理は後述する「Ｐ１」という処理である。
【００３０】
また、例えば旧指示メモリ１１に「ローバッテリ」による終了という指示が格納され、新指示メモリ１２に「停電」による終了という指示が格納されたときには、旧指示メモリ１１に記憶されている指示を、新指示メモリ１２に記憶されている指示に優先して実行する。
【００３１】
ここで、「Ｐ１」〜「Ｐ３」に示す処理は、例えば以下のような内容としている。すなわち、「Ｐ１」は「Ｐ１」〜「Ｐ３」の中で、最も早くプログラムの終了処理を完了させる必要があるもので、起動している全てのプログラムのうち、常駐プログラムと非常駐プログラムを一括終了又はそれに近い態様で終了する（例えばこれらの各プログラムに対して順次５秒程度ごとに終了する）。それからＯＳを終了する内容としている。
【００３２】
「Ｐ２」は「Ｐ１」に続いてプログラムの終了処理を早く完了させる必要があるもので、例えば常駐プログラムのうち通信系のプログラムのようなプログラムや、複数のプログラム相互で依存性が高いものに対しては、先に終了命令を出したプログラムの終了後に次のプログラムに終了命令を出すことによって終了し、常駐プログラムのうちスケジュールサービスや業務サービスやプリンタなどの周辺装置の監視サービスなどに係るプログラムに対しては一括終了又はそれに近い態様で終了する。それからＯＳを終了する内容としている。
【００３３】
「Ｐ３」は「Ｐ２」に続いてプログラムの終了処理を早く完了させる必要があるもので、起動しているプログラムの数にもよるが、常駐プログラムについては先に終了命令を出したプログラムの終了後に次のプログラムに終了命令を出すことによって終了し、それ以外のプログラムについては一括終了又はそれに近い態様で終了する。それからＯＳを終了する内容としている。
【００３４】
なお、通常の終了命令が出されたときには、起動しているプログラムの全てに対して、先に終了命令を出したプログラムの終了後に次のプログラムに終了命令を出すことによって終了する。それからＯＳを終了するようにしている。
【００３５】
また、本実施形態ではプログラム相互で依存性が高いものに対してはグルーピングして、それらを所要の手順で終了するようにしている。具体的には、例えばインターネットに接続するための接続用プログラムと、インターネットを通じてメールの送受信を行うための通信用プログラムとは相互に依存性が高いので同じグループに配し、通信用プログラムの終了が完了してから接続用プログラムを終了するようにしている。
【００３６】
これは、実際にメールを送信しているときに「停電」等が発生しても、メールがきちんと送信できるするようにするために、メールの送信完了を待って通信用プログラムの終了命令を発し、通信用プログラムの終了処理が完了してから、接続用プログラムに対して終了命令を出せるようにするものである。
【００３７】
図３は、プログラム相互で依存性が高いものに対するグルーピングの説明図である。図３に示すように、プログラムを常駐プログラムと、非常駐プログラムと、ＯＳとに分類している。
【００３８】
そして、常駐プログラムを、通信系サービスと、スケジュールサービスと、周辺装置の監視サービスとに大別している。
【００３９】
［動作の説明］
図４は、図１の動作を示すフローチャートである。まず、指示部２に対して、入力部４から起動又は終了の指示が入力されたり、ＵＰＳドライバ５から「停電」等の指示が入力されると、記憶部２１では、その指示を新指示メモリ１２に記憶すると共に、それまで新指示メモリ１２に記憶されていた指示を旧指示メモリ１１に移す（ステップＳ１）。
【００４０】
旧指示メモリ１１への指示の記憶を完了すると、そのことを示す信号を優先指示判別部２２へ出力する（ステップＳ２）。
【００４１】
優先指示判別部２２は、記憶部２１からの信号をトリガとして旧指示メモリ１１，新指示メモリ１２に記憶されている各指示を読み出して、それらの指示に基づく優先情報等メモリ１３に記憶してある情報を参照し、旧指示メモリ１１に記憶されている指示を優先して実行するかどうかを判別する。判別結果は実行処理判別部２３に送る（ステップＳ３）。
【００４２】
判別の結果、新指示メモリ１２に記憶されている指示を優先して実行する場合には、実行処理判別部２３を起動する（ステップＳ４）。
一方、判別の結果、旧指示メモリ１１に記憶されている指示を優先して実行する場合には、記憶部２１に対して、旧指示メモリ１１に記憶した指示を新指示メモリ１２に書き直すように指示して、図２に示す処理を終了する（ステップＳ５）。
【００４３】
実行処理判別部２３は、優先情報等メモリ１３を参照して、具体的に「Ｐ１」〜「Ｐ３」のいずれの処理を実行するかどうかを判別し、判別結果を読出部２４に送る（ステップＳ６）。
【００４４】
読出部２４は、実行処理判別部２３の判別結果に従って、実行手順メモリ１４に記憶してある情報を読み出し、実行部３へ送る（ステップＳ７）。
【００４５】
実行部３は、読出部２４から送られてきた情報に従って所要の起動／終了手段３１を駆動することによって、決められた手順で処理を実行する（ステップＳ８）。
【００４６】
つぎに具体例として、情報処理装置の起動中に停電が発生した場合の動作について説明する。
【００４７】
まず、ＵＰＳドライバ５から指示部２に対して、「停電」の指示が入力され、記憶部２１では、その指示を新指示メモリ１２に記憶すると共に、それまで新指示メモリ１２に記憶されていた「起動」の指示を旧指示メモリ１１に移す（ステップＳ１）。
【００４８】
旧指示メモリ１１への指示の記憶を完了すると、そのことを示す信号を優先指示判別部２２へ出力する（ステップＳ２）。
【００４９】
優先指示判別部２２は、記憶部２１からの信号をトリガとして旧指示メモリ１１，新指示メモリ１２に記憶されている「起動」、「停電」という各指示を読み出して、それらの指示に基づく優先情報等メモリ１３に記憶してある情報を参照する。
【００５０】
ここで、図３に示すように、旧指示メモリ１１，新指示メモリ１２に「起動」、「停電」という各指示が記憶されている場合には、新指示メモリ１２に記憶されている「停電」という指示を優先して実行すると判別し、判別結果を実行処理判別部２３に送る（ステップＳ３）。
【００５１】
また、新指示メモリ１２に記憶されている指示を優先して実行するので、実行処理判別部２３が起動される（ステップＳ４）。
実行処理判別部２３は、優先情報等メモリ１３を参照して、具体的に「Ｐ３」の処理を実行すると判別し、判別結果を読出部２４に送る（ステップＳ６）。
【００５２】
読出部２４は、実行処理判別部２３の判別結果に従って、実行手順メモリ１４に記憶してある情報を読み出して実行部３へ送る（ステップＳ７）。
【００５３】
ここで、実行手順メモリ１４に記憶してある「Ｐ３」に関する情報は、例えば『常駐プログラムについては、先に終了命令を出したプログラムの終了後に次のプログラムに終了命令を出すことによって終了し、それ以外のプログラムについては一括終了又はそれに近い態様で終了する。それからＯＳを終了する』という内容であり、実行部３では、常駐プログラムに係る１つ目の起動／終了手段３１が起動され、当該プログラムが実際に終了すると、２つ目の起動／終了手段３１が起動される。
【００５４】
こうして、全ての常駐プログラムに係る起動／終了手段３１が起動されることによって、各常駐プログラムが終了すると、ＯＳに係る起動／終了手段３１が起動され、最終的に全てのプログラムが終了される。
【００５５】
（実施形態２）
［構成の説明］
図５は、本発明の実施形態２の情報処理装置の一部の模式的な構成を示すブロック図である。本実施形態では、「停電」や「ローバッテリ」によって、プログラムを終了しているとき又は終了した後に、ユーザによって「起動」の指示がされた場合に、「停電」等が復旧しているかどうかを確認して、復旧していない場合には、起動処理を中止するようにしている。
【００５６】
図５に示す確認部２５は、まだ停電が続いているかどうかの確認や、現在のバッテリ残量を確認するものである。なお、図５において、図１に示した部分と同様の部分には、同一符号を付している。
【００５７】
［動作の説明］
図６は、ユーザによって「起動」の指示がされた場合の図５の動作を示すフローチャートである。
【００５８】
まず、入力部４から「起動」の指示が入力されると、ＯＳが起動され、指示部２では、確認部２５によって新指示メモリ１２を参照する（ステップＳ１１）。
【００５９】
そして、新指示メモリ１２に記憶されている指示が「通常の終了」であるかどうかの判別がされる（ステップＳ１２）。
【００６０】
判別の結果、新指示メモリ１２に記憶されている指示が「通常の終了」である場合には、常駐プログラムを起動する（ステップＳ１４）。
【００６１】
一方、判別の結果、新指示メモリ１２に記憶されている指示が「通常の終了」でない場合には、確認部２５はＵＰＳドライバ５側にバッテリ残量を確認しにいく（ステップＳ１３）。
【００６２】
こうして、常駐プログラム等を起動できるくらいのバッテリ残量があるかどうか、すなわち常駐プログラム等の復旧（再起動）が可能であるかどうかを判別する（ステップＳ１５）。
【００６３】
判別の結果、常駐プログラム等の復旧が可能である場合には、常駐プログラムを起動する（ステップＳ１４）。
【００６４】
一方、判別の結果、常駐プログラム等の復旧が可能でない場合には、常駐プログラム等の起動処理を中止する（ステップＳ１６）。
【００６５】
このように、本実施形態では、復電したり、バッテリ残量がプログラムを復旧するのに十分になっていなければ、常駐プログラム等の起動を中止して、常駐プログラムを再度強制的に終了することがないようにしている。
【００６６】
【発明の効果】
以上、説明したように、本発明によれば、起動中の各プログラムに対して優先順位に基づいた終了指示によって終了要求を行うことができると共に、電源の状態が入力される度に、終了要求を行う優先順位を更新することができるので、各プログラムを終了させる制御を的確に行うことができ、終了すべきプログラムや情報処理装置に関するデータを確実に保護することができる。
【図面の簡単な説明】
【図１】本発明の実施形態１の情報処理装置の一部の模式的な構成を示すブロック図である。
【図２】図１に示している優先情報等メモリ１３に記憶してある情報の概念図である。
【図３】プログラム相互で依存性が高いものに対するグルーピングの説明図である。
【図４】図１の動作を示すフローチャートである。
【図５】本発明の実施形態２の情報処理装置の一部の模式的な構成を示すブロック図である。
【図６】ユーザによって「起動」の指示がされた場合の図５の動作を示すフローチャートである。
【符号の説明】
１  メモリ
２  指示部
３  実行部
４  入力部
５  ＵＰＳドライバ
１１  旧指示メモリ
１２  新指示メモリ
１３  優先情報等メモリ
１４  実行手順メモリ
２１  記憶部
２２  優先指示判別部
２３  実行処理判別部
２４  読出部
２５  確認部
３１  複数の起動／終了処理手段
【図１】
0003965678.tif 000002
【図２】
0003965678.tif 000003
【図３】
0003965678.tif 000004
【図４】
0003965678.tif 000005
【図５】
0003965678.tif 000006
【図６】
0003965678.tif 000007