(57)【要約】【課題】システム起動時間の短縮を図ることができると共に、ユーザへの応答性を低下させることのない情報処理装置を得る。【解決手段】複数の機能モジュール１−１〜１−ｎの起動を遅延させるか否かを示す遅延実行フラグを示す起動情報登録テーブル２を設ける。装置の起動を行う場合、システム起動手段３は、起動情報登録テーブル２を参照し、最初に遅延実行フラグが遅延以外の機能モジュールを起動させ、遅延以外の機能モジュールの起動が終了した後、遅延実行フラグが遅延の機能モジュールを起動させる。【選択図】図１
2009217711.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能モジュールを有する情報処理装置において、
前記複数の機能モジュールの起動を遅延させるか否かを示す遅延実行フラグを前記複数の機能モジュール毎に示す起動情報登録テーブルと、
装置の起動を行う場合は、前記起動情報登録テーブルを参照し、最初に遅延実行フラグが遅延以外の機能モジュールを起動させ、当該遅延以外の機能モジュールの起動が終了した後、前記遅延実行フラグが遅延の機能モジュールを起動させるシステム起動手段とを備えた情報処理装置。
【請求項２】
複数の機能モジュールのうち、どの機能モジュールが現在実行中かを示すカレント機能モードフラグを設定するカレント機能モード設定手段と、
装置の終了を行う場合、起動情報登録テーブルの遅延実行フラグを、前記カレント機能モードフラグに基づき、実行中であった機能モジュールに対応する遅延実行フラグを遅延以外に更新するシステム終了手段とを備えた請求項１記載の情報処理装置。
【請求項３】
起動情報登録テーブルは、各機能モジュールの遅延実行フラグを機能モード毎に有すると共に、
複数の機能モジュールのうち、どの機能モジュールが現在実行中かを示すカレント機能モードフラグを設定するカレント機能モード設定手段と、
装置の終了を行う場合、前記カレント機能モードフラグの値を機能モード保存フラグとして保存するシステム終了手段とを備え、
システム起動手段は、前記起動情報登録テーブルの前記機能モード保存フラグの値に対応した機能モードの遅延実行フラグに基づいて機能モジュールの起動を行うことを特徴とする請求項１記載の情報処理装置。
【請求項４】
起動情報登録テーブルの遅延実行フラグは、複数の値が設定可能に構成されると共に、
複数の機能モジュールのうち、どの機能モジュールが現在実行中かを示すカレント機能モードフラグを設定するカレント機能モード設定手段と、
装置の終了を行う場合、前記カレント機能モードフラグの値に基づいて、実行中ではなかった機能モジュールに対応した遅延実行フラグの値を遅延が大きい側に変更するシステム終了手段とを備え、
システム起動手段は、前記起動情報登録テーブルの遅延実行フラグの値が遅延の小さい順に機能モジュールの遅延起動を行うことを特徴とする請求項１記載の情報処理装置。
【請求項５】
起動情報登録テーブルは、複数の機能モードに対応して複数設けられ、
複数の機能モジュールのうち、どの機能モジュールが現在実行中かを示すカレント機能モードフラグを設定するカレント機能モード設定手段と、
装置の終了を行う場合、前記カレント機能モードフラグの値を機能モード保存フラグとして保存するシステム終了手段とを備え、
システム起動手段は、前記機能モード保存フラグの値に基づいて、対応した機能モードの起動情報登録テーブルの内容に基づいて機能モジュールの起動を行うことを特徴とする請求項１記載の情報処理装置。
【請求項６】
複数の機能モジュールを有する情報処理装置において、
前記複数の機能モジュールのタスクを遅延起動させるか否かを示す遅延起動フラグをタスク毎に示すタスク登録テーブルと、
装置の起動を行う場合は、前記タスク登録テーブルを参照し、最初に遅延起動フラグが遅延以外のタスクを起動させ、当該遅延以外のタスクの起動が終了した後、前記遅延起動フラグが遅延を示すタスクを起動させるシステム起動手段とを備えた情報処理装置。
【請求項７】
複数の機能モジュールのうち、どの機能モジュールが現在実行中かを示すカレント機能モードフラグを設定するカレント機能モード設定手段と、
装置の終了を行う場合、タスク登録テーブルの遅延起動フラグを、前記カレント機能モードフラグに基づき、実行中であった機能モジュールに対応するタスクの遅延起動フラグを遅延以外に更新するシステム終了手段とを備えた請求項６記載の情報処理装置。
【請求項８】
機能モジュールは、オペレーティングシステムを構成するモジュールであり、システム起動手段はオペレーティングシステムのタスクとして実現されることを特徴とする請求項１から請求項７のうちのいずれか１項記載の情報処理装置。
【請求項９】
機能モジュールは、オペレーティングシステムを構成するモジュールであり、システム起動手段およびシステム終了手段はオペレーティングシステムのタスクとして実現されることを特徴とする請求項２から請求項５および請求項７のうちのいずれか１項記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の機能モジュールがそれぞれ対応した処理を行う情報処理装置に関し、特に、各機能モジュールの起動制御に関するものである。
【背景技術】
【０００２】
従来のシステム（情報処理装置）の起動方法は、システム起動時にどのプログラムを起動するかの一覧を記載した起動リストを設け、その中の起動チェック欄を参照して起動対象プログラムを選択することで、システム起動時間の短縮を図っていた。また、システム稼動中に定期的な動作チェックを行い、個々のプログラムの起動頻度に関して特定条件（実行時間や実行回数）を満たした時に、前記起動チェック欄を更新することで、次回システム起動時に起動するプログラムを決定していた（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開２００６−３２３５４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来のシステム起動方法は、システム起動時に起動対象でなかったプログラムは、その後起動要求があるまで起動されない。このため、情報処理装置の中でも、ユーザ操作をベースとする組込み機器（例えば、情報家電、車載機器、移動体端末等の民生品）において、システム稼動中に初めて利用する機能やサービスの開始要求があると、その時点でプログラム起動処理が行われることとなる。従って、応答性やユーザ操作性が損なわれ、製品の価値を左右することにもなるという新たな問題点が生じる。
【０００５】
一方、近年、単一機能を提供する組込み機器（専用機器）だけでなく、複数機能を合わせ持った組込み機器（複合機器）が市場に出始めている。具体的には、放送番組の視聴と、ビデオ映像や音楽の視聴と、インターネット接続によるショッピングやメール送受信等の機能を提供するデジタルテレビ、カーナビ、携帯電話等が一例である。従来であれば、放送番組の視聴はテレビで、ビデオ映像や音楽の視聴はＡＶプレーヤで、といったように専用機器を使用していたものが、一つの機器に統合され、ユーザの利用シーンに応じて切り替わることが可能となりつつある。
【０００６】
この種の機器では、前回システム終了時に動作していた機能を、次回システム起動時に起動するのが一番相応しいと考えられる。しかしながら、従来のシステム起動方法は、システム稼動中のプログラム毎の起動頻度といった累積的な条件を元に、よく使う機能とそうでない機能という観点で、次回システム起動時に起動するプログラムを選別していた。パソコンのように、一人のユーザが占有する機器であれば、前記の選別基準に利点が生じる場合もあるが、例えばデジタルテレビやカーナビのように複数のユーザで共有する複合機器の場合は必ずしも適切でないという問題点があった。
【０００７】
本発明は上記のような問題点を解決するためになされたもので、システム起動時間の短縮を図ることができると共に、ユーザへの応答性を低下させることのない情報処理装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
この発明に係る情報処理装置は、複数の機能モジュールの起動を遅延させるか否かを示す遅延実行フラグを複数の機能モジュール毎に示す起動情報登録テーブルと、装置の起動を行う場合は、起動情報登録テーブルを参照し、最初に遅延実行フラグが遅延以外の機能モジュールを起動させ、遅延以外の機能モジュールの起動が終了した後、遅延実行フラグが遅延の機能モジュールを起動させるシステム起動手段とを備えたものである。
【発明の効果】
【０００９】
この発明の情報処理装置は、装置の起動を行う場合は、最初に遅延実行フラグが遅延以外の機能モジュールを起動させ、その後、遅延実行フラグが遅延の機能モジュールを起動させるようにしたので、ユーザへの応答性を低下させることなく、システム起動時間の短縮を図ることができる。
【発明を実施するための最良の形態】
【００１０】
実施の形態１．
図１は、この発明の実施の形態１による情報処理装置の機能ブロック図である。
図において、情報処理装置は、複数の機能モジュール１−１，１−２，…，１−ｎ、起動情報登録テーブル２、システム起動手段３を備えている。複数の機能モジュール１−１，１−２，…，１−ｎは、それぞれが所定の処理を行う一つの単位となったプログラムコンポーネントである。
【００１１】
図２は、機能モジュールとユーザプログラムとの関係を示す説明図である。
図において、ユーザプログラムは、情報処理装置に搭載されるアプリケーションやミドルウェアといったプログラムであり、一つ以上の機能モジュールで構成される。また、機能モジュールは、通常、一つ以上のタスクを備えている（図中の機能モジュールｃ３（ライブラリ）を除く）。図中の（ａ）（ｂ）に示すユーザプログラムＡ，Ｂは、一つの機能モジュールａまたは機能モジュールｂで構成されたものであり、（ｃ）に示すユーザプログラムＣは、複数の機能モジュールｃ１，ｃ２，ｃ３からなる構成である。本発明では、いずれの形態であっても１ユーザプログラム＝マルチタスク構成（一つ以上のタスクが存在する）を想定している。また、機能モジュールｂや機能モジュールｃ２で示すように、１機能モジュール＝マルチタスク構成も存在する。このようなユーザプログラムとして、例えば（ｃ）に示すユーザプログラムＣでは、デジタルＴＶアプリケーションといったプログラムがあり、このような場合は、機能モジュールｃ１＝放送視聴、機能モジュールｃ２＝インターネット閲覧、機能モジュールｃ３＝ビデオ視聴（Video On Demand）といった構成となっている。また、機能モジュールｃ２としてインターネット閲覧機能を実現する場合は、タスクとして、通信タスクやブラウザタスク、ＴＶ描画タスクといったタスクが存在する。
【００１２】
図１に戻り、起動情報登録テーブル２は、複数の機能モジュール１−１，１−２，…，１−ｎの起動を遅延させるか否かを示す遅延実行フラグを機能モジュール１−１，１−２，…，１−ｎ毎に示すテーブルであり、その詳細については後述する。また、システム起動手段３は、装置の起動を行う場合は、起動情報登録テーブル２を参照し、最初に遅延実行フラグが遅延以外の機能モジュールを起動させ、遅延以外の機能モジュールの起動が終了した後、遅延実行フラグが遅延の機能モジュールを起動させるよう構成されている。
【００１３】
図３は、実施の形態１の情報処理装置のソフトウェア構成図である。
図において、システム初期化処理タスク１０は、システム（情報処理装置）の起動時にシステム初期化処理を行うタスク、システム初期化遅延実行タスク１１は、初期起動完了通知を受けて遅延実行処理を行うタスクであり、図１におけるシステム起動手段３に対応するタスクである。初期化関数登録テーブル２０は、システムに搭載している各機能モジュールの初期化関数の一覧が登録されているテーブルであり、図１の起動情報登録テーブル２に対応するものである。ここで、初期化関数ポインタ２１は、初期化関数登録テーブル２０における一エントリの構成要素であって、システムに搭載している機能モジュールの初期化関数へのアドレス情報を保持するポインタである。また、遅延実行フラグ２２は、同じく初期化関数登録テーブル２０における一エントリの構成要素であって、初期化関数ポインタ２１が指し示す初期化関数をシステム起動時に実行するか（値＝ゼロ）、後から実行する（遅延実行する）か（値＝非ゼロ）を選別するための情報である。また、初期化関数３０は、システムに搭載している各機能モジュールの初期化関数、タスク３１は、初期化関数３０の中から起動されるタスクである。
【００１４】
次に、実施の形態１の動作について説明する。
図４は、図３に示したソフトウェア構成図に基づくシステム起動時の処理を示すフローチャートである。
図４において、先ず、ステップＳＴ１００で情報処理装置に電源が投入されると、ステップＳＴ１０１でオペレーティングシステム（以下、単にＯＳという）の初期化を行う。その後、ステップＳＴ１０２でシステム初期化遅延実行タスク１１を起動し、システム初期化遅延実行タスク１１はステップＳＴ１０３で初期起動完了通知待ち（休眠状態）となる。
一方、ステップＳＴ１０２の処理の後、引き続きステップＳＴ１０４でシステム初期化処理タスク１０を起動する。以降の処理は、システム初期化処理タスク１０の処理であり、先ず、ステップＳＴ１０５で初期化関数登録テーブル２０の各エントリを先頭から順番に検索していく。ステップＳＴ１０６で初期化関数登録テーブル２０内の最初のエントリの遅延実行フラグ２２を参照し、値がゼロであれば、ステップＳＴ１０７に進む。遅延実行フラグ２２の値がゼロの場合は、遅延実行の対象でないと判断され、ステップＳＴ１０７で遅延実行フラグ２２と同じエントリ内の初期化関数ポインタ２１を参照し、初期化関数３０を呼び出す。ステップＳＴ１０８で、呼び出された初期化関数３０が実行され、この中で必要に応じてタスク３１を起動する。また、ステップＳＴ１０６で、遅延実行フラグ２２の値が非ゼロの場合は、ステップＳＴ１０７の処理をスキップし、従って当該エントリの初期化関数３０の呼出しを行わない。以上が、初期化関数登録テーブル２０の一エントリ分の処理であり、引き続きステップＳＴ１０５に戻り、初期化関数登録テーブル２０の終端エントリに達するまで処理を繰り返す。最後に、システム初期化処理タスク１０は、ステップＳＴ１０９で初期起動完了通知を発行して終了する、あるいはシステム定常状態の動作モードに移行していく。
【００１５】
次に、ステップＳＴ１０３で休眠状態となっていたシステム初期化遅延実行タスク１１は、ステップＳＴ１０９で発行された初期起動完了通知を受信すると起床する。以降の処理はシステム初期化遅延実行タスク１１の処理である。先ず、ステップＳＴ１１０で初期化関数登録テーブル２０の各エントリを先頭から順番に検索していく。ステップＳＴ１１１で初期化関数登録テーブル２０内の最初のエントリの遅延実行フラグ２２を参照し、値が非ゼロであれば、ステップＳＴ１１２に進む。このステップＳＴ１１１の条件判定は、前記のステップＳＴ１０６を反転したものであり、遅延実行フラグ２２の値が非ゼロの場合は、遅延実行の対象であると判断する。ステップＳＴ１１２で遅延実行フラグ２２と同じエントリ内の初期化関数ポインタ２１を参照し、初期化関数３０を呼び出す。ステップＳＴ１１３で、呼び出された初期化関数３０が実行され、この中で必要に応じてタスク３１を起動する。また、ステップＳＴ１１１で、遅延実行フラグ２２の値がゼロの場合は、ステップＳＴ１１２の処理をスキップし、従って当該エントリの初期化関数３０の呼出しを行わない。以上が、初期化関数登録テーブル２０の一エントリ分の処理であり、引き続きステップＳＴ１１０に戻り、初期化関数登録テーブル２０の終端エントリに達するまで処理を繰り返し、終了する。
【００１６】
即ち、図３中に示すように、（１）システム初期化処理タスク１０の実行→（２）初期起動完了通知→（３）システム初期化遅延実行タスク１１による遅延実行の順で起動処理が行われる。
【００１７】
尚、本実施の形態１では、ステップＳＴ１０９の初期起動完了通知をシステム初期化処理タスク１０が発行するようにしたが、ステップＳＴ１０７で呼び出した初期化関数３０のそれぞれが初期起動完了通知を発行するようにし、システム初期化遅延実行タスク１１は、特定の初期起動完了通知、あるいはいくつかの初期起動完了通知の論理積（ＡＮＤ）で待ち合わせるようにしてもよい。
また、本実施の形態１では、システム初期化処理タスク１０とは別に、システム初期化遅延実行タスク１１を設けたが、システム初期化処理タスク１０自身が初期起動完了通知を契機として、遅延実行処理を行うようにしてもよい。
更に、本実施の形態１では、初期化関数３０やタスク３１は情報処理装置に搭載されるアプリケーションやミドルウェア（ライブラリ）といったユーザプログラム（ユーザが開発する機能モジュール群）を想定したが、これに限定されるものではなく、例えばシステム初期化処理タスク１０やシステム初期化遅延実行タスク１１をＯＳ内のシステムタスクとして実現した上で、ＯＳ機能モジュールや、各種ハードウェア・デバイスの制御ソフトウェアであるデバイスドライバ等に適用してもよい。
【００１８】
以上のように、実施の形態１の情報処理装置によれば、複数の機能モジュールを有する情報処理装置において、複数の機能モジュールの起動を遅延させるか否かを示す遅延実行フラグを複数の機能モジュール毎に示す起動情報登録テーブルと、装置の起動を行う場合は、起動情報登録テーブルを参照し、最初に遅延実行フラグが遅延以外の機能モジュールを起動させ、遅延以外の機能モジュールの起動が終了した後、遅延実行フラグが遅延の機能モジュールを起動させるシステム起動手段とを備えたので、システム起動時間を短縮でき、従ってシステム起動後最初にユーザに提供したい機能やサービスをより早く開始することができる。更に、その後システム稼動中に初めて利用する機能やサービスの開始要求が発生した時も、遅延実行により、搭載されている機能モジュールは既に起動しているため、ユーザへの応答性を低下させることなく、高速に次の機能やサービスに遷移することができる。
【００１９】
また、実施の形態１の情報処理装置によれば、機能モジュールをオペレーティングシステムを構成するモジュールとし、システム起動手段をオペレーティングシステムのタスクとして実現するようにしたので、オペレーティングシステムの起動時間を短縮でき、更にシステム起動時間の短縮を図ることができる。
【００２０】
実施の形態２．
実施の形態１では、初期化関数登録テーブル２０内の各遅延実行フラグ２２は予め静的に設定されているものとしていたが、次に、実施の形態２として、システム終了時に動作していた機能モジュール群の初期化関数３０を次回システム起動時に初期実行し、その他の機能モジュール群の初期化関数３０を遅延実行するように、遅延実行フラグ２２を更新するようにした例を説明する。
【００２１】
図５は、実施の形態２による情報処理装置の機能ブロック図である。
実施の形態２の情報処理装置は、機能モジュール１−１，１−２，…，１−ｎ、起動情報登録テーブル２、システム起動手段３、カレント機能モード設定手段４、システム終了手段５を備えている。ここで、機能モジュール１−１，１−２，…，１−ｎ〜システム起動手段３の構成については図１に示した実施の形態１と同様であるため、ここでの説明は省略する。カレント機能モード設定手段４は、複数の機能モジュール１−１，１−２，…，１−ｎのうち、どの機能モジュール１−１，１−２，…，１−ｎが現在実行中かを示すカレント機能モードフラグ４０を設定する機能部である。また、システム終了手段５は、装置の終了を行う場合、その時点のカレント機能モードフラグ４０の値に基づいて起動情報登録テーブル２の遅延実行フラグの値を更新する機能を有している。即ち、カレント機能モードフラグ４０に対応する機能モジュールの遅延実行フラグを遅延以外の状態に更新し、それ以外の機能モジュールの遅延実行フラグを遅延状態に更新する。
【００２２】
図６は、実施の形態２の情報処理装置のソフトウェア構成図である。
図６において、システム終了処理タスク１２は、システムの終了要求があった時に動作し、情報処理装置に搭載されている機能モジュール群の終了処理を行うタスクであり、図５におけるシステム終了手段５に対応している。即ち、システム終了処理タスク１２は、システム稼動中における現在の機能モードを示すカレント機能モードフラグ４０の値に基づいて初期化関数登録テーブル２０における遅延実行フラグ２２の値を更新する。ここで、機能モードとは、例えば放送番組の視聴、ビデオ映像や音楽の視聴、インターネット接続（ショッピングやメール送受信）等のユーザ利用シーンに対応した機能種別（機能セット）を指す。その他の、システム初期化処理タスク１０やシステム初期化遅延実行タスク１１といった構成要素は、実施の形態１の図３と同様である。
【００２３】
次に、実施の形態２の動作について説明する。
図７は、図６に示したソフトウェア構成図に基づくシステム終了時の処理フローを示す図である。
図７において、先ず、ステップＳＴ２００でシステム稼動中にユーザ操作に基づく機能モード切替え要求がある度に、カレント機能モード設定手段４は、ステップＳＴ２０１でカレント機能モードフラグ４０を新しい機能モードを示す値に更新する（図６中、（１）機能モード切替え（更新））。次に、ステップＳＴ２０２でユーザ操作に基づくシステム終了要求があると、システム終了手段５は、ステップＳＴ２０３でシステム終了処理タスク１２を起床する。以降の処理はシステム終了処理タスク１２の処理であり、先ずステップＳＴ２０４で初期化関数登録テーブル２０の各エントリを先頭から順番に検索していく。ステップＳＴ２０５で前記のカレント機能モードフラグ４０を参照した上で、カレント機能モードフラグ４０を最後に更新した後に動作した機能モジュール１−１，１−２，…，１−ｎに対応するエントリかを判定する。
【００２４】
判定方法の一例としては、各機能モジュールの初期化関数３０から起動されたタスク３１のアカウンティング情報（動作時間情報）を元に、動作中の機能モジュールを選別する。当該エントリが動作中の機能モジュールであった場合、ステップＳＴ２０６で初期化関数登録テーブル２０内の最初のエントリの遅延実行フラグ２２にゼロ（非遅延状態）を設定する。また、当該エントリが動作中の機能モジュールでなかった場合、ステップＳＴ２０７で初期化関数登録テーブル２０内の最初のエントリの遅延実行フラグ２２に非ゼロ（遅延状態）を設定する。その後、ステップＳＴ２０８で当該機能モジュールの終了処理関数を呼び出す。以上が、初期化関数登録テーブル２０の一エントリ分の処理であり、引き続きステップＳＴ２０４に戻り、初期化関数登録テーブル２０の終端エントリに達するまで処理を繰り返す（図６中、（２）更新）。最後に、システム終了処理タスク１２の処理を終了し、ステップＳＴ２０９でシステム（ＯＳ）の終了処理に移行する。
【００２５】
そして、次回、情報処理装置に電源が投入されると、実施の形態１の図４を用いて説明したシステム起動時の処理フローに従って遅延実行処理が行われる。即ち、図６中に示すように、（３）次回システム起動→（４）システム初期化処理タスク１０の実行→（５）初期起動完了通知→（６）システム初期化遅延実行タスク１１による遅延実行の順で起動処理が行われる。
【００２６】
尚、本実施の形態２では、初期化関数３０やタスク３１は情報処理装置に搭載されるアプリケーションやミドルウェア（ライブラリ）といったユーザプログラム（ユーザが開発する機能モジュール群）を想定したが、これに限定されるものではなく、例えばシステム初期化処理タスク１０やシステム初期化遅延実行タスク１１やシステム終了処理タスク１２をＯＳ内のシステムタスクとして実現した上で、ＯＳ機能モジュールや、各種ハードウェア・デバイスの制御ソフトウェアであるデバイスドライバ等に適用してもよい。
【００２７】
以上のように、実施の形態２の情報処理装置によれば、複数の機能モジュールのうち、どの機能モジュールが現在実行中かを示すカレント機能モードフラグを設定するカレント機能モード設定手段と、装置の終了を行う場合、起動情報登録テーブルの遅延実行フラグを、カレント機能モードフラグに基づき、実行中であった機能モジュールに対応する遅延実行フラグを遅延以外に更新するシステム終了手段とを備えたので、次回システム起動時に、前回システム終了直前の機能モードに対応する機能やサービスをより早く開始することができる。
【００２８】
また、実施の形態２の情報処理装置によれば、機能モジュールをオペレーティングシステムを構成するモジュールとし、システム起動手段およびシステム終了手段をオペレーティングシステムのタスクとして実現するようにしたので、オペレーティングシステムの起動時間を短縮でき、更にシステム起動時間の短縮を図ることができる。
【００２９】
実施の形態３．
実施の形態２では、システム終了処理タスク１２がシステム終了直前の機能モジュールの動作状況を反映して遅延実行フラグ２２を更新し、次回システム起動時に前回システム終了時に動作していた機能モジュールを最初に起動し、残りの機能モジュールを遅延実行するようにしたものであるが、次に、実施の形態３として、初期化関数登録テーブル２０内の遅延実行フラグ２２の構成を、その情報処理装置が提供する機能モード別に設けた上で、前回システム終了直前の機能モードを保存しておき、当該機能モードに対応する遅延実行フラグ２２の列を参照しながら遅延実行を行う例を説明する。ここで機能モードとは、例えば放送番組の視聴、ビデオ映像や音楽の視聴、インターネット接続等のユーザ利用シーンに対応した機能種別（機能セット）を指す。
【００３０】
図８は、実施の形態３の情報処理装置の機能ブロック図である。
図において、情報処理装置は、機能モジュール１−１，１−２，…，１−ｎ、起動情報登録テーブル２ａ、システム起動手段３ａ、カレント機能モード設定手段４、システム終了手段５ａを備えている。ここで、機能モジュール１−１，１−２，…，１−ｎは、実施の形態１、２と同様のプログラムコンポーネントである。また、起動情報登録テーブル２ａは、後述する図９に示すように、複数の機能モードに対応した遅延実行フラグを備えたテーブルである。システム起動手段３ａは、システム終了手段５ａによって設定される機能モード保存フラグ４１の値に対応した起動情報登録テーブル２における機能モードの遅延実行フラグに基づいて機能モジュール１−１，１−２，…，１−ｎの起動を行うよう構成されている。システム終了手段５ａは、装置の終了を行う場合、カレント機能モード設定手段４によって設定されるカレント機能モードフラグ４０の値を機能モード保存フラグ４１として保存する機能を有している。尚、カレント機能モード設定手段４の構成は実施の形態２と同様である。
【００３１】
図９は、実施の形態３の情報処理装置におけるソフトウェア構成図である。
図示のように、初期化関数登録テーブル２０の遅延実行フラグ２２は、ｍｏｄｅＡ（２２Ａ）、ｍｏｄｅＢ（２２Ｂ）、ｍｏｄｅＣ（２２Ｃ）といったように、機能モード毎の遅延実行フラグを格納するよう構成されている。これらｍｏｄｅＡ（２２Ａ）〜Ｃ（２２Ｃ）は、前回システム終了直前の機能モードに応じて、初期化関数ポインタ２１が指し示す初期化関数３０をシステム起動時に実行するか（値＝ゼロ）、後から実行する（遅延起動する）か（値＝非ゼロ）を選別するために参照する機能モードに対応した列である。また、機能モード保存フラグ４１は、システム終了処理タスク１２によって、前回システム終了直前の機能モードを不揮発性媒体に保持するフラグである。その他の構成要素は実施の形態２の図６と同様である。
【００３２】
次に、実施の形態３の動作について説明する。
図１０は、図９に示したソフトウェア構成図に基づくシステム終了時の処理フローを示す図である。
図１０において、ステップＳＴ２００からＳＴ２０３までは、実施の形態２の図７と同様である。以降の処理はシステム終了処理タスク１２の処理であり、先ず、ステップＳＴ２０８で当該機能モジュールの終了処理関数を呼出す。その後、ステップＳＴ２１０でカレント機能モードフラグ４０の値を機能モード保存フラグ４１に設定する（図９における（１）保存処理）。システム終了処理タスク１２の処理は以上であり、ステップＳＴ２０９でシステム（ＯＳ）終了処理に移行する。
【００３３】
図１１は、図９に示したソフトウェア構成図に基づくシステム起動時の処理フローを示す図である。
図１１において、実施の形態１の図４との相違点に着目し説明する。先ず、システム初期化処理タスク１０の処理について、ステップＳＴ１１４で機能モード保存フラグ４１を参照して、前回システム終了直前の機能モードの値を取得する。例えば、機能モード保存フラグ４１の値が「ｍｏｄｅＢ」であったとする。次に、ステップＳＴ１０５からステップＳＴ１０８の繰り返し処理で、初期化関数登録テーブル２０内の遅延実行フラグ２２の列「ｍｏｄｅＢ」２２Ｂを参照し、ゼロ（非遅延状態）のエントリに対して初期化関数３０の呼出しを行う。一方、システム初期化遅延実行タスク１１の処理について、ステップＳＴ１０３の初期起動完了通知待ちが解除された後、ステップＳＴ１１５で機能モード保存フラグ４１を参照して、前回システム終了直前の機能モードの値を取得する。次に、ステップＳＴ１１０からステップＳＴ１１３の繰り返し処理で、初期化関数登録テーブル２０内の遅延実行フラグ２２の列「ｍｏｄｅＢ」２２Ｂを参照し、非ゼロ（遅延状態）のエントリに対して初期化関数３０の呼出し（遅延実行）を行う。
【００３４】
即ち、システムの起動は、図９中に示すように、（２）次回システム起動→（３）システム初期化処理タスク１０による機能モード保存フラグ４１の参照→（４）システム初期化処理タスク１０の実行→（５）初期起動完了通知→（６）システム初期化遅延実行タスク１１による機能モード保存フラグ４１の参照→（７）システム初期化遅延実行タスク１１による遅延実行の順で行われる。
【００３５】
尚、本実施の形態３では、初期化関数３０やタスク３１は情報処理装置に搭載されるアプリケーションやミドルウェア（ライブラリ）といったユーザプログラム（ユーザが開発する機能モジュール群）を想定したが、これに限定されるものではなく、例えばシステム初期化処理タスク１０やシステム初期化遅延実行タスク１１やシステム終了処理タスク１２をＯＳ内のシステムタスクとして実現した上で、ＯＳ機能モジュールや、各種ハードウェア・デバイスの制御ソフトウェアであるデバイスドライバ等に適用してもよい。
【００３６】
以上のように、実施の形態３の情報処理装置によれば、起動情報登録テーブルは、各機能モジュールの遅延実行フラグを機能モード毎に有すると共に、複数の機能モジュールのうち、どの機能モジュールが現在実行中かを示すカレント機能モードフラグを設定するカレント機能モード設定手段と、装置の終了を行う場合、カレント機能モードフラグの値を機能モード保存フラグとして保存するシステム終了手段とを備え、システム起動手段は、起動情報登録テーブルの機能モード保存フラグの値に対応した機能モードの遅延実行フラグに基づいて機能モジュールの起動を行うようにしたので、前回システム終了直前の機能モードに対応する機能モジュール群だけを過不足なく、より早く起動することができる。
【００３７】
実施の形態４．
実施の形態３では、システム終了処理タスク１２がシステム終了直前の機能モードを機能モード保存フラグ４１に保存すると共に、次回システム起動時にシステム初期化処理タスク１０及びシステム初期化遅延実行タスク１１が機能モード別に定義された初期化関数登録テーブル２０内の遅延実行フラグ２２の列を参照し、初期実行すべき初期化関数３０と遅延実行すべき初期化関数３０を選別するようにしたが、次に、実施の形態４として、初期化関数登録テーブル２０内の遅延実行フラグ２２の値をゼロと非ゼロに二分するのはなく、システム終了直前に動作中でなかった機能モジュールの遅延実行フラグ２２をプラス１した値に更新し、システム初期化遅延実行タスク１１は前記の遅延実行フラグ２２の値の範囲に応じて段階的に遅延実行を行う例を説明する。
【００３８】
実施の形態４の情報処理装置における図面上の機能ブロックについては実施の形態２の図５に示した構成と同様であるため、図５を援用して説明する。実施の形態４の起動情報登録テーブル２は、後述する図１２に示すように、遅延させる順番に対応した複数段階の遅延実行フラグが設定可能に構成されている。また、システム終了手段５は、装置の終了を行う場合、カレント機能モードフラグ４０の値に基づいて、実行中ではなかった機能モジュールに対応した遅延実行フラグの値を遅延が大きい側に変更する、即ち、値を＋１するよう構成されている。更に、システム起動手段３は、起動情報登録テーブル２の遅延実行フラグの値が遅延の小さい順に機能モジュール１−１，１−２，…，１−ｎの遅延起動を行うよう構成されている。これ以外の構成については実施の形態２の情報処理装置と同様である。
【００３９】
図１２は、実施の形態４の情報処理装置におけるソフトウェア構成図である。
図１２において、各構成要素の基本的構成は実施の形態２の図６と同様である。但し、図中の初期化関数登録テーブル２０の遅延実行フラグ２２において、ゼロと非ゼロ以外の数値が設定可能に構成されている点と、システム終了処理タスク１２およびシステム初期化遅延実行タスク１１の処理内容が異なる。
【００４０】
次に、実施の形態４の動作について説明する。
図１３は、図１２に示したソフトウェア構成図に基づくシステム終了時の処理フローを示す図である。
図１３において、実施の形態２の図７との相違点に着目して説明する。先ず、システム終了処理タスク１２の処理について、ステップＳＴ２０４で初期化関数登録テーブル２０の各エントリを先頭から順番に検索していく。ステップＳＴ２０５でカレント機能モードフラグ４０を参照し、カレント機能モードフラグ４０を最後に更新した後に動作した機能モジュールに対応するエントリかを判定する。判定方法の一例としては、各機能モジュールの初期化関数３０から起動されたタスク３１のアカウンティング情報（動作時間情報）を元に、動作中の機能モジュールを選別する。当該エントリが動作中の機能モジュールであった場合、ステップＳＴ２０６で初期化関数登録テーブル２０内の最初のエントリの遅延実行フラグ２２に非遅延状態であるゼロを設定する。また、当該エントリが動作中の機能モジュールでなかった場合、ステップＳＴ２１１で初期化関数登録テーブル２０内の最初のエントリの遅延実行フラグ２２に現在の値に１加算した値を設定する。即ち、遅延状態を１段階増加させる。その後、ステップＳＴ２０８で当該機能モジュールの終了処理関数を呼び出す。以上が、初期化関数登録テーブル２０の一エントリ分の処理であり、引き続きステップＳＴ２０４に戻り、初期化関数登録テーブル２０の終端エントリに達するまで処理を繰り返す（図１２における（１）機能モード切替えと（２）遅延実行フラグの更新に相当する）。最後に、ステップＳＴ２０９でシステム（ＯＳ）終了処理に移行する。
【００４１】
図１４は、図１２に示したソフトウェア構成図に基づくシステム起動時の処理フローを示す図である。これは、図１３に示したシステム終了時の処理フローを実行後、次回システムを起動した時の処理フローである。
図１４において、実施の形態３の図１１との相違点に着目し説明する。システム初期化遅延実行タスク１１の処理について、ステップＳＴ１０３の初期起動完了通知待ちが解除された後、ステップＳＴ１１６で初期化関数登録テーブル２０の各エントリに対して、遅延実行フラグ２２を参照し、その値が１ならば、当該エントリの初期化関数ポインタ２１を介して初期化関数３０の呼出し（最初の遅延実行）を行う。また、同値が１でなければ当該エントリをスキップし、初期化関数登録テーブル２０の終端エントリに達するまで処理を繰り返す。その後、ステップＳＴ１１７でＯＳ機能を用いたタイムアウト設定を行い、自らを一定時間の処理待ち状態にする。
【００４２】
指定時間が経過すると、ステップＳＴ１１８でタイムアウト通知を受けて、待ち状態から復帰する。ステップＳＴ１１９で初期化関数登録テーブル２０の各エントリに対して、遅延実行フラグ２２を参照し、その値が１より大きく、かつ３より小さいならば、当該エントリの初期化関数ポインタ２１を介して初期化関数３０の呼出し（第二弾の遅延実行）を行う。また、同値が前記条件に該当しなければ当該エントリをスキップし、初期化関数登録テーブル２０の終端エントリに達するまで処理を繰り返す。最後に、ステップＳＴ１２０とステップＳＴ１２１で、前記のステップＳＴ１１７及びステップＳＴ１１８と同様の処理を実行した後、ステップＳＴ１２２で初期化関数登録テーブル２０の各エントリに対して、遅延実行フラグ２２を参照し、その値が３以上ならば、当該エントリの初期化関数ポインタ２１を介して初期化関数３０の呼出し（第三弾の遅延実行）を行う。
【００４３】
即ち、システムの起動は、図１２中に示すように、（３）次回システム起動→（４）システム初期化処理タスク１０の実行→（５）初期起動完了通知→（６）システム初期化遅延実行タスク１１による遅延実行→（７）タイマ起床／イベント起床→（８）第二弾の遅延実行→（９）第三弾の遅延実行の順で行われる。
【００４４】
尚、本実施の形態４では、段階的に遅延実行を行うための遅延実行フラグ２２の境界値として、１と３を用い三段階の遅延実行の例を示したが、これに限定されるものではなく、遅延実行フラグ２２の境界値や遅延実行の分割回数は、適用する情報処理装置に応じて定義してよい。また、段階的に遅延実行を行う際のシステム初期化遅延実行タスク１１のタイムアウト時間についても、段階毎に個別のタイムアウト時間を設定してもよいし、動的に変更してもよい。
また、本実施の形態４では、段階的に遅延実行を行う際のシステム初期化遅延実行タスク１１の待ち合わせ方法として、時間ベースのタイムアウト待ちの例を示したが、これに限定されるものではなく、時間以外の何らかのイベント通知を契機に待ち合わせを解除するようにしてもよい。
【００４５】
更に、本実施の形態４では、初期化関数３０やタスク３１は情報処理装置に搭載されるアプリケーションやミドルウェア（ライブラリ）といったユーザプログラム（ユーザが開発する機能モジュール群）を想定したが、これに限定されるものではなく、例えばシステム初期化処理タスク１０やシステム初期化遅延実行タスク１１やシステム終了処理タスク１２をＯＳ内のシステムタスクとして実現した上で、ＯＳ機能モジュールや、各種ハードウェア・デバイスの制御ソフトウェアであるデバイスドライバ等に適用してもよい。
【００４６】
以上のように、実施の形態４の情報処理装置によれば、起動情報登録テーブルの遅延実行フラグは、複数の値が設定可能に構成されると共に、複数の機能モジュールのうち、どの機能モジュールが現在実行中かを示すカレント機能モードフラグを設定するカレント機能モード設定手段と、装置の終了を行う場合、カレント機能モードフラグの値に基づいて、実行中ではなかった機能モジュールに対応した遅延実行フラグの値を遅延が大きい側に変更するシステム終了手段とを備え、システム起動手段は、起動情報登録テーブルの遅延実行フラグの値が遅延の小さい順に機能モジュールの遅延起動を行うようにしたので、利用回数の少ない機能やサービスほど後からゆっくり遅延実行することになり、システム起動時の初期化処理の負荷を平坦化することができる。また、それにより、システム起動後最初にユーザに提供した機能やサービスに対する次のユーザ操作に対する応答性を改善することができる。
【００４７】
実施の形態５．
実施の形態３では、初期化関数登録テーブル２０内の遅延実行フラグ２２の構成を、その情報処理装置が提供する機能モード別に設けたが、次に、実施の形態５として、初期化関数登録テーブル２０の構成を、その情報処理装置が提供する機能モード別に分割して複数設けた上で、前回システム終了直前の機能モードを保存しておき、当該機能モードに対応する初期化関数登録テーブル２０を参照しながら遅延実行を行う例を説明する。ここで機能モードとは、例えば放送番組の視聴、ビデオ映像や音楽の視聴、インターネット接続等のユーザ利用シーンに対応した機能種別（機能セット）を指す。
【００４８】
実施の形態５の情報処理装置における図面上の構成については、実施の形態３の図８に示した構成と同様であるため、図８を援用して説明する。実施の形態５の起動情報登録テーブル２ａは、後述する図１５に示すように、それぞれが機能モードに対応した複数の初期化関数登録テーブル２０Ａ，２０Ｂ，２０Ｃとして構成されている。また、システム起動手段３ａは、機能モード保存フラグ４１の値に基づいて、対応した機能モードの初期化関数登録テーブル２０Ａ，２０Ｂ，２０Ｃの内容に基づいて機能モジュール１−１，１−２，…，１−ｎの起動を行うよう構成されている。これ以外の構成については実施の形態３の情報処理装置と同様である。
【００４９】
図１５は、実施の形態５の情報処理装置におけるソフトウェア構成図である。
図１５において、初期化関数登録テーブル２０Ａ，２０Ｂ，２０Ｃは、機能モード別の初期化関数登録テーブルであって、それぞれの初期化関数登録テーブル２０Ａ，２０Ｂ，２０Ｃは、各機能モードに必要な機能モジュール群の初期化関数ポインタ２１だけから構成される。ここで、初期化関数登録テーブル２０ＡはｍｏｄｅＡ、初期化関数登録テーブル２０ＢはｍｏｄｅＢ、初期化関数登録テーブル２０Ｃは、ｍｏｄｅＣに対応したテーブルである。その他の構成要素の基本的な構成は実施の形態３と同様であるが、システム初期化処理タスク１０とシステム初期化遅延実行タスク１１の処理内容が異なる。この具体的な動作については以下で説明する。
【００５０】
次に、実施の形態５の動作について説明する。
まず、図１５に示したソフトウェア構成図に基づくシステム終了時の処理フローは実施の形態３の図１０を用いて説明した内容と同じであるため、ここでは省略する。
図１６は、図１５に示したソフトウェア構成図に基づくシステム起動時の処理フローを示す図である。
【００５１】
図１６において、実施の形態３の図１１との相違点に着目し説明する。先ず、システム初期化処理タスク１０の処理について、ステップＳＴ１２３で機能モード保存フラグ４１を参照して、前回システム終了直前の機能モードの値を取得し、例えば、機能モード保存フラグ４１の値が「ｍｏｄｅＢ」であったとすると、対応する初期化関数登録テーブル２０Ｂを特定する。次に、ステップＳＴ１２４で前記の初期化関数登録テーブル２０Ｂ内の終端エントリまで順番に検索し、ステップＳＴ１０７とステップＳＴ１０８で初期化関数ポインタ２１を参照し、初期化関数３０を実行する。一方、システム初期化遅延実行タスク１１の処理について、ステップＳＴ１０３の初期起動完了通知待ちが解除された後、ステップＳＴ１２５で機能モード保存フラグ４１を参照して、前回システム終了直前の機能モードの値を取得し、このモード値以外の機能モードに対応する初期化関数登録テーブル２０Ａと２０Ｃを特定する。次に、ステップＳＴ１２６で、まず初期化関数登録テーブル２０Ａ内の終端エントリまで順番に検索し、ステップＳＴ１１２とステップＳＴ１１３で初期化関数ポインタ２１を参照し、初期化関数３０を実行する。引き続き、初期化関数登録テーブル２０Ｃに対しても、同様の処理を行う。
【００５２】
即ち、システムの起動は、図１５中に示すように、システム終了処理タスク１２で機能モード保存フラグ４１の保存（１）が行われた後、（２）次回システム起動→（３）システム初期化処理タスク１０による機能モード保存フラグ４１の参照→（４）システム初期化処理タスク１０の実行→（５）初期起動完了通知→（６）システム初期化遅延実行タスク１１による機能モード保存フラグ４１の参照→（７）システム初期化遅延実行タスク１１による遅延実行の順で行われる。
【００５３】
以上のように、実施の形態５の情報処理装置によれば、起動情報登録テーブルは、複数の機能モードに対応して複数設けられ、複数の機能モジュールのうち、どの機能モジュールが現在実行中かを示すカレント機能モードフラグを設定するカレント機能モード設定手段と、装置の終了を行う場合、カレント機能モードフラグの値を機能モード保存フラグとして保存するシステム終了手段とを備え、システム起動手段は、機能モード保存フラグの値に基づいて、対応した機能モードの起動情報登録テーブルの内容に基づいて機能モジュールの起動を行うようにしたので、前回システム終了直前の機能モードに対応する機能モジュール群だけを過不足なく、より早く起動することができると共に、機能モードに変更や増減があった場合でも、テーブル構造の変更等が不要で変更部分の局所化が可能といったようにメンテナンスが容易であり、従って情報処理装置としての品質低下を防止することができる。
【００５４】
実施の形態６．
以上の実施の形態１〜５では、起動の管理として機能モジュール毎に行ったが、次に、実施の形態６として、起動の管理をタスク毎に行う例を説明する。
実施の形態６の情報処理装置における図面上の機能ブロックについては実施の形態１の図１に示した構成と同様であるため、図１を援用して説明する。実施の形態６の起動情報登録テーブル２は、後述する図１７に示すように、複数の機能モジュール１−１，１−２，…，１−ｎのタスクを遅延起動させるか否かを示す遅延起動フラグをタスク毎に示している。また、システム起動手段３は、装置の起動を行う場合、起動情報登録テーブル２を参照し、最初に遅延起動フラグが遅延以外のタスクを起動させ、遅延以外のタスクの起動が終了した後、遅延起動フラグが遅延を示すタスクを起動させるよう構成されている。
【００５５】
図１７は、実施の形態６の情報処理装置のソフトウェア構成図である。
図１７において、システム初期化処理タスク１０は、各実施の形態のシステム初期化処理タスク１０と同様にシステム起動時にシステム初期化処理を行うタスクである。また、システム初期化遅延実行タスク１３は、起動タスクの遅延起動処理を行うタスクである。タスク起動ＡＰＩ関数１４は、タスクの通常（初期）起動処理を行うＯＳのＡＰＩ関数、タスク遅延起動ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）関数１５は、タスクの遅延起動処理を行うＯＳのＡＰＩ関数、初期化関数３０は、システムに搭載している各機能モジュールの初期化関数、タスク３１は、起動されるタスクである。以上の、システム初期化処理タスク１０〜タスク遅延起動ＡＰＩ関数１５および初期化関数３０がシステム起動手段３に対応している。
【００５６】
タスク登録テーブル５０は、起動情報登録テーブル２に対応する構成であり、次の各エントリの値を保持している。即ち、タスク名５１は起動タスクの名前を記載したエントリ、遅延起動フラグ５２は、タスク名５１に記載された起動タスクをシステム起動時に起動するか（値＝ゼロ）、後から起動する（遅延起動する）か（値＝非ゼロ）を選別するためのフラグである。優先度５３は、起動タスクの実行優先度を示している。ポインタ５４は、起動タスクのエントリ関数を指し示すポインタである。
【００５７】
次に、実施の形態６の動作について説明する。
図１８は、図１７に示したソフトウェア構成図に基づくシステム起動時の処理フローを示す図である。
図１８において、先ず、ステップＳＴ１００で情報処理装置に電源が投入されると、ステップＳＴ１０１でＯＳの初期化を行う。その後、ステップＳＴ１０２でシステム初期化遅延起動タスク１３を起動し、システム初期化遅延起動タスク１３はステップＳＴ１０３で初期起動完了通知待ち（休眠状態）となる。
一方、前記ステップＳＴ１０２の処理の後、引き続きステップＳＴ１０４でシステム初期化処理タスク１０を起動する。以降はシステム初期化処理タスク１０の処理であり、先ずステップＳＴ１２７で初期化関数３０を順番に呼び出していく。ステップＳＴ１０８で初期化関数３０を実行し、ステップＳＴ１２８で当該機能モジュール用に起動すべきタスクが存在する場合は、タスク起動ＡＰＩ関数１４を呼び出す。ステップＳＴ１２９からタスク起動ＡＰＩ関数１４内では、タスク登録テーブル５０を参照し、同テーブル内のタスク名５１が一致するエントリの遅延起動フラグ５２がゼロであれば、ステップＳＴ１３０で同エントリ内の優先度５３付きで、ポインタ５４を介してタスクを起動する。また、当該遅延起動フラグ５２が非ゼロであれば、タスクの起動をスキップする。以上が、一つの初期化関数３０に対する処理であり、引き続きステップＳＴ１２７に戻り、最後の初期化関数３０に達するまで処理を繰り返す。最後に、システム初期化処理タスク１０は、ステップＳＴ１０９で初期起動完了通知を発行して終了する、あるいはシステム定常状態の動作モードに移行していく。
【００５８】
次に、ステップＳＴ１０３で休眠状態となっていたシステム初期化遅延起動タスク１３は、ステップＳＴ１０９で発行された初期起動完了通知を受信すると起床する。以降はシステム初期化遅延起動タスク１３の処理であり、先ずステップＳＴ１３１でタスク遅延起動ＡＰＩ関数１５を呼び出す。ステップＳＴ１３２からタスク遅延起動ＡＰＩ関数１５内では、タスク登録テーブル５０の各エントリを順番に検索していく。ステップＳＴ１３３でタスク登録テーブル５０内の遅延起動フラグ５２を参照し非ゼロであれば、ステップＳＴ１３４で同エントリ内の優先度５３付きで、ポインタ５４を介してタスクを起動する。また、当該遅延起動フラグ５２がゼロであれば、タスクの起動処理をスキップする。引き続きステップＳＴ１３２に戻り、タスク登録テーブル５０の終端エントリに達するまで処理を繰り返し、終了する。
【００５９】
即ち、図１７中に示すように、（１）システム初期化処理タスク１０の実行→（２）タスク起動ＡＰＩ関数１４による起動→（３）初期起動完了通知→（４）タスク遅延起動ＡＰＩ関数１５による遅延起動の順で起動処理が行われる。
【００６０】
尚、本実施の形態６では、ステップＳＴ１０９の初期起動完了通知において、システム初期化処理タスク１０が発行するようにしたが、ステップＳＴ１０８で呼び出した初期化関数３０のそれぞれが初期起動完了通知を発行するようにし、システム初期化遅延起動タスク１３は、特定の初期起動完了通知、またはいくつかの初期起動完了通知の論理積（ＡＮＤ）で待ち合わせる、またはタイムアウト起床等の特定のイベント通知で待ち合わせるようにしてもよい。
また、本実施の形態６では、システム初期化処理タスク１０とは別に、システム初期化遅延起動タスク１３を設けたが、システム初期化処理タスク１０自身が初期起動完了通知を契機として、遅延起動処理を行うようにしてもよい。
更に、本実施の形態６では、初期化関数３０やタスク３１は情報処理装置に搭載されるアプリケーションやミドルウェア（ライブラリ）といったユーザプログラム（ユーザが開発する機能モジュール群）を想定したが、これに限定されるものではなく、例えばシステム初期化処理タスク１０やシステム初期化遅延起動タスク１３をＯＳ内のシステムタスクとして実現した上で、ＯＳ機能モジュールや、各種ハードウェア・デバイスの制御ソフトウェアであるデバイスドライバ等に適用してもよい。
【００６１】
以上のように、実施の形態６の情報処理装置によれば、複数の機能モジュールを有する情報処理装置において、複数の機能モジュールのタスクを遅延起動させるか否かを示す遅延起動フラグをタスク毎に示すタスク登録テーブルと、装置の起動を行う場合は、タスク登録テーブルを参照し、最初に遅延起動フラグが遅延以外のタスクを起動させ、遅延以外のタスクの起動が終了した後、遅延起動フラグが遅延を示すタスクを起動させるシステム起動手段とを備えたので、システム起動時間（特にタスクのロード時間）を短縮でき、従ってシステム起動後最初にユーザに提供したい機能やサービスをより早く開始することができる。更に、その後システム稼動中に初めて利用する機能やサービスの開始要求が発生した時も、タスクの遅延起動により、搭載されている機能モジュールは既に起動しているため、ユーザへの応答性を低下させることなく、高速に次の機能やサービスに遷移することができる。
【００６２】
実施の形態７．
実施の形態６では、タスク登録テーブル５０内の遅延起動フラグ５２は予め静的に設定されているものとしていたが、次に、実施の形態７として、システム終了時に動作していた機能モジュール群に関連するタスクを次回システム起動時に初期起動し、その他の機能モジュール群に関連するタスクを遅延起動するように、タスク登録テーブル５０内の遅延起動フラグ５２を更新する例を説明する。
【００６３】
実施の形態７の情報処理装置における図面上の機能ブロックについては実施の形態２の図５に示した構成と同様であるため、図５を援用して説明する。実施の形態７において、機能モジュール１−１，１−２，…，１−ｎ〜システム起動手段３の構成については実施の形態６と同様であるため、ここでの説明は省略する。カレント機能モード設定手段４は、複数の機能モジュール１−１，１−２，…，１−ｎのうち、どの機能モジュール１−１，１−２，…，１−ｎが現在実行中かを示すカレント機能モードフラグ４０を設定する機能部である。また、システム終了手段５は、装置の終了を行う場合、その時点のカレント機能モードフラグ４０の値に基づいて、実行中であった機能モジュールに対応するタスクの遅延起動フラグを遅延以外に更新する機能を有している。即ち、カレント機能モードフラグ４０に対応する機能モジュールのタスクの遅延起動フラグを遅延以外の状態に更新し、それ以外の機能モジュールのタスクの遅延起動フラグを遅延状態に更新する。
【００６４】
図１９は、実施の形態７の情報処理装置のソフトウェア構成図である。
図１９において、各構成要素の基本的構成は実施の形態６と同様であるが、システム終了処理タスク１２を備えている点が異なっている。即ち、システム終了処理タスク１２は、システム終了要求があった時に動作し、情報処理装置に搭載されている機能モジュール群の終了処理を行うタスクであり、終了時に、カレント機能モードフラグ４０に基づいてタスク登録テーブル５０の内容を更新するよう構成されている。尚、ここで、機能モードとは、例えば放送番組の視聴、ビデオ映像や音楽の視聴、インターネット接続（ショッピングやメール送受信）等のユーザ利用シーンに対応した機能種別（機能セット）を指す。
【００６５】
次に動作について説明する。
図２０は、図１９に示したソフトウェア構成図に基づくシステム終了時の処理フローを示す図である。
図２０において、実施の形態２の図７との相違点に着目し説明する。先ず、システム終了処理タスク１２の処理について、ステップＳＴ２１２でタスク登録テーブル５０の各エントリを順番に検索していく。ステップＳＴ２０５でカレント機能モードフラグ４０を参照し、カレント機能モードフラグ４０を最後に更新した後に動作した機能モジュールを特定する。そして、特定された機能モジュールに対応するタスクのエントリかを判定する。判定方法の一例としては、各機能モジュールに関連するタスク３１のアカウンティング情報（動作時間情報）を元に、動作中の機能モジュールを選別する。タスク登録テーブル５０上の当該エントリに登録されているタスクが動作中の機能モジュールであった場合、ステップＳＴ２１３でタスク登録テーブル５０内の最初のエントリの遅延起動フラグ５２にゼロを設定する。また、当該エントリが動作中の機能モジュールでなかった場合、ステップＳＴ２１４で遅延起動フラグ５２に１（非ゼロ）を設定する。以上が、タスク登録テーブル５０の一エントリ分の処理であり、引き続きステップＳＴ２１２に戻り、タスク登録テーブル５０の終端エントリに達するまで処理を繰り返す（図１９における（１）機能モード切替えと（２）遅延起動フラグの更新に相当する）。最後に、ステップＳＴ２０９でシステム（ＯＳ）終了処理に移行する。
【００６６】
そして、次回、情報処理装置に電源が投入されると、実施の形態６の図１８を用いて説明したシステム起動時の処理フローに従って遅延実行処理が行われる。即ち、図１７中に示すように、（３）次回システム起動が行われると、（４）システム初期化処理タスク１０の実行→（５）タスク起動ＡＰＩ関数１４による起動→（６）初期起動完了通知→（７）タスク遅延起動ＡＰＩ関数１５による遅延起動の順で起動処理が行われる。
【００６７】
尚、本実施の形態７では、初期化関数３０やタスク３１は情報処理装置に搭載されるアプリケーションやミドルウェア（ライブラリ）といったユーザプログラム（ユーザが開発する機能モジュール群）を想定したが、これに限定されるものではなく、例えばシステム初期化処理タスク１０やシステム初期化遅延起動タスク１３やシステム終了処理タスク１２をＯＳ内のシステムタスクとして実現した上で、ＯＳ機能モジュールや、各種ハードウェア・デバイスの制御ソフトウェアであるデバイスドライバ等に適用してもよい。
【００６８】
以上のように、実施の形態７の情報処理装置によれば、複数の機能モジュールのうち、どの機能モジュールが現在実行中かを示すカレント機能モードフラグを設定するカレント機能モード設定手段と、装置の終了を行う場合、タスク登録テーブルの遅延起動フラグを、カレント機能モードフラグに基づき、実行中であった機能モジュールに対応するタスクの遅延起動フラグを遅延以外に更新するシステム終了手段とを備えたので、次回システム起動時に、前回システム終了直前の機能モードに対応する機能やサービスをより早く開始することができる。
【図面の簡単な説明】
【００６９】
【図１】この発明の実施の形態１による情報処理装置の機能ブロック図である。
【図２】この発明の情報処理装置における機能モジュールとユーザプログラムとの関係を示す説明図である。
【図３】この発明の実施の形態１による情報処理装置のソフトウェア構成図である。
【図４】この発明の実施の形態１による情報処理装置のシステム起動時の処理を示すフローチャートである。
【図５】この発明の実施の形態２による情報処理装置の機能ブロック図である。
【図６】この発明の実施の形態２による情報処理装置のソフトウェア構成図である。
【図７】この発明の実施の形態２による情報処理装置のシステム終了時の処理を示すフローチャートである。
【図８】この発明の実施の形態３による情報処理装置の機能ブロック図である。
【図９】この発明の実施の形態３による情報処理装置のソフトウェア構成図である。
【図１０】この発明の実施の形態３による情報処理装置のシステム終了時の処理を示すフローチャートである。
【図１１】この発明の実施の形態３による情報処理装置のシステム起動時の処理を示すフローチャートである。
【図１２】この発明の実施の形態４による情報処理装置のソフトウェア構成図である。
【図１３】この発明の実施の形態４による情報処理装置のシステム終了時の処理を示すフローチャートである。
【図１４】この発明の実施の形態４による情報処理装置のシステム起動時の処理を示すフローチャートである。
【図１５】この発明の実施の形態５による情報処理装置のソフトウェア構成図である。
【図１６】この発明の実施の形態５による情報処理装置のシステム起動時の処理を示すフローチャートである。
【図１７】この発明の実施の形態６による情報処理装置のソフトウェア構成図である。
【図１８】この発明の実施の形態６による情報処理装置のシステム起動時の処理を示すフローチャートである。
【図１９】この発明の実施の形態７による情報処理装置のソフトウェア構成図である。
【図２０】この発明の実施の形態７による情報処理装置のシステム終了時の処理を示すフローチャートである。
【符号の説明】
【００７０】
１−１，１−２，…，１−ｎ  機能モジュール、２，２ａ  起動情報登録テーブル、３，３ａ  システム起動手段、４  カレント機能モード設定手段、５，５ａ  システム終了手段、１０  システム初期化処理タスク、１１  システム初期化遅延実行タスク、１２  システム終了処理タスク、１３  システム初期化遅延起動タスク、１４  タスク起動ＡＰＩ関数、１５  タスク遅延起動ＡＰＩ関数、２０，２０Ａ，２０Ｂ，２０Ｃ  初期化関数登録テーブル、２１  初期化関数ポインタ、２２，２２Ａ，２２Ｂ，２２Ｃ  遅延実行フラグ、３０  初期化関数、３１  タスク、４０  カレント機能モードフラグ、４１  機能モード保存フラグ、５０  タスク登録テーブル、５１  タスク名、５２  遅延起動フラグ、５３  優先度、５４  ポインタ。
【図１】
2009217711.tif 000003
【図２】
2009217711.tif 000004
【図３】
2009217711.tif 000005
【図４】
2009217711.tif 000006
【図５】
2009217711.tif 000007
【図６】
2009217711.tif 000008
【図７】
2009217711.tif 000009
【図８】
2009217711.tif 000010
【図９】
2009217711.tif 000011
【図１０】
2009217711.tif 000012
【図１１】
2009217711.tif 000013
【図１２】
2009217711.tif 000014
【図１３】
2009217711.tif 000015
【図１４】
2009217711.tif 000016
【図１５】
2009217711.tif 000017
【図１６】
2009217711.tif 000018
【図１７】
2009217711.tif 000019
【図１８】
2009217711.tif 000020
【図１９】
2009217711.tif 000021
【図２０】
2009217711.tif 000022