(57)【要約】【課題】起動時にモジュール実行に異常が発生しても、オペレーティングシステムの起動を完了させることのできるオペレーティングシステム起動管理装置を提供する。【解決手段】実施形態のオペレーティングシステム起動管理装置は、モジュール実行制御部２が、モジュール実行管理テーブル１に記載された実行順序に従って、モジュールの実行の順序を制御し、モジュールタイマ３が、実行中のモジュールの実行時間を計測し、モジュール実行判定部４が、実行終了時の実実行時間が期待実行時間以下のときは実実行時間を実行管理テーブル１へ書き込み、実実行時間が期待実行時間を超えたときは、異常発生フラグを実行管理テーブル１へ書き込む。モジュール実行制御部２は、実行管理テーブル１に異常発生フラグが書き込まれたときは、現在実行中のモジュールの実行を中止し、次のモジュールの実行を開始する。【選択図】  図１
2012058879.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムを構成するモジュールの実行順序および各モジュールの期待実行時間が記載されたモジュール実行管理テーブルと、
前記モジュール実行管理テーブルに記載された前記実行順序に従って、前記モジュールの実行の順序を制御するモジュール実行制御手段と、
実行中のモジュールの実行時間を計測する実行時間計測手段と、
実行終了時の前記実実行時間が前記期待実行時間以下のときは、モジュール実行が正常に終了したと判定して前記実実行時間を前記実行管理テーブルへ書き込み、前記実実行時間が前記期待実行時間を超えても実行が終了しないときは、モジュール実行に異常が発生したと判定して異常発生フラグを前記実行管理テーブルへ書き込むモジュール実行判定手段と
を備え、
前記モジュール実行制御手段は、前記実行管理テーブルに前記異常発生フラグが書き込まれたときは、現在実行中のモジュールの実行を中止し、次のモジュールの実行を開始する
ことを特徴とするオペレーティングシステム起動管理装置。
【請求項２】
前記モジュール実行判定手段の判定が行われるごとにその時点のシステム情報を取得して保存するシステム情報取得手段をさらに備える
ことを特徴とする請求項１に記載のオペレーティングシステム起動管理装置。
【請求項３】
前記モジュール実行制御手段が、
前記実行管理テーブルに前記異常発生フラグが書き込まれたときは、その直前に正常終了と判定されたときに保存された前記システム情報に記載された状態にシステムを戻し、前記次のモジュールの実行を開始する
ことを特徴とする請求項２に記載のオペレーティングシステム起動管理装置。
【請求項４】
前記システム情報取得手段が、
前記異常発生フラグが書き込まれたモジュールの実行時に保存した前記システム情報を外部へ出力する
ことを特徴とする請求項２または３に記載のオペレーティングシステム起動管理装置。
【請求項５】
前記実行管理テーブルに期待起動時間および各モジュールの実行優先度がさらに記載されており、
前記モジュール実行制御手段は、
前記実行管理テーブルへ書き込まれた前記実実行時間の総計が前記期待起動時間を超えたときは、前記実実行時間の総計が前記期待起動時間以下になるまで、前記実行優先度の低いモジュールを実行対象から除外する
ことを特徴とする請求項１乃至４のいずれか１項に記載のオペレーティングシステム起動管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、オペレーティングシステム起動管理装置に関する。
【背景技術】
【０００２】
コンピュータのオペレーティングシステム（ＯＳ）を作成する手法の１つとしてモジュール化がある。モジュール化ＯＳでは、予め用意されたモジュールを適宜組み合わせることにより、個々のシステムに最適な、カスタマイズされたＯＳを作成することが可能である。
【０００３】
一方、このようなモジュール化ＯＳの問題点として、システム動作中にあるモジュールの機能に障害が発生すると、システム全体が機能停止してしまうことが挙げられる。この問題に対して、従来、関数実行中の障害を検出する障害検出工程を設けて、関数実行中に障害が発生した場合、障害検出後、障害を起こした機能を縮退させて、障害を起こした機能を利用する直前に戻って連続運転を行うようにした障害対処方法が提案されている。
【０００４】
しかし、上述のような障害対処方法は、ＯＳの起動後に有効となるものであり、ＯＳの起動時に異常が発生してＣＰＵがハングアップ等を起こした場合など、ＯＳが起動しない場合には、対処できないという問題があった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−１０９６３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
そこで、本発明の目的は、起動時にモジュール実行に異常が発生しても、オペレーティングシステムの起動を完了させることのできるオペレーティングシステム起動管理装置を提供することにある。
【課題を解決するための手段】
【０００７】
実施形態のオペレーティングシステム起動管理装置は、モジュール実行制御手段が、モジュール実行管理テーブルに記載された実行順序に従って、モジュールの実行の順序を制御し、実行時間計測手段が、実行中のモジュールの実行時間を計測し、モジュール実行判定手段が、実行終了時の実実行時間が期待実行時間以下のときは実実行時間を実行管理テーブルへ書き込み、実実行時間が期待実行時間を超えたときは、異常発生フラグを実行管理テーブルへ書き込む。モジュール実行制御手段は、実行管理テーブルに異常発生フラグが書き込まれたときは、現在実行中のモジュールの実行を中止し、次のモジュールの実行を開始する。
【図面の簡単な説明】
【０００８】
【図１】本発明の第１の実施形態に係るオペレーティングシステム起動管理装置の構成の例を示すブロック図。
【図２】モジュールの処理実行とエントリーポイントおよびリターンポイントとの関係を示す図。
【図３】本発明の第１の実施形態に係るオペレーティングシステム起動管理装置における実実行時間の書き込みの例を示す図。
【図４】本発明の第１の実施形態に係るオペレーティングシステム起動管理装置の処理の流れを示すフロー図。
【図５】本発明の第１の実施形態に係るオペレーティングシステム起動管理装置における期待実行時間設定方法の例を示すフロー図。
【図６】本発明の第２の実施形態に係るオペレーティングシステム起動管理装置の構成の例を示すブロック図。
【図７】本発明の第２の実施形態に係るオペレーティングシステム起動管理装置の処理の流れを示すフロー図。
【図８】本発明の第３の実施形態に係るオペレーティングシステム起動管理装置の構成の例を示すブロック図。
【図９】本発明の第３の実施形態に係るオペレーティングシステム起動管理装置の処理の流れを示すフロー図。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態について図面を参照して説明する。なお、図中、同一または相当部分には同一の符号を付して、その説明は繰り返さない。
【００１０】
（第１の実施形態）
図１は、本発明の第１の実施形態に係るオペレーティングシステム起動管理装置の構成の例を示すブロック図である。
【００１１】
本実施形態のオペレーティングシステム起動管理装置は、オペレーティングシステムを構成するモジュールの実行順序および各モジュールの期待実行時間が記載されたモジュール実行管理テーブル１と、モジュール実行管理テーブル１に記載された実行順序に従って、モジュールの実行の順序を制御するモジュール実行制御部２と、実行中のモジュールの実行時間を計測するモジュールタイマ（ＭＴ）３と、各モジュールの実行終了時に、モジュールタイマ３で計測された実実行時間がそれぞれの期待実行時間以下のときは、モジュール実行が正常に終了したと判定して計測された実実行時間をモジュール実行管理テーブル１へ書き込み、モジュールタイマ３で計測中の実行時間が期待実行時間を超えても実行が終了しないときは、モジュール実行に異常が発生したと判定して異常発生フラグをモジュール実行管理テーブル１へ書き込むモジュール実行判定部４と、を備える。
【００１２】
モジュール実行制御部２は、モジュール実行管理テーブル１に異常発生フラグが書き込まれたときは、現在実行中のモジュールの実行を中止し、次のモジュールの実行を開始する。
【００１３】
本実施形態では、モジュール実行管理テーブル１は、不揮発性メモリ１００に格納されており、電源が遮断されても、モジュール実行管理テーブル１に書き込まれたデータは保持される。
【００１４】
モジュール実行管理テーブル１には、オペレーティングシステムを構成するモジュールの実行順序に従って、それぞれのモジュール名が記載されている。すなわち、図１に示す例では、モジュール１、モジュール２、・・・の順に、モジュールｎまでのｎ個のモジュールが実行される。
【００１５】
ここで、各モジュールは、エントリーポイントと、リターンポイントとを必ず有しており、モジュールの処理は、エントリーポイントから実行が開始され、実行終了時にリターンポイントを必ず通過するものとする。
【００１６】
そこで、モジュール実行管理テーブル１には、モジュールの実行を制御する情報として、各モジュールのエントリーポイント（ｅｎｔｒｙ）ｅ１、ｅ２、・・・、ｅｎと、リターンポイント（ｒｅｔｕｒｎ）ｒ１、ｒ２、・・・、ｒｎが記載されている。
【００１７】
また、モジュール実行管理テーブル１には、各モジュールの期待実行時間および実実行時間の記載欄がある。期待実行時間記載欄には、各モジュールの処理時間への期待値（許容値）が記載され、実実行時間記載欄には、各モジュールの実際の実行時間が書き込まれる。なお、実実行時間記載欄には、初期値として‘Ｎ’が記載されている。
【００１８】
モジュール実行制御部２は、比較部２１およびモジュールカウンタ（ＭＣ）２２を備えている。
【００１９】
比較部２１は、モジュール実行管理テーブル１に記載されたエントリーポイントの値とＰＣ（プログラムカウンタ）１０００の値（ＰＣ値）とを比較する。比較部２１がＰＣ値と一致するエントリーポイントを検出すると、モジュール実行制御部２は、そのエントリーポイントを有するモジュールの実行を開始させる。また、モジュール実行制御部２は、モジュールタイマ３へ、モジュールの実行時間の計測開始を指示する。
【００２０】
モジュールカウンタ２２は、比較部２１が一致を検出するごとにカウント値を１ずつ進め、実行が開始されたモジュールの数をカウントする。モジュールカウンタ２２のカウント値が実行すべきモジュールの総数に達したときに、モジュール実行制御部２は、オペレーティングシステムの起動を完了させる。
【００２１】
図２に、モジュールの処理実行とエントリーポイントおよびリターンポイントとの関係を示す。すなわち、ＰＣ値がエントリーポイントｅ１と一致すると、モジュール１に記述された文の処理が実行され、その実行が終了すると、リターンポイントｒ１へＰＣ値が変化する。同様に、ＰＣ値がエントリーポイントｅ２と一致すると、モジュール２が実行され、ＰＣ値がエントリーポイントｅ３と一致すると、モジュール３が実行される。
【００２２】
モジュールタイマ３は、モジュール実行制御部２からの指示を受けて、モジュールの実行時間の計測を行う。
【００２３】
モジュール実行判定部４は、モジュールの実行中、モジュールタイマ３で計測中の実実行時間とモジュール実行管理テーブル１に記載された期待実行時間とを所定の時間間隔で比較し、モジュール実行が正常終了したか、モジュール実行に異常が発生したか、を判定する。
【００２４】
モジュール実行判定部４は、モジュールの実行終了時に、モジュールタイマ３で計測された実実行時間が期待実行時間以下のときは、モジュール実行が正常に終了したと判定し、モジュールタイマ３で計測された実実行時間をモジュール実行管理テーブル１へ書き込む。
【００２５】
一方、モジュールタイマ３で計測中の実行時間が期待実行時間を超えてもモジュールの実行が終了しないときは、モジュール実行判定部４は、モジュール実行に異常が発生したと判定、異常発生フラグをモジュール実行管理テーブル１へ書き込む。本実施形態では、異常発生フラグとして‘０’を用いる。
【００２６】
図３に、モジュール実行管理テーブル１への実実行時間の書き込みの例を示す。図３に示す例では、モジュール１、モジュール２、モジュール３は、期待実行時間以下でモジュールの実行が終了したので、実実行時間記載欄に、それぞれの実実行時間が書き込まれている。それに対して、モジュール４は、期待実行時間を超えてもモジュールの実行が終了しなかったので、実実行時間記載欄に、異常発生フラグである‘０’が書き込まれている。
【００２７】
次に、図４を用いて、本実施形態のオペレーティングシステム起動管理装置におけるＯＳ起動処理の動作について説明する。
【００２８】
図４は、本実施形態のオペレーティングシステム起動管理装置の処理の流れを示すフロー図である。
【００２９】
ＯＳの起動が開始されると、モジュール実行制御部２は、モジュールカウンタ（ＭＣ）２２の値ｍをｍ＝０に初期化し、モジュール実行管理テーブル１からモジュールの総数ｎを取得する（ステップＳ０１）。
【００３０】
その後、比較部２１がＰＣ値とモジュールｍのエントリーポイントｅｍの一致（ＰＣ＝ｅｍ）を検出するまで待つ（ステップＳ０２）。比較部２１がＰＣ＝ｅｍを検出すると（Ｙｅｓ）、モジュールカウンタ２２は、カウント値ｍを１増加させてｍ＝ｍ＋１とする。また、モジュールタイマ（ＭＴ）３は、モジュールの実実行時間ＴをＴ＝０に初期化する（ステップＳ０３）。
【００３１】
また、モジュール実行制御部２は、モジュール実行管理テーブル１からモジュールｍの期待実行時間ｔｍを取得し（ステップＳ０４）、さらに、モジュール実行管理テーブル１の実実行時間欄に、過去の実行履歴として‘０’が記載されているかどうかをチェックする（ステップＳ０５）。
【００３２】
もし、実実行時間欄に‘０’が記載されていれば（Ｙｅｓ）、モジュールｍの実行で異常が発生することが予想される。そこで、ここでは、モジュールｍの実行をスキップし、モジュール実行管理テーブル１に記載されているモジュールｍのリターンポイントｒｍをＰＣ１０００に代入して（ステップＳ０６）、ステップＳ０２へ戻る。
【００３３】
一方、実実行時間欄に‘０’が記載されていなければ（Ｎｏ）、モジュールタイマ（ＭＴ）３が、モジュール実行制御部２からの指示を受けて、モジュールｍの実実行時間Ｔの計測を開始する（ステップＳ０７）。
【００３４】
実実行時間Ｔの計測中、モジュール実行判定部４は、所定の時間間隔で、実実行時間Ｔが期待実行時間ｔｍ以下（Ｔ≦ｔｍ）であるかどうかをチェックする（ステップＳ０８）。
【００３５】
Ｔ≦ｔｍであれば（Ｙｅｓ）、続いて、モジュール処理が終了しているかどうかをチェックする（ステップＳ０９）。モジュール処理が終了していれば（Ｙｅｓ）、モジュール実行判定部４は、モジュールｍの実行が正常に終了したと判定して、計測された実実行時間Ｔをモジュール実行管理テーブル１のモジュールｍの実実行時間欄へ書き込む（ステップＳ１０）。
【００３６】
次に、モジュール実行制御部２は、モジュールカウンタ２２のカウント値ｍがモジュールの総数ｎに達した（ｍ＝ｎ）かどうかをチェックする（ステップＳ１１）。ｍ＝ｎであれば（Ｙｅｓ）、モジュール実行制御部２は、オペレーティングシステムの起動を完了させる。
【００３７】
これに対して、ｍ＝ｎでなければ（Ｎｏ）、モジュール実行制御部２は、ステップＳ０２へ戻って、次のモジュールの処理に備える。
【００３８】
一方、ステップＳ０８において、Ｔ≦ｔｍでなければ（Ｎｏ）、すなわち、実実行時間Ｔが期待実行時間ｔｍを超えていれば、モジュール実行判定部４は、モジュールｍの実行に異常が発生したと判定し、異常発生フラグである‘０’を、実行管理テーブル１のモジュールｍの実実行時間欄へ書き込む（ステップＳ１２）。
【００３９】
この場合、モジュール実行制御部２は、ハードウェアをリセットさせて（ステップＳ１３）、ＯＳを再起動させる。
【００４０】
このような本フローの処理によれば、モジュールの実実行時間が期待実行時間を超えると、モジュール実行に異常が発生したと判断して、ハードウェアをリセットさせて、ＯＳを再起動させる。これにより、ＣＰＵのハングアップなどの異常の発生を防止することができる。また、ＯＳの再起動後は、実行管理テーブル１の実実行時間欄を参照して、異常発生フラグの‘０’が書き込まれたモジュールの実行をスキップする。これにより、異常発生の履歴のあるモジュールが実行されないので、ＯＳの起動を正常に完了させることができる。
【００４１】
次に、本実施形態における期待実行時間の設定方法について説明する。本実施形態では、手動もしくは自動により、期待実行時間の設定を行う。自動で設定する場合は、過去の実行履歴（すなわち、実行管理テーブル１の実実行時間欄）を参照して、期待実行時間の設定を行う。この期待実行時間の設定方法について、図５のフロー図を参照しながら説明する。
【００４２】
図５のフローで、期待実行時間の設定の開始にあたっては、まず、手動で設定するか、自動で設定するかを決定する（ステップＳ２１）。手動で設定する場合は、実行管理テーブル１の期待実行時間欄へ期待実行時間を直接書き込み（ステップＳ２２）、期待実行時間の設定は完了する。
【００４３】
一方、自動で設定する場合は、許容時間（実実行時間に対して超過を許容できる時間）ｋと、初期値（モジュール実行に必要と見込まれる最大時間）ｔ０を設定する（ステップＳ２３）。
【００４４】
次に、実行管理テーブル１のモジュールｍの実実行時間欄に実実行時間Ｔｍが記載されているかどうかをチェックする（ステップＳ２４）。
【００４５】
実実行時間Ｔｍが記載されていれば（Ｙｅｓ）、モジュールｍの期待実行時間ｔｍを
ｔｍ＝Ｔｍ＋ｋ
に設定し、実行管理テーブル１のモジュールｍの期待実行時間欄に書き込み（ステップＳ２５）、期待実行時間の設定を完了する。
【００４６】
一方、実実行時間Ｔｍが記載されていなければ（Ｎｏ）、すなわち、モジュールｍの実実行時間欄に‘Ｎ’または‘０’が記載されているときは、期待実行時間ｔｍを
ｔｍ＝ｔ０
に設定して、実行管理テーブル１のモジュールｍの期待実行時間欄に書き込み（ステップＳ２６））、期待実行時間の設定を完了する。
【００４７】
このような本実施形態によれば、オペレーティングシステムの起動時に、モジュール実行に異常が発生したモジュールがある場合は、オペレーティングシステムを再起動させ、再起動時には異常の発生したモジュールの実行をスキップすることにより、オペレーティングシステムの起動を正常に完了させることができる。
【００４８】
（第２の実施形態）
第１の実施形態では、モジュール実行に異常が発生したモジュールがある場合は、オペレーティングシステムを再起動させたが、本実施形態では、オペレーティングシステムを再起動させる必要のないオペレーティングシステム起動管理装置の例を示す。
【００４９】
図６は、本発明の第１の実施形態に係るオペレーティングシステム起動管理装置の構成の例を示すブロック図である。本実施例のオペレーティングシステム起動管理装置は、図１に示した第１の実施形態のオペレーティングシステム起動管理装置に、システム情報取得部５を追加したものである。そこで、図１に示したブロックと同一あるいは同等の機能を有するブロックについては、図１と同一もしくは類似の符号を付し、ここでは、その詳細な説明を省略する。
【００５０】
システム情報取得部５は、モジュール実行制御部２がモジュール実行に関する判定を行うごとに、その時点のシステム情報を取得して保存する。システム情報としては、ＰＣ値、レジスタの値、ステータスレジスタの値、メインメモリの値などが、取得される。
【００５１】
システム情報取得部５は、モジュール実行が正常に終了する度に、システム情報の内容を更新する。したがって、システム情報取得部５には、モジュール実行が正常に終了したときの最新のシステム情報（正常終了システム情報）が保存されている。
【００５２】
一方、モジュール実行に異常が発生したときは、システム情報取得部５は、異常が発生したときのシステム情報（異常発生システム情報）を総て保存する。このとき、実行管理テーブル１には、モジュール実行判定部４により、該当のモジュールの実実行時間欄に、異常発生フラグである‘０’が書き込まれる。
【００５３】
また、システム情報取得部５は、異常発生システム情報を外部へ出力することができる。したがって、ＯＳ起動完了後、異常発生システム情報を解析して、モジュール実行に異常が発生した原因を探求することができる。
【００５４】
本実施形態では、実行管理テーブル１に異常発生フラグである‘０’が書き込まれると、モジュール実行制御部２Ａは、システム情報取得部５により保存された正常システム情報に記載された状態にシステムを復原し、次のモジュールの実行を開始する。
【００５５】
図７は、本実施形態のオペレーティングシステム起動管理装置の処理の流れを示すフロー図である。本実施形態のオペレーティングシステム起動管理装置の処理の基本的な流れは、図４のフローと同一であるので、図７では、図４のフローと同一の処理には図４と同一のステップ番号を付し、図４と同一フロー部分の記載は省略し、本実施形態に特有の処理に関わる部分のみ記載する。
【００５６】
モジュールｍの実実行時間Ｔの計測を開始（ステップＳ０７）した後、所定の時間間隔で、実実行時間Ｔが期待実行時間ｔｍ以下（Ｔ≦ｔｍ）であるかどうかをチェックし（ステップＳ０８）、Ｔ≦ｔｍであれば（Ｙｅｓ）、続いて、モジュール処理が終了しているかどうかをチェックする（ステップＳ０９）。モジュール処理が終了していれば（Ｙｅｓ）、モジュール実行判定部４は、計測された実実行時間Ｔをモジュール実行管理テーブル１のモジュールｍの実実行時間欄へ書き込む（ステップＳ１０）。
【００５７】
このとき、本実施形態では、システム情報取得部５が、正常終了システム情報を取得（最新情報へ更新）して保存し（ステップＳ３１）、図４のフローのステップＳ０２へ戻る。
【００５８】
一方、ステップＳ０８において、Ｔ≦ｔｍでなければ（Ｎｏ）、モジュール実行判定部４は、異常発生フラグである‘０’を、実行管理テーブル１のモジュールｍの実実行時間欄へ書き込む（ステップＳ１２）。
【００５９】
このとき、本実施形態では、システム情報取得部５が、異常発生システム情報を取得して保存する（ステップＳ３２）。
【００６０】
また、本実施形態では、モジュール実行制御部２Ａが、システム情報取得部５により保存された正常システム情報に記載された状態にシステムを復原し（ステップＳ３３）、図４のフローのステップＳ０２へ戻る。
【００６１】
ステップＳ０２へ戻ることにより、本実施形態では、最後にモジュール実行が正常終了したときのシステムの状態に戻って、次のモジュールの実行が開始される。
【００６２】
このような本実施形態によれば、モジュール実行に異常が発生したモジュールがある場合は、そのモジュールの実行をスキップし、それ以前にモジュール実行が正常終了したときの状態にシステムを復原して、次のモジュールの実行を行うことができる。これにより、オペレーティングシステムを再起動させることなく、オペレーティングシステムの起動を正常に完了させることができる。また、オペレーティングシステムの起動完了後、モジュール実行に異常が発生したときのシステム情報を読み出すことができるので、異常発生の原因を探求することができる。
【００６３】
（第３の実施形態）
本実施形態では、予め設定した起動時間内にオペレーティングシステムを起動させることのできるオペレーティングシステム起動管理装置の例を示す。
【００６４】
図８は、本発明の第３の実施形態に係るオペレーティングシステム起動管理装置の構成の例を示すブロック図である。本実施例のオペレーティングシステム起動管理装置は、図６に示した第２の実施形態のオペレーティングシステム起動管理装置に対して、モジュール実行管理テーブル１をモジュール実行管理テーブル１Ａに変更し、モジュール実行制御部２Ａをモジュール実行制御部２Ｂに変更したものである。なお、同様の変更を第１の実施形態のオペレーティングシステム起動管理装置に対して施してもよい。
【００６５】
本実施形態の実行管理テーブル１Ａには、実行管理テーブル１の各項目に追加して、ＯＳ起動に対する期待起動時間ａｔ、および各モジュールの実行優先度ｐ１〜ｐｎが、記載されている。
【００６６】
モジュール実行制御部２Ｂは、実行管理テーブル１Ａへ書き込まれた実実行時間の総計が期待起動時間ａｔを超えたときは、実行管理テーブル１Ａに記載された実行優先度を参照して、実実行時間の総計が期待起動時間ａｔ以下になるまで、実行優先度の低いモジュールを実行対象から除外する。
【００６７】
図９は、本実施形態のオペレーティングシステム起動管理装置の処理の流れを示すフロー図である。
【００６８】
ＯＳ起動開始にあたっては、まず、期待起動時間ａｔを設定し、各モジュールの実行優先度ｐ１〜ｐｎとともに実行管理テーブル１Ａに書き込む（ステップＳ４１）。
【００６９】
続いて、図７（または図３）に記載のフローを、ＯＳ起動完了直前まで実行し（ステップＳ４２）、実行管理テーブル１Ａに書き込まれた各モジュールの実実行時間の総計ＡＴを算出する（ステップＳ４３）。
【００７０】
次に、各モジュールの実実行時間の総計ＡＴが期待起動時間ａｔ以下（ＡＴ≦ａｔ）であるかどうかをチェックする（ステップＳ４４）。このとき、ＡＴ≦ａｔであれば（Ｙｅｓ）、期待起動時間ＡＴ以内に各モジュールの実行が正常終了しているので、ＯＳ起動を完了する。
【００７１】
一方、各モジュールの実実行時間の総計ＡＴが期待起動時間ａｔを超えていれば（Ｎｏ）、実実行時間ＴｍがＴｍ＞０であって、実行優先度ｐｍが一番低いモジュールｍを抽出する。このとき、優先度が同じ値に設定されているモジュールが複数あるときは、実実行時間が最長のモジュールを抽出する（ステップＳ４５）。
【００７２】
次に、抽出されたモジュールｍの実実行時間Ｔｍを、Ｔｍ＝０に書き換える（ステップＳ４６）。この書き換えにより、以降のＯＳ起動処理では、モジュールｍの実行はスキップされる。
【００７３】
最後に、ハードウェアのリセットを行い（ステップＳ４７）、ステップＳ４２へ戻る。このフィードバックにより、ＡＴ≦ａｔとなるまで、実行優先度の低いモジュールから順次、実行対象から除外される。
【００７４】
その結果、最終的には、オペレーティングシステムの起動時間を期待起動時間以下とすることができる。
【００７５】
このような本実施形態によれば、各モジュールの実実行時間の総計が期待起動時間を超えるときは、実行優先度の低いモジュールを実行対象から順次除外することができる。これにより、実行優先度の高いモジュールで構成されたオペレーティングシステムを、予め設定された起動時間内に、起動させることができる。
【００７６】
以上説明した少なくとも１つの実施形態のオペレーティングシステム起動管理装置によれば、起動時にモジュール実行に異常が発生しても、オペレーティングシステムの起動を完了させることができる。
【００７７】
また、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７８】
１、１Ａ  モジュール実行管理テーブル
２、２Ａ、２Ｂ  モジュール実行制御部
３  モジュールタイマ
４  モジュール実行判定部
５  システム情報取得部
２１  比較部
２２  モジュールカウンタ
【図１】
2012058879.tif 000003
【図２】
2012058879.tif 000004
【図３】
2012058879.tif 000005
【図４】
2012058879.tif 000006
【図５】
2012058879.tif 000007
【図６】
2012058879.tif 000008
【図７】
2012058879.tif 000009
【図８】
2012058879.tif 000010
【図９】
2012058879.tif 000011