(57)【要約】【課題】  特定のユーザによる設定や個別のタスクに対する設定を行うことなくタスクのリアルタイム応答性を向上させる。【解決手段】  デバイス優先度情報４００によりデバイスの優先度が高く設定されたフラッシュメモリデバイス２１５に対してアクセスを行ったタスク２０２（タスクＢ）に対し、当該デバイスの優先度と同じ高い優先度を付与する。これにより、タスク２０２（タスクＢ）を他のタスク２０１、２０３（タスクＡ、Ｃ）よりも優先させて起床させることができるようにする。【選択図】  図３
2014182764.tif 000002
【特許請求の範囲】
【請求項１】
処理の実行についての優先度に基づいて複数のタスクの何れかをマルチタスク処理により実行する情報処理装置であって、
デバイスへのアクセスを伴うタスクを実行する実行手段と、
前記デバイスへのアクセスに伴い、前記タスクの実行を一時的に中断する中断手段と、
前記デバイスまたは前記デバイスの処理に対応して設定されている前記優先度を前記タスクに対して付与する付与手段と、
前記付与手段により付与された前記優先度に基づいて、前記実行を一時的に中断した前記タスクの実行を再開する再開手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記中断手段により前記タスクの実行が一時的に中断されているときに、前記デバイスまたは前記デバイスの処理に対応して設定されている前記優先度を判定する判定手段を更に有し、
前記付与手段は、前記判定手段により判定された前記優先度を前記タスクに対して付与することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記付与手段により前記タスクに対して付与された前記優先度を、前記再開手段により前記実行を一時的に中断した前記タスクの実行が再開された後に削除する削除手段を更に有することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記タスクには、処理の実行についての優先度が付与されており、
前記付与手段は、前記タスクに対して付与されている前記優先度を前記設定されている優先度に変更し、
前記削除手段は、前記付与手段により前記タスクに対して付与された前記優先度を、前記変更の前の前記優先度に戻すことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
処理の実行についての優先度に基づいて複数のタスクの何れかをマルチタスク処理により実行する情報処理方法であって、
デバイスへのアクセスを伴うタスクを実行する実行工程と、
前記デバイスへのアクセスに伴い、前記タスクの実行を一時的に中断する中断工程と、
前記デバイスまたは前記デバイスの処理に対応して設定されている前記優先度を前記タスクに対して付与する付与工程と、
前記付与工程により付与された前記優先度に基づいて、前記実行を一時的に中断した前記タスクの実行を再開する再開工程と、を有することを特徴とする情報処理方法。
【請求項６】
前記中断工程により前記タスクの実行が一時的に中断されているときに、前記デバイスまたは前記デバイスの処理に対応して設定されている前記優先度を判定する判定工程を更に有し、
前記付与工程は、前記判定工程により判定された前記優先度を前記タスクに対して付与することを特徴とする請求項５に記載の情報処理方法。
【請求項７】
前記付与工程により前記タスクに対して付与された前記優先度を、前記再開工程により前記実行を一時的に中断した前記タスクの実行が再開された後に削除する削除工程を更に有することを特徴とする請求項５又は６に記載の情報処理方法。
【請求項８】
前記タスクには、処理の実行についての優先度が付与されており、
前記付与工程は、前記タスクに対して付与されている前記優先度を前記設定されている優先度に変更し、
前記削除工程は、前記付与工程により前記タスクに対して付与された前記優先度を、前記変更の前の前記優先度に戻すことを特徴とする請求項７に記載の情報処理方法。
【請求項９】
処理の実行についての優先度に基づいて複数のタスクの何れかをマルチタスク処理により実行するためのプログラムであって、
デバイスへのアクセスを伴うタスクを実行する実行手段と、
前記デバイスへのアクセスに伴い、前記タスクの実行を一時的に中断する中断手段と、
前記デバイスまたは前記デバイスの処理に対応して設定されている前記優先度を前記タスクに対して付与する付与手段と、
前記付与手段により付与された前記優先度に基づいて、前記実行を一時的に中断した前記タスクの実行を再開する再開手段としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関し、特に、デバイスのアクセスを伴うタスクを制御するために用いて好適なものである。
【背景技術】
【０００２】
従来、UNIX（登録商標）やLinux（登録商標）のようなプリエンプティブ（preemptive）なマルチタスクオペレーティングシステムが主にパーソナルコンピュータで用いられている。以下の説明では「オペレーティングシステム」を必要に応じて「ＯＳ」と称する。このようなマルチタスクＯＳには、一定時間内にＯＳに制御が戻ることにより得られる高い堅牢性を有することや、複数のユーザがＯＳの資源を共有できる等の様々な利点がある。
近年では、従来ではリアルタイムＯＳが用いられてきた組込み機器においても、ソフトウェアに対する機能の要求の拡大から、マルチタスクＯＳが採用されるようになった（以下の説明では「リアルタイムＯＳ」を必要に応じて「RTOS」と称する）。
【０００３】
しかしながら、マルチタスクＯＳは一般的にRTOSと比べ、割り込み応答性能や、いわゆるデットライン保証性能（一定の時間内に処理を完了させることを保証する性能）が劣る傾向にある。その結果、即時の応答が求められるタスクの実行が待たされる場合がある。このような場合、映像機器や、音響機器において映像の途切れや音声の途切れ等を引き起こす問題が生じる虞がある。
【０００４】
このような問題に対して、割り込み処理の優先度をタスクに対して付与することや、所望のタスクをリアルタイムタスク化する技術がある（非特許文献１を参照）。
また、停止していたアプリケーションを再び起動する際に必要な復帰情報を復帰優先度毎に記憶しておき、復帰優先度の高い順に復帰情報を読み出し、当該復帰情報に対応するタスクを起動させる技術がある（特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２８４９０４号公報
【非特許文献】
【０００６】
【非特許文献１】久米修平、外２名、「Linuxにおけるリアルタイムプリエンプションパッチに基づいたロボットのリアルタイム制御」、ロボティクス・メカトロニクス講演会高原概要集2008、"1P1-E16(1)"-"1P1-E14(4)",２００８年６月６日、インターネット＜URL：http://www.rls.mse.tcu.ac.jp/robotics/papers/2008/robomec/2008_robomec_SyuheiKume.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
非特許文献１に記載の技術では、リアルタイム応答性を得たいタスクに対してリアルタイム優先度を付与することでリアルタイム応答性の向上を実現している。しかしながら、そのための操作は特権と呼ばれる特別な権限を有する者が行う必要がある。すなわち、任意のユーザがリアルタイム優先度を設定できるものではない。よって、リアルタイム性能を向上させたいタスクが既知の場合のみに適用可能であり、汎用的ではない。
【０００８】
また、特許文献１に記載の技術においても、アプリケーションの復帰情報及び復帰優先度を予め設定しておく必要がある。よって、例えば、ユーザが任意のアプリケーションをインストールした場合には、随時、復帰優先度を設定することが必要である。
本発明は、このような問題点に鑑みてなされたものであり、特定のユーザによる設定や個別のタスクに対する設定を行うことなくタスクのリアルタイム応答性を向上させることを目的とする。
【課題を解決するための手段】
【０００９】
本発明の情報処理装置は、処理の実行についての優先度に基づいて複数のタスクの何れかをマルチタスク処理により実行する情報処理装置であって、デバイスへのアクセスを伴うタスクを実行する実行手段と、前記デバイスへのアクセスに伴い、前記タスクの実行を一時的に中断する中断手段と、前記デバイスまたは前記デバイスの処理に対応して設定されている前記優先度を前記タスクに対して付与する付与手段と、前記付与手段により付与された前記優先度に基づいて、前記実行を一時的に中断した前記タスクの実行を再開する再開手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、特定のユーザによる設定や個別のタスクに対する設定を行うことなくタスクのリアルタイム応答性を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】情報処理装置の構成を示す図である。
【図２】情報処理装置の詳細な構成を示す図である。
【図３】第１の実施形態における割り込み処理を説明する図である。
【図４】デバイス優先度情報のリストを示す図である。
【図５】第２の実施形態における割り込み処理を説明する図である。
【図６】第２の実施形態における第１の処理を説明するフローチャートである。
【図７】第２の実施形態における第２の処理を説明するフローチャートである。
【図８】タスク優先度付与部が備える割り込み処理の優先度情報を示す図である。
【図９】マルチタスクＯＳにおける割り込み処理を説明する図である。
【図１０】マルチタスクＯＳにおける第１の処理を説明するフローチャートである。
【図１１】マルチタスクＯＳにおける第２の処理を説明するフローチャートである。
【図１２】各タスクの動的優先度を示す図である。
【図１３】リアルタイム性能を考慮したマルチタスクＯＳにおける割り込み処理を説明する図である。
【図１４】優先度付き割り込み処理部が備える割り込み処理の優先度情報を示す図である。
【発明を実施するための形態】
【００１２】
本発明の実施形態の説明を行う前に、本実施形態の前提となる技術を説明する。
まず、図９〜図１２を参照しながら、一般的なマルチタスクＯＳにおける割り込み処理について説明する。
図９は、一般的なマルチタスクＯＳにおける割り込み処理を説明する図である。
図９に示すように、マルチタスクＯＳは一般的に、ユーザ空間９００とカーネル空間９０１とに分けられる。ユーザ空間９００では、複数のタスク９０２〜９０４（タスクＡ〜Ｃ）が動作する。各タスク９０２〜９０４（タスクＡ〜Ｃ）は、ＯＳの機能であるスケジューラ９０５によってその動作が制御される。カーネル空間９０１は主にＯＳが動作する特権を有した空間である。カーネル空間９０１には、スケジューラ９０５と、レジスタや物理的なデータに直接アクセスを行うデバイスドライバ９０６とが含まれる。
【００１３】
次に、図１０のフローチャートを参照しながら、タスク９０２（タスクＡ）が、デバイス９０９（デバイスＢ）へのアクセスを伴う処理を行う際の一連の処理について説明する。尚、デバイス９０８〜９１０（デバイスＡ〜Ｃ）は、ハードディスクドライブやカードメディアの様なディスクデバイスである。
まず、タスク９０２（タスクＡ）の処理が開始すると（ステップＳ１００１）、タスク９０２（タスクＡ）はデータを要求する（ステップＳ３０２）。一般的にデータの要求は、カーネル空間９０１に対して、システムコールの様なインターフェースを介して行われる。データの要求を受け付けたカーネル空間９０１のデバイスドライバ９０６は、要求されたデータがバッファ等の１次記憶にプールされているか否かを判断する（ステップＳ１００３）。
【００１４】
この判断の結果、既にデータがプールされている場合、スケジューラ９０５は、要求されたデータをユーザ空間９００へコピーし、タスク９０２（タスクＡ）に処理を移す（ステップＳ１００４）。そして、タスク９０２（タスクＡ）は、要求したデータを受信する（ステップＳ１００５）。
一方、ステップＳ１００３でデータがプールされていないと判断された場合、デバイスドライバ９０６は、タスク９０２（タスクＡ）を一旦割り込み待ち状態にし、スリープさせる（ステップＳ１００６）。その後、デバイスドライバ９０６は、デバイス９０９（デバイスＢ）にデータ処理を要求する（ステップＳ１００７）。デバイス９０９（デバイスＢ）がデータ処理を行っている間は、タスク９０２（タスクＡ）以外のタスク９０３、９０４（タスクＢ、Ｃ）が動作する。
【００１５】
次に、図１１のフローチャートを参照しながら、デバイス９０９（デバイスＢ）がデータ処理を完了した後の一連の処理について説明する。
まず、デバイス９０９（デバイスＢ）がデータ処理を完了すると（ステップＳ１１０１）、データ処理が完了したイベントとしてハードウェアより割り込みが発生し、ＯＳに通知される（ステップＳ１１０２）。ＯＳが当該割り込みを検知すると、割り込み処理部９０７は、当該割り込みに対しての処理を行う。当該割り込みに対しての処理が完了し、前記要求されたデータの準備が整ったら、スケジューラ９０５は、スリープ状態で待機しているタスク２０２（タスクＡ）を起床（起動）させる（ステップＳ１１０３）。最後に、スケジューラ９０５は、次のスケジューリング機会で起床させるタスクを選択し、タスク切り替え処理を行う（ステップＳ１１０４）。このとき、スケジューラ９０５は、実行可能な状態となっているタスクの動的優先度を元に、現時点で最も優先度の高いタスクを選択し、実行させる。
【００１６】
ここで、タスク９０２（タスクＡ）は、スケジューラ９０５によって起床されているため、実行可能な状態となっている。また、これと同時にタスク９０３、９０４（タスクＢ、Ｃ）も実行可能な状態になっているものとする。一例として、図１１のステップＳ１１０４（タスク切り替え処理）の時点での各タスクの動的優先度１２００〜１２０２が図１２に示す様に設定されているものとする。図１２に示す動的優先度の値として高い値が設定されているタスクほど優先度が高いタスクであるものとする。図１２に示す例では、タスク９０４（タスクＣ）が選択され、タスク９０２（タスクＡ）は、タスク９０４（タスクＣ）、タスク９０３（タスクＢ）が実行された後に実行されるため、実行が待たされることになる。タスク９０２（タスクＡ）がリアルタイム性を要求する様な処理であって、即時の応答が求められる処理であっても、タスク９０２（タスクＡ）において大きなレイテンシ（latency）を生じることとなる。その結果、前述したように、映像機器や、音響機器において映像の途切れや音声の途切れ等を引き起こす問題となる。
【００１７】
図１３は、リアルタイム性能を考慮したマルチタスクＯＳにおける割り込み処理を説明する図である。
図１３において、デバイスドライバ９０６は、優先度付き割り込み処理部１３０１を備える。優先度付き割り込み処理部１３０１は、図１４に示すように、割り込み処理の優先度情報１４００を備える。割り込み処理の優先度情報１４００によって、各割り込み処理に対して静的優先度が設定される。この静的優先度は、ＯＳの初期化時に予め設定される。また、リアルタイム性を得たいタスクを、リアルタイムタスク１３００（リアルタイムタスクＡ）として設定し、このタスクに対して静的優先度を付与する。このようにすることで割り込み処理からの応答性の向上を実現することができ、前記問題を解消することができる。
しかしながら、このようにした場合には、特別な権限を有するユーザでなければ、タスクに対して静的優先度を付与することができない。よって、前述したように、リアルタイム性能を向上させたいタスクが既知の場合のみに適用可能であり、汎用的ではない。
【００１８】
以上の技術を前提として、以下に、本発明の実施形態を説明する。
（第１の実施形態）
まず、第１の実施形態を説明する。
図１は、プログラムの実行の対象となる情報処理装置のハードウェア構成の一例を示すブロック図である。
ＣＰＵ（Central Processing Unit）１０１は、情報処理装置１００全体を制御する。ＣＰＵ１０１によって、オペレーティングシステム（ＯＳ）やプログラムが動作する。本実施形態では、ＯＳはマルチタスクＯＳであり、情報処理装置１００はマルチタスク処理を行う。主記憶装置１０２は、プログラムやデータを一時的に記憶するＲＡＭ（Random Access Memory）であり、システムメモリとも呼ばれる。二次記憶装置１０３は、ＨＤＤ（ハードディスクドライブ）のような、データやプログラムを記録しておくことができる不揮発な記録媒体である。周辺機器１０４は、ネットワーク機器やシリアル通信機器等の情報処理装置１００に接続される機器である。バス１０５は、各ユニットを通信可能に接続するシステムバスである。
【００１９】
図２は、情報処理装置１００の詳細な構成の一例を示すブロック図である。
情報処理装置１００には、入出力装置２１４と、フラッシュメモリデバイス２１５と、ＨＤＤ２１６とが接続される。
入出力装置２１４は、キーボードやタッチパネルのような入力装置と、ディスプレイのような出力装置とを備える。入出力装置２１４は、周辺機器１０４に属するものである。フラッシュメモリデバイス２１５には、映像データ２１７等が記録される。ＨＤＤ２１６には、ＯＳ２００が使用するデータ等が記録される。フラッシュメモリデバイス２１５及びＨＤＤ２１６は、二次記憶装置１０３に属するものである。図２に示す例では、これらのハードウェア（入出力装置２１４、フラッシュメモリデバイス２１５、及びＨＤＤ２１６）がデバイスとなる。
【００２０】
これらのハードウェア（デバイス）は、システムメモリ上で動作するＯＳ２００によって管理される。ＯＳ２００は、ユーザアプリケーションとして各サービスを提供するタスク２０１〜２０３と、ＡＰＩ（Application Programming Interface）２０４と、カーネル２０５と、を含む。
ＡＰＩ２０４は、タスク２０１〜２０３とカーネル２０５との間の通信を行う。
カーネル２０５には、各ハードウェアを制御するソフトウェアであるデバイスドライバ２０６〜２０８と、割り込み処理２０９〜２１１（割り込み処理Ａ〜Ｃ）と、が含まれる。さらに、カーネル２０５には、タスクの実行手順を管理するスケジューラ２１２と、デバイス優先度判定部２１３と、が含まれる。デバイス優先度判定部２１３は、デバイスの優先度情報を記録したリストを有し、デバイスの優先度を判定する。
【００２１】
ここで、タスク２０１〜２０３（タスクＡ〜Ｃ）が動作している場合の情報処理装置１００における処理の一例について説明する。
タスク２０２（タスクＢ）は、フラッシュメモリデバイス２１５に記録された映像データ２１７を読み出し、映像データ２１７を処理した後に入出力装置２１４に映像として出力する。尚、ここでは、タスク２０２（タスクＢ）の動作が他のタスクの動作によって阻害されることがなく、且つ、出力される映像が途切れることなく連続的に処理がなされることがタスク２０２（タスクＢ）に求められるものとする。
【００２２】
このような場合の情報処理装置１００における詳細な処理の流れの一例について説明する。図３は、本実施形態における割り込み処理の一例を説明する図である。
図３において、タスク２０２（タスクＢ）が、ＡＰＩ２０４を介して、カーネル２０５に対して映像データ２１７の要求を行う。カーネル２０５内のデバイスドライバ２０７（デバイスドライバＢ）は、この要求を受け、フラッシュメモリデバイス２１５に記録された映像データ２１７へのアクセス処理を行う。デバイスドライバ２０７（デバイスドライバＢ）は、フラッシュメモリデバイス２１５からのデータの取得が整うまでタスク２０２（タスクＢ）を待ち状態とさせるために、タスク２０２（タスクＢ）を割り込み待ちの待機状態にする。これにより、タスク２０２（タスクＢ）の実行は一時的に中断される。
【００２３】
フラッシュメモリデバイス２１５は、データ取得処理が完了すると割り込みを発行してカーネル２０５へ処理の完了を知らせる。この割り込みを受け取ったカーネル２０５は、フラッシュメモリデバイス２１５による割り込みに専用の割り込み処理２１０（割り込み処理Ｂ）にて、フラッシュメモリデバイス２１５より取得したデータをタスク２０２（タスクＢ）へ渡すための処理を行う。次に、デバイス優先度判定部２１３は、フラッシュメモリデバイス２１５の優先度を確認する。図４は、デバイス優先度判定部２１３が備えるデバイス優先度情報４００のリストの一例を示す図である。
デバイス優先度情報４００には、デバイス名と、そのデバイス名で特定されるデバイスに設定された優先度とが相互に対応づけられて予め記録される。ここでは、優先度は、「０」から「９９」までの値をとり、「０」は優先度が指定されていない状態を表す。「１」から「９９」の値は優先度の高さを表し、値が大きいほど優先度が高いことを表す。ここでは、図４に示す例のように、フラッシュメモリデバイス２１５に対する優先度が「９９」であり、最も優先度が高いものとする。
【００２４】
デバイス優先度判定部２１３は、デバイス優先度情報４００より、フラッシュメモリデバイス２１５の優先度が「９９」であると判定する。次に、デバイスドライバ２０７（デバイスドライバＢ）が有するタスク優先度付与部３００は、デバイス優先度判定部２１３によって判定されたデバイス優先度（＝９９）と同一のタスク優先度（＝９９）をタスク２０２（タスクＢ）に対して付与する。また、デバイスドライバ２０７（デバイスドライバＢ）は、割り込み待ちの待機状態であったタスク２０２（タスクＢ）の状態を実行可能状態に変更する。最後にカーネル２０５は、スケジューラ２１２を呼び出して、次に実行すべきタスクを決定し、実行するタスクを切り替える。このとき、タスク優先度付与部３００によってタスク２０２（タスクＢ）の優先度は、最も高い優先度（＝９９）に設定されている。このため、スケジューラ２１２は、タスク２０２（タスクＢ）を選択し、実行する。これにより、一時的に中断されたタスク２０２（タスクＢ）の実行が再開する。
【００２５】
一方、一度、高い優先度が付与されたタスクを元の優先度に戻す方法としては、例えば、以下の方法がある。タスク優先度付与部３００は、タスクの優先度を変更する際に、変更前のタスクの優先度を記録しておく。そして、タスク優先度付与部３００は、一定の回数、スケジューラ２１２が呼び出された際に、変更後のタスクの優先度を変更前のタスクの優先度に戻す。この他、例えば、タスク２０２（タスクＢ）が映像データ２１７の処理を完了したことを検知することに伴い、タスク２０２（タスクＢ）の優先度をスケジューラ２１２が元の優先度に戻してもよい。以上のように、一時的に中断されたタスクの実行が再開された後、当該タスクの実行が不要と見なせる所定の条件が成立した場合に、タスク優先度付与部３００に付与された優先度が削除される。そして、タスク２０２（タスクＢ）に元々付与されていた優先度がタスク２０２に再び付与される。
【００２６】
以上のように本実施形態では、デバイス優先度情報４００によりデバイスの優先度が高く設定されたフラッシュメモリデバイス２１５に対してアクセスを行ったタスク２０２（タスクＢ）に対し、当該デバイスの優先度と同じ高い優先度を付与する。これにより、タスク２０２（タスクＢ）を他のタスク２０１、２０３（タスクＡ、Ｃ）よりも優先させて起床させることができる。したがって、タスク２０２（タスクＢ）の復帰時間を小さくすることが可能となり、高いリアルタイム応答性を得ることが可能となる。よって、所定のデバイスへのアクセスを伴い、且つ、リアルタイム応答性能が求められるアプリケーションに対する特権を持った管理者による優先度の設定や、個別のタスクに対する設定（操作）を行うことなく、タスクのリアルタイム応答性の向上を実現できる。
【００２７】
尚、本実施形態では、フラッシュメモリデバイス２１５の優先度が「９９」であり、その他のデバイスの優先度が「０（ゼロ）」である場合を例に挙げて説明した（図４を参照）。しかしながら、デバイスの優先度の内容はこのようなものに限定されるものではない。フラッシュメモリデバイス２１５以外のデバイスの優先度は「０（ゼロ）」でなくてもよい。フラッシュメモリデバイス２１５以外のデバイスの優先度が最も高くなるようにしてもよい。
【００２８】
（第２の実施形態）
次に、本発明の第２の実施形態を説明する。本実施形態では、図１４に示すように、情報処理装置の割り込み処理が静的な優先度を有しており、各割り込みに対して優先度を考慮した割り込み処理を行う場合について説明する。このように本実施形態と第１の実施形態とは、割り込み処理に静的な優先度を設定することに伴う構成及び処理が主として異なる。したがって、本実施形態の説明において、前述したものと同一の部分については、図１〜図４、図９〜図１４に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００２９】
図８は、タスク優先度付与部３００が備える割り込み処理の優先度情報８００の一例を示す図である。本実施形態では、割り込み処理の静的な優先度はＯＳの初期化時に決定されているものとする。また、この静的な優先度は、図８に示すように設定されているものとする。
図５は、本実施形態における割り込み処理の一例を説明する図である。図６は、タスク２０２（タスクＢ）がフラッシュメモリデバイス２１５へのアクセスを伴う処理を行う際の一連の処理について説明するフローチャートである。図７は、フラッシュメモリデバイス２１５が処理を完了した後の一連の処理について説明するフローチャートである。
【００３０】
図６において、まず、タスク２０２（タスクＢ）が処理を開始すると（ステップＳ６０１）、ＡＰＩ２０４を介して、デバイスドライバ２０７（デバイスドライバＢ）に対して、映像データ２１７の要求を行う（ステップＳ６０２）。カーネル２０５内のデバイスドライバ２０７（デバイスドライバＢ）は、この要求の内容に応じた処理を行う。ここで、デバイスドライバ２０７（デバイスドライバＢ）は、カーネル２０５内にキャッシュ等のデータプールとして、映像データ２１７の準備が既に整っているか否かを判断する（ステップＳ６０３）。
【００３１】
この判断の結果、映像データ２１７の準備が既に整っている場合、スケジューラ２１２は、タスク２０２（タスクＢ）への映像データ２１７のコピーを行う（ステップＳ６０４）。そして、スケジューラ２１２は、タスク２０２（タスクＢ）の処理を復帰させる（ステップＳ６０５）。
一方、ステップＳ６０３で映像データ２１７の準備が整っていないと判断された場合には、次の処理が行われる。すなわち、デバイスドライバ２０７（デバイスドライバＢ）は、映像データ２１７の準備が整うまで、タスク２０２（タスクＢ）を一旦割り込み待ち状態にし、スリープさせる（ステップＳ６０６）。これにより、タスク２０２（タスクＢ）の実行は一時的に中断する。そして、デバイスドライバ２０７（デバイスドライバＢ）は、フラッシュメモリデバイス２１５へ映像データ２１７の要求を行う。
【００３２】
フラッシュメモリデバイス２１５は、映像データ２１７の取得を完了すると（ステップＳ７０１）、割り込みを発生させ、ＯＳ２００に通知する（ステップＳ７０２）。ＯＳ２００がこの割り込みを受信すると、カーネル２０５は、割り込み処理の優先度情報８００を確認する。そして、カーネル２０５は、当該割り込みに対する割り込み処理である、優先度付き割り込み処理５００（優先度付き割り込み処理Ｂ）の優先度が最も高いものか否かを判断する（ステップＳ７０３）。
【００３３】
この判断の結果、優先度付き割り込み処理５００（優先度付き割り込み処理Ｂ）よりも高い優先度の割り込み処理が存在する場合には、当該高い優先度の割り込み処理が完了するまで待機する（ステップＳ７０３、Ｓ７０４）。そして、優先度付き割り込み処理５００（優先度付き割り込み処理Ｂ）よりも高い優先度の割り込み処理がない、又は、優先度付き割り込み処理５００（優先度付き割り込み処理Ｂ）よりも高い優先度の割り込み処理が完了済みである場合、次の処理が行われる。すなわち、スケジューラ２１２は、優先度付き割り込み処理５００（優先度付き割り込み処理Ｂ）の処理を実行する（ステップＳ７０５）。そして、スケジューラ２１２は、タスク２０２（タスクＢ）への映像データ２１７のコピーを行う（ステップＳ７０６）。
【００３４】
次に、タスク２０２（タスクＢ）を起床させる前に、タスク優先度付与部３００は、割り込み処理の優先度情報８００を参照する（ステップＳ７０７）。割り込み処理の優先度情報８００より、本例では、フラッシュメモリデバイス２１５の割り込み処理（フラッシュメモリ割り込み処理）の優先度は「４９」に設定されている。このため、タスク優先度付与部３００は、タスク２０２（タスクＢ）の優先度としてこれを継承させ、タスク２０２（タスクＢ）の優先度を「４９」に決定する（ステップＳ７０８）。
最後に、デバイスドライバ２０７（デバイスドライバＢ）は、スケジューラ２１２を介して、ステップＳ７０８で設定された優先度をタスク２０２（タスクＢ）に設定し、タスク２０２（タスクＢ）を起床させる（ステップＳ７０９）。タスク２０２（タスクＢ）の優先度が全てのタスクの優先度の中で最も高いものであれば、スケジューラ２１２が次に実行すべきタスクはタスク２０２（タスクＢ）となる。これにより、一時的に中断されたタスク２０２（タスクＢ）の実行が再開する。
【００３５】
一方、一度、高い優先度が付与されたタスクを元の優先度に戻す方法としては、第１の実施形態で説明したように、タスク優先度付与部３００は、タスクの優先度を変更する際に、変更前のタスクの優先度を記録しておき、この変更前のタスクの優先度に戻す。すなわち、タスク優先度付与部３００は、一定の回数、スケジューラ２１２が呼び出された場合に、タスク２０２（タスクＢ）の優先度を元の優先度に戻すことができる。また、タスク優先度付与部３００は、タスク２０２（タスクＢ）が映像データ２１７の処理を完了したことをスケジューラ２１２が検知した場合に、タスク２０２（タスクＢ）の優先度を元の優先度に戻してもよい。以上のように、一時的に中断されたタスクの実行が再開された後、当該タスクの実行が不要と見なせる所定の条件が成立した場合に、タスク優先度付与部３００に付与された優先度が削除される。そして、タスク２０２（タスクＢ）に元々付与されていた優先度がタスク２０２に再び付与される。
【００３６】
以上のように、タスクに対して、デバイスの割り込み処理の優先度を継承させることによっても、第１の実施形態と同様の効果が得られる。すなわち、所定のデバイスへのアクセスを伴い、且つ、リアルタイム応答性能が求められるアプリケーションに対する特権を持った管理者による優先度の設定や、個別のタスクに対する設定（操作）を行うことなく、タスクのリアルタイム応答性の向上を実現できる。
【００３７】
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００３８】
（その他の実施例）
本発明は、以下の処理を実行することによっても実現される。即ち、まず、以上の実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）が当該プログラムを読み出して実行する。
【符号の説明】
【００３９】
２１２  スケジューラ、２１３  デバイス優先度判定部、３００  タスク優先度付与部
【図１】
2014182764.tif 000003
【図２】
2014182764.tif 000004
【図３】
2014182764.tif 000005
【図４】
2014182764.tif 000006
【図５】
2014182764.tif 000007
【図６】
2014182764.tif 000008
【図７】
2014182764.tif 000009
【図８】
2014182764.tif 000010
【図９】
2014182764.tif 000011
【図１０】
2014182764.tif 000012
【図１１】
2014182764.tif 000013
【図１２】
2014182764.tif 000014
【図１３】
2014182764.tif 000015
【図１４】
2014182764.tif 000016