(57)【特許請求の範囲】
【請求項１】
初期化により利用可能となる機能を複数有する情報処理装置であって、
前記機能をそれぞれ初期化する複数の初期化手段と、
前記初期化手段の実施順序を決定する初期化順序決定手段と、
装置処理負荷を監視する装置処理負荷監視手段と、
実施中の前記初期化手段が１つ以上ある場合、当該１つ以上の初期化手段の処理に遅延が生じない第１の閾値に基づいて前記装置処理負荷を判定することにより、次の前記初期化手段の実施タイミングを決定する初期化タイミング決定手段とを備える、
情報処理装置。
【請求項２】
各前記初期化手段の実施に要する負荷を記憶する初期化処理負荷記憶手段をさらに備え、
前記初期化タイミング決定手段は、
現在の前記装置処理負荷と次の前記初期化手段の処理負荷の合計が前記第１の閾値を下回る場合に、次の前記初期化手段の実施を指示する、
請求項１に記載の情報処理装置。
【請求項３】
前記初期化タイミング決定手段は、
現在の前記装置処理負荷が、前記第１の閾値より小さい第２の閾値を下回る場合に、次の前記初期化手段の実施を指示する、
請求項１に記載の情報処理装置。
【請求項４】
前記初期化タイミング決定手段は、
前記装置処理負荷と次の前記初期化手段の処理負荷の合計が前記第１の閾値以上である場合に、次の前記初期化手段の優先度を実施中の前記初期化手段より低く設定した上で、当該初期化手段の実施を指示する、
請求項２に記載の情報処理装置。
【請求項５】
前記初期化タイミング決定手段は、
前記装置処理負荷が前記第２の閾値を下回る場合に、次の前記初期化手段の優先度を実施中の前記初期化手段より低く設定した上で、当該初期化手段の実施を指示する、
請求項３に記載の情報処理装置。
【請求項６】
前記機能の使用履歴を記憶する使用履歴記憶手段をさらに備え、
前記初期化順序決定手段は、前記使用履歴に基づき初期化順序を決定する、
請求項１〜５のいずれかに記載の情報処理装置。
【請求項７】
使用者を識別するための使用者情報を取得する使用者情報取得手段と、
複数の前記使用者情報を記憶する使用者情報記憶手段と、
前記使用者情報取得手段が取得した前記使用者情報と前記使用者情報記憶手段に記憶された前記使用者情報とを比較して、使用者を識別する使用者識別手段とをさらに備え、
前記使用履歴記憶手段は使用者毎に前記使用履歴を記憶し、
前記初期化順序決定手段は、前記使用者識別手段が識別した使用者の前記使用履歴に基づき初期化順序を決定する、
請求項６に記載の情報処理装置。
【請求項８】
初期化により利用可能となる機能を複数有する情報処理装置の起動方法であって、
（ａ）前記機能の初期化処理の順序を決定する工程と、
（ｂ）装置処理負荷を取得する工程と、
（ｃ）前記工程（ａ）の後、前記機能の初期化処理を実施するタイミングを決定する工程とを備え、
前記工程（ｃ）は、実施中の前記初期化処理が１つ以上ある場合に、当該１つ以上の初期化処理に遅延が生じない第１の閾値に基づいて前記装置処理負荷を判定することにより、次の初期化処理の実施タイミングを決定する工程である、
情報処理装置の起動方法。
【請求項９】
前記工程（ｃ）は、前記装置処理負荷と次の前記初期化処理の処理負荷との合計が前記第１の閾値を下回る場合に、次の前記初期化処理を実施させる工程である、
請求項８に記載の情報処理装置の起動方法。
【請求項１０】
前記工程（ｃ）は、前記装置処理負荷が、前記第１の閾値より小さい第２の閾値を下回る場合に、次の前記初期化処理を実施させる工程である、
請求項８に記載の情報処理装置の起動方法。
【請求項１１】
前記工程（ｃ）は、前記装置の処理負荷と次の前記初期化処理の処理負荷との合計が前記第１の閾値以上である場合に、次の前記初期化処理の優先度を実施中の前記初期化処理より低く設定した上で次の前記初期化処理を実施させる工程である、
請求項９に記載の情報処理装置の起動方法。
【請求項１２】
前記工程（ｃ）は、前記装置処理負荷が前記第２の閾値を下回る場合に、次の前記初期化処理の優先度を実施中の前記初期化処理より低く設定した上で次の前記初期化処理を実施させる工程である、
請求項１０に記載の情報処理装置の起動方法。
【請求項１３】
前記工程（ａ）は、各機能の使用履歴に応じて初期化順序を決定する工程である、
請求項８〜１２のいずれかに記載の情報処理装置の起動方法。
【請求項１４】
（ｄ）使用者を識別するための使用者情報を取得する工程と、
（ｅ）予め記憶しておいた前記使用者情報を参照して、前記工程（ｄ）で取得した前記使用者情報から使用者を識別する工程と、をさらに備え、
前記工程（ａ）は、前記工程（ｅ）で識別した使用者の使用履歴に基づき初期化順序を決定する工程である、
請求項１３に記載の情報処理装置の起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置に関し、特に、初期化することで使用可能となる機能を複数有する情報処理装置の起動方法に関する。
【背景技術】
【０００２】
初期化することにより利用可能な状態になる複数の機能を有する情報処理装置において、起動後に全ての機能を使用可能な状態とするためには、全ての機能を初期化する必要がある。
【０００３】
機能の中には使用者が頻繁に使う機能とそうでない機能があるため、全ての機能を順番に初期化するのは合理的でない。例えば、使用者が使用したいと考えている機能の初期化順序が遅かった場合には、使用可能な状態になるまでに長時間待たされてしまうからである。
【０００４】
そこで、使用者の使用頻度が高い機能の初期化順序を早めることにより、使用頻度の高い機能が使用可能な状態になるまでの時間を短縮する技術が特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−５９２７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ソフトウェア設計においては、処理を機能毎に複数のタスクに割り振ってマルチタスクで処理をすることが多い。ここで、タスクは処理の単位を指し、マルチタスクとは同時に複数のタスクを実施可能な環境のことをいう。複数の機能の初期化処理が別々のタスクに割り振られている場合には、必ずしも全ての初期化処理を１つずつ順番に行う必要はない。
【０００７】
予め決まった順序で各機能の初期化処理を行う場合には、最適な初期化時間となるようソフトウェア開発時に初期化タイミングの調整を行うことができるが、各機能の初期化順序を動的に変更する場合に、最適な初期化時間となるよう調整する機能は存在しなかった。
【０００８】
例えば、特許文献１の手法では、各機能を１つずつ順番に初期化していくため、全ての機能の初期化を完了するまでに時間がかかるという問題点がある。もし使用者が使用頻度の低い機能を起動直後に使用しようとしたときには、その機能がまだ初期化されていない可能性が高く、そのような場合に使用者は、初期化が完了するのを待たなければならない。
【０００９】
また、単純に複数の機能の初期化を同時に行うと、複数の処理が同時に行われることで各々の機能の初期化が完了するまでの時間が遅くなり、使用頻度の高い機能が使用可能な状態となるまでの時間が長くなってしまう。
【００１０】
そこで本発明は上述の問題に鑑み、優先順位の高い機能の初期化時間を遅延させることなく、全機能の初期化時間を短縮することが可能な情報処理装置、及びその起動方法の提供を目的とする。
【課題を解決するための手段】
【００１１】
本発明の情報処理装置は、初期化により利用可能となる機能を複数有する情報処理装置であって、前記機能をそれぞれ初期化する複数の初期化手段と、前記初期化手段の実施順序を決定する初期化順序決定手段と、装置処理負荷を監視する装置処理負荷監視手段と、実施中の前記初期化手段が１つ以上ある場合、当該１つ以上の初期化手段の処理に遅延が生じない第１の閾値に基づいて前記装置処理負荷を判定することにより、次の前記初期化手段の実施タイミングを決定する初期化タイミング決定手段とを備える。
【発明の効果】
【００１２】
本発明の情報処理装置は、初期化により利用可能となる機能を複数有する情報処理装置であって、実施中の前記初期化手段が１つ以上ある場合、当該１つ以上の初期化手段の処理に遅延が生じない第１の閾値に基づいて前記装置処理負荷を判定することにより、次の前記初期化手段の実施タイミングを決定する初期化タイミング決定手段を備えるので、先に実施している初期化を遅延させることなく、全機能の初期化時間を短縮することが可能である。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１に係る情報処理装置の構成を示すブロック図である。
【図２】実施の形態１に係る情報処理装置の動作を示すフローチャートである。
【図３】従来手法のシングルタスクで初期化を行う場合の処理負荷を示す図である。
【図４】従来手法のマルチタスクで初期化を行う場合の処理負荷を示す図である。
【図５】実施の形態１に係る情報処理装置による初期化を行う場合の処理負荷を示す図である。
【図６】実施の形態２に係る情報処理装置の構成を示すブロック図である。
【図７】実施の形態２に係る情報処理装置の動作を示すフローチャートである。
【図８】実施の形態２に係る優先度の変更例を示す図である。
【図９】実施の形態２に係る情報処理装置による初期化を行う場合の処理負荷を示す図である。
【図１０】実施の形態３に係る情報処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１４】
（実施の形態１）
＜構成＞
図１は、実施の形態１に係る情報処理装置の構成を示すブロック図である。この情報処理装置１００は、起動指示受付手段１０、使用履歴記憶手段１１、初期化順序決定手段１２、装置処理負荷監視手段１３、初期化処理負荷記憶手段１４、初期化タイミング決定手段１５、初期化手段２０を備えている。情報処理装置１００はｎ個の機能１〜ｎを有しており、初期化手段２０は、機能１〜ｎ毎に初期化を行う初期化手段１〜ｎを含む。
【００１５】
起動指示受付手段１０は、使用者からの起動指示を受け付ける手段であり、例えば、情報処理装置１００に備え付けられた電源ボタンや、外部からのリモコン指示受信装置で構成される。情報処置装置１００は起動指示受付手段１０が起動指示を受け付けると、起動処理を開始する。
【００１６】
使用履歴記憶手段１１は機能ごとの使用履歴を記憶する。この使用履歴に基づき、初期化順序決定手段１２は初期化手段１〜ｎの実施順序を決定する。
【００１７】
装置処理負荷監視手段１３は情報処理装置１００の装置処理負荷を監視する。初期化処理負荷記憶手段１４は、各機能の初期化に要する初期化処理負荷を記憶している。例えば、初期化手段１〜ｎを単体で動作させたときにかかる単位時間あたりの最大処理負荷について、事前にソフトウェア開発者が測定した値が格納されている。これは動的に変更することのない値である。初期化タイミング決定手段１５は、この装置処理負荷と初期化処理負荷から、初期化手段１〜ｎの実施タイミングを決定する。
【００１８】
ここで、初期化手段１〜ｎは、それぞれ異なるタスク上で並列に動作することが可能であるものとする。また、初期化手段１〜ｎを実施するとは、それぞれの処理を行うタスクを動作させることを意味する。なお、初期化手段１〜ｎには実施順序の制約はないものとする。
【００１９】
＜動作＞
図２は、実施の形態１に係る情報処理装置１００の起動時の動作を示すフローチャートである。以下、図２に沿って情報処理装置１００の起動方法を説明する。
【００２０】
情報処置装置１００は、起動指示受付手段１０が起動指示を受け付けると、起動処理（初期化処理）を開始する（ステップＳ１０）。
【００２１】
情報処理装置１００は、まずシステム初期化処理を実行する（ステップＳ１１）。システム初期化処理とは、情報処理装置１００を動作させるための基本的な初期化処理であって、例えば、不揮発性領域に記憶しているプログラムデータの読み出しや、ハードウェアの初期化などが挙げられる。システム初期化処理を行った後、初期化手段１〜ｎを実施することが可能になるものとする。
【００２２】
次に、初期化順序決定手段１２が、使用履歴記憶手段１１に記憶された使用履歴を元に、使用者が使用する可能性が高いと思われる機能を先行して初期化するよう、各機能を初期化する順序を決定する（ステップＳ１２）。ここでは、各機能を利用した最終利用日時が使用履歴記憶手段１１に使用履歴として記憶されており、最終利用日時が新しい機能から順に初期化することにする。一度も利用していないなどの理由で最終利用日時が同一の機能が複数あった場合には、予め定められた順番で初期化するものとする。このように、初期化順序決定手段１２は使用履歴に基づき初期化順序を決定するので、良く使用する機能ほど優先的に初期化を行うことが出来る。
【００２３】
ここでは簡単に説明するため、初期化手段１から初期化手段ｎまでを順に初期化するものとする。ステップＳ１３移行のルーチンで、初期化タイミング決定手段１５はまず初期化手段１の初期化タイミングを決定する。
【００２４】
初期化タイミングを決定するにあたり、初期化タイミング決定手段１５は装置処理負荷監視手段１３から情報処理装置１００の現在の装置処理負荷を取得する（ステップＳ１４)。ここでは装置処理負荷として、ＣＰＵ（Central Processing Unit）使用率を用いることにする。
【００２５】
ＣＰＵ使用率とは、ある単位時間のうち、ＯＳ（Operating System）やアプリケーションソフトが処理を実施するためにＣＰＵを占有する時間の割合である。ＣＰＵ使用率が０％であれば単位時間のうちＣＰＵは常に待機状態であったことを表し、ＣＰＵ使用率が１００％であれば、ＣＰＵの処理以上の処理要求が溜まっていることを表す。ＣＰＵ使用率が１００％になると、処理されない要求が出てきて処理が遅延する可能性が出てくる。つまり、優先して行いたい機能の初期化処理完了までの時間が遅延する可能性が出てくる。
【００２６】
なお、ＣＰＵ使用率は、ＯＳの状態を表すファイルなどに記載された値から計算することが可能である。例えば、起動してからアプリケーション処理、システム処理、待機状態のそれぞれにどれだけのＣＰＵの時間を消費したかを記載したファイルをもつようなシステムでは、一定周期ごとにそのファイルを読みにいき、差分を取ることによりＣＰＵ使用率を計算することができる。
【００２７】
ここでは単純な例として、ＣＰＵはユーザアプリケーション処理に占有される状態、システム処理に占有される状態、待機状態の３状態のみを持つとする。ある時間までにユーザアプリケーション処理、システム処理、待機状態に使用したＣＰＵの時間がそれぞれＴ１Ｕ、Ｔ１Ｓ、Ｔ１Ｉであり、それから一定時間後にそれぞれの値がＴ２Ｕ、Ｔ２Ｓ、Ｔ２Ｉとなっていたとすると、その一定時間におけるＣＰＵの待機状態割合は（Ｔ２Ｉ−Ｔ１Ｉ）／｛（Ｔ２Ｕ−Ｔ１Ｕ）＋（Ｔ２Ｓ−Ｔ１Ｓ）＋（Ｔ２Ｉ−Ｔ１Ｉ）｝という式で計算できる。この式で分母は一定時間でどれだけのＣＰＵ時間が経ったかを、分子はそのうちどれだけのＣＰＵ時間が待機状態であったのかを表す。ＣＰＵ使用率は待機状態でない時間のパーセンテージから求められ、１００×（１−ＣＰＵの待機状態割合）で計算できる。
【００２８】
ここで、予めＣＰＵ使用率に第１の閾値を定めておく。第１の閾値は、これ以上ＣＰＵ使用率が上昇すると処理されない要求が生じ、実施中の初期化処理に遅延が生じることを示す装置処理負荷の最大値である。第１の閾値は、１００％から少しマージンをとって９０％とするが、もちろん他の値でも構わない。
【００２９】
そして、次に実施予定である初期化手段Ｉ（Ｉ＝１…ｎ）を実施したときに現在実施中の処理を遅延させないかを確認する。ここで、現在実施中の処理とは、既に実施している初期化手段のことを指す。
【００３０】
現在実施中の処理を遅延させないかどうかを確認する方法として、ステップＳ１４で取得した現在のＣＰＵ使用率と、初期化処理負荷記憶手段１４に記憶された次の初期化手段Ｉの実施に必要となるＣＰＵ使用率の合計が、装置処理負荷の最大値である９０％を超えないかを確認する（ステップＳ１５）。ＣＰＵ使用率の合計が第１の閾値の９０％を超える場合には（ステップＳ１５でＮＯ）、実施中の初期化処理を遅延させる可能性があるため、次の初期化手段Ｉは待機する。そうでない場合には（ステップＳ１５でＮＯ）、初期化手段Ｉを実施する（ステップＳ１６）。このように、初期化タイミング決定手段１３は、実施中の初期化手段が１つ以上ある場合、第１の閾値に基づいて装置処理負荷を判定することにより、次の初期化手段Ｉの実施タイミングを決定する。より具体的には、現在の装置処理負荷と次の初期化手段Ｉの処理負荷の合計が第１の閾値を下回る場合に次の初期化手段Ｉの実施を指示する。これにより、実施中の初期化処理を遅延させることなく、新たな初期化手段Ｉが実施される。
【００３１】
以上のステップＳ１４からＳ１６の処理を、Ｉを１ずつ増やしながらＩ＝１〜ｎまで全ての初期化手段１〜ｎについて行うことにより、各初期化処理を単体で実施したときと比べて遅延させることなく、全ての機能の初期化を短時間で行う事が出来る。
【００３２】
図３〜図５は、各機能の初期化にかかる時間と、ＣＰＵ使用率の推移を模式的に表した図であり、図５は実施の形態１の手法で初期化する場合を示している。これに対して図３、図４は従来手法を用いて初期化した場合の図であり、図３はシングルタスク、図４はマルチタスクの場合を示している。図３〜図５において、図上部の四角形が各機能の初期化に要する時間を示しており、図下部のグラフはＣＰＵ使用率の変化を示している。ここでは機能Ａ〜Ｅの５つの機能を初期化している。
【００３３】
ここで、機能Ａの初期化処理負荷はＣＰＵ使用率４０％、機能Ｂ〜Ｅの初期化処理負荷はＣＰＵ使用率２５％であるものとする。この値は初期化処理負荷記憶手段１４に記憶されている。また、各機能Ａ〜Ｅを単体で初期化した場合にかかる時間は全て同じであるものとする。
【００３４】
なお、これ以降、シングルタスクで各機能の初期化手段を順に実施する従来の初期化方法を初期化方法Ａ、ＣＰＵ使用率を考慮せずに複数の初期化手段を同時に実施するマルチタスクの初期化方法を初期化方法Ｂと呼ぶ。
【００３５】
図３は初期化方法Ａを適用した場合を示している。ＣＰＵ使用率に余裕があるにも関わらず各機能は１つずつ初期化されるため、全機能の初期化に要する時間Ｔａ２は大きくなってしまう。
【００３６】
図４は初期化方法Ｂを適用した場合を示している。ここでは少し時間差を設けながら、同時に複数の初期化手段を実施している。初期化方法Ｂでは複数の機能の初期化を同時に実施することにより、全機能の初期化に要する時間Ｔｂ２を初期化方法Ａでの時間Ｔａ２に比べて、約５０％短縮している。しかしながら、機能Ａ，Ｂ，Ｃ，Ｄの初期化を同時に実施することでＣＰＵ使用率が約１００％となり、処理負荷の最大値を超えてＣＰＵを使用する結果、各機能の初期化完了時間は遅延する。機能Ａの初期化完了時間Ｔｂ１は、初期化方法Ａにおける機能Ａの初期化完了時間Ｔａ１に比べて約５０％延長する。初期化順序が早い機能Ａは優先して初期化すべき機能であるため、機能Ａの初期化完了時間をＴａ１より大きくすることなく、全機能の初期化完了までの時間をＴａ２より短縮することが本発明の目的である。
【００３７】
図５は実施の形態１の起動方法を適用した場合を示している。この例では、いずれの機能の初期化処理の組み合わせにおいても、３つの機能を同時に初期化しても処理負荷最大値である９０％を超えないが、４つの機能の初期化を同時に行うと処理負荷最大値である９０％を超えてしまう。そのため、既に３つの初期化手段が実施されている場合には、そのうち１つの初期化手段が終了するのを待ってから次の初期化手段を実施している。ＣＰＵ使用率が処理負荷最大値である９０％を超えると判断される場合には、それ以上の機能の初期化を行わないため、優先すべき機能Ａの初期化完了時間Ｔｃ１を初期化方法Ａでの機能Ａの初期化完了時間Ｔａ１とほぼ同じにすることができる。さらに、複数の機能を同時に初期化するため、全機能の初期化完了時間Ｔｃ２は初期化方法Ａでの全機能の初期化完了時間時間Ｔａ２に比べて４８％短縮される。
【００３８】
以上のように本実施の形態によれば、ＣＰＵ使用率が処理負荷の最大値を超えない範囲で、同時に複数の機能の初期化を行うので、優先すべき機能の初期化処理に与える影響を最小限としながら、機能全体の初期化にかかる時間を短縮することができる。
【００３９】
なお、装置処理負荷の指標としてＣＰＵ使用率を用いたが、情報処理装置１００が複数のプロセッサ・コアを持つ場合には、それぞれのプロセッサ・コアのＣＰＵ使用率の平均値を指標としたり、プロセッサ・コアごとのＣＰＵ使用率の値の中で最も低い値を指標とすれば良い。
【００４０】
また、装置処理負荷の指標にはＣＰＵ使用率以外のものを用いてもよい。例えば、各機能の初期化処理において機器間のデータ転送が多く発生するようなシステムにおいては、処理負荷の指標としてバス使用率などを用いることができる。
【００４１】
初期化タイミング決定手段１５は、現在のＣＰＵ使用率と次の初期化手段Ｉの実施に要するＣＰＵ使用率の合計が処理負荷最大値（第１の閾値）を下回る場合に、次の初期化手段Ｉの実施を指示していた。しかし、第１の閾値よりも小さい第２の閾値を設定し、現在のＣＰＵ使用率が第２の閾値を下回る場合に、次の初期化手段Ｉの実施を指示することにしても良い。この方法によれば、初期化手段の処理負荷のばらつきを考慮しないため、新たな初期化手段Ｉの実施により先に実施している初期化手段の処理が遅延する可能性がやや高まる。しかし、初期化処理負荷記憶手段１４を無くすことができるので、情報処理装置１００の構成を簡単化することができる。
【００４２】
また、本実施の形態では、情報処理装置の起動時に各機能の初期化順序を決定したが、初期化順序を決定するのは違うタイミングでもよい。例えば、全ての機能を初期化し終わった後でもよいし、新たな機能が実施される度に初期化順序を計算しなおしてもよい。こうすることにより、起動時に必要な処理を減らすことができるので、全ての機能を初期化するまでの時間をより短くすることができる。
【００４３】
なお、本実施の形態では、各機能を利用した最終利用日時を使用履歴記憶手段１１に記憶していたが、使用履歴として用いるのは違うものでもよい。例えば各機能の総使用回数などを利用すれば、最新の利用状況は反映されにくいが、長期間に渡っての利用状況を初期化順序に反映することができる。
【００４４】
また、本実施の形態では、情報処理装置に着目してそのソフトウェアの起動手順について述べたが、本発明は、情報処理装置以外の、起動時に複数の機能を立ち上げる必要がある装置のソフトウェアの起動にも容易に適用することができる。
【００４５】
＜効果＞
本実施の形態の情報処理装置は、初期化により利用可能となる機能を複数有する情報処理装置であって、前記機能をそれぞれ初期化する複数の初期化手段１〜ｎと、初期化手段１〜ｎの実施順序を決定する初期化順序決定手段１２と、装置処理負荷を監視する装置処理負荷監視手段１３と、実施中の初期化手段が１つ以上ある場合、当該１つ以上の初期化手段の処理に遅延が生じない第１の閾値に基づいて装置処理負荷を判定することにより、次の初期化手段Ｉの実施タイミングを決定する初期化タイミング決定手段１５とを備えるので、実施中の初期化手段の処理を遅延させることなく、同時に複数の初期化手段を実施することができ、全機能の初期化時間を短縮することができる。
【００４６】
また、本実施の形態の情報処理装置は、各初期化手段１〜ｎの実施に要する負荷を記憶する初期化処理負荷記憶手段１４をさらに備え、初期化タイミング決定手段１５は、現在の装置処理負荷と次の初期化手段Ｉの処理負荷の合計が前記第１の閾値を下回る場合に、次の初期化手段Ｉの実施を指示するので、実施中の初期化手段の処理を遅延させることなく、同時に複数の初期化手段を実施することができ、全機能の初期化時間を短縮することができる。
【００４７】
あるいは、初期化タイミング決定手段１５は、現在の装置処理負荷が、前記第１の閾値より小さい第２の閾値を下回る場合に、次の初期化手段Ｉの実施を指示するので、実施中の初期化手段の処理を遅延させることなく、同時に複数の初期化手段を実施することができ、全機能の初期化時間を短縮することができる。また、初期化処理負荷記憶手段１４を必要としないため、情報処理装置の構成を簡単化することができる。
【００４８】
また、実施の形態１の情報処理装置は、機能の使用履歴を記憶する使用履歴記憶手段１１を備え、初期化順序決定手段１２は前記使用履歴に基づき初期化順序を決定するので、使用頻度が高い機能を優先的に初期化することが出来る。
【００４９】
実施の形態１の情報処理装置の起動方法は、（ａ）機能の初期化処理の順序を決定する工程と、（ｂ）装置処理負荷を取得する工程と、（ｃ）工程（ａ）の後、前記機能の初期化処理を実施するタイミングを決定する工程とを備え、工程（ｃ）は、実施中の前記初期化処理が１つ以上ある場合に、当該１つ以上の初期化処理に遅延が生じない第１の閾値に基づいて装置処理負荷を判定することにより、次の初期化処理の実施タイミングを決定する工程であるので、実施中の初期化処理を遅延させることなく、同時に複数の初期化処理を実施することができ、全機能の初期化時間を短縮することができる。
【００５０】
また、前記工程（ｃ）では、装置処理負荷と次の初期化処理の処理負荷との合計が第１の閾値を下回る場合に、次の初期化処理を実施させるので、実施中の初期化処理を遅延させることなく、同時に複数の初期化処理を実施することができ、全機能の初期化時間を短縮することができる。
【００５１】
あるいは、前記工程（ｃ）では、装置処理負荷が、第１の閾値より小さい第２の閾値を下回る場合に、次の初期化処理を実施させるので、実施中の初期化処理を遅延させることなく、同時に複数の初期化処理を実施することができ、全機能の初期化時間を短縮することができる。
【００５２】
また、前記工程（ａ）では、各機能の使用履歴に応じて初期化順序を決定するので、使用頻度が高い機能を優先的に初期化することが出来る。
【００５３】
（実施の形態２）
＜構成＞
図６は、実施の形態２の情報処理装置の構成を示すブロック図である。実施の形態２の情報処理装置２００の構成は、実施の形態１の情報処理装置１００の構成において、初期化タイミング決定手段１５が初期化優先度決定手段１６を含むものである。
【００５４】
初期化優先度決定手段１６は、既に実施中の初期化処理を遅延させないよう、新たに実施する初期化手段の優先度を下げる処理を行う。ここで初期化手段の優先度を変更するとは、その初期化手段を実施するタスクの優先度を変更することを意味する。一般に、複数のタスクが実行可能状態である場合には、その中で最も優先度の高いタスクが優先的に実行される。
【００５５】
初期化優先度決定手段１６以外の構成は実施の形態１の情報処理装置１００と同様であるので、説明を省略する。
【００５６】
＜動作＞
図７に沿って、実施の形態２の情報処理装置２００の起動方法を説明する。実施の形態２では、ステップＳ１５でＮＯと判定されたときの処理以外は実施の形態１と同様であるため、以下ではステップＳ１５でＮＯと判定されたときの処理について説明する。
【００５７】
現在のＣＰＵ使用率と、次の初期化手段Ｉの実施に要するＣＰＵ使用率との合計が、第１の閾値（処理負荷最大値）以上である場合（ステップＳ１５でＮＯ）、新たな初期化手段Ｉを実施することで現在実施中の初期化処理が遅延する可能性があるため、Ｓ１３のループ処理を抜け、ステップＳ２０以降の処理を行う。
【００５８】
ステップＳ２０において、初期化優先度決定手段１６は、既に実施中の初期化手段（初期化処理）の優先度を高く設定する。これは後から実施する初期化手段の優先度を、既に実施中の初期化手段の優先度より低く設定するためである。次に実施する初期化手段Ｉを含めて、後に控えている初期化手段の数はＮ−Ｉ＋１であるので、それらの処理に優先度の差を設けられるよう優先度を設定するのが望ましい。既に行っている初期化手段の優先度が十分に高く設定されていれば、ステップＳ２０の処理は必要ない。
【００５９】
ステップＳ２１のループ処理では、現在実施中の初期化処理を遅延させないよう、新たに実施する初期化手段の優先度を、現在実施中の全ての初期化処理の優先度より低く、かつこれ以降に実施する初期化手段の優先度より高くなるよう設定した上で（ステップＳ２２）、新たな初期化手段を実施する（ステップＳ２３）。この処理を残りの初期化手段全てに対して繰り返す。すなわち、初期化手段Ｉの次に実施する初期化手段Ｉ＋１は、初期化手段Ｉよりさらに低い優先度を設定した上で実施する。
【００６０】
このように初期化タイミング決定手段１５は、現在の装置処理負荷と次の初期化手段Ｉの処理負荷の合計が第１の閾値以上である場合に、次の初期化手段Ｉの優先度を実施中の初期化手段より低く設定した上で、次の初期化手段Ｉの実施を指示するので、現在実施中の処理に待ち時間が生じたときに、優先度の低い次の初期化手段Ｉが実施され、効率良く初期化処理を行う事が出来る。
【００６１】
なお、ある機能の初期化手段を実施するタスクが初期化以後もその機能を実現するために存在し続ける場合には、全ての機能の初期化が完了した後にタスクの優先度を規定値に戻す（ステップＳ２４）。
【００６２】
図８に、初期化手段の優先度の変更例を示す。ここでは優先度の値が高いほど優先順位が高く、元々全ての処理の優先度は０であったとする。既に実施中の初期化処理の優先度をＮ−Ｉ＋１と設定し、これ以降は実施順にＮ−Ｉ＋１から１ずつ減らした値を設定していく。最後に実施する初期化手段Ｎの優先度は０となる。図７のステップＳ２０で、既に実行中の初期化処理の優先度をＮ−Ｉ＋１以上に設定すれば、それ以降に実施する初期化手段の優先度に１ずつ差を設けることができる。
【００６３】
なお、各初期化手段が複数のタスクをもち、それらのタスクも優先度をもっている場合には、その優先度の序列を保つことが望ましい。例えば、初期化手段Ｉが複数のタスクをもつ場合には、初期化手段Ｉ内の各タスクの優先度の序列を保ったままで、初期化手段Ｉの中で最も優先度が高いタスクを初期化手段Ｉ−１より低い優先度に、初期化手段Ｉの中で最も優先度が低いタスクを初期化手段Ｉ＋１より優先度を高くなるように設定する。
【００６４】
また、優先度として設定できる値の範囲が狭く、全てのタスクに優先度の差をつけられない場合には、優先して実施すべき初期化処理から順に高い優先度をつけていき、優先度の差をつけられなくなった段階から、実施の形態１のようにＣＰＵ使用率が第１の閾値を下回った場合に新たな初期化手段を実施することが望ましい。
【００６５】
図９は実施の形態２の手法で初期化した場合の、各機能の初期化にかかる時間とＣＰＵ使用率の推移を模式的に表した図である。通常は４つの機能の初期化処理を同時に行うとＣＰＵ使用率が上限（第１の閾値）を超える。しかし、例えば４つ目の機能Ｄの初期化処理は既に実施中の機能Ａ，Ｂ，Ｃの初期化処理よりも低い優先度を設定した上で実施することにより、ＣＰＵ使用率を保ったまま４つ目の初期化処理を行う事を可能にしている。ここで、優先度を低くして追加した機能Ｄの初期化処理は、機能Ａ，Ｂ，Ｃの初期化処理に待ち時間が生じた時にのみ実施される。
【００６６】
以上の動作によりＣＰＵ使用率は第１の閾値を超えないので、最優先機能Ａの初期化処理は遅延せず、その初期化完了時間Ｔｄ１は実施の形態１における値Ｔｃ１と同等である。その上で、実施の形態１よりも効率的に初期化を行う事ができ、全機能の初期化完了時間Ｔｄ２は、実施の形態１における時間Ｔｃ２に比べて５％の短縮、従来の初期化方法Ａにおける時間Ｔａ１に比べて５０％の短縮を実現している。
【００６７】
以上のように本実施の形態によれば、優先すべき実施中の初期化処理と新たに実施する初期化を行う初期化処理の優先度に差を設けるので、優先すべき機能の初期化処理に与える影響を最小限としながら、全機能の初期化に要する時間を短縮することができる。
【００６８】
なお、システムによってはタスクに優先度を設定できないものもある。また、ライブラリの形でモジュールの提供を受けている場合などには個々のタスクの優先度を変更できないこともある。そのような場合には実施の形態１の方法を採用してもよいし、タスクの優先度を変更できるモジュールとそうでないモジュールで動的に処理を切り替えるようにしてもよい。
【００６９】
また、変更した初期化手段の優先度は、全機能の初期化が完了した後にまとめて規定値へ戻していたが（図７のステップＳ２４）、優先度は適宜規定値へ戻してもよい。例えばある初期化手段の実施が終了すれば、実施順序がその次である初期化手段の優先度を上げるようにしてもよい。こうすることにより、優先度を低く設定しすぎたために、なかなか初期化処理が実施されないという事態を防ぐことができる。
【００７０】
また、初期化手段の優先度を変更する際には現在実施中の全てのタスクより低い優先度を設定していたが、必ずしもそうしなくてもよい。例えば、極端に低い優先度が設定された処理がある場合には、それより高い優先度を設定してもよい。こうすることにより、優先度を低く設定しすぎたために、なかなか初期化処理が実施されないという事態を防ぐことができる。
【００７１】
また、初期化タイミング決定手段１５は、初期化優先度決定手段１６で初期化手段の優先度を変更する前に、現在のＣＰＵ使用率と次の初期化手段Ｉの実施に要するＣＰＵ使用率の合計を処理負荷最大値（第１の閾値）と比較していた。しかし、第１の閾値よりも小さい第２の閾値を設定し、現在のＣＰＵ使用率が第２の閾値以上である場合に、次の初期化手段Ｉの優先度を変更することとしても良い。この方法によれば、初期化手段の処理負荷のばらつきを考慮しないため、新たな初期化手段Ｉの実施により先に実施している初期化手段の処理が遅延する可能性がやや高まる。しかし、初期化処理負荷記憶手段１４を無くすことができるので、情報処理装置２００の構成を簡単化することができる。
【００７２】
さらに言えば、現在のＣＰＵ使用率も考慮せず、当初から初期化する順番に応じて優先度を変更した上で、同時に初期化手段を実施させるようにしても良い。この方法によれば、装置処理負荷監視手段１３を無くすことが出来るので、情報処理装置２００の構成をさらに簡単化することができる。
【００７３】
＜効果＞
実施の形態２の情報処理装置２００によれば、以下の効果を奏する。実施の形態２の情報処理装置２００において、初期化タイミング決定手段１５は、装置処理負荷と次の初期化手段Ｉの処理負荷の合計が第１の閾値以上である場合に、初期化優先度決定手段１６において次の初期化手段Ｉの優先度を実施中の初期化手段より低く設定した上で、当該初期化手段Ｉの実施を指示するので、優先すべき機能の初期化処理に与える影響を最小限としながら、機能全体の初期化にかかる時間を短縮することができる。
【００７４】
また、初期化タイミング決定手段１５は、装置処理負荷が第２の閾値を下回る場合に、初期化優先度決定手段１６において次の初期化手段Ｉの優先度を実施中の前記初期化手段より低く設定した上で、当該初期化手段Ｉの実施を指示するので、優先すべき機能の初期化処理に与える影響を最小限としながら、機能全体の初期化にかかる時間を短縮することができる。
【００７５】
実施の形態２の情報処理装置２００の起動方法によれば、以下の効果を奏する。実施の形態２の情報処理装置２００の起動方法では、装置処理負荷と次の初期化処理に要する処理負荷との合計が第１の閾値以上である場合に、次の初期化処理の優先度を実施中の初期化処理より低く設定した上で次の初期化処理を実施させるので、優先すべき機能の初期化処理に与える影響を最小限としながら、機能全体の初期化にかかる時間を短縮することができる。
【００７６】
あるいは、実施の形態２の情報処理装置２００の起動方法では、装置処理負荷が第１の閾値より小さい第２の閾値を下回る場合に、次の初期化処理の優先度を実施中の初期化処理より低く設定した上で次の初期化処理を実施させるので、優先すべき機能の初期化処理に与える影響を最小限としながら、機能全体の初期化にかかる時間を短縮することができる。
【００７７】
（実施の形態３）
＜構成＞
図１０は、実施の形態３の情報処理装置の構成を示すブロック図である。実施の形態３の情報処理装置３００は、実施の形態１の情報処理装置１００の構成に加えて、顔情報取得手段１７、使用者識別手段１８、顔情報記憶手段１９を備える。
【００７８】
顔情報取得手段１７は、使用者を識別するための使用者情報として顔情報を取得する。具体的には、情報処理装置３００の正面を撮影し、その中から顔領域を検出することで顔情報を取得する機能を有しており、取得した顔情報を新規取得顔情報として使用者識別手段１８に提供する。
【００７９】
顔情報記憶手段１９には、使用者の顔情報である登録済顔情報が、使用者を特定する使用者ＩＤと共に登録されている。登録方法の一例は、情報処理装置３００が提供するユーザインターフェースに従って、各使用者が顔情報を登録する方法等が挙げられる。
【００８０】
使用者識別手段１８は、新規取得顔情報を顔情報記憶手段１９の登録済顔情報と照合し、同一の使用者のものであると判断する登録済顔情報を探索する。ここで一般的に顔の識別は、顔画像から抽出した情報を比較することによって行われる。例えば、顔の形や、顔を構成するパーツの相対的な位置や大きさなどを抽出して比較する。顔情報記憶手段１９にはこのような情報が記録されるが、もちろん顔画像そのものを記録したり、顔識別に用いる他の情報を記録しても良い。
【００８１】
同一の使用者のものであると判断する登録済顔情報があれば、その使用者ＩＤを使用履歴記憶手段１１に提供する。同一の使用者と判断できる登録済顔情報がない場合や、顔情報取得手段１７から顔情報の提供がない場合には、使用者不明として使用履歴記憶手段１１に通知する。
【００８２】
使用履歴記憶手段１１は、使用者識別手段１９から使用者ＩＤが提供されている場合、使用者ＩＤごとに使用履歴を記録する。ここで使用履歴とは、例えば各機能を利用した最終利用日時や、各機能を利用した総回数等である。使用者不明の場合には、使用者不明として使用履歴を記録する。
【００８３】
初期化順序決定手段１２は実施の形態１と同じく、使用履歴記憶手段１１に記憶された使用者の使用履歴に基づいて各機能の初期化順序を決定する。ただし、このとき使用履歴記憶手段１１が提供する使用履歴は、現在の使用者ＩＤに基づくものであるので、初期化順序決定手段１２では現在の使用者の嗜好を反映した初期化順序が作成される。なお、使用者不明の場合には、使用者不明として記録された使用履歴を提供する。これにより、複数の使用者が使用する情報処理装置でも、現在の使用者の嗜好を反映した初期化処理を実施することが出来る。
【００８４】
これ以外の処理の流れは実施の形態１と同様であるため、説明を省略する。
【００８５】
なお、図１０では顔情報取得手段１７、使用者識別手段１８、顔情報記憶手段１９を情報処理装置３００内に組み込んだ構成を示しているが、これらを情報処理装置３００の外部で別装置としても良い。このような構成にすれば、別装置を動かすための使用電力が必要になるが、情報処理装置３００の電源を投入する前から使用者を認識することが出来るので、情報処理装置３００の起動時間を短縮することが出来る。
【００８６】
また、顔情報記憶手段１９には使用者により予め顔情報が使用者ＩＤと共に登録されるが、使用者識別手段１８が顔情報記憶手段１９に登録されていない顔を認識すると、当該顔情報を顔情報記憶手段１９に自動登録するようにしても良い。こうすることにより、使用者の誤識別の可能性が高くなるが、使用者が顔情報を登録する手間を省略することが出来る。
【００８７】
また、使用者情報には顔情報以外の情報を用いることが出来る。使用者を識別できる情報であれば良く、例えば体型や服装などの情報を用いても良い。
【００８８】
また、顔情報取得手段１７は、情報処理装置の正面を撮影することにより使用者情報を取得することとしたが、使用者情報の取得方法はこれに限らない。例えば、リモコンに指認識を行うためのセンサを設置した上で、リモコンコードと共に使用者ＩＤを送信することにより使用者情報を取得しても良い。
【００８９】
＜効果＞
実施の形態３の情報処理装置３００は、使用者を識別するための使用者情報を取得する使用者情報取得手段（顔情報取得手段１７）と、複数の使用者情報を記憶する使用者情報記憶手段（顔情報記憶手段１９）と、顔情報取得手段１７が取得した使用者情報と顔情報記憶手段１９に記憶された使用者情報とを比較して、使用者を識別する使用者識別手段１８とをさらに備え、使用履歴記憶手段１１は使用者毎に使用履歴を記憶し、初期化順序決定手段１２は、使用者識別手段１８が識別した使用者の使用履歴に基づき初期化順序を決定するので、複数の使用者が使用する情報処理装置でも、現在の使用者の嗜好を反映した初期化処理を実施することが出来る。
【００９０】
実施の形態３の情報処理装置３００の起動方法は、（ｄ）使用者を識別するための使用者情報（顔情報）を取得する工程と、（ｅ）予め記憶しておいた使用者情報（登録済顔情報）を参照して、工程（ｄ）で取得した顔情報から使用者を識別する工程と、をさらに備え、機能の初期化処理の順序を決定する工程では、工程（ｅ）で識別した使用者の使用履歴に基づき初期化順序を決定するので、情報処理装置を複数の使用者が使用する場合でも、現在の使用者の嗜好を反映した初期化処理を実施することが出来る。
【符号の説明】
【００９１】
１０  起動指示受付手段、１１  使用履歴記憶手段、１２  初期化順序決定手段、１３  装置処理負荷監視手段、１４  初期化処理負荷記憶手段、１５  初期化タイミング決定手段、１６  初期化優先度決定手段、１７  顔情報取得手段、１８  使用者識別手段、１９  顔情報記憶手段、２０  初期化手段、１００，２００，３００  情報処理装置。
【図１】
0005701156.tif 000002
【図２】
0005701156.tif 000003
【図３】
0005701156.tif 000004
【図４】
0005701156.tif 000005
【図５】
0005701156.tif 000006
【図６】
0005701156.tif 000007
【図７】
0005701156.tif 000008
【図８】
0005701156.tif 000009
【図９】
0005701156.tif 000010
【図１０】
0005701156.tif 000011