(57)【特許請求の範囲】
【請求項１】
メモリプールを複数の可変長サブメモリプールに分割し、
タスクプログラムからのメモリ確保要求に対し、前記複数のサブメモリプールのいずれかに確保要求サイズ以上の大きさの空き領域がある場合に前記メモリ確保要求に応じてメモリ確保し、
前記タスクプログラムからの確保要求サイズ以上の空き領域が所定のサブメモリプールになく、該サブメモリプールから該確保要求サイズで払い出せなかった場合、別のサブメモリプールを検索するものであって、
前記検索の順番が前記確保要求サイズに応じて予め定められている
ことを特徴とするメモリプール管理方式。
【請求項２】
前記複数のサブメモリプールを前記確保要求サイズで分類することを特徴とする請求項１に記載のメモリプール管理方式。
【請求項３】
前記メモリプールがμＩＴＲＯＮ３．０のメモリプールであることを特徴とする請求項１または２に記載のメモリプール管理方式。
【請求項４】
請求項１〜３のうちのいずれか１項に記載のメモリプール管理方式を用いてメモリプールの管理を行うことを特徴とする装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はメモリプール管理方式に関する。
【０００２】
【従来の技術】
従来から様々な装置、システムの制御をソフトウェアプログラムで行う技術が広く普及している。このような制御を行う場合には、制御動作においてメモリに各種の情報を記憶し、それを利用しながら動作を行う。ところがメモリは容量が限られたものであるため、如何に効率よく利用するかが重要である。したがって、メモリプール管理方式もこの点を考慮したものであることが望ましい。
【０００３】
従来のメモリプール管理方式の一例は、たとえばμＩＴＲＯＮなどの標準仕様にも掲載されている。
【０００４】
従来から知られたメモリプールには、メモリプール毎に特定の確保要求サイズしか許さない固定長メモリプールと、確保要求サイズに制約のない可変長メモリプールがある。
【０００５】
【発明が解決しようとする課題】
しかし、このような従来のメモリプール管理方式には、次のような問題点があった。
【０００６】
すなわち、可変長メモリプールは、確保要求サイズに制約がない代わりに、解放サイズも一定でないため、再利用できる連続した領域と確保要求サイズが一致せず、空き領域の合計サイズが確保要求サイズを上回っているにもかかわらず確保できないといったフラグメントが発生するという問題がある。
【０００７】
一方、固定長メモリプールの場合は、フラグメントは発生しないが、メモリプールを確保サイズ毎に定義するため、特定確保サイズ対応のメモリプールに空きがなくなった場合、他のサイズ用のメモリプールがいくら空いていても、メモリ確保ができないという分割損が発生するという問題がある。
【０００８】
本発明は上記の点にかんがみてなされたもので、従来の可変長メモリプールや固定長メモリプールにおける問題点を解決したメモリプール管理方式を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明は上記目的を達成するために、メモリプールを複数のサブメモリプールに分割し、タスクプログラムからのメモリ確保要求に対し、前記複数のサブメモリプールのいずれかに確保要求サイズ以上の大きさの空き領域がある場合に前記メモリ確保要求に応じてメモリ確保することを特徴とする。
【００１０】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１１】
本発明は、メモリプールを複数のサブメモリプール（以下「サブプール」とも言う）に分割し、払出し要求サイズ毎に払出しサブプールの検索順序を定める。これにより、各サブメモリプールに払出しサイズのローカリティをもたせ、フラグメントの発生を低下させるとともに、いずれかのサブメモリプールに空きがあればそこからの払出しも可能にし分割損も発生しないメモリプールを提供するものである。
【００１２】
図１は、本発明によるメモリプール管理方式の一実施の形態の構成を示すブロック図である。
【００１３】
図１において本実施の形態のメモリプール管理方式は、メモリプールを複数のサブメモリプールに分割し、サブメモリプールからメモリを確保する「サブメモリプールからメモリ確保手段」１０４と、サブメモリプールにメモリを解放する「サブメモリプールにメモリ解放手段」１０６とを用いて、「メモリ確保手段」１０２と、「メモリ解放手段」１０３とを実現し、さらに、個々のサブプールへのメモリ解放をそれが属するメモリプールの待ち合わせタスクに通知する「メモリプール空き待ち制御手段」１０５と、メモリ確保のためのサブメモリプールの検索順序を制御する「サブメモリプール検索順序制御手段」１０１とを備えているという特徴を有している。
【００１４】
すなわち、本実施の形態のメモリプール管理方式は、タスクプログラムよりメモリの確保要求を受付ける「メモリ確保手段」１０２と、メモリ確保のためのサブメモリプールの検索順序を制御する「サブメモリプール検索順序制御手段」１０１と、サブメモリプールからメモリを確保する「サブメモリプールからメモリ確保手段」１０４と、確保要求サイズの空きがない場合にメモリプールに空きができるまでタスクを待ち合わせる「メモリプール空き待ち制御手段」１０５と、タスクプログラムのメモリの解放を受付ける「メモリ解放手段」１０３と、サブメモリプールにメモリを解放する「サブメモリプールにメモリ解放手段」１０６とから構成されている。
【００１５】
これらの手段はそれぞれ概略つぎのように動作する。
【００１６】
「メモリ確保手段」１０２は、タスクプログラムよりメモリの確保要求を受付け、「サブメモリプール検索順序制御手段」１０１でサブメモリプールの検索順序を求めて、その順にメモリ確保が成功するまで試みて確保する。また、どのサブメモリプールからも空きがなく確保できなかった場合は、「メモリプール空き待ち制御手段」１０５でメモリの空きを待つ。
【００１７】
「メモリ解放手段」１０３は、タスクプログラムよりメモリの解放要求を受付け、「サブメモリプールにメモリ解放手段」１０６でサブプールにメモリを解放し、メモリの解放を「メモリプール空き待ち制御手段」１０５に通知する。
【００１８】
「メモリプール空き待ち制御手段」１０５は、メモリプールの空き待ちするタスクを管理し、メモリ解放の通知を受けて待ちタスクを起床させる。
【００１９】
次に、本実施の形態の動作について説明する。
【００２０】
まず、本実施の形態の動作に関する環境（設定：コンフィグレーション）について図２、図３を参照して説明する。
【００２１】
図２は、図１に示した実施の形態におけるメモリプールの構造について示す図である。
【００２２】
また、図３は、図２に示したメモリプールのサブプールを検索する際に用いるテーブルの構造について示す図であり、メモリプールＡの場合について示す図である。
【００２３】
ここでは、図２に示すように、メモリプールＡ、メモリプールＢ、．．．とメモリプールがいくつか定義されており、メモリプールＡは、サブプールＡ−１、Ａ−２、Ａ−３、Ａ−４に分割されているとする。
【００２４】
それぞれのメモリプールについては、確保要求サイズによってサブプールの検索順序が、図３に示すように、検索順序制御テーブルに定義されている。すなわち、この検索順序制御テーブルには、確保要求サイズ毎のサブメモリプールの検索順序が登録されている。
【００２５】
図３に示すように、確保要求サイズは、０〜６４までは第１エントリ、６５〜１２８は第２エントリ、１２９〜５１２は第３エントリ、そして第４エントリは５１３以上と全てのサイズがテーブルのいずれかのエントリに対応するように設定されている。
【００２６】
メモリプールＡの場合（図３参照）、例えば、確保要求サイズが２５６のとき、第３エントリを参照し、１番目の検索サブプールは、Ａ−３であり、２番目の検索サブプールは、Ａ−４であり、５番目以降の検索サブプールはない。
【００２７】
また、その他、一般的なＯＳと同様、タスクは、タスク毎の制御表ＴＣＢ（Ｔａｓｋ  Ｃｏｎｔｒｏｌ  Ｂｌｏｃｋ）で制御されているものとする。
【００２８】
次に、この環境の下での本実施の形態の動作について、図１及びフローチャートを参照して詳細に説明する。
【００２９】
タスクプログラムからのメモリ確保要求時には、メモリプールＩＤ、確保要求サイズと共に、「メモリ確保手段」１０２を呼び出す。このときの「メモリ確保手段」１０２の動作のフローチャートを図５に示す。
【００３０】
まず、検索順序（Ｃｏｕｎｔ）を初期化（Ｃｏｕｎｔ←１）する（ステップ５０１）。
【００３１】
次に、「サブプール検索順序制御手段」１０１に当該メモリプールＩＤ（ここではメモリプールＡ）、確保要求サイズ（ここでは２５６）、現在の検索順序（ここではＣｏｕｎｔ＝１）を渡し、「サブプール検索順序制御手段」１０１ではこれに基づいて検索順序制御テーブル（図３参照）を参照して、検索するサブプールＩＤ＝Ａ−３を得る（ステップ５０２）。
【００３２】
次に、検索するサブプールＩＤ＝Ａ−３および確保要求サイズ（２５６）を渡して「サブプールからメモリ確保手段」１０４でメモリを確保する。このとき、もし、サブプールＡ−３に確保要求サイズ（２５６）分の空きエリアがなく、メモリ確保できなかった場合（ステップ５０５）、検索順序をカウントアップ（Ｃｏｕｎｔ←Ｃｏｕｎｔ＋１＝２）して（ステップ５０６）、再度、「サブプール検索順序制御手段」１０１で次の検索順序（Ｃｏｕｎｔ）＝２に対応するサブプールＩＤ＝Ａ−２を得る（ステップ５０２）。
【００３３】
同様に、検索するサブプールＩＤ＝Ａ−２として「サブプールからメモリ確保手段」１０４でメモリを確保し、もし、確保できたら、確保したアドレスを返却して終了する（ステップ５０７）。サブプールＡ−２に確保要求サイズ（２５６）分の空きエリアがなく、メモリ確保できなかった場合（ステップ５０５）、検索順序をカウントアップ（Ｃｏｕｎｔ←Ｃｏｕｎｔ＋１＝３）して（ステップ５０６）、「サブプール検索順序制御手段」１０１で次の検索サブプールがなくなるまで繰り返す。
【００３４】
最終的に現在は確保要求サイズ（２５６）分の空きエリアがなく、どのサブプールからもメモリ確保できなかった場合（ステップ５０５）、「メモリプール空き待ち制御手段」１０５に当該メモリプールＩＤ、確保要求サイズ（２５６）を指定してメモリプールの空きを待つ（ステップ５０８）。
【００３５】
これによって、本タスクは、メモリ空き待ち状態となり、メモリプールに空きが発生しそれを確保できたら「メモリプール空き待ち制御手段」１０５により起床させられる。起床したら、自タスクのＴＣＢに格納してある確保アドレスを返却して終了する（ステップ５０９）。
【００３６】
タスクプログラムからのメモリ解放時には、解放アドレスと共に、「メモリ解放手段」１０３を呼び出す。このときの「メモリ解放手段」１０３の動作のフローチャートを図６に示す。
【００３７】
まず、解放アドレスに対応するサブメモリプールに「サブメモリプールにメモリ解放手段」１０６でメモリを解放し、解放した結果そのサブメモリプールにできた最大空きメモリサイズを得る（ステップ６０１）。次に、当該サブメモリプールのＩＤと最大空きメモリサイズを「メモリプール空き待ち制御手段」１０５に通知して処理を終了する（ステップ６０２）。
【００３８】
次に、「メモリ確保手段」１０２から呼び出される「サブプール検索順序制御手段」１０１の動作を図７を参照しながら説明する。
【００３９】
まず、メモリプールＩＤ対応の検索順序制御テーブル（図３）を得る（ステップ７０１）。次に、確保要求サイズに対応するエントリを得る（ステップ７０２）。例えば、確保要求サイズが２５６なら、図３のテーブルでは、３番目のエントリとなる。
【００４０】
指定の検索順序がテーブルの検索順数の範囲なら（ステップ７０３）、対応するサブプールＩＤを返却する（ステップ７０４）。範囲外なら、該当サブプールなしを返却する（ステップ７０５）。
【００４１】
次に、「メモリプール空き待ち制御手段」１０５がメモリプールの空きを待つために「メモリ確保手段」１０２から呼び出された場合の動作を図８を参照しながら説明する。ここで、メモリプールＡの空き待ちキューの構造を図４に示す。
【００４２】
まず、当該タスクのＴＣＢを得る（ステップ８０１）。当該タスクのＴＣＢ（図４参照）に確保要求サイズを格納し（ステップ８０２）、休止させて当該メモリプールの空き待ちタスクキュー（図４参照）にキューイングする（ステップ８０３）。
【００４３】
なお、キューイングの方法は、ＦＩＦＯやタスクプライオリティ順などの方法があり、既知の方式を用いることでよく、本発明の本質ではない。
【００４４】
次に、「メモリプール空き待ち制御手段」１０５がメモリプールの空きを通知するために「メモリ解放手段」１０３から呼び出された場合の動作を図９を参照しながら説明する。
【００４５】
当該メモリプールの待ちキュー（図４参照）に空き待ちタスクがなければなにもしないで終わる（ステップ９０２）。
【００４６】
空き待ちタスクがある場合、先頭ＴＣＢを得る（ステップ９０３）。空きサイズから当該ＴＣＢの確保要求サイズが確保可能な場合（ステップ９０４）、これを確保要求サイズ分「サブプールからメモリ確保手段」１０４で確保し（ステップ９０５）、当該ＴＣＢをキューアウトして確保アドレスを格納し、当該タスクを起床する（ステップ９０６）。
【００４７】
さらに待ちタスクがあり（ステップ９０２）、残りの空きメモリがある場合（ステップ９０４）、同様にメモリを確保し、ＴＣＢをキューアウトして起床することを繰り返す。
【００４８】
ここで、本実施の形態では、他のサブプールの空き状況を考慮しないが、サブプール毎の最大空きサイズをテーブルに保有すれば、これを考慮することも可能である。この場合、待ちタスク（ＴＣＢ）の要求サイズが確保可能かサブプールの空きサイズと比較する処理（ステップ９０４）で、テーブルに保有している各サブプールの最大空きサイズと比較し、確保する。この場合のサブプールの検索にも「サブプール検索順序制御手段」１０１を活用することが望ましい。
【００４９】
次に、「サブプールからメモリ確保手段」１０４の動作を図１０を参照しながら説明する。
【００５０】
「サブプールからメモリ確保手段」１０４の動作は、図１０に示すように、サブメモリプールより確保要求サイズのメモリ確保をトライし（ステップ１００１）、確保アドレスを返却する（ステップ１００３）。プール内の管理は、従来の方式でよい。
【００５１】
次に、「サブメモリプールにメモリ解放手段」１０６の動作を図１１を参照しながら説明する。
【００５２】
「サブメモリプールにメモリ解放手段」１０６の動作は、図１１に示すように、対応するサブメモリプールにメモリを解放し（ステップ１１０１）、当該サブメモリプールＩＤと解放した結果当該サブメモリプールの最大の空きサイズを返却する（ステップ１１０２）。
【００５３】
以上説明したように、本実施の形態によればメモリプールを効率的に使用することができる。すなわち本実施の形態によれば、プール内のフラグメントの発生を低下させることができると同時に、プール間の分割損も発生しない。
【００５４】
これは、サブメモリプールに確保要求サイズ毎の検索順序を設けることでサブプール毎に確保サイズにローカリティがあり、サイズの差異によるフラグメントが発生しにくく、また、検索順位の高いサブメモリプールに空きがない場合は、別のサブプール（検索順位のより低いサブプール）を検索するため分割損も発生しないからである。
【００５５】
次に、本発明の他の実施の形態について図面を参照して詳細に説明する。
【００５６】
この実施の形態は、トロン協会のＯＳ標準仕様μＩＴＲＯＮ３．０に準拠したＯＳのメモリ管理機能を利用して実装するものである。
【００５７】
図１２は、本発明によるメモリプール管理方式の図１とは別の実施の形態の構成を示すブロック図である。
【００５８】
図１２を参照すると、本実施の形態は、図１に示した実施の形態の構成（図１参照）のうち、「サブメモリプールからメモリ確保手段」１０４と、「メモリプール空き待ち制御手段」１０５と、「サブメモリプールにメモリ解放手段」１０６とをそれぞれ、μＩＴＲＯＮ３．０に準拠したＯＳのメモリ管理機能である「メモリプールポーリング手段」１２０４と、「メモリプール待ち＆確保手段」１２０５と、「メモリプールにメモリ解放手段」１２０６とに置換えたものである。
【００５９】
これらは、μＩＴＲＯＮ３．０では、それぞれ、ｐｇｅｔ＿ｂｌｋ、ｇｅｔ＿ｂｌｋ、ｒｅｌ＿ｂｌｋという名称のシステムコールとして定義されている。
【００６０】
本実施の形態では、μＩＴＲＯＮ３．０のメモリプールを図１に示した実施の形態のサブプール（図２参照）に対応させ、メモリプール群を構成させる（図１３参照）。
【００６１】
本実施の形態のメモリプール管理方式では、このような構成で、メモリプール群からのメモリ確保要求に対して、当該メモリプール群に属するメモリプールを検索してメモリを確保する。
【００６２】
この場合の検索順序制御テーブルを図１４に示す。
【００６３】
図１４に示す検索順序制御テーブルが図３に示した検索順序制御テーブルと異なる点は、すべて検索していずれのメモリプールにもメモリが空いていなかった場合に、どのメモリプールで待つかを表す「待ちメモリプール」が追加されている点である。
【００６４】
次に、フローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
【００６５】
タスクプログラムからのメモリ確保要求時には、メモリプール群ＩＤ、確保要求サイズと共に、図１２に示す「メモリ確保手段」１２０２を呼び出す。このときの「メモリ確保手段」１２０２の動作のフローチャートを図１５に示す。
【００６６】
まず、検索順序（Ｃｏｕｎｔ）を初期化（Ｃｏｕｎｔ←１）する（ステップ１５０１）。
【００６７】
次に、「メモリプール検索順序制御手段」１２０１に当該メモリプール群ＩＤ（ここではメモリプール群Ａ）、確保要求サイズ（ここでは２５６）、現在の検索順序（ここではＣｏｕｎｔ＝１）を渡して、検索するメモリプールＩＤ＝Ａ−３を得る（ステップ１５０２）。
【００６８】
次に、検索するメモリプールＩＤ＝Ａ−３および確保要求サイズ（２５６）を渡して「メモリプールポーリング手段（ｐｇｅｔ＿ｂｌｋ）」１２０４でメモリを確保する。
【００６９】
もし、メモリプールＡ−３に確保要求サイズ（２５６）分の空きエリアがなく、メモリ確保できなかった場合（ステップ１５０５）、検索順序をカウントアップ（Ｃｏｕｎｔ←Ｃｏｕｎｔ＋１＝２）して（ステップ１５０６）、再度、「メモリプール検索順序制御手段」１２０１で次の検索順序（Ｃｏｕｎｔ）＝２に対応するメモリプールＩＤ＝Ａ−２を得る（ステップ１５０２）。
【００７０】
同様に、検索するメモリプールＩＤ＝Ａ−２として「メモリプールポーリング手段（ｐｇｅｔ＿ｂｌｋ）」１２０４でメモリを確保する。もし、確保できたら、確保したアドレスを返却して終了する（ステップ１５０７）。
【００７１】
メモリプールＡ−２に確保サイズ（２５６）分の空きエリアがなく、メモリ確保できなかった場合（ステップ１５０５）、検索順序をカウントアップ（Ｃｏｕｎｔ←Ｃｏｕｎｔ＋１＝３）して（ステップ１５０６）、「メモリプール検索順序制御手段」１２０１で次の検索メモリプールがなくなるまで繰り返す。
【００７２】
確保要求サイズ（２５６）分の空きエリアがなく、どのメモリプールからもメモリ確保できなかった場合（ステップ１５０５）、「メモリプール検索順序制御手段」１２０１で待ちメモリプールＩＤ＝Ａ−３を得て（ステップ１５０８）、「メモリプール待ち＆確保手段（ｇｅｔ＿ｂｌｋ）」１２０５により確保アドレスを返却する（ステップ１５０９）。
【００７３】
ｇｅｔ＿ｂｌｋは、μＩＴＲＯＮ３．０のメモリプールからのメモリ確保手段で、空きがない場合、空きができるまで待つ機能で、図１に示した実施の形態における「メモリプール空き待ち制御手段」１０５の空き待ちの代替機能である。
【００７４】
タスクプログラムからのメモリ解放時には、解放アドレスと共に、図１２に示す「メモリ解放手段」１２０３を呼び出す。
【００７５】
「メモリ解放手段」１２０３の動作（図１６に示す）は、解放アドレスに対応するメモリプールに「メモリプールにメモリ解放手段（ｒｅｌ＿ｂｌｋ）」１２０６でメモリを解放する（ステップ１６０１）。μＩＴＲＯＮ３．０のｒｅｌ＿ｂｌｋは、メモリプールにメモリ解放すると共に、当該プールに待ちタスクがあれば、これに通知する、図１に示した実施の形態における「メモリプール空き待ち制御手段」１０５の空き通知の代替機能である。
【００７６】
次に、「メモリ確保手段」１２０２から呼び出される「メモリプール検索順序制御手段」１２０１の動作を図１７を参照して説明する。
【００７７】
まず、メモリプール群ＩＤ対応の検索順序制御テーブル（図１４参照）を得る（ステップ１７０１）。次に、確保要求サイズに対応するエントリを得る（ステップ１７０２）。例えば、確保要求サイズが２５６なら、図１４のテーブルでは、３番目のエントリとなる。
【００７８】
次に、指定の検索順序が０すなわち待ちメモリプールの検索なら（ステップ１７０３）、当該エントリの待ちメモリプールＩＤを返却する（ステップ１７０６）。指定の検索順序がテーブルの検索順数の範囲なら（ステップ１７０４）、対応するメモリプールＩＤを返却する（ステップ１７０５）。範囲外なら、該当メモリプールなしを返却する（ステップ１７０７）。
【００７９】
【発明の効果】
以上説明したように、本発明によれば、従来の可変長メモリプールや固定長メモリプールにおける問題点を解決したメモリプール管理方式を提供することができる。
【００８０】
すなわち、本発明の効果は、メモリプールを効率的に使用できることにある。つまり、本発明によれば、プール内のフラグメントの発生を低下させることができると同時に、プール間の分割損も発生しないものである。
【００８１】
その理由は、サブメモリプールに確保要求サイズ毎の検索順序を設けることでサブプール毎に確保サイズにローカリティがあり、サイズの差異によるフラグメントが発生しにくく、また、検索順位の高いサブメモリプールに空きがない場合は、別のサブプール（検索順位のより低いサブプール）を検索するため分割損も発生しないからである。
【図面の簡単な説明】
【図１】本発明によるメモリプール管理方式の一実施の形態の構成を示すブロック図である。
【図２】図１に示した実施の形態におけるメモリプールの構造について示す図である。
【図３】図２に示したメモリプールのサブプールを検索する際に用いるテーブルの構造について示す図である。
【図４】図２に示したメモリプールＡの空き待ちキューの構造を示す図である。
【図５】図１に示した「メモリ確保手段」１０２の動作のフローチャートを示す図である。
【図６】図１に示した「メモリ解放手段」１０３の動作のフローチャートを示す図である。
【図７】図１に示した「サブプール検索順序制御手段」１０１の動作のフローチャートを示す図である。
【図８】図１に示した「メモリプール空き待ち制御手段」１０５がメモリプールの空きを待つために「メモリ確保手段」１０２から呼び出された場合の動作のフローチャートを示す図である。
【図９】図１に示した「メモリプール空き待ち制御手段」１０５がメモリプールの空きを通知するために「メモリ解放手段」１０３から呼び出された場合の動作のフローチャートを示す図である。
【図１０】図１に示した「サブプールからメモリ確保手段」１０４の動作のフローチャートを示す図である。
【図１１】図１に示した「サブメモリプールにメモリ解放手段」１０６の動作のフローチャートを示す図である。
【図１２】本発明によるメモリプール管理方式の図１とは別の実施の形態の構成を示すブロック図である。
【図１３】図１２に示した実施の形態におけるメモリプール群の構造について示す図である。
【図１４】図１３に示したメモリプール群のメモリプールを検索する際に用いるテーブルの構造について示す図である。
【図１５】図１２に示した「メモリ確保手段」１２０２の動作のフローチャートを示す図である。
【図１６】図１２に示した「メモリ解放手段」１２０３の動作のフローチャートを示す図である。
【図１７】図１２に示した「メモリ確保手段」１２０２から呼び出される、図１２に示した「メモリプール検索順序制御手段」１２０１の動作のフローチャートを示す図である。
【符号の説明】
１０１  サブメモリプール検索順序制御手段
１０２  メモリ確保手段
１０３  メモリ解放手段
１０４  サブメモリプールからメモリ確保手段
１０５  メモリプール空き待ち制御手段
１０６  サブメモリプールにメモリ解放手段
１２０１  メモリプール検索順序制御手段
１２０２  メモリ確保手段
１２０３  メモリ解放手段
１２０４  メモリプールポーリング手段
１２０５  メモリプール待ち＆確保手段
１２０６  メモリプールにメモリ解放手段
【図１】
0003832341.tif 000002
【図２】
0003832341.tif 000003
【図３】
0003832341.tif 000004
【図４】
0003832341.tif 000005
【図５】
0003832341.tif 000006
【図６】
0003832341.tif 000007
【図７】
0003832341.tif 000008
【図８】
0003832341.tif 000009
【図９】
0003832341.tif 000010
【図１０】
0003832341.tif 000011
【図１１】
0003832341.tif 000012
【図１２】
0003832341.tif 000013
【図１３】
0003832341.tif 000014
【図１４】
0003832341.tif 000015
【図１５】
0003832341.tif 000016
【図１６】
0003832341.tif 000017
【図１７】
0003832341.tif 000018