JP2010272072A - メモリ管理装置 - Google Patents

メモリ管理装置 Download PDF

Info

Publication number
JP2010272072A
JP2010272072A JP2009125540A JP2009125540A JP2010272072A JP 2010272072 A JP2010272072 A JP 2010272072A JP 2009125540 A JP2009125540 A JP 2009125540A JP 2009125540 A JP2009125540 A JP 2009125540A JP 2010272072 A JP2010272072 A JP 2010272072A
Authority
JP
Japan
Prior art keywords
allocator
task
memory
management device
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009125540A
Other languages
English (en)
Other versions
JP5420972B2 (ja
Inventor
Hirochika Tagawa
博規 田川
Shunsuke Sasaki
俊介 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009125540A priority Critical patent/JP5420972B2/ja
Priority to US12/692,076 priority patent/US20100299672A1/en
Publication of JP2010272072A publication Critical patent/JP2010272072A/ja
Application granted granted Critical
Publication of JP5420972B2 publication Critical patent/JP5420972B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

【課題】メモリ使用効率を向上させる。
【解決手段】メモリ領域と、前記メモリ領域のメモリ資源をタスクに割り当てるアロケータをメモリ割り当て/解放のルール毎に複数生成するアロケータ生成手段11と、タスクのコードに記述されているアロケータ指定に基づいて前記生成されたアロケータのうちの一つを選択し、前記タスクが前記選択したアロケータを使用できるように設定するタスク対応付け手段13と、を有する。
【選択図】図4

Description

本発明は、メモリ管理装置に関する。
従来、汎用のマルチタスクOS(Operating System)は、メモリを固定サイズ(例えば4KByte)の「ページ」に分割し、ページ毎に割り当て/解放をする「ページング方式」を採用している。この方式によれば、例えばあるタスクが400KByteのメモリ領域の割り当てを要求した場合、OSは、100個の空いているページを探し、見つけた夫々のページの位置を返す処理を行う。その際、使用中のページが分散して存在している場合、空きページを探す処理が多数回(最悪の場合100回)発生してしまう。すなわち、ページング方式はメモリ使用効率が悪いという問題があった。この問題の原因は、4KByte毎にメモリを割り当て/解放するという単一のルール(メモリ管理ポリシー)を処理内容に関係なく全てのタスクの適用していることにある。
この問題に関連する技術として、特許文献1には、ストレージシステムにおいて、複数のコンピュータの状況に応じて各コンピュータに割り当てる物理記憶領域を適宜に変更する技術が開示されている。しかしながら、この技術によれば、コンピュータ毎に割り当てる領域のみを変更するだけであって、割り当て/解放のルールを変更するものではないため、前記した問題を解決できるものではなかった。
特開2005−338985号公報
本発明は、メモリ使用効率を向上させたメモリ管理装置を提供することを目的とする。
本願発明の一態様によれば、メモリ領域と、前記メモリ領域のメモリ資源をタスクに割り当てるアロケータをメモリ割り当て/解放のルール毎に複数生成するアロケータ生成手段と、タスクのコードに記述されているアロケータ指定に基づいて前記生成されたアロケータのうちの一つを選択し、前記タスクが前記選択したアロケータを使用できるように設定するタスク対応付け手段と、を有することを特徴とするメモリ管理装置が提供される。
本発明によれば、メモリ使用効率を向上させたメモリ管理装置を提供することができるという効果を奏する。
図1は、ページング方式を説明する図。 図2は、第1の実施の形態のメモリ管理装置によるメモリ管理動作を概略的に説明するための図。 図3は、第1の実施の形態のメモリ管理装置のハードウェア構成を説明する図。 図4は、第1の実施の形態のメモリ管理装置の機能を説明する図。 図5は、アロケータのデータ構造を説明する図。 図6は、第1の実施の形態のメモリ管理装置の動作を説明するフローチャート。 図7は、タスク管理データのデータ構造の一例を説明する図。 図8は、第2の実施の形態のメモリ管理装置の動作を概略的に説明する図。 図9は、第3の実施の形態のメモリ管理装置の動作を概略的に説明する図。 図10は、第3の実施の形態のメモリ管理装置の機能を説明する図。 図11は、第3の実施の形態のメモリ管理装置の動作を説明するフローチャート。 図12は、タスク管理データの一例を説明する図。 図13は、タスク管理データの一例を説明する図。
以下に添付図面を参照して、本発明の実施の形態にかかるメモリ管理装置を詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
(第1の実施の形態)
本発明の第1の実施の形態のメモリ管理装置は、プロセッサと例えばRAM(Random Access Memory)などの不揮発性のメモリとを有するコンピュータに実装される。より具体的には、第1の実施の形態のメモリ管理装置としての機能は、上記したコンピュータのプロセッサがカーネルプログラムをROM(Read Only Memory)や外部記憶装置などから読み出して実行することによってコンピュータ上に実現される。
まず、従来の技術であるページング方式と対比させて本第1の実施の形態の特徴について説明する。図1は、ページング方式を採用するOSにおけるメモリ管理動作を概略的に説明するための図である。図示するように、不揮発性メモリのメモリ領域にはタスクに割り当てるための専用の領域である管理対象領域が確保され、カーネルプログラムから起動されたタスクは、メモリ割り当て/解放を行うためのアロケータを用いてこの管理対象領域からメモリを確保/解放する。ここで、ページング方式を採用するOSでは、アロケータは、4KByte毎にメモリを割り当て/解放するという単一のメモリ管理ポリシーを用いてメモリ割り当て/解放を実行する。したがって、4KByte以上のサイズのメモリ割り当てを必要とするタスクであっても4KByte毎にこまめにメモリ割り当てを行わざるを得ないため、空き領域の探索と探索した空き領域の確保の処理の回数が増大し、メモリ使用効率が低下する。
図2は、本第1の実施の形態のメモリ管理装置によるメモリ管理動作を概略的に説明するための図である。図示するように、本第1の実施の形態では、メモリ管理ポリシーを複数備え、夫々のタスクは、処理内容に応じて、複数(ここでは2つ)のメモリ管理ポリシーを夫々使用する複数のアロケータのうちの一つを選択可能に構成されている。この図においては、64Byte毎にメモリ割り当て/解放するメモリ管理ポリシーを使用するアロケータAと、256KByte毎にメモリ割り当て/解放するメモリ管理ポリシーを使用するアロケータBとが生成されており、64KByte単位で随時メモリを確保するビデオデコードタスクはアロケータA、256KByte単位でメモリを一括して確保して使用するビデオフレーム出力タスクはアロケータBを夫々使用するようにしている。すなわち、ビデオデコードタスク、ビデオフレーム出力タスクは、夫々処理内容に適したメモリ管理ポリシーを使用するアロケータを使用している。このように、本第1の実施の形態は、ページング方式よりメモリ使用効率を向上させるための方策として、メモリ管理ポリシー毎に異なるアロケータを生成し、タスクはそのうちの一つを使用することによって、タスクの処理内容によって異なるメモリ管理ポリシーを使用できるようにしたことが主たる特徴となっている。以下、本第1の実施の形態のメモリ管理装置について説明する。なお、本第1の実施の形態のメモリ管理装置で実行されるタスクの例として上述のビデオデコードタスクおよびビデオフレーム出力タスクを挙げて説明する。
図3は、本第1の実施の形態のメモリ管理装置のハードウェア構成を説明する図である。図示するように、本第1の実施の形態のメモリ管理装置1は、プロセッサ2、ROM3、RAM4を備えるコンピュータ構成となっている。プロセッサ2、ROM3、RAM4は、バスラインを介して夫々接続されている。
プロセッサ2は、RAM4のメモリ管理を行うメモリ管理プログラムとしてのカーネルプログラムを実行する。カーネルプログラム5は、ROM3内に格納されており、バスラインを介してRAM4へロードされる。プロセッサ2はRAM4内にロードされたカーネルプログラム5を実行する。具体的には、メモリ管理装置1では、プロセッサ2は起動時にROM3内からカーネルプログラム5を読み出してRAM4内のプログラム格納領域に展開し、RAM4内に展開されたカーネルプログラム5とプロセッサ2との協働により、前記した本第1の実施の形態のメモリ管理動作を実行する機能を実現する。本第1の実施の形態のメモリ管理動作を実行する機能については後述する。なお、カーネルプログラム5は、DISKなどの記憶装置に格納しておいてもよい。また、カーネルプログラム5は、DISKなどの記憶装置にロードしてもよい。
なお、本第1の実施の形態のメモリ管理装置1で実行されるカーネルプログラム5を、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本第1の実施の形態のメモリ管理装置1で実行されるカーネルプログラム5をインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態のカーネルプログラム5を、ROM等に予め組み込んで本第1の実施の形態のメモリ管理装置1に提供するように構成してもよい。なお、以降、カーネルプログラム5を単にカーネル5と表現することもある。
図4は、カーネル5の実行により生成される第1の実施の形態のメモリ管理装置1の機能を説明する図である。図示するように、メモリ管理装置1は、メモリ管理ポリシー毎にアロケータを生成するアロケータ生成機能部11と、アロケータに種々のメモリ管理ポリシーを提供するための関数のライブラリである割り当て/解放関数群12と、アロケータ生成機能部11が生成したアロケータとカーネル5により実行されるタスクとを対応付けることによってタスクがアロケータを使用できるように設定するタスク対応付け機能部13と、を備えている。
アロケータ生成機能部11は、具体的には、割り当て/解放関数群12から割り当て関数および解放関数を選択し、アロケータに前記選択した関数を参照するためのポインタを埋め込むことによって、アロケータにメモリ割り当て/解放のルールであるメモリ管理ポリシーを与える。以下、メモリ管理ポリシーを単にルールと表現することもある。なお、ここでは割り当て/解放関数群12はカーネル5に含まれているとして説明するが、割り当て/解放関数群12はカーネル5ではなくユーザプログラムから提供されるようにしてもよい。
図5は、アロケータのデータ構造を具体的に説明する図である。図5に示すように、アロケータはデータ領域と制御領域から構成される。制御領域は、複数のアロケータを夫々識別するためのアロケータID、管理対象領域の先頭アドレスとしてのメモリアドレス、管理対象領域のデータサイズ、ならびにこのメモリアドレスおよびデータサイズにより決まる管理対象領域の排他制御のために使用されるロック変数を有している。なお、管理対象領域はRAM4上に確保される。データ領域は、4関数(初期化関数、終了関数、割り当て関数、解放関数)を指すポインタを有している。初期化関数とは、アロケータ生成時に管理対象領域を確保し、確保した管理対象領域を初期化するための関数である。終了関数とは、アロケータ終了時に管理対象領域を解放するとともに自アロケータを削除するための関数である。割り当て関数および解放関数は、管理対象領域からメモリ領域を割り当てるときのメモリ管理ポリシーを記述する関数である。割り当て関数はメモリ割り当て時のルールが記述される。例えば割り当て関数には割り当てる領域の単位サイズを指定することができる。解放関数は割り当てられたメモリ領域の解放時のルールを記述する関数である。例えば、割り当てられた順番が早い領域から順番に解放するように記述された解放関数によりFIFOのルールを実現することができる。また、割り当てられた順番が遅い領域から順番に解放するように記述された解放関数によりFILOのルールを実現したりすることができる。
次に、本第1の実施の形態のメモリ管理装置1の動作を説明する。図6は、メモリ管理装置1の動作を説明するフローチャートである。まず、ビデオデコードタスク、ビデオフレーム出力タスクの起動前に、アロケータ生成機能部11はアロケータA、アロケータBを静的に生成する(ステップS1)。具体的には、アロケータ生成機能部11は、二つのアロケータA、Bのデータ構造を生成し、データ領域の4関数のポインタを夫々設定する。ここでは、アロケータAの割り当て関数には「メモリ領域を64Byte単位で随時確保するポリシー」が記述された割り当て関数が割り当て/解放関数群12から選択され、アロケータBの割り当て関数には「256Kbyteのメモリ領域を一括して確保するポリシー」が記述されている割り当て関数が選択される。なお、アロケータの生成には初期化処理が伴う。初期化処理では、アロケータ生成機能部11は、生成したアロケータにアロケータIDを付し、ポインタにより指定されている初期化関数に基づいてアロケータのデータ構造における制御領域にメモリアドレス、データサイズを設定してRAM4における管理対象領域を確保し、このアロケータ以外には確保した管理対象領域を使用できないようにロック変数を確保する。
ステップS1の処理の後、タスク対応付け機能部13は、ビデオデコードタスクおよびビデオフレーム出力タスクに夫々アロケータA、アロケータBを対応付ける(ステップS2)。具体的に説明すると、カーネル5は、タスクのスケジュールリングなどを行うために、タスク管理のためのデータ(タスク管理データ)を生成する。また、夫々のタスクのコード中には、予めアロケータIDを指定しておくようにする。タスク対応付け機能部13は、夫々のタスクの起動前に、夫々タスクのコード中に指定されているアロケータIDに基づいて夫々のタスクが使用するアロケータ(この場合はアロケータAまたはアロケータB)を選択し、夫々のタスクのタスク管理データ中に前記選択した夫々のアロケータへのポインタを埋め込む。
図7は、アロケータが対応付けられているビデオ処理タスク(ビデオデコードタスク、ビデオフレーム出力タスク)のタスク管理データのデータ構造の一例を説明する図である。図示するように、ビデオ処理タスクのタスク管理データは、タスクを識別するためのタスクIDと、RAM4におけるスタックアドレスと、スタック領域のサイズであるスタックサイズと、このタスクのエントリポイントと、退避レジスタと、アロケータへのポインタと、を含む構造となっている。タスク対応付け機能部13によりこのビデオデコードタスクのデータ構造のアロケータへのポインタにはアロケータAを指すポインタが記述され、ビデオフレーム出力タスクのデータ構造にはアロケータBを指すポインタが記述される。
図6に戻り、カーネル5は、2つのビデオ処理タスク(ビデオデコードタスク、ビデオフレーム出力タスク)を実行する(ステップS3)。その際、カーネル5は、必要に応じて、タスク管理データに対応付けられているアロケータを使用してメモリ領域割り当て/解放を実施する。すなわち、ビデオデコーダタスクが使用するメモリ領域割り当て/解放には「メモリ領域を64Byte単位で随時確保するポリシー」が、ビデオフレーム出力タスクには「256Kbyteのメモリ領域を一括して確保するポリシー」が夫々適用されることになる。
タスクが終了すると、メモリ管理装置1は、不要となったアロケータAおよびアロケータBのデータ構造に記述されるポインタを用いて夫々の終了関数を呼び出して実行することによって、アロケータAおよびアロケータBを削除する(ステップS4)。
以上のように、第1の実施の形態によれば、メモリ領域のメモリ資源をタスクに割り当てるアロケータをメモリ管理ポリシー毎に複数生成し、タスクのコードに記述されているアロケータ指定に基づいて生成されたアロケータのうちの一つを選択し、タスクが選択したアロケータを使用できるように設定するように構成したので、タスクは処理内容に沿ったメモリ管理ポリシーを使用するアロケータを使用できるようにしたので、前記したページング方式に比べてメモリ使用効率を向上させることができる。
また、アロケータ毎に管理対象領域を確保するように構成したので、夫々のアロケータは自身が管理する管理対象領域からメモリ領域を割り当てることになるので、タスクに割り当てる空き領域の探索を行いやすくなる。
また、メモリ管理ポリシーには、一回の割り当て/解放動作で割り当て/解放するメモリ資源の単位サイズが指定されているので、タスクは自身の処理内容に適した単位サイズで割り当て/解放するメモリ管理ポリシーを使用するアロケータを使用するように設定することができるので、メモリ使用効率を向上させることができる。
(第2の実施の形態)
例えば、ビデオエンコードタスクは、前述したビデオデコードタスクと同様に比較的小さいデータサイズ単位で随時メモリを確保し、使用する。しかしながら、ビデオデコードタスクの場合、管理対象領域のメモリ領域を毎回先頭から空き領域を探索し、一番初めに見つかった64KByteの空き領域を確保する方式を用いると探索効率がよく、ビデオエンコードタスクの場合、前回64KByteの割り当てに成功した場所から空き領域を探すと探索効率がよいことが知られている。そこで、第2の実施の形態では、割り当て関数に空き領域を探索する方式まで記述するようにしている。
図8は、第2の実施の形態のメモリ管理装置の動作を概略的に説明する図である。図示するように、ビデオデコードタスクは、先頭から空き領域64KByteを探すポリシーを使用するアロケータAを用いてメモリ割り当てを実行し、ビデオエンコードタスクは、前回割り当てに成功した場所から空き領域64KByteを探すポリシーを使用するアロケータBを用いてメモリ割り当てを実行する。
上記動作を実現するためのハードウェア構成および機能構成は、第1の実施の形態と同様であって、割り当て関数の記述が異なるだけであるので、第2の実施の形態のハードウェア構成および機能構成の詳細な説明は省略する。また、動作の詳細な説明も上記説明した概略的な説明以外は第1の実施の形態とほぼ同等であるので、動作の詳細な説明も省略する。
以上説明したように、メモリ管理ポリシーには、タスクに割り当てるためのメモリ領域の空き領域の探索ルールが指定されるように構成したので、メモリ使用効率を向上させることができる。
(第3の実施の形態)
第3の実施の形態では、夫々のタスクが複数のアロケータを切り替えて使用できるようになっている。例えばビデオのデコードとエンコードを行う単一のタスクであるビデオコーデックタスクを考える。図9は、ビデオコーデックタスクを実行する際の第3の実施の形態のメモリ管理装置の動作を概略的に説明する図である。図9に示すように、ビデオコーデックタスクは、メモリ領域を比較的小さいデータサイズ(ここでは64Byte)単位で随時確保し、使用する。ここで、デコード時においては、ビデオコーデックタスクは、管理対象のメモリ領域を先頭から空き領域を探し、一番初めに見付かった64Byteの空き領域を確保するメモリ管理ポリシーを使用するアロケータAを使用し、エンコード時は、前回64Byteの割り当てに成功した場所から空き領域を探し、一番初めに見付かった64Byteの空き領域を確保するメモリ管理ポリシーを使用するアロケータBを使用する。
第3の実施の形態のメモリ管理装置の構成について説明する。第3の実施の形態のメモリ管理装置のハードウェア構成は第1の実施の形態と同様であるので説明を省略する。図10は、第3の実施の形態のメモリ管理装置の機能を説明する図である。なお、本第3の実施の形態のメモリ管理装置を第1の実施の形態と区別するために、メモリ管理装置に符号6を付している。
図10に示すように、第3の実施の形態のメモリ管理装置6は、第1の実施の形態の機能構成に加えてアロケータ管理機能部14を備えた構成となっている。アロケータ管理機能部14は、アロケータ生成機能部11により生成されたアロケータを管理し、実行前または実行中のタスクからアロケータを指定する要求を受け付けたとき、タスク対応付け機能部13にこのタスクと指定されたアロケータとを対応付けさせる。
次に、第3の実施の形態のメモリ管理装置6の動作について説明する。図11は、第3の実施の形態のメモリ管理装置6の動作を説明するフローチャートである。
図11において、まず、アロケータ生成機能部11は、タスク起動前にアロケータA、アロケータBを静的に生成する(ステップS11)。各アロケータのデータ構造は第1の実施の形態と同等である。ただし、アロケータ生成機能部11は、アロケータAには「先頭から空き領域64Byteを探すポリシー」が記述された割り当て関数を割り当て/解放関数群12から選択し、アロケータBには「前回割り当てに成功した場所から空き領域64Byteを確保するポリシー」が記述された割り当て関数を選択するようにしておく。アロケータ管理機能部14は、アロケータ生成機能部11が生成したアロケータA、アロケータBのアロケータIDを記憶する(ステップS12)。
続いて、ビデオコーデックタスクとアロケータAとの対応付けの処理(ステップS13)に移行する。ここでは、ビデオコーデックタスクは、アロケータ管理機能部14に対して、アロケータAのIDを指定してアロケータAが存在するかどうかを問い合わせる。アロケータ管理機能部14は、問い合わせのあったアロケータAは登録されているので、タスク対応付け機能部13に指令してビデオコーデックタスク起動前に静的にビデオコーデックタスクにアロケータAを対応付けさせる。図12は、アロケータAが対応付けられたビデオコーデックタスクのタスク管理データの一例を説明する図である。図示するように、アロケータへのポインタとして、アロケータAを示すポインタが埋め込まれている。
図11に戻り、ステップS13に続いて、カーネル5はビデオコーデックタスクのビデオデコード機能を実行する(ステップS14)。その際、カーネル5は必要に応じてタスク管理データに対応付けられているアロケータAを使用してメモリ領域割り当て/解放を実施する。すなわち、ビデオコーデックタスクが使用するメモリ領域割り当て/解放には「先頭から空き領域64Byteを探すポリシー」が適用されることになる。
続いて、ビデオデコード機能の実行が終了すると、メモリ管理装置6は、アロケータAの終了関数を呼び出して実行することにより、アロケータAを削除する(ステップS15)。この際、アロケータ管理機能部14は、記憶していたアロケータAのIDを削除する。
続いて、ビデオコーデックタスクは、アロケータ管理機能部14に対して、今度はアロケータBのIDを指定してアロケータBが存在するかどうかを問い合わせる。アロケータ管理機能部14は、問い合わせのあったアロケータBは登録されているので、タスク対応付け機能部13に指令してビデオコーデックタスクにアロケータBを対応付けさせる(ステップS16)。図13は、アロケータBが対応付けられたビデオコーデックタスクのタスク管理データの一例を説明する図である。図示するように、アロケータへのポインタとして、アロケータAに代わってアロケータBを示すポインタが埋め込まれている。
続いて、カーネル5はビデオコーデックタスクのビデオエンコード機能を実行する(ステップS17)。その際、カーネル5は必要に応じてタスク管理データに対応付けられているアロケータBを使用してメモリ領域割り当て/解放を実施する。すなわち、ビデオコーデックタスクが使用するメモリ領域割り当て/解放には「前回割り当てに成功した場所から空き領域64Byteを確保するポリシー」が適用されることになる。
そして、ビデオエンコード機能の実行が終了すると、メモリ管理装置6は、アロケータBの終了関数を呼び出して実行することにより、アロケータBを削除し(ステップS18)、動作を終了する。この際、アロケータ管理機能部14は、記憶していたアロケータBのIDを削除する。
このように、第3の実施の形態によれば、タスクからこのタスクの実行前および実行中に発行されるアロケータの指定(要求)に基づいてこのタスクに設定されているアロケータを切り替えるように構成したので、複数の処理内容を実行する単一のタスクが動作する場合であってもアロケータを使い分けることができるようになるので、メモリ使用効率を向上させることができる。
1 メモリ管理装置、2 プロセッサ、3 ROM、4 RAM、5 カーネルプログラム、6 メモリ管理装置、11 アロケータ生成機能部、12 割り当て/解放関数群、13 タスク対応付け機能部、14 アロケータ管理機能部。

Claims (5)

  1. メモリ領域と、
    前記メモリ領域のメモリ資源をタスクに割り当てるアロケータをメモリ割り当て/解放のルール毎に複数生成するアロケータ生成手段と、
    タスクのコードに記述されているアロケータ指定に基づいて前記生成されたアロケータのうちの一つを選択し、前記タスクが前記選択したアロケータを使用できるように設定するタスク対応付け手段と、
    を有することを特徴とするメモリ管理装置。
  2. 前記アロケータ生成手段が生成した夫々のアロケータは、前記メモリ領域に夫々異なる管理対象領域を確保し、前記確保した夫々の管理対象領域に含まれるメモリ資源を自アロケータを使用するタスクに割り当てる、ことを特徴とする請求項1に記載のメモリ管理装置。
  3. 前記タスクが実行前および実行中に発行するアロケータを指定する要求を受け付けたとき、前記指定されたアロケータを前記タスクが使用できるように前記タスク対応付け手段に設定させるタスク切り替え手段をさらに備える、ことを特徴とする請求項1に記載のメモリ管理装置。
  4. 前記メモリ割り当て/解放のルールには、一回の割り当て/解放動作で割り当て/解放するメモリ資源の単位サイズが指定される、ことを特徴とする請求項1乃至請求項3のうちの何れか一項に記載のメモリ管理装置。
  5. 前記メモリ割り当て/解放のルールには、タスクに割り当てるための前記メモリ領域の空き領域の探索ルールが指定される、ことを特徴とする請求項1乃至請求項3のうちの何れか一項に記載のメモリ管理装置。
JP2009125540A 2009-05-25 2009-05-25 メモリ管理装置 Active JP5420972B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009125540A JP5420972B2 (ja) 2009-05-25 2009-05-25 メモリ管理装置
US12/692,076 US20100299672A1 (en) 2009-05-25 2010-01-22 Memory management device, computer system, and memory management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009125540A JP5420972B2 (ja) 2009-05-25 2009-05-25 メモリ管理装置

Publications (2)

Publication Number Publication Date
JP2010272072A true JP2010272072A (ja) 2010-12-02
JP5420972B2 JP5420972B2 (ja) 2014-02-19

Family

ID=43125422

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009125540A Active JP5420972B2 (ja) 2009-05-25 2009-05-25 メモリ管理装置

Country Status (2)

Country Link
US (1) US20100299672A1 (ja)
JP (1) JP5420972B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8793464B2 (en) * 2011-11-07 2014-07-29 Sap Ag Memory management in multi-threaded multi-processor computing system
US20140071290A1 (en) * 2012-09-12 2014-03-13 Futurewei Technologies, Inc. Tiered Storage for Video Surveillance
KR102014083B1 (ko) * 2012-12-31 2019-08-27 삼성전자주식회사 단말기의 메모리 관리방법 및 장치
US10073872B2 (en) * 2015-09-09 2018-09-11 Sap Se Hybrid heap memory management
CN115586960A (zh) * 2022-09-28 2023-01-10 维沃移动通信有限公司 内存分配器确定方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08202611A (ja) * 1995-01-24 1996-08-09 Brother Ind Ltd メモリ管理方法及び装置
JP2005521939A (ja) * 2002-04-03 2005-07-21 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メモリプールの変形

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182089B1 (en) * 1997-09-23 2001-01-30 Silicon Graphics, Inc. Method, system and computer program product for dynamically allocating large memory pages of different sizes
US6467075B1 (en) * 2000-03-24 2002-10-15 Nec Corporation Resolution of dynamic memory allocation/deallocation and pointers
US6757802B2 (en) * 2001-04-03 2004-06-29 P-Cube Ltd. Method for memory heap and buddy system management for service aware networks
EP1619584A1 (en) * 2004-02-13 2006-01-25 Jaluna SA Memory allocation
US8291426B2 (en) * 2008-06-02 2012-10-16 Microsoft Corporation Memory allocators corresponding to processor resources

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08202611A (ja) * 1995-01-24 1996-08-09 Brother Ind Ltd メモリ管理方法及び装置
JP2005521939A (ja) * 2002-04-03 2005-07-21 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メモリプールの変形

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CSNB200200369001; ブルカ ダブ Dov Bulka: Efficient C++ パフォーマンスプログラミングテクニック Efficient C++ Performance Program 第1版, 20000720, p.73-101, 株式会社ピアソン・エデュケーション *
JPN6013028894; ブルカ ダブ Dov Bulka: Efficient C++ パフォーマンスプログラミングテクニック Efficient C++ Performance Program 第1版, 20000720, p.73-101, 株式会社ピアソン・エデュケーション *
JPN6013052134; ブルカ ダブ Dov Bulka: Efficient C++ パフォーマンスプログラミングテクニック 初版 Efficient C++ Performance 第1版, 20000720, p.73-101, 株式会社ピアソン・エデュケーション 三輪 幸男 *

Also Published As

Publication number Publication date
US20100299672A1 (en) 2010-11-25
JP5420972B2 (ja) 2014-02-19

Similar Documents

Publication Publication Date Title
US8028148B2 (en) Safe and efficient allocation of memory
CN105074666B (zh) 执行在具有不同指令集架构的处理器上的操作系统
KR101361945B1 (ko) 컴퓨터 스레드들의 이종 리소스들로의 맵핑
JP5597196B2 (ja) プロセス内のスケジューラインスタンス
JP6240745B2 (ja) 複数のハイパーバイザを実行するシステムおよび方法
US20060218557A1 (en) Method and apparatus for switching between per-thread and per-processor resource pools in multi-threaded programs
JP5420972B2 (ja) メモリ管理装置
KR20150132218A (ko) 게스트 운영 체계 및 가상 프로세서들과 함께 하이퍼바이저를 이용하는 시스템들 및 방법들
US11216304B2 (en) Processing system for scheduling and distributing tasks and its acceleration method
WO2014171223A1 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2003167737A (ja) スタック使用方法
US20200334176A1 (en) Processing system for scheduling and its memory access method
US10929187B2 (en) Processing system and heterogeneous processor acceleration method
US8291426B2 (en) Memory allocators corresponding to processor resources
CN111177271A (zh) kafka数据持久化到hdfs的数据存储方法、装置、计算机设备
WO2024099448A1 (zh) 内存释放、内存恢复方法、装置、计算机设备及存储介质
TWI359377B (en) System and method for providing execute-in-place f
US11301297B2 (en) Processing system for dispatching tasks and memory access method thereof
US8751724B2 (en) Dynamic memory reconfiguration to delay performance overhead
US8566536B1 (en) Direct access inter-process shared memory
JPWO2010024071A1 (ja) キャッシュメモリ、そのシステム、その利用方法及びその利用プログラム
US20120124339A1 (en) Processor core selection based at least in part upon at least one inter-dependency
JP2019523480A (ja) Nandストレージデバイスのためのプリエンプティブ圧縮解除スケジューリング
US9921759B2 (en) Multithreaded memory manager to de-allocate memory objects using private freelists
KR102063281B1 (ko) 파일에 접근하기 위한 방법과 장치, 및 저장 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110801

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130513

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130917

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130924

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131025

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131121

R151 Written notification of patent or utility model registration

Ref document number: 5420972

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151