JPH06222999A - スワップ・ブロック組立方法及びメモリ管理機構 - Google Patents

スワップ・ブロック組立方法及びメモリ管理機構

Info

Publication number
JPH06222999A
JPH06222999A JP5312945A JP31294593A JPH06222999A JP H06222999 A JPH06222999 A JP H06222999A JP 5312945 A JP5312945 A JP 5312945A JP 31294593 A JP31294593 A JP 31294593A JP H06222999 A JPH06222999 A JP H06222999A
Authority
JP
Japan
Prior art keywords
virtual
virtual page
list
data structure
physical memory
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
Application number
JP5312945A
Other languages
English (en)
Other versions
JP2703494B2 (ja
Inventor
Peter R Badovinatz
ピーター・リチャード・バドヴィナッツ
Larry Brenner
ラリー・ブレナー
Jeffrey R Hedglin
ジェフリー・アール・ヘジリン
Barry P Lubart
バリー・フィリップ・ルバート
Patrick O'rourke
パトリック・オルーケ
Angelo Pruscino
アンジェロ・プルスチーノ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06222999A publication Critical patent/JPH06222999A/ja
Application granted granted Critical
Publication of JP2703494B2 publication Critical patent/JP2703494B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 データ処理システム内のバックアップ記憶装
置と物理メモリとの間で転送するための、仮想ページの
スワップ・ブロックを組み立てる方法を提供すること。 【構成】 この方法では、物理メモリ中に存在するすべ
ての仮想ページを、活動リストと非活動リストに分離す
る。次いで仮想ページを、グループ内の各ページが単一
の所有タスクまたはオブジェクトに属する、グループ毎
に非活動リストに割り当てる。グループから、最も最近
の使用の相関に基づいて仮想ページをスワップ・ブロッ
クに割り当てる。次いでスワップ・ブロックを単一の操
作でバックアップ記憶装置にページ・アウトする。グル
ープ・メンバのリストが保存され、スワップ・ブロック
のメンバが参照されるとき物理メモリにページ・インす
ることが可能になる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、仮想記憶システムを利
用するデータ処理システムに関し、詳しくは、記憶域と
物理メモリの間で移動するためのページ・ブロックを組
み立てることに基づくページ置換に関する。さらに詳し
くは、本発明は、メモリ参照挙動に基づいて不連続ペー
ジをブロックにグループ化するためのシステムに関す
る。
【0002】
【従来の技術】大部分のコンピュータでは、単一の中央
演算処理装置が定期的に複数の現行プロセスの各々を実
行する。これは多重タスク処理と呼ばれる。タスクによ
って使用されるデータが中央演算処理装置のレジスタに
ロードできるようになる前に、データは物理メモリ中に
存在していなければならない。あまりに多くのプロセス
が現存する場合には、物理メモリ内に存在する空間が、
各プロセスをすべて物理メモリにロードするには不十分
となる。ある時点で、物理メモリが単に使い果たされて
しまう。
【0003】仮想記憶装置は、プログラムのサイズ、ま
たは現存するプログラムの数に対する物理メモリ・サイ
ズの制約を回避する方法を提供する。仮想記憶装置を使
用するシステムでは、仮想アドレス空間内のアドレスが
物理メモリ内のアドレスの代りに使用される。仮想記憶
装置のアドレス空間は物理メモリのアドレス空間よりは
るかに大きいので、仮想アドレスを実アドレスの代りに
使用するという簡単な方法によって、サイズの点で物理
メモリを累計的に超過するプログラムを、実行可能なフ
ォーマットに置くことができる。コンピュータとそのオ
ペレーティング・システムのアドレス方式に応じて、仮
想記憶装置のアドレス空間を、ディスク駆動機構とテー
プ駆動機構を含めて、コンピュータにとって使用可能な
すべての補助記憶装置に拡げることができる。この配置
の実際的な意味は、プロセスの命令およびデータの一部
が呼び出されたとき、たとえそれらにシステム・アドレ
スが割り当てられており、それらがプロセスからアドレ
スされるとしても、物理メモリ中にはないことである。
その後、これらの命令を補助記憶装置から物理メモリに
移動しなければならない。仮想記憶オペレーティング・
システムが、プログラムにとって透過的に、物理メモリ
と補助記憶装置の間のデータの移動を実施する。空間に
関する競合は、オペレーティング・システムにより、デ
ータをドロップすなわちページ・アウトして、アドレス
指定されたデータ用のスペースを空けることによって解
決される。
【0004】現行プロセスの数が増加するにつれて、各
プロセスに使用可能な物理メモリ中の空間は減少し、補
助記憶装置との間でのデータ転送の要求が増加する。補
助記憶装置のアドレス指定は行われるとしても、物理記
憶装置のアドレス指定に比べて極端に時間がかかり、大
量のデータを交換する方がはるかに効率的である。した
がって、仮想記憶装置の実施はシステム性能に悪影響を
与える恐れがある。コンピュータは、有用な作業を行う
よりも、物理メモリと仮想記憶装置の間でデータをやり
とりするのにより多くの時間がかかる、スラッシングと
呼ぶ点に達する可能性がある。
【0005】メモリ管理の1つの目的は、仮想記憶オペ
レーティング・システムを使用してコンピュータ上で複
数の並行プロセスを効率的にサポートすることである。
仮想記憶システムの効率的な実施には、一見両立し難い
2つの目的がある。2つの目的とは、(最も頻繁に使用
されるデータだけはデータを移動する必要がないように
物理メモリ中に保持することによって、満たされる)物
理メモリの効率的な利用と、(物理メモリと補助記憶装
置の間で各入出力操作によってデータを移動させる操作
が行われるときは多くの時間が失われるので、できるだ
け多くのデータを移動させることによって、満たされ
る)各入出力操作の効率である。第1の目的は細かい調
節を必要とし、第2の目的は物理メモリの内容における
大雑把な調節を必要とするので、これらの目的は外見上
は両立し難い。
【0006】「参照のローカリティ」現象が、この2つ
の目的を調和させる何らかの可能性を提供する。コンピ
ュータ・プログラムのローカリティ・モデルは、プログ
ラムが実行されるとき、処理がプログラム内のローカリ
ティからローカリティに移動することを記述する。ロー
カリティは、ある期間中に多分繰り返しアクセスされる
データおよび命令を含む。理想的には、一緒に使用され
る命令とデータがローカリティである。比較的クリーン
なローカリティは一般にサブルーチンによって発生す
る。メモリ参照は一般にサブルーチンのコード行、サブ
ルーチンのローカル変数、および多分何らかの大域変数
に対して行われる。プログラムは一般に、オーバーラッ
プすることもあるいくつかのローカリティを示す。多く
のオペレーション・システムでは、スケジューラと呼ば
れる機能がメモリ管理機構に、どのタスク(オブジェク
ト)を使用すべきか、これらをいつ使用すべきか、およ
びこれらのタスクでどのページが使用されることを予想
されるかを知らせる。このスケジューリング機能は長期
スケジューリングと呼ばれる。長期スケジューラはメモ
リ管理機構に対してローカリティを識別することができ
る。メモリ管理は、長期スケジューリング情報のメモリ
管理への転送を可能にするインターフェースによって支
援される。
【0007】UNIXオペレーティング・システムとそ
の派生システム(UNIXは米国電信電話会社の商標)
では、長期スケジューリングはなく、短期優先スケジュ
ーリングのみがある。メモリ管理機構に対してローカリ
ティを識別する情報を転送するためのインターフェース
は設けられない。UNIXオペレーティング・システム
は、他のシステムよりも細かいアドレス空間の細分性で
動作し、そのためメモリ管理機能がさらに複雑になる。
このような特徴をUNIXオペレーティング・システム
に加えることは可能であるが、そうするとUNIXオペ
レーティング・システムとその派生システムを商業的に
成功させたその単純性が損なわれることになる。スケジ
ューラ情報に依存せずに、UNIXまたはUNIX類似
のオペレーティング・システム上で仮想ページ・ブロッ
クのページ・アウトおよびページ・インを可能にするこ
とが望ましい。
【0008】
【発明が解決しようとする課題】したがって、本発明の
1つの目的は、仮想記憶システムを利用するための改良
された方法を提供することであり、詳しくは、記憶装置
と物理メモリの間で移動するため、プログラム・ローカ
リティに密接に対応するページ・ブロックを組み立てる
ことに基づくページ置換を提供することである。
【0009】本発明の他の目的は、メモリ参照挙動に基
づいて不連続ページをブロックにグループ化するための
システムを提供することである。
【0010】
【課題を解決するための手段】上記の目的は、以下に述
べるようにして達成される。本発明は、データ処理シス
テムにおいてバックアップ記憶装置と物理メモリの間で
転送するために、仮想ページのスワップ・ブロックを組
み立てる方法を提供する。この方法は、物理メモリ中に
存在するすべての仮想ページを、活動リストと非活動リ
ストとの間で分離することを含む。仮想ページを非活動
リストに割り当てるとき、あるグループの各ページが単
一の所有タスクまたはオブジェクトに属するように、グ
ループ別に編成する。1つのグループから、仮想ページ
を、使用の相関に基づいてスワップ・ブロックに割り当
てる。次いでスワップ・ブロックを、1回の操作でバッ
クアップ記憶装置にページ・アウトする。グループ・メ
ンバのリストは保存され、スワップ・ブロックのメンバ
を参照するとき物理メモリにページ・インすることが可
能になる。
【0011】
【実施例】図1は、本発明を実用化するのに適したデー
タ処理システムの高レベル・ブロック図である。データ
処理システム10は、中央演算処理装置14、1つまた
は複数の入出力装置16、およびディスク・ドライブ・
バックアップ記憶装置18やシステム物理メモリ20な
どの補助記憶装置の間でデータを搬送する、システム・
バス12を基盤としている。当技術分野で周知のよう
に、直接メモリ・アクセス制御装置などの追加装置を設
けて、ディスク記憶装置18と物理メモリ20の間のデ
ータ・トラフィックの転送を制御することができる。一
般に、データをディスク記憶装置18からCPU14に
直接転送することはできず、物理メモリ20を介してC
PU14に間接的に送らなければならない。物理メモリ
はフレーム21に分割され、これらのフレーム21は通
常512バイトないし4キロバイトのデータの記憶を可
能にする。フレーム・サイズにより、メモリ管理の基本
単位のサイズ、すなわちページが設定される。フレーム
へのまたはフレームからのページの移動をページングと
呼ぶ。ローカリティは、処理中に時間に相関する参照を
表すページ群として示される。
【0012】図2は、仮想記憶システム22の構成要素
間の相互関係を示す。仮想記憶装置は、論理メモリを物
理メモリ20から区別する。CPU14上で実行される
適用業務では、仮想記憶装置は、マップ28を介して物
理メモリ20またはバックアップ記憶装置18の場所に
関係する、0ないしNの複数のページとして編成され
る。マップ28は、物理メモリ20の予約された所定の
フレーム中に保存される。マップ28は、バックアップ
記憶装置18と物理メモリ20のフレームとの間でのペ
ージの移動を反映するように常に更新しなければならな
い。
【0013】図3は、本発明のメモリ管理機構を支持す
るために使用される1つのデータ構造を示すためのブロ
ック図である。各仮想メモリ・ページ・データ構造は、
物理メモリ20で使用可能な1つのフレーム21に対応
する。仮想オブジェクト・データ構造30を使用して、
1組の割り振られた仮想メモリ・ページ・データ構造3
1を1つの仮想メモリ領域にグループ化する。各領域で
は、仮想メモリ・ページ・データ構造31が同じ1組の
アクセス属性を共用する。仮想オブジェクト・データ構
造30が、特定のプロセス、またはプロセスのサブルー
チン、またはプロセスによって開かれた文書に対応する
ものと予想される。仮想ページ・データ構造31は、基
礎となるプロセス、サブルーチン、またはデータ・オブ
ジェクトが所有するデータを記憶する、仮想メモリ・ペ
ージのあるサブセットを表す。二重連係リストを使っ
て、仮想オブジェクト・データ構造30とその割り振ら
れた仮想ページ・データ構造31とを接続する。仮想オ
ブジェクト・データ構造30は、システム内に存在する
タスクが、言い換えれば現行のプログラムまたはデータ
・オブジェクトが所有する。
【0014】図4は、仮想ページ・データ構造31を介
して物理メモリ20を管理するためにオペレーティング
・システムが使用する、活動待ち行列データ構造32の
ブロック図である。活動待ち行列32は、タスクによっ
て最近アクセスされた仮想メモリ・ページを表す、割振
り済みの仮想ページ・データ構造31の二重連係リスト
である。最近とは、いくつかの現行タスクによる要求に
応じて調節を受けるという意味である。図5は、最近ア
クセスされていない割振り済みの仮想ページ・データ構
造31を含む、仮想オブジェクト・データ構造30に接
続するために使用される非活動待ち行列34のブロック
図である。これらの仮想ページ・データ構造31が物理
メモリ20に残っているデータを含むフレームに対応す
ることに留意されたい。フレームは、未割振りの仮想ペ
ージ・データ構造に対する要求に応じてページ・アウト
されるのに利用できるものとして指定されている。ペー
ジングは要求されるまで発生しない。物理メモリ20の
フレーム21はまた、本発明の機構の介入なしに、タス
クまたはオブジェクトを閉じることによって任意に解放
することもできる。仮想ページ・データ構造31は、仮
想ページ・データ構造31が非活動になった順序に並べ
られた単一連係リスト中の仮想オブジェクト・データ構
造30に接続される。言い換えれば、このような単一連
係リストを下って遭遇する最初の仮想ページ・データ構
造31が、リスト中で最も以前に使用された仮想ページ
・データ構造31である。このようなリスト中で遭遇す
る最後の仮想ページ・データ構造31は、最も新しく使
用されたものである。所定のリストからの仮想ページ・
データ構造31は、効率的なページングのためにブロッ
クとして収集される。
【0015】図6は、未割振りの仮想ページ・データ構
造35を接続する自由待ち行列36を示すブロック図で
ある。未割振りの仮想ページ・データ構造35は、物理
メモリ21の自由フレームに対応する。自由待ち行列3
6は、メモリ21中に維持された二重連係リストであ
る。仮想ページ・データ構造は、割り振られると、自由
待ち行列から除去され、あるタスク用の仮想メモリ領域
を表す仮想オブジェクト・データ構造30に接続され
る。仮想ページ・データ構造はまた、割振り済み仮想ペ
ージ・データ構造31として活動待ち行列30に連係さ
れる。
【0016】図7は、データ用空間、他のデータ構造へ
のリンクまたはポインタ用の場所39、ならびにデータ
構造を活動待ち行列および非活動待ち行列に割り振るた
めに使用されるビット・エージ・マップ37を含む、仮
想ページ・データ構造31を示す。
【0017】図8、9、10の流れ図を参照すると、本
発明の方法が良く理解できる。これらの流れ図は、仮想
メモリを管理するために使用される2つのプロセスを示
している。一般に、もはや現在参照されていない仮想メ
モリ・ページ・データ構造からのデータが、バックアッ
プ記憶装置に転送され、物理メモリ内の場所は再使用さ
れる。第1のプロセスは、仮想ページ・データ構造が、
無限ループで実行されるページ・エージング・プロセス
を通じて現在参照されているかどうかを判定する。シス
テム開始時に、ページ・エージング・プロセスは、活動
待ち行列の走査を開始し、各仮想ページ・データ構造を
繰り返し検査する。各仮想ページ・データ構造は参照活
動記録を有する。仮想ページ・データ構造が走査される
度に、参照活動記録を表すビット・マップが1ビット位
置ずつシフトされる。最後に走査されて以降に仮想ペー
ジ・データ構造が参照された場合には、ビット・マップ
の最上位ビットすなわち最高位ビットが1に設定され
る。仮想ページ・データ構造が参照されなかった場合
は、最高位ビットが0に設定される。各走査中に、シス
テムの物理メモリの約5%が検査される。
【0018】ページ・エージング・プロセスはまた、仮
想ページ・データ構造を非活動待ち行列に移動すること
を可能にする。参照活動記録から出されるエージと比較
するために、スチール限界値が維持される。仮想メモリ
・ページは参照されないままなので、このエージはペー
ジの走査ごとに低下する。エージがスチール限界値より
下に下がると、仮想ページ・データ構造は再使用の資格
が生じ、したがって非活動化される。この時点で、仮想
ページ・データ構造は非活動待ち行列に移される。最
初、スチール限界値は4走査期間に等しい値に設定され
る。言い換えれば、仮想ページ・データ構造が4ページ
・エージング走査の間参照されない場合は、解放の資格
が生じる。
【0019】本発明によって提供される第2のプロセス
は、ページ・スチール・プロセスである。ページ・スチ
ール・プロセスは、プログラム内のローカリティに対す
る仮想ページ・データ構造の識別を提供する。ここで実
施されているように、ローカリティのオーバーラップし
ない部分が識別され、これらの部分はページ・インおよ
び後続のページ・アウトのためにグループとして割り当
てられる。ページ・インおよびページ・アウトは、それ
ぞれ1つのバックアップ記憶装置アクセス動作中に実施
される。このプロセスは、自由待ち行列がシステム要求
を満足することができないときに発生する仮想メモリ・
ページからの要求によってのみ実行される。
【0020】図8では、システム始動時にステップ10
2の実行によってエージング・プロセスに入る。ステッ
プ102で、エージング・デーモンが時限待機に入り、
その後、活動待ち行列の初期走査が行われる。すべての
オカレンス(occurrence)に関する最初の走査は、活動
待ち行列における最初の仮想ページ・データ構造から開
始する。次に、ステップ104で、走査中の仮想ページ
・データ構造は、そのエージ・ビット・マップ(または
参照活動記録)が1ビットだけシフトされる。エージ・
ビット・マップ中では、1が走査期間中に仮想メモリ・
ページが参照されることに対応し、0が走査中に仮想メ
モリ・ページが参照されないことに対応する。次にステ
ップ106で、仮想メモリ・ページが最後に走査されて
以降に参照されたかどうか判定する。YESの場合は、
ステップ108で、エージ・ビット・マップの最上位ビ
ットを1に設定する。YESでない場合には、最上位ビ
ットは0のままである。ステップ106からNO分岐を
とると、またはステップ108の後に、ステップ110
で、仮想メモリ・ページ・エージ・ビット・マップを整
数値(「エージ」)に変換する。この変換により、ステ
ップ112におけるスチール限界との比較に便利な値が
提供される。
【0021】スチール限界を使用して、仮想メモリ・デ
ータ構造を現在参照されているものと非活動状態のもの
とに分ける。ステップ112で、エージをスチール限界
と比較する。エージがスチール限界より大きく、仮想ペ
ージ・データ構造への最近の参照を示す場合には、YE
S分岐をとってステップ116に進む。エージがスチー
ル限界より大きくない場合には、NO分岐をとってステ
ップ114に進み、そこで仮想ページ・データ構造が活
動待ち行列から除去され、それを所有する仮想メモリ・
オブジェクト・データ構造に従属するものとして、非活
動待ち行列に加えられる。ステップ114の後にステッ
プ116が実行される。ステップ116で、走査を完了
するのに十分なメモリ・ページが検査されたかどうか判
定する。検査されていない場合は、ステップ118で、
活動待ち行列中の次の仮想メモリ・ページに進み、ステ
ップ104に戻る。走査が完了した場合は、YES分岐
をとってステップ116からステップ120−126に
進み、走査を終了するために必要な種々のハウスキーピ
ング・タスクを実行する。
【0022】ステップ120で、走査されたページの数
など種々の統計の更新を行う。ステップ122で、次の
走査開始のための「ヒント」が設定される。通常、この
ようなヒントは仮想アドレスへのポインタと見なすこと
ができる。しかし、このようなポインタが指す仮想ペー
ジ・データ構造を所有するタスクは、走査開始前の介在
期間中に非活動状態になるかまたは閉じることがある。
このとき、プロセスを閉じるには、それがヒントが指す
仮想ページ・データ構造を所有するかどうかの判定が必
要である。所有する場合には、ヒントを再設定しなけれ
ばならない。ステップ124で、待機期間が開始する。
ステップ126でプロセスが覚醒して、次のヒントで走
査を開始する。処理はステップ104に戻る。
【0023】ページ・スチール・プロセスもシステム始
動時に始まる。図9は、自由ページ要求を待つステップ
140に入るプロセスを表す。プロセスがステップ14
0から動かないこともあり得る。このプロセスは、図8
のプロセスの場合と同様に、システムの遮断によっての
み中断する。自由ページ要求を受け取ると、ステップ1
42で、非活動待ち行列中の最初の仮想オブジェクト・
データ構造に連係した仮想メモリ・ページ・データ構造
の検査が始まる。ステップ144で、非活動待ち行列中
の仮想オブジェクト・データ構造に接続された仮想ペー
ジ・データ構造のストリングを通じて制御がループされ
る。ステップ144で、別の仮想ページ・データ構造が
仮想オブジェクト・データ構造に連係されたままである
かどうか判定する。非活動待ち行列中の仮想オブジェク
ト・データ構造に接続された仮想ページ・データ構造
は、必ず少なくとも1つは存在する。このようなページ
がすべて検査されると、ステップ144からNO分岐を
とってステップ146に進む。ステップ146で、仮想
オブジェクト・データ構造のための仮想ページ・データ
構造の未処理のスワップ・ブロックをページ・アウトす
る。またオブジェクト・データ構造が非活動待ち行列中
から除去される。ステップ146に続き、ステップ14
8で、既に実行されたページ・アウトによって提供され
たよりも多くの仮想ページ・データ構造が要求されてい
るかどうか判定する。要求されていない場合には、スチ
ール・デーモンはNO分岐をとってステップ140に戻
り休眠する。YES分岐をとると、より多くのページが
必要であることを示すステップ150が実行される。ス
テップ150では、より多くの仮想オブジェクト・デー
タ構造が非活動待ち行列中に残っているかどうか判定す
る。
【0024】より多くのオブジェクト・データ構造が使
用可能な場合には、ステップ150からYES分岐をと
ってステップ152に進み、次の仮想メモリ・オブジェ
クトに接続された仮想ページ・データ構造を走査する。
その後ステップ144に戻る。ページが要求されている
が、オブジェクトが非活動待ち行列中にない場合は、分
類の袋小路に達している。ステップ150からNO分岐
をとってステップ154に進み、そこで、エージング・
デーモン内のスチール限界値を変更する。スチール限界
値は、より多くの仮想ページ・データ構造を非活動待ち
行列に入れるために、より攻撃的な値にされる。次にス
テップ156で、スチール・デーモンが1つまたは複数
の走査期間にわたって強制待機に入る。強制待機から出
ると、ステップ158で、非活動リストに仮想オブジェ
クト・データ構造が追加されたかどうか判定する。追加
されていない場合には、NO分岐をとってステップ15
4に戻り、スチール限界値をさらに攻撃的な値にするこ
とができる。仮想オブジェクト・データ構造が非活動リ
ストに追加されている場合には、仮想ページ・データ構
造は自由待ち行列に追加することが可能であり、YES
分岐をとってステップ144に戻り、ページ・アウトの
ためのブロック編成を処理することができる。
【0025】検査されていない仮想ページが走査中の現
行仮想オブジェクトに接続されたままである場合には、
ステップ144からYES分岐をとる。ステップ160
で、現行仮想ページ・データ構造が最後の検査以降に参
照されたかどうか判定する。参照されている場合には、
それはページ・アウトに使用不可能である。YES分岐
をとると、ステップ162に進み、仮想ページを更新済
みの参照活動記録とともに活動待ち行列に戻す。仮想ペ
ージが参照されていない場合には、ステップ160から
NO分岐をとってステップ164に進む。ステップ16
4で、仮想ページが既にバックアップ記憶装置にセーブ
されているかどうか判定する。セーブされている場合に
は、データをページ・アウトする理由はない。しかし、
好ましい実施例ではステップの順序のせいで、このよう
な仮想ページは後続のページ・インのためにグループに
割り当てられない。適用業務によっては、仮想ページを
このようなグループに含めるのが望ましいこともある。
仮想ページが既にセーブされている場合には、ステップ
164からYES分岐をとってステップ166に進み、
そこで仮想ページが占有するフレームが解放され、仮想
ページ・データ構造が自由待ち行列に移される。次に処
理はステップ144に戻る。ステップ164からNO分
岐をとると、ステップ168で、仮想メモリ・ページを
ページ・アウト用のブロックに組み立てるためのサブル
ーチンを呼び出す。ステップ168で表されるサブルー
チンはまた、これらのページ・アウトを実行し、そのタ
スクが完了するとステップ144に戻る。
【0026】図10は、ページ・アウト用のブロックを
スワップするための仮想ページの割当てを示す論理流れ
図である。ステップ170でプロセスに入って、そこで
現行ブロックがページ・アウトのために組み立てられて
いるかどうか判定する。ページがブロック用の最初の仮
想メモリ・ページである場合には、ブロックは存在しな
い。YES分岐をとるとステップ172に進み、そこで
ページを受け取るための新しいブロックを作成する。ペ
ージがブロック用の最初の仮想メモリ・ページでない場
合には、ステップ170からNO分岐をとってステップ
174に進む。ステップ174で、仮想ページ・データ
構造のエージをブロック内の最も古い仮想ページ・デー
タ構造のエージと比較する。ステップ176で、そのエ
ージの差がブロック限界より大きいかどうか判定する。
ページのエージが1つのローカリティのメンバと見なす
のに十分に近い場合には、エージ差はブロック限界値よ
り小さい。エージ差が、ページが1つのローカリティの
メンバでないことを示すような時には、ステップ176
からYES分岐をとる。ステップ178で、現行ブロッ
クをバックアップ記憶装置に書き込み、ステップ180
で、分析された最後の仮想ページ・データ構造を受け取
るための新しいブロックを作成する。ステップ172、
176、または180に続いて、ステップ182を実行
する。ステップ182で、現行ブロックに現行仮想ペー
ジ・データ構造を加える。次にステップ184で、ブロ
ックがその最大許容サイズ、すなわち通常32仮想メモ
リ・ページに達したかどうか判定する。YESの場合に
は、ステップ188で、そのブロックをバックアップ記
憶装置に書き込む。NOの場合には、現行仮想メモリ・
ページが仮想メモリ・オブジェクトが所有するストリン
グの最後のページであるかどうか判定する。YESの場
合には、ステップ180で、そのブロックをバックアッ
プ記憶装置に書き込む。そうでない場合、またはブロッ
ク書込み操作に続いて、処理はステップ144に戻る。
【図面の簡単な説明】
【図1】ディジタル・コンピュータの高レベル・ブロッ
ク図である。
【図2】仮想記憶システムの論理編成のブロック図であ
る。
【図3】本メモリ管理機構のシステムと方法を実施する
ために使用されるデータ構造を示す図である。
【図4】本メモリ管理機構のシステムと方法を実施する
ために使用されるデータ構造を示す図である。
【図5】本メモリ管理機構のシステムと方法を実施する
ために使用されるデータ構造を示す図である。
【図6】本メモリ管理機構のシステムと方法を実施する
ために使用されるデータ構造を示す図である。
【図7】本メモリ管理機構のシステムと方法を実施する
ために使用されるデータ構造を示す図である。
【図8】本メモリ管理機構を実施するプロセスの高レベ
ル論理流れ図である。
【図9】本メモリ管理機構を実施するプロセスの高レベ
ル論理流れ図である。
【図10】本メモリ管理機構を実施するプロセスの高レ
ベル論理流れ図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ラリー・ブレナー アメリカ合衆国12484、ニューヨーク州ス トーン・リッジ ピーク・ロード アー ル・ディー1ボックス372 (72)発明者 ジェフリー・アール・ヘジリン アメリカ合衆国12401、ニューヨーク州キ ングストン ワシントン・アベニュー124 (72)発明者 バリー・フィリップ・ルバート アメリカ合衆国12443、ニューヨーク州ハ ーリー ウィンザー・ドライブ181 (72)発明者 パトリック・オルーケ アメリカ合衆国01462、マサチューセッツ 州リューネンバーグ カンタベリー・ドラ イブ107 (72)発明者 アンジェロ・プルスチーノ アメリカ合衆国12590、ニューヨーク州ワ ッピンガー・フォールズ レーン・ゲー ト・ロード18

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】複数の仮想ページと物理メモリとを含むデ
    ータ処理装置の仮想記憶システム用の仮想ページのスワ
    ップ・ブロックを組み立てる方法において、 物理メモリに存在するすべての仮想ページを分けて、活
    動リストと非活動リストのどちらかに入れる分離ステッ
    プと、 非活動リストに割り当てられた仮想ページを、各グルー
    プごとに単一の所有プロセスをもつグループ別に編成す
    るステップと、 各グループ内で、各仮想ページの最も最近の使用が時間
    と相関されるように、仮想ページをスワップ・ブロック
    に割り当てる割当ステップとを有するスワップ・ブロッ
    ク組立方法。
  2. 【請求項2】単一出力操作でスワップ・ブロックを補助
    記憶装置にページ・アウトするステップと、 前記スワップ・ブロックに割り当てられた任意の仮想ペ
    ージが参照されたとき、物理メモリへのページ・インの
    ために前記スワップ・ブロックのメンバ・リストを維持
    するステップとをさらに含む請求項1記載のスワップ・
    ブロック組立方法。
  3. 【請求項3】前記分離ステップが、 選択可能な期間内に仮想ページの参照に応答して仮想ペ
    ージを活動リスト中に置くステップと活動リストを定期
    的に走査して、選択可能な期間内に参照されなかった遭
    遇したすべての仮想ページを非活動リストに移すステッ
    プとを含む請求項2記載のスワップ・ブロック組立方
    法。前記の割当てステップが、さらに1つのグループか
    ら、補助記憶装置中の重複している仮想ページを識別す
    るステップと、 仮想ページをスワップ・グループに割り当てずに、識別
    された仮想ページが占有する物理メモリ内の空間を解放
    するステップとを含むことを特徴とする、請求項3に記
    載の方法。
  4. 【請求項4】前記割当ステップが、物理メモリ内の空間
    に対する要求に応答して実行され、 物理メモリの割り当てられていないフレームを自由リス
    トにリストするステップと、 仮想ページがページ・アウトされるとき、仮想ページが
    以前に占有したフレームを自由リストに追加するステッ
    プとをさらに含む請求項2記載のスワップ・ブロック組
    立方法。非活動リストがプロセスの二重連係リストであ
    り、仮想ページが単一連係リスト中のプロセスに接続さ
    れることを特徴とする、請求項3に記載の方法。さら
    に、物理メモリに対する動的要求に応答して、選択可能
    な期間を変更するステップを含む、請求項3に記載の方
    法。さらに、物理メモリの各フレームを仮想ページ・デ
    ータ構造に関連させるステップと、 要求に応じて、仮想ページ・データ構造をタスクに割り
    当てるステップと、 割り当てられた各仮想ページ・データ構造の参照活動記
    録を維持するステップとを含む、請求項2に記載の方
    法。物理メモリに存在するすべての仮想ページを分割し
    て活動リストと非活動リストのどちらかに入れるステッ
    プが、 初期割振り時に、仮想ページ・データ構造を活動リスト
    に割り当てるステップと、 活動リストを定期的に走査して、活動リスト中の各仮想
    ページ・データ構造の参照活動記録を更新するステップ
    と、 仮想ページ・データ構造の走査中に、仮想ページ・デー
    タ構造の参照活動記録を参照するステップと、 最近の参照に応答して、割り振られた仮想ページ・デー
    タ構造を活動リスト上に保持するステップと、 最近の参照がないことに応答して、割り振られた仮想ペ
    ージ・データ構造を非活動リストに移すステップとを含
    むことを特徴とする、請求項4に記載の方法。
  5. 【請求項5】複数の物理メモリのフレームとバックアッ
    プ記憶装置を有するコンピュータ内の仮想記憶システム
    のメモリ管理機構であって、 前記仮想記憶システムは、仮想ページから物理メモリ中
    のフレームと前記バックアップ記憶装置中の場所へ、マ
    ップを提供し、 物理メモリ中に存在するすべての仮想ページを、活動リ
    ストと非活動リストに分離する手段と、 非活動リスト中の仮想ページを、グループ内の各仮想ペ
    ージが単一所有タスクに属するようにグループ別に編成
    する手段と、 最も最近の使用の時間相関に基づいて、あるグループの
    仮想ページをスワップ・ブロックに割り当てる割当手段
    とを含むメモリ管理機構。
  6. 【請求項6】スワップ・ブロックを単一操作でバックア
    ップ記憶装置にページ・アウトする手段と、 各スワップ・ブロックのメンバ・リストを維持して、前
    記スワップ・ブロックの任意のメンバが参照されると
    き、前記スワップ・ブロックを物理メモリにページ・イ
    ンすることを可能にする手段とをさらに有する請求項5
    記載のメモリ管理機構。
  7. 【請求項7】物理メモリの各フレームに関連する仮想ペ
    ージ・データ構造と、 仮想ページ・データ構造を、タスクからの要求に応じて
    タスクが所有する仮想ページに割り振る手段と、 割り振られた各仮想ページ・データ構造用の参照活動記
    録とをさらに有する請求項6記載のメモリ管理機構。前
    記分離手段が、 仮想ページ・データ構造の割振りに応答して、仮想ペー
    ジ・データ構造を活動リストに割り当てる手段と、 活動リストを走査して、活動リスト中の各仮想ページ・
    データ構造の参照活動記録を更新する手段と、 仮想ページ・データ構造の参照活動記録を走査し、最近
    の参照がないことに応答して、割り振られた仮想ページ
    ・データ構造を非活動リストに移す手段とを含むことを
    特徴とする、請求項7に記載のメモリ管理機構。
  8. 【請求項8】前記割当手段が、 前記バックアップ記憶装置内でそのデータの位置が重複
    している仮想ページ・データ構造を識別する手段と、 データをページ・アウトせずに、識別された仮想ページ
    が占有する物理メモリ内の空間を解放する手段とをさら
    に有する請求項6に記載のメモリ管理機構。前記の割当
    て手段が、物理メモリ内空間に対する要求に応答するこ
    とを特徴とする、請求項8に記載のメモリ管理機構。さ
    らに、割り当てられていない物理メモリのフレームを自
    由リスト上にリストする手段と、 仮想ページが以前に占有したフレームを、フレームから
    仮想ページがページ・アウトされるときまたはフレーム
    が解放されるとき、自由リストに追加する手段とを含
    む、請求項8に記載のメモリ管理機構。前記非活動リス
    トがプロセスの二重連係プロセス・リストであり、仮想
    ページがリストされた通りに単一連係リスト中のプロセ
    スに接続されることを特徴とする、請求項7に記載のメ
    モリ管理機構。前記の割当て手段が、さらにオブジェク
    ト用の最も以前に使用された仮想ページを決定し、スワ
    ップ・ブロック中の最も以前に使用された仮想ページを
    含める手段と、 オブジェクト用の最も以前に使用された仮想ページと続
    いて使用された各仮想ページの間の使用時間差を決定す
    る手段と、 後で使用される、所定の最大値より小さな仮想ページに
    関する時間差に応答して、後で使用される仮想ページを
    スワップ・ブロック中に含める手段とを含むことを特徴
    とする、請求項5に記載のメモリ管理機構。
JP5312945A 1992-12-15 1993-12-14 スワップ・ブロック組立方法及びメモリ管理機構 Expired - Lifetime JP2703494B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US991017 1992-12-15
US07/991,017 US5392415A (en) 1992-12-15 1992-12-15 System for grouping non-contiguous pages belonging to a storage object for page out

Publications (2)

Publication Number Publication Date
JPH06222999A true JPH06222999A (ja) 1994-08-12
JP2703494B2 JP2703494B2 (ja) 1998-01-26

Family

ID=25536760

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5312945A Expired - Lifetime JP2703494B2 (ja) 1992-12-15 1993-12-14 スワップ・ブロック組立方法及びメモリ管理機構

Country Status (2)

Country Link
US (1) US5392415A (ja)
JP (1) JP2703494B2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2285096C (en) * 1991-11-12 2000-05-09 Ibm Canada Limited-Ibm Canada Limitee Logical mapping of data objects using data spaces
US5551002A (en) * 1993-07-01 1996-08-27 Digital Equipment Corporation System for controlling a write cache and merging adjacent data blocks for write operations
JP3172007B2 (ja) * 1993-09-17 2001-06-04 富士通株式会社 ディスク複写処理方式
US6119214A (en) * 1994-04-25 2000-09-12 Apple Computer, Inc. Method for allocation of address space in a virtual memory system
US5555399A (en) * 1994-07-07 1996-09-10 International Business Machines Corporation Dynamic idle list size processing in a virtual memory management operating system
US5842226A (en) * 1994-09-09 1998-11-24 International Business Machines Corporation Virtual memory management for a microkernel system with multiple operating systems
US5765026A (en) * 1995-06-16 1998-06-09 International Business Machines Corporation Method for implementing state machine using link lists by dividing each one of the combinations into an initial section, an immediate section, and a final section
US5742797A (en) * 1995-08-11 1998-04-21 International Business Machines Corporation Dynamic off-screen display memory manager
US6038571A (en) * 1996-01-31 2000-03-14 Kabushiki Kaisha Toshiba Resource management method and apparatus for information processing system of multitasking facility
US6804766B1 (en) * 1997-11-12 2004-10-12 Hewlett-Packard Development Company, L.P. Method for managing pages of a designated memory object according to selected memory management policies
KR100283243B1 (ko) 1998-05-11 2001-03-02 구자홍 운영체제의 부팅방법
US6725241B1 (en) 1999-03-31 2004-04-20 International Business Machines Corporation Method and apparatus for freeing memory in a data processing system
US6640285B1 (en) 2000-10-26 2003-10-28 Emc Corporation Method and apparatus for improving the efficiency of cache memories using stored activity measures
US6829693B2 (en) * 2001-02-28 2004-12-07 International Business Machines Corporation Auxiliary storage slot scavenger
US6574718B2 (en) * 2001-02-28 2003-06-03 International Business Machines Corporation Excessive spin detection and avoidance for systems using a least recently used page replacement algorithm
US6687786B1 (en) * 2001-09-28 2004-02-03 Cisco Technology, Inc. Automated free entry management for content-addressable memory using virtual page pre-fetch
FR2831290A1 (fr) * 2001-10-19 2003-04-25 Univ Nantes Procedes de gestion de memoire virtuelle, notamment pour des index de tres grande taille
US6823437B2 (en) * 2002-07-11 2004-11-23 International Business Machines Corporation Lazy deregistration protocol for a split socket stack
US7617249B2 (en) * 2003-09-06 2009-11-10 Oracle International Corporation Method and system of handling document operation requests on documents having large collections with constrained memory
US7076632B2 (en) * 2003-10-16 2006-07-11 International Business Machines Corporation Fast paging of a large memory block
CN100527098C (zh) * 2007-11-27 2009-08-12 北京大学 一种虚拟机管理器的动态内存映射方法
US8924362B2 (en) 2008-06-30 2014-12-30 Microsoft Corporation B-file abstraction for efficiently archiving self-expiring data
US8352519B2 (en) * 2008-07-31 2013-01-08 Microsoft Corporation Maintaining large random sample with semi-random append-only operations
US8375194B2 (en) * 2010-05-27 2013-02-12 Hewlett-Packard Development Company, L.P. System and method for freeing memory
US9305112B2 (en) * 2012-09-14 2016-04-05 International Business Machines Corporation Select pages implementing leaf nodes and internal nodes of a data set index for reuse
US11340900B2 (en) * 2020-05-01 2022-05-24 EMC IP Holding Company LLC Flushing dirty pages from page buffers indicated by non-sequential page descriptors

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63217449A (ja) * 1987-03-05 1988-09-09 Nec Corp テ−ブル管理方式
JPH02219148A (ja) * 1989-02-21 1990-08-31 Nec Corp ページング方式

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4084227A (en) * 1976-09-24 1978-04-11 Sperry Rand Corporation Virtual address translator
US4432057A (en) * 1981-11-27 1984-02-14 International Business Machines Corporation Method for the dynamic replication of data under distributed system control to control utilization of resources in a multiprocessing, distributed data base system
US4636946A (en) * 1982-02-24 1987-01-13 International Business Machines Corporation Method and apparatus for grouping asynchronous recording operations
US4493034A (en) * 1982-10-14 1985-01-08 Honeywell Information Systems Inc. Apparatus and method for an operating system supervisor in a data processing system
US4660130A (en) * 1984-07-24 1987-04-21 Texas Instruments Incorporated Method for managing virtual memory to separate active and stable memory blocks
US4779191A (en) * 1985-04-12 1988-10-18 Gigamos Systems, Inc. Method and apparatus for expanding the address space of computers
US4821185A (en) * 1986-05-19 1989-04-11 American Telephone And Telegraph Company I/O interface system using plural buffers sized smaller than non-overlapping contiguous computer memory portions dedicated to each buffer
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
US4942541A (en) * 1988-01-22 1990-07-17 Oms, Inc. Patchification system
US5239643A (en) * 1987-11-30 1993-08-24 International Business Machines Corporation Method for reducing disk I/O accesses in a multi-processor clustered type data processing system
JP3226525B2 (ja) * 1988-10-07 2001-11-05 株式会社日立製作所 主記憶管理方法
US5159678A (en) * 1990-06-11 1992-10-27 Supercomputer Systems Limited Partnership Method for efficient non-virtual main memory management
US5247687A (en) * 1990-08-31 1993-09-21 International Business Machines Corp. Method and apparatus for determining and using program paging characteristics to optimize system productive cpu time
JPH04137046A (ja) * 1990-09-28 1992-05-12 Toshiba Corp 電子計算機のオペレーティングシステム
US5269013A (en) * 1991-03-20 1993-12-07 Digital Equipment Corporation Adaptive memory management method for coupled memory multiprocessor systems
US5237673A (en) * 1991-03-20 1993-08-17 Digital Equipment Corporation Memory management method for coupled memory multiprocessor systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63217449A (ja) * 1987-03-05 1988-09-09 Nec Corp テ−ブル管理方式
JPH02219148A (ja) * 1989-02-21 1990-08-31 Nec Corp ページング方式

Also Published As

Publication number Publication date
JP2703494B2 (ja) 1998-01-26
US5392415A (en) 1995-02-21

Similar Documents

Publication Publication Date Title
JP2703494B2 (ja) スワップ・ブロック組立方法及びメモリ管理機構
US5159678A (en) Method for efficient non-virtual main memory management
CN100571281C (zh) 海量数据分级存储方法
US7185155B2 (en) Methods and mechanisms for proactive memory management
US6971097B1 (en) Method and apparatus for implementing concurrently running jobs on an extended virtual machine using different heaps managers
US5842226A (en) Virtual memory management for a microkernel system with multiple operating systems
KR101936453B1 (ko) 새로운 애플리케이션을 위한 메모리 관리 모델 및 인터페이스
US20100122048A1 (en) Managing memory pages
US7389506B1 (en) Selecting processor configuration based on thread usage in a multiprocessor system
CN103620548A (zh) 具有增强的应用元数据的存储器管理器
US6801990B2 (en) Demand-based memory-block splitting
CN103635876A (zh) 用于未经修改的应用的存储器管理模型和接口
US7003646B2 (en) Efficiency in a memory management system
US20110087901A1 (en) Fast speed computer system power-on & power-off method
US5678024A (en) Method and system for dynamic performance resource management within a computer based system
CN116069530B (zh) 基于内存池的仿真引擎数据共享黑板系统
JPH0997139A (ja) フラッシュrom管理方法及び装置及びコンピュータ制御装置
CN108845969B (zh) 适用于不完全对称多处理微控制器的操作控制方法及操作系统
CN116107509A (zh) 一种数据处理方法、装置和电子设备
JPH0997218A (ja) フラッシュrom管理方法及び装置及びコンピュータ制御装置
JP2006031203A (ja) 車載情報端末
JPH0997205A (ja) フラッシュrom管理方法及び装置及びコンピュータ制御装置
JPH0997207A (ja) フラッシュrom管理方法及び装置及びコンピュータ制御装置
JPH0997206A (ja) フラッシュrom管理方法及び装置及びコンピュータ制御装置
CN115098258B (zh) 基于多核堆栈处理器的Forth多任务调度方法及装置