(57)【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサに接続され、前記プロセッサが実行するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を記憶する記憶媒体と、
前記プロセッサに接続され、ＯＳ再起動時に再初期化される１つ以上のデバイスと、
前記プロセッサによりシステム起動時に実行され、前記デバイスの初期化を行うとともに、システム起動後の通常状態にＯＳ処理を行う運用ＯＳと、
前記プロセッサによりシステム起動時に実行され、前記プロセッサに接続されている前記デバイスを検出し、検出したデバイスの初期化処理を行って待機するとともに、前記運用ＯＳに異常が発生し再起動が必要になった場合には、待機前の前記初期化処理時に保存した前記デバイスの再初期化データを用いて前記デバイスの再初期化処理を行う待機ＯＳと、
を備えることを特徴とする情報処理装置。
【請求項２】
前記プロセッサは、前記待機ＯＳを用いて前記デバイスの初期化処理を行った後に、前記運用ＯＳによる前記デバイスの初期化処理を実行することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記プロセッサに接続されたＯＳイメージを記憶する不揮発性記憶媒体を備え、
前記不揮発性記憶媒体に前記運用ＯＳと前記待機ＯＳの両方に共通の共通ＯＳイメージを記憶し、
この共通ＯＳイメージを前記記憶媒体に前記待機ＯＳとしてロードし、また前記共通ＯＳイメージを前記記憶媒体に運用ＯＳとしてロードすることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記プロセッサは、システム起動時に前記デバイスの初期化を実施して前記デバイスの再初期化データを保存した前記待機ＯＳのメモリイメージを、前記情報処理装置が備えるいずれかの記憶媒体に保存し、
前記プロセッサは、ＯＳ再起動時に保存した前記メモリイメージを読み出して、前記記憶媒体に前記待機ＯＳを復元し、この復元した待機ＯＳをプロセッサが実行してＯＳ再起動をする、ことを特徴とする請求項１乃至請求項３のいずれかに記載の情報処理装置。
【請求項５】
１または複数のデバイスが接続された情報処理装置が備えるプロセッサに、
システム起動時に不揮発性記憶媒体から前記プロセッサが実行するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を記憶するための記憶媒体に待機ＯＳと運用ＯＳをロードする処理と、
前記待機ＯＳと前記運用ＯＳをロードした後に、前記待機ＯＳを用いて前記情報処理装置に接続された前記デバイスを検出し、前記デバイスの初期化を行う初期化処理と、
前記デバイスの初期化処理で生成された前記デバイスの初期化データを再初期化データとして前記記憶媒体に保存する保存処理と、
前記保存処理後に前記待機ＯＳを待機状態にするとともに前記運用ＯＳを実行する処理と、
前記待機ＯＳの再起動を行う場合には、待機前に前記保存処理よって保存した前記再初期化データを用いて前記デバイスの再初期化を行う処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）再起動時の起動時間の短縮化技術に関する。
【背景技術】
【０００２】
各種システム初期設定データを固定的データとして不揮発性メモリに記憶しておき、ＯＳ起動時に不揮発性メモリを参照して装置の設定を行うことでＯＳ起動時に装置の動作を早期に開始するシステム初期化情報早期設定方式が特許文献１に示されている。【０００３】
また、不揮発性メモリにブート情報や起動プログラムを現用と予備の複数個記憶し、現用のブート情報や起動プログラムで動作中のシステム障害発生時には、予備のブート情報や起動プログラムに切り替えて再起動する方法が、特許文献２、特許文献３で示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平３−１０５６１８号公報
【特許文献２】特開２００４−７８２９４号公報
【特許文献３】特開２０１０−６１４１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１のシステム初期化情報早期設定方式は、システム構成がデバイスの追加や削除により変更されることのあるシステムに対して、記憶しているシステム初期設定データと備えたデバイスが整合しなくなるため、適用できないという問題があった。
また、特許文献２、特許文献３に記載される従来の情報処理装置のＯＳ再起動方式は、現用のブート情報や起動プログラムから予備のブート情報や起動プログラムに切り替えてＯＳを再起動する。そのため、ＯＳ再起動時にシステムが備えるデバイスの初期化を実施する必要があり、ＯＳ再起動に時間がかかるという問題があった。【０００６】
この発明は上記のような問題点を解決するためになされたものであり、システム構成が変更されることのあるシステムにおいて、デバイス設定処理時間を短縮したＯＳの再起動が可能な情報処理装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明の情報処理装置は、プロセッサと、プロセッサに接続され、プロセッサが実行するＯＳを記憶する記憶媒体と、プロセッサに接続され、ＯＳ再起動時に再初期化される１つ以上のデバイスと、プロセッサによりシステム起動時に実行され、デバイスの初期化を行うとともに、システム起動後の通常状態にＯＳ処理を行う運用ＯＳと、プロセッサによりシステム起動時に実行され、プロセッサに接続されているデバイスを検出し、検出したデバイスの初期化処理を行って待機するとともに、運用ＯＳに異常が発生し再起動が必要になった場合には、待機前の初期化処理時に保存したデバイスの再初期化データを用いてデバイスの再初期化処理を行う待機ＯＳと、を備えるようにした。【０００８】
この発明のプログラムは、１または複数のデバイスが接続された情報処理装置が備えるプロセッサに、システム起動時に不揮発性記憶媒体からプロセッサが実行するＯＳを記憶するための記憶媒体に待機ＯＳと運用ＯＳをロードする処理と、待機ＯＳと運用ＯＳをロードした後に、待機ＯＳを用いて情報処理装置に接続されたデバイスを検出し、デバイスの初期化を行う初期化処理と、デバイスの初期化処理で生成されたデバイスの初期化データを再初期化データとして記憶媒体に保存する保存処理と、保存処理後に待機ＯＳを待機状態にするとともに運用ＯＳを実行する処理と、待機ＯＳの再起動を行う場合には、待機前に保存処理よって保存した再初期化データを用いてデバイスの再初期化を行う処理と、を実行させるものである。
【発明の効果】
【０００９】
この発明によれば、ＯＳ再起動後の通常状態においてシステムに接続されたデバイスを制御する待機ＯＳが、システム起動時にデバイスの初期化を実施して、デバイスの再初期化データを保存し、ＯＳ再起動時には、待機ＯＳは保存したデバイスの再初期化データを参照してデバイスの再初期化を実施するので、接続されるデバイスが変更されてシステム構成が変更されることのある情報処理装置においても、ＯＳ再起動時のデバイス初期化時間を短縮できる。
【図面の簡単な説明】
【００１０】
【図１】この発明の実施の形態１の情報処理装置の構成を示す構成図である。
【図２】この発明の実施の形態１の情報処理装置のＲＯＭとＲＡＭの構成を示す構成図である。
【図３】この発明の実施の形態１の情報処理装置のブートローダの構成を示す構成図である。
【図４】この発明の実施の形態１の情報処理装置の運用ＯＳと待機ＯＳの全体構成図である。
【図５】この発明の実施の形態１のデバイス初期化とデバイス再初期化の処理フローの一例である。
【図６】この発明の実施の形態１の情報処理装置の起動動作を示すフローチャートである。
【図７】この発明の実施の形態１の情報処理装置のＯＳ再起動動作を示すフローチャートである。
【図８】この発明の実施の形態２の情報処理装置のＲＯＭとＲＡＭの構成を示す構成図である。
【図９】この発明の実施の形態２の情報処理装置のブートローダの構成を示す図である。
【図１０】この発明の実施の形態２の情報処理装置の共通ＯＳの構成を示す図である。
【図１１】この発明の実施の形態２の情報処理装置の起動動作を示すフローチャートである。
【図１２】この発明の実施の形態２の情報処理装置の共通ＯＳの起動処理を示すフローチャートである。
【図１３】この発明の実施の形態３の情報処理装置のＲＯＭとＲＡＭの構成を示す構成図である。
【図１４】この発明の実施の形態３の情報処理装置の運用ＯＳと待機ＯＳの全体構成図である。
【図１５】この発明の実施の形態３の情報処理装置の起動動作を示すフローチャートである。
【図１６】この発明の実施の形態３の情報処理装置のＯＳ再起動動作を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、この発明の実施の形態を、図を参照して説明する。以下の実施の形態の説明において、同一もしくは相当する部分には同一の符号を付している。なお、以下で説明するブートローダおよびＯＳはプロセッサで実行されるプログラムである。また、ブートローダおよびＯＳの構成の説明において名称が「部」で終わる部分は、プログラムの機能ブロックを示している。
実施の形態１．
【００１２】
図１はこの発明の実施の形態１の情報処理装置のシステム構成を示す構成図である。図１において、プロセッサ１０１は、ＯＳを記憶する記憶媒体であるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２と接続され、また、ＯＳイメージを記憶する不揮発性記憶媒体であるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０３、第１デバイス１０４、第２デバイス１０５で構成される。ＲＡＭ１０２の一例としてＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）がある。ＲＯＭ１０３の一例としてＦｌａｓｈ  ＲＯＭがある。また、第１デバイス１０４、第２デバイス１０５のデバイスの例として、プロセッサに外部との通信インタフェースを提供するシリアルコミュニケーションインタフェース（以下、ＳＣＩと称す）、設定値とタイマ値を比較して一致した場合にプロセッサに通知するコンペアマッチタイマ（以下、ＣＭＴと称す）などがある。なお、ここではシステム構成例として２個のデバイスを接続しているが、この発明はデバイス数を２個に限定するものではなく、また、同種のデバイスを複数個接続するものであっても良い。また、これらの記憶媒体およびデバイスを直接プロセッサに接続することに限定するものではなく、ブリッジ等の回路を介して接続しても良い。
【００１３】
図２は情報処理装置１００のＲＯＭ１０３に記憶されている情報および各情報の位置と、ＲＡＭ１０２の記憶領域の用途毎の配置について示す構成図である。ここで示すＲＯＭ１０３およびＲＡＭ１０２の領域分けは例として示すものであり、この発明はその配置を限定するものではなく、またここに記載しない情報や領域を含んでも良い。また、ＲＡＭ１０２の領域分割はあらかじめ固定的に分割して領域を確定しておいてもよいし、あるいは必要なサイズに合わせて情報処理装置１００の起動時に確定するようにしてもよい。
【００１４】
ＲＯＭ１０３に記憶される情報には、情報処理装置１００のシステム起動時に最初にプロセッサ１０１が実行して、ＯＳをＲＯＭ１０３からＲＡＭ１０２へロードし、ロードしたＯＳの実行をプロセッサ１０１が開始するようにするためのプログラムであるブートローダ２０１、システム起動後の通常状態においてプロセッサ１０１が実行するＯＳのイメージ（プログラムのデータ）である運用ＯＳイメージ２０２、ＯＳ再起動後の通常状態においてプロセッサ１０１が実行するＯＳのイメージである待機ＯＳイメージ２０３が存在する。
【００１５】
ＲＡＭ１０２の記憶領域は用途により、運用ＯＳイメージ２０２のロード先である運用ＯＳメモリ２０４と、待機ＯＳイメージ２０３のロード先である待機ＯＳメモリ２０５と、プロセッサ１０１が実行しているＯＳの作業用メモリであるワークメモリ２０６に分割されている。
【００１６】
図３はブートローダ２０１の構成を示す図である。ブートローダ２０１は、ＯＳをＲＡＭ１０２の運用ＯＳメモリ２０４と待機ＯＳメモリ２０５にロードするＯＳロード部３０１、プロセッサ１０１に待機ＯＳメモリ２０５にロードしたＯＳの実行を開始させる待機ＯＳ起動部３０２を備えている。
【００１７】
図４は実施の形態１の情報処理装置１００の運用ＯＳ４１０と待機ＯＳ４２０の全体構成図である。運用ＯＳ４１０は、プロセッサ１０１がブートローダ２０１のＯＳロード部３０１を実行して、運用ＯＳイメージ２０２を運用ＯＳメモリ２０４にロードしたＯＳである。また、待機ＯＳ４２０はプロセッサ１０１が待機ＯＳイメージ２０３を待機ＯＳメモリ２０５にロードしたＯＳである。
【００１８】
運用ＯＳ４１０は、プロセッサ１０１が運用ＯＳ４１０自身の初期化時に実行するＯＳ初期化部４１１、情報処理装置１００が備えるデバイスの初期化時に実行するデバイス初期化部４１２、ワークメモリ２０６を運用ＯＳ４１０の管理下へ追加するときに実行するワークメモリアタッチ部４１３、システム起動処理完了後の通常状態におけるデバイスの制御やプロセスのスケジューリングなどのＯＳ処理をするときに実行する通常処理部４１４、運用ＯＳ４１０の実行中に例えば不正アドレスへのメモリアクセスなどの異常が発生した場合に実行する異常処理部４１５を備える。
【００１９】
デバイス初期化部４１２は、実装された各デバイス用の初期化機能を備える。デバイス初期化部４１２は、情報処理装置１００にデバイスを追加もしくは削除したときに、適切なデバイス初期化機能を備えるように、各デバイス用の初期化モジュールをＯＳに追加もしくは削除しても良いし、あるいは、情報処理装置１００に接続可能なデバイスの初期化機能を予め備えるようにしても良い。この実施の形態の情報処理装置１００では第１デバイス１０４と第２デバイス１０５を初期化するためのデバイス初期化部４１２１とデバイス初期化部４１２２を備えている。
【００２０】
デバイス初期化部４１２により行う初期化処理は、例えばデバイスがＳＣＩである場合には、調歩同期式、クロック同期式といった通信プロトコルや通信速度の指定などであり、また例えばデバイスがＣＭＴである場合には、一定周期でプロセッサ１０１に割込みが発生するようにＣＭＴにパラメータ設定する処理などである。
【００２１】
一方、待機ＯＳ４２０は、プロセッサ１０１が待機ＯＳ４２０自身の初期化を行うため実行するＯＳ初期化部４２１、情報処理装置１００が備えるデバイスの初期化を実施し、待機状態に遷移させ、デバイス再初期化時に必要となるデバイス再初期化データを再初期化データテーブル４２３に保存するときに実行するデバイス初期化部４２２、プロセッサ１０１に運用ＯＳ４１０による処理を開始させるときに実行する運用ＯＳ起動部４２４、待機ＯＳ４２０の再起動処理をするときに実行する再起動処理部４２５、再初期化データテーブル４２３を参照してデバイスの再初期化をするときに実行するデバイス再初期化部４２６、ワークメモリ２０６を待機ＯＳ４２０の管理下へ追加するときに実行するワークメモリアタッチ部４２７、ＯＳ再起動後の通常状態において運用ＯＳ４１０と同様の通常状態のＯＳ処理をするときに実行する通常処理部４２８で構成される。
【００２２】
待機ＯＳ４２０のデバイス初期化部４２２は、運用ＯＳ４１０のデバイス初期化部４２１と同様に、実装された各デバイス用の初期化機能として、デバイス初期化部４２２１、４２２２を備える。また、再初期化データテーブル４２３には実装された各デバイス用のデバイス再初期化データが保存される。この実施の形態では、第１デバイス１０４用の再初期化データテーブル４２３１、第２デバイス１０５用の再初期化データテーブル４２３２がある。この各デバイス用の領域は予め確保されていても良いし、デバイス初期化時に動的に確保されても良い。
【００２３】
待機ＯＳ４２０のデバイス再初期化部４２６も、運用ＯＳ４１０のデバイス初期化部４１２と同様に実装された各デバイス用の再初期化機能を備える。この実施の形態の情報処理装置１００では第１デバイス１０４を再初期化するデバイス再初期化部４２６１と第２デバイス１０５を再初期化するデバイス再初期化部４２６２を備えている。デバイス再初期化部４２６１は再初期化データテーブル４２３１を、デバイス再初期化部４２６２は再初期化データテーブル４２３２をそれぞれ参照する。
【００２４】
デバイス再初期化データは、デバイス初期化時にデバイスに設定するデータであり、例えばデバイスがＳＣＩである場合にはプロトコルや通信速度などのＳＣＩを適切に動作させるための設定値であり、また例えばデバイスがＣＭＴである場合にはＣＭＴに適切な周期で割込みを発生させるためのタイマ値など設定値である。
【００２５】
システム起動後にプロセッサ１０１が運用ＯＳ４１０を実行して情報処理装置１００が動作しているとき、第１デバイス１０４、第２デバイス１０５などのデバイスは、アプリケーションプログラムが実行されてこれらのデバイスを使用するために、実行されるアプリケーションプログラムにとって適した設定に変更される場合がある。このため、ＯＳ再起動時にデバイスはデバイス初期化後の状態とは異なる状態になっており、デバイス再初期化処理を実施する必要がある。
【００２６】
例えばデバイスがＳＣＩであり、ＯＳ起動時のＳＣＩの初期設定では転送速度が９６００ビット毎秒で設定された場合に、アプリケーションプログラムが転送速度１１５２００ビット毎秒でＳＣＩを使用すると、ＳＣＩの転送速度の設定は１１５２００ビット毎秒に変更されている。このため、ＯＳ再起動時は初期設定として再び９６００ビット毎秒に設定する必要がある。
【００２７】
次にこの発明の実施の形態１に係る情報処理装置１００の動作を説明する。図６は情報処理装置１００のシステム起動時の動作を示すフローチャートである。情報処理装置１００が起動されると最初にプロセッサ１０１はブートローダ２０１の実行を開始する。ブートローダ２０１による処理では、まずＯＳロード部３０１が実行されて、ＲＯＭ１０３からＲＡＭ１０２の待機ＯＳメモリ２０５へ待機ＯＳイメージ２０３のロード（Ｓ５０１）と、運用ＯＳメモリ２０４へ運用ＯＳイメージ２０２のロード（Ｓ５０２）が行われる。ここでは待機ＯＳイメージ２０３、運用ＯＳイメージ２０２の順にロードを行っているが、この発明はロードする順番を限定するものではなく、また、並行してロードされてもよい。
【００２８】
運用ＯＳイメージ２０２と待機ＯＳイメージ２０３のロードが完了した後、待機ＯＳ起動部３０２が実行されて（Ｓ５０３）、プロセッサ１０１が待機ＯＳ４２０の実行を開始し、ブートローダ２０１による処理は終了する。
【００２９】
プロセッサ１０１は待機ＯＳ４２０の実行を開始すると、初めにＯＳ初期化部４２１による待機ＯＳ４２０自身の初期化を実施する（Ｓ５１１）。続いてデバイス初期化部４２２による待機ＯＳのデバイス初期化処理を実行する（Ｓ５１２）。
【００３０】
Ｓ５１２のデバイス初期化処理は情報処理装置１００に接続された各デバイスについて実行される。ひとつのデバイスについてＳ５１２を実行すると、全デバイスの初期化が完了したかチェックして（Ｓ５１３）、完了していない場合は次のデバイスを選択して再度Ｓ５１２へ、完了している場合は次のステップへ進む。この実施の形態の情報処理装置１００では第１デバイス１０４と第２デバイス１０５が実装されており、プロセッサ１０１はデバイス初期化部４２２１、デバイス初期化部４２２２の順に実行して各デバイスの初期化処理を実施する。
【００３１】
Ｓ５１３のチェックは、情報処理装置１００に接続されたデバイスを探索し検出することによって取得したデバイス構成情報に基づいてチェックする方法、あるいは、情報処理装置１００のシステム構成変更時に記憶しておいたシステム構成情報に基づいて接続されたデバイスを検出してチェックする方法など種々の方法が考えられる。
【００３２】
全デバイスについてＳ５１２の初期化処理を完了すると、プロセッサはデバイス初期化部４２２によるデバイス待機処理を実行してデバイスを待機状態へ遷移させ（Ｓ５１４）、デバイス再初期化データを再初期化データテーブル４２３へ保存する（Ｓ５１５）。ここで保存するデバイス再初期化データは、Ｓ５１２のデバイス初期化時にデバイスに設定したデータなどである。
【００３３】
例えばデバイスがＳＣＩであり、クロックソース選択レジスタとビットレート設定レジスタを備える場合、通常これらのレジスタは初期化処理において図５（１）に示す手順で設定される。まず、不揮発性記憶媒体からプロトコル、設定転送速度を取得する（Ｓ１０）。次に、取得した設定に適合するクロックソース選択を実行する（Ｓ２０）。次に、プロトコルとクロック選択をＳＣＩのレジスタに設定する（Ｓ３０）。次に選択したクロックソースでの設定転送速度のためのビットレートレジスタ値の設定値を演算して求める（Ｓ４０）。そして、求めたビットレートレジスタ設定値をＳＣＩのレジスタに設定する（Ｓ５０）。
【００３４】
これに対して、初期化処理時のレジスタ設定値を再初期化データとして保存しておき、この情報で再初期化を行う場合、図５（２）に示すように、デバイス再初期化データからプロトコル選択、クロック選択、ビットレート設定値を読み出して（Ｓ１１）、上記のＳ３０、Ｓ５０の処理を実行するという手順でレジスタを設定することができ、前述のＳ２０、Ｓ４０の処理を省略できる。
【００３５】
このように、システム起動時の待機ＯＳ４２０の起動処理において、接続されているデバイスを検出して、実際に接続されているデバイスの初期化を実施し、このときの設定データを再初期化データとして保存しておくことにより、ＯＳ再起動時に待機ＯＳ４２０を再び動作させる際には、システム起動時に検出済みの実際に接続されているデバイスを対象に、再初期化データを用いたデバイス初期化時よりも簡略化した処理でデバイス再初期化を行うことができる。
【００３６】
Ｓ５１２のデバイス初期化処理と同様に、プロセッサは、ひとつのデバイスについてＳ５１４のデバイス待機処理とＳ５１５の再初期化データ保存を実行すると、全デバイスについてＳ５１４およびＳ５１５を完了したかチェックして（Ｓ５１６）、完了していない場合は次のデバイスを選択して再度Ｓ５１４へ、完了している場合は次のステップへ進む。この実施の形態の情報処理装置１００では、第１デバイス１０４と第２デバイス１０５についてＳ５１４とＳ５１５が実行される。
【００３７】
なお、ここでは全デバイスについてＳ５１２のデバイス初期化処理を完了後に、Ｓ５１４のデバイス待機処理、Ｓ５１５の再初期化データ保存を実施するようにしているが、Ｓ５１２〜Ｓ５１５の一連の処理をデバイス毎に行うようにしてもよい。また、デバイス毎に順番に行うのではなく並列に行うようにしてもよい。
【００３８】
全デバイスについてＳ５１４とＳ５１５の処理を完了すると、次にプロセッサ１０１は運用ＯＳ起動部４２４により運用ＯＳ４１０の実行を開始し（Ｓ５１７）、待機ＯＳ４２０の起動処理は完了して、待機ＯＳ４２０は待機状態となる。
【００３９】
プロセッサ１０１は運用ＯＳ４１０の実行を開始すると、初めに運用ＯＳ初期化部４１１による運用ＯＳ４１０自身の初期化を実施する（Ｓ５２１）。続いて運用ＯＳ４１０のデバイス初期化部４１２によるデバイス初期化を実行する（Ｓ５２２）。Ｓ５２２のデバイス初期化は情報処理装置１００に実装された各デバイスについて順に実施される。１つのデバイスについてＳ５２２を実施すると、全デバイスの初期化を完了したかチェックして（Ｓ５２３）、完了していない場合は次のデバイスを選択して再度Ｓ５２２へ、完了している場合は次のステップへ進む。
【００４０】
この実施の形態の情報処理装置１００ではデバイス初期化部４１２１、デバイス初期化部４１２２の順に実行されて、第１デバイス１０４、第２デバイス１０５を初期化する。なお、ここでは第１デバイス１０４、第２デバイス１０５の順にＳ５２２を行うこととしたが、他の順番でも良いし、並列に実施するようにしてもよい。
【００４１】
全デバイスについてＳ５２２のデバイス初期化を完了すると、プロセッサ１０１はワークメモリアタッチ部４１３によりワークメモリ２０６を運用ＯＳ４１０の管理下へ追加（Ｓ５２４）して、運用ＯＳ４１０の起動処理を完了する。これ以降プロセッサ１０１は、運用ＯＳ４１０の通常処理部４１４により、起動処理完了後の通常状態のＯＳ処理を実施する。
【００４２】
なお、この発明はシステム起動時の動作手順を上記の手順に限定するものではなく、同等の動作結果となる限り、異なる手順で起動されても良い。
【００４３】
次にＯＳ再起動の動作を説明する。図７は実施の形態１の情報処理装置１００において運用ＯＳ４１０を実行中のプロセッサ１０１が異常を検出した場合のＯＳ再起動の動作を示すフローチャートである。プロセッサ１０１は運用ＯＳ４１０実行中に異常を検出すると、運用ＯＳの異常処理部４１５を実行して、プロセッサ１０１に待機ＯＳ４２０の再起動処理部４２５による待機ＯＳ再起動処理を開始させる（Ｓ６０１）。
【００４４】
プロセッサ１０１は待機ＯＳ４２０の再起動処理を開始すると、まずデバイス再初期化部４２６により再初期化データテーブル４２３を参照して（Ｓ６１１）、デバイスへの設定パラメータを取得し、取得したパラメータをデバイスに設定して再初期化する（Ｓ６１２）。デバイス再初期化部４２６は実際に接続されているデバイスを対象にデバイス毎に順に再初期化を実施して、全デバイスについてＳ６１２の再初期化が完了したかをチェック（Ｓ６１３）し、完了していない場合は次のデバイスの再初期化（Ｓ６１１、Ｓ６１２）を実施し、完了している場合は次のステップへ進む。
【００４５】
この実施の形態では、デバイス再初期化部４２６１とデバイス再初期化部４２６２により、第１デバイス１０４、第２デバイス１０５の順に、それぞれ再初期化データテーブル４２３１、再初期化データテーブル４２３２を参照して、デバイスの再初期化を行う。なお、ここでは第１デバイス１０４、第２デバイス１０５の順にデバイスの再初期化を行うこととしたが、他の順番でも良いし、並列に実行するようにしてもよい。
【００４６】
Ｓ６１３で全デバイスの再初期化完了を判定すると、プロセッサ１０１はワークメモリアタッチ部４２７によりワークメモリ２０６を待機ＯＳ４２０の管理下へ追加（Ｓ６１４）して、待機ＯＳ４２０の再起動処理を完了する。情報処理装置１００のＯＳ再起動はこれで完了し、以降、プロセッサ１０１は待機ＯＳ４２０の通常処理部４２８によるＯＳ再起動後の通常状態におけるＯＳ処理を実施する。
【００４７】
以上のように、情報処理装置のシステム起動毎に起動時のシステム構成に応じたデバイスの再初期化データを待機ＯＳが保存して、ＯＳ再起動時には待機ＯＳが保存しておいた再初期化データを参照して実際に接続されているデバイスを対象にしてデバイスの再初期化を実施するので、接続されるデバイスが変更され情報処理装置のシステム構成が変わることのある情報処理装置においても、ＯＳ再起動時のデバイス設定処理時間を短縮することができる。
【００４８】
また、情報処理装置のシステム起動時にＯＳイメージを記憶する不揮発性記憶媒体からＯＳを記憶する記憶媒体に待機ＯＳをロードして初期化を実施しているため、ＯＳ再起動時に待機ＯＳのロードと初期化処理を削減して、ＯＳ再起動時のＯＳ起動時間を短縮することができる。
【００４９】
また、運用ＯＳと待機ＯＳでワークメモリを共通で使用しているので、システムに必要なワークメモリを節約することができる。
実施の形態２．
【００５０】
次に、この発明の実施の形態２について説明する。実施の形態２の情報処理装置の構成は図１に示した実施の形態１の情報処理装置の構成と同様である。図８は実施の形態２の情報処理装置１００のＲＯＭ１０３に記憶されている情報および各情報の位置と、ＲＡＭ１０２の記憶領域の用途毎の配置について示す構成図である。ＲＡＭ１０２に関しては実施の形態１と同様であるので詳細な説明は省略する。
【００５１】
ＲＯＭ１０３に記憶される情報は、ブートローダ２０１ｂとシステム起動後の通常状態において実行されるＯＳとＯＳ再起動後の通常状態において実行されるＯＳの両方に共通の共通ＯＳイメージ２０７である。なお、ここで示すＲＯＭ１０３の領域分けは例であり、この発明はその配置を限定するものではなく、また、ＲＯＭ１０３はここに記載しない情報を記憶しても良い。
【００５２】
図９はブートローダ２０１ｂの構成を示す図である。ブートローダ２０１ｂは、共通ＯＳイメージ２０７をＲＡＭ１０２の待機ＯＳメモリ２０５と運用ＯＳメモリ２０４にロードするためのＯＳロード処理部３０１ｂ、待機ＯＳメモリ２０５にロードしたＯＳの実行をプロセッサ１０１に開始させるための待機ＯＳ起動部３０２ｂ、ＲＡＭ１０２にロードしたＯＳに対して後述の待機ＯＳフラグ４３２を設定するための待機ＯＳフラグ設定部３０３を備える。
【００５３】
図１０は実施の形態２の情報処理装置１００のＲＡＭ１０２に共通ＯＳイメージ２０７をロードした共通ＯＳ４３０の構成を示す図である。図１０において図４と同じ符号を付した部分は、実施の形態１と同様であるので説明を省略する。共通ＯＳ４３０はＯＳ判定部４３１と待機ＯＳフラグ４３２を備えている。なお、この実施の形態では、共通ＯＳ４３０は図４に示した運用ＯＳ用と待機ＯＳ用の同様の機能をそれぞれ備える構成としているが、運用ＯＳ用と待機ＯＳ用の同様の機能を共通化した構成としても良い。
【００５４】
次にこの発明の実施の形態２の情報処理装置１００の動作を説明する。図１１は実施の形態２の情報処理装置１００のシステム起動時の動作を示すフローチャートである。情報処理装置１００が起動されるとプロセッサ１０１は最初にブートローダ２０１ｂを実行する。ブートローダ２０１ｂによる処理ではまず、ＯＳロード部３０１ｂが実行されてＲＯＭ１０３から待機ＯＳメモリ２０５へ共通ＯＳイメージ２０７をロードする（Ｓ１００１）。次に、待機ＯＳフラグ設定部３０３が実行されて待機ＯＳメモリ２０５にロードした共通ＯＳ４３０の待機ＯＳフラグ４３２に待機ＯＳであることを示す論理値１を設定する（Ｓ１００２）。次に、再度ＯＳロード部３０１ｂが実行されて共通ＯＳイメージ２０７を運用ＯＳメモリ２０４へロードし（Ｓ１００３）、次に、待機ＯＳフラグ設定部３０３が実行されて運用ＯＳメモリ２０４にロードした共通ＯＳ４３０の待機ＯＳフラグ４３２に運用ＯＳであることを示す論理値０を設定する（Ｓ１００４）。ここでは待機ＯＳメモリ２０５、運用ＯＳメモリ２０４の順にロードを行っているが、この発明はロードする順番を限定するものではなく、また、並行してロードを実行してもよい。最後に待機ＯＳ起動部３０２ｂを実行して、プロセッサ１０１が待機ＯＳメモリ２０５の共通ＯＳ４３０の実行を開始すると（Ｓ１００５）、ブートローダ２０１ｂによる処理は完了する。
【００５５】
図１２はプロセッサ１０１が共通ＯＳ４３０を実行開始する際のフローチャートである。共通ＯＳ４３０の実行を開始すると、まず、ＯＳ判定部４３１により、待機ＯＳフラグ４３２を参照して、実行中の共通ＯＳ４３０が待機ＯＳであるのか運用ＯＳであるのか判定する（Ｓ１１０１）。待機ＯＳメモリ２０５にロードした共通ＯＳ４３０の実行を開始するとき、待機ＯＳフラグ設定部３０３によって待機ＯＳフラグ４３２は論理値１が設定されているので、Ｓ１１０１のＯＳ判定処理で待機ＯＳと判定される。そして、共通ＯＳ４３０は待機ＯＳとして実行され、図６に示す待機ＯＳ起動処理と同様の処理を開始する（Ｓ１１０２）。待機ＯＳとしての起動処理が進行して、運用ＯＳ起動部４２４が実行されると、プロセッサ１０１は運用ＯＳメモリ２０４にロードした共通ＯＳ４３０の実行を開始する。このとき運用ＯＳメモリ２０４の共通ＯＳ４３０では、Ｓ１１０１で運用ＯＳと判定されるので、以降は、共通ＯＳ４３０は運用ＯＳとして実行され、図６に示す運用ＯＳ起動処理と同様の処理が行われる（Ｓ１１０３）。これ以降の動作は実施の形態１と同様である。
【００５６】
以上のように、共通ＯＳにＯＳ判定部と待機ＯＳフラグを設けて、共通ＯＳ起動時に待機ＯＳフラグを参照して、待機ＯＳであるのか運用ＯＳであるのかを判定するようにし、また、ブートローダに待機ＯＳフラグ設定部を設けて、待機ＯＳフラグを設定するようにしたので、待機ＯＳと運用ＯＳで共通のＯＳイメージを用いることができる。
【００５７】
また、情報処理装置のシステム起動毎に起動時のシステム構成に応じたデバイスの再初期化データを待機ＯＳが保存して、ＯＳ再起動時には保存しておいたデバイス再初期化データを参照して実際に接続されているデバイスを対象にして待機ＯＳがデバイスの再初期化を実施するので、接続デバイスが変更され情報処理装置のシステム構成が変わる場合にも、ＯＳ再起動時のデバイス設定処理時間を短縮することができる。
【００５８】
また、情報処理装置のシステム起動時にＯＳイメージを記憶する不揮発性記憶媒体からＯＳを記憶する記憶媒体に待機ＯＳをロードして初期化済みであるため、ＯＳ再起動時に待機ＯＳのロード、初期化を行う必要が無く、ＯＳ再起動時の待機ＯＳ起動時間を短縮することができる。
【００５９】
また、運用ＯＳと待機ＯＳでワークメモリを共通で使用しているので、システムに必要なワークメモリを節約することができる。
実施の形態３．
【００６０】
次に、この発明の実施の形態３について説明する。実施の形態３の情報処理装置の構成は図１に示した実施の形態１の情報処理装置の構成と同様である。図１３は実施の形態３の情報処理装置１００のＲＯＭ１０３に記憶されている情報および各情報の位置と、ＲＡＭ１０２の記憶領域の用途毎の配置について示す構成図である。ＲＡＭ１０２に関しては実施の形態１と同様であるので詳細な説明は省略する。
【００６１】
実施の形態３の情報処理装置１００のＲＯＭ１０３に記憶される情報には、実施の形態１の同様のブートローダ２０１、運用ＯＳイメージ２０２ｃ、待機ＯＳイメージ２０３ｃ、待機ＯＳメモリイメージ２０８がある。待機ＯＳメモリイメージ２０８は、システム起動時の待機ＯＳ起動処理を完了した時点のＲＡＭ１０２の待機ＯＳメモリ２０５に記憶されている情報のメモリイメージである。なお、ここで示すＲＯＭ１０３の領域分けは例として示すものであり、この発明はその配置を限定するものではなく、また、ＲＯＭ１０３はここに記載しない情報を記憶しても良い。
【００６２】
図１４は実施の形態３の情報処理装置１００の運用ＯＳ４１０ｃと待機ＯＳ４２０ｃの構成を示す図である。
【００６３】
運用ＯＳ４１０ｃは実施の形態１と同様のＯＳ初期化部４１１、デバイス初期化部４１２、ワークメモリアタッチ部４１３、通常処理部４１４を備える。また、待機ＯＳメモリ２０５の情報を待機ＯＳメモリイメージ２０８としてＲＯＭ１０３に保存するための待機ＯＳメモリイメージ保存処理部４１６、運用ＯＳ４１０ｃの実行中に異常が発生したときの異常処理を実施するための異常処理部４１５ｃ、待機ＯＳメモリイメージ２０８をＲＯＭ１０３から読み出して、ＲＡＭ１０２の待機ＯＳメモリ２０５に待機ＯＳ４２０ｃを復元するための待機ＯＳ復元処理部４１７を備える。
【００６４】
待機ＯＳ４２０ｃは実施の形態１と同様の待機ＯＳ初期化部４２１、デバイス初期化部４２２、再初期化データテーブル４２３、運用ＯＳ起動部４２４、再起動処理部４２５、デバイス再初期化部４２６、ワークメモリアタッチ部４２７、通常処理部４２８に加えて、待機ＯＳ４２０ｃの実行中に異常が発生した場合に実行される異常処理部４２９を備える。
【００６５】
次にこの発明の実施の形態３の情報処理装置１００の動作を説明する。図１５は実施の形態３の情報処理装置１００のシステム起動時の動作を示すフローチャートである。なお、このフローチャートで説明する手順は一例として示すものであり、同等の結果が得られれば他の手順で行ってもよい。
【００６６】
実施の形態３の情報処理装置１００が起動されて、プロセッサ１０１がブートローダ２０１の実行を開始すると、まず、実施の形態１と同様に待機ＯＳイメージロード（Ｓ５０１）が実施される。以降、Ｓ５１４の運用ＯＳ４１０ｃのワークメモリ追加処理まで実施の形態１と同様である。
【００６７】
プロセッサ１０１はＳ５１４のワークメモリ追加処理を実施すると、次に、運用ＯＳ４１０ｃの待機ＯＳメモリイメージ保存処理部４１６を実行して、待機ＯＳメモリ２０５に記憶されている情報をＲＯＭ１０３に待機ＯＳメモリイメージ２０８として保存する（Ｓ５２５）。Ｓ５２５を実施して運用ＯＳ４１０ｃの起動処理は完了となり、以降プロセッサ１０１は、運用ＯＳ４１０ｃの通常処理部４１４により、システム起動後の通常状態におけるＯＳ処理を実施する。
【００６８】
図１６は実施の形態３の情報処理装置１００の運用ＯＳ４１０ｃの実行中に異常が発生した場合のＯＳ再起動動作を示すフローチャートである。運用ＯＳ４１０ｃの実行中に異常が発生すると、プロセッサ１０１は運用ＯＳ４１０ｃの異常処理部４１５ｃを実行する。そしてプロセッサ１０１は、待機ＯＳ復元処理部４１７により、ＲＯＭ１０３に保存している待機ＯＳメモリイメージ２０８を読み出して、ＲＡＭ１０２の待機ＯＳメモリ２０５に待機ＯＳ４２０ｃを復元する（Ｓ６００）。この復元した待機ＯＳ４２０ｃは、システム起動時に初期化処理を実施して、デバイスの再初期化データを保存した状態である。このあとプロセッサ１０１は実施の形態１と同様に、待機ＯＳ４２０ｃの再起動処理部４２５により待機ＯＳ４２０ｃの再起動処理を開始（Ｓ６０１）して、運用ＯＳ４１０ｃの異常処理部４１５ｂの処理を終了する。
【００６９】
プロセッサ１０１が再起動処理部４２５の実行を開始した以降のＳ６１１〜Ｓ６１4の待機ＯＳ再起動処理は実施の形態１と同様である。待機ＯＳ４２０ｃの再起動処理が完了すると、以降、待機ＯＳ４２０ｃは実施の形態１と同様にＯＳ再起動後の通常状態のＯＳ処理を実施する。
【００７０】
このあと、待機ＯＳ４２０ｃにより通常状態のＯＳ処理を行っているときに異常が検出されると、待機ＯＳ４２０ｃの異常処理部４２９をプロセッサ１０１は実行する。プロセッサ１０１が異常処理部４２９を実行することにより、プロセッサ１０１は運用ＯＳ４１０ｃの異常処理部４１５ｃの処理を開始する。これにより、再度待機ＯＳメモリイメージがＲＯＭ１０３から読み出されて、待機ＯＳメモリ２０５に待機ＯＳ４２０ｃが復元され、待機ＯＳ４２０ｃの再起動が再び実行される。
【００７１】
以上のように、情報処理装置のシステム起動毎に起動時のシステム構成に応じたデバイスの再初期化データを待機ＯＳが保存して、ＯＳ再起動時には保存しておいたデバイス再初期化データを参照して実際に接続されているデバイスを対象にして待機ＯＳがデバイスの再初期化を実施するので、接続デバイスが変更され情報処理装置のシステム構成が変わる場合にも、ＯＳ再起動時のデバイス設定処理時間を短縮することができる。
【００７２】
また、情報処理装置の起動時に初期設定を完了した待機ＯＳのメモリイメージを不揮発性記憶媒体に保存し、再起動時には起動時に保存した待機ＯＳのメモリイメージを不揮発性記憶媒体から読み出して、システム起動時に初期化を実施した待機ＯＳが記憶媒体に復元されるので、ＯＳ再起動時に待機ＯＳの初期化を行う必要が無く、ＯＳ再起動時の待機ＯＳ起動時間を削減することができる。
【００７３】
また、運用ＯＳと待機ＯＳでワークメモリを共通で使用しているので、システムに必要なワークメモリを節約することができる。
【００７４】
さらに、運用ＯＳに障害が発生した場合のみではなく、待機ＯＳに障害が発生した場合にもＯＳ再起動をすることができる。
【００７５】
なお、実施の形態３の情報処理装置では、待機ＯＳメモリイメージを、ブートローダ等を記憶する不揮発性記憶媒体に保存したが、この発明は保存先を不揮発性記憶媒体に限定するものでなく、運用ＯＳ等を記憶する記憶媒体でも良いし、また、別途備える記憶媒体であっても良い。
【符号の説明】
【００７６】
１００  情報処理装置、  １０１  プロセッサ、１０２  ＲＡＭ（記憶媒体）、１０３  ＲＯＭ（不揮発性記憶媒体）、１０４  第１デバイス、１０５  第２デバイス、２０１、２０１ｂ  ブートローダ、２０２、２０２ｃ  運用ＯＳイメージ、２０３、２０３ｃ  待機ＯＳイメージ、２０４  運用ＯＳメモリ、２０５  待機ＯＳメモリ、２０６  ワークメモリ、２０７  共通ＯＳイメージ、２０８  待機ＯＳメモリイメージ、３０１、３０１ｂ  ＯＳロード部、３０２、３０２ｂ  待機ＯＳ起動部、３０３  待機ＯＳフラグ設定部、４１０、４１０ｃ  運用ＯＳ、４１１  ＯＳ初期化部、４１２，４１２１〜４１２２  デバイス初期化部、４１３  ワークメモリアタッチ部、４１４  通常処理部、４１５、４１５ｃ  異常処理部、４１６  待機ＯＳメモリイメージ保存処理部、４１７  待機ＯＳ復元処理部、４２０、４２０ｃ  待機ＯＳ、４２１  ＯＳ初期化部、４２２，４２２１〜４２２２  デバイス初期化部、４２３，４２３１〜４２３２  再初期化データテーブル、４２４  運用ＯＳ起動部、４２５  再起動処理部、４２６，４２６１〜４２６２  デバイス再初期化部、４２７  ワークメモリアタッチ部、４２８  通常処理部、４２９  異常処理部、４３１  ＯＳ判定部、４３２  待機ＯＳフラグ
【図１】
0005944017.tif 000002
【図２】
0005944017.tif 000003
【図３】
0005944017.tif 000004
【図４】
0005944017.tif 000005
【図５】
0005944017.tif 000006
【図６】
0005944017.tif 000007
【図７】
0005944017.tif 000008
【図８】
0005944017.tif 000009
【図９】
0005944017.tif 000010
【図１０】
0005944017.tif 000011
【図１１】
0005944017.tif 000012
【図１２】
0005944017.tif 000013
【図１３】
0005944017.tif 000014
【図１４】
0005944017.tif 000015
【図１５】
0005944017.tif 000016
【図１６】
0005944017.tif 000017