JPH0648469B2 - 仮想メモリ監理方法 - Google Patents

仮想メモリ監理方法

Info

Publication number
JPH0648469B2
JPH0648469B2 JP60162767A JP16276785A JPH0648469B2 JP H0648469 B2 JPH0648469 B2 JP H0648469B2 JP 60162767 A JP60162767 A JP 60162767A JP 16276785 A JP16276785 A JP 16276785A JP H0648469 B2 JPH0648469 B2 JP H0648469B2
Authority
JP
Japan
Prior art keywords
block
page
memory
memory block
compressing
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.)
Expired - Fee Related
Application number
JP60162767A
Other languages
English (en)
Other versions
JPS61112256A (ja
Inventor
エツチ.バートリイ デビツド
ジエイ.マツクエンテイー テイモシイ
ダブリユ.オツクスリイ ドナルド
エム.サツテ サテイツシユ
Original Assignee
テキサス インスツルメンツ インコ−ポレイテツド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by テキサス インスツルメンツ インコ−ポレイテツド filed Critical テキサス インスツルメンツ インコ−ポレイテツド
Publication of JPS61112256A publication Critical patent/JPS61112256A/ja
Publication of JPH0648469B2 publication Critical patent/JPH0648469B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory

Description

【発明の詳細な説明】 〔発明の背景〕 〈技術分野〉 本発明はメモリ装置の向上に関し、より詳しくはメモリ
装置監理方法の改良に関するものであつてさらに詳しく
はメモリ応答時間を改善するために活動ブロツクと安定
ブロツクを分離する進歩した方法に関する。
〈背景技術〉 記憶監理装置の開発には長い歴史があつて多くの関連す
る研究に枝分れしている。多年に渡つてメモリ構造の割
当てと割り当て解除に関して多くの研究がなされてき
た。興味ある多くのメモリ構造がH.M.DeitelによるAn I
ntroduction to Operating Systems,Addison-Wesley,Ma
ss.,Chapter7,1982に示されている。他の主要な
論点はD.KnuthによるThe Art of Computer Programmin
g,Vol.1.1:Fundamental Algorithms,Addison-Wesley,R
eading,Mass.,1968で論議されている。ここに記述
される本発明は主として積み重ね(heap)監理メモリを
有するコンピュータシステムにかかわり、ちり(garbag
e)収集スキームと共に、または別個に用いられる。
「積み重ね監理」メモリとは対象とするメモリユニツト
の一時的なオーダー即ちサイズにかかわりなくメモリが
(直接または間接に)割り当ておよび割り当て解除され
るものである。ちり収集メモリとは使用可能なメモリが
自動的に回収されメモリ空間を有効に利用すべく必要に
応じて時々再編成されるものである。ちり収集技術の概
観および関連する背景資料がJ.Cohenによる“Garbage C
ollection of Linked Data Structures”、Computing S
urveys,Vol.13,No.3,September,1981,第34
1ページないし第367ページに示されている。P.Bish
opは“Garbage Collection in a Very Large Address S
pace”,Massachusetts Institute of Tecnology,Work
ing Paper111,September1975,で非常に大きな
アドレス空間でのちり収集を論じている。
さらに、仮想メモリ空間の全体的な大きさがしばしば重
要となる。なぜならちり収集コストは回収されるちりの
量と共にではなく収集が行なわれる空間の大きさと共に
増大するからである。
代表的なメモリ装置とそれに伴う中央処理装置(CPU)
のオペレーシヨンでは、CPUが必要に応じてメモリ空間
の割り当てを要求する。メモリの割り当てはしばしば仮
想アドレス空間において行なわれる仮想アドレス空間が
全て割り当てられると、既に割り当てられている仮想空
間が識別され回収されるまでそれ以上の空間の要求は結
局拒否しなければならない。
ここで用いられるように、「物理メモリ」という用語は
通常はRAM半導体装置である主メモリと通常はページ付
けデイスクである背景記憶装置を含む実際の物理メモリ
を意味する。
概して本発明が関係する型のメモリ装置ではメモリの
(複数の)部分にCPUにより指定された大きさの「ブロ
ツク」が割り当てられる。各々のブロツクはヘツダを有
し、そのなかに例えばそのブロツクの識別コード、その
大きさ、および興味があるような他の事柄を含むそのブ
ロツクに関係する様々な情報が含まれている。ブロツク
のヘツダにはまた参照カウントを含むフイールドが含ま
れる。ブロツクの参照カウントは他のいずれかのブロツ
クまたはそれ自身によるそのブロツクへの参照の数を示
す。参照カウントの一形態がDeutsch等による“An Effi
cient,Incremental,Automatic Garbage Collector”,C
ACM,Vol.19,No.9,September,1976,522ペ
ージから526ページに示されている。本発明の方法が
関係する型のメモリでは1つのブロツクが初めて割り当
てられる際にそれがゼロという参照カウントを有する。
新しい参照が設定される度に参照カウントが増加させら
れる。1つのブロツク内での参照が消失すると、ダーゲ
ツトブロツクの参照カウントが減少させられる。ブロツ
クが初めて生成される場合を除き、ブロツクの参照カウ
ントが減少させられてゼロになる場合にはそのブロツク
がちりとみなされ、それの占める空間を回収することが
できる。
過去のメモリ監理装置では、ブロツクの割り当てと割り
当て解除の際に、非常に少ないブロツクを含むページは
さらにブロツク割り当ての余地を作るためにしばしばデ
イスクにページアウトされた。ページアウトされたブロ
ツクをアクセスする必要が生じると、そのページをデイ
スクから持ち込む余地を作るために主メモリ内からさら
に何らかのページをページアウトする必要があるのが常
であつた。そうすると、まばらに占められているぺージ
がデイスクから主メモリに持ち込まれ、その必要なブロ
ツクが使用された後にほとんど即座にそれをデイスクに
書き込んで戻さなければならない。このことが急激でひ
んぱんなデイスク取出しおよび書き込み操作を含むおび
ただしい「スラツシング」を生じ、それがメモリ操作の
速度を著しく低下させるが故に望ましくないことがわか
る。
必要とされるのは、たまに必要とされるブロツクを収集
してデイスク上に密に記憶させてページアウトし、また
ひんぱんに利用されるブロツクを収集して効率良くアク
セスするために主メモリ内に保持するようにしてブロツ
クを効率良く記憶するメモリ監理方法である。
〈本発明の簡単な説明〉 上述の観点から、本発明の1つの目的はデイスクの待ち
時間を低減し、またひんぱんなちり収集の間にCPUが遅
延させられる時間を低減することによりメモリ内のデー
タの全スループツトを進歩させる、要求時ページ付けさ
れる仮想メモリのメモリ監理方法を提供することであ
る。
本発明のもう1つの目的は説明した型の方法であつて割
り当て応答時間の改善された方法を提供することであ
る。
本発明のもう1つの目的は説明した型のものでまばらに
割り当てられたページがデイスクに書き込まれないこと
を保証することによつて背景記憶装置の効率の良い利用
が可能にされる方法を提供することである。
これらの、また他の目的、特徴および利点は以下の詳細
な記述を添付図面および本特許請求の範囲と関連させて
読めば当業者には明らかとなろう。
その広い見地において、本発明は複数の仮想アドレスペ
ージを含み要求時ページ付けされる仮想アドレス空間に
おいてメモリブロツクを密に詰める方法を与える。本方
法は仮想メモリ空間のアドレスを指示すべくポインタN
を定めることによつて密に詰めるべき活動ブロツクおよ
び安定ブロツクを識別し、また使用可能な仮想メモリ空
間の先頭のアドレスを絶えず指示すべくポインタNを前
進させるステツプを含む。新しいブロツクが割り当てら
れる際それらは前進するポインタの位置から始まる仮想
アドレス空間に配置される。さらに、ブロツクがユーザ
ーによつて参照される際それらは前進するポインタの現
行位置に移動させられるので、(以下に定義する)活動
ブロツクが活動ページに一緒に収集される。
本発明の1つの観点においては、各々のページの使用量
が測定され、ユーザーにより参照されるブロツクは参照
されるブロツクの位置するページの使用量があらかじめ
定められたレベル以下に落ちる場合にのみ移動される。
さらにデイスクメモリが設けられ、収集された安定ブロ
ツクを含むページが周期的にそれに「ページアウト」さ
れる。
本発明のさらに他の観点によれば、連想ルツクアツプテ
ーブルが設けられ、その中には最終的にはページアウト
される特別なページに移動されるブロツクの識別コード
と位置が書き込まれる。また各々のテーブルエントリに
はその中で識別される各々のブロツクの参照カウントも
保持される。連想ルツクアツプテーブルはその中で識別
されるブロツクの参照を更新すべく周期的に走査され
る。
〈好ましい実施例の詳細な説明〉 オンザフライ(OTF)詰め込みアドレスの多くは効率の
良いメモリ監理を必要とする。これらはデイスク待ちに
費される時間とひんぱんなちり収集の間にCPUが遅延さ
せられる時間を低減することにより全スループツトを改
善させる必要を含む。さらに、まばらに割り当てられた
ページを書き込まないことにより割り当て応答時間を改
善させ、また背景記憶装置をより有効に利用することも
重要である。最後に、(以下に記述する)動的ワーキン
グセツトと静的ワーキングセツトの両方を最小化するこ
とが重要である。
本発明は第1図に線図で例示されており、メモリの仮想
アドレス空間内の(上文のBishopによる意味の)領域X
が示されている。本構想の説明を簡単にするために、単
一のメモリ領域Xに関してOTF詰め込みを説明するが、
本発明は領域を利用しないメモリ装置にも同様に適用し
得ることを理解されたい。しかなる所定の時刻において
も1つ以上の領域が活動し得ることが強調されるが、こ
こでは簡明なためにただ一つのみの領域に対するオペレ
ーシヨンが説明される。普通は、物理メモリ、背景記憶
装置、その他が幾つかのこのような領域を含み、それら
は使用可能なリソースから成る。
仮想メモリ空間10は起点11から始まり領域Xの長さ
だけ続く連続的で均等なアドレスセツトにより表わされ
る。一般に、仮想アドレス空間を観察すると、3つの異
なる型のブロツクが見出される。それらは活動ブロツ
ク、安定ブロツク、およびちりブロツクである。活動ブ
ロツクとはCPUにより活発に参照されるものである。そ
れは一時的であり得るという意味で「揮発性」であり得
る。即ちCPUがそれを割り当て、短期間それを利用して
からそれを廃棄し得る。安定ブロツクとはCPUに対しア
クセス可能であるが比較的長い期間必要とされない、即
ちアクセスされないものである。ちりブロツクとはもは
やCPUに対しアクセスできないがその参照カウントがゼ
ロではないものである。ブロツクの参照カウントは何ら
かの他のブロツクまたはそれ自身からそのブロツクを参
照した数を与える。1つのブロツクが初めて割り当てら
れる際それは1という参照カウントを有し、新たな参照
が設定されるたびにその参照カウントが増大させられ
る。ブロツク内の参照が破壊されるたびにそのターゲツ
トブロツクの参照カウントが減少させられる。参照カウ
ントはとりわけちり収集手続きにおいて有用であつて、
その一例が本願の譲受人に譲渡され、本文に背景技術と
して参照されている“Computer Memory Systems with P
arallel Garbage Collection Independent from an Ass
ociated User Prosessor”なる名称の係属米国出願(出
願人フアイル番号:TI−9928)に見ることができ
る。
OTEコンパクタの1つの主要な目的は最も活動的なブロ
ツクを物理メモリ内に保持することである。従つて、以
下に明らかとなるように、安定ブロツクは物理メモリ内
に場所がない限り結局背景記憶装置内に配置される。
仮想メモリのためには要求時ページ付けを用いることが
望ましいので各ページが同一の型の活動、安定、または
ちりというブロツクを保持するのが好都合である。かく
て、ページは選択的にメモリ内に配置するか(全て活動
型)、ページアウトするか(全て安定型)、または再利
用する(全てちり型)ことができる。
もしいかなる所定の時刻においても、ここで「動的ワー
キングセツト」と呼ぶ活動ブロツクを含む仮想アドレス
ページセツトがシステムの物理メモリより小さければ理
想的である。さらに、もしここで「静的ワーキングセツ
ト」と呼ぶ安定ブロツクと活動ブロツクの両方を含む仮
想アドレスページセツトができる限り小さくてシステム
の背景記憶装置より小さいなら理想的である。
活動ブロツクを「活動的な」ページに合併するためにブ
ロツクはある一定の参照によつて「コピーされるかまた
は順方向に移動させられる」。かくて、例えばデータア
クセスのためにあるブロツクがアクセスされる場合、そ
のブロツクは活動ページに向けて順方向に移動させられ
る。従つて「古い」ページは安定ブロツクとちりブロツ
クのみを含む方向に向かうので選択的にページアウトで
きる。その結果安定ブロツクは合併することができ、ま
たちりブロツクのうちいくらかを識別することができ
る。ページアウト処理中にちりブロツクの全てが識別さ
れるわけではないことに留意されたい。残りのちりブロ
ツクを削除するには結局ちり収集(GC)が必要となろ
う。
メモリ監理の平常のオペレーシヨンのもとでは、2つの
型の事象がひんぱんに生じる。これらはCPUで将来利用
するための新しいブロツクの割り当てと、もはや何も参
照が行なわれないという事実により示されるもはやCPU
に利用されないブロツクの回収である。これらの2つの
事象の頻度が等しいのが理想的である。静的ワーキング
ブロツクから回収されるあらゆるブロツクについてそれ
に加えられる新しいブロツクがある。従つて静的ワーキ
ングセツトの大きさが比較的一定に留まる。
ちり収集がなければ参照カウントのみが廃棄されたブロ
ツクを回収する唯一つの手段となる。あるブロツクがそ
の参照カウントがゼロに達したために回収される場合、
そのブロツクが属する仮想アドレスページの一部分が解
放され、従つて再利用可能なページ断片とみなすことが
できる。いくつかのブロツクが回収された後にはいくつ
かのページ断片がいくつかのページに存在し得る。もし
これらのページ断片を追跡する機構が存在するなら、そ
れらの断片を新しいブロツクを割り当てるための場所と
して用いることができる。しかしながら、そのようなス
キーマには2つの主要な欠点がある。アクセス可能なブ
ロツクの参照位置が全くばらばらになり得るからであ
る。大いに参照されまた互いに大いな関連のあるブロツ
クが物理メモリにあるページよりもずつと多くの仮想ア
ドレスページの間に分布し得る。これがスラツシング、
即ちひんぱんなページインおよびページアウトまたはデ
イスクアクセシングをもたらす。さらに、このスキーマ
が割り当て応答時間を長びかせることもあり得る。
本発明によるOTFスキーマはブロツクの割り当てと削除
を監理するが、まだ上述のように新しいブロツクを再利
用可能なページ断片に配置することはしない。その代わ
りに図で示されるように新しいブロツクがここでは
“N”と呼ぶ前進ポインタによつて指示される仮想アド
レスページに割り当てられる。1つのブロツクがページ
に割り当てられる場合、それはそのページの未使用部分
ですぐ次に使用可能なアドレスに割り当てられる。かく
て、第1図に示されるように、B1ないしB13で示さ
れるブロツクが仮想アドレス空間10内に順次配置さ
れ、各々はポインタNによつて指示されるページですぐ
次に使用可能なアドレスから始まる。さらに本発明によ
ればブロツクがページから除去される場合、そのページ
の解放された部分を再利用するつもりはない。ページは
そのページの全て、またはほとんど全てが割り当てられ
ている場合一杯とみなされる。
ポインタNはNによつて指示されるページが一杯になる
たびにNが次に高い即ち大きい仮想アドレスページを指
示すべく更新されるという意味において「前進」してい
る。領域内の最も高次の仮想アドレスページが一杯にな
ると、以下に述べるようにちり収集が援用されるかまた
は割り当てのための新しいページが空いているページの
蓄積された「プール」から得られる。
ブロツクの割り当てはCPUの要求に応じて生じるひんぱ
んな事象の1つに過ぎない。ブロツクはまた動的ワーキ
ングセツトと静的ワーキングセツトから成るページから
それらの参照カウントがゼロになると共に回収される。
かくて第2図に示されるようにタイムブロツクB1から
B13が割り当てられている間にあるブロツクの割り当
て解除も行なわれている。示されている例では例えばブ
ロツクB8、B9、B12およびB13が割り当て解除
もしくは回収されている。ブロツクが仮想アドレスペー
ジから回収されるたびに、そのページの利用が減少す
る。1つのページがどの程度まで利用されるかというこ
とは重要なパラメータであつて各々のページの制御構造
の一部として正確に保持される。空の仮想アドレスペー
ジが初めて物理メモリに持ち込まれる場合、そのページ
の利用パーセントは明らかにゼロである。ブロツクがそ
のページに割り当てられるたびに、そのページの利用パ
ーセントが適宜増大する。同様にブロツクがページから
回収されるたびに、そのページの利用パーセントが減少
する。
先述のように、本発明によるOTF詰め込み処理の実行に
おいて、ブロツクは常に仮想アドレスページですぐ次に
使用可能な仮想アドレスに割り当てられる。ブロツクが
回収される際、ページ上に得られるメモリ領域の位置は
常に何もかかわりがない。従つて監理されるべき唯一つ
の情報は各領域内のどの仮想アドレスページがその領域
によつて割り当てのために用いるべく獲得可能であるか
を識別するものである。これを行なうために、使用可能
なページのリンクされたリフト20が保持される。Nの
ところのページが一杯になるたびに、リスト20がアク
セスされ、1つのページがそのリストから除去される。
1つの領域が初めて生成される際、その領域を構成する
全てのページが使用可能なページのリストにエントリさ
れる。OTFコンパクタにとつてはその領域の仮想アドレ
ス空間を一度に1ページずつ進んで、空になり再利用の
ために使用可能なページをバツクトラツクしないのが望
ましい。その領域の仮想アドレス空間に完全に横切つて
しまう時点もしくはそれより前にはちり収集を行なわな
いものと仮定すれば、最高位でアドレスされたページが
最後に利用されてからその仮想アドレス空間を再び通過
することが望ましい。これらの通過の際、空である(即
ちそれらの利用がゼロである)ことがわかつているペー
ジのみが利用される。それからこの処理が幾つかの通過
を通してちり収集がその領域上で実施されるまで続く。
単一のページより大きなブロツクの割り当てが要求され
る場合、そのブロツクが連続するページを占めることが
必要である。その領域の仮想アドレス空間を初めて横切
る間にこの要求を満たすのはほとんど困難ではない。な
ぜなら領域の最後のページが使用可能なページのリスト
上に見出される場合を除いて連続するページは使用可能
なページのリスト上に並んで存在するからである。前者
の場合には、リスト上の次のページがその前のものと隣
接しない仮想アドレスを有する。その領域の仮想アドレ
ス空間を初めて通過した後には、リスト上の2つの連続
するページが連続する仮想アドレスを有するという保障
はない。従つてマルチページブロツクが割り当てられる
際は常にチエツクが必要である。
物理ページの数が限定されていることは理解されよう。
またポインタNが前進するにつれ新しいブロツクを割り
当てるために新しい物理ページが必要となる。一般にス
キーマでは任意のページをその上に何か存在するかにか
かわらずページアウトする。しかしながら十分には利用
されていないページ、つまりその利用パーセントがかな
り減少しているようなページをページングアウトするこ
とはデイスク空間の効率良い利用に導かない。さらに活
動ブロツクをデイスクに移すのは不適当である。なぜな
ら活動ブロツクは物理メモリ内に留まる仮想アドレス空
間内に置いた方がよいからである。
先述のように、デイスク空間を効率良く利用し、また活
動ブロツクを物理メモリ内に保つために、本発明による
方法ではページアウトされてしまう、もしくはまもなく
ページアウトされるまばらに利用されるページ内に存す
る活動ブロツクを物理メモリ内にある仮想ページに再配
置する。新しいブロツクが割り当てられる、ポインタN
のところのページが物理メモリ内にあり、また動的ワー
キングセツトの一部になつている。従つてそれはある一
定の基準を満たす活動ブロツクを再配置するのに理想的
な場所である。
1つの活動ブロツクを再配置するかまたは「順方向にコ
ピー」するかを決定するための第1の基準はそのブロツ
クがCPUにより参照されることである。(ブロツクの参
照が活動ブロツクを安定ブロツクから区別する唯一つの
手段である。)第2は、その活動ブロツクがポインタN
のところのページにまだ配置されていないことである。
(この第2の基準はポインタNのところのページ内のブ
ロツクが何も得るところがないために前方にコピーされ
ないことを意味している。)第3の基準は背景記憶装置
を効率良く利用することに関連するもので、利用パーセ
ントがある一定のしきい値以下に落ちているページに活
動ブロツクが配置されていることである。十分に利用さ
れているページはそのままにしておくべきである。なぜ
ならそのページが物理メモリ内にあつて他のページを持
ち込むためにページアウトしなければならないとして
も、それがまばらでないという事実がデイスク空間の効
率良い利用を生じさせる。不適当にも、これは1つの活
動ブロツクを(同じページの中に他の活動ブロツクさえ
もあるかもしれない)動的ワーキングセツトから除去す
る結果になる。
それ故に第4の基準が役立つことがわかる。もし最小の
オーバヘツドを用いて最近最も利用されていない(LR
U)というインプリメンテーシヨンにより定められると
ころの十分に「古い」ページ内に活動ブロツクが配置さ
れているとそのブロツクはそのページの利用パーセント
にかかわりなく順方向にコピーされる。これは事実上活
動ブロツクを動的ワーキングセツト内に保ち、その上ま
たそのページの利用パーセントの低減を「セツトオフ」
する。
実際のブロツクの再配置が第1図に例示されており、図
ではブロツクB1がアクセスされている。ブロツクB1
はNによつて指示されるページ内には配置されておらず
利用の少ないページ内に配置されている。それ故、それ
は(Nが進むと共に)順方向の仮想アドレスページ4に
コピーされる。ブロツクB1の旧位置はコピーされたブ
ロツクを指示すべく適当に更新される。ブロツクB1を
参照する(図には示されていない)他のブロツクは依然
としてブロツクB1の(仮想アドレスページ1の中の)
旧コピーを指示しているので、前方のポインタをブロツ
クB1の旧位置に残す必要がある。同様にして、第2図
に示されるように、ブロツクB4、B6、B7およびB
10はそれらが参照されるとポインタNの前進していく
位置に順方向にコピーされる。
1つのブロツクが上述の基準を満たし、順方向にコピー
されるべきであるなら、そのブロツクの参照カウントが
最初にチエツクされる。1という参照カウントはCPUが
利用したブロツクセルまたは恐らくは結合レジスタ以外
にそのブロツクへの参照がないことを示している。(前
述の係属米国出願参照。)それ故、ブロツクをコピーし
それを参照したオブジエクト(セルまたは結合レジス
タ)がそのブロツクの新しい位置を指示するように更新
した後、参照されたブロツクのオリジナルコピーを回収
することができる。するとそのブロツクのオリジナルコ
ピーを含んでいたページの利用パーセントは減少させら
れる。
順方向にコピーされるブロツクの参照カウントが1より
大きいなら、そのブロツクを参照する他のオブジエクト
がそのブロツクの新しい位置を見つけられるようにその
ブロツクのオリジナルコピーの位置に順方向参照を残す
ことも必要である。順方向参照がそのブロツクのオリジ
ナルの位置に初めて置かれる際、その参照カウントはオ
リジナルブロツクの参照カウントマイナス1の値を取
る。なぜならそのブロツクに対する他の全ての参照はそ
のブロツクの旧位置のみを知つているので、実際には順
方向参照を参照するからである。新しい位置におけるコ
ピーされたブロツクは2という参照カウントを与えられ
る。1つは順方向コピーを起こすべくそのブロツクを参
照したオブジエクトのためであり、もう1つはそのブロ
ツクに対する順方向参照のためである。後に、オブジエ
クトが前方参照に出合う場合、そのオブジエクトはその
ブロツクの新しい位置を指示すべく更新され、順方向の
参照カウントはオブジエクトによる参照の減損を勘定す
るために1だけ減じられ、また新しい位置におけるブロ
ツクの参照カウントはオブジエクトからのポインタを勘
定するために1だけ増加される。順方向参照の参照カウ
ントがゼロに達すると、それはポインタが指示するブロ
ツクの参照カウントが1だけ減じられた後に回収するこ
とができる。
上述のように、また今度は第3図を参照すると、まばら
に利用されるページをページアウトするのは都合が悪
い。なぜならデイスク空間を効率良く利用することが本
発明の主要な目的の1つだからである。それ故、そのよ
うなページがページアウトされかけている場合、そのペ
ージ上に残つている少数のブロツクはその目的のために
明示して利用される別の物理ページにコピーされる。す
るとかつてまばらに利用されていたページが完全に空に
なつてデイスクに何も書き込む必要がないのでその物理
ページは即座に再利用できる。かくて、図のようにペー
ジ(1)と(3)がまばらに利用されるのでデイスクアウトペ
ージ(30)にコピーして出すことができ、それを次にデイ
スク40または他の背景記憶装置に出して書き込むこと
ができる。コピーされたブロツクに対する参照がもしあ
ればどこで起こるかがわかないので連想ルツクアツプテ
ーブルへのエントリが行なわれる。(コピーされたブロ
ツクの新しい位置への順方向参照をブロツクが初めに配
置されていたところのアドレスに置く方が簡単かもしれ
ないが、順方向参照はそのページ内に留まるべきなので
これはブロツクをコピーする、即ち1つのページを空に
するという目的に反する。) 各々のテーブルエントリはブロツク47の初めの位置の
仮想アドレス、ブロツク48の新しい位置の仮想アドレ
スおよびブロツク49の初めの位置に対する参照カウン
トを含む。テーブルエントリ内の参照カウントはコピー
されるブロツクの参照カウントを勘定に入れる。コピー
されたブロツクの参照カウントは(図のように)1に変
更される。なぜならその時点でそのブロツクに対する唯
一つの参照はテーブルエントリから生じる参照だからで
ある。
ページ上に残つている少数のブロツクを除去する処理に
おいて、順方向参照に出会うかもしれない。順方向参照
により参照されるブロツクはより早い時点にコピーされ
ているので、「特別な」ページにはブロツクはコピーさ
れない。しかしながら順方向参照を単純に忘れることは
できない。情報はあたかもそのブロツクがコピーされた
かのごとくテーブルに保存されねばならない。それなり
に順方向参照はそのまま残るけれども、新しい型式を取
る。
もしその仮想アドレスがページテーブル20内に存在し
ない、即ちそのアドレスが物理メモリまたはデイスク4
0、デイスクマツプまたは他の制御デイレクトリにない
ブロツクをCPUが参照する場合、そのブロツクのアドレ
スは連想ルツクアツプテーブル45内に見出し得る。CP
Uにより保たれるポインタまたはCPUがブロツクを参照す
るのに用いたブロツクセルはブロツクの新しい位置を指
示すべく更新することができる。するとコピーされたブ
ロツクはそれに対する付加的な参照を有するのでその参
照カウントを増やさなければならない。またテーブルエ
ントリはそれに対する1つ少ない参照を有するのでその
参照カウントを減じなければならない。もしこれがテー
ブルエントリの参照カウントをゼロに等しくするなら、
もはやそれに対し何も参照がないのでそのエントリをテ
ーブルから除去することができる。当然ながらエントリ
を除去することはそれが指示するブロツクに対する参照
が1つ少ないことを意味するので、エントリが指示して
いたブロツクの参照カウントを減じなければならない。
連想ルツクアツプテーブル45内のエントリの数を最小
化しようという企てにおいては、テーブル内に表れる参
照を求めて動的ワーキングセツトをスイープするのが望
ましい。これはプロセツサがそうしなければ遊んでしま
う場合に行ない得る。そのような参照が見出されると、
ブロツクの真の位置を参照するためにその参照を含むオ
ブジエクトを更新することができ、するとテーブルエン
トリの参照カウントを減じることができる。エントリの
参照カウントがゼロになるから、そのエントリをテーブ
ルから除去することができる。
いつでも可能な場合にはちりブロツクを捜し出して除去
することが望ましい。残念ながら、そのようなブロツク
を発見する機会は制限されている。しかしながら2つま
たはそれ以上のブロツクが循環リストを形成し、そのリ
ストの全てのブロツクが単一のページ内に含まれ、また
リフトの全てが1という参照カウントを有するなら、そ
のようなブロツクはちりブロツクであつてページをスイ
ープする間に検出できる。ページスイープはその唯一つ
の参照がそのブロツク自体から発しているようなブロツ
クをも捜し出すことができる。
領域が割り当てのために空のページのリストとして表わ
される仮想アドレス空間(VAS)の部分を最初に与えら
れる際、それらの空のページは大きな連続する断片とみ
なすことができる。かくて、ポインタNのところのペー
ジが一杯になるたびに、次の仮想アドレスページが物理
メモリを得られるようになり、それ以後の割り当てと順
方向コピーのために利用される。その領域の最高次の仮
想アドレスページが割り当てと順方向コピーに利用され
るまで、次にどの仮想アドレスページを利用するかを決
定するのに何も困難はない。
最高次の仮想アドレスページが一杯になつた後には単純
にポインタを「巻き戻して」その領域の最低次の仮想ア
ドレスページを指示させ、再びVASを通つてNを「前
進」させることは不可能である。ページの多くは割り当
て用に使用することができない。明らかに、安定ブロツ
クを含む最もデイスク上に存在しそうな「安定」ページ
は有用な情報を破壊しない限り再利用はできない。
同様に、依然として参照される1つまたはそれ以上の仮
想アドレスを有する仮想アドレスページはそのページが
デイスクまたは物理メモリに存在しなくてさえも、再利
用はできない。これは1つのまばらなページ上のブロツ
クが別のページにコピーされ連想ルツクアツプテーブル
上に順方向参照がエントリされる場合に起こり得る。コ
ピーされたブロツクが初めに(コピーされる前に)配置
されていた仮想アドレスページはデイスク上にバツクア
ツプされていないが、それらのブロツクに対応する仮想
アドレスはなお存立可能な参照されるアドレスなのであ
る。参照されるアドレスがルツクアツプテーブルを通じ
て順方向に送られたことを検出する唯一つの手段はその
仮想アドレスページがもはやデイスクまたは主メモリ内
に存在しないという事実である。参照される仮想アドレ
スを超えて割り当てれば破滅的になるだろう。
しかしながらその領域のための仮想アドレスページのか
なりの部分は再利用のために解放されているだろう。そ
のページ上の全てのブロツクが、それらの参照カウント
がゼロに達したかあるいはそれらが順方向参照の必要な
しに順方向にコピーされたかしたために除去されてしま
えば、そのページは再び解放される。そのページを空の
ページのリスト20上に置くことにより、それは将来割
り当てのために用いることができる。ポインタNが最高
次の仮想アドレスページを満たすと、空のページのリス
ト上にある仮想アドレスページが、そしてそれらのペー
ジのみがさらなるVASを通つての「通行」において割り
当てのために利用される。
本発明をある程度の特殊性を伴つて説明および例示した
が、上述の過程や手順は例としてのためのみのものであ
つて、本特許請求の範囲によるごとき本発明の精神およ
び範囲から逸脱することなくその組み合わせや配置にお
いて多くの変更をすることが可能であることが当業者に
は理解されよう。
【図面の簡単な説明】
第1a図は使用可能なページのリストを示す図、第1b
図はメモリの仮想アドレス空間内の領域を示す図であ
る。 第2a図は使用可能なページのリストを示す図、第2b
図は、ブロツクB1−B13が割り当てられた、仮想ア
ドレス空間内の領域と活動ブロツクの順方向コピーを示
す図である。 第3図は、仮想アドレス空間内の領域のまばらに利用さ
れるページを空にすべくいくつかのブロツクの物理ペー
ジへのコピーを図解する線図である。 符号の説明 10…仮想メモリ空間、 11… 〃 のアドレス起点、 20…使用可能なページリスト、 30…デイスクアウトページ、 40…デイスク
フロントページの続き (72)発明者 ドナルド ダブリユ.オツクスリイ アメリカ合衆国テキサス州キヤロルトン, エヌ.サレー ドライブ 2805 (72)発明者 サテイツシユ エム.サツテ アメリカ合衆国テキサス州リチヤードソ ン,エルク グロウブ 1304

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】複数の仮想アドレスページを含む仮想アド
    レス空間のページ付け要求時にメモリブロックを圧縮す
    る方法であって、 (a)前記仮想メモリ空間のページを指示するために少な
    くとも1つのポインタを定める段階、 (b)使用可能なメモリ空間の先頭のページを連続的に指
    示するように前記ポインタを前進させる段階、 (c)前記前進するポインタにより指示されるページ上の
    次に使用可能な位置から始まる仮想アドレス空間に新し
    く割り当てられるブロックを配置する段階、 (d)ユーザにより参照される以前に割り当てられたブロ
    ックを、前記前進ポインタによって指示される次に使用
    可能な位置に移動させる段階 を含むメモリブロック圧縮方法。
  2. 【請求項2】特許請求の範囲第1項記載のメモリブロッ
    ク圧縮方法において、さらに各ページの利用量を追跡
    し、参照されるブロックの配置されているページの利用
    量があらかじめ定められたレベル以下に落ちる場合にの
    み、参照が行なわれるブロックを移動させる前記段階が
    実行されることを含むメモリブロック圧縮方法。
  3. 【請求項3】特許請求の範囲第1項記載のメモリブロッ
    ク圧縮方法において、さらにディスクメモリを設け、最
    近割り当てられないか、再割り当てされていないブロッ
    クを含むページを前記ディスクメモリにページアウトす
    ることを含むメモリブロック圧縮方法。
  4. 【請求項4】特許請求の範囲第2項記載のメモリブロッ
    ク圧縮方法において、さらにその全てのページが移され
    て利用量がゼロであるページを戻して再びブロックを受
    け入れるべく使用可能にするための手段を設けることを
    含むメモリブロック圧縮方法。
  5. 【請求項5】特許請求の範囲第1項記載のメモリブロッ
    ク圧縮方法において、さらに前記段階(d)において該ブ
    ロックが移動される前の位置に順方向ポインタを書き込
    む段階を含み、該順方向ポインタが該ブロックの新しい
    位置を参照するメモリブロック圧縮方法。
  6. 【請求項6】特許請求の範囲第2項記載のメモリブロッ
    ク圧縮方法において、さらにまばらに利用されるページ
    からブロックを受け取るページを設けてまばらに利用さ
    れる該ページからブロックを前記設けられたページに移
    動させて前記設けられたページをディスクメモリに移す
    ことを含むメモリブロック圧縮方法。
  7. 【請求項7】特許請求の範囲第1項記載のメモリブロッ
    ク圧縮方法において、さらに連想ルックアップテーブル
    を設け、移動されたブロックの識別コードと位置を前記
    テーブルに書き込むことを含むメモリブロック圧縮方
    法。
  8. 【請求項8】特許請求の範囲第7項記載のメモリブロッ
    ク圧縮方法において、さらに前記連想ルックアップテー
    ブルにおいてそこで識別される各ブロックの参照カウン
    トを保持する手段を設けることを含むメモリブロック圧
    縮方法。
  9. 【請求項9】特許請求の範囲第8項記載のメモリブロッ
    ク圧縮方法において、該連想ルックアップテーブルをそ
    こで識別されるブロックに対する参照の更新をすべく周
    期的にスイープすることを含むメモリブロック圧縮方
    法。
  10. 【請求項10】特許請求の範囲第1項記載のメモリブロ
    ック圧縮方法において、サイクリックな参照構造を用い
    て仮想アドレスページ内のブロックを特定してそれらを
    割り当て解除することを含むメモリブロック圧縮方法。
  11. 【請求項11】複数の仮想アドレスページを含む仮想ア
    ドレス空間のページ付け要求時にメモリブロックを圧縮
    する方法であって、 (a)前記仮想メモリ空間のページを指示するために少な
    くとも1つのポインタを定める段階、 (b)使用可能なメモリ空間の先頭のページを連続的に指
    示するように前記ポインタを前進させる段階、 (c)前記前進するポインタにより指示されるページ上の
    次に使用可能な位置から始まる仮想アドレス空間に新し
    く割り当てられるブロックを配置する段階、 (d)ユーザにより参照される以前に割り当てられたブロ
    ックを、前記前進ポインタによって指示される次に使用
    可能な位置に移動させることによって活発に参照される
    ブロックをページに収集し、最近割り当てられないか、
    再割り当てされていないブロック(安定ブロック)と区
    別する段階、 (e)前記安定ブロックを含むページをバックアップメモ
    リへページアウトする段階 を含むメモリブロック圧縮方法。
  12. 【請求項12】特許請求の範囲第11項記載のメモリブ
    ロック圧縮方法において、さらに連想ルックアップテー
    ブルを設け、前記設けられたページに移動されるブロッ
    クの識別コードと位置を前記テーブルに書き込むことを
    含む、メモリブロック圧縮方法。
  13. 【請求項13】特許請求の範囲第12項記載のメモリブ
    ロック圧縮方法において、さらに前記連想ルックアップ
    テーブルにおいてそこで識別される各ブロックの参照カ
    ウントを保持するための手段を設けることを含む、メモ
    リブロック圧縮方法。
JP60162767A 1984-07-24 1985-07-23 仮想メモリ監理方法 Expired - Fee Related JPH0648469B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US634334 1984-07-24
US06/634,334 US4660130A (en) 1984-07-24 1984-07-24 Method for managing virtual memory to separate active and stable memory blocks

Publications (2)

Publication Number Publication Date
JPS61112256A JPS61112256A (ja) 1986-05-30
JPH0648469B2 true JPH0648469B2 (ja) 1994-06-22

Family

ID=24543364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60162767A Expired - Fee Related JPH0648469B2 (ja) 1984-07-24 1985-07-23 仮想メモリ監理方法

Country Status (3)

Country Link
US (1) US4660130A (ja)
EP (1) EP0175458A3 (ja)
JP (1) JPH0648469B2 (ja)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4742447A (en) * 1986-01-16 1988-05-03 International Business Machines Corporation Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system
US4797810A (en) * 1986-06-26 1989-01-10 Texas Instruments Incorporated Incremental, multi-area, generational, copying garbage collector for use in a virtual address space
US4967353A (en) * 1987-02-25 1990-10-30 International Business Machines Corporation System for periodically reallocating page frames in memory based upon non-usage within a time period or after being allocated
US4989134A (en) * 1987-03-20 1991-01-29 Hewlett-Packard Company Method and apparatus for enhancing data storage efficiency
US4807120A (en) * 1987-04-30 1989-02-21 Texas Instruments Incorporated Temporal garbage collector with indirection cells
US5136706A (en) * 1987-04-30 1992-08-04 Texas Instruments Incorporated Adaptive memory management system for collection of garbage in a digital computer
US4907151A (en) * 1988-09-30 1990-03-06 Digital Equipment Corporation System and method for garbage collection with ambiguous roots
US5159677A (en) * 1988-11-21 1992-10-27 International Business Machines Corp. Method and system for storing data in and retrieving data from a non-main storage virtual data space
US5018060A (en) * 1989-01-26 1991-05-21 Ibm Corporation Allocating data storage space of peripheral data storage devices using implied allocation based on user parameters
EP0389999B1 (en) * 1989-03-28 1999-01-20 Matsushita Electric Industrial Co., Ltd. Apparatus and method for digital data management
US5144692A (en) * 1989-05-17 1992-09-01 International Business Machines Corporation System for controlling access by first system to portion of main memory dedicated exclusively to second system to facilitate input/output processing via first system
US5321834A (en) * 1989-11-28 1994-06-14 Xerox Corporation Method and system for reclaiming unreferenced computer memory space
US5265228A (en) * 1989-12-05 1993-11-23 Texas Instruments Incorporated Apparatus for transfer of data units between buses
JPH04230508A (ja) * 1990-10-29 1992-08-19 Internatl Business Mach Corp <Ibm> 低電力消費メモリ装置
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
JPH0774984B2 (ja) * 1991-06-10 1995-08-09 インターナショナル・ビジネス・マシーンズ・コーポレイション システム資源利用率測定方法とデータ処理システム
US5809551A (en) * 1991-08-23 1998-09-15 International Business Machines Corporation Pending page release
US5375222A (en) * 1992-03-31 1994-12-20 Intel Corporation Flash memory card with a ready/busy mask register
US5422855A (en) * 1992-03-31 1995-06-06 Intel Corporation Flash memory card with all zones chip enable circuitry
US5428579A (en) * 1992-03-31 1995-06-27 Intel Corporation Flash memory card with power control register and jumpers
US5390315A (en) * 1992-06-15 1995-02-14 International Business Machines Corporation Allocation of uniform contiguous blocks of DASD storage by maintaining both a bit and a bit map record of available storage
US5577246A (en) * 1992-09-25 1996-11-19 Lucent Technologies Inc. Database memory compaction and reclamation method
US5559978A (en) * 1992-10-14 1996-09-24 Helix Software Company, Inc. Method for increasing the efficiency of a virtual memory system by selective compression of RAM memory contents
US5479633A (en) * 1992-10-30 1995-12-26 Intel Corporation Method of controlling clean-up of a solid state memory disk storing floating sector data
US5535369A (en) * 1992-10-30 1996-07-09 Intel Corporation Method for allocating memory in a solid state memory disk
US5452311A (en) * 1992-10-30 1995-09-19 Intel Corporation Method and apparatus to improve read reliability in semiconductor memories
US5473753A (en) * 1992-10-30 1995-12-05 Intel Corporation Method of managing defects in flash disk memories
US5369616A (en) * 1992-10-30 1994-11-29 Intel Corporation Method for assuring that an erase process for a memory array has been properly completed
US5822781A (en) * 1992-10-30 1998-10-13 Intel Corporation Sector-based storage device emulator having variable-sized sector
US5740395A (en) * 1992-10-30 1998-04-14 Intel Corporation Method and apparatus for cleaning up a solid state memory disk storing floating sector data
US5471604A (en) * 1992-10-30 1995-11-28 Intel Corporation Method for locating sector data in a memory disk by examining a plurality of headers near an initial pointer
US5448577A (en) * 1992-10-30 1995-09-05 Intel Corporation Method for reliably storing non-data fields in a flash EEPROM memory array
US5337275A (en) * 1992-10-30 1994-08-09 Intel Corporation Method for releasing space in flash EEPROM memory array to allow the storage of compressed data
US5416782A (en) * 1992-10-30 1995-05-16 Intel Corporation Method and apparatus for improving data failure rate testing for memory arrays
US5357475A (en) * 1992-10-30 1994-10-18 Intel Corporation Method for detaching sectors in a flash EEPROM memory array
US5432928A (en) * 1992-11-10 1995-07-11 Microsoft Corporation Updating objects stored in a permanent container while preserving logical contiguity
US5392415A (en) * 1992-12-15 1995-02-21 International Business Machines Corporation System for grouping non-contiguous pages belonging to a storage object for page out
US5581723A (en) * 1993-02-19 1996-12-03 Intel Corporation Method and apparatus for retaining flash block structure data during erase operations in a flash EEPROM memory array
US5586285A (en) * 1993-02-19 1996-12-17 Intel Corporation Method and circuitry for increasing reserve memory in a solid state memory disk
US5740349A (en) * 1993-02-19 1998-04-14 Intel Corporation Method and apparatus for reliably storing defect information in flash disk memories
US5603036A (en) * 1993-02-19 1997-02-11 Intel Corporation Power management system for components used in battery powered applications
US5835933A (en) * 1993-02-19 1998-11-10 Intel Corporation Method and apparatus for updating flash memory resident firmware through a standard disk drive interface
US5640529A (en) * 1993-07-29 1997-06-17 Intel Corporation Method and system for performing clean-up of a solid state disk during host command execution
US5682497A (en) * 1993-09-28 1997-10-28 Intel Corporation Managing file structures for a flash memory file system in a computer
US5490264A (en) * 1993-09-30 1996-02-06 Intel Corporation Generally-diagonal mapping of address space for row/column organizer memories
GB2283342B (en) * 1993-10-26 1998-08-12 Intel Corp Programmable code store circuitry for a nonvolatile semiconductor memory device
JPH07182239A (ja) * 1993-12-24 1995-07-21 Nec Corp セグメント分割管理システム
US5765175A (en) * 1994-08-26 1998-06-09 Intel Corporation System and method for removing deleted entries in file systems based on write-once or erase-slowly media
US5754817A (en) * 1994-09-29 1998-05-19 Intel Corporation Execution in place of a file stored non-contiguously in a non-volatile memory
US5809558A (en) * 1994-09-29 1998-09-15 Intel Corporation Method and data storage system for storing data in blocks without file reallocation before erasure
US5563828A (en) * 1994-12-27 1996-10-08 Intel Corporation Method and apparatus for searching for data in multi-bit flash EEPROM memory arrays
US5812861A (en) * 1995-06-22 1998-09-22 Intel Corporation Override signal for forcing a powerdown of a flash memory
US5987478A (en) * 1995-10-31 1999-11-16 Intel Corporation Virtual small block file manager for flash memory array
US6321293B1 (en) * 1995-11-14 2001-11-20 Networks Associates, Inc. Method for caching virtual memory paging and disk input/output requests
US5689707A (en) * 1995-12-04 1997-11-18 Ncr Corporation Method and apparatus for detecting memory leaks using expiration events and dependent pointers to indicate when a memory allocation should be de-allocated
US5864859A (en) * 1996-02-20 1999-01-26 International Business Machines Corporation System and method of compression and decompression using store addressing
US5860082A (en) * 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
US5930830A (en) * 1997-01-13 1999-07-27 International Business Machines Corporation System and method for concatenating discontiguous memory pages
JPH10301818A (ja) * 1997-04-28 1998-11-13 Matsushita Electric Ind Co Ltd ファイルシステム及びその管理方法
KR19980084404A (ko) * 1997-05-23 1998-12-05 윤종용 메모리 관리방법
GB9717718D0 (en) * 1997-08-22 1997-10-29 Philips Electronics Nv Memory management with compaction of data blocks
US6751718B1 (en) * 2001-03-26 2004-06-15 Networks Associates Technology, Inc. Method, system and computer program product for using an instantaneous memory deficit metric to detect and reduce excess paging operations in a computer system
US20050055495A1 (en) * 2003-09-05 2005-03-10 Nokia Corporation Memory wear leveling
KR100528973B1 (ko) 2003-11-05 2005-11-16 한국전자통신연구원 가비지 콜렉션 방법 및 그 장치
CN100527098C (zh) * 2007-11-27 2009-08-12 北京大学 一种虚拟机管理器的动态内存映射方法
US8028113B2 (en) * 2008-08-15 2011-09-27 International Business Machines Corporation Methods and systems for deadlock-free allocation of memory
US8965826B2 (en) 2010-05-17 2015-02-24 International Business Machines Corporation Dynamic backjumping in constraint satisfaction problem solving
US9628438B2 (en) 2012-04-06 2017-04-18 Exablox Consistent ring namespaces facilitating data storage and organization in network infrastructures
US9552382B2 (en) 2013-04-23 2017-01-24 Exablox Corporation Reference counter integrity checking
US9514137B2 (en) 2013-06-12 2016-12-06 Exablox Corporation Hybrid garbage collection
WO2014205286A1 (en) 2013-06-19 2014-12-24 Exablox Corporation Data scrubbing in cluster-based storage systems
US9934242B2 (en) 2013-07-10 2018-04-03 Exablox Corporation Replication of data between mirrored data sites
US10248556B2 (en) * 2013-10-16 2019-04-02 Exablox Corporation Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session
US9985829B2 (en) 2013-12-12 2018-05-29 Exablox Corporation Management and provisioning of cloud connected devices
US9774582B2 (en) 2014-02-03 2017-09-26 Exablox Corporation Private cloud connected device cluster architecture
US9830324B2 (en) 2014-02-04 2017-11-28 Exablox Corporation Content based organization of file systems
US10747563B2 (en) * 2014-03-17 2020-08-18 Vmware, Inc. Optimizing memory sharing in a virtualized computer system with address space layout randomization (ASLR) enabled in guest operating systems wherein said ASLR is enable during initialization of a virtual machine, in a group, when no other virtual machines are active in said group
US10474654B2 (en) 2015-08-26 2019-11-12 Storagecraft Technology Corporation Structural data transfer over a network
US9846553B2 (en) 2016-05-04 2017-12-19 Exablox Corporation Organization and management of key-value stores

Also Published As

Publication number Publication date
US4660130A (en) 1987-04-21
EP0175458A2 (en) 1986-03-26
EP0175458A3 (en) 1989-08-23
JPS61112256A (ja) 1986-05-30

Similar Documents

Publication Publication Date Title
JPH0648469B2 (ja) 仮想メモリ監理方法
US4758944A (en) Method for managing virtual memory to separate active and stable memory blocks
EP0574884B1 (en) A computer method and system for memory management
US6434576B1 (en) Popular-object handling in a train-algorithm-based garbage collector
US6226653B1 (en) Method and apparatus for performing generational garbage collection using remembered set counter
US6173294B1 (en) Method for combining card marking with remembered set for generational garbage collection with more than two generations
US6185581B1 (en) Train-algorithm-based garbage collector employing fixed-size remembered sets
US6434577B1 (en) Scalable-remembered-set garbage collection
US4695949A (en) Method for efficient support for reference counting
US6415302B1 (en) Train-algorithm-based garbage collector employing farthest-forward-car indicator
US6529919B1 (en) Incremental class unloading in a train-algorithm-based garbage collector
US6308185B1 (en) Methods and apparatus for generational dynamic management of computer memory
US7010555B2 (en) System and method for compacting a computer system heap
US6449626B1 (en) Reduced-cost remembered-set processing in a train-algorithm-based garbage collector
US7072916B1 (en) Instant snapshot
JP2564483B2 (ja) 接続されたユ−ザのプロセツサとは独立の並列ガ−ベツジコレクシヨン機能を有するコンピユ−タ記憶装置
US6510440B1 (en) Method and apparatus for performing generational garbage collection using barrier bits
US20060253498A1 (en) Method and apparatus for reclaiming memory from a heap
JPS63253445A (ja) データ格納効率の改善方法とシステム
US20040088277A1 (en) Placement of allocation trains in the train algorithm
US6470361B1 (en) Method and apparatus for performing generational garbage collection using middle-aged objects
US6950837B2 (en) Method for using non-temporal streaming to improve garbage collection algorithm
US20060253503A1 (en) Method and apparatus for aging a versioned heap system
US6999979B2 (en) Efficient encoding of references into a collection set
US7870171B2 (en) Method and system for garbage collection in a multitasking environment

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees