(57)【特許請求の範囲】
【請求項１】
複数のプログラムによって共有され、複数の区画に分割されている記憶領域を有し、前記プログラムの獲得要求に対して前記記憶領域の一部を割り当てる記憶領域管理システムにおいて、
ある１区画の記憶領域に対して前記プログラムより獲得要求が出されたとき、空きブロックのキューを検索する検索手段と、
前記検索手段で検索された空きブロックに前記プログラムが要求したサイズを満足する空きブロックサイズが存在するか判定する空ブロックサイズ判定手段と、
前記プログラムにより属性の指定がなされているときは前記空きブロックサイズ判定手段により要求サイズを満足すると判定された空きブロックの領域属性と要求された属性との一致判定を行う属性判定処理手段と、
前記空きブロックサイズ判定手段により要求サイズを満足すると判定されるとともに前記空きブロックの領域属性が前記プログラムにより指定がなされている属性と一致していると前記属性判定処理手段で判断されたとき当該空きブロックを割り当て対象として割り当てを行う割り当て手段と、
を備えたことを特徴とする記憶領域管理システム。
【請求項２】
請求項１記載の記憶領域管理システムにおいて、
前記プログラムの要求サイズを満足する空きブロックサイズであるときに、属性の指定がなされていないときは、その空きブロックの領域属性がいかなる属性であっても当該空きブロックを割り当ての対象として割り当てることを特徴とする記憶領域管理システム。
【請求項３】
請求項１記載の記憶領域管理システムにおいて、
前記区画の各々はある定まったサイズを有する頁を複数含んで構成され、少なくとも中間の頁は全体について使用中のブロックがない無属性であり、
前記属性判定処理手段は、
前記空きブロックサイズ判定手段により要求サイズを満足すると判定された空きブロックの最高アドレスを設定するアドレス設定手段と、
前記最高アドレスで設定された当該頁の領域属性が前記プログラムにより指定がなされている属性と一致するか判定する第１の属性判定手段と、
前記第１の属性判定手段で当該頁が前記プログラムにより指定がなされている属性と一致していると判断された場合に、前記最高アドレスからプログラムにより要求されたサイズ分だけ減算して判定対象最小アドレスを求める減算手段と、
前記第１の属性判定手段で属性が一致しないと判定したときは前記空きブロックの最高アドレスを次頁の最高アドレスに切り下げる判定対象最高アドレス変更手段とから構成され、
前記割り当て手段は、
前記減算手段により減算された判定対象最小アドレス部分が前記プログラムにより指定がなされている属性と一致することが第２の属性判定手段で判定された場合または、前記最高アドレスを前記判定対象最高アドレス変更手段によって次頁の最高アドレスに切り下げた時に当該アドレス部分が前記第１の属性判定手段でプログラムにより指定されている属性と一致し、前記減算手段で求められた判定対象最小アドレス部分がプログラムにより指定されている属性と一致していると前記第２の属性判定手段で判定されたとき該空きブロックを割り当ての対象とすることを特徴とする記憶領域管理システム。
【請求項４】
複数のプログラムによって共有、複数の区画に分割されている記憶領域を有し、前記プログラムの獲得要求に対して前記記憶領域の一部を割り当てるプログラムを記憶したコンピュータ読み取り可能な記憶媒体において、
コンピュータに、
ある１区画の記憶領域に対して前記プログラムより獲得要求が出されたとき、空きブロックのキューを検索する検索ステップと、
前記検索ステップで検索された空きブロックに前記プログラムが要求したサイズを満足する空きブロックサイズが存在するか判定する空ブロックサイズ判定ステップと、
前記プログラムにより属性の指定がなされているときは前記空きブロックサイズ判定ステップにより要求サイズを満足すると判定された空きブロックの領域属性と要求された属性との一致判定を行う属性判定処理ステップと、
前記空きブロックサイズ判定ステップにより要求サイズを満足すると判定されるとともに前記空きブロックの領域属性が前記プログラムにより指定がなされている属性と一致していると前記属性判定処理ステップで判断されたとき当該空きブロックを割り当て対象として割り当てを行う割り当てステップと、
を実行させるためのプログラムを備えたコンピュータ読み取り可能な記録媒体。
【請求項５】
請求項４記載の記録媒体において、
前記プログラムの要求サイズを満足する空きブロックサイズであるときに、属性の指定がなされていないときは、その空きブロックの領域属性がいかなる属性であっても当該空きブロックを割り当ての対象として割り当てることを特徴とする記録媒体。
【請求項６】
請求項４記載の記録媒体において、
前記区画の各々はある定まったサイズを有する頁を複数含んで構成され、少なくとも中間の頁は全体について使用中のブロックがない無属性であり、
前記属性判定処理ステップは、
前記空きブロックサイズ判定ステップにより要求サイズを満足すると判定された空きブロックの最高アドレスを設定するアドレス設定ステップと、
前記最高アドレスで設定された当該頁の領域属性が前記プログラムにより指定がなされている属性と一致するか判定する第１の属性判定ステップと、
前記第１の属性判定ステップで当該頁が前記プログラムにより指定がなされている属性と一致していると判断された場合に、前記最高アドレスからプログラムにより要求されたサイズ分だけ減算して判定対象最小アドレスを求める減算ステップと、
前記第１の属性判定ステップで属性が一致しないと判定したときは前記空きブロックの最高アドレスを次頁の最高アドレスに切り下げる判定対象最高アドレス変更ステップとから構成され、
前記割り当てステップは、
前記減算ステップにより減算された判定対象最小アドレス部分が前記プログラムにより指定がなされている属性と一致することが第２の属性判定ステップで判定された場合または、前記最高アドレスを前記判定対象最高アドレス変更ステップによって次頁の最高アドレスに切り下げた時に当該アドレス部分が前記第１の属性判定ステップでプログラムにより指定されている属性と一致し、前記減算ステップで求められた判定対象最小アドレス部分がプログラムにより指定されている属性と一致していると前記第２の属性判定ステップで判定されたとき該空きブロックを割り当ての対象とすることを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプログラムからの獲得要求に対して必要に応じて記憶領域の空いている一部を割り当てる記憶領域管理システムおよび記憶領域管理プログラムを記録した媒体に関する。
記憶領域管理システムにおいては、複数のプログラムによって共用され、複数の区画に分割されている記憶領域の一部を複数のプログラムからの獲得要求に対して必要に応じて割り当てている。
【０００２】
記憶領域の分割されている１区画においては、ある１属性に対する要求しか受けつけないようになっており、属性の異なる記憶領域の要求に対しては、異なる区画に対して獲得要求を行わなければならなかった。
処理用途が多様化する現在の計算機システムにおいて、システム毎に要求される属性の処理が変化し、要求される属性も増加する。このような要求属性の多様化に対応することができる記憶領域管理システムの開発が要望されている。
【０００３】
【従来の技術】
従来の記憶領域管理システムの記憶領域としては、例えば図８（Ａ）に示すようなものがある。
図８（Ａ）において、記憶領域１０１は複数の区画１０２により構成されている。すなわち、記憶領域１０１は、属性の違いにより複数の区画１０２に分割されている。属性はアドレスによって属性１〜属性ｎのように決定される。
【０００４】
区画１０２は、それぞれ属性を有し、ある１つの区画１０２に対しては、複数のプログラムからの同じ属性のみの区画１０２が獲得できる。すなわち、記憶領域１０１の分割された各区画１０２においては、ある属性に対する要求しか受け付けることができなかった。属性の異なる記憶領域１０１の獲得要求に対しては異なった区画１０２に対して獲得要求を行わねばならなかった。
【０００５】
図９に従来の空きブロックの割り当て処理を説明するフローチャートを示す。図９において、ステップＳ１０１では記憶領域１０１のある１区画１０２における空きブロックのキューを検索する。
すなわち、従来においては、複数のプログラムによって共用されるある１区画１０２の記憶領域１０１に対して、プログラムから記憶領域１０１の獲得要求が出ると、ある決まった１つの属性のみの獲得要求のみを認め、その属性の要求に対して、空きブロックのキューを検索する。
【０００６】
次に、ステップＳ１０２で１区画１０２における最後の空きブロックの割り当て処理が終了したか否かを判別し、処理が終了したときは、ステップＳ１０５に進み、処理が終了していないときは、ステップＳ１０３に進む。
ステップＳ１０３ではプログラムが要求する空きブロックの要求サイズを満足する空きブロックサイズが存在するか否かを判別する。要求サイズを満足する空きブロックが存在しないときは、ステップＳ１０１に戻って、次の空きブロックを検索し、要求サイズを満足する空きブロックサイズが存在するときは、ステップＳ１０４に進む。ステップＳ１０４では、要求サイズを満足する当該空きブロックを割り当ての対象として、ステップＳ１０１に戻る。
【０００７】
ステップＳ１０１で空きブロックのキューを検索し、ステップＳ１０２で最後の空きブロックの処理が終了したときは、ステップＳ１０５に進み、ステップＳ１０５で割り当ての対象となった空きブロックのうち、最もサイズの小さい空きブロックを割り当てる。
【０００８】
【発明が解決しようとする課題】
しかしながら、従来の記憶領域管理システムにあっては、記憶領域の分割された１区画においては、ある１属性に対する要求しか受け付けることができなかった。すなわち、属性の異なる記憶領域獲得要求に対しては、異なった区画に対して獲得要求を行わなければならない。したがって、新たな属性を追加しようとする際には、その度毎に必要に応じて区画を上記のように現状以上に細分化することによる区画サイズの決定を検討しなければならない。
【０００９】
すなわち、図８（Ｂ）に示すように、新たな属性を追加しようとすると、例えば、一つの区画１０２を２つに分割して、区画１０２ａはある属性を有し、区画１０２ｂは追加した新たな属性を有する記憶領域１０１とする。この場合には区画１０２を２分割したことによる区画１０２ａのサイズと区画１０２ｂのサイズを決定しなければならない。
【００１０】
しかしながら、処理用途が多様化する現在の計算機システムにおいては、システム毎に要求属性の種類も変化するであろうし、区画サイズの見積りの仕方によっては、ある区画に対して領域不足が集中する可能性もあるため、必要以上に区画を細分化することは記憶領域の管理の円滑化が困難となり、有効な記憶領域管理が行われないという問題が生じる。
【００１１】
本発明では、上記したような従来の問題点を解決するためになされたものであって、現状の記憶領域の区画数は維持させた状態で、記憶領域の１区画において、複数の属性の要求に対応することを可能とする記憶領域管理システムおよび記憶領域管理プログラムを記録した媒体を提供することを目的とする。
【００１２】
【課題を解決するための手段】
この目的を達成するために、本発明は、図１のように構成する。請求項１の発明は、複数のプログラムによって共有され、複数の区画に分割されている記憶領域を有し、前記プログラムの獲得要求に対して前記記憶領域の一部を割り当てる記憶領域管理システムにおいて、ある１区画の記憶領域に対して前記プログラムより獲得要求が出されたとき、空きブロックのキューを検索する検索手段１０Ａと、前記検索手段で検索された空きブロックに前記プログラムが要求したサイズを満足する空きブロックサイズが存在するか判定する空ブロックサイズ判定手段１０Ｂと、前記プログラムにより属性の指定がなされているときは前記空きブロックサイズ判定手段により要求サイズを満足すると判定された空きブロックの領域属性と要求された属性との一致判定を行う属性判定処理手段１０Ｃと、前記空きブロックサイズ判定手段により要求サイズを満足すると判定されるとともに前記空きブロックの領域属性が前記プログラムにより指定がなされている属性と一致していると前記属性判定処理手段で判断されたとき当該空きブロックを割り当て対象として割り当てを行う割り当て手段１０Ｄと、を備える。
【００１３】
請求項２の発明は、前記プログラムの要求サイズを満足する空きブロックサイズであるときに、属性の指定がなされていないときは、その空きブロックの領域属性がいかなる属性であっても当該空きブロックを割り当ての対象として割り当てるこ。請求項３の発明は、前記区画の各々が定まったサイズを有する頁を複数含んで構成され、少なくとも一つの頁は全体について使用中のブロックがない無属性であり、前記属性判定処理手段１０Ｃは、前記空きブロックサイズ判定手段により要求サイズを満足すると判定された空きブロックの最高アドレスを設定するアドレス設定手段１０Ｅと、前記最高アドレスで設定された当該ページの領域属性が前記プログラムにより指定がなされている属性と一致するか判定する第１の属性判定手段１０Ｆと、前記第１の属性判定手段で当該頁が前記プログラムにより指定がなされている属性と一致していると判断された場合に、判定対象アドレスを前記最高アドレスからプログラムにより要求されたサイズ分だけ減算する減算手段と、前記属性判定手段で属性が一致しないと判定したきは前記最高アドレスを前記プログラムが要求する要求サイズ分だけ切り下げる判定対象アドレス変更手段１０Ｇとから構成され、前記割当て手段は、
前記減算手段により減算された判定アドレス部分が前記プログラムにより指定がなされている属性と一致することが第２の属性判定手段で判定された場合または、前記アドレス変更手段によって前記プログラムが要求する要求サイズ分だけ切り下げた時に当該空きブロックを割当ての対象とすることを特徴とする記憶領域管理システム。
【００１４】
請求項４の発明は、複数のプログラムによって共有され、複数の区画に分割されている記憶領域を有し、前記プログラムの獲得要求に対して前記記憶領域の一部を割り当てるプログラムを記憶したコンピュータ読み取り可能な記憶媒体において、
コンピュータに、
ある１区画の記憶領域に対して前記プログラムより獲得要求が出されたとき、空きブロックのキューを検索する検索ステップと、前記検索ステップで検索された空きブロックに前記プログラムが要求したサイズを満足する空きブロックサイズが存在するか判定する空ブロックサイズ判定ステップと、前記プログラムにより属性の指定がなされているときは前記空きブロックサイズ判定ステップにより要求サイズを満足すると判定された空きブロックの領域属性と要求された属性との一致判定を行う属性判定処理ステップと、前記空きブロックサイズ判定手段により要求サイズを満足すると判定されるとともに前記空きブロックの領域属性が前記プログラムにより指定がなされている属性と一致していると前記属性判定処理ステップで判断されたとき当該空きブロックを割り当て対象として割り当てを行う割り当てステップと、を実行させるためのプログラムを備える。
【００１５】
請求項５の発明は、前記プログラムの要求サイズを満足する空きブロックサイズであるときに、属性の指定がなされていないときは、その空きブロックの領域属性がいかなる属性であっても当該空きブロックを割り当ての対象として割り当てる。請求項６の発明は、前記区画の各々は定まったサイズを持つ複数の頁を含んで構成され、少なくとも一つの頁は全体について使用中のブロックがない無属性であり、前記属性判定処理ステップは、空きブロックサイズ判定ステップにより要求サイズを満足すると判定された空きブロックの最高アドレスを設定するアドレス設定ステップと、前記最高アドレスで設定された当該ページの領域属性が前記プログラムにより指定がなされている属性と一致するか判定する第１の属性判定ステップと、前記第１の属性判定手段で当該頁が前記プログラムにより指定がなされている属性と一致していると判断された場合に判定対象アドレスを前記最高アドレスからプログラムにより要求されたサイズ分だけ減算する減算ステップと、前記属性判定ステップで双方の属性が一致しないと判定したきは前記最高アドレスを前記プログラムが要求する要求サイズ分切り下げる判定対象アドレス変更ステップとから構成され、
前記割当てステップは、
前記減算ステップにより減算された判定アドレス部分が前記プログラムにより指定がなされている属性と一致することが第２の属性判定手段で判定された場合または、前記アドレス変更ステップによって前記プログラムが要求する要求サイズ分だけ切り下げた時に対象としている空きブロックを割当てる。
【００１６】
このような構成を備えた本発明によれば、記憶領域の区画を更に細分化することなく、１つの区画において異なる複数属性の記憶領域の獲得要求を混在して受け付けることが可能となるので、区画が細分化した時と比較して、異なった様々な属性の要求に対しても柔軟な記憶領域管理を実現することができ、記憶領域を有効に使用することができる。
【００１７】
また、属性を意識しないプログラムに対しては、要求サイズを満足する空きブロックに対しては無条件に当該空きブロックを割り当て候補の対象としているので、無属性の空きブロックを選択して割り当てる時に比べ、フラグメンテーションを極力抑止しようとする効果があり、記憶領域の不足による領域の獲得失敗を減少することができる。
【００１８】
【発明の実施の形態】
図２は本発明の一実施形態を示すブロック図である。
図２において、１はＣＰＵであり、ＣＰＵ１には端末２、ディスク装置３および主記憶装置４が接続されている。ディスク装置３には、端末２から入力するデータが格納される。ディスク装置３内に格納されたデータは、主記憶装置４内の仮想記憶装置５に展開される。仮想記憶装置５内に展開されたデータは、仮想記憶装置５のアドレスを参照することで、端末２に表示される。
【００１９】
仮想記憶装置５は、例えばシステムプログラム格納領域６、利用者プログラム格納領域７、記憶領域管理プログラム格納領域８、記憶領域９などにより構成される。システムプログラム格納領域６にはシステムプログラムが格納される。システムプログラムは記憶領域９の１区画に対して領域獲得の要求を行う。このプログラムからの獲得要求に対して必要に応じて記憶領域９の一部が割り当てられる。
【００２０】
利用者プログラム格納領域８には複数のプログラムが格納され、このプログラムは記憶領域９の１区画に対して領域獲得の要求を行う。このプログラムからの獲得要求に対して必要に応じて記憶領域９の一部が割り当てられる。記憶領域管理プログラム格納領域８には記憶領域管理プログラム１０が格納されている。
記憶領域管理プログラム１０は、記憶領域９を必要とするプログラムが要求する複数の属性に応じて空きブロックを割り当てる処理を行う。このため、記憶領域管理プログラム１０は、検索手段としての検索部１０Ａ、空きブロックサイズ判定手段としての空きブロック測定部１０Ｂ、属性判定処理手段としての属性判定処理部１０Ｃおよび割り当て手段としての割り当て部１０Ｄを有する。
【００２１】
検索部１０Ａは、ある１区画の記憶領域に対して利用したプログラム格納領域７に格納されたプログラムやシステムプログラム格納領域６に格納されたプログラムより獲得要求が出されたとき、空きブロックのキューを検索する。
空きブロックサイズ判定部１０Ｂは、プログラムが要求したサイズを満足する空きブロックサイズが存在するか判定する。
【００２２】
属性判定処理部１０Ｃは、プログラムにより属性の指定がなされているときは空きブロックの領域属性が要求された属性に一致しているか判定処理する。
割り当て部１０Ｄは、空きブロックの領域属性がプログラムで要求されている属性と一致しているとき当該空きブロックを割り当て対象として割り当てる。
また、属性判定処理部１０Ｃは、アドレス設定手段としてのアドレス設定部１０Ｅ、第１の属性判定手段としての第１の属性判定部１０Ｆ、判定対象アドレス変更手段としての判定対象アドレス変更部１０Ｇ、減算手段としての減算部１０Ｈ、第２の属性判手段としての第２の属性判定手段としての第２の属性判定部１０Ｉを有する。
【００２３】
アドレス設定部１０Ｅは、プログラムが要求する空きブロックの最高アドレスを設定する。
第１の属性判定部１０Ｆは、最高アドレスで設定された当該ページの領域属性が要求された属性と一致するか判定する。
判定対象アドレス変更部１０Ｇは、一致しないときは判定対象アドレスをページ単位で切り下げる。
【００２４】
減算部１０Ｈは、判定対象アドレスを要求サイズ分だけ減算する。
第２の属性判定処理部１０Ｉは、減算されたアドレスが属するページの属性を要求された属性が一致するか判定する。
記憶領域９は、複数のプログラムによって共用される複数の区画に分割されている。
【００２５】
図３は記憶領域９の構成例を示した図である。
図３において、記憶領域９は、複数の区画１１によって構成され、各区画１１は、複数のページ１２により構成されている。すなわち、記憶領域９にはページ１２というある定まったサイズを持つ単位が設けられており、属性は記憶領域９に対してプログラムより獲得要求が出たとき、このページ単位で決定される。
【００２６】
従来においては、記憶領域の分割された１区画は、ある１属性に対する要求は受け付けることができなかったが、本実施形態の記憶領域９のページ１２を利用することによって複数の属性の要求に対応することができるようにしている。
図４は記憶領域９の一区画１１の管理を示す図である。
記憶領域９の一区画１１は、最初は１つの空きブロックによって管理されている。あるプログラムから記憶領域９の一区画１１に対して領域獲得の要求が出されたとき、要求サイズに応じて使用中ブロックが初めて構成される。記憶領域９の獲得および解消を繰り返すことにより、図４に示すような空きブロックと使用中ブロックとが混在するようになる。
【００２７】
この区画１１は、ページ１、ページ２、ページ３、ページ４、ページ５、ページ６により構成され、第１の使用中ブロック１３によって占められるページ１、ページ２は属性１に、第２の使用中ブロック１４によって占められているページ３は属性２に、第３の使用中ブロック１５によって占められているページ５、ページ６は属性３にそれぞれすでに属性が与えられている。この属性１〜３は、例えば記憶領域９のアドレスによって決められる。
【００２８】
ページ４の場合、１ページ全部に関し使用中ブロックが全くない場合には、そのページ４に対する属性は与えられておらず、無属性であり、どのような属性の要求に対しても割り当てることが可能である。第１の空きブロック１６は、属性１のページ２および属性２のページ３に存在する。第２の空きブロック１７は、属性２のページ３、無属性のページ４、属性３のページ５に存在している。第３の空きブロック１８は属性３のページ６に存在している。
【００２９】
図４に示すような記憶領域９の状態においてある区画１１の記憶領域９に対する獲得要求があった場合には、空きブロックのキューを検索して要求サイズを満足するブロックを見つけ出す。要求サイズを満足する空きブロックが見つかったら、その空きブロックが属する属性に関する判定を行う。
図５は属性の判定方法を説明する説明図である。
【００３０】
空きブロックに対する属性の判定は、第１段階として高アドレス側、第２段階として低アドレス側に対して行う。
図５（Ａ）〜（Ｄ）において、１９はプログラムが要求する領域の要求サイズを示す。２０は空きブロックを示し、この空きブロック２０は、例えば、ページ２１の一部、ページ２２の１ページ、およびページ２３の一部よりなる。２４，２５はページ境界を示す。空きブロック２０のサイズは、要求サイズ１９を満足している。第１段階では属性の判定は、空きブロック２０の高アドレス側から行い、図５（Ａ）に示すように、空きブロック２０の最高アドレス２６の属するページ２１の属性の判定を行う。プログラムが要求する属性と、当ページ２１の領域属性が一致するときは、第２段階として図５（Ｂ）に示すように、最高アドレス２６から要求サイズ１９分下げたところのアドレス２７が属するページ２２について属性の判定を行う。
【００３１】
ページ２２の領域属性がプログラムの要求する属性と一致したときは、この空きブロック２０を割り当ての対象とする。ページ２２の属性と要求属性が一致しないときは、空きブロック２０を割り当ての対象外として、他の空きブロックを検索する。
図５（Ａ）に示すように、ページ２１の領域属性を判定して、ページ２１の属性とプログラムの要求する属性が一致しないときは、図５（Ｃ）に示すように、対象とするアドレスを１ページ分下げたところのページ境界２４を最高アドレス２６とみなす。この最高アドレス２６の属するページは１ページであり、無属性であるから、属性を判定しない。
【００３２】
次に、第２段階として、図５（Ｄ）に示すように、最高アドレス２６から要求サイズ１９分下げたところのアドレス２７が属するページ２３の属性を判定する。
このページ２３の領域属性と要求属性が一致するときは、この空きブロック２０を割り当ての対象とする。ページ２３の領域属性と要求属性が一致しないときは、この空きブロック２０は割り当ての対象外として他の空きブロックを検索する。
【００３３】
次に、動作を説明する。
図６は空きブロックの割り当ての動作を説明するフローチャートである。
図６において、まず、ステップＳ１１でプログラムから新たな空きブロックの獲得要求が出された場合、まず、空きブロックのキューを検索する。
次に、ステップＳ１２で最後の空きブロックの処理が終了したか否かを判別し、処理を終了したときは、ステップＳ１６に進み、処理を終了していないときは、ステップＳ１３に進む。空きブロックを全て検索していない場合には、空きブロックのサイズの比較を行う。すなわち、ステップＳ１３でプログラムが要求する要求サイズを満足する空きブロックが存在するか否かを判別する。
【００３４】
要求サイズを満足する空きブロックがないときは、ステップＳ１１に戻って次の空きブロックを検索し、要求サイズを満足するサイズの空きブロックがあるときは、ステップＳ１４でプログラムによる属性の指定がなされているか否かを判別する。属性の指定がなされているときは、図７に示す属性の判定処理に進み、属性の指定がなされていないときはステップＳ１５に進む。
【００３５】
すなわち、属性の指定が行われている場合には、属性の判定処理を行い適切な属性を持つ空きブロックの割り当て判断処理を図７に示すように行った上で、空きブロックの割り当て対象になるか否かの判定を行うが、属性を意識しないプログラムに対しては、ステップＳ１５でこの時点で無条件に当該空きブロックを割り当て候補の対象とし、次の空きブロックの検索処理に戻る（Ｓ１１に戻る）。属性を意識しないプログラムに対して無条件に当該空きブロックを割り当て候補の対象とするのは、フラグメンテーションの発生をできる限り抑止しようとするものである。
【００３６】
ステップＳ１２で上記操作を最後の空きブロックまで行い、ステップＳ１６で割り当て候補の対象となった空きブロックの中で、最も小さな空きブロックを選び出し、この選び出された空きブロックを、要求したプログラムに対して割り当てる。
図７は属性の判定処理を説明するフローチャートである。
【００３７】
図６のステップＳ１４で属性の指定がなされている場合、図７に示す属性の判定処理を行い、当該空きブロックが割り当ての対象になるかを決定する。
属性の判定処理においては、まず、ステップＳ２１で空きブロックの最高アドレスを求める。例えば、図５（Ａ）に示すように、空きブロック２０の最高アドレス２６を求める。
【００３８】
次に、ステップＳ２２で当該ページの属性は要求された属性と一致するか判別する。
図５（Ａ）に示すように最高アドレス２６の属するページ２１の属性がプログラムの要求する属性と一致するか判定する。属性が一致した場合には、ステップＳ２４に進み、属性が一致しない場合にはステップＳ２３に進む。
【００３９】
ステップＳ２３では判定対象アドレスをページ単位に切り下げる。例えば、図５（Ｃ）に示すように、ページ２１とページ２２のページ境界２４を空きブロック２０の最高アドレス２６とみなす。最高アドレス２６が属するページ２２は１ページであり、無属性であるから、属性の判定をしない。
ステップＳ２４では判定対象アドレスを要求サイズ分だけ減算する。例えば、図５（Ｂ）に示すように、空きブロック２０の最高アドレス２６から要求サイズ１９を減算し、アドレス２７を求める。また、図５（Ｄ）に示すように、空きブロック２０の最高アドレスとみなしたアドレス２６から要求サイズ１９分だけ減算し、アドレス２７を求める。
【００４０】
ステップＳ２５では低アドレス側の属性の判定を行う。すなわち、当該ページの属性は要求された属性と一致するか判定する。例えば、図５（Ｂ）に示すように、要求サイズ１９分を減算したアドレス２７が属するページ２２の領域属性と要求された属性が一致するか判別する。また、図５（Ｄ）に示すように、要求サイズ１９分だけ減算したアドレス２７が有するページ２３の属性と要求された属性が一致するか判別する。
【００４１】
低アドレスが属するページの属性が要求されている属性と一致していたら、ステップＳ２６で当該空きブロックを割り当て候補の対象と認識し、図６に示すステップＳ１１に戻り次の空きブロックの検索を行う。要求されている属性と一致していない場合には、当該空きブロックは割り当て候補の対象外となり、図６に示すステップＳ１１に戻り次の空きブロックの検索を続ける。
【００４２】
本実施形態においては、現在の記憶領域９の区画数を維持した状態で記憶領域９の一つの区画１１において、複数の属性の要求に対応することができ、記憶領域９を有効に使用することができる。
また、属性が指定されないときは、無条件に当該空きブロックを割り当て対象とするため、無属性の空きブロックを選択して割り当てる場合に比べ、フラグメンテーションを抑止することができる。
【００４３】
【発明の効果】
以上説明してきたように、本発明によれば、記憶領域の区画を更に細分化することなく、１つの区画において異なる複数属性の記憶領域の獲得要求を混在して受け付けることができるため、区画が細分化した時と比較して、異なった様々な属性の要求に対しても柔軟な記憶領域管理を実現することができ、記憶領域を有効に使用することができる。
【００４４】
また、属性を意識しないプログラムに対しては、要求サイズを満足する空きブロックに対しては無条件に当該空きブロックを割り当て候補の対象としているので、無属性の空きブロックを選択して割り当てる時に比べ、フラグメンテーションを極力抑止しようとする効果があり、記憶領域の不足による領域の獲得失敗を減少することができる。
【図面の簡単な説明】
【図１】本発明の原理説明図
【図２】本発明の一実施形態を示すブロック図
【図３】記憶領域の構成例を示す図
【図４】１つの区画に対する管理を説明する説明図
【図５】属性の判定方法の説明図
【図６】空きブロックの割り当てを説明するフローチャート
【図７】属性の判定処理を説明するフローチャート
【図８】従来の記憶領域の構成図
【図９】従来の動作を説明するフローチャート
【符号の説明】
１：ＣＰＵ
２：端末
３：ディスク装置
４：主記憶装置
５：仮想記憶装置
６：システムプログラム格納領域
７：利用者プログラム格納領域
８：記憶領域管理プログラム格納領域
９：記憶領域
１０：記憶領域管理プログラム
１０Ａ：検索部（検索手段）
１０Ｂ：空きブロックサイズ判定部（空きブロックサイズ判定手段）
１０Ｃ：属性判定処理部（属性判定処理手段）
１０Ｄ：割り当て部（割り当て手段）
１０Ｅ：アドレス設定部（アドレス設定手段）
１０Ｆ：第１の属性判定部（第１の属性判定手段）
１０Ｇ：判定対象アドレス変更部（判定対象アドレス変更手段）
１０Ｈ：減算部（減算手段）
１０Ｉ：第２の属性判定部（愛２の属性判定手段）
１１：区画
１２，２１〜２３：ページ
１３〜１５：第１〜第３の使用中ブロック
１６〜１８：第１〜第３の空きブロック
１９：要求サイズ
２０：空きブロック
２４，２５：ページ境界
２６：最高アドレス
２７：アドレス
【図１】
0003980729.tif 000002
【図２】
0003980729.tif 000003
【図３】
0003980729.tif 000004
【図４】
0003980729.tif 000005
【図５】
0003980729.tif 000006
【図６】
0003980729.tif 000007
【図７】
0003980729.tif 000008
【図８】
0003980729.tif 000009
【図９】
0003980729.tif 000010