(57)【要約】本発明は、リソース管理の装置及び方法に関し、特に、リアルタイムシステムのリソース管理に適している。特に、本発明は、主記憶の容量が制約される場合の低コストシステムで実行するアプリケーションのメモリ管理に関する。本発明は、データ処理システムの複数のタスクをスケジューリングする方法であって、各タスクが、前記タスクに関連したメモリ使用に基づく前記タスクの中断を特徴付ける中断データを有し、前記複数のタスクのうちの一つを処理し、前記タスクに関連した中断データに整合するタスクのメモリ使用を表す入力をモニタし、前記モニタした入力に基づいて前記タスクの処理を中断し、前記複数のタスクのうちの異なるものを処理することを特徴とする方法を提供する。したがって、本発明において、そのようなシステムで実行されるタスクは、タスクの実行中（すなわち、プリエンプションポイントで及びそれらの間）に種々のポイントで要求されるメモリの容量を特定する、メモリに基づくプリエンプションとも称される中断データによって予め構成される。データ処理システムには、処理される一つ以上のタスク及び利用できるメモリに基づいてタスクのスケジューリングを制約すべきであるか否か評価するように配置された対応する処理手段を設ける。したがって、本発明は、メモリの制約に基づいてタスク処理をプリエンプトする手段を提供し、これによって、新たなメモリ管理方法及び新たなプリエンプト基準を提供する。
2006523881.tif 000002
【特許請求の範囲】
【請求項１】
データ処理システムの複数のタスクをスケジューリングする方法であって、各タスクが、前記タスクに関連したメモリ使用に基づく前記タスクの中断を特定する中断データを有し、
前記複数のタスクのうちの一つを処理し、
前記タスクに関連した中断データに整合するタスクのメモリ使用を表す入力をモニタし、
前記モニタした入力に基づいて前記タスクの処理を中断し、
前記複数のタスクのうちの異なるものを処理することを特徴とする方法。
【請求項２】
前記複数のタスクに関連した最大メモリ使用を識別する第１データを受信し、
前記複数のタスクを処理するのに利用できるメモリを識別する第２データを受信し、
前記第１及び第２データに基づいて、前記タスクを処理するのに利用できる十分なメモリが存在するか否か識別し、
前記モニタするステップ及び中断するステップを、不十分なメモリの識別に応答したときのみ適用することを特徴とする請求項１記載の方法。
【請求項３】
前記入力が、中断要求を表すデータを具えることを特徴とする請求項１記載の方法。
【請求項４】
前記入力が、前記タスクのメモリ使用を表すデータを具え、前記方法が、前記メモリ使用が前記タスクに関連した中断データに整合するときを識別することを特徴とする請求項１記載の方法。
【請求項５】
前記タスクの終了をモニタし、タスクの終了に応答してメモリの利用可能性を識別する前記ステップを繰り返すことを特徴とする請求項１記載の方法。
【請求項６】
残りのタスクを実行するのに十分なメモリの識別に応答して、前記モニタするステップを不要と思わせることを特徴とする請求項５記載の方法。
【請求項７】
データ処理システムで用いるスケジューラであって、前記データ処理システムが、複数のタスクを実行するように配置されるとともに前記タスクを実行する際に用いられる特定容量のメモリに対するアクセスを有し、前記スケジューラが、
前記タスクに関連した最大メモリ使用を識別するデータを受信するように配置されたデータ受信機と、
受信したデータに基づいて、前記タスクを実行するのに十分なメモリが存在するか否か識別するように配置されたエバリュエータと、
前記タスクの実行中の中断に対して少なくとも一つのタスクを選択するように配置され、前記中断が、前記タスクによって特定されたメモリ使用に一致するセレクタとを具え、
前記複数のタスクを実行するのに不十分なメモリが存在することを識別する前記エバリュエータに応答して、前記セレクタが、前記特定されたメモリ使用及び前記データ処理システムに対して利用できるメモリの特定された容量に基づいて、中断に対する一つ以上のタスクを選択し、前記スケジューラが、前記特定されたメモリを用いながら前記タスクに応答して選択タスクの実行を中断することを特徴とするスケジューラ。
【請求項８】
前記エバリュエータが、前記タスクの終了をモニタし、前記タスクの終了に応答して、残りのタスクを実行するのに十分なメモリが存在するか否か識別することを特徴とする請求項７記載のスケジューラ。
【請求項９】
前記データが、前記タスクに関連した実行期限を識別することを特徴とする請求項７記載のスケジューラ。
【請求項１０】
残りのタスクを実行するのに十分なメモリを識別する前記エバリュエータに応答して、前記スケジューラが、実行期限なしでタスクを識別するとともに、識別されたタスクをスケジュールすることを特徴とする請求項９記載のスケジューラ。
【請求項１１】
前記残りのタスクを実行するのに十分なメモリを識別する前記エバリュエータに応答して、前記セレクタが、一つ以上の選択タスクを選択から除外することを特徴とする請求項８から１０のうちのいずれか１項に記載のスケジューラ。
【請求項１２】
複数のタスクを実行するデータ処理システムであって、
タスクの実行中に命令及びデータを保持するメモリと、
タスクに関連した最大メモリ使用を識別するデータを受信する受信手段と、
受信したデータに基づいて、前記タスクを実行するのに十分なメモリが存在するか否かを識別する評価手段と、
前記評価手段から受信した入力に基づいて前記タスクの実行をスケジュールするスケジューラとを有し、
前記複数のタスクを実行するのに不十分なメモリの識別に応答して、前記スケジューラが、前記タスクによるメモリに依存して少なくとも一つのタスクの実行を中断することを特徴とするデータ処理システム。
【請求項１３】
前記データ処理システムがデジタルテレビジョンシステムを具えることを特徴とする請求項１２記載のデータ処理システム。
【請求項１４】
データをデータ処理システムに送信する方法であって、
前記データ処理システムによって用いられるデータをタスク処理中に送信し、
メモリ使用に基づいて前記タスクの中断を特定する中断データをタスク処理中に送信し、
前記データ処理システムが、
前記タスクに関連した中断データに整合するタスクのメモリ使用を表す入力のモニタリング及びモニタされた入力に基づく前記タスクの処理の中断のプロセスを実行することを特徴とする方法。
【請求項１５】
前記中断データが、前記タスクのメモリ使用に基づいて、前記タスクの処理を中断できる少なくとも一つのポイントを識別することを特徴とする請求項１４記載の方法。
【請求項１６】
前記中断データが、前記タスクに関連した最大メモリ使用を識別するデータを有することを特徴とする請求項１４記載の方法。
【請求項１７】
前記タスクが複数のサブジョブを具え、前記タスクの処理を中断することができる少なくとも一つのポイントを識別する前記データが、そのようなサブジョブにそれぞれ対応することを特徴とする請求項１５記載の方法。
【請求項１８】
データ処理システムで用いられるタスクを形成する方法であって、前記タスクに中断データを関連させ、前記中断データが、前記タスクに関連したメモリ使用に基づいて前記タスクの中断を特定し、前記データ処理システムが、複数のタスクに関連して、前記タスクに関連した中断データに整合するタスクのメモリ使用を表す入力のモニタリング及びモニタされた入力に基づく前記タスクの処理の中断のプロセスを実行することを特徴とする方法。
【請求項１９】
前記タスクを処理するように構成した前記データ処理システムを識別し、前記中断データを前記データ処理システムに送信することを特徴とする請求項１８記載の方法。
【請求項２０】
請求項１から６のうちのいずれか１項による方法を処理システムに実行させる命令のセットを具えるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リソース管理方法及び装置に関し、リアルタイムシステムのリソース管理に特に適しているが、これに限定されるものではない。
【背景技術】
【０００２】
メモリの管理は、リソース管理の重大な態様であり、その使用を最適にするために種々の方法が開発されてきた。一つの方法は、いわゆる「仮想メモリ」であり、この場合、一次記憶と二次記憶、例えば、ハードドライブから未使用のリソースをスワップするとともに、これらを、現在の動作を実行するのに要求されるものに置換することによって、実際に有するものを超える主（すなわち一次）記憶を有するようなコンピュータが現れる。
【０００３】
仮想メモリは、アプリケーションのメモリ要求が利用可能な主記憶を超えるとき又は主記憶に存在しないリソースにアプリケーションがアクセスする必要がないときに用いられる。後者の状況において、仮想メモリマネージャは、未使用のメモリページ（例えば、現在アクセスされていないページ）の位置指定を行い、スワップファイルと称されるディスクの保持された領域から未使用ページに書込みを行う。その後、仮想メモリマネージャによって、ＣＰＵは、要求されたページを、ディスク上のファイル又はスワップファイルから主記憶に読み出す。これを行う際に、仮想メモリマネージャは、一次及び二次記憶ページをマッピングし、一部の内部管理を行う。更なる情報に対しては、Part 3 (Chapter 7) of: “H. M. Deitel, An introduction on Operating System, Addison Wesley Publishing Company, Inc., ISBN 0-201-14502-2, 1984を参照されたい。
【０００４】
十分な主記憶を有する場合、仮想メモリは滅多に使用されない。不十分なメモリしか有しない場合、コンピュータは、大抵の時間をメモリとスワップファイルとの間のページの移動に費やし、この移動は低速である。その理由は、ハードライブのアクセスがメモリアクセスの１０００倍未満の低速だからである。さらに、データの不可欠な移動によって非決定事項を増大し、システムの決定事項が減少する。したがって、仮想メモリは、ビットごとに低コストの記憶容量の増大を容易にするが、タイミングパースペクティブからの最悪の場合(worst-case)のアクセス時間及び非決定的な動作の増大を伴う。
【０００５】
メモリ管理の他の方法は、利用可能なメモリに依存するファイルの選択及び処理を伴う。この方法は、極端にリソースインテンシブな画像ファイルのような所定のタイプのファイルに特に適している。そのようなファイルの処理は、処理要求及びメモリ利用可能性に基づいたバージョンを（各々が、互いに相違する解決すなわちサービスの品質（Ｑｏｓ）に対応する）ファイルの互いに相違する複数のバージョンから選択することを伴う。画像ファイルの場合、種々の解決バージョンが、画像ファイルの種々のビデオトラックに格納される。この方法は、Quick-Time VRTMアプリケーションにおいてAppleTMによって用いられる。このアプローチの問題は、画像の複数のバージョンが利用できるようにする必要があることであり、これは不便かつコストがかかる。
【０００６】
アプリケーション及びデータの処理は、リソースの量の増大を伴うように出現し、このことは、コンピュータが常にアップグレードを必要とすることを意味する。システムオンシリコン又はシステムオンチップデバイスに対して、メモリは、所定の場合において、主要な制約要因となりつつある。その理由は、必要とされるシリコン領域の観点から（ＭＩＰＳやＶＬＩＷのような）他の処理コアの追加がもはや問題とならないからである。その結果、ＣＰＵサイクル以外のメモリは、システムの新たな発生に対して隘路となるように考えられる。
【０００７】
他のメモリを導入する必要がなく、プロセッサインテンシブでなく、したがって、現存する方法より廉価であるメモリ管理方法が存在するのが望ましい。
【発明の開示】
【０００８】
本発明の第１態様によれば、データ処理システムの複数のタスクをスケジューリングする方法であって、各タスクが、前記タスクに関連したメモリ使用に基づく前記タスクの中断を特定する中断データを有し、
前記複数のタスクのうちの一つを処理し、
前記タスクに関連した中断データに整合するタスクのメモリ使用を表す入力をモニタし、
前記モニタした入力に基づいて前記タスクの処理を中断し、
前記複数のタスクのうちの異なるものを処理することを特徴とする方法を提供する。以下の説明において、タスクの中断を、タスクプリエンプション又はタスクのプリエンプションと称し、用語「タスク」を、メモリ、ＣＰＵ，Ｉ／Ｏ等のシステムリソースに対してそれ自体で匹敵しうる実行のユニットを表すために使用する。一例において、タスクを、継続的に実行する一連のジョブとして見ることができ、ジョブの各々は、一つ以上のサブジョブを具える。例えば、タスクは、「ビデオストリームのデマルチプレクサ処理」を具えることができ、到来ストリームの読出し、ストリームの処理及びストリームに関するデータの出力を伴うことができる。これらステップは、到来データストリームの各々に対して実行され、その結果、単一ストリームに対する読出し、処理及び出力は、一つのジョブの実行に対応し、したがって、読出し及び処理すべきデータの複数のパケットが存在するとき、ジョブは、対応する複数回数実行される。サブジョブを、ジョブの機能的な構成要素に関連すると考えることができる。
【０００９】
本発明の一例において、データ処理システムによって用いられるメモリの容量は、タスクの実行中に種々のポイントで要求されるメモリの容量を特定するいわゆるプリエンプションポイントを通じて、停止データによって間接的に制御される。
【００１０】
これらプリエンプションポイントは、メモリの不足によりデータ処理システムが停止するのを回避するのに利用される。リアルタイムタスクが、複数のサブジョブを具えるものとして特定されるとき、プリエンプションポイントは、好適にはタスクのサブジョブ境界に一致する。以下の説明において、停止データを、プリエンプティブメモリデータ又は単にメモリデータと称する。
【００１１】
一配置において、（タスクに関連した停止データに整合するタスクのメモリ使用を表す）入力が、デスケジューリングイベントを要求するタスクから受信される。プリエンプションイベントを、例えば、デスケジューリングイベントを要求するコードのラインを通じてタスクに組み込むことができ、プリエンプションポイントが生じたことを特定する。他の配置において、入力を、タスクによって使用されるメモリの容量とすることができ、その結果、モニタリングステップは、タスクに関連した停止データに対する実際のメモリ使用のモニタリングを伴う。
【００１２】
好適には、前記複数のタスクに関連した最大メモリ使用を識別する第１データを受信し、前記複数のタスクを処理するのに利用できるメモリを識別する第２データを受信し、前記第１及び第２データに基づいて、前記タスクを処理するのに利用できる十分なメモリが存在するか否か識別する。前記モニタするステップ及び中断するステップを、不十分なメモリの識別に応答したときのみ適用する。
【００１３】
この配置において、データ処理システムは、タスクの全てを同時に処理するのに不十分なメモリしか有しない場合、停止すなわちプリエンプションポイントのみを利用する。
【００１４】
好適には、前記タスクの終了をモニタし、タスクの終了に応答してメモリの利用可能性を識別する前記ステップを繰り返す。一配置において、タスクが終了した後に、残りのタスクを同時に実行するのに十分なメモリが存在する場合、モニタするステップが不要に思われ、タスクは、メモリ使用に関する入力をモニタすることなく進行するのを許容される。第２の配置において、方法は、他のタスクのメモリ使用に関連する入力をモニタしながら非リアルタイムタスクを処理することができる。
【００１５】
本発明の第２の態様において、データ処理システムで用いるスケジューラであって、前記データ処理システムが、複数のタスクを実行するように配置されるとともに前記タスクを実行する際に用いられる特定容量のメモリに対するアクセスを有し、前記スケジューラが、
前記タスクに関連した最大メモリ使用を識別するデータを受信するように配置されたデータ受信機と、
受信したデータに基づいて、前記タスクを実行するのに十分なメモリが存在するか否か識別するように配置されたエバリュエータと、
前記タスクの実行中の中断に対して少なくとも一つのタスクを選択するように配置され、前記中断が、前記タスクによって特定されたメモリ使用に一致するセレクタとを具え、
前記複数のタスクを実行するのに不十分なメモリが存在することを識別する前記エバリュエータに応答して、前記セレクタが、前記特定されたメモリ使用及び前記データ処理システムに対して利用できるメモリの特定された容量に基づいて、中断に対する一つ以上のタスクを選択し、前記スケジューラが、前記特定されたメモリを用いながら前記タスクに応答して選択タスクの実行を中断することを特徴とするスケジューラを提供する。
【００１６】
好適には、スケジューラをハードウェア又はソフトウェアで実現することができ、データ処理システムを、デジタルテレビジョンシステムのような大容量の家電とすることができる。
【００１７】
本発明の第３の態様において、データをデータ処理システムに送信する方法であって、
前記データ処理システムによって用いられるデータをタスク処理中に送信し、
メモリ使用に基づいて前記タスクの中断を特定する中断データをタスク処理中に送信し、
前記データ処理システムが、
前記タスクに関連した中断データに整合するタスクのメモリ使用を表す入力のモニタリング及びモニタされた入力に基づく前記タスクの処理の中断のプロセスを実行することを特徴とする方法を提供する。
【００１８】
したがって、第３の態様は、処理されるタスクに対応する停止すなわちプリエンプティブデータの分布に関する。停止データを、規則的に分散された信号の一部（例えば、他のソースを伴う停止データを有する他のタスク）として分布し、又はデータ処理システムの一般的なアップグレードの一部としてサービスプロバイダによって分布することができる。さらに、データ処理システムを、個別のリンク又は装置（例えば、フロッピー（登録商標）ディスク又はＣＤ−ＲＯＭ）を通じて更新することができる。
【００１９】
本発明の例の他の利点は、データ処理システムを現存のものに比べて少ないメモリで構成できることであり、このことは、メモリを用いた処理装置のコストが低減されることを意味する。さらに又は付加的に、オフチップメモリ又は二次記憶にアクセスする必要がなくなるために予測可能性が向上する。
【００２０】
文中で他に示さない場合、用語「メモリ」を、以下の説明においてランダムアクセスメモリを表すものとして使用する。
【発明を実施するための最良の形態】
【００２１】
本発明の他の目的、利点及び形態を、添付図面に示したような本発明の好適な実施の形態の以下の更に詳細な記載から明らかにする。
【００２２】
少なくとも一部の実施の形態において、タスクは、リアルタイムタスクを具え、この場合、データは、ある時間制約内で処理され及び／又は発生させ、タスクのスケジューリング及び実行の際にある程度の精度が要求される。リアルタイムタスクの例は、（ＣＤの製作を含む）ビデオ成分及びオーディオ成分を有するマルチメディアアプリケーション、ビデオ取得及び再生、電話アプリケーション、音声認識及び合成を含み、それに対して、そのようなタスクを処理する装置は、デジタルＴＶやセットトップボックス（ＳＴＢ）のような市販の端末と、上記マルチメディアアプリケーションを処理するよう配置されたコンピュータとを含む。
【００２３】
大容量の家電(High Volume Consumer Electronics: HVE)の分野において、デジタルテレビジョンシステムは、互いに相違する関連のない複数の画像を処理及び表示するとともにユーザからの入力（例えば、単一チャネルの変更からインタラクティブフィードバックまでの範囲のユーザ入力）を受信及び処理することが予測される。例えば、視聴者は、通常、サッカーの試合の経過を見ながら映画を見ることを所望する。これらの要求に適合するために、デジタルテレビジョンシステムを、サッカーの試合を（Picture-in-Picture(PiP)として知られている）比較的小さいウィンドウで表示しながら映画がスクリーンの残りを占有するように配置することができる。両方の表示領域が絶えず更新され、ユーザは、任意の時間に両者の間で切替を行うことができる。したがって、この例は、二つのアプリケーションを含み、一方は、出力としてメインウィンドウを有し、他方は、出力としてＰｉＰを有する。デジタルテレビジョンシステムは、互いに独立する二つのストリームを処理するように配置され、そのうちの一つはメインウィンドウに対応し、もう一つはＰｉＰウィンドウに対応し、各ストリームは、典型的には、（オーディオとビデオの両方に対する）データ処理用の複数のリアルタイムタスクを具える。
【００２４】
セットトップボックスのようなコンピュータ製品は、強固であるとともに、例えば、高品質のデジタルオーディオ及びビデオ処理によって課される厳格なタイミング要求に適合することが予測される。「システムを再起動して下さい」というメッセージが付された場合、消費者は、テレビジョンセットが停止されることを簡単には容認しない。しかしながら、同時に、システムリソース、特に、メモリを、そのような市販の製品において非常に高い費用効率で用いる必要がある。
【００２５】
したがって、セットトップボックスは、リアルタイムの制約を有するシステムの一例である。図１に示すように、通常の配置において、セットトップボックス１００は、テレビジョン分配システム１を通じてテレビジョン１０１及びコンテントプロバイダ（又はサーバ）１０３に接続され、テレビジョン１０１に表示するためにコンテントプロバイダ１０３からデータを受信するように配置される。また、セットトップボックス１００は、ユーザインタフェースからの信号を受信するとともにその信号に応答し、ユーザインタフェース１０５は、選択信号をセットトップボックス１００に供給することができる任意の周知のインタフェースを具えることができる。一形態において、ユーザインタフェース１０５は、遠隔制御装置１０２から信号を受信する赤外遠隔制御インタフェースを具える。
【００２６】
セットトップボックス１００は、アンテナ又はケーブルテレビジョンアウトレットを通じてデータを受信し、データを処理し又はデータを直接テレビジョン１０１に送信する。ユーザは、テレビジョン１０１に表示された情報を観察し、何が表示されたかに基づいて、ユーザインタフェース１０５を通じて選択情報を入力する。ユーザ選択信号の一部又は全てを、セットトップボックス１００によってコンテントプロバイダ１０３に送信することができる。セットトップボックス１００からサーバ１０３に送信された信号は、セットトップボックス１００及びユーザ選択の表示を含む。セットトップボックス１００及びコンテントプロバイダ１０３の特定の実現に応じて、他の情報を提供することもできる。
【００２７】
図２は、セットトップボックス１００の内部の構成要素を示す概念図である。図２は、概念図を意図したものであり、必ずしも正確な物理的な構成及びこれらの構成要素の相互接続を反映しているわけではない。セットトップボックス１００は、セットトップボックス１００の全体に亘る動作を制御する処理及び制御ユニット（以後、プロセッサと称する。）２０１を有する。プロセッサ２０１には、テレビジョンチューナ２０３と、記憶装置２０５と、ストレージ２０６と、通信装置２０７と、リモートインタフェース２０９とが結合されている。テレビジョンチューナ２０３は、通信線２１１上のテレビジョン信号を受信し、テレビジョン信号は、既に説明したように、アンテナ又はテレビジョンアウトレットから発生する。プロセッサ２０１は、データ、オーディオ及びビデオ出力をライン２１３を通じてテレビジョン１０１に供給するユーザインタフェース１０５の動作を制御する。リモートインタフェース２０９は、無線接続２１５を通じて遠隔制御から信号を受信する。通信装置２０７は、データ経路２１７を通じてボックス１０１とウェブサーバのような一つ以上の遠隔処理システムとの間のデータの転送を行うように配置される。通信装置２０７を、通常の電話機（ＰＯＴＳ）モデム、統合デジタル通信網（ＩＳＤＮ）アダプタ、デジタル加入者電話回線（ｘＤＳＬ）アダプタ、ケーブルテレビジョンモデム、又は他の適切なデータ通信装置とすることができる。
【００２８】
本発明の実施の形態を更に詳しく説明する。チャネルの変更、グラフィカルユーザインタフェース（ＧＵＩ）に表示されたメニューオプションの選択、テレテキストとのインタラクション、到来データの復号化、テレビジョン１０１で現在視聴されているストレージ２０６のデータの記録等のセットトップボックスの制御に関連する複数のタスクを処理するようにプロセッサ２０１を配置すると仮定する。一般に、そのような制御タスクは、セットトップボックス１００の特性、（ライン２１１を通じた）到来ビデオ信号及び他の補助的な入力に基づいてセットトップボックス１００の動作的なセッティングを決定する。図３ａを参照すると、そのようなタスクは、タスクに対応するプリエンプティ部メモリデータを有するプログラマブルインタフェース３０１を伴う。図３ａにおいて、単一のタスクτ１に対応するメモリデータ３０３を、タスクτ１が３個のプリエンプション点（ｊ＝３）を有する場合について示す。
【００２９】
従来既知のように、コンポーネント（例えば、一つ以上のタスクを具えることができるソフトウェアコンポーネント）は、コンポーネントを規定する特性、機能又は方法及びイベントを具えるプログラマブルインタフェースを有することができる（更なる情報については、Clemens Szyperski, Component Software - Beyond Object - oriented Programming, Addison - Wesley, ISBN 0-2-1-17888-5, 1997を参照されたい。）。本実施の形態において、タスクは、タスクによって要求される主記憶データを少なくとも有するインタフェースを伴う。
【００３０】
本例のために、タスクを、周期的かつリアルタイムであると仮定し、０≦Ｆ＜Ｔである周期Ｔ及び位相Ｆによって特定し、このことは、タスクがジョブのシーケンスを具えると考えることができることを意味し、ジョブの各々は、時間Ｆ＋ｎＴでリリースされ、この場合、ｎ＝０．．．Ｎである。セットトップボックス１００は、三つのタスク−ＧＵＩ１０５の表示メニュー、コンテントプロバイダ１０３からのテレテキスト情報の検索、及びあるビデオ信号の処理を実行すると仮定され、これら３タスクの各ジョブは、複数のサブジョブを具えると仮定される。説明を容易にするために、サブジョブが順次実行されると仮定する。
【００３１】
これらサブジョブの少なくとも一部をプリエンプトすることができる。プリエンプトすることができるこれらサブジョブ間の境界は、プリエンプションポイントを提供し、表１のように要約される。
【００３２】
【表１】
2006523881.tif 000003
【００３３】
図３ｂを参照すると、各タスクに対して、メモリデータ３０３は、プリエンプションポイントで要求されるメモリＭＰｉ，ｊの最大容量のようなプリエンプションポイント（Ｐｉ，ｊ）に関連する情報と、イントラプリエンプションポイント(intra-preemption point)間隔に要求されるメモリＭＩｉ，ｊの最悪の場合(worst case)の容量のような連続するプリエンプションポイント間の情報とを具える（ｉは、タスクτｉを表し、ｊは、プリエンプションポイントを表す。）。
【００３４】
更に詳しくは、メモリデータ３０３は、タスクτｉ（Ｐｉ，ｊ）のプリエンプションポイントｊを特定するデータ３０３ａと、１≦ｊ≦ｍ（ｉ）である場合のタスクτｉ，ＭＰｉ，ｊのプリエンプションポイントｊにおけるタスクτｉ，ＭＰｉ，ｊ最大メモリ要求を特定するデータ３０３ｂと、１≦ｊ≦ｍ（ｉ）である場合のタスクτｉのサブジョブｊに対応する連続プリエンプションポイントｊ，（ｊ＋１）間の間隔Ｉｉ、ｊを特定するデータ３０３ｃと、１≦ｊ≦ｍ（ｉ）である場合のタスクτｉ，Ｍｉ，ｊの間隔ｊのタスクτｉ，Ｍｉ，ｊの最小（すなわち、最悪の場合の）メモリ要求を特定するデータ３０３ｄとを具える。
【００３５】
表２は、本例に対するメモリデータ３０３を表す（各タスクは、それ自体のインタフェースを有し、その結果、本例では、第１タスクτ１に対応するメモリデータ３０３は、表２の第１行のデータを具え、第２タスクτ２に対応するメモリデータ３０３は、表２の第２行のデータを具える、等々。）。
【００３６】
【表２】
2006523881.tif 000004
【００３７】
本発明の実施の形態によって指摘される問題の一つを、１．５メガバイトのメモリを装着したセットトップボックス１００が通常状態、すなわち、プリエンプティブに基づくメモリのない状態の下でどのように振舞うかを考察するときに見ることができる。
【００３８】
従来の配置において、プロセッサ２０１を、タイムスライシングのあるソート又はプリエンプションに基づくプライオリティに従ってタスクをスケジューリングすると予測することができ、このことは、３個全てのタスクが同時に実行することを意味する。したがって、各タスクを、大抵のメモリインテンシブサブジョブを実行するようにスケジューリングすることができる。これら三つのタスクの最悪の場合のメモリ要求ＭＰは、以下のように与えられる。
【００３９】
【数１】
2006523881.tif 000005
【００４０】
タスクτ１，τ２及びτ３に対して、ＭＰは、（ＭＩ１，１である）τ１の最大メモリ要求、（ＭＩ２，２である）τ２の最大メモリ要求及び（ＭＩ３，２である）τ３の最大メモリ要求の和となる。これら最大要求は、表の記載において太字で表される。
ＭＰ＝０．７＋０．８＋０．３＝１．８Ｍｂｙｔｅｓ
【００４１】
これは、セットアップボックス１００で利用できるメモリを０．３メガバイト超え、その結果、任意の警告手段が存在しない場合及びこれらサブジョブが同時に処理される場合、セットトップボックス１００は停止される。
【００４２】
図４，５ａ，５ｂ及び６を参照して説明するように、本実施の形態において、プロセッサ２０１は、そのような状況が生じないようにするためにメモリデータ３０３を利用する。実質的には、本実施の形態は、命令のシーケンスを実行するプロセッサ２０１の構成要素によって実行することができるステップを有する。命令を、ストレージ２０６に格納することができ、例えばＣプログラミング言語で書き込まれた一つ又は一組のコンピュータプログラムで実施することができる。
【００４３】
本実施の形態を、主に機能に関して説明する。この機能が実現され又は「符号化される」精度は、本発明の理解に対して重要でない。（処理上の又はオブジェクト指向の）多くの実現が可能であり、これらの実現は、この記載から当業者によって容易に理解される。
【００４４】
図４は、スケジューラ４０１及びタスクマネージャ４０３を有する本発明の実施の形態に関連したプロセッサ２０１の構成要素を示す線形図である。スケジューラ４０１は、スケジューリングアルゴリズムに従ってタスクの実行をスケジューリングし、各タスクτｉに対するデータ構造４０７ｉを形成し、形成後にデータ構造４０７ｉを維持する。好適には、スケジューラ４０１は、通常のプライオリティに基づくプリエンプティブスケジューリングアルゴリズムを使用し、かかるアルゴリズムによって、実質的には、任意の時間点において、現在実行中のタスクを、システム中の全ての実行容易タスク間で最高プライオリティを有するものとすることができる。従来既知のように、スケジューリング動作を、実行中又は実行容易なタスクに対するプリエンプションを選択的にイネーブル及びディセーブルすることによって変更することができる。
【００４５】
タスクマネージャ４０３を、新たに受信したタスクに対応するメモリデータ３０３を受信するとともにプリエンプションが要求されているか否か評価するように配置する。プリエンプションが要求される場合、タスクマネージャ４０３は、プリエンプションを要求するスケジューラ４０１に対してこの新たに受信した情報を送出する。タスクマネージャ４０３の機能と、タスクマネージャ４０３から受信したデータに応答してタスク及び／又はスケジューラ４０１によって実行されるステップを、図４，５ａ及び５ｂを参照して詳細に説明する。図５ａ及び５ｂは、表２で規定されたタスクの詳細を受信するときにタスクマネージャ４０３によって実行されるステップを示す統合的な流れ図であり、タスクτ１（τ１のみ）がプロセッサ２０１によって現在処理されているともに、メモリに基づく制約のないモードでスケジューラ４０１が最初に作動すると仮定する。
【００４６】
ステップ５０１において、タスクτ３がタスクマネージャ４０３によって受信され、タスクマネージャ４０３は、インタフェースＩｎｔ２からメモリデータ３０３を読み出し、メモリに基づくプリエンプションに従ってスケジューラ４０１が作動するか否か識別する（ステップ５０２）。本例ではスケジューラ４０１が作動しないので、タスクマネージャ４０３は、スケジューラ４０１がメモリに基づくプリエンプションに変更する必要があるか否か評価する。したがって、これに伴って、タスクマネージャ４０３は、ステップ５０３において、現在実行中の全てのタスク（本例ではタスクτ１）に対応する最悪の場合のメモリデータをメモリデータストア４０５から検索し、式１を評価し、評価した最悪の場合のメモリ要求を、プロセッサ２０１で利用できるメモリリソースと比較する（ステップ５０４）。表２で導入した例で続けると、τ１及びτ２に対する式１は、
【００４７】
【数２】
2006523881.tif 000006
となる。
【００４８】
これは、利用できるシステム要求と等しく、その結果、スケジューラの動作のモードをメモリに基づくプリエンプションに変更する必要がない（すなわち、メモリ使用に基づくスケジューラ４０１の制約の必要がない。）。したがって、例えば、タスクτ１とタスクτ２の両方が同時にメモリに存在することを意味するタスクτ２の実行時間制約を満足するためにスケジューラ４０１がタスクτ１とタスクτ２との間で切替を行う場合、プロセッサ２０１は、利用できるメモリ以外にアクセスすることはない。
【００４９】
次に、タスクτ１及びτ２が完了する前に、他のタスクτ３が受信される（ステップ５０１）。タスクマネージャ４０３は、ステップ５０３に進み、タスクτ３に関連したインタフェースＩｎｔ３からメモリデータ３０３を読み出し、スケジューラがメモリに基づくプリエンプションに変更する必要があるか否か評価する。スケジューラが複数のタスクτ１及びτ２を実行すると仮定すると、三つ全てのタスクに対する最悪の場合のメモリ要求は、
【００５０】
【数３】
2006523881.tif 000007
となる。
【００５１】
これは、利用できるシステムリソースを超え、したがって、ステップ５０５において、タスクマネージャ４０３は、３個全てのタスクに関するメモリ使用データＭＰｉ，ｊ，ＭＩｉ，ｊ３０３ｂ，３０３ｄをメモリデータストア４０５から要求及び検索し、この検索したメモリ使用データに基づいて、３個全てのタスクを実行するのに十分なリソースが存在するか否か評価する（ステップ５０７）。これを、以下の式の評価を通じて確定することができる。
【００５２】
【数４】
2006523881.tif 000008
【００５３】
このメモリ要求は、利用できるメモリより低く、これは、タスクがメモリ使用に基づいてプリエンプトされた場合に三つ全てのタスクを同時に実行できることを意味する。
【００５４】
したがって、タスクマネージャ４０３は、設計されたプリエンプションポイント（ＭＰｉ，ｊ）でデスケジュール命令(deschedule instruction)をスケジューラ４０１に送信するようタスクに命令する（ステップ５０９）ことによって「メモリに基づくプリエンプションモード」に入る。このモードにおいて、スケジューラ４０１は、任意の時間点において最大でも一つのタスクしかプリエンプションポイントの一つ以外のポイントに存在しないという制約を伴いながら、あるプリエンプションポイントから次のプリエンプションポイントまで非プリエンプティブに実行することを各タスクに許容する。新たに到達したタスクがプリエンプションポイントで開始すると仮定すると、スケジューラ４０１によって、この状態が現在実行中のタスクに当てはまるようにし（ステップ５１１）、これによって、（一つを除く）全てのタスクがプリエンプションポイントに到達するような制約を課す。これは、本例の文脈で最適に説明される。タスクマネージャ４０３がメモリに基づくプリエンプションモードに入り、その間にタスクτ１がサブジョブ２を実行するとともにタスクτ２がサブジョブ１の処理を待機する場合、最大でも一つのサブジョブが処理されるのを満足する状況が、自動的に満足される。タスクτ１がサブジョブ２を実行するとともにタスクτ２がサブジョブ２の実行の継続を待機する場合、スケジューラ４０１は、タスクτ２の継続を許容する前にサブジョブ２を完了するとともにプリエンプションポイントＭＰ１，３に到達することをタスクτ１に許容する。
【００５５】
したがって、メモリに基づくプリエンプションモードにおいて、スケジューラ４０１は、そのメモリプリエンプションポイントにおいて（すなわち、メモリに基づくプリエンプションポイントでのタスクからのデスケジューリング要求に応答して）タスクをプリエンプトすることしか許容されない。
【００５６】
図６は、タスクの一つが終了したときに伴うステップを示す流れ図であり、この場合、タスクは、タスクの終了をタスクマネージャ４０３に知らせる。ステップ６０１において、終了タスクは、タスクが終了したことをタスクマネージャ４０３に知らせ、これによって、タスクマネージャ４０３は、ステップ６０３において式１を評価する。（このタスクの除去を考慮した）最悪の場合のメモリ使用が、プロセッサ２０１で利用できるものより低い場合、タスクマネージャ４０３は、ステップ６０５において、メモリに基づくプリエンプションをキャンセルすることができ、これは、外部イベントに対して更に迅速に応答するようシステムをイネーブルする利点を有する（その理由は、プロセッサがサブジョブの持続時間中にもはや「中断」されないからである。）。一般に、タスクの終了は、典型的にはその環境、例えば、ユーザによるチャネルの切替又は適用される符号化のデータストリームの変更（これは、他の種類の復号化を必要とする。）によって生じ、このことは、タスクマネージャ４０３及び／又はスケジューラ４０１がタスクの終了を認識する必要があるとともに可能な場合にはタスクを終了するよう命令する必要があることを意味する。そのような場合、ステップ６０１は余分である。
【００５７】
タスクマネージャ４０３は、処理のために現在実行中のタスクの一つの異なる形態を選択することもできる。あるタスクは、タスクに関連した変動するレベルのサービスを有することができ、その各々は、異なるセットのリソースへのアクセスを必要とし、異なる「サービスの品質」（ＱｏＳ）を伴う。Brilらは、Proceedings of International Conference on Media Futures, Florence, May 8 - 9 2001, pp.299-303で発表した”QoS for cunsumer terminals and its support for product families”において、各々が異なるＱｏＳ、したがって、リソース要求に対応する複数のバージョンを有するアプリケーションの概念を記載している。
【００５８】
更に別の例において、タスクマネージャ４０３は、実行のための他の（重大でない、すなわち、ソフトウェア制約を有するもの）処理を許容する。これらの変形は、タスクマネージャ４０３／スケジューラ４０１に対するあり得るオプションの例に過ぎず、完全なリストを示さない。
【００５９】
上記実施の形態に対して、プリエンプションは、主記憶要求の文脈のみで説明され、タスクを、個々のタスク期限やシステム効率のようなタイミング制約に基づいて付加的にプリエンプトすることができる。上記例において、タスクがプリエンプションポイントデータ３０３ａに従ってプリエンプトされるとき、実際のメモリ使用ＭＤは、１．１メガバイトのみである。したがって、更に０．４メガバイト使用することができる。インタフェースが、キャッシュメモリ使用に関するデータを有する場合、タスクマネージャ４０３は、（全体に亘るシステム効率に関して）システムリソースの使用を最適にすることができる。図７は、時間Ｔ後に（既に説明したようにそれ自体一つ以上のサブジョブを具える）ジョブを繰返し処理するタスクに関連したメモリ使用７０１及びタスクスイッチペナルティ７０３を示し、この場合、主記憶使用及びタスクスイッチペナルティが各周期に対して同一であると仮定する（実際には、これはあり得るケースでない。その理由は、サブジョブが互いに相違する周期で互いに相違する実行時間を有することができるからである。）。したがって、タスクマネージャ４０３は、そのメモリ使用に加えて、タスクに関連したタスクスイッチペナルティ（すなわち、主記憶からキャッシュへの命令のセットを取り出す実行ループ間の切替を伴うペナルティ）を知ることができるとともに、主記憶に対するキャッシュメモリの使用のバランスをとる目的機能を処理する。実質的には、メモリに基づくタスクプリエンプションを、タスクスイッチペナルティを最小にすることを意図したあるプリエンプションを行いながらプリエンプションポイントデータ３０３ａのサブセットに制限することができる。メモリデータ３０３は、明示的にサブセットを特徴付けることができ、例えば、プリエンプションポイントの二つ以上のサブセットを特定し、あるサブセットは、利用できる主記憶の容量を超えないようにしながらキャッシュの動作を最適にするプリエンプションポイントを提供し、他のサブセットは、主記憶要求を最小にするプリエンプションポイントを提供する。
【００６０】
起動の際に、本発明によるメモリの基づくプリエンプション制約は必須であり、それに対して、キャッシュメモリに基づくプリエンプションは任意に過ぎない。その理由は、キャッシュに基づくプリエンプションが装置それ自体の操作性ではなくパフォーマンスの向上に関するからである。
【００６１】
上記実施の形態において、タスクが周期的である（すなわち、処理が、予め規定された−通常は周期的な−間隔で生じ、処理期限が、厳しい制約によって表される。）が、処理が周期的な間隔で生じない（すなわち、ジョブ間の持続時間が連続的なジョブ間で変化する）にもかかわらず期限が厳しい制約によって表される非周期的なタスクを、実施の形態に適用することができる。そのようなタスクは、典型的には「突発性」(sporadic)（周期的でないリアルタイムタスク、例えば、エンドユーザが遠隔制御のボタンを押すためにエンドユーザによって生じたイベントを処理するリアルタイムタスク）及び「ジッタ」（周期的なタスクの起動／解放(release)間の持続時間の変動）と称される。
【００６２】
上記実施の形態において、３個全てのタスクを、スケジューラによる受取後にできるだけ迅速に実行すべきであると仮定するが、一部のタスクの期限の制約は、タスク間で著しく変化することができる。例えば、一部のタスクは、「本日の最後」の期限を有することができ、それに対して、他のタスクは、スケジューラによる受取から５分の期限を有することができる。したがって、実行時間に基づいて管理の一部のソートを用いることができることが予測できる。例えば、ステップ５０４は、タスクに対応する最悪の場合の実行時間（ＷＣＥＴ）の識別も伴うことができ、タスクが即時の実行を必要としない（、すなわち、更に緊急な制約されたタスクの一つが完了した後に実行することができる）場合、タスクの実行を延期することができ、これは、メモリに基づくプリエンプションなしでシステムを継続できることを意味する。そのような状況において、タスクマネージャ４０３は、未だ完了しないこのタスクの詳細を、例えばメモリデータストア４０５に格納し、両方が期限の制約を満足するとき、例えば、予備容量(spare capacity)の周期に一致するときにタスクを実行する（例えば、図６のステップ６０５）。
【００６３】
上記実施の形態において、タスクがサブジョブのプリエンプションの開始の原因である間、スケジューラ４０１は、このプロセスを管理することもできる。したがって、他の配置において、タスクマネージャ４０３は、プリエンプティブポイントデータ３０３ａをスケジューラに供給する。スケジューラ４０１は、現在実行中のサブジョブをそれぞれ識別するために、現在実行中のタスクτ１及びτ２に対応するデータ構造４０７１，４０７２を検査する。各タスクに対して、スケジューラ４０１は、次のプリエンプションポイントを識別するためにサブジョブをプリエンプティブ状態にマッピングし、当該ポイントに到達したとき、当該ポイントでタスクの各々をプリエンプトする。これは、上記例の文脈で最もよく説明される。タスクマネージャ４０３がプリエンプティブポイントをスケジューラ４０１に供給すると、スケジューラ４０１は、サブジョブ２を実行するタスクτ１及びサブジョブ１の処理を待機するタスクτ２を識別する。したがって、スケジューラ４０１は、タスクτ１サブジョブｍ（２）；タスクτ２サブジョブｍ（１）として次のプリエンプションポイントを識別し、プリテンプションポイントＭＰ１，２及びＭＰ１，３のタスクτ１及びプリテンプションポイントＭＰ２，１及びＭＰ２，３のタスクτ２をプリテンプトする準備をする。スケジューラ４０１は、そのプリテンプションポイントの両方をプリテンプトするようタスクτ３を形成する。これは、タスクのメモリ使用パターンが単純であるとき、例えば、タスクのメモリ使用が２状態を有し、一方の状態が、メモリの大部分が使用される状態であり、他方の状態が、メモリがほとんど使用されていない状態である場合に有用である。スケジューラ４０１は、各タスクが割り当てられたメモリ容量をモニタし、スケジューラ４０１を、タスクが「多いメモリ使用」である間にタスクをプリテンプトしないようにタスクマネージャによって命令することができる。
【００６４】
他の例として、プリテンプション命令をタスクマネージャ４０３から受け取る（ステップ５０９）と、タスクは、サブジョブの開始時におけるいわゆる「非プリエンプタブル」プライオリティに対してプライオリティを生じるとともに、サブジョブの終了時の「通常の」プライオリティに対して更に低いプライオリティを生じることができる。したがって、そのような状況において、スケジューラ４０１は、そのプリエンプションポイントでタスクをプリエンプトする機会しか有しない（その理由は、サブジョブが非プリエンプタブルとなる場合だからである。）。タスクτｉは、タスクがプリエンプションポイントに到達するときをタスクマネージャ４０３に知らせ、これによって、タスクマネージャ４０３が、異なるタスクを開始することができる。他の配置において、メモリに基づくプリエンプションは、タスクマネージャ４０３及びタスクτｉに応答する。この変形例は、非常にメモリインテンシブな少数のコート間隔をタスクが具えるとともにプリテンプションが実際にはこれら間隔の処理中しか必要としない状況に特に好適である。
【００６５】
これまでの説明において、本発明をソフトウェアで実施すると仮定したが、本発明の所定の実施の形態を、ソフトウェアを実行するのではなくハードワイヤード回路又はハードワイヤード回路とソフトウェアとの組合せによって実施することができる。したがって、本発明がハードウェア回路の特定の組合せやソフトウェア命令に対する特定のソースに限定されるものでないことが認識される。
【００６６】
本発明の要約で説明したように、用語タスクはリアルタイムタスクを言及したが、本発明は、非リアルタイムタスクによって用いることもできる。その理由は、本発明が主にメモリ管理を解決するものだからである。例えば、仮想メモリの容量が制約され又は仮想メモリの使用方法が不所望であるときには常に、本発明を非リアルタイムシステムで用いることができる。
【００６７】
上記実施の形態において、タスクを、主に（セットトップボックス１００の制御を行う）制御タスクとしたが、タスクは、Multimedia Home Platform(MHP)又は他の基準に従って設計されたアプリケーションを有してもよく、本例では、タスクは、ＴＶコマーシャル、ゲーム及び一般的なインターネットに基づくサービスを有することができる。タスクは、医療装置用の制御タスク又はＧＳＭ装置の信号送信を制御するタスクを有することもできる。
【００６８】
上記実施の形態において、プリエンプションポイントがインタフェース３０１上で指定されたが、プリエンプションポイントをログファイルで指定することもできる。
【００６９】
上記実施の形態において、タスクマネージャ４０３を、スケジューラ４０１から分離したものとして説明したが、当業者は、そのような分離が説明のためのみのものであってタスクマネージャ４０３とスケジューラの両方の機能を含むように通常のスケジューラを変更できることを理解できる。実際には、構成要素の物理的な分布は、本発明の範囲になんら影響を及ぼさない設計選択である。
【００７０】
上記実施の形態において、全てのタスクが全てのプロセッサで処理されると仮定したが、タスクを複数のプロセッサによって処理することもでき、例えば、タスクτｉ（１≦ｉ≦ｎ）のセットΓをプロセッサπｋ（１≦ｋ≦ｐ）のセットＰによって処理することができる（この場合、ｎを、典型的にはｐより十分大きくする。）。ある適切な配置において、各タスクτｉを特定のプロセッサπｋに割り当て、これは、タスクτｉがプロセッサπｋのみで実行されることを意味する。最悪のメモリ要求ＭＰは、
【００７１】
【数５】
2006523881.tif 000009
によって与えられる。
【００７２】
ＭＰが、利用できるメモリ未満であるとき、タスクのスケジューリングをプロセッサの任意のものに制約する必要がない（ステップ５０４）。しかしながら、ＭＰが、利用できるメモリを超えると、一つ以上のタスクのスケジューリングを、指定された一つ以上のプロセッサに制約することができる。全てのタスクのスケジューリングを単一のプロセッサに制約する影響は、第１の実施の形態の文脈で示した式２のような式を用いることによって決定することができる。利用できる全てのプロセッサに亘って生じる全てのタスクのスケジューリングの制約の影響を、（式２´）から決定することができる。
【００７３】
【数６】
2006523881.tif 000010
この場合、全メモリ要求ＭＤは、各プロセッサπｋのメモリ要求ＭｋＤの和となる。
【００７４】
上記実施の形態において、タスクをソフトウェアタスクとして説明したが、タスクをハードウェアで実現することもできる。典型的には、（ハードウェアタスクとして振舞う）ハードウェア装置は、ソフトウェアタスクによって制御され、ソフトウェアタスクは、ハードウェア装置によって要求される（最悪の場合の）メモリを割り当て、次いで、ハードウェアタスクに実効命令を行う。ハードウェアタスクが完了すると、ハードウェアタスクはソフトウェアタスクに情報提供し、その後、ソフトウェアタスクは、メモリの割当て解除を行う。既に説明したように、複数のプロセッサを伴う割当て変更は、結合されたＳＷタスク及びＨＷタスクにも適用される。したがって、ソフトウェアタスクの制御を有することによって、ハードウェアタスクを、変形した式１´及び式２´を用いながら上記実施の形態に従って簡単に処理することができる。
【００７５】
本開示は説明のためのみのものであり、本発明は、その変更、変形及び改善にも及ぶ。
【図面の簡単な説明】
【００７６】
【図１】本発明の実施の形態が動作するデジタルテレビジョンシステムの例を示す線形図である。
【図２】図１のセットトップボックスを構成する構成要素を更に詳しく示す線形ブロック図である。
【図３ａ】本発明の実施の形態によるタスクインタフェースの構成要素を示す線形図である。
【図３ｂ】図３ａに示すタスクインタフェースの構成要素間の関係を示す線形図である。
【図４】本発明の実施の形態による、図１及び２に示すセットトップボックスのプロセッサの構成要素を示す線形ブロック図である。
【図５ａ】図４の構成要素によって実行されるステップを示す統合的な流れ図である。
【図５ｂ】図４の構成要素によって実行されるステップを示す統合的な流れ図である。
【図６】図４の構成要素によって実行される他のステップを示す流れ図である。
【図７】周期的なタスク処理に関連したメモリ使用及びタスクスイッチペナルティを示す線形図である。
【図１】
2006523881.tif 000011
【図２】
2006523881.tif 000012
【図３ａ】
2006523881.tif 000013
【図３ｂ】
2006523881.tif 000014
【図４】
2006523881.tif 000015
【図５ａ】
2006523881.tif 000016
【図５ｂ】
2006523881.tif 000017
【図６】
2006523881.tif 000018
【図７】
2006523881.tif 000019
【国際調査報告】
2006523881.tif 000020
2006523881.tif 000021
2006523881.tif 000022
2006523881.tif 000023