JPH10269132A - メモリ管理の方法およびシステム - Google Patents

メモリ管理の方法およびシステム

Info

Publication number
JPH10269132A
JPH10269132A JP10028052A JP2805298A JPH10269132A JP H10269132 A JPH10269132 A JP H10269132A JP 10028052 A JP10028052 A JP 10028052A JP 2805298 A JP2805298 A JP 2805298A JP H10269132 A JPH10269132 A JP H10269132A
Authority
JP
Japan
Prior art keywords
storage unit
storage
state
data
status indicator
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.)
Pending
Application number
JP10028052A
Other languages
English (en)
Inventor
Alan Campbell Scott
スコット・アラン・キャンベル
Douglas Long Lynn
リン・ダグラス・ロング
Few Oobuabii Rinutsudo Jr
リンウッド・ヒュー・オーヴァビー・ジュニア
Raajaraaman Bara
バラ・ラージャラーマン
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 JPH10269132A publication Critical patent/JPH10269132A/ja
Pending 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
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures

Landscapes

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

Abstract

(57)【要約】 (修正有) 【課題】 計算機システム内の重要なシステム資源をよ
り効果的に管理するために計算機システム内のメモリの
管理を改善する。 【解決手段】 記憶マネージャ23′は、メモリの使用
状況を監視し、固定記憶制約が発生しうるかどうかを判
定する。それが発生しうると判定すると、記憶マネージ
ャは固定記憶制約をアプリケーション・プログラムに通
知する。これに応答して、アプリケーション・プログラ
ムは、記憶ユニット状態インジケータを固定から無指定
に変更することにより、一時的に必要としない可能性の
あるデータを含む記憶ユニットの状態を一時的に固定か
ら無指定に変更することができる。したがって、記憶ユ
ニットに関するシステム状態インジケータを固定からペ
ージ可能に変更するために記憶マネージャにオペレーテ
ィング・システム・プリミティブを出させる必要なし
に、記憶ユニットが必要に応じて記憶マネージャにとっ
て使用可能になる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、通信システム用の
メモリ管理に関し、より具体的には、大量のデータを処
理する通信システムを含む計算機システム用のメモリ管
理に関する。
【0002】
【従来の技術】メモリ管理は、長い間、通信システムを
含む計算機システム(まとめて「計算機システム」とい
う)の主な関心事であった。処理すべきデータおよびプ
ログラム命令の量が増すにつれて、メモリ管理はますま
す重要になっている。メモリはいくつかの方法で分割す
ることができる。一般にはメモリは、2次記憶装置およ
びメイン・メモリに分けることができる。2次記憶装置
は、アクセスするために入出力動作を必要とする可能性
のある、大容量低速記憶装置である。2次記憶装置の例
はDASD(直接アクセス記憶装置)である。メイン・
メモリは一般に、2次記憶装置よりかなり小容量であ
る。その結果、アプリケーション・プログラム全体また
は他の大きなデータ・ブロックがメイン・メモリに完全
に収まらない場合も多い。しかも、複数のアプリケーシ
ョン・プログラムが同時に実行される環境では、一般に
すべてのアプリケーション・プログラムおよびそれらが
使用するすべてのデータを同時にメイン・メモリに格納
することはできない。したがって、一般に、複数のアプ
リケーション・プログラム間でメイン・メモリを共用し
なければならない。
【0003】実行中、アプリケーション・プログラムは
2次記憶装置内の特定の記憶位置をアドレス指定する。
処理速度を高め、その結果、処理時間を短縮するため
に、2次記憶装置内に格納されているデータのうち、実
行中のアプリケーション・プログラムが使用する予定の
データを2次記憶装置からメイン・メモリにロードす
る。しかし、メイン・メモリのサイズの制約ならびに同
時に処理される様々なアプリケーション・プログラムの
数により、アプリケーション・プログラム全体またはそ
のアプリケーション・プログラムが使用するデータ・セ
ット全体をメイン・メモリにロードすることが不可能な
場合もある。このため、オペレーティング・システムは
複数のアプリケーション・プログラム間のメイン・メモ
リの共用を管理しなければならない。その結果、多数の
入出力動作を必要とするアプリケーション・プログラム
は計算機システム内にボトルネックを引き起こす可能性
がある。
【0004】したがって、メイン・メモリの共用を効果
的に管理することが重要である。このようなメモリ管理
の重要性は、アプリケーション・プログラムが処理する
データの量が増すにつれて、より重大なものになってい
る。
【0005】メイン・メモリの共用を管理するための方
法はいくつか知られている。その1つは「ページング」
と呼ばれる。これまで、ページングは、アプリケーショ
ン・プログラムまたはデータ・セット全体をメイン・メ
モリ内に入れておく必要性をなくすことによってメモリ
を管理するための有効な方法だった。ページングとは、
メイン・メモリ・アドレス空間をページと呼ばれる固定
長ブロックに分割する技法である。2次記憶装置もメイ
ン・メモリ内のものと同じサイズのページに分割され
る。2次記憶装置内のプログラムまたはデータのページ
とメイン・メモリ内のページは同じサイズなので、プロ
グラムまたはデータの一部を容易にメイン・メモリに収
めることができる。
【0006】処理中に、プログラムまたはデータの特定
の部分がメイン・メモリ内にないと判断された場合、そ
のアプリケーション・プログラムまたはデータのうちの
要求された部分を有するページが2次記憶装置からメイ
ン・メモリにロードされる。ページング・システムは一
般に「取出し方針」および「ページ置換」戦略を備えて
いる。取出し方針は2次記憶装置からメイン・メモリに
移動すべきページを選択する方法を指し、ページ置換戦
略は現在メイン・メモリ内にあって、他のページが2次
記憶装置からメイン・メモリへロードできる状態になっ
たときに置換またはオーバーレーされるページを選択す
る方法を指す。取出し方針の例は、プログラムが近い将
来そのページを必要とするだろうという予想に基づいて
2次記憶装置からページを取り出し、そのページをメイ
ン・メモリにロードする「ページ先読み」である。ペー
ジ置換戦略の例は、最も長い期間参照されなかったペー
ジを廃棄する「LRU」である。
【0007】ページング・システムおよび方法の管理
は、オペレーティング・システム記憶マネージャが扱う
場合が多い。オペレーティング・システム記憶マネージ
ャがメイン・メモリ内のデータまたはアプリケーション
・プログラムの各ページに関連するフラグまたはインジ
ケータを設定し、そのページの物理状態(すなわち、オ
ペレーティング・システムから見たページの状態)が
「固定」かまたは「ページ可能」かを示すことは珍しい
ことではない。「固定」であるページは、そのページが
「固定」のままである限り、いかなるページ置換戦略で
も置換に利用できないページを指す。これに対して、
「ページ可能」であるページは、ページ置換戦略で置換
可能なページを指す。
【0008】ページの物理状態が固定かまたはページ可
能かを示すシステム状態フラグは、オペレーティング・
システム記憶マネージャによって変更することができ
る。したがって、メモリ共用プロセスの一部として、メ
イン・メモリ内のページの置換が必要な場合、そのシス
テム状態フラグがオペレーティング・システム記憶マネ
ージャによってページ可能状態に設定されているような
ページだけを置換することができる。そのシステム状態
フラグがオペレーティング・システム記憶マネージャに
よって固定に設定されているようなページは、物理状態
が固定のままである限り、置換することができない。
【0009】様々なページング・システムを含むメモリ
管理システムについては、TsichritziesおよびBerstein
による「Operating Systems」(Academic Press, In
c.、1974年)というテキストブックの第4章および
第5章、Manoによる「ComputerSystem Architecture」
(Prentice Hall, Inc.、第2版、1982年)という
テキストブックの第12章、LevyおよびEckhouseによる
「Computer Programmingand Architecture: The VAX-1
1」(Digital Press、1980年)というテキストブッ
クの第8章に詳しく記載されている。
【0010】アプリケーション・プログラムは、オペレ
ーティング・システム記憶マネージャによってページに
関するシステム状態インジケータを変更させることがで
きる。これは一般に、システム状態フラグが示すメイン
・メモリ内の特定のページの物理状態が固定からページ
可能へまたはページ可能から固定へ変更されることをオ
ペレーティング・システムに通知することによってのみ
実施することができる。したがって、ページに関するシ
ステム状態フラグの状態を変更するためには、オペレー
ティング・システムに通知し、その変更をオペレーティ
ング・システム・レベルで行わなければならない。
【0011】「ページング」と呼ばれるメモリの共用を
管理するための方法は、オペレーティング・システム・
レベルでのメモリ共用管理を対象とする。このレベルの
動作では、メイン・メモリ内の個々のページの「ページ
ング」を制御するオペレーティング・システム記憶マネ
ージャは、管理対象の特定のページがアプリケーション
・プログラムの一部分またはアプリケーション・プログ
ラムが処理すべきデータ・ブロックまたは他のデータを
含むかどうかを把握していない。
【0012】「ページング」と同様にメモリの共用を管
理するための他の方法は、アプリケーション・プログラ
ムが処理すべき1ページ分または複数ページ分のデータ
を含む可能性のあるバッファを管理するものである。こ
の方法は、「バッファ管理」と呼ばれることもあるが、
オペレーティング・システム記憶マネージャと同様に動
作するバッファ記憶マネージャを使用する。オペレーテ
ィング・システム記憶マネージャとは異なり、バッファ
記憶マネージャはアプリケーション・プログラムと直接
対話する。アプリケーション・プログラムは、2次記憶
装置とメイン・メモリとの間のデータのバッファの移動
についてバッファ記憶マネージャに指示することができ
る。
【0013】
【発明が解決しようとする課題】要約すると、ページン
グおよびバッファ管理は、メイン・メモリの管理を含む
重要なシステム資源の保全を高めるために使用するメモ
リ管理の方式である。ページングまたはバッファ管理方
法およびシステムの使用によるメモリ管理では、アプリ
ケーション・プログラムおよびデータ・セットが同じサ
イズのブロックに分割されるので、このサイズを単位と
したセグメントの効果的な管理、短縮、再配置が可能で
ある。しかし、この管理は、メイン・メモリ内のページ
またはバッファを固定または解放するために、オペレー
ティング・システム・レベルでオペレーティング・シス
テム・プリミティブを出すが、オペレーティング・シス
テム・プリミティブを出すと、余分のオーバヘッドがあ
るので、パフォーマンスにマイナスの影響を及ぼす。し
たがって、重要なシステム資源であるメイン・メモリの
管理のパフォーマンスおよび有効性を改善する必要性が
引き続き存在する。
【0014】したがって、本発明の目的は、計算機シス
テム内の重要なシステム資源をより効果的に管理するた
めに計算機システム内のメモリの管理を改善するための
方法、システム、およびコンピュータ・プログラムを提
供することにある。
【0015】本発明の他の目的は、メイン・メモリを効
率よく使用するために計算機システム内のメモリを効果
的にページングし、メモリ内のバッファを管理するため
の方法、システム、およびコンピュータ・プログラムを
提供することにある。
【0016】
【課題を解決するための手段】上記その他の目的は、計
算機システム内のメイン・メモリの有効利用を最大限に
するためのメモリ管理システムによって、本発明により
提供される。本発明は、オペレーティング・システム記
憶マネージャによって管理されるページや、バッファ記
憶マネージャによって管理されるバッファを含む、様々
な記憶マネージャによる様々な記憶ユニットの共用の管
理に適用可能である。ページおよびバッファを含みかつ
これに限定されない様々な記憶ユニットは、以下まとめ
て「記憶ユニット」と呼ぶ。
【0017】本発明は、ユーザがこれからしばらくの間
はメイン・メモリ内で特定の記憶ユニットを固定にして
おく必要がなく、したがって、その記憶ユニットの状態
を固定からページ可能に変更し、その後、固定に戻すこ
とを希望する場合、オペレーティング・システム記憶マ
ネージャにその変更を通知し、ユーザの要求に応答して
メイン・メモリ内のバッファの各ページの物理状態を固
定からページ可能に変更するためにオペレーティング・
システム・プリミティブを出さなければならないという
これまでの認識に由来する。オペレーティング・システ
ム・プリミティブを出すと、オペレーティング・システ
ム記憶マネージャはバッファの各ページの物理状態に変
更を加えなければならないので、オーバヘッドおよび処
理時間が増えることになる。
【0018】したがって、本発明によるメモリ管理シス
テムは、バッファの物理状態を変更するためにオペレー
ティング・システム・プリミティブを出すようオペレー
ティング・システムに要求せずに、ユーザまたはアプリ
ケーション・プログラムが一時的に記憶ユニットの状態
を変更できるようにし、それにより、記憶ユニットの物
理状態を変更するオペレーティング・システム・プリミ
ティブに関連するオーバヘッドを回避するためのシステ
ム、方法およびコンピュータ・プログラムを提供する。
本発明によるメモリ管理システム、方法およびコンピュ
ータ・プログラムは、メイン・メモリおよび2次記憶装
置内の記憶ユニット間のデータの移動を制御するための
記憶マネージャを提供する。アプリケーション・プログ
ラムを含むデータを格納するために使用する2次記憶装
置は、複数の記憶位置を含む。アプリケーション・プロ
グラムを含むデータを格納するために使用するメイン・
メモリも、複数の記憶ユニットを含む。
【0019】2次記憶装置内の記憶位置とメイン・メモ
リ内の記憶ユニットとの間でのアプリケーション・プロ
グラムの一部分を含むデータの移動は、記憶ユニットに
関連する記憶ユニット状態インジケータに基づいて、記
憶マネージャが制御する。各記憶ユニットには記憶ユニ
ット状態インジケータが1つずつ関連づけられ、そのイ
ンジケータは、ユーザまたはアプリケーション・プログ
ラムによって、固定、ページ可能、無指定のいずれかの
状態に設定することができる。ユーザまたはアプリケー
ション・プログラムによって記憶ユニット状態インジケ
ータが固定に設定されている場合、記憶ユニット内のデ
ータは固定され、2次記憶装置からの他の記憶ユニット
で置換することができない。ユーザまたはアプリケーシ
ョン・プログラムによって記憶ユニット状態インジケー
タがページ可能に設定されている場合、記憶ユニット内
に格納されたデータは固定されず、2次記憶装置内に格
納されたデータで置換することができる。最後に、ユー
ザまたはアプリケーション・プログラムによって1つの
記憶ユニットに関する記憶ユニット状態インジケータが
無指定の状態に設定されている場合、その記憶ユニット
内に格納されたデータは、システムの必要性に応じて、
固定またはページ可能のいずれかにすることができる。
【0020】記憶マネージャは、2次記憶装置およびメ
イン・メモリの使用レベルならびに2次記憶装置とメイ
ン・メモリとの間のデータの移動を判定し、使用レベル
に応答して2次記憶装置とメイン・メモリ内の記憶ユニ
ットとの間のデータの移動を制御する。メイン・メモリ
の使用レベルが高く、多数の記憶ユニットがメイン・メ
モリ内で固定されていると判定すると、記憶マネージャ
は、高い使用レベルの発生および可能性のあるシステム
制約(たとえば、固定記憶制約)をアプリケーション・
プログラムに通知する。これに応答して、アプリケーシ
ョン・プログラムは、そのアプリケーション・プログラ
ムに関連する記憶ユニットに関する記憶ユニット状態イ
ンジケータをある状態から別の状態に変更することがで
きる。たとえば、使用レベルが高いことによる固定記憶
制約の可能性を示す信号をアプリケーション・プログラ
ムが記憶マネージャから受け取った場合、ユーザは、記
憶ユニット状態インジケータを固定から無指定に変更す
ることにより、依然としてアプリケーション・プログラ
ムによる使用に必要なデータを含む記憶ユニットの状態
を一時的に変更することができる。アプリケーション・
プログラムが記憶ユニット状態インジケータを固定から
無指定に変更した結果、記憶マネージャは、その記憶ユ
ニットの物理状態(すなわち、システム状態インジケー
タ)を固定からページ可能に変更するためにオペレーテ
ィング・システムにオペレーティング・システム・プリ
ミティブを出させる必要なしに、必要に応じて記憶ユニ
ットを使用可能にできる。その後、アプリケーション・
プログラムは、その記憶ユニットの記憶ユニット状態イ
ンジケータを固定に戻すことができる。したがって、メ
イン・メモリ内の記憶ユニット内に格納されたデータを
2次記憶装置からの他のデータで置換することを記憶マ
ネージャが実際に要求していないのであれば、アプリケ
ーション・プログラムは、その記憶ユニットの物理状態
(すなわち、システム状態インジケータ)を変更せず
に、記憶装置を他の記憶ユニットのために使用可能にす
ることができる。
【0021】記憶ユニット状態インジケータが無指定に
設定されているメイン・メモリ内の特定の記憶ユニット
が必要であると記憶マネージャが決定した場合に限り、
記憶マネージャは、その記憶ユニットの物理状態を固定
からページ可能に変更するようオペレーティング・シス
テムに通知することになる。アプリケーション・プログ
ラムが記憶ユニット状態インジケータをページ可能に変
更するかまたは固定に戻すまで、記憶ユニット状態イン
ジケータは無指定のままになり、オペレーティング・シ
ステム・プリミティブを出すことによるオーバヘッドを
発生しない。したがって、本発明は、他のデータを格納
するために記憶マネージャが実際に記憶ユニットを必要
としない限り、記憶ユニットの物理状態を固定からペー
ジ可能に変更するためにオペレーティング・システム・
プリミティブを出すことによるオーバヘッドを回避す
る。その結果、不要なオーバヘッドが回避され、それに
より、計算機システムによるメイン・メモリの使用のパ
フォーマンスおよび有効性が改善される。
【0022】
【発明の実施の形態】本発明の好ましい実施例を示す添
付図面に関連して、本発明について以下に詳細に説明す
る。しかし、本発明は、多種多様な形式で実施すること
ができるので、本明細書に記載する実施例に限定される
ものと解釈すべきではない。むしろ、この開示が徹底的
かつ完全なものになり、本発明の範囲を当業者に完全に
伝達するように、この実施例を示す。添付図面全体にわ
たって、同様の番号は同様の要素を指し示す。
【0023】まず図1を参照し、メモリを共用するため
のメモリ管理システムを有する計算機システムについて
説明する。図1に示すように、計算機システム10は、
オペレーティング・システム14と直接やりとりする中
央演算処理装置(CPU)12を含む。オペレーティン
グ・システム14は、2次記憶装置16およびメモリ管
理システム18と直接やりとりする。メモリ管理システ
ム18は複数のアプリケーション・プログラム20a、
20b、・・・20nを含む。このようなプログラム
は、オペレーティング・システム14を介して中央演算
処理装置12上で動作するユーザ・アプリケーションを
表す。メモリ管理システム18は、オペレーティング・
システム記憶マネージャ22と、バッファ記憶マネージ
ャ23と、メイン・メモリ24も含む。メイン・メモリ
24は、アプリケーション・プログラム用のメモリ24
a、24b、・・・24nを含む。2次記憶装置16
は、通常、メイン・メモリ24より大きく、永続記憶装
置または実記憶域と呼ばれることもある。DASDはあ
る種の2次記憶装置の例である。メイン・メモリ24
は、通常、2次記憶装置16よりサイズがかなり小さ
く、作業メモリと呼ばれることもある。
【0024】動作時にデータおよびアプリケーション・
プログラムは2次記憶装置16内に永続的に格納され
る。アプリケーション・プログラムによってデータおよ
びアプリケーション・プログラムの一部分(たとえば、
モジュールまたはルーチン)が要求されると、オペレー
ティング・システム14は、2次記憶装置16からその
データまたはアプリケーション・プログラムの一部分を
取り出し、それをメイン・メモリ24にロードする。2
次記憶装置16に比べて比較的サイズが小さいメイン・
メモリ24をより効率よく使用するために、また、オペ
レーティング・システム14が2次記憶装置16からデ
ータおよびプログラム命令を取り出す必要性を回避する
ために、データを管理するためのシステムがすでに開発
されている。このシステムは、ページング・システムと
も呼ばれるが、論理記憶単位である「ページ」単位で2
次記憶装置16内にデータおよびアプリケーション・プ
ログラムを格納する。さらに、メイン・メモリ24も、
メイン・メモリ24内のページが2次記憶装置16内の
ページと同じサイズになるようにページ単位に分割する
ことができる。したがって、2次記憶装置16から取り
出したデータおよびプログラム部分のページは、メイン
・メモリを断片化せずに、メイン・メモリ24に容易に
ロードすることができる。データおよびアプリケーショ
ン・プログラムの異なったサイズの論理単位をメイン・
メモリにロードすると、メイン・メモリの断片化により
メモリの小さい部分が未占有の状態で残るので、このよ
うな断片化は望ましくない。
【0025】図2に示すように、本発明による記憶マネ
ージャ23'は、特定のアプリケーション・プログラム
が使用するデータ・ページおよびアプリケーション・プ
ログラム・ページからなるセットを構成するページまた
はバッファ(すなわち、記憶ユニット)のリストを含む
ページ・テーブル26を管理する。このテーブル26
は、メイン・メモリ内の記憶ユニットが固定(F)また
はページ可能(P)のいずれであるかを示す、オペレー
ティング・システムから見た物理状態(すなわち、シス
テム状態インジケータ)のリストを含む。記憶ユニット
がメイン・メモリ内で固定されている場合、記憶ユニッ
トの物理状態が固定からページ可能に変更されるまで、
その記憶ユニットの内容はオペレーティング・システム
14によって置換されることはない。これに対して、記
憶ユニットの物理状態がページ可能である場合、オペレ
ーティング・システム14はメイン・メモリ24内の記
憶ユニットの内容を2次記憶装置16からの他の記憶ユ
ニットの内容に置換する。オペレーティング・システム
から見た各記憶ユニットの物理状態は、アプリケーショ
ン・プログラムごとのシステム状態インジケータ・テー
ブル26で記憶マネージャ23'によって管理すること
ができる。
【0026】オペレーティング・システムから見たシス
テム状態インジケータ(すなわち、記憶ユニットの物理
状態)を固定からページ可能へまたはページ可能から固
定へ変更するためには、オペレーティング・システム・
プリミティブを出さなければならない。その結果、アプ
リケーション・プログラムによる特定の記憶ユニットの
状態を変更する要求に応答して、記憶マネージャ23'
のシステム状態インジケータ・テーブル26で、メイン
・メモリ内の記憶ユニットに関する項目がオペレーティ
ング・システムによって変更される。現在2次記憶装置
16内に格納されていて、処理のためにメイン・メモリ
24にロードする必要があるデータを様々なアプリケー
ション・プログラムが必要としているにもかかわらず、
メイン・メモリ24内の多数の記憶ユニットが固定状態
を有し、そのためオペレーティング・システム14によ
って置換または廃棄することができない場合、固定記憶
制約という形の重大な制約が発生し得る。その結果、重
大な状態が発生する可能性がある。
【0027】本発明によれば、1組の記憶ユニット状態
インジケータを含むテーブル28も記憶マネージャ2
3'によって管理される。記憶ユニット状態インジケー
タは、アプリケーション・プログラムから見たメイン・
メモリ内の記憶ユニットに関連するものである。記憶ユ
ニット状態インジケータは、ある程度システム状態イン
ジケータに対応する。特に、アプリケーション・プログ
ラムから見た記憶ユニット状態インジケータおよびオペ
レーティング・システムから見たシステム状態インジケ
ータはどちらも固定状態およびページ可能状態を含む。
アプリケーション・プログラムが記憶ユニット状態イン
ジケータを固定からページ可能へまたはページ可能から
固定へ変更する場合、特定の記憶ユニットについてアプ
リケーション・プログラムから見た状態インジケータお
よびオペレーティング・システムから見た状態インジケ
ータが同じになるようにシステム状態インジケータに対
して同じ変更を加えるために、オペレーティング・シス
テム・プリミティブも出す必要がある。
【0028】しかし、メイン・メモリ24の管理ならび
に2次記憶装置16とメイン・メモリ24との間のデー
タの移動を改善するため、本発明では、メイン・メモリ
24を動的にページングする機能を追加する。これは、
アプリケーション・プログラムから見た無指定という第
3の状態を追加することによって実施する。記憶ユニッ
ト状態インジケータ・テーブル28に示す無指定状態
(DC)は、記憶マネージャ23'によって管理され
る。メイン・メモリの使用レベルが非常に高く、重大レ
ベルに達しており、メイン・メモリ内の記憶ユニットの
多くが固定状態を有すると記憶マネージャ23'が判定
した場合、記憶マネージャ23'はこの潜在的に重大な
システム資源制約をアプリケーション・プログラムに通
知し、メイン・メモリ24などの重大なシステム資源の
有効利用を最大限にするために記憶ユニットのユーザが
記憶マネージャ23'と連携作業できるようにする。固
定記憶制約という形で潜在的に重大なシステム資源制約
の通知を記憶マネージャ23'から受け取ったことに応
答して、アプリケーション・プログラムは、そのアプリ
ケーション・プログラムに関連する記憶ユニットの記憶
ユニット状態インジケータをある状態から別の状態に変
更することができる。たとえば、アプリケーション・プ
ログラムがあとで使用するために依然として必要なデー
タを含む記憶ユニットの状態は、記憶ユニット状態イン
ジケータを固定から無指定に変更することにより、アプ
リケーション・プログラムによって一時的に変更するこ
とができる。記憶ユニット状態インジケータを固定から
無指定に変更することにより、記憶マネージャ23'
は、記憶ユニットの物理状態(すなわち、システム状態
インジケータ)を固定からページ可能に変更するために
オペレーティング・システムにオペレーティング・シス
テム・プリミティブを出させる必要なしに、必要に応じ
てその記憶ユニットを使用可能にする。その後、アプリ
ケーション・プログラムは、記憶ユニット状態インジケ
ータを無指定から固定に戻すことができる。
【0029】したがって、メイン・メモリ24内の記憶
ユニット内に格納されたデータを2次記憶装置からの他
のデータで置換することを記憶マネージャ23'が実際
に要求していないのであれば、アプリケーション・プロ
グラムは、オペレーティング・システムから見たその記
憶ユニットの物理状態を変更せずに、その記憶ユニット
を他のデータに使用可能にすることができる。記憶ユニ
ット状態インジケータが無指定である記憶ユニットを記
憶マネージャ23'が実際に使用する必要がある場合、
記憶マネージャは、その場合に限り、その記憶ユニット
の物理状態を固定からページ可能に変更し、特定のバッ
ファのシステム状態インジケータを固定からページ可能
に変更するためにオペレーティング・システム・プリミ
ティブを出すことによりオペレーティング・システムに
通知する。アプリケーション・プログラムが特定の記憶
ユニットの記憶ユニット状態インジケータを固定に戻す
まで、記憶ユニット状態インジケータは無指定に設定さ
れたままになる。その結果、実際に特定の記憶ユニット
の使用を必要とすると記憶マネージャ23'が判定する
時点まで、システム状態インジケータを固定からページ
可能に変更するためのオペレーティング・システム・プ
リミティブは一切出されず、それにより、オペレーティ
ング・システム・プリミティブを出すことによって発生
する恐れのあるオーバヘッドが回避される。
【0030】図3〜6は、本発明による方法、装置(シ
ステム)およびプログラム製品の流れ図および制御フロ
ー図である。流れ図および制御フロー図の各ブロックな
らびに流れ図および制御フロー図内のブロックおよびス
テップの組合せは、複数のコンピュータ・プログラム命
令によって実現可能である。これらのコンピュータ・プ
ログラム命令をコンピュータまたはその他のプログラム
可能装置にロードすると、そのコンピュータまたはその
他のプログラム可能装置で実行される命令が流れ図また
は制御フローのブロックおよびステップに指定された機
能を実現するための手段を作成するようなマシンを生成
することができる。また、このようなコンピュータ・プ
ログラム命令をコンピュータ可読メモリに格納すると、
そのコンピュータ可読メモリ内に格納された命令が流れ
図または制御フローのブロックまたはステップで指定さ
れた機能を実現する命令手段を含む製造物を生成するよ
うに、特定の方法で機能するようコンピュータまたはそ
の他のプログラム可能装置に指示することもできる。ま
た、コンピュータ・プログラム命令をコンピュータまた
はその他のプログラム可能装置にロードすると、一連の
動作ステップをコンピュータまたはその他のプログラム
可能装置で実行させて、コンピュータまたはその他のプ
ログラム可能装置で実行される命令が流れ図または制御
フローのブロックまたはステップで指定された機能を実
現するためのステップを提供するようなコンピュータ実
現プロセスを生成することもできる。
【0031】したがって、流れ図および制御フロー図の
ブロックおよびステップは、指定された機能を実行する
ための手段の組合せと、指定された機能を実行するため
のステップの組合せと、指定された機能を実行するため
のプログラム命令手段とをサポートする。流れ図および
制御フロー図の各ブロックまたはステップと、それらの
ブロックおよびステップの組合せとは、指定された機能
またはステップを実行するハードウェアベースの専用コ
ンピュータ・システム、または専用ハードウェアとコン
ピュータ命令との組合せによっても実現することができ
る。
【0032】図3を参照し、アプリケーション・プログ
ラムが記憶ユニット状態インジケータを無指定に設定す
る方法の例を示す高レベル流れ図について説明する。こ
の例は、通信システム内の第1のノードで処理中のアプ
リケーション・プログラムから第2のノードで処理中の
アプリケーション・プログラムにデータを送信するとい
う状況にある。この特定の例および図4〜6に関連して
説明する例では、記憶ユニットは「バッファ」であり、
記憶ユニット状態インジケータはバッファ状態インジケ
ータである。固定記憶制約が存在するという通知を記憶
マネージャ23'から受け取ったときに記憶ユニット状
態インジケータを固定から無指定に変更するかどうかの
決定は、アプリケーション・プログラムのみの裁量に任
される。この例では、アプリケーション・プログラムが
50でメイン・メモリ内の固定記憶ユニットを要求し、
獲得する。この要求は、ネットワーク上の別のノードに
データを送信するなどのアプリケーション・プログラム
内の次のステップを処理するためにアプリケーション・
プログラムが固定バッファを必要とするときに行うこと
ができる。次に52で送信用にメイン・メモリ内に固定
されたバッファにデータを構築する。次に54で固定メ
モリからネットワーク上の別のノードにデータを送信す
る。アプリケーション・プログラムは58で記憶マネー
ジャ23'にそのバッファに関するバッファ状態インジ
ケータを固定から無指定に変更させる。次にアプリケー
ション・プログラムは60で、送信したデータを受信側
ノードが正しく受信したかどうかを示す受信側ノードか
らの応答を待つ。
【0033】送信側ノードが受信側ノードからの応答を
受け取ると、62でその応答が「否定」か「肯定」かと
いう判定を行う。受信側ノードからの応答が「否定」で
あり、データの送信中にエラーが発生したことを意味す
る場合、アプリケーション・プログラムは64で記憶マ
ネージャ23'に特定のバッファに関するバッファ状態
インジケータを固定に変更させ、データの再送信のため
に54に制御を戻す。アプリケーション・プログラムが
受信側ノードから受け取った応答が「肯定」であり、ア
プリケーション・プログラムが送信したデータを受信側
ノードが正しく受信したことを意味する場合、記憶マネ
ージャ23'は66でバッファを解放し、使用可能バッ
ファのプールにそのバッファを戻す。
【0034】次に図4を参照し、固定メモリを要求した
ときの記憶マネージャ23'の動作を示す高レベル流れ
図について説明する。記憶マネージャは、アプリケーシ
ョン・プログラムによるメモリの要求に応答して、70
でメイン・メモリからのメモリ割振りを要求する。次に
記憶マネージャ23'は、固定記憶制約が存在するかど
うか(すなわち、固定状態に設定されたページが多すぎ
るので、メイン・メモリから十分な数のページを置換ま
たは廃棄することができないという制約がシステムに存
在する可能性があるかどうか)を72で判定する。固定
記憶制約が存在するかどうかは、システム状態インジケ
ータおよびバッファ状態インジケータと、メイン・メモ
リの限界および使用量と、固定記憶制約に関する所定の
しきい値とを用いて、記憶マネージャ23'が識別する
ことができる。記憶マネージャ23'は、しきい値を超
えているかどうかを判定するのに任意の比較方法を使用
することができる。
【0035】固定記憶制約が存在するという72におけ
る記憶マネージャによる判定に基づいて、記憶マネージ
ャ23'は74で固定記憶制約の発生をアプリケーショ
ン・プログラムに通知する。次に記憶マネージャ23'
は、76でメモリ再利用をスケジューリングし、78で
要求側アプリケーション・プログラムに制御およびバッ
ファを戻す。72で固定記憶制約が一切存在しないとい
う判定が行われた場合、バッファおよび制御はメモリを
要求したアプリケーション・プログラムに戻される。
【0036】次に図5を参照すると、同図にはメモリ再
利用中の記憶マネージャ23'の動作を示す高レベル流
れ図が示されている。メモリ再利用処理中に記憶マネー
ジャ23'は、メモリの使用状況をしきい値レベルと比
較するために使用する上記のプロセスまたはその他の方
法により、固定記憶制約が存在するかどうかについて9
0で判定を行う。固定記憶制約が存在する場合、記憶マ
ネージャ23'は92で無指定状態を有するバッファを
突き止める。その後、記憶マネージャ23'は、94で
そのバッファのページに関するシステム状態インジケー
タを固定からページ可能に変更するようオペレーティン
グ・システムに通知する。次に記憶マネージャ23'
は、90で固定記憶制約が存在するかどうかを判定する
ためにこのプロセスを繰り返し、無指定状態のバッファ
を突き止めて、突き止めたバッファのページに関するシ
ステム状態インジケータをオペレーティング・システム
に固定からページ可能に変更させるプロセスを繰り返
す。90で固定記憶制約がもはや存在しないという判定
が行われた場合、記憶マネージャは単にメモり再利用プ
ロセスを終了する。
【0037】次に図6を参照すると、同図にはシステム
資源制約を処理する際の3つのアプリケーション・プロ
グラムの間の連携作業の制御フロー図が示されている。
ステップ1でアプリケーション・プログラム1(「アプ
リケーション1」)は、記憶マネージャ23'が複数の
ブロックまたはページの形のメモリ・プールを作成する
よう要求する。ステップ2で記憶マネージャは、ステッ
プ1に応答してアプリケーション1用に固定およびペー
ジ可能バッファのメモリ・プールを作成する。次にアプ
リケーション1は、固定バッファが必要であると判定
し、ステップ3で固定バッファを獲得するためにメイン
・メモリ内の複数の固定バッファを要求する。図には示
していないが、記憶マネージャは、この要求に応答し
て、バッファに関するシステム状態インジケータに基づ
いて固定であるバッファを識別し、アプリケーション1
による使用のためにこのバッファを提供する。かくして
アプリケーション1が固定バッファを獲得する。
【0038】次にこの例のステップ4では、アプリケー
ション・プログラム2(「アプリケーション2」)もメ
モリ・プールを作成するよう要求する。プールの作成を
求めるアプリケーション2の要求に応答して、記憶マネ
ージャ23'は、第2のプールを作成するのではなく、
前に作成したプールにステップ5でユーザとしてアプリ
ケーション2を単に追加するだけである。その後、アプ
リケーション・プログラム3(「アプリケーション
3」)は、ステップ6でメモリ・プールを作成するよう
要求する。これに応答して、記憶マネージャ23'は、
他のメモリ・プールを作成するのではなく、同じく前に
作成したプールにステップ7でユーザとしてアプリケー
ション3を追加する。
【0039】図6に示す例では、次にアプリケーション
2がステップ8でページ可能バッファを獲得するため
に、バッファに関するバッファ状態インジケータをペー
ジ可能として設定するよう記憶マネージャ23'に通知
することにより、ページ可能バッファを要求し、記憶マ
ネージャ23'は、この要求に応答して、選択されたバ
ッファのページに関するシステム状態インジケータをペ
ージ可能に設定するようオペレーティング・システムに
通知する(図示せず)。次にアプリケーション3はステ
ップ9で固定バッファを要求して獲得する。そのため、
記憶マネージャ23'は特定のバッファに関するバッフ
ァ状態インジケータを固定に設定し、同じバッファ内の
ページに関するシステム状態インジケータを固定状態に
設定するようオペレーティング・システムに通知する
(図示せず)。その後、この例ではアプリケーション1
がステップ10で同様にして固定バッファを要求し、獲
得する。そのため記憶マネージャ23'は選択されたバ
ッファに関するバッファ状態インジケータを固定に設定
し、同じバッファ内のページに関するシステム状態イン
ジケータを固定に設定するようオペレーティング・シス
テムに通知する(図示せず)。
【0040】このような累積バッファ要求の結果とし
て、記憶マネージャ23'は、固定記憶制約が発生して
いると判定し、ステップ11で3つのアプリケーション
・プログラムすべてに固定記憶制約を通知する。次にア
プリケーション2は獲得したページ可能バッファをステ
ップ12で固定しようと試行するが、この試行は固定記
憶制約のために中断される。次にアプリケーション3は
ステップ13で別の固定バッファを獲得しようと試行す
る。この試行も固定記憶制約のためにステップ13で中
断される。
【0041】その後、記憶マネージャ23'による固定
記憶制約の通知に応答して、アプリケーション1はステ
ップ14で、一時的に固定しておく必要がないバッファ
を識別し、識別したバッファに関するバッファ状態イン
ジケータを固定から無指定に変更するよう記憶マネージ
ャ23'に指示する。その後、記憶マネージャ23'はス
テップ15でページ解放コマンドを出し、アプリケーシ
ョン2およびアプリケーション3による固定バッファの
要求に対応できるだけの十分な数のページが「解放」さ
れる(すなわち、物理状態がページ可能に変更される)
まで、バッファ状態インジケータが無指定に設定されて
いる各バッファに関するシステム状態インジケータを固
定からページ可能に変更するようオペレーティング・シ
ステムに通知する。バッファ状態インジケータが無指定
に設定されている各バッファのページについては、オペ
レーティング・システム・プリミティブは出されない。
むしろ、記憶マネージャ23'は、固定記憶制約が克服
されるまで、バッファ状態インジケータがアプリケーシ
ョン・プログラムによって無指定に設定されているバッ
ファのぺージの物理状態を固定からページ可能に変更す
るようオペレーティング・システムに通知し続けるだけ
である。したがって、バッファ状態インジケータが無指
定に設定されているバッファのなかには、対応するシス
テム状態インジケータが固定からページ可能に変更され
ないバッファがいくつかあり得るので、現在記憶マネー
ジャ23'が必要としないバッファのページについてオ
ペレーティング・システム・プリミティブを出すという
不要なオーバヘッドが回避される。
【0042】最後に、アプリケーション1によってバッ
ファ状態インジケータを固定から無指定に変更し、固定
記憶制約を克服するために必要な最小数のオペレーティ
ング・システム・プリミティブを出した結果として、ア
プリケーション2およびアプリケーション3の中断され
ていた固定バッファの要求がステップ16および17で
処理され、固定バッファ要求が満足される。
【0043】一般に、アプリケーション・プログラムが
そのアプリケーション・プログラムから見たバッファの
状態を固定から無指定に変更すると(すなわち、バッフ
ァのインジケータ状態を変更すると)、オペレーティン
グ・システムは、データを処理するために特定のバッフ
ァが必要であると記憶マネージャ23'が判定した場合
に、そのバッファに関するオペレーティング・システム
から見たシステム状態インジケータを固定からページ可
能に変更する。本発明の結果として、無指定状態は、ア
プリケーション・プログラムがシステムのパフォーマン
ス低下を避けるために一時的にバッファまたはページの
使用状況を変更するのを可能にする。本発明では、アプ
リケーション・プログラムが依然として必要としている
データを含むバッファの状態を一時的に変更するため
に、ユーザは、バッファ状態インジケータを固定から無
指定に変更することができる。無指定状態は、記憶マネ
ージャ23'が必要に応じてバッファまたはページを使
用するのを可能にする。しかし、ユーザがもう一度バッ
ファまたはページを固定状態にすることを要求したとき
は、アプリケーション・プログラムはそのバッファの状
態を無指定から固定に戻すことができる。このため、ユ
ーザは、他のアプリケーション・プログラムによる使用
のためまたは2次記憶装置からロードすべきデータの格
納のために実際にバッファが必要であると記憶マネージ
ャが判定しない限り、バッファのページの物理状態(そ
のバッファのページに関するシステム状態インジケー
タ)を変更するオペレーティング・システム・プリミテ
ィブを出す必要なしに、必要に応じてメイン・メモリを
他のアプリケーション・プログラムが使用できるように
することができる。
【0044】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0045】(1)計算機システムにおいて記憶域を保
全するためのメモリ管理システムであって、データを格
納するための複数の記憶位置を含む記憶手段と、データ
を格納するための複数の記憶ユニットを含むメモリ手段
と、それぞれが前記記憶ユニットの1つに関連し、その
関連する記憶ユニットが、該記憶ユニットに格納された
データが固定されていることを示す固定状態と、該記憶
ユニットに格納されたデータが前記記憶位置の1つに格
納されたデータで置換できることを示すページ可能状態
と、無指定状態とのいずれか1つに設定されていること
を示すための複数の記憶ユニット状態インジケータと、
前記記憶手段および前記記憶ユニットに機能的に接続さ
れ、特定の記憶ユニットに関連する記憶ユニット状態イ
ンジケータに応答して、前記特定の記憶ユニットと前記
記憶手段との間のデータの移動を制御するための記憶マ
ネージャ手段とを含むメモリ管理システム。 (2)前記記憶マネージャ手段が、前記特定の記憶ユニ
ットに関連する記憶ユニット状態インジケータが固定状
態に設定されていることを判定して、前記特定記憶ユニ
ットに格納されたデータの置換を防止するための固定制
御手段と、前記特定の記憶ユニットに関連する記憶ユニ
ット状態インジケータがページ可能状態に設定されてい
ることを判定して、前記特定の記憶ユニットに格納され
たデータを前記記憶手段に格納されたデータで置換する
ためのページ可能制御手段と、前記特定の記憶ユニット
に関連する記憶ユニット状態インジケータが無指定状態
に設定されていることを判定して、前記特定の記憶ユニ
ットに格納されたデータの置換を可能にするための無指
定制御手段とを含むことを特徴とする、上記(1)に記
載のメモリ管理システム。 (3)前記記憶マネージャ手段が、前記メモリ手段の使
用レベルを判定するための手段と、前記メモリ手段の使
用レベルに応答して前記特定の記憶ユニットと前記記憶
手段との間のデータの移動を制御するための手段とをさ
らに含むことを特徴とする、上記(1)に記載のメモリ
管理システム。 (4)第1のアプリケーション・プログラムをさらに含
み、前記記憶マネージャ手段が、前記メモリ手段の使用
レベルが高いことを前記第1のアプリケーション・プロ
グラムに通知するための手段を含むことを特徴とする、
上記(3)に記載のメモリ管理システム。 (5)前記第1のアプリケーション・プログラムが、前
記通知に応答して、前記記憶マネージャ手段に選択され
た記憶ユニットに関連する記憶ユニット状態インジケー
タの設定を固定状態から無指定可能に変更させることを
特徴とする、上記(4)に記載のメモリ管理システム。 (6)前記記憶手段と、前記メモリ手段と、前記記憶マ
ネージャ手段とに機能的に接続され、前記メモリ手段の
前記使用レベルを判定するための手段と、それぞれが前
記複数の記憶ユニットの1つに関連し、固定状態または
ページ可能状態に設定される複数のシステム状態インジ
ケータと、該システム状態インジケータの状態に応答し
て前記記憶手段と前記記憶ユニットとの間のデータの移
動を制御するための手段とを含むオペレーティング・シ
ステムをさらに含み、前記記憶マネージャ手段が、選択
されたシステム状態インジケータを固定状態からページ
可能に変更するよう前記オペレーティング・システムに
通知するための手段を含むことを特徴とする、上記
(1)ないし(5)のいずれか一項に記載のメモリ管理
システム。 (7)中央演算処理装置と、データを格納するための複
数の記憶位置を有する2次記憶装置と、データを格納す
るための複数の記憶ユニットを有するメイン・メモリ
と、オペレーティング・システムとを有する計算機シス
テムにおいて記憶域を保全するためのメモリ管理方法で
あって前記計算機システムのアプリケーション・プログ
ラムによって使用されるデータを前記2次記憶装置に格
納するステップと、前記計算機システムのアプリケーシ
ョン・プログラムによって使用されるデータを前記メイ
ン・メモリに格納するステップと、1つの記憶ユニット
状態インジケータを前記記憶ユニットの1つに関連づ
け、対応する記憶ユニットが、該記憶ユニットに格納さ
れたデータが固定されていることを示す固定状態と、該
記憶ユニットに格納されたデータが固定されておらず前
記記憶位置の1つに格納されたデータで置換できること
を示すページ可能状態と、該記憶ユニットに格納された
データが固定またはページ可能のいずれにもすることが
できる無指定状態とのいずれか1つに設定されているこ
とを示すステップと、特定の記憶ユニットに関連する記
憶ユニット状態インジケータに応答してメイン・メモリ
内の前記特定の記憶ユニットと前記2次記憶装置との間
のデータの移動を制御するステップと、を含むメモリ管
理方法。 (8)前記制御するステップが、前記特定の記憶ユニッ
トに関連する記憶ユニット状態インジケータが固定状態
に設定されていることを判定して、前記特定の記憶ユニ
ットに格納されたデータの置換を防止するステップと、
前記特定の記憶ユニットに関連する記憶ユニット状態イ
ンジケータがページ可能状態に設定されていることを判
定して、前記特定の記憶ユニットに格納されたデータを
前記2次記憶装置に格納されたデータで置換するステッ
プと、前記特定の記憶ユニットに関連する記憶ユニット
状態インジケータが無指定状態に設定されていることを
判定して、前記特定の記憶ユニットに格納されたデータ
の置換を可能にするステップとを含むことを特徴とす
る、上記(7)に記載のメモリ管理方法。 (9)前記制御するステップが、前記メイン・メモリの
使用レベルを判定するステップと、前記メイン・メモリ
の使用レベルに応答して前記特定の記憶ユニットと前記
2次記憶装置との間のデータの移動を制御するステップ
とを含むことを特徴とする、上記(7)に記載のメモリ
管理方法。 (10)第1のアプリケーション・プログラムを実行す
るステップをさらに含み、前記制御するステップが、前
記メイン・メモリの使用レベルが高いことを前記第1の
アプリケーション・プログラムに通知するステップを含
むことを特徴とする、上記(9)に記載のメモリ管理方
法。 (11)前記実行するステップが、前記使用レベルが高
いという通知に応答して、選択された記憶ユニット関連
する記憶ユニット状態インジケータの設定を固定状態か
ら無指定可能に変更するステップを含むことを特徴とす
る、上記(10)に記載のメモリ管理方法。 (12)1つのシステム状態インジケータを前記記憶ユ
ニットの1つに関連づけ、前記システム状態インジケー
タの1つに対応する記憶ユニットがオペレーティング・
システムによって固定状態またはページ可能状態のうち
の1つに設定されていることを示すステップと、システ
ム状態インジケータの状態に応答して2次記憶装置と記
憶ユニットとの間のデータの移動を制御するステップと
をさらに含み、前記制御するステップが、記憶ユニット
状態インジケータが無指定状態に設定されている記憶ユ
ニットを見つけるステップと、見つけた記憶ユニットに
対応するシステム状態インジケータを固定状態からペー
ジ可能状態に変更するよう前記オペレーティング・シス
テムに通知するステップとをさらに含むことを特徴とす
る、上記(11)に記載のメモリ管理方法。 (13)中央演算処理装置と、データを格納するための
複数の記憶位置を有する2次記憶装置と、データを格納
するための複数の記憶ユニットを有するメイン・メモリ
と、オペレーティング・システムとを有する計算機シス
テムにおいて記憶域を保全するためのコンピュータ・プ
ログラム製品であって、コンピュータ可読プログラム・
コード手段が組み込まれたコンピュータ可読記憶媒体を
含み、前記コンピュータ可読プログラム・コード手段
が、前記計算機システム内のアプリケーション・プログ
ラムによって使用されるデータを前記2次記憶装置に格
納するためのコンピュータ命令手段と、前記計算機シス
テム内のアプリケーション・プログラムによって使用さ
れるデータを前記メイン・メモリに格納するためのコン
ピュータ命令手段と、1つの記憶ユニット状態インジケ
ータを前記記憶ユニットの1つに関連づけ、対応する記
憶ユニットが、該記憶ユニットに格納されたデータが固
定されていることを示す固定状態と、該記憶ユニットに
格納されたデータが固定されておらず、前記記憶位置の
1つに格納されたデータで置換できることを示すページ
可能状態と、該記憶ユニットに格納されたデータが固定
またはページ可能のいずれにもすることができる無指定
状態とのいずれか1つに設定されていることを示すため
のコンピュータ命令手段と、特定の記憶ユニットに関連
する記憶ユニット状態インジケータに応答してメイン・
メモリ内の前記特定の記憶ユニットと前記2次記憶装置
との間のデータの移動を制御するためのコンピュータ命
令手段とを含むコンピュータ・プログラム製品。 (14)前記制御するためのコンピュータ命令手段が、
前記特定の記憶ユニットに関連する記憶ユニット状態イ
ンジケータが固定状態に設定されていることを判定し
て、前記特定の記憶ユニットに格納されたデータの置換
を防止するためのコンピュータ命令手段と、前記特定の
記憶ユニットに関連する記憶ユニット状態インジケータ
がページ可能状態に設定されていることを判定して、前
記特定の記憶ユニットに格納されたデータを前記2次記
憶装置に格納された前記データで置換するためのコンピ
ュータ命令手段と、前記特定の記憶ユニットに関連する
記憶ユニット状態インジケータが無指定状態に設定され
ていることを判定して、前記特定の記憶ユニットに格納
されたデータの置換を可能にするためのコンピュータ命
令手段とを含むことを特徴とする、上記(13)に記載
のコンピュータ・プログラム製品。 (15)前記制御するためのコンピュータ命令手段が、
前記メイン・メモリの使用レベルを判定するためのコン
ピュータ命令手段と、前記メイン・メモリの使用レベル
に応答して前記特定の記憶ユニットと前記2次記憶装置
との間のデータの移動を制御するためのコンピュータ命
令手段とを含むことを特徴とする、上記(13)に記載
のコンピュータ・プログラム製品。 (16)前記中央演算処理装置で第1のアプリケーショ
ン・プログラムを実行するためのコンピュータ命令手段
をさらに含み、前記制御するためのコンピュータ命令手
段が、前記メイン・メモリの使用レベルが高いことを前
記第1のアプリケーション・プログラムに通知するため
のコンピュータ命令手段をさらに含むことを特徴とす
る、上記(15)に記載のコンピュータ・プログラム製
品。 (17)前記実行するためのコンピュータ命令手段が、
前記使用レベルが高いという通知に応答して、選択され
た記憶ユニットに関連する記憶ユニット状態インジケー
タの設定を固定状態から無指定可能に変更するためのコ
ンピュータ命令手段を含むことを特徴とする、上記(1
6)に記載のコンピュータ・プログラム製品。 (18)1つのシステム状態インジケータを前記記憶ユ
ニットの1つに関連づけ、前記システム状態インジケー
タの1つに対応する記憶ユニットがオペレーティング・
システムによって固定状態またはページ可能状態のうち
の1つに設定されていることを示すためのコンピュータ
命令手段と、システム状態インジケータの状態に応答し
て2次記憶装置と記憶ユニットとの間のデータの移動を
制御するためのコンピュータ命令手段とをさらに含み、
前記制御するためのコンピュータ命令手段が、記憶ユニ
ット状態インジケータが無指定状態に設定されている記
憶ユニットを見つけるためのコンピュータ命令手段と、
見つけた記憶ユニットに対応するシステム状態インジケ
ータを固定状態からページ可能状態に変更するよう前記
オペレーティング・システムに通知するためのコンピュ
ータ命令手段と、をさらに含むことを特徴とする、上記
(13)に記載のコンピュータ・プログラム製品。
【図面の簡単な説明】
【図1】メモリ管理システムを含む計算機システムを示
す概略ブロック図である。
【図2】本発明による図1のメモリ管理システムの記憶
ユニット状態インジケータおよびシステム状態インジケ
ータと記憶マネージャとの詳細ブロック図である。
【図3】記憶ユニット状態インジケータの設定を固定か
ら無指定に変更するアプリケーション・プログラムの動
作を示す流れ図である。
【図4】アプリケーション・プログラムが固定メモリを
要求したときの記憶マネージャの動作を示す流れ図であ
る。
【図5】メモリ再利用中の記憶マネージャの動作を示す
流れ図である。
【図6】3つのアプリケーション・プログラムを有する
例を処理する際のメモリ管理システムの動作を示す制御
フロー・テーブルである。
【符号の説明】
23' 記憶マネージャ 26 システム状態インジケータ 28 記憶ユニット状態インジケータ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リン・ダグラス・ロング アメリカ合衆国27516 ノースカロライナ 州チャペル・ヒル ミーチャム・ロード 291 (72)発明者 リンウッド・ヒュー・オーヴァビー・ジュ ニア アメリカ合衆国27615 ノースカロライナ 州ローリー ベンズリーコート 8605 (72)発明者 バラ・ラージャラーマン アメリカ合衆国27612 ノースカロライナ 州ローリー ブライア・オーク・レーン 5611 アパートメント306

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】計算機システムにおいて記憶域を保全する
    ためのメモリ管理システムであって、 データを格納するための複数の記憶位置を含む記憶手段
    と、 データを格納するための複数の記憶ユニットを含むメモ
    リ手段と、 それぞれが前記記憶ユニットの1つに関連し、その関連
    する記憶ユニットが、該記憶ユニットに格納されたデー
    タが固定されていることを示す固定状態と、該記憶ユニ
    ットに格納されたデータが前記記憶位置の1つに格納さ
    れたデータで置換できることを示すページ可能状態と、
    無指定状態とのいずれか1つに設定されていることを示
    すための複数の記憶ユニット状態インジケータと、 前記記憶手段および前記記憶ユニットに機能的に接続さ
    れ、特定の記憶ユニットに関連する記憶ユニット状態イ
    ンジケータに応答して、前記特定の記憶ユニットと前記
    記憶手段との間のデータの移動を制御するための記憶マ
    ネージャ手段とを含むメモリ管理システム。
  2. 【請求項2】前記記憶マネージャ手段が、 前記特定の記憶ユニットに関連する記憶ユニット状態イ
    ンジケータが固定状態に設定されていることを判定し
    て、前記特定記憶ユニットに格納されたデータの置換を
    防止するための固定制御手段と、 前記特定の記憶ユニットに関連する記憶ユニット状態イ
    ンジケータがページ可能状態に設定されていることを判
    定して、前記特定の記憶ユニットに格納されたデータを
    前記記憶手段に格納されたデータで置換するためのペー
    ジ可能制御手段と、 前記特定の記憶ユニットに関連する記憶ユニット状態イ
    ンジケータが無指定状態に設定されていることを判定し
    て、前記特定の記憶ユニットに格納されたデータの置換
    を可能にするための無指定制御手段とを含むことを特徴
    とする、請求項1に記載のメモリ管理システム。
  3. 【請求項3】前記記憶マネージャ手段が、前記メモリ手
    段の使用レベルを判定するための手段と、前記メモリ手
    段の使用レベルに応答して前記特定の記憶ユニットと前
    記記憶手段との間のデータの移動を制御するための手段
    とをさらに含むことを特徴とする、請求項1に記載のメ
    モリ管理システム。
  4. 【請求項4】第1のアプリケーション・プログラムをさ
    らに含み、 前記記憶マネージャ手段が、前記メモリ手段の使用レベ
    ルが高いことを前記第1のアプリケーション・プログラ
    ムに通知するための手段を含むことを特徴とする、請求
    項3に記載のメモリ管理システム。
  5. 【請求項5】前記第1のアプリケーション・プログラム
    が、前記通知に応答して、前記記憶マネージャ手段に選
    択された記憶ユニットに関連する記憶ユニット状態イン
    ジケータの設定を固定状態から無指定可能に変更させる
    ことを特徴とする、請求項4に記載のメモリ管理システ
    ム。
  6. 【請求項6】前記記憶手段と、前記メモリ手段と、前記
    記憶マネージャ手段とに機能的に接続され、前記メモリ
    手段の前記使用レベルを判定するための手段と、それぞ
    れが前記複数の記憶ユニットの1つに関連し、固定状態
    またはページ可能状態に設定される複数のシステム状態
    インジケータと、該システム状態インジケータの状態に
    応答して前記記憶手段と前記記憶ユニットとの間のデー
    タの移動を制御するための手段とを含むオペレーティン
    グ・システムをさらに含み、 前記記憶マネージャ手段が、 選択されたシステム状態インジケータを固定状態からペ
    ージ可能に変更するよう前記オペレーティング・システ
    ムに通知するための手段を含むことを特徴とする、請求
    項1ないし5のいずれか一項に記載のメモリ管理システ
    ム。
  7. 【請求項7】中央演算処理装置と、データを格納するた
    めの複数の記憶位置を有する2次記憶装置と、データを
    格納するための複数の記憶ユニットを有するメイン・メ
    モリと、オペレーティング・システムとを有する計算機
    システムにおいて記憶域を保全するためのメモリ管理方
    法であって 前記計算機システムのアプリケーション・プログラムに
    よって使用されるデータを前記2次記憶装置に格納する
    ステップと、 前記計算機システムのアプリケーション・プログラムに
    よって使用されるデータを前記メイン・メモリに格納す
    るステップと、 1つの記憶ユニット状態インジケータを前記記憶ユニッ
    トの1つに関連づけ、対応する記憶ユニットが、該記憶
    ユニットに格納されたデータが固定されていることを示
    す固定状態と、該記憶ユニットに格納されたデータが固
    定されておらず前記記憶位置の1つに格納されたデータ
    で置換できることを示すページ可能状態と、該記憶ユニ
    ットに格納されたデータが固定またはページ可能のいず
    れにもすることができる無指定状態とのいずれか1つに
    設定されていることを示すステップと、 特定の記憶ユニットに関連する記憶ユニット状態インジ
    ケータに応答してメイン・メモリ内の前記特定の記憶ユ
    ニットと前記2次記憶装置との間のデータの移動を制御
    するステップと、 を含むメモリ管理方法。
  8. 【請求項8】前記制御するステップが、 前記特定の記憶ユニットに関連する記憶ユニット状態イ
    ンジケータが固定状態に設定されていることを判定し
    て、前記特定の記憶ユニットに格納されたデータの置換
    を防止するステップと、 前記特定の記憶ユニットに関連する記憶ユニット状態イ
    ンジケータがページ可能状態に設定されていることを判
    定して、前記特定の記憶ユニットに格納されたデータを
    前記2次記憶装置に格納されたデータで置換するステッ
    プと、 前記特定の記憶ユニットに関連する記憶ユニット状態イ
    ンジケータが無指定状態に設定されていることを判定し
    て、前記特定の記憶ユニットに格納されたデータの置換
    を可能にするステップとを含むことを特徴とする、請求
    項7に記載のメモリ管理方法。
  9. 【請求項9】前記制御するステップが、前記メイン・メ
    モリの使用レベルを判定するステップと、前記メイン・
    メモリの使用レベルに応答して前記特定の記憶ユニット
    と前記2次記憶装置との間のデータの移動を制御するス
    テップとを含むことを特徴とする、請求項7に記載のメ
    モリ管理方法。
  10. 【請求項10】第1のアプリケーション・プログラムを
    実行するステップをさらに含み、 前記制御するステップが、前記メイン・メモリの使用レ
    ベルが高いことを前記第1のアプリケーション・プログ
    ラムに通知するステップを含むことを特徴とする、請求
    項9に記載のメモリ管理方法。
  11. 【請求項11】前記実行するステップが、前記使用レベ
    ルが高いという通知に応答して、選択された記憶ユニッ
    ト関連する記憶ユニット状態インジケータの設定を固定
    状態から無指定可能に変更するステップを含むことを特
    徴とする、請求項10に記載のメモリ管理方法。
  12. 【請求項12】1つのシステム状態インジケータを前記
    記憶ユニットの1つに関連づけ、前記システム状態イン
    ジケータの1つに対応する記憶ユニットがオペレーティ
    ング・システムによって固定状態またはページ可能状態
    のうちの1つに設定されていることを示すステップと、 システム状態インジケータの状態に応答して2次記憶装
    置と記憶ユニットとの間のデータの移動を制御するステ
    ップとをさらに含み、 前記制御するステップが、 記憶ユニット状態インジケータが無指定状態に設定され
    ている記憶ユニットを見つけるステップと、 見つけた記憶ユニットに対応するシステム状態インジケ
    ータを固定状態からページ可能状態に変更するよう前記
    オペレーティング・システムに通知するステップとをさ
    らに含むことを特徴とする、請求項11に記載のメモリ
    管理方法。
  13. 【請求項13】中央演算処理装置と、データを格納する
    ための複数の記憶位置を有する2次記憶装置と、データ
    を格納するための複数の記憶ユニットを有するメイン・
    メモリと、オペレーティング・システムとを有する計算
    機システムにおいて記憶域を保全するためのコンピュー
    タ・プログラム製品であって、 コンピュータ可読プログラム・コード手段が組み込まれ
    たコンピュータ可読記憶媒体を含み、 前記コンピュータ可読プログラム・コード手段が、 前記計算機システム内のアプリケーション・プログラム
    によって使用されるデータを前記2次記憶装置に格納す
    るためのコンピュータ命令手段と、 前記計算機システム内のアプリケーション・プログラム
    によって使用されるデータを前記メイン・メモリに格納
    するためのコンピュータ命令手段と、 1つの記憶ユニット状態インジケータを前記記憶ユニッ
    トの1つに関連づけ、対応する記憶ユニットが、該記憶
    ユニットに格納されたデータが固定されていることを示
    す固定状態と、該記憶ユニットに格納されたデータが固
    定されておらず、前記記憶位置の1つに格納されたデー
    タで置換できることを示すページ可能状態と、該記憶ユ
    ニットに格納されたデータが固定またはページ可能のい
    ずれにもすることができる無指定状態とのいずれか1つ
    に設定されていることを示すためのコンピュータ命令手
    段と、 特定の記憶ユニットに関連する記憶ユニット状態インジ
    ケータに応答してメイン・メモリ内の前記特定の記憶ユ
    ニットと前記2次記憶装置との間のデータの移動を制御
    するためのコンピュータ命令手段とを含むコンピュータ
    ・プログラム製品。
  14. 【請求項14】前記制御するためのコンピュータ命令手
    段が、 前記特定の記憶ユニットに関連する記憶ユニット状態イ
    ンジケータが固定状態に設定されていることを判定し
    て、前記特定の記憶ユニットに格納されたデータの置換
    を防止するためのコンピュータ命令手段と、 前記特定の記憶ユニットに関連する記憶ユニット状態イ
    ンジケータがページ可能状態に設定されていることを判
    定して、前記特定の記憶ユニットに格納されたデータを
    前記2次記憶装置に格納された前記データで置換するた
    めのコンピュータ命令手段と、 前記特定の記憶ユニットに関連する記憶ユニット状態イ
    ンジケータが無指定状態に設定されていることを判定し
    て、前記特定の記憶ユニットに格納されたデータの置換
    を可能にするためのコンピュータ命令手段とを含むこと
    を特徴とする、請求項13に記載のコンピュータ・プロ
    グラム製品。
  15. 【請求項15】前記制御するためのコンピュータ命令手
    段が、前記メイン・メモリの使用レベルを判定するため
    のコンピュータ命令手段と、前記メイン・メモリの使用
    レベルに応答して前記特定の記憶ユニットと前記2次記
    憶装置との間のデータの移動を制御するためのコンピュ
    ータ命令手段とを含むことを特徴とする、請求項13に
    記載のコンピュータ・プログラム製品。
  16. 【請求項16】前記中央演算処理装置で第1のアプリケ
    ーション・プログラムを実行するためのコンピュータ命
    令手段をさらに含み、 前記制御するためのコンピュータ命令手段が、前記メイ
    ン・メモリの使用レベルが高いことを前記第1のアプリ
    ケーション・プログラムに通知するためのコンピュータ
    命令手段をさらに含むことを特徴とする、請求項15に
    記載のコンピュータ・プログラム製品。
  17. 【請求項17】前記実行するためのコンピュータ命令手
    段が、前記使用レベルが高いという通知に応答して、選
    択された記憶ユニットに関連する記憶ユニット状態イン
    ジケータの設定を固定状態から無指定可能に変更するた
    めのコンピュータ命令手段を含むことを特徴とする、請
    求項16に記載のコンピュータ・プログラム製品。
  18. 【請求項18】1つのシステム状態インジケータを前記
    記憶ユニットの1つに関連づけ、前記システム状態イン
    ジケータの1つに対応する記憶ユニットがオペレーティ
    ング・システムによって固定状態またはページ可能状態
    のうちの1つに設定されていることを示すためのコンピ
    ュータ命令手段と、 システム状態インジケータの状態に応答して2次記憶装
    置と記憶ユニットとの間のデータの移動を制御するため
    のコンピュータ命令手段とをさらに含み、 前記制御するためのコンピュータ命令手段が、 記憶ユニット状態インジケータが無指定状態に設定され
    ている記憶ユニットを見つけるためのコンピュータ命令
    手段と、 見つけた記憶ユニットに対応するシステム状態インジケ
    ータを固定状態からページ可能状態に変更するよう前記
    オペレーティング・システムに通知するためのコンピュ
    ータ命令手段と、 をさらに含むことを特徴とする、請求項13に記載のコ
    ンピュータ・プログラム製品。
