JPWO2010021085A1 - 記憶領域管理方法、記憶領域割付方法及びプログラム - Google Patents
記憶領域管理方法、記憶領域割付方法及びプログラム Download PDFInfo
- Publication number
- JPWO2010021085A1 JPWO2010021085A1 JP2010525569A JP2010525569A JPWO2010021085A1 JP WO2010021085 A1 JPWO2010021085 A1 JP WO2010021085A1 JP 2010525569 A JP2010525569 A JP 2010525569A JP 2010525569 A JP2010525569 A JP 2010525569A JP WO2010021085 A1 JPWO2010021085 A1 JP WO2010021085A1
- Authority
- JP
- Japan
- Prior art keywords
- allocation
- size
- storage area
- area
- main
- 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
Links
- 238000007726 management method Methods 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 title claims description 186
- 230000004044 response Effects 0.000 claims abstract description 4
- 238000005192 partition Methods 0.000 claims description 154
- 230000000717 retained effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 17
- 238000013500 data storage Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
図1Aに示すように、例えば外部記憶装置306の記憶領域の先頭には、マスターブートレコード195と区画の管理データを格納した区画管理テーブル195aが配置されている。更に図示しないディスクアロケータ等のユーティリティプログラムにより4つの区画1〜4(191,192,193,194)が割り付けられ、それぞれあるファイルシステムに割り当てられている。図1Aに区画番号3についての区画情報196が例示されているように、区画管理テーブル195aは、区画番号196a、開始位置196b、区画サイズ196cのエントリを含んでいる。区画番号196aには、区画を識別する区画番号が格納されており、図示の例では3である。開始位置には、区画の先頭アドレスの情報が格納されており、図示の例ではその内容は省略している。区画サイズ196cには、区画の割当単位領域の個数が格納されており、図示の例では52である。
本発明の一つの態様によれば、区画の割付サイズを取得し、割付サイズと、区画の割付単位のサイズから互いに異なる2のべき乗の和を算出し、区画を、該算出された互いに異なる2のべき乗のべき乗数毎に該2のべき乗と区画の割当単位のサイズの積からなる大きさの区域に区分し、記区分された区域毎に区画を管理する。
最初に、あらためて区画の定義を行う。本発明において「区画」とは、図1Aを参照して説明したように、予め割り当てられた領域であり、最初に割り当てられる領域である。本発明においては、区画は取得済みであることを前提とする。
「区域」とは、割り当てられた、あるいは割り付けられた領域である。区画は予め割り当てられた領域であるから、区域の1つであり、区域のうちの特定のものである。
区域を、2のべき乗と割当単位領域の積のサイズを有する複数の区域に分割することを「多層区分」という。また、多層区分された区域を「多層区域」という。なお、以下の説明においては、割当単位領域についての言及は省略し、領域のサイズについて、単に2のn乗のサイズ等の表記を用いる場合がある。
「区分」とは、領域を割り当てる、あるいは領域を分割して割り当てることであり、「割付」ということもある。このときの領域の分割サイズは、互いに異なる2のべき乗サイズで規定されるが、領域の先頭からサイズの大きさの順に割り付けられる。領域は、区域または区画である。特に区画を区分することを「主区分」という。また、主区分により割り付けられた区域を「主区域」という。主区分は、本発明においては、区画に対する初期割付である。
区分または主区分による区域または主区域の割付サイズの2のべき乗数を「区分レベル」という。図2に示すツリー構造体580を援用して説明すると、例えばノード441が対応するレベル3のエクステントのサイズは4であるから、その区分レベルは2である。
また、本発明の別の態様によれば、割付要求サイズを含む区域の割付要求を受付け、割付要求サイズを包含する2のべき乗と区画の割当単位のサイズの積の最小のサイズの区域を取得し、更に割付要求サイズと、区画の割付単位のサイズから互いに異なる2のべき乗の和を算出し、前記割付要求を受け付けた区域を、該算出された互いに異なる2のべき乗のべき乗数毎に該2のべき乗と前記区画の割当単位のサイズの積からなる大きさの区域に多層区分した多層区域を使用区域とし、前記取得した区域のうち使用区域以外の残りの区域を、該残りの区域のサイズを互いに異なる2のべき乗の和と区画の割当単位のサイズの積からなる大きさとしたときの該互いに異なる2のべき乗のべき乗数毎に、該2のべき乗と前記割当単位のサイズの積からなる大きさの区域に多層区分して該多層区分された多層区域を解放して未使用状態とする。
本発明の一実施形態による記憶装置の領域管理及び区域の割付及び解放処理は図に示す中央処理装置302及びキャッシュメモリ303を少なくとも備えたデータ処理装置301によりデータ格納装置308を用いて実施される。データ格納装置308については、後に説明する割付区分表208と管理対象である取得済み区画211を含む。図3に示すように、データ格納装置308は、主記憶装置305または外部記憶装置306、あるいはそれらの組み合わせで実現することができ、あるいは通信装置307を介して接続された遠方に配置された装置を用いることも可能である。
図3の例示では、主記憶装置305、外部記憶装置306及び通信装置307が一本のバス304によりデータ処理装置301に接続されているが、接続方法はこれに限るものではない。
図3Aに例示するのは、取得済み区画211の区画サイズ220と主区域1〜3(81a、82a、83a)との関係である。取得済み区画211は、例えば、図1Aに示す区画3(193)とすることができる。
任意の大きさの区画サイズは互いに異なる2のべき乗の和で表現することができることから、区画サイズ220には、区画サイズを互いに異なる2のべき乗の和で表現したとき、その和にべき乗が存在するべき乗数の位置(以下、有意のビット位置ということがある。)にビット1をその他のべき乗数の位置にビット0を格納した2進数表示により区画サイズの大きさを表している。
ここで割付ビットマップは図示しないワークエリアである。以下の説明においても、表記の簡略化のため、ワークエリアの名称Xであることを特に断ることなく、「Xに・・・を設定する。」のように記述することがある。
図3Bに示す例における最初の処理においては、主区域番号205には初期値の1が、割付位置202には開始位置が、割付サイズ203には25が設定される。
上記ステップS205〜ステップS211のループ処理をビット位置が最下位のビット位置になるまで繰り返し、ビット位置が最下位のビット位置になると処理を終了する。
以上の処理により取得済み区画の主区分が完了する。
図4Aには、2のべき乗サイズとは等しくない割付要求サイズ20aと、それに基づいて取得した区域80との関係及び取得した区域80を多層区分した区域1〜4(81b、83b、84c、82c)との関係が示されている。割付要求サイズ20aの有意のビット位置は3と1であり、割付要求サイズは23+21=10である。
区域1(81b)と区域3(83b)により割付要求サイズに対応する使用区域が構成され、区域4(84c)と区域2(82c)により未使用区域が構成される。
図4Bに示す各エクステントの割付状態とレベル内番号のツリーは、図4Aに示す取得した区域80に対応するエクステントを2分の1ずつ分割(バディ分割)したエクステントの割付状態1または0を、区分レベル4から区分レベル1まで示したものである。割付状態1は塞状態に相当し、割付状態0は空状態に相当する。空状態はそのエクステントが割付可能な状態であり、塞状態は、それ単独ではそのエクステントの全体あるいは一部が割付可能か不明な状態である。上位区分の割付状態と下位区分の割付状態を結ぶ実線は、各割付状態に関するエクステントのバディ分割の関係を示したものである。レベル内番号は0番から始まるものとして示している。
区分レベル1のレベル内番号6と7の割付状態を1とすることにより、図4Bに示す割付状態において区分レベル1の空エクステントを探索したとき、レベル内番号5の空エクステントが優先的に取得される。したがって、その後区分レベル2の空エクステントが探索されたときのために、区分レベル2のレベル内番号3のエクステントを空エクステントとして残しておくことができる。
理解を容易にするため、図4Bには割付状態をツリーとして表記したが、割付状態を連続した領域におけるビットマップに保持することができることは明らかである。
図に示すように、ステップS501において、区分レベルに、主区域番号の指す主区域の割付サイズに対応する区分レベルを設定する。次にステップS502で、レベル内開始番号に、初期値(例えば値0)を設定し、ステップS503で、レベル内終了番号に、レベル内開始番号を設定する。
上述のステップS501〜ステップS504の処理は、図4Aの例示の区域80が主区域であるとして説明すると、区分レベル4の割付状態616に空状態を設定するものである。なお、区域を取得する主区域の選択については、後に図6を参照して説明する。また、図4Bに示すレベル内番号は、レベル内開始番号+割付番号として一般化をはかっている。レベル内開始番号は任意の番号であり、割付番号はレベル内開始番号からのオフセットである。したがって、レベル内開始番号を0とすると、レベル内番号と割付番号は同一の値となる。
ステップS506では、区分レベルより値1を減らす。次にステップS507で割付番号に、レベル内開始番号を設定し、ステップS508で、レベル内終了番号に、レベル内終了番号を2倍した値に値1を加えた値を設定する。
次にステップS509で区分レベルの割付番号の指す割付状態に塞状態を設定し、ステップS510で、割付番号はレベル内終了番号と等しいか判定する。割付番号がレベル内終了番号と等しければステップS505に戻り、等しくなければ、ステップS511で割付番号に1を加えてステップS509に戻る。
最初に、ステップS541において、主区分レベルに、主区域番号の指す主区域の割付サイズに相当する区分レベルを設定すると共に、区分レベルに解放区分レベルを設定する。ここで解放区分レベルは、バディシステムにより解放する塞状態のエクステントの区分レベルである。図4Aに示す例の区域1(81b)を解放する場合には、解放区分レベルはそれに対応した3であり、区分レベルには3が設定される。また、解放する塞状態のエクステントを特定する解放区分レベル内の割付番号が、解放番号として与えられているものとする。
図7Aは、本実施形態2における割付要求サイズの区域を取得する処理フロー例の前段を説明する図である。この前段の処理は、割付区分レベルの区域を取得する処理である。
次にステップS702で、最下位ビット位置に割付ビットマップのビット値が1である最も下位のビット位置を設定する。図4Aに示す例では、最下位ビット位置には1が設定される。
次にステップS706に進み、図6を参照して説明した処理により、割付区分レベルの区域を取得し、主区域番号と割付番号を得る。ここでの主区域番号は、図6のステップS601またはステップS607で設定されたものである。また割付番号は、ステップS604で呼び出す図5Cの処理フロー例のステップS526で設定されたものである。
次にステップS710において、ステップS709の処理で割付区分レベルの区域を取得したか判定し、取得していなければ、取得失敗として処理を終了し、取得していれば図7Bに示すステップS711に進む。
ステップS715では、解放区分レベルにビット位置を設定し、ステップS716に進み、解放番号に、割付番号に1を加えた値を設定する。次にステップS717において、図5Dを参照して説明した処理により、主区域番号の指す主区域から解放区分レベルの解放番号の区域を解放し、ステップS717aにおいて、割付番号に、割付番号を2倍した値を設定してステップS720に進む。
以上の処理により要求されたサイズに対応する使用区域の取得と未使用区域の解放が完了する。
図8Aは、実施形態2における取得した割付要求サイズの区域(使用区域)を解放する処理フロー例の前段を説明する図である。図7Bを参照して説明した割付要求サイズの区域の取得結果は解放要求に含まれるものとし、また割付要求サイズも解放要求に含まれるものとすることができる。
次にステップS803で、最下位ビット位置に割付ビットマップのビット値が1である最も下位のビット位置を設定する。図5Aに示す例では、最下位ビット位置には1が設定される。次にステップS804で、最上位ビット位置に割付ビットマップのビット値が1である最も上位のビット位置を設定する。
図8Bは、実施形態2における取得した割付要求サイズの区域(使用区域)を解放する処理フロー例の後段を説明する図である。この後段の処理は、マルチビット要求の使用区域を解放する処理である。
次にステップS809で、割付ビットマップより、ビット位置の指すビット値を取り出し、ステップS810で、該取り出したビット値は1か判定する。ビット値が1でなければステップS811において、解放番号に、解放番号を2倍した値を設定してステップS814に進む。ビット値が1であれば、ステップS813において、スタックに、ビット位置と解放番号を書き込み、ステップS814で、解放番号に、解放番号に値1を加えた値を2倍した値を設定してステップS814に進む。
上述のステップS816〜ステップS819のループ処理をスタックが空になるまで繰り返すことにより、割付要求サイズの区域の解放が完了する。
続いてスタックからビット位置3と解放番号0または2を取り出し、解放区分レベルに3を設定し、解放番号0または2の区域を解放する。すなわち区分レベル3の区域1(81b)が解放される。以上の処理により、使用区域を構成していた区域1(81b)と区域3(83b)が解放される。
ステップS904の処理で割付要求区分レベルの区域を取得していなければ、ステップS906に進む。
また、ステップS903で区分レベルはステップS902で設定した主区分レベルより大きいと判定されると、ステップS906に進む。
また、本発明の実施の形態による記憶領域管理方法、記憶領域割付方法及び記憶領域解放方法の各処理の実行手段は、上記プログラムにより、コンピュータ上に実現されることも明らかである。したがって、上記プログラムによりとコンピュータにより、記憶領域管理装置、記憶領域割付装置及び記憶領域解放装置が実現されることも明らかである。
本発明の一つの態様によれば、区画の割付サイズを取得し、割付サイズと、区画の割付単位のサイズから互いに異なる2のべき乗の和を算出し、区画を、該算出された互いに異なる2のべき乗の指数毎に該2のべき乗と区画の割当単位のサイズの積からなる大きさの区域に区分し、記区分された区域毎に区画を管理する。
「区分」とは、領域を割り当てる、あるいは領域を分割して割り当てることであり、「割付」ということもある。このときの領域の分割サイズは、互いに異なる2のべき乗サイズで規定されるが、領域の先頭からサイズの大きさの順に割り付けられる。領域は、区域または区画である。特に区画を区分することを「主区分」という。また、主区分により割り付けられた区域を「主区域」という。主区分は、本発明においては、区画に対する初期割付である。
区分または主区分による区域または主区域の割付サイズの2のべき乗の指数を「区分レベル」という。図1Bに示すツリー構造体580を援用して説明すると、例えばノード441が対応するレベル2のエクステントのサイズは4であるから、その区分レベルは2である。
また、本発明の別の態様によれば、割付要求サイズを含む区域の割付要求を受付け、割付要求サイズを包含する2のべき乗と区画の割当単位のサイズの積の最小のサイズの区域を取得し、更に割付要求サイズと、区画の割付単位のサイズから互いに異なる2のべき乗の和を算出し、前記割付要求を受け付けた区域を、該算出された互いに異なる2のべき乗の指数毎に該2のべき乗と前記区画の割当単位のサイズの積からなる大きさの区域に多層区分した多層区域を使用区域とし、前記取得した区域のうち使用区域以外の残りの区域を、該残りの区域のサイズを互いに異なる2のべき乗の和と区画の割当単位のサイズの積からなる大きさとしたときの該互いに異なる2のべき乗の指数毎に、該2のべき乗と前記割当単位のサイズの積からなる大きさの区域に多層区分して該多層区分された多層区域を解放して未使用状態とする。
図2の例示では、主記憶装置305、外部記憶装置306及び通信装置307が一本のバス304によりデータ処理装置301に接続されているが、接続方法はこれに限るものではない。
図3Aに例示するのは、取得済み区画211の区画サイズ220と主区域1〜3(81a、82a、83a)との関係である。取得済み区画211は、例えば、図1Aに示す区画3(193)とすることができる。
任意の大きさの区画サイズは互いに異なる2のべき乗の和で表現することができることから、区画サイズ220には、区画サイズを互いに異なる2のべき乗の和で表現したとき、その和に存在する2のべき乗の指数が指す位置(以下、有意のビット位置ということがある。)にビット1をその他の位置にビット0を格納した2進数表示により区画サイズの大きさを表している。
図3Bに示す例における最初の処理においては、主区域番号205には初期値の1が、割付位置202には開始位置が、割付サイズ203には25が設定される。
ステップS715では、解放区分レベルにビット位置を設定し、ステップS716に進み、解放番号に、割付番号に1を加えた値を設定する。次にステップS717において、図5Cを参照して説明した処理により、主区域番号の指す主区域から解放区分レベルの解放番号の区域を解放し、ステップS717aにおいて、割付番号に、割付番号を2倍した値を設定してステップS720に進む。
次にステップS803で、最下位ビット位置に割付ビットマップのビット値が1である最も下位のビット位置を設定する。図4Aに示す例では、最下位ビット位置には1が設定される。次にステップS804で、最上位ビット位置に割付ビットマップのビット値が1である最も上位のビット位置を設定する。
次にステップS809で、割付ビットマップより、ビット位置の指すビット値を取り出し、ステップS810で、該取り出したビット値は1か判定する。ビット値が1でなければステップS811において、解放番号に、解放番号を2倍した値を設定してステップS814に進む。ビット値が1であれば、ステップS812において、スタックに、ビット位置と解放番号を書き込み、ステップS813で、解放番号に、解放番号に値1を加えた値を2倍した値を設定してステップS814に進む。
ステップS904の処理で割付区分レベルの区域を取得していなければ、ステップS906に進む。
また、ステップS903で区分レベルはステップS902で設定した主区分レベルより大きいと判定されると、ステップS906に進む。
また、本発明の実施の形態による記憶領域管理方法、記憶領域割付方法及び記憶領域解放方法の各処理の実行手段は、上記プログラムにより、コンピュータ上に実現されることも明らかである。したがって、上記プログラムによりとコンピュータにより、記憶領域管理装置、記憶領域割付装置及び記憶領域解放装置が実現されることも明らかである。
さらに、本発明の記憶領域管理方法によりその記憶領域が管理される記憶装置及び本発明の記憶領域割付方法によりファイルが割り付けられる記憶装置は、本発明の実施の形態に含まれる。そして、記憶装置が、記憶媒体駆動装置と記憶媒体からなる場合には、本発明の記憶領域管理方法によりその記憶領域が管理される記憶媒体及び本発明の記憶領域割付方法によりファイルが割り付けられる記憶媒体も本発明の実施の形態に含まれる。
本発明の一つの態様によれば、区画の割付サイズを取得し、割付サイズと、区画の割当単位のサイズから互いに異なる2のべき乗の和を算出し、区画を、該算出された互いに異なる2のべき乗の指数毎に該2のべき乗と区画の割当単位のサイズの積からなる大きさの区域に区分し、記区分された区域毎に区画を管理する。
また、本発明の別の態様によれば、割付要求サイズを含む区域の割付要求を受付け、割付要求サイズを包含する2のべき乗と区画の割当単位のサイズの積の最小のサイズの区域を取得し、更に割付要求サイズと、区画の割当単位のサイズから互いに異なる2のべき乗の和を算出し、前記割付要求を受け付けた区域を、該算出された互いに異なる2のべき乗の指数毎に該2のべき乗と前記区画の割当単位のサイズの積からなる大きさの区域に多層区分した多層区域を使用区域とし、前記取得した区域のうち使用区域以外の残りの区域を、該残りの区域のサイズを互いに異なる2のべき乗の和と区画の割当単位のサイズの積からなる大きさとしたときの該互いに異なる2のべき乗の指数毎に、該2のべき乗と前記割当単位のサイズの積からなる大きさの区域に多層区分して該多層区分された多層区域を解放して未使用状態とする。
本発明の一実施形態による記憶装置の領域管理及び区域の割付及び解放処理は図に示す中央処理装置302及びキャッシュメモリ303を少なくとも備えたデータ処理装置301によりデータ格納装置308を用いて実施される。データ格納装置308については、後に説明する割付区分表208と管理対象である取得済み区画211を含む。図2に示すように、データ格納装置308は、主記憶装置305または外部記憶装置306、あるいはそれらの組み合わせで実現することができ、あるいは通信装置307を介して接続された遠方に配置された装置を用いることも可能である。
Claims (14)
- 記憶装置の記憶領域管理方法において、
予め割り付けられた記憶領域である区画の割付サイズを取得し、
該割付サイズと、前記区画の割付単位のサイズから互いに異なる2のべき乗の和を算出し、
前記区画を、該算出された互いに異なる2のべき乗のべき乗数毎に該2のべき乗と前記区画の割当単位のサイズの積からなる大きさの記憶領域である主区域に分割し、
前記主区域毎に前記区画を管理することを特徴とする記憶領域管理方法。 - 請求項1に記載の記憶領域管理方法において、
前記区画を前記主区域のサイズの大きさの順に分割することを特徴とする記憶領域管理方法。 - 請求項2に記載の記憶領域管理方法において、前記主区域の先頭アドレスである割付位置と主区域のサイズである割付サイズを、前記区画の割付サイズと前記区画の先頭アドレスから求めて前記主区域毎に保持することを特徴とする記憶領域管理方法。
- 請求項1に記載の記憶領域管理方法により前記区画を分割した主区域から割付要求された記憶領域のサイズである割付要求サイズの記憶領域を割り付ける記憶領域割付方法において、
前記割付要求サイズを含む記憶領域の割付要求を受付け、
前記主区域から前記割付要求サイズを包含する、2のべき乗と区画の割当単位のサイズの積の最小のサイズの空記憶領域を取得し、
前記割付要求サイズを区画の割付単位のサイズで割った値の2進数表示を求め、
前記受け付けた割付要求に対して、該2進数表示でビット1の立っているビット位置毎の2のべき乗と前記区画の割当単位のサイズの積の大きさの記憶領域からなる連続した記憶領域を、前記取得した2のべき乗と区画の割当単位のサイズの積の最小のサイズの空記憶領域に割り付けることを特徴とする記憶領域割付方法。 - 請求項4に記載の記憶領域割付方法において、
前記区画を前記主区域のサイズの大きさの順に分割し、
該分割した主区域のうちサイズの小さい主区域からサイズの大きい主区域に亘って前記2のべき乗と区画の割当単位のサイズの積の最小のサイズの空記憶領域を探索して取得し、該取得した2のべき乗と区画の割当単位のサイズの積の最小のサイズの空記憶領域に前記割付要求されたサイズの記憶領域を割り付けることを特徴とする記憶領域割付方法。 - 請求項5に記載の記憶領域割付方法において、
前記最小のサイズの空記憶領域は、前記分割した主区域のうちサイズの小さい主区域からサイズの大きい主区域に亘って前記各主区域に対応するバディシステムにより探索して取得することを特徴とする記憶領域割付方法。 - 請求項5に記載の記憶領域割付方法において、
前記最小のサイズの空記憶領域は、前記分割した主区域のうちサイズの小さい主区域からサイズの大きい主区域に亘って該最小のサイズの空記憶領域を探索し、すべての主区域において該最小のサイズの空記憶領域を取得できなかったときには、該探索した空記憶領域のサイズの2倍のサイズの空記憶領域を前記分割した主区域のうちサイズの小さい主区域からサイズの大きい主区域に亘って探索することを繰り返すことにより取得することを特徴とする記憶領域割付方法。 - 予め割り付けられた記憶領域である区画から割付要求された記憶領域のサイズである割付要求サイズの記憶領域を割り付ける記憶領域割付方法において、
前記割付要求サイズを含む記憶領域の割付要求を受付け、
前記区画から、前記割付要求サイズを包含する2のべき乗と前記区画の割当単位のサイズの積の最小のサイズの空記憶領域を取得し、
前記割付要求サイズを前記割付単位のサイズで割った値の2進数表示を求め、
前記受け付けた割付要求に対して、該2進数表示でビット1の立っているビット位置毎の2のべき乗と前記割当単位のサイズの積の大きさの記憶領域からなる連続した記憶領域を、前記取得した2のべき乗と区画の割当単位のサイズの積の最小のサイズの空記憶領域に割り付けることを特徴とする記憶領域割付方法。 - 請求項4乃至請求項8のいずれか1項に記載の記憶領域割付方法において、
前記取得した最小のサイズの空記憶領域のうち前記割り付ける記憶領域以外の残りの記憶領域を解放することを特徴とする記憶領域割付方法。 - 請求項9に記載の記憶領域割付方法において、
前記取得した最小のサイズの空記憶領域のうち前記割り付ける記憶領域以外の残りの記憶領域は、バディシステムにより解放することを特徴とする記憶領域割付方法。 - 請求項4乃至請求項10のいずれか1項に記載の記憶領域割付方法により割り付けた記憶領域を解放する記憶領域解放方法において、
前記ビット位置の小さい記憶領域から順に、バディシステムにより解放することを特徴とする記憶領域解放方法。 - 請求項1〜請求項11のいずれか1項に記載の方法をコンピュータに実行させるためのプログラム。
- 請求項1〜請求項11のいずれか1項に記載の方法をコンピュータに実行させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
- 予め割り付けられた記憶領域である区画の割付サイズを取得し、該割付サイズと、前記区画の割付単位のサイズから互いに異なる2のべき乗の和を算出し、前記区画を、該算出された互いに異なる2のべき乗のべき乗数毎に該2のべき乗と前記区画の割当単位のサイズの積からなる大きさの記憶領域である主区域に分割し、前記主区域毎に前記区画を管理する、記憶装置の記憶領域管理のための割付区分表のデータ構造において、
前記割付区分表は、前記主区域を識別する主区域番号毎に、該主区域の割付位置とサイズを格納するものであり、
前記主区域毎に記憶領域のバディシステムによる割付管理を可能とする割付管理表のデータ構造。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010525569A JP4761590B2 (ja) | 2008-08-17 | 2009-07-22 | 記憶領域管理方法、記憶領域割付方法及びプログラム |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008209395 | 2008-08-17 | ||
JP2008209395 | 2008-08-17 | ||
JP2008264689 | 2008-10-11 | ||
JP2008264689 | 2008-10-11 | ||
JP2010525569A JP4761590B2 (ja) | 2008-08-17 | 2009-07-22 | 記憶領域管理方法、記憶領域割付方法及びプログラム |
PCT/JP2009/003452 WO2010021085A1 (ja) | 2008-08-17 | 2009-07-22 | 記憶領域管理方法、記憶領域割付方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP4761590B2 JP4761590B2 (ja) | 2011-08-31 |
JPWO2010021085A1 true JPWO2010021085A1 (ja) | 2012-01-26 |
Family
ID=41706978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010525569A Active JP4761590B2 (ja) | 2008-08-17 | 2009-07-22 | 記憶領域管理方法、記憶領域割付方法及びプログラム |
Country Status (5)
Country | Link |
---|---|
US (2) | US9164902B2 (ja) |
EP (2) | EP3128431A1 (ja) |
JP (1) | JP4761590B2 (ja) |
CN (1) | CN102124452B (ja) |
WO (1) | WO2010021085A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8538926B2 (en) * | 2011-03-08 | 2013-09-17 | Rackspace Us, Inc. | Massively scalable object storage system for storing object replicas |
CN102096722B (zh) * | 2011-03-21 | 2013-03-27 | 华为数字技术(成都)有限公司 | 文件存储方法和装置 |
CN102981964B (zh) * | 2012-11-01 | 2016-08-03 | 华为技术有限公司 | 数据存储空间的管理方法及系统 |
CN109308267B (zh) * | 2017-07-28 | 2021-12-03 | 星宸科技股份有限公司 | 行车记录器的储存装置的控制方法与储存装置控制系统 |
US10877763B2 (en) | 2018-08-02 | 2020-12-29 | International Business Machines Corporation | Dispatching, allocating, and deallocating instructions with real/virtual and region tags in a queue in a processor |
US11606555B2 (en) * | 2018-12-20 | 2023-03-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for video coding using uniform segment split in pictures |
US20220244869A1 (en) * | 2021-02-02 | 2022-08-04 | Micron Technology, Inc. | File system storage allocation based on zones of a memory device |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5490274A (en) * | 1993-06-30 | 1996-02-06 | Microsoft Corporation | Modified buddy system for managing disk space |
US6131150A (en) * | 1993-10-05 | 2000-10-10 | Digital Equipment Corporation | Scaled memory allocation system |
US6901497B2 (en) * | 2000-10-27 | 2005-05-31 | Sony Computer Entertainment Inc. | Partition creating method and deleting method |
US7610468B2 (en) * | 2006-10-26 | 2009-10-27 | Hewlett-Packard Development Company, L.P. | Modified buddy system memory allocation |
-
2009
- 2009-07-22 EP EP16187825.1A patent/EP3128431A1/en not_active Withdrawn
- 2009-07-22 WO PCT/JP2009/003452 patent/WO2010021085A1/ja active Application Filing
- 2009-07-22 JP JP2010525569A patent/JP4761590B2/ja active Active
- 2009-07-22 CN CN200980131921.9A patent/CN102124452B/zh active Active
- 2009-07-22 EP EP09808021.1A patent/EP2339471A4/en not_active Withdrawn
-
2011
- 2011-02-17 US US12/929,813 patent/US9164902B2/en active Active
-
2015
- 2015-09-25 US US14/865,977 patent/US9778872B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9778872B2 (en) | 2017-10-03 |
EP2339471A1 (en) | 2011-06-29 |
US20110145538A1 (en) | 2011-06-16 |
JP4761590B2 (ja) | 2011-08-31 |
WO2010021085A1 (ja) | 2010-02-25 |
EP2339471A4 (en) | 2013-10-23 |
US20160266837A1 (en) | 2016-09-15 |
CN102124452B (zh) | 2015-01-14 |
US9164902B2 (en) | 2015-10-20 |
CN102124452A (zh) | 2011-07-13 |
EP3128431A1 (en) | 2017-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4761590B2 (ja) | 記憶領域管理方法、記憶領域割付方法及びプログラム | |
CN108628753B (zh) | 内存空间管理方法和装置 | |
CN106776967B (zh) | 基于时序聚合算法的海量小文件实时存储方法及装置 | |
CN102609446B (zh) | 一种分布式Bloom过滤系统及其使用方法 | |
US10191998B1 (en) | Methods of data reduction for parallel breadth-first search over graphs of connected data elements | |
CN113961514B (zh) | 数据查询方法及装置 | |
CN103064639A (zh) | 数据存储方法及装置 | |
CN105593828A (zh) | 管理文件的方法、分布式存储系统和管理节点 | |
CN104424219B (zh) | 一种数据文件的管理方法及装置 | |
JP2006195960A5 (ja) | ||
CN107111627A (zh) | 在线文件系统检查 | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
CN113722319A (zh) | 基于学习索引的数据存储方法 | |
CN115904255B (zh) | 一种数据请求方法、装置、设备及存储介质 | |
TW201830249A (zh) | 最大化可去重複記憶體的方法、記憶體系統和產品 | |
JP5447523B2 (ja) | データ処理装置、データ記録方法、データ記録プログラム | |
CN107111549A (zh) | 一种文件系统的管理方法及装置 | |
CN104133970A (zh) | 一种数据空间管理方法及装置 | |
CN107203479B (zh) | 层级化存储系统、存储控制器及层级化控制方法 | |
CN116774937A (zh) | 数据存储方法、装置、处理设备、存储介质 | |
CN108804571B (zh) | 一种数据存储方法、装置以及设备 | |
JP6006740B2 (ja) | インデックス管理装置 | |
CN103970671B (zh) | 用于在存储器中分配管理数据集的系统和方法 | |
CN109871355B (zh) | 一种快照元数据存储方法、装置及设备、介质 | |
CN107291404B (zh) | 一种缓存下刷方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20110315 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110412 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110517 |
|
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: 20110606 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110606 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140617 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4761590 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140617 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140617 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |