(57)【要約】      （修正有）【課題】メモリ使用効率を向上させる。【解決手段】メモリ領域と、前記メモリ領域のメモリ資源をタスクに割り当てるアロケータをメモリ割り当て／解放のルール毎に複数生成するアロケータ生成手段１１と、タスクのコードに記述されているアロケータ指定に基づいて前記生成されたアロケータのうちの一つを選択し、前記タスクが前記選択したアロケータを使用できるように設定するタスク対応付け手段１３と、を有する。【選択図】図４
2010272072.tif 000002
【特許請求の範囲】
【請求項１】
メモリ領域と、
前記メモリ領域のメモリ資源をタスクに割り当てるアロケータをメモリ割り当て／解放のルール毎に複数生成するアロケータ生成手段と、
タスクのコードに記述されているアロケータ指定に基づいて前記生成されたアロケータのうちの一つを選択し、前記タスクが前記選択したアロケータを使用できるように設定するタスク対応付け手段と、
を有することを特徴とするメモリ管理装置。
【請求項２】
前記アロケータ生成手段が生成した夫々のアロケータは、前記メモリ領域に夫々異なる管理対象領域を確保し、前記確保した夫々の管理対象領域に含まれるメモリ資源を自アロケータを使用するタスクに割り当てる、ことを特徴とする請求項１に記載のメモリ管理装置。
【請求項３】
前記タスクが実行前および実行中に発行するアロケータを指定する要求を受け付けたとき、前記指定されたアロケータを前記タスクが使用できるように前記タスク対応付け手段に設定させるタスク切り替え手段をさらに備える、ことを特徴とする請求項１に記載のメモリ管理装置。
【請求項４】
前記メモリ割り当て／解放のルールには、一回の割り当て／解放動作で割り当て／解放するメモリ資源の単位サイズが指定される、ことを特徴とする請求項１乃至請求項３のうちの何れか一項に記載のメモリ管理装置。
【請求項５】
前記メモリ割り当て／解放のルールには、タスクに割り当てるための前記メモリ領域の空き領域の探索ルールが指定される、ことを特徴とする請求項１乃至請求項３のうちの何れか一項に記載のメモリ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ管理装置に関する。
【背景技術】
【０００２】
従来、汎用のマルチタスクＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）は、メモリを固定サイズ（例えば４ＫＢｙｔｅ）の「ページ」に分割し、ページ毎に割り当て／解放をする「ページング方式」を採用している。この方式によれば、例えばあるタスクが４００ＫＢｙｔｅのメモリ領域の割り当てを要求した場合、ＯＳは、１００個の空いているページを探し、見つけた夫々のページの位置を返す処理を行う。その際、使用中のページが分散して存在している場合、空きページを探す処理が多数回（最悪の場合１００回）発生してしまう。すなわち、ページング方式はメモリ使用効率が悪いという問題があった。この問題の原因は、４ＫＢｙｔｅ毎にメモリを割り当て／解放するという単一のルール（メモリ管理ポリシー）を処理内容に関係なく全てのタスクの適用していることにある。
【０００３】
この問題に関連する技術として、特許文献１には、ストレージシステムにおいて、複数のコンピュータの状況に応じて各コンピュータに割り当てる物理記憶領域を適宜に変更する技術が開示されている。しかしながら、この技術によれば、コンピュータ毎に割り当てる領域のみを変更するだけであって、割り当て／解放のルールを変更するものではないため、前記した問題を解決できるものではなかった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３３８９８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、メモリ使用効率を向上させたメモリ管理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本願発明の一態様によれば、メモリ領域と、前記メモリ領域のメモリ資源をタスクに割り当てるアロケータをメモリ割り当て／解放のルール毎に複数生成するアロケータ生成手段と、タスクのコードに記述されているアロケータ指定に基づいて前記生成されたアロケータのうちの一つを選択し、前記タスクが前記選択したアロケータを使用できるように設定するタスク対応付け手段と、を有することを特徴とするメモリ管理装置が提供される。
【発明の効果】
【０００７】
本発明によれば、メモリ使用効率を向上させたメモリ管理装置を提供することができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、ページング方式を説明する図。
【図２】図２は、第１の実施の形態のメモリ管理装置によるメモリ管理動作を概略的に説明するための図。
【図３】図３は、第１の実施の形態のメモリ管理装置のハードウェア構成を説明する図。
【図４】図４は、第１の実施の形態のメモリ管理装置の機能を説明する図。
【図５】図５は、アロケータのデータ構造を説明する図。
【図６】図６は、第１の実施の形態のメモリ管理装置の動作を説明するフローチャート。
【図７】図７は、タスク管理データのデータ構造の一例を説明する図。
【図８】図８は、第２の実施の形態のメモリ管理装置の動作を概略的に説明する図。
【図９】図９は、第３の実施の形態のメモリ管理装置の動作を概略的に説明する図。
【図１０】図１０は、第３の実施の形態のメモリ管理装置の機能を説明する図。
【図１１】図１１は、第３の実施の形態のメモリ管理装置の動作を説明するフローチャート。
【図１２】図１２は、タスク管理データの一例を説明する図。
【図１３】図１３は、タスク管理データの一例を説明する図。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、本発明の実施の形態にかかるメモリ管理装置を詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
【００１０】
（第１の実施の形態）
本発明の第１の実施の形態のメモリ管理装置は、プロセッサと例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの不揮発性のメモリとを有するコンピュータに実装される。より具体的には、第１の実施の形態のメモリ管理装置としての機能は、上記したコンピュータのプロセッサがカーネルプログラムをＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）や外部記憶装置などから読み出して実行することによってコンピュータ上に実現される。
【００１１】
まず、従来の技術であるページング方式と対比させて本第１の実施の形態の特徴について説明する。図１は、ページング方式を採用するＯＳにおけるメモリ管理動作を概略的に説明するための図である。図示するように、不揮発性メモリのメモリ領域にはタスクに割り当てるための専用の領域である管理対象領域が確保され、カーネルプログラムから起動されたタスクは、メモリ割り当て／解放を行うためのアロケータを用いてこの管理対象領域からメモリを確保／解放する。ここで、ページング方式を採用するＯＳでは、アロケータは、４ＫＢｙｔｅ毎にメモリを割り当て／解放するという単一のメモリ管理ポリシーを用いてメモリ割り当て／解放を実行する。したがって、４ＫＢｙｔｅ以上のサイズのメモリ割り当てを必要とするタスクであっても４ＫＢｙｔｅ毎にこまめにメモリ割り当てを行わざるを得ないため、空き領域の探索と探索した空き領域の確保の処理の回数が増大し、メモリ使用効率が低下する。
【００１２】
図２は、本第１の実施の形態のメモリ管理装置によるメモリ管理動作を概略的に説明するための図である。図示するように、本第１の実施の形態では、メモリ管理ポリシーを複数備え、夫々のタスクは、処理内容に応じて、複数（ここでは２つ）のメモリ管理ポリシーを夫々使用する複数のアロケータのうちの一つを選択可能に構成されている。この図においては、６４Ｂｙｔｅ毎にメモリ割り当て／解放するメモリ管理ポリシーを使用するアロケータＡと、２５６ＫＢｙｔｅ毎にメモリ割り当て／解放するメモリ管理ポリシーを使用するアロケータＢとが生成されており、６４ＫＢｙｔｅ単位で随時メモリを確保するビデオデコードタスクはアロケータＡ、２５６ＫＢｙｔｅ単位でメモリを一括して確保して使用するビデオフレーム出力タスクはアロケータＢを夫々使用するようにしている。すなわち、ビデオデコードタスク、ビデオフレーム出力タスクは、夫々処理内容に適したメモリ管理ポリシーを使用するアロケータを使用している。このように、本第１の実施の形態は、ページング方式よりメモリ使用効率を向上させるための方策として、メモリ管理ポリシー毎に異なるアロケータを生成し、タスクはそのうちの一つを使用することによって、タスクの処理内容によって異なるメモリ管理ポリシーを使用できるようにしたことが主たる特徴となっている。以下、本第１の実施の形態のメモリ管理装置について説明する。なお、本第１の実施の形態のメモリ管理装置で実行されるタスクの例として上述のビデオデコードタスクおよびビデオフレーム出力タスクを挙げて説明する。
【００１３】
図３は、本第１の実施の形態のメモリ管理装置のハードウェア構成を説明する図である。図示するように、本第１の実施の形態のメモリ管理装置１は、プロセッサ２、ＲＯＭ３、ＲＡＭ４を備えるコンピュータ構成となっている。プロセッサ２、ＲＯＭ３、ＲＡＭ４は、バスラインを介して夫々接続されている。
【００１４】
プロセッサ２は、ＲＡＭ４のメモリ管理を行うメモリ管理プログラムとしてのカーネルプログラムを実行する。カーネルプログラム５は、ＲＯＭ３内に格納されており、バスラインを介してＲＡＭ４へロードされる。プロセッサ２はＲＡＭ４内にロードされたカーネルプログラム５を実行する。具体的には、メモリ管理装置１では、プロセッサ２は起動時にＲＯＭ３内からカーネルプログラム５を読み出してＲＡＭ４内のプログラム格納領域に展開し、ＲＡＭ４内に展開されたカーネルプログラム５とプロセッサ２との協働により、前記した本第１の実施の形態のメモリ管理動作を実行する機能を実現する。本第１の実施の形態のメモリ管理動作を実行する機能については後述する。なお、カーネルプログラム５は、ＤＩＳＫなどの記憶装置に格納しておいてもよい。また、カーネルプログラム５は、ＤＩＳＫなどの記憶装置にロードしてもよい。
【００１５】
なお、本第１の実施の形態のメモリ管理装置１で実行されるカーネルプログラム５を、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本第１の実施の形態のメモリ管理装置１で実行されるカーネルプログラム５をインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態のカーネルプログラム５を、ＲＯＭ等に予め組み込んで本第１の実施の形態のメモリ管理装置１に提供するように構成してもよい。なお、以降、カーネルプログラム５を単にカーネル５と表現することもある。
【００１６】
図４は、カーネル５の実行により生成される第１の実施の形態のメモリ管理装置１の機能を説明する図である。図示するように、メモリ管理装置１は、メモリ管理ポリシー毎にアロケータを生成するアロケータ生成機能部１１と、アロケータに種々のメモリ管理ポリシーを提供するための関数のライブラリである割り当て／解放関数群１２と、アロケータ生成機能部１１が生成したアロケータとカーネル５により実行されるタスクとを対応付けることによってタスクがアロケータを使用できるように設定するタスク対応付け機能部１３と、を備えている。
【００１７】
アロケータ生成機能部１１は、具体的には、割り当て／解放関数群１２から割り当て関数および解放関数を選択し、アロケータに前記選択した関数を参照するためのポインタを埋め込むことによって、アロケータにメモリ割り当て／解放のルールであるメモリ管理ポリシーを与える。以下、メモリ管理ポリシーを単にルールと表現することもある。なお、ここでは割り当て／解放関数群１２はカーネル５に含まれているとして説明するが、割り当て／解放関数群１２はカーネル５ではなくユーザプログラムから提供されるようにしてもよい。
【００１８】
図５は、アロケータのデータ構造を具体的に説明する図である。図５に示すように、アロケータはデータ領域と制御領域から構成される。制御領域は、複数のアロケータを夫々識別するためのアロケータＩＤ、管理対象領域の先頭アドレスとしてのメモリアドレス、管理対象領域のデータサイズ、ならびにこのメモリアドレスおよびデータサイズにより決まる管理対象領域の排他制御のために使用されるロック変数を有している。なお、管理対象領域はＲＡＭ４上に確保される。データ領域は、４関数（初期化関数、終了関数、割り当て関数、解放関数）を指すポインタを有している。初期化関数とは、アロケータ生成時に管理対象領域を確保し、確保した管理対象領域を初期化するための関数である。終了関数とは、アロケータ終了時に管理対象領域を解放するとともに自アロケータを削除するための関数である。割り当て関数および解放関数は、管理対象領域からメモリ領域を割り当てるときのメモリ管理ポリシーを記述する関数である。割り当て関数はメモリ割り当て時のルールが記述される。例えば割り当て関数には割り当てる領域の単位サイズを指定することができる。解放関数は割り当てられたメモリ領域の解放時のルールを記述する関数である。例えば、割り当てられた順番が早い領域から順番に解放するように記述された解放関数によりＦＩＦＯのルールを実現することができる。また、割り当てられた順番が遅い領域から順番に解放するように記述された解放関数によりＦＩＬＯのルールを実現したりすることができる。
【００１９】
次に、本第１の実施の形態のメモリ管理装置１の動作を説明する。図６は、メモリ管理装置１の動作を説明するフローチャートである。まず、ビデオデコードタスク、ビデオフレーム出力タスクの起動前に、アロケータ生成機能部１１はアロケータＡ、アロケータＢを静的に生成する（ステップＳ１）。具体的には、アロケータ生成機能部１１は、二つのアロケータＡ、Ｂのデータ構造を生成し、データ領域の４関数のポインタを夫々設定する。ここでは、アロケータＡの割り当て関数には「メモリ領域を６４Ｂｙｔｅ単位で随時確保するポリシー」が記述された割り当て関数が割り当て／解放関数群１２から選択され、アロケータＢの割り当て関数には「２５６Ｋｂｙｔｅのメモリ領域を一括して確保するポリシー」が記述されている割り当て関数が選択される。なお、アロケータの生成には初期化処理が伴う。初期化処理では、アロケータ生成機能部１１は、生成したアロケータにアロケータＩＤを付し、ポインタにより指定されている初期化関数に基づいてアロケータのデータ構造における制御領域にメモリアドレス、データサイズを設定してＲＡＭ４における管理対象領域を確保し、このアロケータ以外には確保した管理対象領域を使用できないようにロック変数を確保する。
【００２０】
ステップＳ１の処理の後、タスク対応付け機能部１３は、ビデオデコードタスクおよびビデオフレーム出力タスクに夫々アロケータＡ、アロケータＢを対応付ける（ステップＳ２）。具体的に説明すると、カーネル５は、タスクのスケジュールリングなどを行うために、タスク管理のためのデータ（タスク管理データ）を生成する。また、夫々のタスクのコード中には、予めアロケータＩＤを指定しておくようにする。タスク対応付け機能部１３は、夫々のタスクの起動前に、夫々タスクのコード中に指定されているアロケータＩＤに基づいて夫々のタスクが使用するアロケータ（この場合はアロケータＡまたはアロケータＢ）を選択し、夫々のタスクのタスク管理データ中に前記選択した夫々のアロケータへのポインタを埋め込む。
【００２１】
図７は、アロケータが対応付けられているビデオ処理タスク（ビデオデコードタスク、ビデオフレーム出力タスク）のタスク管理データのデータ構造の一例を説明する図である。図示するように、ビデオ処理タスクのタスク管理データは、タスクを識別するためのタスクＩＤと、ＲＡＭ４におけるスタックアドレスと、スタック領域のサイズであるスタックサイズと、このタスクのエントリポイントと、退避レジスタと、アロケータへのポインタと、を含む構造となっている。タスク対応付け機能部１３によりこのビデオデコードタスクのデータ構造のアロケータへのポインタにはアロケータＡを指すポインタが記述され、ビデオフレーム出力タスクのデータ構造にはアロケータＢを指すポインタが記述される。
【００２２】
図６に戻り、カーネル５は、２つのビデオ処理タスク（ビデオデコードタスク、ビデオフレーム出力タスク）を実行する（ステップＳ３）。その際、カーネル５は、必要に応じて、タスク管理データに対応付けられているアロケータを使用してメモリ領域割り当て／解放を実施する。すなわち、ビデオデコーダタスクが使用するメモリ領域割り当て／解放には「メモリ領域を６４Ｂｙｔｅ単位で随時確保するポリシー」が、ビデオフレーム出力タスクには「２５６Ｋｂｙｔｅのメモリ領域を一括して確保するポリシー」が夫々適用されることになる。
【００２３】
タスクが終了すると、メモリ管理装置１は、不要となったアロケータＡおよびアロケータＢのデータ構造に記述されるポインタを用いて夫々の終了関数を呼び出して実行することによって、アロケータＡおよびアロケータＢを削除する（ステップＳ４）。
【００２４】
以上のように、第１の実施の形態によれば、メモリ領域のメモリ資源をタスクに割り当てるアロケータをメモリ管理ポリシー毎に複数生成し、タスクのコードに記述されているアロケータ指定に基づいて生成されたアロケータのうちの一つを選択し、タスクが選択したアロケータを使用できるように設定するように構成したので、タスクは処理内容に沿ったメモリ管理ポリシーを使用するアロケータを使用できるようにしたので、前記したページング方式に比べてメモリ使用効率を向上させることができる。
【００２５】
また、アロケータ毎に管理対象領域を確保するように構成したので、夫々のアロケータは自身が管理する管理対象領域からメモリ領域を割り当てることになるので、タスクに割り当てる空き領域の探索を行いやすくなる。
【００２６】
また、メモリ管理ポリシーには、一回の割り当て／解放動作で割り当て／解放するメモリ資源の単位サイズが指定されているので、タスクは自身の処理内容に適した単位サイズで割り当て／解放するメモリ管理ポリシーを使用するアロケータを使用するように設定することができるので、メモリ使用効率を向上させることができる。
【００２７】
（第２の実施の形態）
例えば、ビデオエンコードタスクは、前述したビデオデコードタスクと同様に比較的小さいデータサイズ単位で随時メモリを確保し、使用する。しかしながら、ビデオデコードタスクの場合、管理対象領域のメモリ領域を毎回先頭から空き領域を探索し、一番初めに見つかった６４ＫＢｙｔｅの空き領域を確保する方式を用いると探索効率がよく、ビデオエンコードタスクの場合、前回６４ＫＢｙｔｅの割り当てに成功した場所から空き領域を探すと探索効率がよいことが知られている。そこで、第２の実施の形態では、割り当て関数に空き領域を探索する方式まで記述するようにしている。
【００２８】
図８は、第２の実施の形態のメモリ管理装置の動作を概略的に説明する図である。図示するように、ビデオデコードタスクは、先頭から空き領域６４ＫＢｙｔｅを探すポリシーを使用するアロケータＡを用いてメモリ割り当てを実行し、ビデオエンコードタスクは、前回割り当てに成功した場所から空き領域６４ＫＢｙｔｅを探すポリシーを使用するアロケータＢを用いてメモリ割り当てを実行する。
【００２９】
上記動作を実現するためのハードウェア構成および機能構成は、第１の実施の形態と同様であって、割り当て関数の記述が異なるだけであるので、第２の実施の形態のハードウェア構成および機能構成の詳細な説明は省略する。また、動作の詳細な説明も上記説明した概略的な説明以外は第１の実施の形態とほぼ同等であるので、動作の詳細な説明も省略する。
【００３０】
以上説明したように、メモリ管理ポリシーには、タスクに割り当てるためのメモリ領域の空き領域の探索ルールが指定されるように構成したので、メモリ使用効率を向上させることができる。
【００３１】
（第３の実施の形態）
第３の実施の形態では、夫々のタスクが複数のアロケータを切り替えて使用できるようになっている。例えばビデオのデコードとエンコードを行う単一のタスクであるビデオコーデックタスクを考える。図９は、ビデオコーデックタスクを実行する際の第３の実施の形態のメモリ管理装置の動作を概略的に説明する図である。図９に示すように、ビデオコーデックタスクは、メモリ領域を比較的小さいデータサイズ（ここでは６４Ｂｙｔｅ）単位で随時確保し、使用する。ここで、デコード時においては、ビデオコーデックタスクは、管理対象のメモリ領域を先頭から空き領域を探し、一番初めに見付かった６４Ｂｙｔｅの空き領域を確保するメモリ管理ポリシーを使用するアロケータＡを使用し、エンコード時は、前回６４Ｂｙｔｅの割り当てに成功した場所から空き領域を探し、一番初めに見付かった６４Ｂｙｔｅの空き領域を確保するメモリ管理ポリシーを使用するアロケータＢを使用する。
【００３２】
第３の実施の形態のメモリ管理装置の構成について説明する。第３の実施の形態のメモリ管理装置のハードウェア構成は第１の実施の形態と同様であるので説明を省略する。図１０は、第３の実施の形態のメモリ管理装置の機能を説明する図である。なお、本第３の実施の形態のメモリ管理装置を第１の実施の形態と区別するために、メモリ管理装置に符号６を付している。
【００３３】
図１０に示すように、第３の実施の形態のメモリ管理装置６は、第１の実施の形態の機能構成に加えてアロケータ管理機能部１４を備えた構成となっている。アロケータ管理機能部１４は、アロケータ生成機能部１１により生成されたアロケータを管理し、実行前または実行中のタスクからアロケータを指定する要求を受け付けたとき、タスク対応付け機能部１３にこのタスクと指定されたアロケータとを対応付けさせる。
【００３４】
次に、第３の実施の形態のメモリ管理装置６の動作について説明する。図１１は、第３の実施の形態のメモリ管理装置６の動作を説明するフローチャートである。
【００３５】
図１１において、まず、アロケータ生成機能部１１は、タスク起動前にアロケータＡ、アロケータＢを静的に生成する（ステップＳ１１）。各アロケータのデータ構造は第１の実施の形態と同等である。ただし、アロケータ生成機能部１１は、アロケータＡには「先頭から空き領域６４Ｂｙｔｅを探すポリシー」が記述された割り当て関数を割り当て／解放関数群１２から選択し、アロケータＢには「前回割り当てに成功した場所から空き領域６４Ｂｙｔｅを確保するポリシー」が記述された割り当て関数を選択するようにしておく。アロケータ管理機能部１４は、アロケータ生成機能部１１が生成したアロケータＡ、アロケータＢのアロケータＩＤを記憶する（ステップＳ１２）。
【００３６】
続いて、ビデオコーデックタスクとアロケータＡとの対応付けの処理（ステップＳ１３）に移行する。ここでは、ビデオコーデックタスクは、アロケータ管理機能部１４に対して、アロケータＡのＩＤを指定してアロケータＡが存在するかどうかを問い合わせる。アロケータ管理機能部１４は、問い合わせのあったアロケータＡは登録されているので、タスク対応付け機能部１３に指令してビデオコーデックタスク起動前に静的にビデオコーデックタスクにアロケータＡを対応付けさせる。図１２は、アロケータＡが対応付けられたビデオコーデックタスクのタスク管理データの一例を説明する図である。図示するように、アロケータへのポインタとして、アロケータＡを示すポインタが埋め込まれている。
【００３７】
図１１に戻り、ステップＳ１３に続いて、カーネル５はビデオコーデックタスクのビデオデコード機能を実行する（ステップＳ１４）。その際、カーネル５は必要に応じてタスク管理データに対応付けられているアロケータＡを使用してメモリ領域割り当て／解放を実施する。すなわち、ビデオコーデックタスクが使用するメモリ領域割り当て／解放には「先頭から空き領域６４Ｂｙｔｅを探すポリシー」が適用されることになる。
【００３８】
続いて、ビデオデコード機能の実行が終了すると、メモリ管理装置６は、アロケータＡの終了関数を呼び出して実行することにより、アロケータＡを削除する（ステップＳ１５）。この際、アロケータ管理機能部１４は、記憶していたアロケータＡのＩＤを削除する。
【００３９】
続いて、ビデオコーデックタスクは、アロケータ管理機能部１４に対して、今度はアロケータＢのＩＤを指定してアロケータＢが存在するかどうかを問い合わせる。アロケータ管理機能部１４は、問い合わせのあったアロケータＢは登録されているので、タスク対応付け機能部１３に指令してビデオコーデックタスクにアロケータＢを対応付けさせる（ステップＳ１６）。図１３は、アロケータＢが対応付けられたビデオコーデックタスクのタスク管理データの一例を説明する図である。図示するように、アロケータへのポインタとして、アロケータＡに代わってアロケータＢを示すポインタが埋め込まれている。
【００４０】
続いて、カーネル５はビデオコーデックタスクのビデオエンコード機能を実行する（ステップＳ１７）。その際、カーネル５は必要に応じてタスク管理データに対応付けられているアロケータＢを使用してメモリ領域割り当て／解放を実施する。すなわち、ビデオコーデックタスクが使用するメモリ領域割り当て／解放には「前回割り当てに成功した場所から空き領域６４Ｂｙｔｅを確保するポリシー」が適用されることになる。
【００４１】
そして、ビデオエンコード機能の実行が終了すると、メモリ管理装置６は、アロケータＢの終了関数を呼び出して実行することにより、アロケータＢを削除し（ステップＳ１８）、動作を終了する。この際、アロケータ管理機能部１４は、記憶していたアロケータＢのＩＤを削除する。
【００４２】
このように、第３の実施の形態によれば、タスクからこのタスクの実行前および実行中に発行されるアロケータの指定（要求）に基づいてこのタスクに設定されているアロケータを切り替えるように構成したので、複数の処理内容を実行する単一のタスクが動作する場合であってもアロケータを使い分けることができるようになるので、メモリ使用効率を向上させることができる。
【符号の説明】
【００４３】
１  メモリ管理装置、２  プロセッサ、３  ＲＯＭ、４  ＲＡＭ、５  カーネルプログラム、６  メモリ管理装置、１１  アロケータ生成機能部、１２  割り当て／解放関数群、１３  タスク対応付け機能部、１４  アロケータ管理機能部。
【図１】
2010272072.tif 000003
【図２】
2010272072.tif 000004
【図３】
2010272072.tif 000005
【図４】
2010272072.tif 000006
【図５】
2010272072.tif 000007
【図６】
2010272072.tif 000008
【図７】
2010272072.tif 000009
【図８】
2010272072.tif 000010
【図９】
2010272072.tif 000011
【図１０】
2010272072.tif 000012
【図１１】
2010272072.tif 000013
【図１２】
2010272072.tif 000014
【図１３】
2010272072.tif 000015