JP10028052A 1997-02-19 1998-02-10 メモリ管理の方法およびシステム Pending JPH10269132A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/802,599 US5813042A (en) 1997-02-19 1997-02-19 Methods and systems for control of memory
US08/802599 1997-02-19

Publications (1)

Publication Number Publication Date
JPH10269132A true JPH10269132A (ja) 1998-10-09

Family

ID=25184178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10028052A Pending JPH10269132A (ja) 1997-02-19 1998-02-10 メモリ管理の方法およびシステム

Country Status (2)

Country Link
US (1) US5813042A (ja)
JP (1) JPH10269132A (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938254B1 (en) * 1997-05-06 2005-08-30 Microsoft Corporation Controlling memory usage in systems having limited physical memory
US6219339B1 (en) * 1998-02-20 2001-04-17 Lucent Technologies Inc. Method and apparatus for selectively discarding packets
AU3109399A (en) * 1998-03-23 1999-10-18 Claude Cajolet Application program interfaces in an operating system
US6718445B1 (en) * 1999-03-26 2004-04-06 International Business Machines Corporation System and method for performing dynamic buffer management in an HFS (hierarchical file system DF/SMS)
US6453323B1 (en) 1999-07-12 2002-09-17 International Business Machines Corporation Resolving long-busy conditions for synchronized data sets
US6530077B1 (en) * 1999-09-15 2003-03-04 Powerquest Corporation Device and method for releasing an in-memory executable image from its dependence on a backing store
US7032090B2 (en) * 2003-04-08 2006-04-18 International Business Machines Corporation Method, system, and apparatus for releasing storage in a fast replication environment
US7069402B2 (en) * 2003-06-02 2006-06-27 International Business Machines Corporation Host-independent incremental backup method, apparatus, and system
US7516291B2 (en) * 2005-11-21 2009-04-07 Red Hat, Inc. Cooperative mechanism for efficient application memory allocation
US8046771B2 (en) * 2007-09-12 2011-10-25 International Business Machines Corporation Generating and using constraints associated with software related products
US20230030241A1 (en) * 2021-07-29 2023-02-02 International Business Machines Corporation Intersystem processing employing buffer summary groups

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4277826A (en) * 1978-10-23 1981-07-07 Collins Robert W Synchronizing mechanism for page replacement control
SE448919B (sv) * 1983-03-04 1987-03-23 Ibm Svenska Ab Metod for att overfora informationsenheter i ett datornetsystem, samt datornetsystem for genomforande av metoden
US4811216A (en) * 1986-12-22 1989-03-07 American Telephone And Telegraph Company Multiprocessor memory management method
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
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5027269A (en) * 1989-04-27 1991-06-25 International Business Machines Corporation Method and apparatus for providing continuous availability of applications in a computer network
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
US5386536A (en) * 1991-03-28 1995-01-31 Courts; Howard R. Apparatus and method for managing memory allocation
US5278834A (en) * 1992-05-26 1994-01-11 Alcatel Network Systems, Inc. Method for implementing a data communication protocol stack
US5396614A (en) * 1992-06-25 1995-03-07 Sun Microsystems, Inc. Method and apparatus for a secure protocol for virtual memory managers that use memory objects

Also Published As

Publication number Publication date
US5813042A (en) 1998-09-22

Similar Documents

Publication Publication Date Title
US5333315A (en) System of device independent file directories using a tag between the directories and file descriptors that migrate with the files
US6067608A (en) High performance mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
US5555392A (en) Method and apparatus for a line based non-blocking data cache
US5895488A (en) Cache flushing methods and apparatus
EP3002672B1 (en) Apparatus for increasing data storage capacity
US4730249A (en) Method to operate on large segments of data in a virtual memory data processing system
KR100584255B1 (ko) 플래시 메모리를 위한 포스트방식의 라이트-스루 캐시
US7487329B2 (en) Page replacement policy for systems having multiple page sizes
US5983324A (en) Data prefetch control method for main storage cache for protecting prefetched data from replacement before utilization thereof
US5539893A (en) Multi-level memory and methods for allocating data most likely to be used to the fastest memory level
US6292871B1 (en) Loading accessed data from a prefetch buffer to a least recently used position in a cache
US20030212865A1 (en) Method and apparatus for flushing write cache data
US5555399A (en) Dynamic idle list size processing in a virtual memory management operating system
WO1997039407A1 (en) Mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
WO1997039407A9 (en) Mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
EP0602890B1 (en) Transfer processing circuitry for use in parallel processing systems
US6378059B1 (en) Virtual storage for dynamically changing a size of a virtual page
JPH0561663B2 (ja)
US20070079070A1 (en) Cache controller
GB2348306A (en) Batch processing of tasks in data processing systems
CN111258967A (zh) 文件系统中数据读取方法、装置及计算机可读存储介质
US6473845B1 (en) System and method for dynamically updating memory address mappings
JPH10269132A (ja) メモリ管理の方法およびシステム
US6748494B1 (en) Device for controlling access to units of a storage device
US6842832B1 (en) Reclaim space reserve for a compressed memory system