(57)【特許請求の範囲】
【請求項１】
メモリ領域の空き領域に対象情報を割り当てるメモリ領域割り当て制御装置であって、
前記空き領域に前記対象情報を割り当てる旨の要求を取得する割り当て要求取得手段と、
閾値としてのアドレスが格納される閾値アドレス格納手段と、
前記割り当て要求に基づいて、前記閾値アドレス格納手段に格納された閾値アドレスを超えない範囲の領域についてベストフィット方式により前記空き領域を検索し、該検索した領域に該空き領域がなければ該閾値アドレス以降の領域をファーストフィット方式で検索する空き領域検索手段と、
前記空き領域検索手段により検索された前記空き領域に前記対象情報を割り当てる割り当て手段と、
前記割り当て手段により割り当てられた前記対象情報の割り当て後の領域の最終アドレスを前記閾値アドレスとして前記閾値アドレス格納手段に設定する閾値アドレス設定手段と、
を備えることを特徴とするメモリ領域割り当て制御装置。
【請求項２】
前記メモリ領域割り当て制御装置は、さらに、
前記割り当て要求取得手段により取得した前記割り当て要求が前記メモリの一端側へ前記対象情報を格納する旨の要求である第１の割り当て要求であるか、または他端側に該対象情報を格納する旨の要求である第２の割り当て要求であるかを判定する検索方向判定手段
を備えることを特徴とする請求項１に記載のメモリ領域割り当て制御装置。
【請求項３】
前記閾値アドレス設定手段は、前記割り当て手段により割り当てられた前記対象情報の割り当て後の領域の最終アドレスが前記閾値アドレスを越えている場合、前記最終アドレスを閾値アドレスとして前記閾値アドレス格納手段に格納する
ことを特徴とする請求項１に記載のメモリ領域割り当て制御装置。
【請求項４】
メモリ領域の空き領域に対象情報を割り当てるメモリ管理処理を、コンピュータに実行させるメモリ領域割り当て制御プログラムであって、
前記空き領域に前記対象情報を割り当てる旨の要求を取得する割り当て要求取得処理と、
前記割り当て要求に基づいて、閾値としての所定のアドレスである閾値アドレスを超えない範囲の領域についてベストフィット方式により前記空き領域を検索し、該検索した領域に該空き領域がなければ該閾値アドレス以降の領域をファーストフィット方式で検索する空き領域検索処理と、
前記空き領域検索処理により検索された前記空き領域に前記対象情報を割り当てる割り当て処理と、
前記割り当て処理により割り当てられた前記対象情報の割り当て後の領域の最終アドレスを前記閾値アドレスとして設定する閾値アドレス設定処理と、
を、コンピュータに実行させるメモリ領域割り当て制御プログラム。
【請求項５】
メモリ領域の空き領域に対象情報を割り当てるメモリ領域割り当て制御方法であって、
前記空き領域に前記対象情報を割り当てる旨の要求を取得し、
前記割り当て要求に基づいて、閾値としての所定のアドレスである閾値アドレスを超えない範囲の領域についてベストフィット方式により前記空き領域を検索し、該検索した領域に該空き領域がなければ該閾値アドレス以降の領域をファーストフィット方式で検索し、
前記検索された前記空き領域に前記対象情報を割り当て、
前記割り当てられた前記対象情報の割り当て後の領域の最終アドレスを前記閾値アドレスとして設定する、
ことを特徴とするメモリ領域割り当て制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムにおけるメモリの領域割り当て方式に関する。
【背景技術】
【０００２】
ＯＳ（オペレーションシステム）やアプリケーションプログラム、割り込み（外部割り込み、例外割り込み、命令割り込み）等からの要求に応じて、データやプログラム等をメモリ空間の空き領域に割り当てる方法（領域割り当て方式）として、最初に割り当て可能なメモリ空間が見つかればそのメモリ空間を割り当てるファーストフィット方式、及び全ての空き領域を調べて必要なメモリに最適な空き領域を割り当てるベストフィット方式がよく知られている。
【０００３】
例えば、特許文献１では、内部メモリの空き領域の断片化を最小に抑えてメモリ管理の効率化を図るために、データ領域を２極に分化して領域の割り当てを行っている。その際の手法として、ベストフィットモードを用いる方法と、ファーストフィットモードを用いる方法が開示されている。
【０００４】
図９は、ベストフィット方式を説明するための図である。同図は、使用領域１００ｂ，１００ｄ，１００ｆと空き領域１００ａ，１００ｃ，１００ｅとが混在するメモリ配置の概念図である。ベストフィット方式とは、要求サイズに最も近い空き領域を割り当てる方式のことである。要求サイズとは、上述の要求に応じて、空き領域に割り当てられるデータやプログラム等のサイズ（大きさ）のことである。
【０００５】
同図では、メモリ１００に対して、割り当て対象のデータ１０１を割り当てる例を示している。メモリ１００の下方から上方に向かって検索を行う。全ての領域を検索後、空き領域１００ａ，１００ｃ，１００ｅが見つかる。そのうち、割り当て対象のデータ１０１を格納できるサイズの十分な空き領域のうち、もっとも小さい空き領域１００ｃにデータ１００が割り当てられる。
【０００６】
この方式を用いることにより、領域の分断化（フラグメンテーション）を抑止し、領域を効率良く割り当てることができる。
図１０は、ファーストフィット方式を説明する図である。同図は、使用領域１００ｂ，１００ｄ，１００ｆと空き領域１００ａ，１００ｃ，１００ｅとが混在するメモリ配置の概念図である。ファーストフィット方式とは、アドレス順に並んだ空き領域の中で最初に要求長（要求サイズ）を満たす領域を割り当てる方式である。
【０００７】
同図では、メモリ１００に対して、割り当て対象のデータ１０１を割り当てる例を示している。メモリ１００の下方から上方に向かって検索を行う。最初に見つかった、割り当て対象のデータ１０１を格納できるサイズの十分な空き領域１００ａに、データ１００が割り当てられる。
【０００８】
この方式は、検索スピード重視の割り当て方式である。このファーストフィット方式は、検索開始方向に近い空き領域を割り当てる特性を有する。したがって、検索方向を低／高両方向から行える仕組みを備えることで、目的に応じて使用領域を分けることができ、領域破壊を防止することができる。
【特許文献１】特開平５−３２４４３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述の通り、特許文献１では、使用する用途によって上位領域あるいは下位領域から割り当て可能な空き領域をファーストフィットモードまたはベストフィットモードにより検索している。
【００１０】
しかしながら、ファーストフィットモードの場合、必要なメモリ空間に比べて大きなメモリ空間が割り当てられることがあり、使用する領域の効率に問題があった。また、ベストフィットモードの場合、一旦空き領域を全て確認するので、時間が掛かるという問題があった。
【００１１】
さらに、メモリ空間において、プログラム等を格納するための領域とデータ等を格納するための領域が混在して配置されると、領域サイズ、寿命等による情報の性質の相違の観点から、メモリの使用効率が低下する問題があった。特許文献１では、２極に分化して領域を割り当てているが、空き領域が歯抜け状に存在する問題があった。
【００１２】
このように、従来技術には、メリット／デメリットが相反しており、両方のメリットを生かした割り当て方法が無かった。
そこで、上記課題に鑑み、本発明では、要求の対象となる対象情報に空き領域を効率良く割り当てることを目的とする。さらに、本発明では、目的に応じて使用領域を分けることを目的とする。
【課題を解決するための手段】
【００１３】
本発明にかかる、メモリ領域の空き領域に対象情報を割り当てるメモリ領域割り当て制御装置は、前記空き領域に前記対象情報を割り当てる旨の要求を取得する割り当て要求取得手段と、閾値としてのアドレスが格納される閾値アドレス格納手段と、前記割り当て要求に基づいて、前記閾値アドレス格納手段に格納された閾値アドレスを超えない範囲の領域についてベストフィット方式により前記空き領域を検索し、該検索した領域に該空き領域がなければ該閾値アドレス以降の領域をファーストフィット方式で検索する空き領域検索手段と、前記空き領域検索手段により検索された前記空き領域に前記対象情報を割り当てる割り当て手段と、前記割り当て手段により割り当てられた前記対象情報の割り当て後の領域の最終アドレスを前記閾値アドレスとして前記閾値アドレス格納手段に設定する閾値アドレス設定手段と、を備えることを特徴とする。
【００１４】
このように構成することにより、効率よく要求の対象となっている情報を空き領域へ割り当てることができる。
前記メモリ領域割り当て制御装置は、さらに、前記割り当て要求取得手段により取得した前記割り当て要求が前記メモリの一端側へ前記対象情報を格納する旨の要求である第１の割り当て要求であるか、または他端側に該対象情報を格納する旨の要求である第２の割り当て要求であるかを判定する検索方向判定手段を備えることを特徴とする。
【００１５】
このように構成することにより、目的に応じて割当て箇所を分けることができる。
前記メモリ領域割り当て制御装置において、前記閾値アドレス設定手段は、前記割り当て手段により割り当てられた前記対象情報の割り当て後の領域の最終アドレスが前記閾値アドレスを越えている場合、前記最終アドレスを閾値アドレスとして前記閾値アドレス格納手段に格納することを特徴とする。
【００１６】
このように構成することにより、既に割り当てたことのある領域（現在割り当て済みの領域も含む）の最終アドレスを閾値アドレスとして設定することができる。
本発明にかかる、メモリ領域の空き領域に対象情報を割り当てるメモリ管理処理を、コンピュータに実行させるメモリ領域割り当て制御プログラムは、前記空き領域に前記対象情報を割り当てる旨の要求を取得する割り当て要求取得処理と、前記割り当て要求に基づいて、閾値としての所定のアドレスである閾値アドレスを超えない範囲の領域についてベストフィット方式により前記空き領域を検索し、該検索した領域に該空き領域がなければ該閾値アドレス以降の領域をファーストフィット方式で検索する空き領域検索処理と、前記空き領域検索処理により検索された前記空き領域に前記対象情報を割り当てる割り当て処理と、前記割り当て処理により割り当てられた前記対象情報の割り当て後の領域の最終アドレスを前記閾値アドレスとして設定する閾値アドレス設定処理と、を、コンピュータに実行させる。
【００１７】
このように構成することにより、効率よく要求の対象となっている情報を空き領域へ割り当てることができる。
本発明にかかる、メモリ領域の空き領域に対象情報を割り当てるメモリ領域割り当て制御方法は、前記空き領域に前記対象情報を割り当てる旨の要求を取得し、前記割り当て要求に基づいて、閾値としての所定のアドレスである閾値アドレスを超えない範囲の領域についてベストフィット方式により前記空き領域を検索し、該検索した領域に該空き領域がなければ該閾値アドレス以降の領域をファーストフィット方式で検索し、前記検索された前記空き領域に前記対象情報を割り当て、前記割り当てられた前記対象情報の割り当て後の領域の最終アドレスを前記閾値アドレスとして設定することを特徴とする。
【００１８】
このように構成することにより、効率よく要求の対象となっている情報を空き領域へ割り当てることができる。
【発明の効果】
【００１９】
本発明を用いることにより、領域を効率良く割り当てるとともに、目的に応じて割当て箇所を分けることで、データ破壊等の防止が可能となる。
【発明を実施するための最良の形態】
【００２０】
本発明の概要は次のようである。メモリ空間を必要とする用途に応じて、上位領域あるいは下位領域のいずれからメモリを割り当てるかを判断する。そして、その上位または下位領域から所定の領域（既に割り当てたことのある領域）までは、ベストフィットモードで割り当て可能な領域を探す。そして、その上位または下位領域からその領域までの間で割り当て可能な領域が見つからなければ、それ以降はファーストフィットモードに切り替えて割り当て可能な領域を検索する。
【００２１】
図１は、本発明にかかるメモリ領域割り当て制御装置の構成概念図を示す。メモリ領域割り当て制御装置１は、メモリ領域の空き領域に対象情報（例えば、プログラム、データ等）を割り当てる装置である。メモリ領域割り当て制御装置１は、割り当て要求取得手段２、検索方向判定手段３、空き領域検索手段４、割り当て手段８、閾値アドレス設定手段９、閾値アドレス格納手段１０から構成される。
【００２２】
割り当て要求取得手段２は、メモリの空き領域に対象情報を割り当てる旨の要求（割り当て要求）を取得する。閾値アドレス格納手段１０には、所定のアドレス（閾値アドレス）が格納される。
【００２３】
検索方向判定手段３は、割り当て要求取得手段２により取得した割り当て要求がメモリの一端側（例えば、高アドレス側）へ前記対象情報を格納する旨の要求（第１の割り当て要求）であるか、または他端側（例えば、低アドレス側）に対象情報を格納する旨の要求（第２の割り当て要求）であるかを判定する。
【００２４】
空き領域検索手段４は、割り当て要求に基づいて、閾値アドレスを超えない範囲の領域についてベストフィット方式により空き領域を検索し、その検索した範囲に該空き領域がなければ閾値アドレス以降の領域をファーストフィット方式で検索する。
【００２５】
空き領域検索手段４は、検索切り替え手段５、ベストフィット検索手段６、ファーストフィット検索手段７を備えている。ベストフィット検索手段６は、ベストフィット方式により空き領域を検索する。ファーストフィット検索手段７は、ファーストフィット方式により空き領域を検索する。検索切り替え手段５は、割り当て要求に基づいて、閾値アドレスを超えない範囲の領域についてベストフィット検索手段を駆動させ、この閾値アドレスを超えるとファーストフィット検索手段７を駆動させる。
【００２６】
また、空き領域検索手段４は、検索方向判定手段３により第１の割り当て要求であると判定された場合、例えば高アドレス側から低アドレス側へ向かって空き領域の検索を行う。また、空き領域検索手段４は、例えば、検索方向判定手段４により第２の割り当て要求であると判定された場合、例えば低アドレス側から高アドレス側へ向かって空き領域の検索を行う。
【００２７】
割り当て手段８は、空き領域検索手段４により検索された空き領域に対象情報を割り当てる。
閾値アドレス設定手段９は、割り当て手段８により割り当てられた対象情報の割り当て後の領域の最終アドレスが閾値アドレスを越えている場合、その最終アドレスを閾値アドレスとして閾値アドレス格納手段１０に格納する。
【００２８】
つまり、高アドレス側から低アドレス側へ向かって空き領域の検索がされて対象情報に領域が割り当てられた場合、閾値アドレス設定手段９は、その対象情報の割り当て後の領域の最低位アドレスが閾値アドレスよりも低アドレスである場合、その最低位アドレスを閾値アドレスとして閾値アドレス格納手段１０に格納する。
【００２９】
また、低アドレス側から高アドレス側へ向かって空き領域の検索がされて対象情報に領域が割り当てられた場合、閾値アドレス設定手段９は、その対象情報の割り当て後の領域の最高位アドレスが閾値アドレスよりも高アドレスである場合、その最高位アドレスを閾値アドレスとして閾値アドレス格納手段１０に格納する。
【００３０】
このように本発明によれば、空き領域を、低アドレス／高アドレスの両方から検索する仕組みを備え、低アドレス側から割り当てた場合の最も高いアドレスと、高アドレス側から割り当てた場合の最も低いアドレスを記憶する。
【００３１】
空き領域の検索時には、その記憶しているアドレスまでの範囲をベストフィット方式で検索し、それ以降をファーストフィット方式で検索（割り当て）を行うようにする。
図２は、本実施形態における領域割り当て方式を説明するためのメモリ配置の概念図である。本実施形態において、一例として、メモリ領域の低アドレス側寄りにはプログラムを格納し、メモリ領域の高アドレス側寄りにデータを格納することにする。
【００３２】
このように、メモリ空間において、プログラム等を格納するための領域とデータを格納するための領域を二極（高アドレス側と低アドレス側）に分化させるのは、サイズ、寿命等の性格が異なるメモリ領域の混在を回避するためである。
【００３３】
大きさの観点からは、それぞれ同程度の大きさによりメモリ領域の獲得が行われるので、メモリの解放、獲得を繰り返してもメモリの断片化は最小に抑えられている。また、寿命の観点から考えても、異なるメモリ領域の混在を許せば、寿命の短い方のメモリ領域は長い方のメモリ領域の間で解放、獲得を繰り返さなければならず、この観点からも二極化によりメモリの断片化を抑えられる。
【００３４】
また、このように、目的に応じて割り当て箇所を変えることで、領域破壊の防止が可能となる。例えば、高アドレス側にデータ領域、低アドレス側にプログラム領域を配置することで、データ領域への不当書き込みによるプログラム領域の破壊を防止できる。
【００３５】
それでは、同図について説明する。図２における記号は、次の内容を示す。
Ｈ：高アドレス側（Ｘ’ＦＦＦＦＦＦＦＦ’番地）
Ｌ：低アドレス側（Ｘ’００００００００’番地）
ＨＥ：高アドレスからの割り当て要求
ＬＥ：低アドレスからの割り当て要求
ＨＥ要求最低位アドレス：高アドレスから割り当てた最も低いアドレス（番地）
ＬＥ要求最高位アドレス：低アドレスから割り当てた最も高いアドレス（番地）
低アドレスからの割り当て要求（ＬＥ）を例に説明する。なお、空き領域に割り当てる対象となるプログラムを対象プログラムという。低アドレス側から空き領域を検索してその領域を対象プログラムに割り当てるという要求（ＬＥ）があると、低アドレス側（Ｌ）から高アドレス側（Ｈ）へ向かって検索する。
【００３６】
このとき、低アドレス側（Ｌ）からＬＥ要求最高位アドレスまでの範囲では、要求長に最も近い空き領域をその対象プログラムに割り当てる（ベストフィット）。これにより、分断化を抑止することができる。
【００３７】
その「ＬＥ要求最高位アドレス」を超えた（そこまでの範囲で要求長を満たす空き領域が存在しない）場合は、最初に要求長を満たす空き領域をその対象プログラムに割り当てる（ファーストフィット）。
【００３８】
これにより、低アドレス側から空き領域を検索してその領域を対象プログラムに割り当てるという要求を満たすことができる。さらに、低アドレスからの割り当て領域と、高アドレスからの割り当て領域の混在を抑止することができるので、領域破壊防止につながる。
【００３９】
次に、高アドレスからの割り当て要求（ＨＥ）を例に説明する。なお、空き領域に割り当てる対象となるデータを対象データという。高アドレス側から空き領域を検索して領域をその対象データに割り当てるという要求（ＨＥ）があると、高アドレス側（Ｈ）から低アドレス側（Ｌ）へ向かって検索する。
【００４０】
このとき、高アドレス側（Ｈ）から「ＨＥ要求最低位アドレス」までの範囲では、要求長に最も近い空き領域をその対象データに割り当てる（ベストフィット）。これにより、分断化を抑止することができる。
【００４１】
その「ＨＥ要求最低位アドレス」を超えた（そこまでの範囲で要求長を満たす空き領域が存在しない）場合は、最初に要求長を満たす空き領域をその対象データに割り当てる（ファーストフィット）。
【００４２】
これにより、高アドレス側から空き領域を検索してその領域をその対象データに割り当てるという要求を満たすことができる。さらに、高アドレスからの割り当て領域と、低アドレスからの割り当て領域の混在を抑止することができるので、領域破壊防止につながる。
【００４３】
次に、図３Ａ及び図３Ｂを用いて、ＨＥ要求最低位アドレス及びＬＥ要求最高位アドレスの設定について説明する。
図３Ａは、本実施形態における初期設定時のＬＥ要求最高位アドレスを示す。図３Ｂは、本実施形態における領域割り当て時のＬＥ要求最高位アドレスを示す。例えば、ＬＥ要求の場合、初期設定時では、ＬＥ要求最高位アドレスには、初期値としてメモリ領域の低アドレスが設定されている。図３Ａでは、ＬＥ要求最高位アドレスの初期値として「Ｘ’００００００００’」が格納されている。
【００４４】
それから、割り当て要求（ＬＥ）があり、その要求に対して空き領域を対象プログラムに割り当てた場合、その割り当てた領域の高アドレスＡ１とＬＥ要求最高位アドレスＡ２を比較する。その比較の結果、現在割り当てたアドレスＡ１の方が高アドレスとなった場合に、ＬＥ要求最高位アドレスをその割り当て領域の高アドレスＡ１で更新する。
【００４５】
なお、その比較の結果、現在割り当てたアドレスの方がＬＥ要求最高位アドレスより低アドレスの場合（歯抜け領域を割り当て）は、ＬＥ要求最高位アドレスは更新しない。
ＨＥ要求の場合は、この逆となる。つまり、ＨＥ要求の場合、初期設定時では、ＨＥ要求最低位アドレスには、初期値としてメモリ領域の高アドレスが設定されている。図２では、ＨＥ要求最低位アドレスの初期値として「Ｘ’ＦＦＦＦＦＦＦＦ’」が格納されている。
【００４６】
それから、割り当て要求（ＨＥ）があり、その要求に対して空き領域を対象データに割り当てた場合、割り当てた領域の低アドレスＡ１とＨＥ要求最低位アドレスＡ２を比較する。その比較の結果、現在割り当てたアドレスＡ１の方が低アドレスとなった場合に、ＨＥ要求最低位アドレスをその割り当て領域の低アドレスＡ１で更新する。
【００４７】
なお、その比較の結果、現在割り当てたアドレスの方がＨＥ要求最低位アドレスより高アドレスの場合（歯抜け領域を割り当て）は、ＨＥ要求最低位アドレスは更新しない。
このように、ＨＥ要求最低位アドレス及びＬＥ要求最高位アドレスは、領域割り当て時に変動する。
【００４８】
図４は、本実施形態における高アドレス側からの割り当て要求（ＨＥ）及び低アドレスからの割り当て要求（ＬＥ）の様子を示す。同図に示すように、ＨＥ要求の場合には、Ｈ側（高アドレス側）からＬ側（低アドレス側）に向かって、空き領域に対象データが割り当てられていく。このとき、ＨＥ要求最低位アドレスには、割り当て済み領域（過去に割り当てたことのある領域も含む）のうちの最低位のアドレスが格納される。
【００４９】
また、ＬＥ要求の場合には、Ｌ側（低アドレス側）からＨ側（高アドレス側）に向かって、空き領域に対象プログラムが割り当てられていく。このとき、ＬＥ要求最高位アドレスには、割り当て済み領域（過去に割り当てたことのある領域も含む）のうちの最高位のアドレスが格納される。
【００５０】
このように、ＨＥ要求最低位アドレスおよびＬＥ要求最高位アドレスは、領域割り当て時に割り当て済み領域が積み重ねられることに伴って、更新されていく。このため、ＨＥ要求最低位アドレスとＬＥ要求最高位アドレスが交差するまでは、ＨＥ要求最低位アドレスとＬＥ要求最高位アドレスとの間の領域は、空き領域となる。
【００５１】
図５は、本実施形態におけるＨＥ要求最低位アドレス及びＬＥ要求最高位アドレスの決定フローを示す。当該フローは、情報処理装置の制御部により実行される。当該制御部は、割り当て要求を受信すると、以下の処理を実行する。なお、ＨＥ要求最低位アドレスの初期値は、Ｘ’ＦＦＦＦＦＦＦＦ’とし、ＬＥ要求最高位アドレスの初期値は、Ｘ’００００００００’とする。
【００５２】
まず、割り当て要求がＨＥか否かが判断される（ステップ１。以下、ステップを「Ｓ」と称する）。割り当て要求がＨＥの場合（Ｓ１で「Ｙ」へ進む）、高アドレス側（Ｈ）から空き領域が検索される（Ｓ２）。Ｓ２の詳細な説明は後述する。
【００５３】
次に、Ｓ２で割り当てた領域の最低位アドレスを変数Ｘに格納する（Ｓ３）。ＨＥ要求最低位アドレスを変数Ｙに格納する（Ｓ４）。
次に、変数Ｘと変数Ｙを比較する（Ｓ５）。「Ｘ＜Ｙ」の場合（Ｓ５で「Ｙ」へ進む）、すなわち、割り当てた領域の最低位アドレスがＨＥ要求最低位アドレスを超えた場合、変数Ｘの値（割り当てた領域の最低位アドレス）をＨＥ要求最低位アドレスに格納する（Ｓ６）。
【００５４】
なお、「Ｘ≧Ｙ」（Ｓ５で「Ｎ」へ進む）の場合、すなわち、割り当てた領域の最低位アドレスがＨＥ要求最低位アドレスを超えない場合、特に処理はされない（ＨＥ要求最低位アドレスには、そのままの値が保持される）。
【００５５】
さて、Ｓ１で割り当て要求がＬＥの場合（Ｓ１で「Ｎ」へ進む）、低アドレスから空き領域が検索される（Ｓ７）。Ｓ７の詳細な説明は後述する。
次に、Ｓ７で割り当てた領域の最高位アドレスを変数Ｘに格納する（Ｓ８）。ＬＥ要求最高位アドレスを変数Ｙに格納する（Ｓ９）。
【００５６】
次に、変数Ｘと変数Ｙを比較する（Ｓ１０）。「Ｘ＞Ｙ」の場合（Ｓ１０で「Ｙ」へ進む）、すなわち、割り当てた領域の最高位アドレスがＬＥ要求最高位アドレスを超えた場合、変数Ｘの値（割り当てた領域の最高位アドレス）をＬＥ要求最高位アドレスに格納する（Ｓ１１）。
【００５７】
なお、「Ｘ≦Ｙ」（Ｓ１０で「Ｎ」へ進む）の場合、すなわち、割り当てた領域の最高位アドレスがＬＥ要求最高位アドレスを超えない場合、特に処理はされない（ＬＥ要求最低位アドレスには、そのままの値が保持される）。
【００５８】
このように、ＨＥ要求（高アドレスからの割り当て要求）の場合、それまでに割り当てた最低位アドレスのうちの最も低いアドレスがＨＥ要求最低位アドレスに格納される。また、ＬＥ要求（低アドレスからの割り当て要求）の場合、それまでに割り当てた最高位アドレスのうちの最も高いアドレスがＬＥ要求最高位アドレスに格納される。
【００５９】
図６は、本実施形態におけるメモリの空き領域を管理するための管理テーブルの一例を示す。管理テーブル３０は、空き領域毎に作成される。管理テーブル３０により、空き領域はアドレス順に管理され、管理情報として「空き領域アドレス」「空き領域サイズ」が保持されている。また、管理テーブル３０には、管理テーブル相互間を検索するために、昇順／降順、双方向のポインタが保持されている。
【００６０】
図６において、管理テーブル３０は、１番目、２番目、・・・、ｉ番目（不図示）、Ｎ番目のＮ個が存在する。管理テーブル３０（ｉ番目）には、「次管理テーブル」３１、「空き領域サイズ」３２、「空き領域アドレス」３３、「前管理テーブル」３４の管理情報を有している。
【００６１】
「次管理テーブル」３１には、次の管理テーブル３０（ｉ＋１番目）へのポインタが保持されている。「前管理テーブル」３４には前の管理テーブル３０（ｉ−１番目）へのポインタが保持されている。
【００６２】
「空き領域アドレス」３３には、メモリ上の空き領域のアドレスが保持されている。「空き領域サイズ」３２には、その空き領域のサイズが保持されている。
ターミナル２０には、１番目の管理テーブル３０へのポインタが格納されている。ターミナル２１には、Ｎ番目の管理テーブルへのポインタが格納されている。Ｎ番目の管理テーブル３０の「次管理テーブル」３１には、ターミナル２０へのポインタが格納されている。
【００６３】
なお、本実施形態では、空き領域の管理方式として、管理テーブル（いわゆる、メモリマップ方式）を用いたが、これに限定されず、例えば、リスト（チエイン）方式、ビットマップ方式等を用いてもよい。
【００６４】
図７は、本実施形態における割り当て要求を受けてから割り当てるまでのフローを示す。このフローは、図６の管理テーブル３０を順に読み込んでいき、管理テーブル単位でループ処理を行う。また、当該フローにおいて、割り当て要求はＨＥ要求／ＬＥ要求のいずれにも対応する共通のフローである。当該フローは、図５のＳ２及びＳ７で呼び出される。
【００６５】
なお、ＨＥ要求／ＬＥ要求の違いは、管理テーブルの検索方向がアドレス昇順か降順かの違いとなる。つまり、ＬＥ要求の場合、管理テーブル３０を１番目→２番目→・・・→Ｎ番目と検索する。ＬＥ要求の場合、管理テーブル３０をＮ番目→Ｎ−１番目→・・・→１番目と検索する。
【００６６】
なお、当該フローにおいて、割り当て要求により要求されているメモリの領域のサイズ（要求サイズ）をＲｓで表す。
以下では、図５のＳ７から呼び出された場合、すなわち、管理テーブル３０をＮ番目→Ｎ−１番目→・・・→１番目と順に検索する場合を説明する。
【００６７】
まず、変数Ｚにメモリの最大サイズ（Ｘ’ＦＦＦＦＦＦＦＦ’）で格納することにより、変数Ｘを初期化する（Ｓ２１）。変数Ｚは、ベストフィットサイズを設定するための変数である。
【００６８】
次に、全ての管理テーブル３０を検索したか否かが判断される（Ｓ２２）。ここで説明する例では、まず、１番目の管理テーブル３０を検索していることにする。そうすると、まだ、全ての管理テーブルを検索していないので（Ｓ２２で「Ｎ」へ進む）、Ｓ２３の処理へ進む。
【００６９】
次に、変数Ｚに格納されているサイズが要求サイズＲｓを満たすか否かが判断される（Ｓ２３）。変数Ｚには、現在、最大サイズ（Ｘ’ＦＦＦＦＦＦＦＦ’）が格納されているから、格納されているサイズが要求されているサイズを満たす（要求サイズＲｓ≦変数Ｚ）ので（Ｓ２３で「Ｙ」へ進む）、Ｓ２４へ進む。
【００７０】
次に、割り当てアドレスがＬＥ要求最高位アドレスを超えるか否かが判断される（Ｓ２４）。ここで、割り当てアドレスとは、ｉ番目の管理テーブル３０の「空き領域アドレス」を格納した変数（以下、変数Ｗで表す）のことであり、後述するＳ２６で格納される。１番目の管理テーブル３０の検索時においては、割り当てアドレスＷは、例えばＸ’００００００００’で初期化されている。
【００７１】
そうすると、割り当てアドレスＷがＬＥ要求最高位アドレスより低い（閾値としてのＬＥ要求最高位アドレスを超えていない）ので（Ｓ２４で「Ｎ」へ進む）、Ｓ２５へ進む。
次に、現在検索の対象となっている管理テーブル３０の「空き領域サイズ」３２に格納されているサイズＶが変数Ｚより小さいか否かが判断される（Ｓ２５）。空き領域サイズＶが変数Ｚより小さい場合（Ｖ＜Ｚ）（Ｓ２５で「Ｙ」へ進む）、その空き領域サイズＶを変数Ｚに格納する（Ｓ２６）。このとき、現在検索の対象となっている管理テーブル３０の「空き領域アドレス」３３を割り当てアドレスＷに格納する。
【００７２】
Ｓ２６の処理が完了した場合、または空き領域サイズＶが変数Ｚ以上の場合（Ｖ≧Ｚ）（Ｓ２５で「Ｎ」へ進む）、現在検索の対象となっている管理テーブル３０の「次管理テーブル」３１を参照して、２番目の管理テーブル３０のアドレスを求め（Ｓ２７）、その２番目の管理テーブル３０についてＳ２２〜Ｓ２７の処理を繰り返す。
【００７３】
そうして、例えば、ｉ番目（ｉ＜Ｎ）の管理テーブル３０が検索された場合、Ｓ２４において、割り当てアドレスＷが、ＬＥ要求最高位アドレスを超えてしまった場合（Ｓ２４で「Ｙ」へ進む）、このループ処理を抜けて、ＬＥ要求最高位アドレスの次のアドレスに対象プログラムを割り当てる（Ｓ２９）。
【００７４】
また、例えば、ｊ番目（ｊ＜Ｎ）の管理テーブル３０が検索された場合、Ｓ２３において、変数Ｚが要求サイズを満たさなくなった場合（要求サイズＲｓ＞変数Ｚ）（Ｓ２３で「Ｎ」へ進む）、ｊ番目の管理テーブル３０の「次管理テーブル」３１を参照して、ｊ＋１番目の管理テーブルアドレスを求め（Ｓ２７）、そのｊ＋１番目の管理テーブル３０について同様に検索を行う。なお、ｊ＋１番目以降の管理テーブルについてもＳ２３で「Ｎ」へ進むことになる。
【００７５】
そうして、全ての管理テーブル３０について検索が完了すると（Ｓ２２で「Ｙ」へ進む）、割り当て可能な空きがあるか否かが判断される（Ｓ２８）。割り当て可能な空きとは、Ｓ２６で変数Ｚに格納した空き領域のことであり、Ｓ２６の処理がなされていれば（Ｓ２８で「Ｙ」へ進む）、Ｓ２６で保持された割り当てアドレスＷに対象プログラムに割り当てる（Ｓ２９）。
【００７６】
また、Ｓ２６の処理がなされていなければ（Ｓ２８で「Ｙ」へ進む）、全ての管理テーブルを検索しても空き領域がなかったことになるので、割り当てることはできない（Ｓ３０）。
【００７７】
次に、図５のＳ２から呼び出された場合、すなわち、管理テーブル３０をＮ番目→Ｎ−１番目→・・・→１番目と順に検索する場合を説明する。
まず、変数Ｚにメモリの最大サイズ（Ｘ’ＦＦＦＦＦＦＦＦ’）で格納することにより、変数Ｘを初期化する（Ｓ２１）。Ｎ番目（１つめ）の管理テーブル３０を検索しているので（Ｓ２２で「Ｎ」へ進む）、Ｓ２３の処理へ進む。
【００７８】
次に、変数Ｚに格納されているサイズが要求サイズＲｓを満たすか否かが判断される（Ｓ２３）。変数Ｚには、現在、最大サイズ（Ｘ’ＦＦＦＦＦＦＦＦ’）が格納されているから、格納されているサイズが要求されているサイズを満たす（要求サイズＲｓ≦変数Ｚ）ので（Ｓ２３で「Ｙ」へ進む）、Ｓ２４へ進む。
【００７９】
次に、割り当てアドレスＷがＨＥ要求最低位アドレスを超えるか否かが判断される（Ｓ２４）。Ｎ番目（１つめ）の管理テーブル３０の検索時においては、割り当てアドレスＷは、例えばＸ’ＦＦＦＦＦＦＦＦ’で初期化されている。
【００８０】
そうすると、割り当てアドレスＷがＬＥ要求最高位アドレスより低い（閾値としてのＬＥ要求最高位アドレスを超えていない）ので（Ｓ２４で「Ｎ」へ進む）、Ｓ２５へ進む。
次に、現在検索の対象となっている管理テーブル３０の「空き領域サイズ」３２に格納されているサイズＶが変数Ｚより小さいか否かが判断される（Ｓ２５）。空き領域サイズＶが変数Ｚより小さい場合（Ｖ＜Ｚ）（Ｓ２５で「Ｙ」へ進む）、その空き領域サイズＶを変数Ｚに格納する（Ｓ２６）。このとき、現在検索の対象となっている管理テーブル３０の「空き領域アドレス」３３を割り当てアドレスＷに格納する。
【００８１】
Ｓ２６の処理が完了した場合、または空き領域サイズＶが変数Ｚ以上の場合（Ｖ≧Ｚ）（Ｓ２５で「Ｎ」へ進む）、現在検索の対象となっている管理テーブル３０の「次管理テーブル」３１を参照して、次（Ｎ−１番目）の管理テーブル３０のアドレスを求め（Ｓ２７）、そのＮ−１番目の管理テーブル３０についてＳ２２〜Ｓ２７の処理を繰り返す。
【００８２】
そうして、例えば、ｉ番目（ｉ＜Ｎ）の管理テーブル３０が検索された場合、Ｓ２４において、割り当てアドレスＷが、ＨＥ要求最低位アドレスを超えてしまった場合（Ｓ２４で「Ｙ」へ進む）、このループ処理を抜けて、ＨＥ要求最低位アドレスの次のアドレスに対象データを割り当てる（Ｓ２９）。
【００８３】
また、例えば、ｊ番目（ｊ＜Ｎ）の管理テーブル３０が検索された場合、Ｓ２３において、変数Ｚが要求サイズを満たさなくなった場合（要求サイズＲｓ＞変数Ｚ）（Ｓ２３で「Ｎ」へ進む）、ｊ番目の管理テーブル３０の「次管理テーブル」３１を参照して、ｊ−１番目の管理テーブルアドレスを求め（Ｓ２７）、そのｊ−１番目の管理テーブル３０について同様に検索を行う。なお、ｊ−１番目、・・、２番目、１番目の管理テーブルについてもＳ２３で「Ｎ」へ進むことになる。
【００８４】
そうして、全ての管理テーブル３０について検索が完了すると（Ｓ２２で「Ｙ」へ進む）、割り当て可能な空きがあるか否かが判断される（Ｓ２８）。割り当て可能な空きとは、Ｓ２６で変数Ｚに格納した空き領域のことであり、Ｓ２６の処理がなされていれば（Ｓ２８で「Ｙ」へ進む）、Ｓ２６で保持された割り当てアドレスＷに対象データに割り当てる（Ｓ２９）。
【００８５】
また、Ｓ２６の処理がなされていなければ（Ｓ２８で「Ｙ」へ進む）、全ての管理テーブルを検索しても空き領域がなかったことになるので、割り当てることはできない（Ｓ３０）。
【００８６】
このように、割り当てアドレスは、まだ、その閾値としてのＨＥ要求最低位アドレスまたはＬＥ要求最低位アドレスを超えない間（Ｓ２４で「Ｎ」へ進む）、ループ処理によりベストフィットモードで割当可能な領域を探す。そして、割り当てアドレスが、その閾値としてのＨＥ要求最低位アドレスまたはＬＥ要求最低位アドレスを超えると、ループ処理を抜けることにより、ファーストフィットモードに切り替えて検索する。
【００８７】
したがって、ＨＥ要求最低位アドレスがより高アドレスであるほど、またはＬＥ要求最低位アドレスがより低アドレスであるほどベストフィットモードの寄与率が低く、ファーストフィットモードの寄与率が高くなるので、ベストフィットモード単独の場合と比較して、相対的に領域割り当て時間が短縮することになる。このように、使用効率のみならず、割り当て時間の効率化も図ることができる。
【００８８】
なお、図４で説明したように、ＨＥ要求最低位アドレスとＬＥ要求最高位アドレスが交差するまでは、ＨＥ要求最低位アドレスとＬＥ要求最高位アドレスとの間の領域は空き領域となるが、この空き領域がなくなって、ＨＥ要求最低位アドレスとＬＥ要求最高位アドレスの番地の大きさが逆転することもあり得る。このようにＨＥ要求最低位アドレスとＬＥ要求最高位アドレスが交差した場合に、ベストフィットモードからファーストフィットモードへ切り替えるようにしてもよい。
【００８９】
図８は、本実施形態における情報処理システムが実行されるハードウェア環境の構成ブロック図である。同図において、情報処理システム４０は、ＣＰＵ（制御部）４２、リードオンリメモリ（ＲＯＭ）４３、ランダムアクセスメモリ（ＲＡＭ）４６、通信インターフェース（以下、インターフェースをＩ／Ｆという）４４、記憶装置４７、出力Ｉ／Ｆ４１、入力Ｉ／Ｆ４５、可搬型記憶媒体の読み取り装置４８、およびこれらの全てが接続されたバス４９、出力Ｉ／Ｆ４１に接続している出力装置５０、入力Ｉ／Ｆ４５に接続している入力装置５１によって構成されている。
【００９０】
記憶装置４７としてはハードディスク、磁気ディスクなど様々な形式の記憶装置を使用することができる。記憶装置４７またはＲＯＭ４３には、上記の実施形態で用いたメモリ領域割り当て制御プログラムが格納されている。
【００９１】
本実施形態にかかるプログラムは、プログラム提供者側からネットワーク４９、および通信Ｉ／Ｆ４４を介して、例えば記憶装置４７に格納してもよい。また、このプログラムは、市販され、流通している可搬型記憶媒体に格納され、読み取り装置４８にセットされて、ＣＰＵ４２によって実行してもよい。可搬型記憶媒体としてはＣＤ−ＲＯＭ、フレキシブルディスク、光ディスク、光磁気ディスク、ＩＣカードなど様々な形式の記憶媒体を使用することができ、このような記憶媒体に格納されたプログラムが読み取り装置４８によって読み取られる。
【００９２】
また、入力装置５１には、キーボード、マウス、または電子カメラ、マイク、スキャナ、センサ、タブレットなどを用いることが可能である。また、出力装置５０には、ディスプレイ、プリンタ、スピーカなどを用いることが可能である。また、ネットワーク４９は、インターネット、ＬＡＮ、ＷＡＮ、専用線、有線、無線等の通信網であってよい。
【００９３】
本実施形態によれば、領域の分断化を抑止することで、領域の有効利用ができる。さらに、目的に応じて割り当て箇所を変えることで、領域破壊の防止が可能となる。例えば、高アドレス側にデータ領域、低アドレス側にプログラム領域を配置することで、データ領域への不当書き込みによるプログラム領域の破壊を防止できる。
【００９４】
（付記１）
メモリ領域の空き領域に対象情報を割り当てるメモリ管理システムであって、
前記空き領域に前記対象情報を割り当てる旨の要求を取得する割り当て要求取得手段と、
閾値としてのアドレスが格納される閾値アドレス格納手段と、
前記割り当て要求に基づいて、前記閾値アドレス格納手段に格納された閾値アドレスを超えない範囲の領域についてベストフィット方式により前記空き領域を検索し、該検索した領域に該空き領域がなければ該閾値アドレス以降の領域をファーストフィット方式で検索する空き領域検索手段と、
前記空き領域検索手段により検索された前記空き領域に前記対象情報を割り当てる割り当て手段と、
前記割り当て手段により割り当てられた前記対象情報の割り当て後の領域の最終アドレスを前記閾値アドレスとして前記閾値アドレス格納手段に設定する閾値アドレス設定手段と、
を備えることを特徴とするメモリ領域割り当て制御装置。
【００９５】
（付記２）
前記メモリ領域割り当て制御装置は、さらに、
前記割り当て要求取得手段により取得した前記割り当て要求が前記メモリの一端側へ前記対象情報を格納する旨の要求である第１の割り当て要求であるか、または他端側に該対象情報を格納する旨の要求である第２の割り当て要求であるかを判定する検索方向判定手段
を備えることを特徴とする付記１に記載のメモリ領域割り当て制御装置。
【００９６】
（付記３）
前記空き領域検索手段は、
前記検索方向判定手段により前記第１の割り当て要求であると判定された場合、該一端から前記他端へ向かって前記検索を行い、
前記検索方向判定手段により前記第２の割り当て要求であると判定された場合、該他端から前記一端へ向かって前記検索を行う、
ことを特徴とする付記２に記載のメモリ領域割り当て制御装置。
【００９７】
（付記４）
前記空き領域検索手段は、
前記ベストフィット方式により前記空き領域を検索するベストフィット検索手段と、
前記ファーストフィット方式により前記空き領域を検索するファーストフィット検索手段と、
前記割り当て要求に基づいて、前記閾値アドレスを超えない範囲の領域について前記ベストフィット検索手段を駆動させ、該閾値アドレスを超えると前記ファーストフィット検索手段を駆動させる検索切り替え手段と、
を備えることを特徴とする付記１に記載のメモリ領域割り当て制御装置。
【００９８】
（付記５）
前記閾値アドレス設定手段は、前記割り当て手段により割り当てられた前記対象情報の割り当て後の領域の最終アドレスが前記閾値アドレスを越えている場合、前記最終アドレスを閾値アドレスとして前記閾値アドレス格納手段に格納する
ことを特徴とする付記１に記載のメモリ領域割り当て制御装置。
【００９９】
（付記６）
前記空き領域検索手段は、前記検索方向判定手段により前記第１の割り当て要求であると判定された場合、高アドレス側から低アドレス側へ向かって前記検索を行い、
前記閾値アドレス設定手段は、前記割り当て手段により割り当てられた前記対象情報の割り当て後の領域の最低位アドレスが前記閾値アドレスよりも低アドレスである場合、該最低位アドレスを閾値アドレスとして前記閾値アドレス格納手段に格納する
ことを特徴とする付記２に記載のメモリ領域割り当て制御装置。
【０１００】
（付記７）
前記空き領域検索手段は、前記検索方向判定手段により前記第２の割り当て要求であると判定された場合、低アドレス側から高アドレス側へ向かって前記検索を行い、
前記閾値アドレス設定手段は、前記割り当て手段により割り当てられた前記対象情報の割り当て後の領域の最高位アドレスが前記閾値アドレスよりも高アドレスである場合、該最高位アドレスを閾値アドレスとして前記閾値アドレス格納手段に格納する
ことを特徴とする付記２に記載のメモリ領域割り当て制御装置。
【０１０１】
（付記８）
メモリ領域の空き領域に対象情報を割り当てるメモリ管理処理を、コンピュータに実行させるメモリ領域割り当て制御プログラムであって、
前記空き領域に前記対象情報を割り当てる旨の要求を取得する割り当て要求取得処理と、
前記割り当て要求に基づいて、閾値としての所定のアドレスである閾値アドレスを超えない範囲の領域についてベストフィット方式により前記空き領域を検索し、該検索した領域に該空き領域がなければ該閾値アドレス以降の領域をファーストフィット方式で検索する空き領域検索処理と、
前記空き領域検索処理により検索された前記空き領域に前記対象情報を割り当てる割り当て処理と、
前記割り当て処理により割り当てられた前記対象情報の割り当て後の領域の最終アドレスを前記閾値アドレスとして設定する閾値アドレス設定処理と、
を、コンピュータに実行させるメモリ領域割り当て制御プログラム。
【０１０２】
（付記９）
前記メモリ領域割り当て制御装置は、さらに、
前記割り当て要求取得処理により取得した前記割り当て要求が前記メモリの一端側へ前記対象情報を格納する旨の要求である第１の割り当て要求であるか、または他端側に該対象情報を格納する旨の要求である第２の割り当て要求であるかを判定する検索方向判定処理
を、コンピュータに実行させる付記８に記載のメモリ領域割り当て制御プログラム。
【０１０３】
（付記１０）
前記空き領域検索処理は、
前記検索方向判定処理により前記第１の割り当て要求であると判定された場合、該一端から前記他端へ向かって前記検索を行い、
前記検索方向判定処理により前記第２の割り当て要求であると判定された場合、該他端から前記一端へ向かって前記検索を行う、
ことを特徴とする付記９に記載のメモリ領域割り当て制御プログラム。
【０１０４】
（付記１１）
前記空き領域検索処理は、
前記ベストフィット方式により前記空き領域を検索するベストフィット検索処理と、
前記ファーストフィット方式により前記空き領域を検索するファーストフィット検索処理と、
前記割り当て要求に基づいて、前記閾値アドレスを超えない範囲の領域について前記ベストフィット検索処理を実行させ、該閾値アドレスを超えると前記ファーストフィット検索処理を実行させる検索切り替え処理と、
を備えることを特徴とする付記８に記載のメモリ領域割り当て制御プログラム。
【０１０５】
（付記１２）
前記閾値アドレス設定処理は、前記割り当て処理により割り当てられた前記対象情報の割り当て後の領域の最終アドレスが前記閾値アドレスを越えている場合、前記最終アドレスを閾値アドレスとして設定する
ことを特徴とする付記８に記載のメモリ領域割り当て制御プログラム。
【０１０６】
（付記１３）
前記空き領域検索処理は、前記検索方向判定処理により前記第１の割り当て要求であると判定された場合、高アドレス側から低アドレス側へ向かって前記検索を行い、
前記閾値アドレス設定処理は、前記割り当て処理により割り当てられた前記対象情報の割り当て後の領域の最低位アドレスが前記閾値アドレスよりも低アドレスである場合、該最低位アドレスを閾値アドレスとして設定する
ことを特徴とする付記９に記載のメモリ領域割り当て制御プログラム。
【０１０７】
（付記１４）
前記空き領域検索処理は、前記検索方向判定処理により前記第２の割り当て要求であると判定された場合、低アドレス側から高アドレス側へ向かって前記検索を行い、
前記閾値アドレス設定処理は、前記割り当て処理により割り当てられた前記対象情報の割り当て後の領域の最高位アドレスが前記閾値アドレスよりも高アドレスである場合、該最高位アドレスを閾値アドレスとして設定する
ことを特徴とする付記９に記載のメモリ領域割り当て制御プログラム。
【０１０８】
（付記１５）
メモリ領域の空き領域に対象情報を割り当てるメモリ領域割り当て制御方法であって、
前記空き領域に前記対象情報を割り当てる旨の要求を取得し、
前記割り当て要求に基づいて、閾値としての所定のアドレスである閾値アドレスを超えない範囲の領域についてベストフィット方式により前記空き領域を検索し、該検索した領域に該空き領域がなければ該閾値アドレス以降の領域をファーストフィット方式で検索し、
前記検索された前記空き領域に前記対象情報を割り当て、
前記割り当てられた前記対象情報の割り当て後の領域の最終アドレスを前記閾値アドレスとして設定する、
ことを特徴とするメモリ領域割り当て制御方法。
【０１０９】
（付記１６）
前記メモリ領域割り当て制御方法は、さらに、
前記取得した前記割り当て要求が前記メモリの一端側へ前記対象情報を格納する旨の要求である第１の割り当て要求であるか、または他端側に該対象情報を格納する旨の要求である第２の割り当て要求であるかを判定する
ことを特徴とする付記１５に記載のメモリ領域割り当て制御方法。
【０１１０】
（付記１７）
前記空き領域の検索において、
前記第１の割り当て要求であると判定された場合、該一端から前記他端へ向かって前記検索を行い、
前記検第２の割り当て要求であると判定された場合、該他端から前記一端へ向かって前記検索を行う、
ことを特徴とする付記１６に記載のメモリ領域割り当て制御方法。
【０１１１】
（付記１８）
前記閾値アドレスを設定する場合、前記割り当てられた前記対象情報の割り当て後の領域の最終アドレスが前記閾値アドレスを越えている場合、前記最終アドレスを閾値アドレスとして設定する
ことを特徴とする付記１５に記載のメモリ領域割り当て制御方法。
【０１１２】
（付記１９）
前記空き領域を検索する場合、前記第１の割り当て要求であると判定されたとき、高アドレス側から低アドレス側へ向かって前記検索を行い、
前記割り当てられた前記対象情報の割り当て後の領域の最低位アドレスが前記閾値アドレスよりも低アドレスである場合、該最低位アドレスを閾値アドレスとして設定する
ことを特徴とする付記１６に記載のメモリ領域割り当て制御方法。
【０１１３】
（付記２０）
前記空き領域を検索する場合、前記第２の割り当て要求であると判定されたとき、低アドレス側から高アドレス側へ向かって前記検索を行い、
前記割り当てられた前記対象情報の割り当て後の領域の最高位アドレスが前記閾値アドレスよりも高アドレスである場合、該最高位アドレスを閾値アドレスとして設定する
ことを特徴とする付記１６に記載のメモリ領域割り当て制御方法。
【図面の簡単な説明】
【０１１４】
【図１】本発明にかかるメモリ領域割り当て制御装置の構成概念図を示す。
【図２】本実施形態における領域割り当て方式を説明するためのメモリ配置の概念図である。
【図３Ａ】本実施形態における初期設定時のＬＥ要求最高位アドレスを示す。
【図３Ｂ】本実施形態における領域割り当て時のＬＥ要求最高位アドレスを示す。
【図４】本実施形態における高アドレス側からの割り当て要求（ＨＥ）及び低アドレスからの割り当て要求（ＬＥ）の様子を示す。
【図５】本実施形態におけるＨＥ要求最低位アドレス及びＬＥ要求最高位アドレスの決定フローを示す。
【図６】本実施形態におけるメモリの空き領域を管理するための管理テーブルの一例を示す。
【図７】本実施形態における割り当て要求を受けてから割り当てるまでのフローを示す。
【図８】本実施形態における情報処理システムが実行されるハードウェア環境の構成ブロック図である。
【図９】ベストフィット方式を説明するための図である。
【図１０】ファーストフィット方式を説明する図である。
【符号の説明】
【０１１５】
１      メモリ領域割り当て制御装置
２      割り当て要求取得手段
３      検索方向判定手段
４      空き領域検索手段
５      検索切り替え手段
６      ベストフィット検索手段
７      ファーストフィット検索手段
８      割り当て手段
９      閾値アドレス設定手段
１０    閾値アドレス格納手段
【図１】
0004758794.tif 000002
【図３Ａ】
0004758794.tif 000003
【図５】
0004758794.tif 000004
【図６】
0004758794.tif 000005
【図７】
0004758794.tif 000006
【図８】
0004758794.tif 000007
【図２】
0004758794.tif 000008
【図３Ｂ】
0004758794.tif 000009
【図４】
0004758794.tif 000010
【図９】
0004758794.tif 000011
【図１０】
0004758794.tif 000012