JP2610086B2 - メモリ管理方法及びシステム - Google Patents

メモリ管理方法及びシステム

Info

Publication number
JP2610086B2
JP2610086B2 JP5025792A JP2579293A JP2610086B2 JP 2610086 B2 JP2610086 B2 JP 2610086B2 JP 5025792 A JP5025792 A JP 5025792A JP 2579293 A JP2579293 A JP 2579293A JP 2610086 B2 JP2610086 B2 JP 2610086B2
Authority
JP
Japan
Prior art keywords
class
aging
page
pages
service
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 - Lifetime
Application number
JP5025792A
Other languages
English (en)
Other versions
JPH0689223A (ja
Inventor
シリカント・エヌ・パリク
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 JPH0689223A publication Critical patent/JPH0689223A/ja
Application granted granted Critical
Publication of JP2610086B2 publication Critical patent/JP2610086B2/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
    • 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

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)
  • Memory System (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般にメモリ管理、特に
ページングに基づいたメモリ管理においてエージャ(age
r)の効率を増加させる方法及び装置に関する。
【0002】
【従来の技術】本発明は以下の出願に関連する。 ・S. Parikhによる米国特許出願第872732号("Multi-Bit
Vector for Page Aging") ・S. Parikhによる米国特許出願第872935号("Method an
d Apparatus for Efficient Processing of Page Table
Entries") ・S. Parikhによる米国特許出願第872221号("Tabulatio
n of Multi-Bit VectorHistory") ・S. Parikhによる米国特許出願872733号("Method and
Apparatus for Predetermined Pages for Swapping fro
m Physical memory")
【0003】近年のマイクロプロセッサにおいては、仮
想メモリの概念が物理メモリに関連して用いられる。仮
想メモリは大規模及び(又は)複数のアプリケーションで
用いられる物理メモリを小量にすることができる。これ
は、任意の時間において物理メモリを占める特定の任意
のアプリケーションについては比較的少ない領域しか要
求されないことによって可能となる。よって、同時に幾
つかのアプリケーションを実行するコンピュータ・シス
テムでは、現に実行中のアプリケーションに必要なデー
タ及びコードだけを物理メモリに置く一方で、使用しな
いデータ及びコードを仮想メモリに残すか又はハード・
ディスク装置に記憶することができる。
【0004】ページングに基づくメモリ管理はページの
概念を用いる。一般にページの各々が4K(キロバイト)の
メモリ・アドレスを含む。仮想メモリは、 (32ビット・
アドレッシング方式について) 使用可能な4G(ギガバイ
ト)のメモリがあるとアプリケーションに信じさせる
が、実際には、一般に1M(メガバイト)未満から上のある
値の物理メモリ(RAM)である。従って、物理メモリから
別のロケーション(即ち、ディスク/二次記憶装置) に
ページをスワップできる必要がある。
【0005】ページングに基づくメモリ管理 (例えば、
インテル社の386及び486マイクロプロセッサ、以下 i38
6/i486) でスワッピングを可能にするために、個々のペ
ージの各々を写像し位置決めするページング・システム
が一般に提供されている。このシステムにおいては、ペ
ージ・テーブル・エントリ(PTE) で各ページのロケーシ
ョンをリスティングするページ・テーブルを生成・維持
することによって写像が行われる。従って、アプリケー
ションが特定のページを必要とするとき、当該ページは
ページ・テーブル内を走査することによって見つけるこ
とができる。PTE はページのアドレスならびに最後に
(最近に)使用されたことを示すアクセス/非アクセス・
フラグを含む。
【0006】物理メモリとの間のスワッピングの効率の
最大化を試みるために、オペレーティングシステムにエ
ージャ(ager)が備えられる。エージャは、もはやワーキ
ングセットに属さないページ・アウトすべきページを識
別する責務を有するOS機能の1つである。エージャ
は、システム内の全てのプロセスの全ページを走査し
て、かかる識別を行う。全走査が終了するまでのサイク
ルは「エージング・サイクル」と呼ばれる。エージャの
目的は、空間が必要なとき物理メモリから最長時間未使
用の(LRU) ページをスワップ・アウトすることにある。
最後に使用した時刻の古い(LRU) ページは最初に遊休(i
dle)リストに指定され、次いで必要に応じてスワップ・
アウトされる。従って、もし使用されていないページが
あれば、物理メモリ中の必要とされうる空間を占めるよ
りはむしろ、これらを記憶装置 (即ち、ディスク) に入
れる方がより効率的なものとなる。よって、エージャ及
びページング・システムは共働して、ページのロケーシ
ョンを追跡するとともに、物理メモリに実際に必要とさ
れるページを保持する。
【0007】基本オペレーティングシステムの性能の1
つの重要な決定要因はページングに基づくメモリ管理の
性能である。なぜなら、それは作業セット、応答時間及
び容量の次元で該システムの性能の他の部分に直接影響
を及ぼしうるからである。従って、基礎的なメモリ管理
は慎重に設計する必要がある。近年のマイクロプロセッ
サでは、ページング・メモリ管理のサポートはあるが限
定されている。
【0008】ページング・メモリ管理の効率は、(1) エ
ージングの効率及び有効性、(2) 作業セットにもはや属
さないページの正確な識別、及び(3) エージング・サイ
クルの長さによって直接に影響を受ける。一般に、エー
ジング・サイクルを短くすると、それに比例して作業セ
ットが減少する。オーバコミット(over-committed)シス
テム(実際に搭載したメモリ以上のメモリがあるように
見せるシステムであり通常ハードディスクなどの固定メ
モリを実メモリとの間でスワップしながら使用する)で
は、エージャは十分に効率的でなければならない。なぜ
なら、前記効率がなければ、間違ったページが物理メモ
リを占有することを許すことになるからである。
【0009】i386/i486 のような近年のいくつかのマイ
クロプロセッサのページングに基づくメモリ管理構成で
は、前述のようなメモリ内に各ページに対応するPTE が
ある。ページ・テーブル・エントリ(PTE) はページ・テ
ーブル内に存在する。各プロセスは個別にそれ自身のペ
ージ・テーブル及びPTE のセットを有する。ページの内
容がアクセスされる毎に、そのページに対応するPTE 内
の「アクセス」フラグが基本ハードウェアによりセット
される。このフラグは、最後のエージング・サービス又
はエージング・サイクル以後にそのページ・テーブル上
でアクセスされた (又はアクセスされなかった)ページ
を、エージャに知らせる。エージャはPTEを走査したの
ち該フラグをクリア(clear) する。一般に、エージャ
は、1つの完全なエージング・サイクルを終了するため
にシステム内の全プロセスの全ページ・テーブルを走査
しなければならない。周期的に、エージャは全てのPTE
を走査し、ビットの状況を検査し、そして適切な処置を
とる。これは最近アクセスされなかったページのページ
・アウトを含むことがある。i386/i486 マイクロプロセ
ッサでは、正確なアクセスの順序を含む正確なページ・
アクセス・パターンの識別サポートは、PTE 内のアクセ
ス/非アクセス・ビットに限定される。基本ハードウェ
アでは、ページング・メモリ管理サブシステムにページ
・アクセスの正確な順序を知らせるページ・タイム・ス
タンプを使用できない。
【0010】エージャに割当てられる時間を慎重に用い
ることが非常に重要である。(1) エージャは、ページ・
アウトされる次のページ・セットを識別する選択タスク
で効率的でなければならない。そして、(2) エージャ
は、ページ・アウトされる必要があるページの識別が正
確でなければならない。誤った判断は、間違ったページ
・アウトを増やし、物理メモリ要求を増やし、そして最
終的にはシステムのパフォーマンスを低下させることに
なる。エージャによって消費される中央処理装置(CPU)
タイムは、システム内の他のプロセスが負担するコスト
になり、完全なエージング・サイクルのために幾つかの
CPUタイム・スライスを要することがある。エージャに
よって消費される資源( CPUタイム等)の効率的な利用の
ために、エージャがこれらの使用できる資源を異なるプ
ロセスに賢明に割当てることが重要である。/tt明細書
【0011】エージャの機能の効率に加えて、次にペー
ジ・アウトされる遊休リストに指定されたページのすぐ
れた選択を容易にすることも重要である。現在のシステ
ムはメモリからページをスワップ・アウトするために L
RU 手法に類する方法を用いる。この方法においては、
特に高度に動的でオーバコミットのシステムにおいて
は、誤った判断に至ることがよくある。前述のように、
一旦2つの物理ページに対応するアクセス・フラグがセ
ットされれば、最初にどちらのページがアクセスされた
かをオペレーティングシステムが判定する方法はない。
更に、一旦2つの異なるページに対応する2つの PTE
のアクセス・フラグがリセットされれば、最後にどちら
がアクセスされたかをオペレーティングシステムが判定
する方法はない。従って、間違ったページ(即ち、最も
最後にあるいは最近に使用されたページ)をスワップ・
アウトするような選択をエージャが行なうことは十分に
起こりうる。
【0012】例えば、PTE の走査中に、エージャはリセ
ットされたアクセス・フラグを有する2つのPTE を検出
できる。エージャにとって、これは、これらのフラグが
最後にリセットされた後、そのページがアクセスされな
かったことを意味する。エージャは、これらの両方のペ
ージを遊休リスト (即ち、ページ・アウトされる潜在的
な候補のリスト) に指定し、もしそのページが十分すみ
やかにアクセスされなければ両者を最終的にページ・ア
ウトすることができる。換言すれば、両ページはエージ
ャの観点から同等に扱われる。しかしながら、一方のペ
ージは、その直前ではたまたまアクセスされなかった
が、極めて高い使用率 (例えば、使用率の大きいソフト
ウェアのコードを含むページ) のページであるが、他方
のページは純粋に低い使用率のページである場合があ
る。この場合、前者のページは後者のページよりも将来
アクセスされる確率が高い。エージャの限界により、ペ
ージがページ・アウトされる必要があるとき、前者のペ
ージ (即ち、高い使用率のページ) が選択される可能性
がある。なぜなら、エージャの限られた観点から、両ペ
ージは同じように見えるからである。よって、もし前者
のページがスワップ・アウト後に再び参照する必要があ
れば、ページ不在(fault) が起きる。ページ不在は一般
に処理時間の遅延を生じる。なぜなら、そのページを見
つけて物理メモリ中にスワップ・バックする間、実行中
のプロセスは停止されなければならないからである。
【0013】ページがアクセスされる毎に、対応するPT
E のアクセス・ビット・フラグがセットされる。アクセ
スされた又はアクセスされなかったページを識別するた
めにPTE をエージング・プロセスが順次に走査し、アク
セスされなかったページは最終的に遊休リストに指定す
るか又はページ・アウトすることができる。走査プロセ
スは本質的に時間がかかる。しかし、ページ・テーブル
内の全てのPTE を走査する必要があるとは限らない。な
ぜなら、これらのPTE に対応するページのサブセットし
か物理メモリには存在しないからである。一般に、物理
メモリに存在するページに対応するエントリを見つける
ためにのみ、多数のPTE を走査する必要がありうる。本
質的には、物理メモリに存在するページに対応するPTE
を見つけるために、非常に多数のエントリを走査する必
要がありうる。
【0014】
【発明が解決しようとする課題】従って、本発明の目的
は、コンピュータ・システムでメモリをより効率的に管
理する方法及び装置を提供すること、特にページングに
基づいたメモリ管理の際にエージャをより効率的に用い
る方法及び装置を提供することにある。
【0015】
【課題を解決するための手段】本明細書に開示された発
明は、従来技術のエージャの問題点を十分に除去し又は
減少させ、より効率的にエージャを用いる方法及び装置
を含む。本明細書に記述された方法及び装置はプロセス
を配置するクラスをつくることによりエージャの効率を
増加する。
【0016】本発明の実施例に従って、エージャの効率
を増加する方法が提供される。コンピュータ・システム
内の全てのプロセスは複数のクラスに分類される。そし
てプロセスからのページはアクセス/非アクセス履歴に
基づいて物理メモリから潜在的にスワップ・アウトでき
る。
【0017】本発明の実施例では、プロセスは4つの異
なるクラスの1つに入れられる。もしプロセスが、それ
に対するエージング・サービスの後に所定数よりも多い
複数のCPU タイム・スライスを受取っていれば、該プロ
セスはクラス1である。もしプロセスが、それに対する
エージング・サービスの後に前記所定数よりも少ない複
数の CPUタイム・スライスを受取っていれば、該プロセ
スはクラス2である。もしプロセスが、それに対するエ
ージング・サービスの後にCPU タイム・スライスを受取
らなければ、該プロセスはクラス3である。もしプロセ
スが、それに対する所定数のエージング・サービスの後
にCPU タイム・スライスを受取っていなければ、該プロ
セスはクラス4である。潜在的なスワッピングのページ
を見つける必要が生じると、クラス4、クラス1そして
クラス2の順序でエージング・サービスがプロセスに提
供される。
【0018】更に、プロセス毎にそれに割当てられたす
べてのCPU タイム・スライスのカウントを維持し、かつ
エージャがそれに割当てられたタイム・スライスがなか
ったことを検出する毎にカウントを維持するテーブルを
生成できる。割当てられたタイム・スライスのカウント
は、エージャが点検する (visit)、あるいは当該プロセ
スに対するエージング・サービスを実行する毎にリセッ
トされる。
【0019】
【実施例】図1はメモリ・システム10を示す。コンピュ
ータ・プログラムは、書込時に、実際に物理的に存在す
るよりも多くのアドレス可能な使用可能メモリがあるも
のとして書込まれる。一般に、アドレス可能な4G(ギ
ガバイト)の仮想 (即ち、実際には存在しない)メモリ12
が設けられる。物理メモリ(RAM)14の容量はコンピュー
タ・システムによって異なるが、使用できる物理メモリ
14の容量は仮想メモリ12よりも少ない。図1に示すよう
に、メモリ14は n M(メガバイト)のメモリを備える。こ
こで、nは一般に5と64の間の変数を表わす。従って、コ
ンピュータ・ハードウェアは物理メモリ14とともに用い
る記憶装置16、例えばハード・ディスク装置を備えるこ
とがある。
【0020】プロセス(即ち、コンピュータ・プログラ
ム)がコンピュータ・システムで実行されるとき(図5参
照)、参照番号18で示すような(4Kのデータを含む)ペー
ジを仮想メモリ12から物理メモリ14に転送できる。ペー
ジを仮想メモリ12から物理メモリ14に転送する特定の順
序はないので、仮想メモリ12内の連続ページが物理メモ
リ14内の連続ページにはなりえない。
【0021】コンピュータ・システム上で実行中のプロ
セスが一旦ページを使用しおえると、異なるプロセスが
物理メモリ14内の物理空間を必要とすることがある。も
しそれが使用できなければ、物理メモリ内のページが物
理メモリ14から記憶装置16にスワップ・アウトされなけ
ればならない。更に、もし記憶装置16に入っているペー
ジをプロセスが必要とすれば、当該ページは記憶装置16
から物理メモリ14にスワップ・インされなければならな
い。
【0022】仮想メモリ12、物理メモリ14及び記憶装置
16の間でページを写像し発見することはページングに基
づくメモリ管理の作業である。図2は、i386/i486 に基
づいたマイクロプロセッサで、ページングに基づくメモ
リ管理が一般に複数のページ・テーブル・エントリ32を
含むページ・テーブル30を用いることを示す。ページ・
テーブル・エントリ32の各々はアドレス・セクション34
及び一連のビット、即ち情報フラグ36を含む。情報フラ
グ36は幾つかの目的、例えば、ページが物理メモリ内に
存在するかどうか、ページは読取りページか書込みペー
ジか、等を示すために用いられ、参照番号38で示すよう
に、アクセス/非アクセス・フラグを含む。フラグ38の
目的は、ページングに基づくメモリ管理において、ペー
ジが最近に使用されたかどうかを追跡しようとする試み
を可能にする。フラグ38は、ページがアクセスされる毎
に、基本ハードウェア(i386/i486チップ) によりセット
される。
【0023】ページングに基づくメモリ管理に関連し
て、物理メモリ14と記憶装置16の間のスワッピングを支
援するためにエージャ(ager)が用いられる。エージャの
目的はアクセス/非アクセス・フラグ38を走査し、そし
て物理メモリ14内の空間が必要なときは、最長時間未使
用(LRU) のページを物理メモリから記憶装置16にスワッ
プ・アウトすることにある。1つのアクセス/非アクセ
ス・フラグ38からエージャに使用できる情報量が限られ
ているために、エージャは物理メモリ14から間違ったペ
ージをスワップする選択をするということが起こりう
る。これは、一旦異なるPTE のフラグ38がセットされれ
ば、エージャはどのフラグが最後にセットされたかを知
る方法がないという事実のためである。更に、一旦エー
ジャが全てのPTE を走査すれば、フラグ38はリセットさ
れるので、どのページが最後にアクセスされたかを判定
する方法がない。
【0024】エージャはオペレーティングシステムの残
りの部分を犠牲にしてその全ての作業を行う。もしシス
テムが遊休状態であれば、エージャがその作業を行う多
くの時間がある。さもなければ、エージャは、遊休リス
ト (最後のエージャの走査以後にアクセスされていない
ので物理メモリからページをスワップ・アウトしなけれ
ばならないときは必ず用いられる所定数のページのリス
ト) に指定されたページが十分にあることを保証するた
めに、オペレーティングシステムから時間をスチール(s
teal)しなければならない。
【0025】エージャは、動作するために、どれが最近
使用されたか又は使用されなかったかを知るためにプロ
セス毎に各ページ・テーブルの各ページ・テーブル・エ
ントリを調べる必要がある。もしフラグ38がセットされ
ていれば、そのページは最近使用されている。もしフラ
グ38がセットされていなければ、そのページはアクセス
されていないのでエージャは遊休リストにページを指定
できる。
【0026】エージャと関係なく作業するのは、スケジ
ューラ(scheduler) と呼ばれるオペレーティングシステ
ムの一部である。実行中の異なるプロセスにCPU タイム
を割振るのはスケジューラの仕事である。スケジューラ
はある優先順位方式を用いてそれぞれのプロセスに使用
できる時間を割当てる。エージャはスケジューラととも
に作業しないから、エージャはスケジューラの優先順位
リスト内のプロセスの位置が分からない。従って、当該
プロセスのページの実行にCPU タイムが使用できる前
に、エージャによりスケジューラのリスト上の高い優先
順位がスワップ・アウトされることが起こりうる。よっ
て、ページ不在(fault) が起こり、時間及び効率の損失
が生じる。
【0027】エージャは、できれば、最後のエージング
・サイクル以後にアクセスされ又はCPU タイムを与えら
れたプロセス、即ちアクセスされる可能性が少しでもあ
るプロセスのページに対するエージング・サービスを提
供すべきである。更に、システムには、種々の理由でCP
U タイムを取得しておらずスワップ・アウトされる有力
な候補となるべきいくつかのプロセスがある。もしこの
ようなプロセスが存在すれば、それらが近い将来にアク
セスされない確率が高いから、エージャはより高い優先
順位をこれらの使用されないプロセスのページに与え、
それらをスワップ・アウトすべきである。
【0028】例えば、従来の技術のページング・メモリ
管理を用いて、CPU タイムを取得しなかったプロセス
は、たとえそれらがスケジューラの高い優先順位であっ
ても、アクセスされないことについて不公平に罰せられ
る。正確に同じスケジューリング優先順位で実行中のN
個のプロセスのうちから、M個のプロセスが最後のエー
ジング・サイクル以後にCPU タイムを取得しなかったと
いう場合が起こりうる。従って、実際にCPUタイムを受
取った(N-M)個のプロセスのみのページ・アクセス経歴
を調べることがより正確なことがある。
【0029】従って、本明細書で、真に使用度が少な
い、又は実際にCPU タイムを受取った、これらのプロセ
スのみを調べるために、本発明は全てのプロセスを分類
しうる複数の異なるクラスを設ける。良好な実施例で
は、以下のような複数のクラスを含む。 クラス1:最後のエージング・サービス以後に反復して
CPU タイム・スライスを受取ったプロセス クラス2:最後のエージング・サイクル以後に、予め選
択された所定のしきい値よりも小さい、いくつかのCPU
タイム・スライスを受取ったプロセス クラス3:最後のエージング・サイクル以後に、CPU タ
イム・スライスを受取らなかったプロセス クラス4:(クラス2とは別のしきい値により予め決め
られた)所定数のエージング・サイクルにおいてCPU タ
イム・スライスを受取らなかったプロセス
【0030】図3は、本発明に従い、コンピュータ・シ
ステム中のあらゆるプロセス52のエントリでテーブル・
フォーマット50が構成されることを示す。各エントリ
は、そのプロセスが最後のエージング・サービス以後に
受取ったCPU タイム・スライスの数を示すレコードを含
む。プロセスがスケジューラからタイム・スライスを取
得する毎に、参照番号54で示すカウンタC1のカウントが
増分される。逆にエージャがプロセスにエージング・サ
ービスを与える毎に、カウンタ54がリセットされる。参
照番号56で示すもう1つのカウンタC2は、当該プロセス
にタイム・スライスが割当てられなかったこと("no tim
e allocated") をエージャが検出した回数を記録する。
カウンタC1での値"0" は当該プロセスにタイム・スライ
スが割当てられなかったことを示す。例えば、もしエー
ジャが連続する2つのサイクルでプロセスがCPUタイム
を受取らなかったことを検出すれば、カウンタC2は値"
2"を含む。プロセスがCPU タイム・スライスを受取る
と、カウンタC2はリセットされる。
【0031】プロセスは、もしそのC1カウンタが所定の
しきい値の一定の範囲内にありかつC2カウンタが0であ
れば、クラス2に属するものとして分類される。プロセ
スは、もしそのC1カウンタが0でありかつそのC2カウン
タが所定のしきい値の一定の範囲内にあれば、プロセス
はクラス3に属するものとして分類される。正確なしき
い値はコンピュータ・システム毎に調整し測定すること
により決定できる。
【0032】C2カウンタの大きな(クラス3の最大しき
い値よりも大きい)値は、対応するプロセスがタイム・
スライスを受取っていないので、該プロセスは非常に低
い優先順位であるか又は使用回数が少ないタイプであ
り、よってページ・アウトされるページを調べるための
有力な候補であることを示唆する。このようなプロセス
はクラス4として分類される。
【0033】同様に、C1カウンタの非常に大きな(クラ
ス2の最大しきい値よりも大きい)カウント及びC2カウ
ンタの値"0"は、対応するプロセスがエージング・サー
ビスを取得していないが多くのCPU タイムを取得してい
ることを示唆する。C1カウンタの値が大きいと、最長時
間未使用(LRU)の情報はあいまいな(fussy)ものとなりう
る、即ち実際のページ・アクセスの順序の決定は困難な
ものとなることを示唆する。C1カウンタの大きな値及び
C2カウンタの値"0"によるプロセスはクラス1に分類さ
れる。
【0034】従って、4つのクラスは、スワップ・アウ
トされるページのページ・テーブル・エントリをエージ
ャが走査する順序を決めるために必要な情報を提供す
る。良好な実施例では、走査の順序はクラス4、クラス
1、最後にクラス2である。間違ったページがスワップ
・アウトされる可能性が余りにも高いので、クラス3は
走査されない。
【0035】図4及び図5は本発明の動作を示す流れ図
を示す。図4は本発明に関連してスケジューラの実行の
流れ図を示す。ブロック60で、CPU タイム・スライスが
与えられるプロセスが識別される。ブロック62で、当該
プロセスに対応するテーブル形式50のC1カウンタ(図3
参照)が増分される。ブロック64で、ブロック60で識別
されたプロセスにタイム・スライスが与えられるプロセ
スが継続する。
【0036】図5はCPU タイム・スライスをエージャが
取得する毎の本発明のプロセスの流れを示す。エージャ
はブロック66で開始し、次いでブロック68でテーブル・
フォーマット50内の第1のエントリを選択する(図3参
照)。判定ブロック70で、C1カウンタが0に等しいかど
うかが判定される。もし判定ブロック70の結果がイエス
ならば、ブロック72でC2カウンタが増分される。もし判
定ブロック70の結果がノーならば、C1カウンタは0より
も大きいのでC2カウンタはブロック74でリセットされ
る。判定ブロック76で全てのエントリが点検 (visit)、
即ちサービスされたかどうかが判定される。もし判定ブ
ロック76の結果がノーならば、ブロック78で次のエント
リが選択された後、判定ブロック70に戻る。もし判定ブ
ロック76の結果がイエスならば、エージャはブロック80
に進み、テーブル・フォーマット50から第1のエントリ
を選択する。次にブロック82でC1カウンタがt1 (第1の
調整可能なしきい値) よりも大きいかどうか、そしてC2
カウンタが0に等しいかどうかが判定される。もし判定
ブロック82の結果がイエスならば、ブロック84でエント
リはクラス1としてマークされる。もし判定ブロック82
の結果がノーならば、判定ブロック86でC1カウンタがt1
よりも小さくかつt2(第2の調整可能なしきい値)よりも
大きいかどうか、そしてC2カウンタが0に等しいかどう
かが判定される。もし判定ブロック86の結果がイエスな
らば、ブロック88でエントリはクラス2としてマークさ
れる。もし判定ブロック86の結果がノーならば、判定ブ
ロック90でC1カウンタが0に等しいかどうか、そしてC2
カウンタがt3 (第3の調整可能なしきい値) よりも大き
くかつt4(第4の調整可能なしきい値)よりも小さいかど
うかが判定される。調整可能な値t1、t2、t3及びt4はシ
ステムによって異なり、作業負荷特性による。もし判定
ブロック90の結果がイエスならば、エントリはブロック
92でクラス3としてマークされる。もし判定ブロック90
の結果がノーならば、ブロック94でC1カウンタが0に等
しいかどうか、そしてC2カウンタがt4よりも大きいかど
うかが判定される。もし判定ブロック94の結果がイエス
ならば、エントリはブロック96でクラス4としてマーク
される。もし判定ブロック94の結果がノーならば、又は
ブロック84、88、92及び96の後に、ブロック98で全ての
エントリが点検されたかどうかが判定される。もし判定
ブロック98の結果がノーならば、ブロック130 で次のエ
ントリが選択され、判定ブロック82に戻る。もし判定ブ
ロック98の結果がイエスならば、最初にブロック132
で、クラス4としてマークされた全てのプロセスに (CP
U タイムが使用できる間に) エージング・サービスが提
供される。次にブロック134 で、クラス1としてマーク
された全てのプロセスに(CPU タイムが使用できる間に)
エージング・サービスが提供される。そしてブロック13
6 で、クラス2としてマークされた全てのエントリに
(CPU タイムが使用できる間に)エージング・サービスが
提供される。ブロック136が終了すると、エージャはブ
ロック138でスケジューラ実行のサイクルを終了する。
【0037】図6に、本発明によるデータ処理システム
100 の概要ブロック図を例として示す。データ処理シス
テム100はプロセッサ102を備える。プロセッサ102は中
央処理装置(CPU)104及びメモリ106を備える。ハード・
ディスク記憶装置108 及びディスケット装置110の形式
の付加メモリがプロセッサ102に接続される。本発明を
データ処理システム100 で実現するコンピュータ・プロ
グラムが記録されているディスケット112がディスケッ
ト装置110に収納されている。データ処理システム100
はマウス114及びキーボード116を含むユーザ・インタフ
ェース・ハードウェアを備え、ユーザがプロセッサ102
に入力し表示装置118がユーザに表示データを提示する
ことを可能にする。データ処理システム100は印刷装置1
20を備えることもできる。
【0038】
【発明の効果】次のエージング・サービスの対象となる
次のプロセスが正確にエージャに示されることが本発明
の技術的な利点である。プロセスを分類することによ
り、必要に応じて、即ち、オーバコミットのシステムに
おいて物理メモリ空間が現に必要なときには、エージャ
は正確にプロセスを点検し、そのページのスワップを行
うことができる。
【図面の簡単な説明】
【図1】仮想メモリ、物理メモリ及び記憶装置の相互関
係を示す図である。
【図2】本発明によるページ・テーブル及びページ・テ
ーブル・エントリを示す図である。
【図3】本発明に従って用いられるテーブル形式を示す
図である。
【図4】本発明に従ってスケジューラ/ディスパッチャ
の実行の流れを示す流れ図である。
【図5】エージャがCPU タイム・スライスを取得する毎
の本発明の動作を示す流れ図である。
【図6】本発明によるデータ処理システムの概要図であ
る。
【符号の説明】
10 メモリ・システム 12 仮想メモリ 14 物理メモリ 16 記憶装置 18 ページ 30 ページ・テーブル 32 ページ・テーブル・エントリ 34 アドレス・セクション 36 情報フラグ 38 アクセス/非アクセス・フラグ

Claims (11)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のプロセスを実行できるコンピュータ
    ・システムのメモリ管理に基づくページングにおいて、
    エージャの効率を増加させる方法であって、 もしプロセスが、該プロセスに対するエージング・サー
    ビスの後に所定数よりも多い複数のCPUタイム・スラ
    イスを受取っていれば、該プロセスを第1のクラスに入
    れるステップと、 もし前記プロセスが、該プロセスに対するエージング・
    サービスの後に前記所定数よりも少ない複数のCPUタ
    イム・スライスを受取っていれば、該プロセスを第2の
    クラスに入れるステップと、 もし前記プロセスが、該プロセスに対するエージング・
    サービスの後にCPUタイム・スライスを受取っていな
    ければ、該プロセスを第3のクラスに入れるステップ
    と、 もし前記プロセスが、該プロセスに対する所定数のエー
    ジング・サービスの後にCPUタイム・スライスを受取
    っていなければ、該プロセスを第4のクラスに入れるス
    テップと、 前記プロセスが入れられた前記第1、第2、第3、第4
    のクラスとアクセス/非アクセス履歴とに基づいて、プ
    ロセスのページを遊休リストに指定するステップと を含む方法。
  2. 【請求項2】前記指定ステップが、 最初に前記第4のクラスからのページにエージング・サ
    ービスを提供するステップと、 さらに必要なら、次に前記第1のクラスからのページに
    エージング・サービスを提供するステップと、 さらに必要なら、次に前記第2のクラスからのページに
    エージング・サービスを提供するステップと を含む請求項1の方法。
  3. 【請求項3】プロセス毎に、該プロセスに割当てられた
    それぞれのCPUタイム・スライスのカウント、及び該
    プロセスに割当てられたタイム・スライスがなかったこ
    とを検出する時間のカウントを維持するためのテーブル
    を形成するステップをさらに含む、請求項1の方法。
  4. 【請求項4】前記プロセスにエージング・サービスが提
    供される毎に割当てられた前記タイム・スライスのカウ
    ントをリセットするステップをさらに含む、請求項3の
    方法。
  5. 【請求項5】複数のプロセスを実行できるコンピュータ
    ・システムのメモリ管理に基づくページングにおいて、
    エージャの効率を向上させるシステムであって、 エージング・サービスを受けた後に所定数よりも多い複
    数のCPUタイム・スライスを受取ったプロセスを第1
    のクラスに入れる手段と、 エージング・サービスを受けた後に前記所定数よりも少
    ない複数のCPUタイム・スライスを受取ったプロセス
    を第2のクラスに入れる手段と、 エージング・サービスを受けた後にCPUタイム・スラ
    イスを受取らなかったプロセスを第3のクラスに入れる
    手段と、 所定数のエージング・サービスを受けた後にCPUタイ
    ム・スライスを受取らなかったプロセスを第4のクラス
    に入れる手段と、 前記プロセスが入れられた前記第1、第2、第3、第4
    のクラスとアクセス/非アクセス履歴とに基づいて、プ
    ロセスのページを遊休リストに指定する手段と、 を含むシステム。
  6. 【請求項6】プロセス毎に、該プロセスに割当てられた
    それぞれのCPUタイム・スライスのカウント、及び該
    プロセスに割当てられたタイム・スライスがなかったこ
    とを検出する時間のカウントを維持するためのテーブル
    を形成する手段含む、請求項5のシステム。
  7. 【請求項7】前記プロセスを点検する毎に割当てられた
    前記タイム・スライスのカウントをリセットする手段を
    備える、請求項6のシステム。
  8. 【請求項8】複数のプロセスを実行できるコンピュータ
    ・システムのメモリ管理に基づくページングにおいて、
    エージャを効率的に使用するコンピュータ・システムで
    あって、 もし前記プロセスが、該プロセスに対するエージング・
    サービスの後に所定数よりも多い複数のCPUタイム・
    スライスを受取っていれば、該プロセスを第1のクラス
    に入れる手段と、 もし前記プロセスが、該プロセスに対するエージング・
    サービスの後に前記所定数よりも少ない複数のCPUタ
    イム・スライスを受取っていれば、該プロセスを第2の
    クラスに入れる手段と、 もし前記プロセスが、該プロセスに対するエージング・
    サービスの後にCPUタイム・スライスを受取っていな
    ければ、該プロセスを第3のクラスに入れる手段と、 もし前記プロセスが、該プロセスに対する所定数のエー
    ジング・サービスの後にCPUタイム・スライスを受取
    っていなければ、該プロセスを第4のクラスに入れる手
    段と 前記プロセスが入れられた前記第1、第2、第3、第4
    のクラスとアクセス/非アクセス履歴とに基づいて、プ
    ロセスのページを遊休リストに指定する手段と、 を備えるシステム。
  9. 【請求項9】前記指定手段は 最初に前記第4のクラスからのページにエージング・サ
    ービスを提供し、 さらに必要なら、次に前記第1のクラスからのページに
    エージング・サービスを提供し、 さらに必要なら、次に前記第2のクラスからのページに
    エージング・サービスを提供する手段と を備える、請求項8のシステム。
  10. 【請求項10】プロセス毎に、該プロセスに割当てられ
    たそれぞれのCPUタイム・スライスのカウント、及び
    該プロセスに割当てられたタイム・スライスがなかった
    ことを検出する時間のカウントを維持するためのテーブ
    ルを形成する手段を備える、請求項8のシステム。
  11. 【請求項11】前記プロセスを点検する毎に割当てられ
    た前記タイム・スライスのカウントをリセットする手段
    を備える、請求項10のシステム。
JP5025792A 1992-04-22 1993-02-15 メモリ管理方法及びシステム Expired - Lifetime JP2610086B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US872731 1992-04-22
US07/872,731 US5423017A (en) 1992-04-22 1992-04-22 Method of and apparatus for increasing efficiency of ager

Publications (2)

Publication Number Publication Date
JPH0689223A JPH0689223A (ja) 1994-03-29
JP2610086B2 true JP2610086B2 (ja) 1997-05-14

Family

ID=25360199

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5025792A Expired - Lifetime JP2610086B2 (ja) 1992-04-22 1993-02-15 メモリ管理方法及びシステム

Country Status (6)

Country Link
US (1) US5423017A (ja)
EP (1) EP0567421A1 (ja)
JP (1) JP2610086B2 (ja)
KR (1) KR960015582B1 (ja)
CN (1) CN1094172A (ja)
TW (1) TW212839B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619675A (en) * 1994-06-14 1997-04-08 Storage Technology Corporation Method and apparatus for cache memory management using a two level scheme including a bit mapped cache buffer history table and circular cache buffer list
US5664187A (en) * 1994-10-26 1997-09-02 Hewlett-Packard Company Method and system for selecting data for migration in a hierarchic data storage system using frequency distribution tables
US6038571A (en) * 1996-01-31 2000-03-14 Kabushiki Kaisha Toshiba Resource management method and apparatus for information processing system of multitasking facility
CA2312444A1 (en) * 2000-06-20 2001-12-20 Ibm Canada Limited-Ibm Canada Limitee Memory management of data buffers incorporating hierarchical victim selection
EP1697841A1 (en) * 2003-12-16 2006-09-06 Real Enterprise Solutions Development B.V. Memory management in a computer system using different swapping criteria
US20060074872A1 (en) * 2004-09-30 2006-04-06 International Business Machines Corporation Adaptive database buffer memory management using dynamic SQL statement cache statistics

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4035778A (en) * 1975-11-17 1977-07-12 International Business Machines Corporation Apparatus for assigning space in a working memory as a function of the history of usage
US4463424A (en) * 1981-02-19 1984-07-31 International Business Machines Corporation Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
US4597041A (en) * 1982-11-15 1986-06-24 Data General Corp. Method and apparatus for enhancing the operation of a data processing system
US4774659A (en) * 1986-04-16 1988-09-27 Astronautics Corporation Of America Computer system employing virtual memory
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
JPS63211041A (ja) * 1987-02-25 1988-09-01 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン データのブロツクの転送方法
US4926322A (en) * 1987-08-03 1990-05-15 Compag Computer Corporation Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management
US5063499A (en) * 1989-01-09 1991-11-05 Connectix, Inc. Method for a correlating virtual memory systems by redirecting access for used stock instead of supervisor stock during normal supervisor mode processing
US5043885A (en) * 1989-08-08 1991-08-27 International Business Machines Corporation Data cache using dynamic frequency based replacement and boundary criteria

Also Published As

Publication number Publication date
KR930022208A (ko) 1993-11-23
US5423017A (en) 1995-06-06
JPH0689223A (ja) 1994-03-29
CN1094172A (zh) 1994-10-26
TW212839B (en) 1993-09-11
EP0567421A1 (en) 1993-10-27
KR960015582B1 (ko) 1996-11-18

Similar Documents

Publication Publication Date Title
JP2856620B2 (ja) コンピュータ・システムにおけるメモリ管理方法及び装置
US6205519B1 (en) Cache management for a multi-threaded processor
US6067608A (en) High performance mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
US5317705A (en) Apparatus and method for TLB purge reduction in a multi-level machine system
US6119214A (en) Method for allocation of address space in a virtual memory system
USRE36462E (en) Method to control paging subsystem processing in virtual memory data processing system during execution of critical code sections
US7644252B2 (en) Multi-processor system and memory accessing method
US4718008A (en) Method to control paging subsystem processing in a virtual memory data processing system during execution of critical code sections
JP2858795B2 (ja) 実記憶割り当て方法
WO1997039407A1 (en) Mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
JPS62165250A (ja) 仮想記憶方法
EP0081822B1 (en) A method for operating a virtual storage management system
JP2528604B2 (ja) マルチビット・ベクトル履歴のリスト表示を利用するメモリ管理方法および装置
JP2610086B2 (ja) メモリ管理方法及びシステム
GB2609696A (en) Error information processing method and device, and storage medium
US6874076B2 (en) Method, system, and computer program product for migrating data from one real page to another
JPH0689222A (ja) コンピュータ・システムにおけるメモリ管理方法及び装置
EP1103898A2 (en) Microprocessor and memory
JP2000148515A (ja) メモリスケジューリング方法及びメモリスケジューリングプログラムを格納する記憶媒体
US20060294334A1 (en) Statement regarding federally sponsored-research or development
US5765210A (en) Allocation of real storage for hardware descriptors within virtual memory that are associated with on-line storage increments
JPH0695970A (ja) ページ・テーブル項目の効率的処理方法及び装置
JP2006260395A (ja) プログラムローディング方法及びその装置
JPH03127149A (ja) 主記憶管理方法
JPH04116742A (ja) 仮想記憶システムにおけるメモリ割り当て方式