(57)【要約】  マルチタスクアプリケーションを実行する装置において、優先度情報生成部１０４は、実行されているコンテンツタスクの入力部１２で入力を受け付けた場合の、次に入力を受け付けえる可能性を示すイベント発生頻度を示すソース情報と、情報処理装置１の各コンテンツタスクの処理性能（１つのタスクの処理時間とフレームレート）とに基づき、入力部１２で受け付けた以降の優先度を変更すべきタイミングと、そのときの優先度を定めた優先度情報を生成する。優先度制御装置１０は、当該優先度情報に基づいて、上記タイミングにおいて、各コンテンツタスクの優先度を変更する制御を実行する。
2011158405.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスクから構成されるマルチタスクアプリケーションの各タスクの優先度を示す優先度情報を生成する優先度情報生成装置であって、
前記マルチアプリケーションを実行する装置において、ユーザから受け付け得る操作の内容を示す操作情報に、当該操作が発生した場合に、当該発生後の前記複数のタスクそれぞれのイベントの発生頻度の経時的変化を示す発生傾向情報を対応付けたイベント発生頻度情報を格納するイベント発生頻度情報取得手段と、
前記装置において各タスクを実行した場合の各タスクの処理時間を示す処理時間情報を取得する処理時間情報取得手段と、
前記イベント発生頻度情報と、前記処理時間情報とに基づき、前記装置において、前記操作情報で示される操作が発生した場合における、当該発生後の、前記複数のタスクの優先度を変更すべきタイミングと、当該タイミングにおける各タスクの優先度とを決定し、前記操作情報に対応付けた優先度情報を生成する生成手段とを備える
ことを特徴とする優先度情報生成装置。
【請求項２】
前記優先度情報は、更に、前記操作が発生し得るタイミングそれぞれにおける前記マルチタスクアプリケーションの実行状態を示す状態情報に対応付けられている
ことを特徴とする請求項１記載の優先度情報生成装置。
【請求項３】
前記タスクの処理時間情報は、前記複数のタスクそれぞれが１つの処理を実行するに当たり前記装置が必要とする基本処理時間と、フレームレートの情報を含み、
前記生成手段は、前記基本処理時間と前記フレームレートとの積算値に基づいて各タスクの優先度を決定する
ことを特徴とする請求項１記載の優先度情報生成装置。
【請求項４】
前記生成手段は、
前記複数のタスクそれぞれについて、基本処理時間とフレームレートとを掛け合わせた値を第１タイムクォンタム値として算出する算出手段と、
優先度を算出すべきタイミングにおいて、前記複数のタスクを、当該タイミングにおけるそれぞれの発生頻度の高低に応じてＮ（Ｎ≧２）個以上のグループに分類する分類手段と、
前記複数のタスクのうちの１のタスクについて、前記算出手段が算出した当該１のタスクの第１タイムクォンタム値に、当該１のタスクが属しているグループよりも発生頻度の低いグループに属するタスクのうち、そのタイムクォンタム値が最大である第２タイムクォンタム値を加算して得られる第３タイムクォンタム値に基づいて、当該１のタスクの優先度を決定する優先度決定手段と、
前記優先度決定手段により、決定された各タスクの優先度それぞれの第３タイムクォンタム値に基づいて次に優先度を変更すべきタイミングを決定する変更時決定手段とを備える
ことを特徴とする請求項３記載の優先度情報生成装置。
【請求項５】
前記優先度決定手段は、いずれかのタスクの第３タイムクォンタム値が所定の閾値を超えていた場合に、全てのタスクのタイムクォンタム値を所定の値で除し、除して得られた新たなタイムクォンタム値に基づいて優先度を決定する
ことを特徴とする請求項４記載の優先度情報生成装置。
【請求項６】
前記優先度情報生成装置は、更に、
複数のタイムクォンタム値と、各タイムクォンタム値にタスクの優先度とを対応付けた固有優先度情報を取得するタスク固有情報取得手段を備え、
前記優先度決定手段は、前記固有優先度情報を参照して、前記第３タイムクォンタム値に対応する優先度を、前記１のタスクの優先度として決定する
ことを特徴とする請求項４記載の優先度情報生成装置。
【請求項７】
前記優先度情報生成装置は、更に、
前記生成手段が生成した優先度情報を外部装置に出力する出力手段を備える
ことを特徴とする請求項１記載の優先度情報生成装置。
【請求項８】
複数のタスクより構成されるマルチタスクアプリケーションを実行する情報処理装置であって、
請求項１〜７の何れか１項に記載された優先度情報生成装置が生成した優先度情報を格納する優先度情報格納手段と、
ユーザからの入力操作を受け付ける入力手段と、
前記入力手段で入力操作を受け付けたときの前記マルチタスクアプリケーションの実行状態を示す状態情報と、当該入力操作の操作内容との組み合わせで指定される優先度情報を前記優先度情報格納手段から取り出し、取り出した優先度情報に基づき優先度を変更すべきタイミングに従って各タスクの優先度を制御する優先度更新手段とを備える
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマルチタスクアプリケーションを実行する情報処理装置に関し、特に、各タスクの優先度の変更の制御に関する。
【背景技術】
【０００２】
従来、携帯電話等のモバイル情報端末においては、搭載されるＣＰＵ（Center Processing Unit）、及びメモリ等のリソースの制約から１つのアプリケーションが画面全体を占有するアプリケーション実行形態が主流となっていた。【０００３】
しかし、近年のモバイル情報端末性能の発展により、複数のコンテンツエンジンが並行動作し、各コンテンツエンジンが描画した内容を合成することで、一つのアプリケーション画面を実現する複合コンテンツが登場している。【０００４】
当該複合コンテンツの典型的一例としては、例えば、ウェブページがある。近年のウェブページは、そのページのメインとなる記事を描画するエンジンの他、当該ウェブページとともに表示されるべきアフィリエイトのFLASH動画の描画エンジンや、宣伝広告のアニメーションの描画エンジンなどの複数のタスクが動作し、それぞれのタスクが生成した画像を合成して表示するという形態をとっている。【０００５】
このような複合コンテンツを実現するためには、各コンテンツタスクに当該コンテンツエンジンの処理を実行するためのタスクを割り当て、ＯＳ（Operating System）のタスクスケジューラによりこれらタスク群を並列実行させる必要がある。一般的なモバイル情報端末に搭載されているＣＰＵの数は、１つであるため（若しくはＣＰＵの数はタスクの数より少ないため）、タスクスケジューラは、処理時間を時分割して各タスクに割り当てる。このようなマルチタスクシステムは、タイムシェアリングシステムとも呼称される。【０００６】
タイムシェアリングにおける、各タスクへの処理時間の割当方法については、様々な手法が提案されている。例えば、多くのモバイル情報端末におけるＯＳとして採用されているＬｉｎｕｘ（登録商標）のタスクスケジューラは、各タスクｉにタイムスライスＴｉを割り当て、Ｔｉが最も大きいタスクの処理が実行されるよう制御する。なお、本タスクがＣＰＵを使用した処理時間分、Ｔｉの値が減算される。これによって、タスクの切り替えが発生する。【０００７】
全ての実行可能タスクのＴｉの値が０となると、下記（式１）に従い、各タスクの新たなＴｉが再割当される。【０００８】
【数１】
2011158405.tif 000003
【０００９】
ここで、本数式にて、Ｔｉを２で除した値が加算されている。これは、実行可能タスク以外（例えばＩ／Ｏ（Input-Output）待ちのタスク等）の処理優先度を上げるためである（Ｔｉの値は０以上であり、本値が新たなＴｉに加算される）。【００１０】
また、（式１）におけるＱｉは、タイムクォンタムと呼ばれる変数である。本値が大きいタスクほど、新たなＴｉに割り当てられる値が大きくなるため、他のタスクより優先して処理を実行することが可能となる。タイムクォンタムの値は、システムコールｎｉｃｅ（）を用いて再設定が可能である。一方、タイムスライスについては、タイムスケジューラのみが参照及び更新が可能となっている。このような仕組みにより、マルチタスクアプリケーションはｎｉｃｅ（）呼び出しによるタスクの処理優先度を決定するために利用される値（ｎｉｃｅ（）の引数）を、決定できる。当該値をタスク優先度という。また、タスクスケジューラによるタイムスライスに基づく処理タスク決定により特定のタスクのみが処理を占有しないようにしている。【００１１】
複数のタスクにより一つのアプリケーションを構成するマルチタスクアプリケーションにおいては、アプリケーションの状態に応じて、特定タスクのタスク優先度を動的に変化させる、即ち、システムコールｎｉｃｅ()の引数の設定を変更することにより、ユーザ操作に対するレスポンス性能を改善することが可能である（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００７−２６５３３０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
ところが上記の通り、上記特許文献１におけるタイムクォンタムに基づくタイムスライスの再割当、即ちシステムコールｎｉｃｅ（）を用いた優先度の設定は、全ての実行可能タスクのタイムスライスが０とならなければ実施されない。このため、ユーザ操作が行われたタスクに高いタイムクォンタムを割り当てても、本タイムクォンタムに基づくタスク切り替えの実施は、少し遅延して実施されることになる。例えば、デフォルトのタイムクォンタム（１００ｍｓｅｃ）が各タスクに設定されていた場合、本遅延は最悪、１００×タスク数（ｍｓｅｃ）程度となる（操作対象のタスクのタイムスライスが０ｍｓｅｃで、他のタスクのタイムスライスが１００ｍｓｅｃであった場合）。軽快なユーザ操作を実現するためには、ユーザ操作から１００ｍｓｅｃ以内に本操作結果に基づく表示を行う程度のレスポンス性能が求められることから、上記の遅延は許容されるものではない。【００１４】
このため、ユーザ操作が発生する時点において、当該操作対象のタスクのタイムスライス値が、他のタスクのタイムスライス値より大きい状況を作り出す必要がある。【００１５】
そこで、本発明は、上記課題に鑑みてなされたものであり、ユーザ操作がなされた場合のレスポンス性能を高められるような優先度を設定するための優先度情報を生成する優先度情報生成装置、並びに、生成された優先度情報に従って優先度を制御する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するため、本発明は、複数のタスクから構成されるマルチタスクアプリケーションの各タスクの優先度を示す優先度情報を生成する優先度情報生成装置であって、前記マルチアプリケーションを実行する装置において、ユーザから受け付け得る操作の内容を示す操作情報に、当該操作が発生した場合に、当該発生後の前記複数のタスクそれぞれのイベントの発生頻度の経時的変化を示す発生傾向情報を対応付けたイベント発生頻度情報を格納するイベント発生頻度情報取得手段と、前記装置において各タスクを実行した場合の各タスクの処理時間を示す処理時間情報を取得する処理時間情報取得手段と、前記イベント発生頻度情報と、前記処理時間情報とに基づき、前記装置において、前記操作情報で示される操作が発生した場合における、当該発生後の、前記複数のタスクの優先度を変更すべきタイミングと、当該タイミングにおける各タスクの優先度とを決定し、前記操作情報に対応付けた優先度情報を生成する生成手段とを備えることを特徴としている。
【発明の効果】
【００１７】
上述のような構成によって、ユーザ入力が発生した場合であって、次のユーザ入力の発生傾向に基づく優先度の変更のタイミング情報と、そのときの優先度を定めた優先度情報を設定できる。ユーザ入力があった場合の次のユーザ入力を予測しての優先度設定ができることになるので、ユーザ入力に対するレスポンスを従来よりも高めることができる。
【図面の簡単な説明】
【００１８】
【図１】情報処理装置の機能構成を示す機能ブロック図である。
【図２】情報処理装置の外観の一例を示す図である。
【図３】Ｌｉｎｕｘ（登録商標）における固有優先度情報の内容の例を示す図である。
【図４】各コンテンツタスクのイベント発生頻度の経時的変化の一例を示す図である。
【図５】図４に基づいて生成されたイベント発生頻度情報の構成例を示す図である。
【図６】各タスクの処理時間を示す処理性能情報の構成例を示す図である。
【図７】優先度情報生成部が生成する優先度情報の構成例を示す図である。
【図８】実施の形態１における情報処理装置の全体処理における動作を示すフローチャートである。
【図９】情報処理装置の優先度情報生成部が実行する処理を示すフローチャートである。
【図１０】情報処理装置の優先度情報生成部が実行する優先度算出処理を示すフローチャートである。
【図１１】情報処理装置の合成部が実行する合成処理を示すフローチャートである。
【図１２】情報処理装置のマルチタスクアプリケーションが実行する処理を示すフローチャートである。
【図１３】本発明の優先度更新部が実行する処理を示すフローチャートである。
【図１４】優先度情報生成装置の機能構成を示す機能ブロック図である。
【図１５】３以上のタスクがある場合の各タスクのイベント発生頻度を示す図である。
【発明を実施するための形態】
【００１９】
＜実施の形態１＞
以下、本発明に係る優先度情報生成装置並びに優先度制御装置の一実施形態である情報処理装置について図面を用いて説明する。
【００２０】
情報処理装置１は、携帯電話機や小型音楽プレーヤ、ＰＤＡ（Personal Digital Assistance）などのようなディスプレイ及びユーザ操作を受け付ける機能を有する小型情報端末であり、そのＯＳ（Operation System）として、ここでは、Ｌｉｎｕｘ（登録商標）が搭載されているものとする。
【００２１】
図１は、情報処理装置１の機能構成を示す機能ブロック図であり、図２は、当該情報処理装置１を正面から見たときの外観図である。
【００２２】
情報処理装置１は、図２に示すように、写真コンテンツタスクに基づく写真１３２ａと地図タスクコンテンツに基づく地図１３２ｂとを表示部１６に表示する。情報処理装置１には、当該表示部１６のディスプレイと同程度のサイズのタッチパネルが、ユーザからの入力を受け付ける入力部１２として備えられている。タッチパネルは、図２に示す物理座標系（図２中、（X00,Y00）や（X00,Y10）などで示される座標を含む座標系）を有し、これによって、ユーザから受け付けた操作位置を検出し、操作対象となるコンテンツが写真であるのか地図であるのかを決定することができる。
【００２３】
図１に示すように、情報処理装置１は、優先度制御装置１０と、タスク管理部１１と、入力部１２と、マルチタスクアプリケーション実行管理部１３と、バッファ部１４と、合成部１５と、表示部１６とを含んで構成される。
【００２４】
優先度制御装置１０は、情報処理装置１で実行される各コンテンツタスクの優先度を定めた優先度情報を生成する機能と、生成した優先度情報を用いての優先度の更新制御を実行する機能とを有する。具体的には、優先度制御装置１０は、固有優先度格納部１０１と、ソース情報格納部１０２と、優先度情報格納部１０３と、優先度情報生成部１０４と、優先度更新部１０５と、優先度更新制御部１０６とを含んで構成される。
【００２５】
固有優先度格納部１０１は、固有優先度情報を格納するためのＲＡＭ（Random Access Memory）等により実現されるメモリである。固有優先度情報は、情報処理装置１において実行される各タスクを管理するための情報であり、アプリケーション側からタスクの優先度を示す数値が指定された場合の、当該数値により示されるタスク管理上の意味に関する情報である。
【００２６】
Ｌｉｎｕｘ（登録商標）の場合、ｎｉｃｅ値（システムコールｎｉｃｅ（）の引数と設定される値）と、各ｎｉｃｅ値にタイムクォンタムを対応付けた情報のことである。固有優先度情報の詳細については、図３を用いて後述する。
【００２７】
ソース情報格納部１０２は、ソース情報を格納するためのＲＡＭ等により実現されるメモリである。ソース情報は、各タスクの優先度を定めた優先度情報を生成するための情報である。ソース情報は、各タスクについてのイベントの発生頻度を定めたイベント発生頻度情報と、各タスクについての処理能力を定めた処理性能情報とを含んでいる。ソース情報の詳細については、図５及び図６を用いて後述する。
【００２８】
優先度情報格納部１０３は、優先度情報生成部１０４により生成された優先度情報を格納する機能を有し、ＲＡＭ等のメモリにより実現される。優先度情報は、情報処理装置１が実行しているマルチタスクアプリケーションの実行状態と、情報処理装置１がユーザから受け付ける操作内容に対応した、各コンテンツタスクの優先度を変更すべきタイミングと、その設定すべき優先度とを定めた情報である。
【００２９】
優先度情報生成部１０４は、固有優先度情報格納部１０１に格納されている固有優先度情報並びにソース情報格納部１０２に格納されているソース情報に基づき、情報処理装置１で実行されるマルチタスクアプリケーションの各タスクの時間経過ごとの優先度を示す優先度情報を生成して、優先度情報格納部１０３に格納する機能を有する。当該優先度情報生成部１０４が、優先度情報を生成する優先度情報生成装置として機能する。優先度情報の生成処理の詳細については、図９及び図１０を用いて後述する。
【００３０】
優先度更新部１０５は、優先度更新制御部１０６からの指示に基づき、優先度情報格納部１０３に格納されている優先度情報を用いて、タスク管理部１１にタスク優先度の更新を要求する機能を有する。
【００３１】
優先度更新制御部１０６は、情報処理装置１のマルチタスクアプリケーション実行管理部１３より、マルチタスクアプリケーションの状態、及び、発生したイベントに関する情報を受信し、本状態及びイベントに基づく優先度更新の開始及び終了を優先度更新部１０５に指示する機能を有する。また、優先度情報生成部１０４による優先度情報の生成の前の初期化処理として、タスク固有情報格納部１１１より固有優先度情報を取得し、固有優先度格納部１０１に格納する機能も有する。
【００３２】
タスク管理部１１は、マルチタスクアプリケーションに含まれる各タスク（本実施の形態では、写真コンテンツタスクと地図コンテンツタスク）を管理する機能、即ち、各タスクの優先度設定を行う機能を有する。具体的にはタスク管理部１１は、タスク固有情報格納部１１１と、タスク優先度格納部１１２と、タスク優先度更新部１１３と、タスク制御部１１４とを含んで構成される。
【００３３】
タスク固有情報格納部１１１は、各タスクの固有優先度情報を格納する機能を有するＲＡＭ等により実現されるメモリである。
【００３４】
タスク優先度格納部１１２は、各タスクのタスク優先度情報を格納する機能を有するＲＡＭ等により実現されるメモリである。Ｌｉｎｕｘ（登録商標）においては、各タスクの優先度（ｎｉｃｅ値）、タイムクォンタム、及び、タイムスライスがこのタスク優先度情報に該当する。
【００３５】
タスク優先度更新部１１３は、優先度更新部１０５からの指示に従い、タスク優先度格納部１１２に格納された各タスクのタスク優先度情報を更新する機能を有する。Ｌｉｎｕｘ（登録商標）においては、システムコールｎｉｃｅ（）の処理がタスク優先度更新部の処理に該当する。システムコールｎｉｃｅ（）は、本システムコール呼び出し元よりｎｉｃｅ値を受け付けて、本ｎｉｃｅ値に対応するタイムクォンタムにてタスク優先度情報を更新し、タスク優先度格納部１１２に設定する。
【００３６】
タスク制御部１１４は、タスク優先度格納部１１２に格納されている各タスクのタスク優先度情報に従い、各タスクの処理を制御する機能を有する。具体的には、各タスクのタスク優先度情報に設定された値を元に、現在実行すべきタスクを決定し、決定したタスクに処理を実行させる。また、各タスクの実行状況に基づき、各タスクのタスク優先度情報を更新する。例えば、タスクの処理時間に基づきタイムスライス値の更新（タイムスライス値よりタスクの処理時間を引くこと）を実行する。
【００３７】
入力部１２は、ユーザからの入力を受け付けて、受け付けた入力内容をマルチタスクアプリケーション制御部１３１に伝達する機能を有する。ここでは、入力部１２は、タッチパネルにより実現されるものとし、入力部１２がマルチタスクアプリケーション制御部１３１に伝達するのは、受け付けた操作内容（タッチであるか、フリックであるか）と、受け付けた操作位置（タッチパネル上の接触座標、またはユーザが接触した位置を各コンテンツで定められる座標系に変換した座標）とである。
【００３８】
マルチタスクアプリケーション実行管理部１３は、情報処理装置１が実行するマルチタスクアプリケーションの各タスクを実行し、各タスクの実行状態を管理する機能を有する。マルチタスクアプリケーション実行管理部１３は、マルチタスクアプリケーション制御部１３１と、地図・写真複合コンテンツ１３２とを含んで構成される。
【００３９】
マルチタスクアプリケーション制御部１３１は、入力部１２よりユーザ操作を受け付け、当該操作内容を地図・写真複合コンテンツ１３２に伝達する機能を有する。また、地図・写真複合コンテンツ１３２の状態、及び、当該ユーザ操作等のイベントを地図・写真複合コンテンツ１３２に伝達した旨を、優先度更新制御部１０６に伝達する機能を有する。更に、マルチタスクアプリケーション起動時において、マルチタスクアプリケーションを構成する各タスクの生成、及び、マルチタスクアプリケーション終了時の各タスクの破棄を実行する機能も有する。
【００４０】
地図・写真複合コンテンツ１３２は、情報処理装置１で実行されるコンテンツを示している。地図・写真複合コンテンツ１３２は、地図コンテンツ１３２１と、写真コンテンツ１３２２とを含んで構成される。
【００４１】
地図コンテンツ１３２１は、地図コンテンツタスク１３２１１と、地図コンテンツエンジン１３２１２とを含んで構成される。
【００４２】
地図コンテンツタスク１３２１１は、地図・写真複合コンテンツを起動する際に、マルチタスクアプリケーション制御部１３１により生成される。地図コンテンツタスク１３２１１は、地図コンテンツエンジン１３２１２と対応付けられており、地図コンテンツ１３２１のフレームレート（一秒間に実行するフレームの描画回数）に従って、地図コンテンツエンジン１３２１２への描画要求の発行と休眠とを一定間隔で繰り返し実行する。
【００４３】
地図コンテンツエンジン１３２１２は、マルチタスクアプリケーション制御部１３１からユーザ操作の内容を受け取り、地図の表示状態（緯度、経度、表示倍率等）の変更を実行する機能を有する。また、地図コンテンツエンジン１３２１２は、当該ユーザ操作の操作内容に応じて、地図スクロールなどのアニメーションの実行、及び、その終了を決定する機能も有する。また、地図コンテンツエンジン１３２１２は、地図コンテンツタスク１３２１１からの描画要求を受け取り、当該描画要求で指定される画像を生成し、バッファ１４１ａに次のフレームの描画を行う機能も有する。次のフレームの描画内容は、地図の表示状態や、アニメーションの実施有無などの各種情報を参照して決定する。地図コンテンツタスク１３２１１からは地図コンテンツ１３２１のフレームレートに従って描画要求が発行されることにより、スムースな地図のスクロール等のアニメーションが実現される。
【００４４】
写真コンテンツ１３２２は、写真コンテンツタスク１３２２１と、写真コンテンツエンジン１３２２２を含んで構成される。
【００４５】
写真コンテンツタスク１３２２１は、地図・写真複合コンテンツを起動する際に、マルチタスクアプリケーション制御部１３１により生成される。写真コンテンツタスク１３２２１は、写真コンテンツエンジン１３２２２と対応付けられており、写真コンテンツ１３２２のフレームレートに従って、写真コンテンツエンジン１３２２２への描画要求の発行と休眠とを一定間隔で繰り返し実行する。
【００４６】
写真コンテンツエンジン１３２２２は、マルチタスクアプリケーション制御部１３１よりユーザ操作を受け取り、写真の表示状態（各写真の表示位置、大きさ）の変更を実行する機能を有する。また、表示すべき写真のイメージ情報を情報処理装置１内部のメモリあるいは情報処理装置１に接続された外部記憶領域（図示せず）から取得して、写真コンテンツエンジン１３２２２が描画可能な形式（例えば、ビットマップ形式等）に展開する。なお、外部記憶領域としては、例えばＳＤカード等の不揮発性記憶メディアが挙げられる。あるいは、情報処理装置１が通信機能を備えている場合には、外部記憶領域としてイメージ情報を記憶している外部サーバ等が挙げられ、この場合には、通信によりイメージ情報を取得する。また、写真コンテンツエンジン１３２２２は、地図コンテンツエンジン１３２１２と同様に写真の描画やアニメーションを実行する機能も有する。写真コンテンツエンジン１３２２２は、写真コンテンツタスク１３２２１からの描画要求に応じて、次のフレームをバッファ１４１ｂに描画する機能も有する。
【００４７】
バッファ部１４は、実行されるマルチタスクアプリケーションの各タスクが生成した画像を格納する機能を有するメモリであり、格納されている画像を合成部１５に出力する機能も有する。バッファ部１４はバッファ１４１ａとバッファ１４１ｂとを含んで構成される。
【００４８】
バッファ１４１ａは、地図コンテンツエンジン１３２１２が生成した画像を格納する機能を有する。
【００４９】
バッファ１４１ｂは、写真コンテンツエンジン１３２２２が生成した画像を格納する機能を有する。
【００５０】
合成部１５は、マルチタスクアプリケーション制御部１３１からの指示に従って、一定時間ごとにバッファ１４１ａとバッファ１４１ｂに格納されていた画像を合成し、一枚の画像にして、表示部１６に出力する機能を有する。なお、ここでいう合成とはレイヤー合成のことである。
【００５１】
表示部１６は、画像を表示するためのディスプレイに、合成部１５から出力された画像を表示する機能を有する。当該ディスプレイは、ＬＣＤ（Liquid Crystal Display）、ＰＤＰ（Plasma Display Panel）、あるいは、有機ＥＬ（Electronic Luminescence）ディスプレイなどにより実現される。
【００５２】
以上が情報処理装置１の機能構成である。
＜データ＞
ここから、優先度情報の生成に係る情報及び、生成された優先度情報について説明する。
【００５３】
図３は、固有優先度情報の構成例を示すデータ概念図である。図３に示すように、固有優先度情報は、タスクにアプリケーション側から設定される優先度を示すｎｉｃｅ値に、それぞれのｎｉｃｅ値においてタスクに割り当ててもよい処理時間、即ちタイムクォンタムを対応付けた情報である。
【００５４】
図３に示すように、設定できるｎｉｃｅ値は、−２０〜１９までの値であり、それぞれに対応付けてｍｓｅｃオーダーのタイムクォンタムが割り当てられており、ｎｉｃｅ値が低いほど、優先度が高く、長い処理時間のタイムクォンタムが与えられることになる。
【００５５】
図３においては、例えば、ｎｉｃｅ値「０」に対応するタイムクォンタムは「１００ｍｓｅｃ」となっており、タスク優先度として「０」を設定した場合には、そのタスクには１００ｍｓｅｃのタイムクォンタムが与えられることになる。
【００５６】
図４は、情報処理装置１において、ユーザからフリック操作を受け付けた場合の、その後の情報処理装置１で実行されるマルチタスクアプリケーションの２つのタスク、写真コンテンツタスクと地図コンテンツタスクとのイベントの発生傾向の経時的変化の一例をグラフ化した図である。図４においては、縦軸にイベントの発生頻度を、横軸に時間をとっている。図中実線は、地図コンテンツタスクの、破線は写真コンテンツタスクのイベントの発生傾向を示している。
【００５７】
図４に示すように、地図コンテンツタスクは、フリック操作が発生したときから、５００ｍｓｅｃが経過したときと、３０００ｍｓｅｃが経過したときにイベントが発生する傾向が高いといえる。
【００５８】
また、写真コンテンツタスクは、フリック操作が発生したときから、５００ｍｓｅｃと、２３００ｍｓｅｃが経過したときにイベントが発生する傾向が高いと言える。
【００５９】
図５は、図４に示したイベント発生傾向を具体的に数値化した情報であり、ソース情報の一つであるイベント発生頻度情報のデータ構成例を示すデータ概念図である。
【００６０】
図５に示されるようにイベント発生頻度情報は、状態情報５０１と、操作内容５０２と、タスク名５０３と、イベント発生頻度５０４とが対応付けられた情報である。
【００６１】
状態情報５０１は、マルチタスクアプリケーションの実行状態を示す情報である。
【００６２】
操作内容５０２は、各状態情報で示される実行状態において受け付け得るユーザからの入力内容を示している。
【００６３】
タスク名５０３は、マルチタスクアプリケーションで実行されているタスクを示している。
【００６４】
イベント発生頻度５０４は、各状態情報５０１で示されるマルチタスクアプリケーションの実行状態において、ユーザから操作内容５０２で示される操作を受け付けたときの、タスク名５０３で示される各タスクのイベント発生頻度を１００ｍｓｅｃ単位で示したものである。なお、イベントの発生頻度は、ここでは、０〜１００の相対的度合いに基づく数値で示している。
【００６５】
なお、図５において、イベント発生頻度情報がない場合は、「−」で示している。
【００６６】
図４、図５に示したイベント発生頻度情報は、ユーザにより入力されたものであっても、情報処理装置１を実際にユーザが操作して得た操作ログに基づいて実際に取得したデータに基づいて作成されたものであってもよい。
【００６７】
図６は、情報処理装置１において各コンテンツタスクが実行される際の各コンテンツタスクの処理性能を示す情報であり、ソース情報の一つである処理性能情報のデータ構成例を示すデータ概念図である。
【００６８】
図６に示すように、処理性能情報は、状態情報６０１と、操作内容６０２と、タスク名６０３と、処理時間情報６０４とが対応付けられた情報である。
【００６９】
状態情報６０１と、操作内容６０２と、タスク名６０３とは、イベント発生頻度情報に示した内容（状態情報５０１、操作内容５０２、タスク名５０３を参照）と同様のものであるので説明を割愛する。
【００７０】
処理時間情報６０４は、状態情報６０１で示されるマルチタスクアプリケーションの実行状態時に、操作内容６０２で示される操作をユーザから受け付けたときの、タスク名６０３で示される各タスクの処理を各エンジンが実行する際の処理能力を示しており、平均処理時間とフレームレートとを含む情報である。
【００７１】
平均処理時間は、状態情報で示される状態において、操作内容で示される操作を受け付けたときの、各コンテンツタスクにおいて発生したイベントに対応する処理を実行するのに必要とする平均処理時間を示している。当該平均処理時間は、各タスクを実際に複数回実行し、その際に要した時間の平均値である。
【００７２】
フレームレートは、状態情報６０１で示される状態において、操作内容６０２で示される操作を受け付けたときの、フレームレートを示している。
【００７３】
図７は、情報処理装置１の優先度情報生成部１０４が生成する優先度情報のデータ構成例を示す概念図である。
【００７４】
図７に示すように優先度情報は、状態情報７０１と、操作内容７０２と、タスク名７０３と、タスク優先度７０４とを対応付けた情報である。
【００７５】
状態情報７０１と、操作内容７０２と、タスク名７０３とは、イベント発生頻度情報に示した内容（状態情報５０１、操作内容５０２、タスク名５０３を参照）と同様のものであるので説明を割愛する。
【００７６】
タスク優先度７０４は、状態情報７０１で示されるマルチタスクアプリケーションの実行状態時に、操作内容７０２で示される操作をユーザから受け付けたときの、各時間における各タスクに割り振られるべき優先度を示しており、ここでいう優先度は、Ｌｉｎｕｘ（登録商標）におけるシステムコールｎｉｃｅ（）の引数として設定される。
【００７７】
なお、図７には、一つの状態情報に対応する、一つの操作内容で示される操作が発生した場合のタスク優先度のみを示しているが、優先度情報生成部１０４が生成する優先度情報は、マルチタスクアプリケーションの全ての状態に、各状態で受け付け得る全ての操作内容に応じた、各タスクの優先度を生成する。
＜動作＞
次に、本実施の形態の情報処理装置１の動作を図８〜図１３に示すフローチャートを用いて説明する。
【００７８】
図８は、情報処理装置１の優先度制御処理の全体的な動作を示すフローチャートである。
【００７９】
図８に示すように、まず、情報処理装置１は、マルチタスクアプリケーションが起動される際に、各タスクの優先度情報を生成する処理を実行する（ステップＳ８０１）。当該優先度情報の生成処理の詳細については、図９及び図１０を用いて後述する。
【００８０】
マルチタスクアプリケーションの各タスク用の優先度情報を生成した後に、情報処理装置１のマルチタスクアプリケーション実行管理部１３は、地図・写真複合コンテンツ１３２の実行を開始する（ステップＳ８０２）。まず、マルチタスクアプリケーション制御部１３１は、地図・写真複合コンテンツ１３２を構成する各コンテンツに割り当てるバッファ１４１ａとバッファ１４１ｂとを生成する、即ち、バッファ部１４のメモリ領域を各コンテンツタスク用にバッファ１４１ａとバッファ１４１ｂとを確保する。次に、マルチタスクアプリケーション制御部１３１は、作成したバッファ１４１ａとバッファ１４１ｂとに格納される画像データ画が表示の対象であるとして、合成部１５へ登録する。当該登録においては、バッファ１４１ａの表示位置・範囲（Ｘ００−Ｙ００）−（Ｘ０１−Ｙ０１）、バッファ１４１ｂの表示位置・範囲（Ｘ００−Ｙ１０）−（Ｘ０１−Ｙ１１）、及び各バッファの前後関係を設定（表示範囲が重複する場合のための設定であり、本実施の形態では、バッファ１４１ａとバッファ１４１ｂとに格納されるデータに基づく画像の表示範囲は重複しないため、いずれが上下であっても問題ない）する。
【００８１】
上記設定が終了すると、マルチタスクアプリケーション実行管理部１３は、地図・写真複合コンテンツ１３２のバッファ１４１ａとバッファ１４１ｂとの合成表示の開始を合成部１５へ指示する（ステップＳ８０３）。なお、当該合成表示処理の詳細については、図１１を用いて後述する。
【００８２】
マルチタスクアプリケーション実行管理部１３は、地図・写真複合コンテンツ１３２を構成する地図コンテンツ１３２１と写真コンテンツ１３２２とを生成し、起動する（ステップＳ８０４）。まず、マルチタスクアプリケーション実行管理部１３は、各コンテンツを実行するための地図コンテンツタスク１３２１１及び写真コンテンツタスク１３２２１を生成する。当該生成処理において、マルチタスクアプリケーション実行管理部１３は、地図コンテンツタスク１３２１１及び写真コンテンツタスク１３２２１に、地図コンテンツエンジン１３２１２及び写真コンテンツエンジン１３２２２のエントリポイントとなるメイン関数を指定する。次に、マルチタスクアプリケーション実行管理部１３は、地図コンテンツタスク１３２１１及び写真コンテンツタスク１３２２１の実行の開始をタスク管理部１１へ指示する。タスク制御部１１４は、地図コンテンツタスク１３２１１及び写真コンテンツタスク１３２２１のタスク優先度情報に基づき、地図コンテンツエンジン１３２１２及び写真コンテンツエンジン１３２２２の処理を時分割で実行すべきタスクを切り替えながら実行する。なお、各コンテンツタスクの処理内容の詳細については、図１２を用いて後述する。
【００８３】
マルチタスクアプリケーション実行管理部１３は、入力部１２からのユーザ操作イベントを受け付けて否かを判定する（ステップＳ８０５）。ユーザ操作イベントがない場合には（ステップＳ８０５のＮＯ）、ステップＳ８０８の処理に移行する。
【００８４】
入力部１２からのユーザ操作イベントを受け付けていた場合には（ステップＳ８０５のＹＥＳ）、当該ユーザ操作イベントの内容と、地図・写真複合コンテンツ１３２の状態（その時点で実行されているタスクとそのタスクの制御内容）とを優先度更新制御部１０６に通知し、優先度更新制御が実行される（ステップＳ８０６）。
【００８５】
マルチタスクアプリケーション実行管理部１３は、入力部１２で受け付けたユーザからの操作イベントの内容に基づき、当該操作内容で指定される操作対象となるコンテンツに当該操作イベントを伝達する（ステップＳ８０７）。マルチタスクアプリケーション実行管理部１３は、フォーカス情報（処理対象となっているタスクの情報）及び操作位置情報（入力部１２たるタッチパネルのユーザの接触位置）を用いて地図コンテンツ１３２１及び写真コンテンツ１３２２のいずれが操作対象のコンテンツであるのかを判定する。例えば、入力部１２で受け付けたタッチパネル操作が行われた座標によって、操作対象を決定する。つまり、タッチパネル操作が（Ｘ００−Ｙ００）−（Ｘ０１−Ｙ０１）の範囲内で行われた場合には写真コンテンツ１３２２を、タッチパネル操作が（Ｘ００−Ｙ１０）−（Ｘ０１−Ｙ１１）の範囲内で行われた場合には、地図コンテンツ１３２１を操作対象とする。なお、フォーカス情報があるのは、複数のコンテンツが重なって表示される場合のことを想定しており、この場合操作は、フォーカス情報で示されるコンテンツに対してなされると判定するためである。対象となっているコンテンツは、ユーザ操作イベントで示される操作内容に基づく描画を実行する。
【００８６】
マルチタスクアプリケーション実行管理部１３は、地図・写真複合コンテンツ１３２の処理終了の要否を判定する（ステップＳ８０８）。当該判定は、入力部１２からのユーザからのマルチタスクアプリケーションの終了処理を示す入力（終了キーの押下等）を受け付けたかどうかで行う。終了処理が必要ない場合（ステップＳ８０８のＮＯ）、即ち、ユーザからの終了指示を受け付けていない場合は、ステップＳ８０５に戻る。
【００８７】
一方、複合コンテンツの終了処理が必要であると判定した場合（ステップＳ８０８のＹＥＳ）、マルチタスクアプリケーション実行管理部１３は、優先度更新制御部１０６に対して、優先度更新制御処理の終了を要求する（ステップＳ８０９）。
【００８８】
そして、マルチタスクアプリケーション実行管理部１３は、地図コンテンツ１３２１及び写真コンテンツ１３２２に対して終了要求を発行して、各コンテンツの処理を終了させ、その後、地図コンテンツタスク１３２１１と写真コンテンツタスク１３２２１とを破棄する（ステップＳ８１０）。
【００８９】
最後にマルチタスクアプリケーション実行管理部１３は、合成部１５に対して合成処理の終了要求を発行する。当該終了要求を受けて合成部は、合成処理を終了する。また、マルチタスクアプリケーション実行管理部１３は、バッファ部１４に生成したバッファ１４１ａ及びバッファ１４１ｂを破棄する。
【００９０】
以上が、優先度制御処理の全体の流れである。
【００９１】
では、ここから、図８に示した優先度制御処理における各種処理の詳細について説明する。
【００９２】
まず、図９及び図１０を用いて、ステップＳ８０１の優先度情報の生成処理について説明する。
【００９３】
図９は、優先度制御装置１０による優先度情報の生成処理の流れを示すフローチャートである。
【００９４】
図９に示すように、優先度更新制御部１０６は、タスク固有情報格納部１１１から図３に示すような固有優先度情報を読み出して、固有優先度格納部１０１に格納する（ステップＳ９０１）。
【００９５】
次に、優先度更新制御部１０６は、複合コンテンツのソース情報をソース情報格納部１０２に格納する（ステップＳ９０２）。当該ソース情報は、図５及び図６に示されるものを用いるとし、当該情報は、ここでは、優先度更新制御部１０６が保持していたものとする。その後に優先度更新制御部１０６は、優先度情報生成部１０４に優先度情報の生成を要求する。
【００９６】
優先度情報生成部１０４は、優先度更新制御部１０６からの優先度情報の生成要求を受け付けると、ソース情報格納部１０２に格納されているソース情報で示される各状態情報、各操作内容に応じた各コンテンツタスクのための優先度情報の生成を開始する。
【００９７】
優先度情報生成部１０４は、優先度を設定すべきタイミングを示し、時刻を管理するための内部変数ｔの値をリセットし、「０」とする。また、優先度情報生成部１０４は、優先度の有効時間を示す内部変数ａを初期化する（ステップＳ９０３）。内部変数ａの初期値は、イベント発生頻度情報のイベント発生頻度で示されるインターバル値で割り切れる値であって、固有優先度情報に記載されるタイムクォンタム値の範囲から大きく逸脱していなければどのような値であってもよい。本実施の形態においては、ａの初期値は、１００ｍｓｅｃであるとする。
【００９８】
優先度情報生成部１０４は、状態ｉ操作ｊにおける実行時情報をソース情報格納部１０２から取得する（ステップＳ９０４）。ここで状態ｉとは、図５や図６で示される状態情報のうちの一つのことであり、操作ｊとは、状態ｉに対応付けられた操作であって、図５や図６における操作内容のうちの一つを示している。例えば状態ｉが「地図操作」で、操作ｊが「フリック」である場合に、算出する優先度が地図コンテンツタスクの場合には、その平均処理時間として、「２０ｍｓｅｃ」、フレームレートとして、「１０ｆｐｓ（frame per second）」という情報を取得する。
【００９９】
次に優先度情報生成部１０４は、時刻ｔにおける各コンテンツタスクのイベント発生頻度情報をソース情報格納部１０２から取得する（ステップＳ９０５）。例えば、状態ｉが「地図操作」で、操作ｊが「フリック」で、時刻ｔが「０」の場合であって、算出する優先度が地図コンテンツタスクであるときには、図５に示すように、イベント発生頻度情報として「０」という情報を取得する。
【０１００】
このとき、優先度情報生成部１０４は時刻ｔにおけるイベント発生頻度の情報がないことを検出した場合（図５で時刻ｔにおいて「−」となっている場合）に（ステップＳ９０６のＹＥＳ）、ステップＳ９０９に移行する。これは、イベント発生頻度情報がないということは、イベントが以降発生することがないと判断されるためである。
【０１０１】
イベント発生頻度情報がある場合には（ステップＳ９０６のＮＯ）、ステップＳ９０７に移行する。
【０１０２】
優先度情報生成部１０４は、時刻ｔにおける各コンテンツタスクの優先度を算出し、優先度情報格納部１０３に格納するとともに、優先度情報の有効時間ａを算出する（ステップＳ９０７）。当該処理の更なる詳細については、図１０を用いて後述する。
【０１０３】
優先度情報生成部１０４は、算出した有効時間ａを時刻ｔに加算して得られる新たな時刻ｔ、即ち、次に優先度を変更すべきタイミングを算出する（ステップＳ９０８）。そして、ステップＳ９０５に戻る。
【０１０４】
優先度情報生成部１０４は、時刻ｔにおけるイベント発生頻度情報がなかった場合に（ステップＳ９０６のＹＥＳ）、全ての状態ｉ操作ｊの組み合わせでの各コンテンツタスクの優先度とその変更すべきタイミングを算出したかどうかを判定する（ステップＳ９０９）。当該判定は、ソース情報で示される全ての状態情報と操作内容に対応する優先度情報が優先度情報格納部１０３に格納されているかどうかを検出することにより行われる。
【０１０５】
全ての状態ｉ操作ｊの組み合わせでの各コンテンツタスクの優先度とその変更すべきタイミングを算出していない場合には（ステップＳ９０９のＮＯ）、状態ｉ操作ｊの内容を変更して、ステップＳ９０３に戻る。全ての状態ｉ操作ｊの組み合わせでの各コンテンツタスクの優先度とその変更すべきタイミングを算出していた場合には（ステップＳ９０９のＹＥＳ）、優先度情報の生成処理を終了する。
【０１０６】
では、図９のステップＳ９０７における優先度の算出並びに有効時間ａの算出の詳細を図１０に示すフローチャートを用いて説明する。
【０１０７】
優先度情報生成部１０４は、まず、各コンテンツタスクをそのイベント発生頻度に基づき、イベント発生頻度の低いグループ１からイベント発生頻度の高いグループＫまで各コンテンツタスクをグループに分類する（ステップＳ１００１）。本実施の形態においては、Ｋを３とする。即ち、各コンテンツタスクをイベント発生頻度の高いもの、中ぐらいのもの、低いものの３つのグループに分ける。当該処理は、タスク優先度の算出を簡易なものとするための処置である。本実施の形態では、イベント発生頻度を０（全くイベントが発生しない）から１００（必ずイベントが発生する）までの相対数値で表現している。よって、ここでは、グループ分けの際には、グループ１にイベント発生頻度０〜３３のコンテンツタスクを、グループ２にイベント発生頻度３４〜６６のコンテンツタスクを、グループ３にイベント発生頻度６７〜１００のコンテンツタスクを分類する。なお、ここでは、グループについてそのイベント発生頻度の分け方がなるべく均等になるようにグループを定めているが、これは、均等になっていなくともよい。分類の例を説明すると、例えば、図５に示したイベント発生頻度情報を例に説明すれば、時刻ｔ＝０だった場合、地図コンテンツタスク及び写真コンテンツタスクのイベント発生頻度はともに０であるため、両コンテンツタスクともグループ１に分類されるが、時刻ｔ＝５００であった場合には、地図コンテンツタスクのイベント発生頻度は９０であるのに対し、写真コンテンツタスクのイベント発生頻度は２７であるため、地図コンテンツタスクはグループ３に分類され、写真コンテンツタスクは、グループ１に分類される。
【０１０８】
次に優先度情報生成部１０４は、現時刻ｔからｔ＋ａまでの間の各コンテンツタスクｘの基本処理時間ＰＴＳｘを下記（式２）に従って算出する（ステップＳ１００２）。
【０１０９】
【数２】
2011158405.tif 000004
【０１１０】
優先度情報生成部１０４は、変数ｋを１で、変数ＳＵＭを０で初期化する（ステップＳ１００３）。
【０１１１】
優先度情報生成部１０４は、変数ｋがグループの個数Ｋ以下であるか否かを判定する（ステップＳ１００４）。
【０１１２】
変数ｋがグループの個数Ｋ以下である場合には（ステップＳ１００４のＹＥＳ）、グループｋの各コンテンツタスクの基本処理時間ＰＴＳｘにその時点での変数ＳＵＭで示される値を加算し、当該値を各タスクのタイムクォンタム値として設定する（ステップＳ１００５）。変数ＳＵＭは、グループｋよりもイベント発生頻度が１つ低いグループに属しているコンテンツタスクのタイムクォンタム値のうちもっとも長い時間を示す値である。当該値を加算することで、グループｋに属するタスクの優先度が、グループｋよりもイベント発生頻度が低いグループに属しているタスクよりも高い優先度を与えることができる。
【０１１３】
次に、優先度情報生成部１０４は、グループｋのコンテンツタスクそれぞれのタイムクォンタム値のうち、最も大きい値を変数ＳＵＭに設定する（ステップＳ１００６）。これにより、次に優先度を算出する、よりイベント発生頻度の高いグループに属するタスクにはより高い優先度が与えられることになる。
【０１１４】
そして優先度情報生成部１０４は、変数ｋをインクリメントして（ステップＳ１００７）、ステップＳ１００４に戻る。
【０１１５】
一方、ステップＳ１００４において、変数ｋがグループの個数Ｋよりも大きい場合には（ステップＳ１００４のＮＯ）、即ち、全てのグループの全てのタスクについてのタイムクォンタム値を算出していた場合には、ステップＳ１００８に移行する。
【０１１６】
優先度情報生成部１０４は、各タスクのタイムクォンタム値の正規化を実行する（ステップＳ１００８）。当該正規化とは、算出された全てのタスクのタイムクォンタム値のうち、１以上のタイムクォンタム値が所定の閾値（例えば３００ｍｓｅｃ）を超えていた場合に、各タスクのタイムクォンタム値を、一定の値（１よりも大きい値）で除して各タスクのタイムクォンタム値を一定割合だけ減らすことをいう。これは、上述のイベント発生頻度の高いタスクにより高い優先度を与えるための処理に、イベント発生頻度の高い上位グループに属するタスクほど下位のグループに属するタスクのタイムクォンタム値が加算されていくので、かなり大きい値になってしまうことがある。そのような大きい値をタイムクォンタム値として設定してしまった場合には、タイムスライスを消費しきるまで次のタイムクォンタムの設定が有効とならず、状況にあわせたきめ細かなタイムクォンタム値の制御が困難となる。そこで、当該正規化処理を行うことによって、これを防ぐことができる。なお、除算後のタイムクォンタム値が図３に示した固有優先度情報のタイムクォンタム値のいずれかに一致しない場合には、最も近い値のタイムクォンタム値に切り上げる。
【０１１７】
次に優先度情報生成部１０４は、下記（式３）に従って、有効時間ａを算出する。
【０１１８】
【数３】
2011158405.tif 000005
【０１１９】
当該（式３）において、ＰＴｍａｘは、最終的に、算出された全てのタスクのタイムクォンタム値のうち、処理時間が最大となっているタイムクォンタム値のことである。また、ＰＴＳｍａｘは、全てのタスクの基本処理時間（処理時間とフレームレートの積）のうち、処理時間が最大となっている基本処理時間のことである。ａ０は、有効時間ａを算出するための初期値であり、ここでは、１００（ｍｓｅｃ）が代入される。βは、０〜１の実数である。当該値は、定数であっても変数であってもよい。βをイベント発生頻度に基づき計算される変数とすることにより、イベントの発生頻度に応じた有効時間ａの値を変化させることが可能となる。なお、（式３）に基づいて算出される有効時間ａがイベント発生頻度情報のインターバル（１００ｍｓｅｃ）で割り切れない場合は、本値で割り切れる値まで、算出したａの値を切り上げる。
【０１２０】
そして、優先度情報生成部１０４は、最終的に算出されたタイムクォンタム値と、図３の固有優先度情報に基づき、各タスクの優先度を決定する（ステップＳ１０１０）。即ち、あるタスクについて算出したタイムクォンタム値に一致するタイムクォンタム値を図３の固有優先度情報から検出し、対応する優先度をそのタスクの優先度として設定する。
【０１２１】
図１０の処理を行うことにより、ある時刻ｔにおける各タスクの優先度と、その有効期間ａを算出することができる。有効時間ａを算出することによって、次に優先度を変更すべきタイミングがｔ＋ａから算出される。当該フローが、各状態情報と各操作情報に応じて、それぞれイベント発生頻度情報の値が「−」になるまで繰り返されることにより、全ての状態情報とそのとき受け付け得る全ての操作情報に応じた各タスクの優先度を変更、設定すべきタイミングと、そのときに設定すべき優先度とを規定した優先度情報を生成できる。
【０１２２】
では、上記、図９及び図１０の処理に従い、状態ｉを「地図操作」、操作ｊを「フリック」とした場合の各コンテンツタスクの優先度の算出の具体例について、図５のイベント発生頻度情報並びに図６の処理性能情報を参照しつつ説明する。ここでは、時刻ｔ＝０から時刻ｔ＝６００までの優先度の算出の過程の具体例を記載するものとする。
【０１２３】
まず時刻ｔ＝０の場合は、地図コンテンツタスクの処理時間（ＰＴ１とする）は、（式２）より２０ｍｓｅｃ（２０×１０×１００／１０００）、同様に写真コンテンツタスクの処理時間（ＰＴ２とする）は６０ｍｓｅｃ（３０×２０×１００／１０００）となる。また時刻ｔ＝０における各コンテンツタスクのイベント発生頻度は、それぞれ０であるため、各コンテンツタスクはグループ１に属する。このように全てのタスクが同グループに属するため、ステップＳ１００５による処理時間の加算は行なわれない。よって、ＰＴ１は２０ｍｓｅｃ、ＰＴ２は６０ｍｓｅｃのままである。次にａは、β＝０．５として（式３）により５０ｍｓｅｃ（（６０／６０）×１００×０．５）となる。しかしａは、優先度更新ソース情報のイベント発生頻度のインターバル（１００ｍｓｅｃ）で割り切れる値に切り上げられるため、結果１００ｍｓｅｃとなる。各タスクに設定すべきタスク優先度（ＴＰｘとする）は、図３に基づき、それぞれＴＰ１は１６、ＴＰ２は８となる。また、時刻ｔにはａ（＝１００ｍｓｅｃ）が加算されて、ｔ＝１００となる。
【０１２４】
時刻ｔ＝１００の場合も、地図コンテンツタスクの処理時間ＰＴ１は２０ｍｓｅｃ、写真コンテンツタスクの処理時間ＰＴ２は６０ｍｓｅｃとなる。また時刻ｔ＝１００における地図コンテンツタスクのイベント発生頻度は１０、写真コンテンツタスクのイベント発生頻度は１であるため、各コンテンツタスクはグループ１に属する。このように全てのタスクが同グループに属するため、ステップＳ８０５による処理時間の加算は行なわれない。以降の処理は時刻ｔ＝０の場合と同様であり、ＴＰ１は１６、ＴＰ２は８となる。時刻ｔにはａ（＝１００ｍｓｅｃ）が加算され、２００ｍｓｅｃとなる。
【０１２５】
時刻ｔ＝２００の場合も、地図コンテンツタスクの処理時間ＰＴ１は２０ｍｓｅｃ、写真コンテンツタスクの処理時間ＰＴ２は６０ｍｓｅｃとなる。また時刻ｔ＝２００における地図コンテンツタスクのイベント発生頻度は４５、写真コンテンツタスクのイベント発生頻度は５であるため、地図コンテンツタスクはグループ２に、写真コンテンツタスクはグループ１に属する。このため、ＰＴ１には、下位グループであるＰＴ２の値が加算され、ＰＴ１は８０ｍｓｅｃ、ＰＴ２は６０ｍｓｅｃとなる。次にａは、（式３）により２００ｍｓｅｃとなる。各タスクに設定すべきタスク優先度ＴＰｘは、図３に基づき、それぞれＴＰ１は４、ＴＰ２は８となる。時刻ｔにはａ（＝２００ｍｓｅｃ）が加算されて、４００ｍｓｅｃとなる。
【０１２６】
時刻ｔ＝４００の場合も、地図コンテンツタスクの処理時間ＰＴ１は２０ｍｓｅｃ、写真コンテンツタスクの処理時間ＰＴ２は６０ｍｓｅｃとなる。また時刻ｔ＝４００における地図コンテンツタスクのイベント発生頻度は８０、写真コンテンツタスクのイベント発生頻度は９であるため、地図コンテンツタスクはグループ３に、写真コンテンツタスクはグループ１に属する。以降の処理は時刻ｔ＝２００の場合と同様であり、ＴＰ１は４、ＴＰ２は８となる。時刻ｔにはａ（＝２００ｍｓｅｃ）が加算されて、６００ｍｓｅｃとなる。
【０１２７】
時刻ｔ＝６００の場合も、地図コンテンツタスクの処理時間ＰＴ１は２０ｍｓｅｃ、写真コンテンツタスクの処理時間ＰＴ２は６０ｍｓｅｃとなる。また時刻ｔ＝６００における地図コンテンツタスクのイベント発生頻度は８０、写真コンテンツタスクのイベント発生頻度は９であるため、地図コンテンツタスクはグループ３に、写真コンテンツタスクはグループ１に属する。以降の処理は時刻ｔ＝４００の場合と同様であり、ＴＰ１は４、ＴＰ２は８となる。時刻ｔにはａ（＝２００ｍｓｅｃ）が加算される。
【０１２８】
上記の手順処理を実施することにより、図７に記載の内容の優先度更新情報が完成する。
【０１２９】
次に図１１を用いて、図８のステップＳ８０３における合成部１５が実行するバッファ１４１ａとバッファ１４１ｂとに描画されている画像データの合成処理の詳細について説明する。
【０１３０】
合成部１５は、マルチタスクアプリケーション制御部１３１からの指示に従って、バッファ１４１ａとバッファ１４１ｂの内容を合成して、ＶＲＡＭ（Video Random Access Memory）へ書き出し（ステップＳ１１０１）、表示部１６に出力する。
【０１３１】
合成部１５は、マルチタスクアプリケーション制御部１３１からの終了要求を受け付けているかを判定する（ステップＳ１１０２）。終了要求の発行を受け付けていない場合には（ステップＳ１１０２のＮＯ）、合成部１５は、表示同期のために休眠し、休眠後にステップＳ１１０２に戻る。表示部１６は、数十Ｈｚ程度の頻度で画面の更新を行う。この画面更新のタイミングと合成部１５によるＶＲＡＭ内容更新のタイミングを適切に調整しなければ、ＶＲＡＭの更新中に画面更新が行われ。結果として画面がちらつくことがある。このため、適当な時間、処理を休眠することで、画面更新とＶＲＡＭ内容更新のタイミングを調整する。
【０１３２】
終了要求の発行を受け付けている場合には（ステップＳ１１０２のＹＥＳ）、合成部１６は、合成表示処理を終了する。
【０１３３】
以上が、合成処理の内容である。
【０１３４】
図１２は、図８のステップＳ８０５におけるユーザ操作入力が発生した場合の地図コンテンツ１３２１乃至写真コンテンツ１３２２の具体的処理における情報処理装置１の動作を示すフローチャートである。ここでは、地図コンテンツ１３２１の場合を例にとり図１２を用いて説明する。なお、写真コンテンツ１３２２については、地図コンテンツ１３２１と同様に動作するので、地図コンテンツ１３２１と異なる部分のみについて説明する。
【０１３５】
地図コンテンツエンジン１３２１２は、地図コンテンツへのユーザ操作イベントの配信があったかどうかを判定する（ステップＳ１２０１）。当該判定は、図８のステップＳ８０５におけるユーザからの操作入力に基づく配信があるかどうかにより判定される。地図コンテンツへのユーザ操作イベントへの配信がない場合には（ステップＳ１２０１のＮＯ）、ステップＳ１２０３に移行する。
【０１３６】
一方、ユーザ操作イベントの配信があった場合には（ステップＳ１２０１のＹＥＳ）、地図コンテンツエンジン１３２１２は、配信されたユーザ操作イベントに基づく処理を実行し、地図コンテンツの内部状態を変更する（ステップＳ１２０２）。例えば、ユーザ操作イベントが「フリック操作」の場合は、地図コンテンツの内部状態を「スクロールアニメーション」状態とし、フリック操作のＸ軸方向、Ｙ軸方向の移動量に基づき、スクロール後の地図表示位置ＰＤを算出する。また、スクロール前の地図表示位置ＰＳを現在の地図表示位置ＰＮとし、アニメーション開始時刻ＴＳを現在時刻ＴＮとし、アニメーション完了時刻ＴＥを、ＴＳにスクロールアニメーション時間ＴＡを加算した値とする。このようにして、次のステップＳ１２０３でのフレーム描画処理を行うために必要とする入力情報を生成する。
【０１３７】
地図コンテンツエンジン１３２１２は、内部状態等の入力情報に基づき、次のフレームとして表示すべき内容をバッファ１４１ａに描画する（ステップＳ１２０３）。地図コンテンツエンジン１３２１２は、地図コンテンツ１３２１の内部状態に基づき地図表示位置ＰＮの値を更新する。具体的には、内部状態が「スクロールアニメーション」の場合には、下記（式４）に基づいた更新を行う。
【０１３８】
【数４】
2011158405.tif 000006
【０１３９】
次に、現在位置ＰＮの地図情報を、例えば、インターネット経由もしくは情報処理装置１の記憶部（図示せず）に記憶されている地図情報から取得し、必要に応じて取得した地図情報をバッファ１４１ａへ描画可能な形式に変換してから、変換後のデータをバッファ１４１ａに書き込む。
【０１４０】
地図コンテンツエンジン１３２１２は、マルチタスクアプリケーション実行管理部１３より、終了要求が発行されているか否かを判定する（ステップＳ１２０４）。終了要求が発行されていない場合には（ステップＳ１２０４のＮＯ）、地図コンテンツエンジン１３２１２は、地図コンテンツ１３２１１のフレームレートの維持のための休眠の要求を発行する。例えば、Ｌｉｎｕｘ（登録商標）でいえばシステムコールｓｌｅｅｐ（）を呼び出すことに該当する。地図コンテンツ１３２１に設定されたフレームレートが２０ｆｐｓ（frame per second）の場合には、５０ｍｓｅｃからステップＳ１２０１〜ステップＳ１２０４までに要した時間を減算して得られる時間だけ休眠し（ステップＳ１２０５）、当該休眠後にステップＳ１２０１に戻る。
【０１４１】
地図コンテンツ１３２１の終了要求が発行されていた場合には（ステップＳ１２０４のＹＥＳ）、地図コンテンツ１３２１を終了して、処理を終了する。
【０１４２】
写真コンテンツ１３２２の場合、地図コンテンツ１３２１と異なるのは、ステップＳ１２０１、Ｓ１２０２の処理となり、写真コンテンツ１３２２の場合には、ステップＳ１２０１では、写真表示に関する内部状態や、スクロール、各写真の表示サイズ・位置等を算出し、ステップＳ１２０２では、算出された値を利用してバッファ１４１ｂに描画を行う。
【０１４３】
図１３は、図８のステップＳ８０６における情報処理装置１が実行する優先度更新制御における処理の詳細を示すフローチャートである。
【０１４４】
優先度更新部１０５は、優先度制御の有効時間を計数するカウンタの値ｒｔをリセットする（ステップＳ１３０１）。
【０１４５】
優先度更新部１０５は、優先度情報格納部１０３から、時刻ｒｔにおける各コンテンツタスクに設定すべきタスク優先度を取得し、各コンテンツタスクの優先度を設定する（ステップＳ１３０２）。例えば、図７に示す優先度情報に従った場合、ｒｔ＝０においては、地図コンテンツタスクの優先度１６、写真コンテンツタスクの優先度８を取得する。優先度更新部１０５は、各コンテンツタスクのタスク優先度を取得した値で更新すべくタスク優先度更新部１１３へ当該優先度を伝達する。Ｌｉｎｕｘ（登録商標）の場合であれば、各コンテンツタスクにつき、それぞれのタスク優先度で示される値を引数としてｎｉｃｅ（）を呼び出す。
【０１４６】
変数ｒｔに設定したタスク優先度の有効時間を加算する（ステップＳ１３０３）。即ち、図７に示す次に優先度を設定すべきタイミングの値を設定する。図７のｒｔ＝０の場合であれば、ｒｔには１００が加算される。
【０１４７】
優先度更新制御部１０６より優先度更新終了の要求を受け付けた場合は（ステップＳ１３０４のＹＥＳ）、優先度更新制御の処理を終了する。優先度更新終了の要求を受け付けていない場合には（ステップＳ１３０４のＮＯ）、優先度情報格納部１０３に格納されている優先度情報に基づく優先度更新制御が終了したか否かを判定する（ステップＳ１３０５）。即ち、コンテンツタスクについて、次に設定すべきタスク優先度があるかないかに基づいて、優先度更新制御の終了を判定する。例えば、図７に示す優先度情報に従った優先度更新制御を実行していた場合には、ｒｔ＞３２００となったときに優先度更新制御処理を終了する。
【０１４８】
優先度更新制御を終了すると判定した場合には（ステップＳ１３０５のＹＥＳ）、本優先度更新制御処理を終了する。優先度更新制御を終了しないと判定した場合には（ステップＳ１３０５のＮＯ）、優先度更新制御の開始からｒｔで示される値まで休眠してからステップＳ１３０２に戻る。ｒｔで示される時間が経過するまでは優先度更新制御処理を実行する必要がないためである。
【０１４９】
図１３に示す処理が実行されることにより、各コンテンツタスクのイベント発生頻度の経時的変化に基づき適切なタスク優先度が設定される。このため、キーイベント発生時において、当該キーイベントを処理すべきコンテンツタスクが優先的に処理を行うことが可能となり、ユーザ操作感が向上する。特に、ユーザからのある操作を受け付けたときの、次のユーザ操作に対するレスポンシビリティを従来よりも向上させることができる。
＜補足＞
上記実施の形態において、本発明の実施の手法について説明してきたが、本発明の実施の形態がこれに限られないことは勿論である。以下、上記実施の形態以外に本発明として含まれるその他の各種変形例について説明する。
（１）上記実施の形態において情報処理装置は、小型の携帯端末であるとして説明したが、情報処理装置は、シングルプロセッサ、もしくは少ない個数のプロセッサで、装置に搭載されているプロセッサ数よりも多い数のタスクを含むマルチタスクアプリケーションを実行するものであればよく、小型の携帯端末に限るものではない。小型の携帯端末以外では、例えば、シングルプロセッサで動作するＰＣなどが考えられる。
（２）上記実施の形態に示した情報処理装置のＯＳは、Ｌｉｎｕｘ（登録商標）であるとしたが、情報処理装置は、それ以外のマルチタスク制御が可能なＯＳで動作することとしてもよく、例えば、Ｗｉｎｄｏｗｓ（登録商標）、ＭＡＣ  ＯＳ（登録商標）などであってもよい。
（３）上記実施の形態に示す情報処理装置１は、優先度情報生成部１０４を備える構成をとっていたが、優先度情報生成装置たる優先度情報生成部１０４を備えない構成で実現されてもよい。
【０１５０】
即ち、情報処理装置が実行する複数のタスク及びそのときに受け付け得るユーザからの入力、各タスクの実行状態における処理性能の情報を情報処理装置が、装置外部の優先度情報生成装置に送信する。優先度情報生成装置は、上記実施の形態１で示した優先度情報生成部１０４と同等の機能を有し、伝達された情報ならびに、予め入力されているイベント発生頻度情報とに基づいて優先度情報を生成する。優先度情報生成装置は、生成した優先度情報を情報処理装置に送信し、情報処理装置は、受信した優先度情報に従って、各タスクの優先度の変更並びに設定を実行する。
（４）優先度情報生成装置の詳細な一構成例を図１４に示す。図１４に示すように優先度情報生成装置１４００は、イベント発生頻度情報取得部１４１０と、タスク固有情報取得部１４２０と、処理時間情報取得部１４３０と、生成部１４４０と、出力部１４５０とを含んで構成される。
【０１５１】
イベント発生頻度情報取得部１４１０は、図５に示したイベント発生頻度情報を情報処理装置から取得し、生成部１４４０に伝達する機能を有する。なお、この場合、情報処理装置は、予めイベント発生頻度情報をその動作ログから生成しているか、ユーザ入力により記憶しているものとする。また、当該イベント発生頻度情報取得部１４１０は、オペレータ等から直接入力を受け付けることで取得する構成としてもよい。
【０１５２】
タスク固有情報取得部１４２０は、図３に示す固有優先度情報を情報処理装置から取得し、生成部１４４０に伝達する機能を有する。
【０１５３】
処理時間情報取得部１４３０は、情報処理装置から図６に示す処理時間情報を取得し、生成部１４４０に伝達する機能を有する。
【０１５４】
生成部１４４０は、上記実施の形態１に示した優先度情報生成部１０４と略同等の機能を有し、算出部１４４１と、分類部１４４２と、優先度決定部１４４３と、変更時決定部１４４４とを含んで構成される。
【０１５５】
算出部１４４１は、処理時間情報取得部１４３０から取得した処理時間情報に基づき、各タスクの平均処理時間とフレームレートとを積算して得られる基本処理時間を、優先度決定部１４４３及び変更時決定部１４４４とに出力する機能を有する。即ち算出部１４４１は、図１０のステップＳ１００２における処理を実行する。
【０１５６】
分類部１４４２は、イベント発生頻度情報取得部１４１０が取得したイベント発生頻度情報に基づき、各タスクのイベント発生頻度に基づいて、イベント発生頻度の高低に基づくグループに分類する機能を有し、各グループとそれに属するタスクとを示す情報を優先度決定部１４４３に伝達する。即ち分類部１４４２は、図１０のステップＳ１００１における処理を実行する。
【０１５７】
優先度決定部１４４３は、分類部１４４２が分類したグループ及び各グループに属するタスクの情報と、算出部１４４１が算出した各タスクの基本処理時間と、タスク固有情報取得部１４２０が取得した固有優先度情報に基づき各タスクのタスク優先度を決定する機能を有する。即ち、優先度決定部１４４３は、図１０のステップＳ１００３〜Ｓ１００８、Ｓ１０１０における処理を実行する。
【０１５８】
変更時決定部１４４４は、優先度決定部１４４３が各タスクの優先度の決定過程において算出される各タスクのタイムクォンタム値と、算出部１４４１が算出した基本処理時間とに基づき、次に、タスク優先度を変更すべきタイミングを決定する機能を有する。即ち、変更時決定部１４４４は、図１０のステップＳ１００９における処理を実行する。
【０１５９】
生成部１４４０は、算出部１４４１と、分類部１４４２と、優先度決定部１４４３と、変更時決定部１４４４との連携により図１０に示すフローチャートの動作を実行させることにより、図９に示すフローチャートに従って全状態情報、全操作内容に対応付けたタスク優先度を示す優先度情報を生成する。
【０１６０】
出力部１４５０は、生成部１４４０が生成した優先度情報を情報処理装置に出力する機能を有する。なお、出力部１４５０は、優先度情報そのものを情報処理装置に直接出力する形でなく、例えば、生成した優先度情報をユーザが視認できる形にしてモニタ等に表示するという出力形態をとってもよく、オペレータがそれを見て手入力で情報処理装置に優先度を入力するという構成をとってもよい。
【０１６１】
なお、上記実施の形態に示した優先度情報生成部１０４は、当然に、図１４に示した優先度情報生成装置１４００と同等の構成を備えていてもよく、その場合、各取得部が各情報を取得する取得先は優先度更新制御部１０６となり、出力部１４５０の出力先は優先度情報格納部１０３となる。
【０１６２】
優先度情報装置を情報処理装置外部の装置とすることで、情報処理装置としては、優先度情報生成装置の構成を備えなくともよいため、装置の小型化や製造コストの低減を実現できる。また、上記実施の形態に示した優先度情報生成部１０４は、情報処理装置１専用の優先度情報を生成することになるが、優先度情報生成装置１４００は、各種の情報処理装置用の優先度情報を生成することができる。
（５）上記実施の形態においては、優先度情報は、マルチアプリケーションの状態情報に対応付け、各状態情報の受け付けた操作内容に応じた各コンテンツタスクの優先度が設定されるものとしたが、優先度の制御がそれほどシビアでなくともよいのであれば、必ずしも状態情報に対応付けなくともよい。状態情報に対応付けない優先度情報を生成する場合には、状態情報に対応付けた場合よりも全ての優先度の算出に必要とする総時間を短縮できるとともに、優先度制御のときに、必要とする優先度情報を検索するための時間を短縮できる（生成される優先度情報が、状態情報に対応付けた場合よりも少なくなるため検索に時間がかからなくなる）という効果を奏する。
（６）上記実施の形態においては、図５と図６に示すように、イベント発生傾向と、実行時情報とを別の情報として、記憶するものとしたが、両情報は、対応付けられている対象がともに状態情報と操作内容とタスク名であることから、両情報を一つの情報であるかのような対応付けを行ってもよい。
（７）上記実施の形態においては、マルチタスクアプリケーションの一例として、地図コンテンツと写真コンテンツとから成るアプリケーションを示したが、マルチタスクアプリケーションの具体例はこれに限られるものではない。マルチタスクアプリケーションは、複数の異なるタスクを実行するものであればよく、そのタスク内容は、写真コンテンツタスクや、地図コンテンツタスクに限るものではない。その他のタスクとしては、例えば、情報処理装置のメモリ等に記憶された映画などの動画を描画する動画コンテンツタスク、あるいはゲームアプリケーションなどであってもよい。
【０１６３】
また、上記実施の形態においては、マルチタスクアプリケーションが、２つのタスクを実行する場合を例に説明したが、３以上のタスクで構成されていてもよい。３以上のタスクで構成される場合の優先度情報の生成手法の一具体例を、図１５を用いて説明する。
【０１６４】
図１５に示すように状態Ｘ操作Ｙに対応付けてタスクＡ〜Ｅがあり、図１５で示すイベント発生頻度を有するものとする。また、同図には各タスクの処理性能情報も併せた形で記載した。ソース情報は、この図１５に示すようにイベント発生頻度情報と処理性能情報とが統合されたデータ構成、即ち、状態情報１５０１と、操作内容１５０２と、タスク名１５０３と、処理時間情報１５０４と、イベント発生頻度１５０５とを対応付けたデータ構成をとってもよい。
【０１６５】
そして、時刻ｔ＝０からの優先度を決定していくとする。また、有効時間ａの初期値ａ０は、１００ｍｓｅｃであるとする。このとき、タスクＡ〜Ｅの順にそれぞれの基本処理時間は、図１５から、タスクＡ〜Ｅの順にそれぞれ、（式２）から、２０、６０、４５、６０、１０となる。
【０１６６】
そして、時刻ｔ＝０のイベント発生頻度に基づいて、それぞれのタスクは、イベント発生頻度の低い（イベント発生頻度０〜３３）グループ１、中程度（イベント発生頻度３４〜６６）のグループ２、高いグループ３（イベント発生頻度６７〜１００）に振り分けられる。
【０１６７】
時刻ｔ＝０においては、グループ１には、タスクＡとタスクＥが、グループ２には、タスクＢとタスクＣが、グループ３にはタスクＤが割り振られる。
【０１６８】
そして、まず、グループ１のタスクＡとタスクＥのタイムクォンタム値が求められる。この時点では、グループ１がイベント発生頻度が最も低いグループであるためＳＵＭの値は０である。よって、タスクＡとタスクＥのタイムクォンタム値は、それぞれ２０ｍｓｅｃ、３０ｍｓｅｃとなる。そして、ＳＵＭには、タスクＡとタスクＥのタイムクォンタム値のうち大きい方の３０が設定される。
【０１６９】
次にグループ２についての各タスクのタイムクォンタム値を求める。グループ２に属するタスクは、タスクＢとタスクＣであり、それぞれの基本処理時間は、３０と４５である。これにＳＵＭの値３０を加算して、タスクＢ及びタスクＣに与えられるタイムクォンタム値は、それぞれ、９０と７５となる。そして、ＳＵＭには、タスクＢ及びタスクＣのうち、そのタイムクォンタム値の高いタスクＢの９０が設定される。
【０１７０】
最後にグループ３についてのタスクＤのタイムクォンタム値を求める。タスクＤの基本処理時間は、１０であり、この時点でのＳＵＭは９０である。よって、タスクＤに設定されるタイムクォンタム値は１００となる。
【０１７１】
以上から算出されたタイムクォンタム値により、時刻ｔ＝０におけるタスクそれぞれの優先度は、タスクＡからタスクＥの順に、１６、２、５、０、１４となる。そして、この優先度の有効時間ａは、（式３）から、ＰＴｍａｘは１００、ＰＴＳｍａｘは６０、ａ０＝１００、β＝０．５として（８５／６０）×１００×０．５＝８３．３３３…、となる。これをイベント発生頻度情報のインターバルに切り上げて有効時間ａは、１００ｍｓｅｃとなる。よって、次に優先度を設定すべきタイミングは、時刻ｔ＝１００の場合となる。
【０１７２】
同様に時刻ｔ＝１００においてもグループ分けを行う。
【０１７３】
図１５に示すイベント発生頻度情報によれば、時刻ｔ＝１００においては、グループ１にはタスクＡとタスクＣとタスクＤが属し、グループ２にはタスクＢが属し、グループ３にはタスクＥが属することとなる。
【０１７４】
そして、グループ１の各タスクのタイムクォンタム値が決定され、タスクＡ、タスクＣ、タスクＤには、それぞれ、タイムクォンタム値２０、４５、６０が設定される。そして、ＳＵＭには、最も大きいタイムクォンタム値６０が設定される。
【０１７５】
次に、グループ２のタスクＢのタイムクォンタム値が、タスクＢの基本処理時間６０とＳＵＭの６０の合算により、１２０に設定される。また、ＳＵＭには、グループ２には、タスク２のみが属しているので、そのタイムクォンタム値１２０がそのまま設定される。
【０１７６】
最後にグループ３のタスクＥのタイムクォンタム値が、その基本処理時間１０とＳＵＭの１２０の合算により、１３０に設定される。
【０１７７】
よって、時刻ｔ＝１００における各タスクの優先度は、図３の固有優先度情報に基づき、タスクＡからタスクＥの順で、それぞれ、１６、−１、１１、８、−１に設定される。また有効時間ａは、ＰＴｍａｘは１３０、ＰＴＳｍａｘは６０、ａ０＝１００、β＝０．５として（１１５／６０）×１００×０．５＝１０８．３３３…、となり、切り上げられてａ＝２００となる。よって、次に優先度を変更すべきタイミングは、ｔ＝３００（１００（現在のｔの値）＋２００（算出したａの値））のときとなる。なお、このとき、仮に、正規化を行うための閾値が１００に設定されていた場合には、タスクＢとタスクＥのタイムクォンタム値が１００を超えているので、最終的に各タスクのタイムクォンタム値が一定の値（例えば２）で除されて、除された値に基づくタスクの優先度が決定される。
【０１７８】
これをイベント発生頻度情報がなくなるまで（図１５で言えば、時刻ｔが６００を超えた時点まで）計算を繰り返して、状態Ｘ、操作Ｙにおける各タスクの優先度を変更すべきタイミング並びに、そのときに設定すべき優先度を定めた優先度情報が生成できる。
（８）上記実施の形態においては、ソース情報は、優先度更新制御部１０６が保持し、ソース情報格納部１０２に設定することとしたが、当該ソース情報は最初からソース情報格納部１０２に格納されていてもよいし、あるいは、地図・写真複合コンテンツ１３２が保持していて、優先度情報を生成する段階において、マルチタスクアプリケーション制御部１３１から優先度更新制御部１０６が取得してソース情報格納部１０２に設定することとしてもよい。あるいは、情報処理装置１が通信機能を有し、当該通信機能を利用して、情報処理装置１外部のサーバ等から、情報処理装置１で実行されるマルチタスクアプリケーションについてのソース情報を取得する構成としてもよい。
（９）上記実施の形態においては、入力部１２は、タッチパネルであるとし、当該タッチパネルに対するユーザの入力を受け付けるものであると説明したが、入力部１２としては、タッチパネルに限定されるものではない。入力部１２は、ユーザからの入力を受け付けるものであればどのようなものであってもよく、例えば、入力部１２は、例えば、情報処理装置１に備えられ各種機能を割り当てられたハードキーであってもよいし、あるいは、情報処理装置１に対して入力信号を送信するリモコンからの指示信号を受信するものであってもよい。
（１０）上記実施の形態の図１０のステップＳ１００８においては、タイムクォンタム値を一定の値で除することとしたが、これは、０より大きく１未満の一定の値を乗算することによっても実現でき、優先度情報生成部１０４は、この構成をとって優先度情報を生成することとしてもよい。
（１１）上記実施の形態においては、優先度情報は、ユーザから受け付け得る操作内容に対応付けることとした。しかし、当該操作内容はマルチタスクアプリケーションにおいて発生し得るイベントであれば、ユーザ操作に限定されるものではない。例えば、予め定めた特定の命令の実行（例えば特定の画像の描画命令）などであってもよく、イベント発生頻度情報は、当該特定の命令の実行後において各タスクのイベントが発生する頻度を示すことになる。
（１２）上記実施の形態においては優先度情報生成部１０４は、優先度情報の各タスクの優先度について、固有優先度情報を参照して各時刻ｔにおいて算出した各タスクのタイムクォンタム値に対応する優先度を設定するという構成を示したが、これは、算出したタイムクォンタム値そのものを優先度として設定することとしてもよい。
【０１７９】
これにより、固有優先度情報を参照して、算出したタイムクォンタム値から優先度へ変換するという処理を行わずともよくなり、優先度情報生成部１０４の処理負担を軽減できる。
（１３）上記実施の形態に示したブロック図（図１、図１４等参照）における各機能部は、集積化されて１又は複数のＬＳＩ（Large Scale Integration）により実現されてもよい。また、複数の機能部が１のＬＳＩにより実現されてもよい。
【０１８０】
ＬＳＩは集積度の違いにより、ＩＣ（Integrated Circuit）、システムＬＳＩ、ＶＬＳＩ（Very Large Scale Integration）、ＳＬＳＩ（Super Large Scale Integration）、ＵＬＳＩ（Ultra Large Scale Integration）などと呼称されることもある。
【０１８１】
更には、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、当該技術を用いて、機能ブロックの集積化を実現してもよい。当該技術としては、バイオ技術の適応等が可能性としてありえる。
（１４）上述の実施形態で示した優先度情報の生成に係る動作、生成された優先度情報に基づくタスクの優先度制御処理等（図７〜図１２参照）を小型情報端末等のプロセッサ、及びそのプロセッサに接続された各種回路に実行させるためのプログラムコードからなる制御プログラムを、記録媒体に記録すること、又は各種通信路等を介して流通させ頒布させることもできる。このような記録媒体には、ＩＣカード、ハードディスク、光ディスク、フレキシブルディスク、ＲＯＭ等がある。流通、頒布された制御プログラムはプロセッサに読み出され得るメモリ等に格納されることにより利用に供され、そのプロセッサがその制御プログラムを実行することにより、実施形態で示したような各種機能が実現されるようになる。
＜補足２＞ここで、本発明に係る優先度情報生成装置の実施の態様と、その効果について説明する。
【０１８２】
本発明に係る優先度情報生成装置は、複数のタスクから構成されるマルチタスクアプリケーションの各タスクの優先度を示す優先度情報を生成する優先度情報生成装置であって、前記マルチアプリケーションを実行する装置において、ユーザから受け付け得る操作の内容を示す操作情報に、当該操作が発生した場合に、当該発生後の前記複数のタスクそれぞれのイベントの発生頻度の経時的変化を示す発生傾向情報を対応付けたイベント発生頻度情報を格納するイベント発生頻度情報取得手段と、前記装置において各タスクを実行した場合の各タスクの処理時間を示す処理時間情報を取得する処理時間情報取得手段と、前記イベント発生頻度情報と、前記処理時間情報とに基づき、前記装置において、前記操作情報で示される操作が発生した場合における、当該発生後の、前記複数のタスクの優先度を変更すべきタイミングと、当該タイミングにおける各タスクの優先度とを決定し、前記操作情報に対応付けた優先度情報を生成する生成手段とを備えることを特徴とする。
【０１８３】
これにより、ユーザから受け付けた操作内容に基づいて、当該操作が発生した場合の各タスクのイベントの発生頻度に応じて優先度の切り替えタイミングを規定した優先度情報を作成できる。よって、当該優先度情報に従えば、より適切に各タスクの優先度の切り替えと、その優先度の設定を行えることになる。
【０１８４】
また、上記優先度情報生成装置において、前記優先度情報は、更に、前記操作が発生し得るタイミングそれぞれにおける前記マルチタスクアプリケーションの実行状態を示す状態情報に対応付けられていることとしてもよい。
【０１８５】
これにより、優先度情報生成装置は、マルチタスクアプリケーションの実行状態に応じた、より細かな優先度情報を生成することになるので、当該優先度情報に従えば、より適切に各タスクのイベント発生頻度に応じた優先度の切り替え及び優先度の設定を行えることになる。
【０１８６】
また、上記優先度情報生成装置において、前記タスクの処理時間情報は、前記複数のタスクそれぞれが１つの処理を実行するに当たり前記装置が必要とする基本処理時間と、フレームレートの情報を含み、前記生成手段は、前記基本処理時間と前記フレームレートとの積算値に基づいて各タスクの優先度を決定することとしてもよい。
【０１８７】
これにより、各タスクにおける一つの処理を実行するのに必要とする処理時間と、フレームレートに応じて、より適切な、次のタスクの優先度の切り替えタイミングを決定できる。
【０１８８】
また、上記優先度情報生成装置において、前記生成手段は、前記複数のタスクそれぞれについて、基本処理時間とフレームレートとを掛け合わせた値を第１タイムクォンタム値として算出する算出手段と、優先度を算出すべきタイミングにおいて、前記複数のタスクを、当該タイミングにおけるそれぞれの発生頻度の高低に応じてＮ（Ｎ≧２）個以上のグループに分類する分類手段と、前記複数のタスクのうちの１のタスクについて、前記算出手段が算出した当該１のタスクの第１タイムクォンタム値に、当該１のタスクが属しているグループよりも発生頻度の低いグループに属するタスクのうち、そのタイムクォンタム値が最大である第２タイムクォンタム値を加算して得られる第３タイムクォンタム値に基づいて、当該１のタスクの優先度を決定する優先度決定手段と、前記優先度決定手段により、決定された各タスクの優先度それぞれの第３タイムクォンタム値に基づいて次に優先度を変更すべきタイミングを決定する変更時決定手段とを備えることとしてもよい。
【０１８９】
優先度決定手段の働きにより、よりイベント発生頻度の高いタスクほど高い優先度が割り当てられるとともに、分類手段がイベント発生頻度に応じたグループわけを行って優先度決定手段が優先度の決定を行うことで、各タスクの優先度の算出の簡略化を実現できる。
【０１９０】
また、上記優先度情報生成装置において、前記優先度決定手段は、いずれかのタスクの第３タイムクォンタム値が所定の閾値を超えていた場合に、全てのタスクのタイムクォンタム値を所定の値で除し、除して得られた新たなタイムクォンタム値に基づいて優先度を決定することとしてもよい。
【０１９１】
これにより、上位のタスクにより高い優先度を与えるためにあるタスクよりもイベント発生頻度の低いタスクのタイムクォンタム値を加算することによって、無駄に高い優先度が設定されることを防ぐことができる。
【０１９２】
また、上記優先度情報生成装置は、更に、複数のタイムクォンタム値と、各タイムクォンタム値にタスクの優先度とを対応付けた固有優先度情報を取得するタスク固有情報取得手段を備え、前記優先度決定手段は、前記固有優先度情報を参照して、前記第３タイムクォンタム値に対応する優先度を、前記１のタスクの優先度として決定することとしてもよい。
【０１９３】
これにより、優先度決定手段は、各タスクについて算出したタイムクォンタム値を優先度に変換して、設定することができる。
【０１９４】
また、上記優先度情報生成装置において、更に、前記生成手段が生成した優先度情報を外部装置に出力する出力手段を備えることとしてもよい。
【０１９５】
これにより、外部装置は優先度情報生成装置が生成した優先度情報に従ったタスクの優先度管理を実行することができる。また、外部装置自身は、優先度情報を生成する機能を備えずともよくなる。
【０１９６】
また、本発明に係る情報処理装置は、複数のタスクより構成されるマルチタスクアプリケーションを実行する情報処理装置であって、上述の優先度情報生成装置が生成した優先度情報を格納する優先度情報格納手段と、ユーザからの入力操作を受け付ける入力手段と、前記入力手段で入力操作を受け付けたときの前記マルチタスクアプリケーションの実行状態を示す状態情報と、当該入力操作の操作内容との組み合わせで指定される優先度情報を前記優先度情報格納手段から取り出し、取り出した優先度情報に基づき優先度を変更すべきタイミングに従って各タスクの優先度を制御する優先度更新手段とを備えることを特徴とする。
【０１９７】
これにより、優先度制御装置は、ユーザからの操作を受け付けた後に、各タスクのイベントの発生頻度に応じた適切なタスクの優先度の変更と、その優先度の設定を実行できる。
【産業上の利用可能性】
【０１９８】
本発明に係る優先度情報生成装置並びに優先度制御装置は、１つまたは少数のＣＰＵで複数のタスクを実行するマルチタスクアプリケーションを実行する装置として、例えばモバイル情報端末などに活用することができる。
【符号の説明】
【０１９９】
１  情報処理装置
１０  優先度制御装置
１１  タスク管理部
１２  入力部
１３  マルチタスクアプリケーション実行管理部
１４  バッファ部
１５  合成部
１６  表示部
１０１  固有優先度格納部
１０２  ソース情報格納部
１０３  優先度情報格納部
１０４  優先度情報生成部（優先度情報生成装置）
１０５  優先度更新部
１０６  優先度更新制御部
１１１  タスク固有情報格納部
１１２  タスク優先度情報部
１１３  タスク優先度更新部
１１４  タスク制御部
１３１  マルチタスクアプリケーション制御部
１３２１  地図コンテンツ
１３２２  写真コンテンツ
１４００  優先度情報生成装置
１４１０  イベント発生頻度情報取得部
１４２０  タスク固有情報取得部
１４３０  処理時間情報取得部
１４４０  生成部
１４４１  算出部
１４４２  分類部
１４４３  優先度決定部
１４４４  変更時決定部
１４５０  出力部
１３２１１  地図コンテンツタスク
１３２１２  地図コンテンツエンジン
１３２２１  写真コンテンツタスク
１３２２２  写真コンテンツエンジン
【図１】
2011158405.tif 000007
【図２】
2011158405.tif 000008
【図３】
2011158405.tif 000009
【図４】
2011158405.tif 000010
【図５】
2011158405.tif 000011
【図６】
2011158405.tif 000012
【図７】
2011158405.tif 000013
【図８】
2011158405.tif 000014
【図９】
2011158405.tif 000015
【図１０】
2011158405.tif 000016
【図１１】
2011158405.tif 000017
【図１２】
2011158405.tif 000018
【図１３】
2011158405.tif 000019
【図１４】
2011158405.tif 000020
【図１５】
2011158405.tif 000021
【国際調査報告】
2011158405.tif 000022
2011158405.tif 000023