(57)【要約】【課題】可変長メモリ領域の状況に応じて動的で柔軟な固定長メモリ管理が実行される情報処理システムを提供する。【解決手段】可変長メモリ領域を管理する可変長メモリ管理部に、可変長メモリ領域を監視し、条件に合致したメモリ領域を検索する固定長ブロック検索部２０と、固定長ブロック検索部２０の検索条件を提供する固定長ブロック判定部２１と、固定長ブロック検索部２０にて発見したメモリ領域を固定長メモリ管理ブロックとして登録するとともに、削除条件に見合う登録済みの固定長メモリ管理ブロックを再び可変長メモリ領域へと還元する固定長管理ブロック更新部２３とを備える。【選択図】図２
2004145766.tif 000002
【特許請求の範囲】
【請求項１】
可変長のメモリ確保開放が可能な情報処理システムにおいて、可変長メモリ領域を管理する可変長メモリ管理部に、可変長メモリ領域を監視し、条件に合致したメモリ領域を検索する検索手段と、前記検索手段の検索条件を提供する判定手段と、前記検索手段にて発見したメモリ領域を固定長メモリ管理ブロックとして登録するとともに、前記検索手段の削除条件に見合う登録済みの固定長メモリ管理ブロックを再び可変長メモリ領域へと還元する更新手段と、を備えたことを特徴とする情報処理システム。
【請求項２】
前記検索手段は、検索条件を満たす可変長メモリ領域上のメモリ領域を同定することを特徴とする請求項１記載の情報処理システム。
【請求項３】
前記検索手段は、検索条件を満たす登録済みの固定長メモリ管理ブロックを同定し、前記更新手段は、前記削除条項に見合う前記同定した固定長メモリ管理ブロック全てを再び可変長メモリ領域へと還元することを特徴とする請求項１記載の情報処理システム。
【請求項４】
固定長メモリ管理ブロックを管理する固定長メモリ管理部を備え、前記更新手段は、前記同定された可変長メモリ領域上のメモリ領域を、新たな固定長メモリ領域として取り扱えるように前記固定長メモリ管理部に登録することを特徴とする請求項２または３記載の情報処理システム。
【請求項５】
前記判定手段は、固定長メモリ管理ブロックへと移行させる検索条件と、登録済みの固定長メモリ管理ブロックを再び可変長メモリ領域へと還元させる削除条件とを提供することを特徴とする請求項１乃至３記載の情報処理システム。
【請求項６】
前記検索条件に割り付けサイズを含めることを特徴とする請求項５記載の情報処理システム。
【請求項７】
前記検索条件定に同じ割り付けサイズの集積数を含めることを特徴とする請求項５記載の情報処理システム。
【請求項８】
前記削除条件にタイマーや情報処理フェーズ等の時間的トリガを含めることを特徴とする請求項５記載の情報処理システム。
【請求項９】
前記削除条件に固定長メモリ領域の利用率を含めることを特徴とする請求項５記載の情報処理システム。
【請求項１０】
固定長メモリ管理ブロックを管理する固定長メモリ管理部を備え、該固定長メモリ管理部に登録する際に、既存の固定長メモリ管理ブロックに追加登録することを特徴とする請求項５記載の情報処理システム。
【請求項１１】
固定長メモリ管理ブロックを管理する固定長メモリ管理部と、固定長メモリ管理テーブルとを備え、該固定長メモリ管理部に登録する際に、固定長メモリ領域を拡張するために固定長メモリ管理テーブルを更新することを特徴とする請求項５記載の情報処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、可変長のメモリ確保開放が可能な情報処理システムに関するものである。
【０００２】
【従来の技術】
従来から、特許文献１および特許文献２に示すように、データを確保および開放が可能なメモリ内のメモリ領域を管理する装置を内蔵した情報処理システムは公知である。
【０００３】
従来のメモリ内のメモリ領域の管理方法としては、大きく分けて可変長メモリ管理方法と固定長メモリ管理方法との２つがある。可変長メモリ管理方法は、任意のサイズの割付要求に対して、メモリリソースの提供を行う方法であり、固定長メモリ管理方法は、あらかじめ確保され、固定サイズに区画されたメモリ領域を提供する方法である。
【０００４】
【特許文献１】
特開２０００−１８７６１３号公報
【特許文献２】
特開平５−３３４１７４号公報
【０００５】
【発明が解決しようとする課題】
とろこが、従来の可変長メモリ管理方法は、柔軟にメモリ空間を利用できるメリットがある反面、割り付け／解放繰り返し行われることによる断片化という問題があった。一方、従来の固定長メモリ管理方法、断片化は無いが、管理台帳等のオーバーヘッドの問題、未使用ブロックによる空間効率の問題、あるいは対象とするシステムに依存したチューニング等のモディファイ作業が必要となるために汎用性や保守性に問題があることが考えられる。
【０００６】
これらの問題を解決するために、固定長メモリ管理方法において、固定サイズの単位ブロックを複数個集めて提供する可変的方法を取ることもあった。この方法は、固定長メモリ管理方法を可変的に取り扱うことにより固定長管理方法の短所を補い、短所であるメモリ空間効率の向上に繋がるが、固定長メモリ領域をシステムが固定的に持つことになってしまうために、根本的には可変長メモリ管理方法の柔軟性を活かせていないという問題があった。
【０００７】
【課題を解決するための手段】
本発明は、上記問題に鑑みてなされたものであり、可変長メモリ領域内で固定長管理方法に適した性質を持つ可変長メモリ領域上の部位を見つけ出し、その特定部位にある期間固定長メモリ管理方法を適用し、かつ、固定長管理に移行した領域の利用率を監視し、不必要なら再び可変長メモリ管理へと移行するようにしたものである。
【０００８】
具体的には、可変長のメモリ確保開放が可能な情報処理システムにおいて、可変長メモリ領域を管理する可変長メモリ管理部に、可変長メモリ領域を監視し、条件に合致したメモリ領域を検索する検索手段と、前記検索手段の検索条件を提供する判定手段と、前記検索手段にて発見したメモリ領域を固定長メモリ管理ブロックとして登録するとともに、前記検索手段の削除条件に見合う登録済みの固定長メモリ管理ブロックを再び可変長メモリ領域へと還元する更新手段と、を備えた情報処理システムとしたものである。
【０００９】
【発明の実施の形態】
以下、本発明の実施例について図面を用いて説明する。
【００１０】
図１は、本発明の情報処理システムを示す構成図であり、システム全体の制御を行うＣＰＵ１、外部装置とのデータ送受信を行う入出力Ｉ／Ｆ（ＳＩＦ）２、ＲＡＭ等のデータの確保開放が可能なメインメモリ３がシステムバス４に接続され、任意の情報処理を行うことができる。
【００１１】
図２は、ＣＰＵ１内の本発明で必要とする構成全体を示す構成図であり、図３乃至図９および図１１は図２の各構成の説明上必要とする部分のみを取り出した状態を示す構成図である。
【００１２】
図２および図３に示すように、情報処理システム上で実行されるアプリケーション（ＡＰＬ）１０がシステムリソースとしてのメモリ領域をメモリ管理部（ＭＭＭ）１１に要求し、メモリ管理部１１は要求サイズに見合う未使用のメモリ領域を見つけ出し、要求元に返すことを前提とする。ここでのアプリケーション１０は、ＯＳ層の上層を意味し、各アプリケーションモジュールが必要とするメモリサイズを通知し、メモリ管理部１１では割り当てたメモリ領域の先頭アドレスを要求元である各アプリケーションモジュールに返信することを前提とする。メモリ管理部１１は、固定長メモリ領域を管理する固定長メモリ管理部（ＰＭＭ）１２と、可変長メモリ領域を管理する可変長メモリ管理部（ＶＭＭ）１３とよりなる。
【００１３】
図２および図４に示すように、固定長メモリ管理部１２は、要求に対して固定長に区画されたメモリ領域を見つけるための固定長ブロック割り付け処理部（ＰＭＡ）１４と、固定長に区画したメモリ領域が枯渇あるいは不要になった場合に拡張あるいは削除を行う固定長ブロック拡張処理部（ＰＭＥ）１５とよりなる。
【００１４】
図２および図５に示すように、可変長メモリ管理部１３は、可変長メモリ領域から要求に見合う未使用領域を見つけるための可変長エリア割り付け処理部（ＶＭＡ）１６と、可変長メモリ領域の一部またはその全てを一定期間、固定長メモリ管理部１２に渡して管理をしてもらうための作業全般を行う可変長エリア固定長処理部（ＶＰＭ）１７とよりなる。
【００１５】
図２および図６に示すように、メモリ管理部１１がアプリケーション１０からメモリ割り付け要求を受けた場合の動作は、まず固定長ブロック割り付け処理部１４はメモリ割り付け要求に対し、要求サイズに見合うＳＺＤというサイズに区画されたＤｎというメモリ領域を特定する。それはエリア情報（ＡＩ）として固定長ブロック割り付け処理部１４に伝えられ、そのＤｎというメモリ領域から未だ使用されていないブロックを見つけ出し、要求元に返答する。このＤｎという区画済みメモリ領域は、固定長管理ブロックＣＢＮ（Ｎは整数）でまとめて管理されているものとする。同様に、複数の固定長管理ブロックＣＢ１〜ＣＢＮが存在するものとする。固定長管理ブロックＣＢ１〜ＣＢＮは、固定長ブロック拡張処理部１５により管理されており、既に提供済みの領域が枯渇したら固定長メモリ管理テーブル（ＰＭＴ）１８から得られるテーブル情報（ＴＩ）を参照しながら、拡張を行うものとする。一方、提供済みのメモリ領域が不要になった場合、その固定長管理ブロックは、回収され再び可変長メモリ領域へと還元される。
【００１６】
図６に基づき、本発明の動作を説明すると、メモリ管理部１１への要求サイズがＳＺＤであった場合、固定長メモリ管理ブロックからサイズがＳＺＤのフリー領域を見つけ出す。その際、該当するメモリ領域が見つかれば、そのメモリ領域の先頭アドレスを要求元に通知するだけで完了する。しかし、該当するメモリ領域が見つからず、かつ固定長メモリ管理テーブル１８上にあるサイズに該当した場合、メモリ領域を検索して固定長メモリ管理が拡張できるのであれば拡張し、該当するサイズのメモリ領域を配当する。また、固定長メモリ管理テーブル１８に該当するサイズが無い場合、もしくは固定長メモリ領域が拡張できるだけの固定長管理ブロックが検索できない場合、可変長メモリ領域から確保することを特徴とし、ことの固定長メモリ管理ブロックの何番目の領域を資料するかといった情報がエリア情報としてメモリ要求発生時に通知される。
【００１７】
図２および図７に示すように、可変長メモリ管理部１３では可変長エリア割り付け処理部１６が割り付け要求に対して未使用領域が管理されているフリーリスト（ＦＬＳ）１９から、要求サイズに見合うメモリ領域を探し出すものとする。
【００１８】
図２および図８に示すように、本発明では、可変長エリア固定長処理部１７が可変長メモリ領域内を探索して固定長ブロックとして取り扱ったり、取り扱うべきメモリ領域を同定することが特徴である。可変長エリア固定長処理部１７では、検索条件を満たすメモリ領域を検索する処理を固定長ブロック検索部（ＶＰＳ）２０で行い、その検索によりピックアアップしたメモリ領域を固定長メモリ管理ブロックとして登録して取り扱うことを可能とするための手続きを行う処理を固定長管理ブロック更新部（ＶＰＲ）２３で行う。反対に、固定長ブロック検索部（ＶＰＳ）で既に固定長メモリ管理ブロックとして登録済みのメモリ領域を削除条件により必要ないと判断した場合、その登録を削除し、再び可変長メモリ領域として還元する処理を固定長ブロック削除部（ＶＰＤ）２２で行う。なお、固定長ブロック判定部（ＶＰＪ）２１は、検索条件および削除条件を固定長ブロック検索部２０に発行する。
【００１９】
図２および図９に示すように、可変長エリア固定長処理部１７内では、固定長ブロック検索部２０が固定長ブロック判定部２１より固定長メモリ管理ブロックとして取り扱うメモリ領域を探すための検索条件を取得する。これに従い、固定長ブロック検索部２０は可変長メモリ領域を探索し、検索条件に見合うメモリ領域を同定する。同定されたメモリ領域は、そのサイズやロケーション等の固定長管理情報（ＰＩ）を固定長管理ブロック更新部２３に渡すことになる。
【００２０】
固定長管理ブロック更新部２３では、既に存在している固定長メモリ管理ブロックへの追加登録や、固定長メモリ管理テーブル１８の更新といった手続きを行う。こうして追加登録された固定長メモリ管理ブロックは、固定長ブロック判定部２１より提供される削除条件に掛けられて存在理由を無くすと、固定長ブロック削除部２２により元の可変長メモリ領域へと還元されることになる。なお、検索条件および削除条件に該当するメモリ領域が存在しない場合は、検索動作だけで終了する。
【００２１】
図１０は、可変長メモリ領域から固定長メモリ領域への処理を示すフローチャートである。まず、固定長ブロック検索部２０が固定長ブロック判定部２１より検索条件を取得して（Ｓｔｅｐ１）、可変長メモリ領域を検索し（Ｓｔｅｐ２）、検索条件に合致するか否かを判定する（Ｓｔｅｐ３）。合致する場合は、同定されたメモリ領域の固定長管理情報（ＰＩ）を固定長ブロック更新部２３に通知し（Ｓｔｅｐ４）、固定長メモリ管理テーブル１８の更新モードか否かを判定する（Ｓｔｅｐ５）。更新モードの場合は固定長メモリ管理テーブル１８の更新を行い（Ｓｔｅｐ６）、更新モードでない場合は固定長ブロック更新部２３が既成の固定長管理ブロックＣＢＮに追加を行う。
【００２２】
次に、可変長エリア固定長処理部１７において、例えば可変長メモリ領域内に同じサイズＳＺＺを持つ互いに隣接した幾つかのメモリ領域が存在する場合について図２および図１１を用いて説明する。
個々のブロックサイズやブロック同士の隣接環境が上述の固定長ブロック検索部２０での検索条件に合致した場合、その旨を固定長管理ブロック更新部２３に通達する。固定長管理ブロック更新部２３は、既成の固定メモリ長管理ブロックに新たに同定されたメモリ領域を登録する。従って、固定長ブロック削除部２２がこの登録を削除しない限り固定長メモリ管理ブロックとしてメモリ管理部１１で取り扱われることになる。
【００２３】
また、固定長管理ブロック更新部２３は、既成の固定長メモリ管理ブロックに追加登録するだけでなく、固定長メモリ管理テーブル１８自体を変更することも可能であるようにすることが好ましい。登録済み固定長メモリ管理ブロックの削除および固定長メモリ管理テーブル１８自体を元に戻すといった可逆的操作は、タイマーや特定プロセス終了時等の時間的きっかけを以って行うことも考えられる。
【００２４】
このように、本発明によれば、可変長メモリ領域を管理する可変長メモリ管理部に、可変長メモリ領域を監視し、条件に合致したメモリ領域を検索する固定長ブロック検索部２０と、固定長ブロック検索部２０の検索条件を提供する固定長ブロック判定部２１と、固定長ブロック検索部２０にて発見したメモリ領域を固定長メモリ管理ブロックとして登録するとともに、削除条件に見合う登録済みの固定長メモリ管理ブロックを再び可変長メモリ領域へと還元する固定長管理ブロック更新部２３とを備えることにより、特定の情報処理システムに依存していたチューニング等の作業を必要とせずに、可変長メモリ管理方法および固定長メモリ管理方法の両方の長所を活かしたメモリ領域の効率的有効利用を実現できるようになる。
【００２５】
また、検索条件を満たす可変長メモリ領域上のメモリ領域を同定することにより、同定した固定長メモリ管理ブロックを一括して処理することができるようになる。また、削除条項に見合う同定した固定長メモリ管理ブロック全てを再び可変長メモリ領域へと還元することができるようになる。なお、同定するタイミングは、いつでも良く、メモリ割り当て時、あるいはシステムで処理が少ない時にメモリ領域をスキャンするようすればよい。
【００２６】
また、固定長管理ブロック更新部２３は、同定された可変長メモリ領域上のメモリ領域を、新たな固定長メモリ領域として取り扱えるように固定長メモリ管理部１２に登録することにより、同一メモリ領域上で固定長メモリ管理と可変長メモリ管理を共存させることが可能となる。
【００２７】
また、固定長ブロック判定部２１は、固定長メモリ管理ブロックへと移行させる検索条件と、登録済みの固定長メモリ管理ブロックを再び可変長メモリ領域へと還元させる削除条件とを提供することにより、固定長メモリ管理ブロックとして採用する種々の条件を設定することができるようになる。例えば、検索条件や削除条件として同サイズのメモリブロックが隣接していることを前提とするような条件にすることも可能となる。
【００２８】
ここで、検索条件に割り付けサイズを含めるようにしてもよい。本実施例では、メモリ領域を端から検索していき、同サイズのメモリブロック同士を関連付けて管理するようにしている。このように「Ｎバイトが欲しい」とサイズをパラメートにすることにより、サイズ毎にまとめて管理でき、メモリ要求に素早く応答することができるようになる。また、検索条件定に同じ割り付けサイズの集積数を含めるようにしてもよい。すなわち、同じ割り付けサイズの集積数とは、Ｎ個以上同じサイズが連続して存在する場合を意味し、検索条件としてそれを加味することで、同一サイズのメモリブロックを検索する際に、隣接メモリブロックのサイズも考慮しながら検索条件に該当するかを判定するようにするようにしてもよい。これにより、物理的に固まって存在している領域が可変長メモリ領域に還元された場合、より大きいフリー領域を形成することができるようになる。
【００２９】
また、上述したように、削除条件にタイマーや情報処理フェーズ等の時間的トリガを含めるようにしてもよい。これにより、システムの情報処理フェーズに合わせてメモリ領域の管理を動的に変更することができるようになる。また、削除条件に固定長メモリ領域の利用率を含めるようにしてもよい。これにより、利用率が低い場合は、固定長メモリとしてメモリ領域を確保しておく必要が希薄であることを意味するために、早々と可変長メモリ領域に還元するような処理をするような制御が可能となる。
【００３０】
また、固定長メモリ管理部１２に登録する際に、既存の固定長メモリ管理ブロックに追加登録することにより、固定長メモリ管理では管理領域という空間的コストを固定的に覚悟する必要があるが、必要最低限の領域を追加していくことになり、無駄なメモリ領域を抑えることができるようになる。さらに、固定長メモリ管理部１２に登録する際に、固定長メモリ領域を拡張するために固定長メモリ管理テーブル１８を更新することによっても、固定長メモリ領域の拡張を効率良く（無駄無く）行うことができるようになる。
【００３１】
【発明の効果】
以上、説明したように本発明の情報処理システムによれば、可変長メモリ領域を管理する可変長メモリ管理部に、可変長メモリ領域を監視し、条件に合致したメモリ領域を検索する検索手段と、検索手段の検索条件を提供する判定手段と、検索手段にて発見したメモリ領域を固定長メモリ管理ブロックとして登録するとともに、検索手段の削除条件に見合う登録済みの固定長メモリ管理ブロックを再び可変長メモリ領域へと還元する更新手段と、を備えることにより、可変長メモリ領域の状況に応じて動的で柔軟な固定長メモリ管理が実行される情報処理システムを提供することができる。
【図面の簡単な説明】
【図１】本発明の情報処理システムを示す構成図である。
【図２】本発明の情報処理システム内の一部を示す構成図である。
【図３】本発明の情報処理システム内のメモリ管理部を示す構成図である。
【図４】本発明の情報処理システム内の固定長メモリ管理部を示す構成図である。
【図５】本発明の情報処理システム内の可変長メモリ管理部を示す構成図である。
【図６】本発明の情報処理システム内の固定長メモリ管理部を示す構成図である。
【図７】本発明の情報処理システム内の可変長メモリ管理部を示す構成図である。
【図８】本発明の情報処理システム内の可変長メモリ固定長処理部を示す構成図である。
【図９】本発明の情報処理システム内の可変長エリア固定長処理部を示す構成図である。
【図１０】本発明の情報処理システム内の可変エリア固定長処理部の動作を示すフローチャートである。
【図１１】本発明の情報処理システム内の固定長管理ブロック更新部を示す構成図である。
【符号の説明】
１：ＣＰＵ
２：入出力Ｉ／Ｆ（ＳＩＦ）
３：メインメモリ
４：システムバス
１０：アプリケーション（ＡＰＬ）
１１：メモリ管理部（ＭＭＭ）
１２：固定長メモリ管理部（ＰＭＭ）
１３：可変長メモリ管理部（ＶＭＭ）
１４：固定長ブロック割り付け処理部（ＰＭＡ）
１５：固定長ブロック拡張処理部（ＰＭＥ）
１６：可変長エリア割り付け処理部（ＶＭＡ）
１７：可変長エリア固定長処理部（ＶＰＭ）
１８：固定長メモリ管理テーブル
１９：フリーリスト（ＦＬＳ）
２０：固定長ブロック検索部（ＶＰＳ）
２１：固定長ブロック判定部（ＶＰＪ）
２２：固定長ブロック削除部（ＶＰＤ）
２３：固定長管理ブロック更新部（ＶＰＲ）
【図１】
2004145766.tif 000003
【図２】
2004145766.tif 000004
【図３】
2004145766.tif 000005
【図４】
2004145766.tif 000006
【図５】
2004145766.tif 000007
【図６】
2004145766.tif 000008
【図７】
2004145766.tif 000009
【図８】
2004145766.tif 000010
【図９】
2004145766.tif 000011
【図１０】
2004145766.tif 000012
【図１１】
2004145766.tif 000013