JPH0566621B2 - - Google Patents

Info

Publication number
JPH0566621B2
JPH0566621B2 JP62002012A JP201287A JPH0566621B2 JP H0566621 B2 JPH0566621 B2 JP H0566621B2 JP 62002012 A JP62002012 A JP 62002012A JP 201287 A JP201287 A JP 201287A JP H0566621 B2 JPH0566621 B2 JP H0566621B2
Authority
JP
Japan
Prior art keywords
page
xpt
virtual
segment
address
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
JP62002012A
Other languages
English (en)
Other versions
JPS62229446A (ja
Inventor
Toomasu Ookuin Za Sekando Jon
Kuroodo Ookuin Za Saado Jon
Dagurasu Rojaasu Maaku
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 JPS62229446A publication Critical patent/JPS62229446A/ja
Publication of JPH0566621B2 publication Critical patent/JPH0566621B2/ja
Granted 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures

Description

【発明の詳細な説明】 <産業上の利用分野> この発明は総括的に、データ処理システムの仮
想記憶の仮想アドレス空間の割当ておよび管理を
制御する方法に関するものであり、詳細にいえ
ば、仮想記憶に記憶されているデータの比較的大
きなセグメントを操作する改善された方法に関す
るものである。
<従来技術> 従来技術は、システムが使用または処理、ある
いはこの両方を行う情報を記憶するため、仮想記
憶の手法を用いるデータ処理システムのさまざま
な構成を開示している。この分野で現在用いられ
ている仮想記憶の構成は一般に、高速な比較的容
量の小さい半導体メモリと、比較的廉価である
が、比較的低速な記憶装置であるデイスク駆動機
構などの比較的大容量な記憶装置とを含んでい
る。小容量のメモリをページング・メカニズムに
よつて、システムに対して極めて大きなものに見
せることができる。ページング・メカニズムは2
つの別個な記憶エンテイテイの間でデータを転送
する機能を果たすので、システムに必要な情報を
常に、実記憶で利用することができる。「ページ
ング」と呼ばれるデータの転送において、データ
はブロツクすなわち「ページ」の形で転送され、
そのそれぞれは一般に、2048(2K)バイトなどの
一定サイズである。ページング操作を制御するメ
カニズムは通常、ページング・メカニズムまたは
ページンズ・サブシステムと呼ばれる。
ページング・メガニズムによつて、データのペ
ージはページ不在の発生に応じて実記憶中にペー
ジされる。システムが実記憶中にないデータを要
求したときに、ページ不在が発生する。機能的に
は、通常全体的なメモリ管理装置の一部であるペ
ージ不在メカニズムは、要求されたデータが実記
憶にないことを判断して、ページング操作を開始
する。要求されたデータにおけるページングによ
つてページ不在が解決されるまで、ページ不在は
「プロセス」と呼ばれることがしばしばある実行
中のプログラムを停止させる。シングル・ユー
ザ/シングル適用業務環境においては、ページ不
在がシステム全体の性能に直接影響をおよぼす。
しかしながら、システムが2つ以上のプロセス
で、並行して作動できる場合には、ページ不在の
悪影響が削減される。これはページ不在が解決さ
れるのを、一方の割り込まれたプロセスが待つて
いる間に、他のプロセスにタスク指名を行えるか
らである。
仮想記憶システムの設計の態様のひとつは、ア
ドレス指定を処理する態様を含んでいる。システ
ムと直接インタフエースする「実記憶」は、バイ
ト・レベルでアドレス可能である。結果として、
バイトの記憶位置すなわちアドレス数は、したが
つて、実記憶の記憶容量と同じであつて、アドレ
スに必要なビツト数を決定するものである。たと
えば、64Kのメモリには16ビツトのアドレス、す
なわち216=64K(65536)のアドレスが必要であ
り、一方1メガビツトのメモリにはその位置の各
アドレスに対し20ビツトのアドレス、すなわち
220=1メガビツトのメモリ、すなわち100万個の
アドレスが必要である。
仮想記憶のアドレス空間は一般に、実記憶のア
ドレス空間よりもはるかに大きい。
多くの仮想記憶システムで仮想アドレスを生成
するために使用されている方法のひとつは、「ペ
ージ化セグメンテーシヨン」と呼ばれるものであ
る。たとえば、アドレス空間が240の独立したア
ドレス位置を有しているものと、仮定する。ペー
ジ化セグメンテーシヨン方法において、仮想記憶
の有効アドレス空間は、たとえば、16の独立した
同じ大きさのメモリ・セグメントに、12ビツトの
メモリ・セグメント識別子によつて分割されてお
り、この識別子は16のセグメント・レジスタのひ
とつに含まれている。処理装置からの32ビツトの
有効アドレスの内4ビツトを使つて、16のセグメ
ント・レジスタのひとつを選択し、12ビツトのメ
モリ・ゼグメント識別子を与える。この識別子は
セグメント・オフセツトとして使用される、有効
アドレスの残つている28ビツト(32−4)と連結
される。上記の仮定において、仮想記憶のバイト
容量は、2040である。
アドレツシング操作を割り当て、管理するため
に、多くのシステムはメモリ管理装置と関連付け
られた3つの主要データ構造を設けている。これ
らはセグメント・テーブル(ST)、外部ページ・
テーブル(XPT)および逆ページ・テーブル
(IPT)である。
セグメント・テーブルはシステムが参照するオ
ブジエクトを規定するものであり、このオブジエ
クトは、たとえば、プログラム全部、マツプ化フ
アイル、または計算データである。セグメント・
テーブルはセグメント・サイズやセグメントの外
部ページ・テーブルなどの情報を含んでいる。セ
グメント・テーブルはメモリに規定された各オブ
ジエクトのひとつの項目を含んでいる。STは実
記憶に記憶され、ページ化不能である。
外部ページ・テーブル(XPT)は各セグメン
トに与えられる。テーブルの1つの項目は4バイ
トからなつており、関連するページの特性、たと
えば、デイスク上でのその位置や、このページに
関する保護の種類型の情報を記述するものであ
る。セグメントが100ページを含んでいる場合、
そのXPTは100個の項目を含み、大きさは400バ
イトとなる。XPTはシステムによつてページ可
能である。
外部ページ・テーブル自体は仮想アドレスに記
憶され、仮想アドレスは一般に仮想資源管理プロ
グラム(VRM)と呼ばれるシステム資源を管理
するプログラムを含んでいるセグメントの一部で
ある。メモリ内のVRMセグメントは外部ペー
ジ・システムのプールを含んでおり、システムの
各セグメントはVPTを必要とするのであるから、
VRMセグメントのXPTもこのプールに記憶され
る。VRMセグメントのXPTがVRMセグメント
の各ページに対して独立した4バイトの項目を含
んでいるので、各VRMセグメントの外部ペー
ジ・テーブルの4バイトの項目のサブセツトは、
他のセグメントに対する外部ページ・テーブルを
規定する。VRMセグメントのこのセクシヨンま
たはサブセツトは「XPTのXPT」と呼ばれ、ペ
ージ化不能である。
用いられる3番目の重要なデータ構造は逆ペー
ジ・テーブル(IPT)である。実記憶は仮想アド
レス空間のページに対応する大きさ、すなわち
2Kのページ・フレームに分割される。実記憶の
ページ・フレームは、したがつて、ひとつの仮想
ページを含むものである。IPTの機能は、したが
つて、現在、実記憶の各ページ・フレームにある
仮想ページを識別するだけのものである。IPTの
各項目の長さは、32バイトである。IPTはページ
化不能である。
メモリ管理プログラムは仮想アドレスを実アド
レスに変換する際にIPT情報を使用し、要求され
た仮想ページがIPTに含まれていない場合に、ペ
ージ不在の信号を出す。
処理装置のスピードや計算能力が増加し、記憶
機構のバイト数のコストおよびアクセス時間が減
少すると、より大きく、より複雑な適用業務を処
理するため、より大きな仮想記憶を得る要望や、
傾向が生じる。このことによつてもたらされるの
は、仮想記憶に記憶されており、はるかに多くの
セグメントすなわちページを必要とする、さまざ
まなオブジエクトである。以下の説明において、
大きさセグメントは少なくとも1メガバイトの記
憶空間を含むものと仮定する。オブジエクトにも
よるが、セグメントをデータが完全に満たしてい
ることも、疎らにしか入つていないこともある。
参照のため、疎らなセグメントを、少なくとも1
ページのXPIの項目によつて規定することができ
る記憶領域を含むのに十分な、少なくともひとつ
の非参照領域を含んでいるセグメントと規定す
る。項目当り4バイトの場合、1ページのXPT
の項目は512ページの仮想ページすなわち1メガ
バイトのアドレス空間を占める。
セグメントの作成、セグメントの複写、セグメ
ント・サイズの変更、およびセグメントの破壊な
どの操作を、セグメント全体に行う数種類の仮想
記憶操作がある。この型式のサービスはシステム
の性能に大幅な犠牲を課すことなく、大きなセグ
メントをサポートするものでなければならない。
セグメントのXPTのサイズがセグメントのサイ
ズに比例しており、したがつて大きなセグメント
が大きなXPTを有するので、この目標は達成困
難なものである。たとえば、256メガバイトのセ
グメントは131072のXPTの項目を有している。
これにはVRMセグメントの一部であるXPT項目
のプールに256のページが必要である。1XPTの
項目は2048バイトの仮想記憶を規定する。XPT
項目の1ページは512のXPTの項目を含んでお
り、1メガバイトの仮想記憶を規定する。したが
つて、256ページのXPTの項目が、256メガバイ
トのセグメントを規定するのに必要である。
(発明が解決しようとする問題点) システムを極めて多数のページ、たとえば512
以上のページで操作する場合に生じるシステムに
対する悪影響を、従来技術の仮想記憶システムは
解決するものではない。この大量のデータにアク
セスすることは、実行される命令数、参照される
ページ数、およびこれらの参照によつて生じるペ
ージ不在数によつて、大幅なオーバヘツドをもた
らす。
この発明は仮想記憶環境の大きなデータ・セグ
メントを操作する際の、従来技術の欠点を解決す
る方法を記述するものである。
(問題点を解決するための手段) この発明によれば、データの大きなセグメント
を処理する方法は、大きなセグメントのXPT、
すなわち「XPTのXPT」を参照する外部ペー
ジ・テーブルがVRMセグメントに存在すること
を利用するものである。この方法はXPTのXPT
の1項目に操作を行うだけで、512の仮想ページ
での操作を可能とするものである。ただし、もち
ろん、512の仮想ページすべてが同一の操作を受
けるものと仮定する。
したがつて、この発明の目的は、仮想記憶形の
データ処理システムで大きなデータ・セグメント
を処理するための、改善された方法を与えること
である。
この発明の他の目的は、ページ化セグメンテー
シヨン方法を仮想記憶が使用する、データ処理シ
ステムによつて大きなデータ・セグメントを処理
するための、改善された方法を与えることであ
る。
この発明のさらに他の目的は、大きなデータ・
セグメント用の少なくともひとつの外部ページ・
テーブルが、同一の態様で処理しなければならな
いページに関連付けられた項目を含んでいる場合
に、仮想記憶データ処理システムを処理するため
の、改善された方法を与えることである。
上記以外の目的および特徴は、添付図面を参照
して行う以下の説明する明らかとなろう。
(実施例) システムの概要。第1図は、この発明の方法が
用いられる仮想記憶システムの概略図である。第
1図に示すように、システムはハードウエア部1
0およびソフトウエアまたはプログラミング部1
1で構成されている。図示のように、ハードウエ
ア部10は処理装置機能12、メモリ管理機能1
3、システム・メモリ機能またはRAM14、シ
ステム・バス15、入出力チヤネル制御装置
(10CC)16、および入出力バス21で構成され
ている。ハードウエア部はさらに、10CC16を
介して入出力バス21に接続された入出力装置を
含んでおり、これらの入出力装置群は磁気デイス
ク装置機能17、表示機能18、コプロセツサ機
能19、およびキーボードやマウス型の装置を表
すブロツク20を含んでいる。
システムのソフトウエア部システムで作動させ
られる適用業務プログラム22、適用業務開発プ
ログラム群、つまり新しい適用業務の開発を援助
するツール23、たとえばUNIXシステムVのカ
ーネルの拡張したものであつてもかまわないオペ
レーテイング・システムのカーネル24、仮想資
源管理プログラム25を含んでいる。仮想資源管
理プログラムは、それぞれが異なるオペレーシヨ
ン・システム上で作動するが、システムの資源を
共有する、多数の仮想計算機を作成することを可
能とする機能を果たす。したがつて、システムは
マルチタスク、マルチユーザ環境で作動可能であ
り、これが大型の仮想記憶形記憶システムを必要
とする主な理由のひとつである。
第2図は、システムの他の構成要素に対する仮
想資源管理プログラム25の関係を示したもので
ある。第2図に示すように、仮想計算機は22a
−22cなどの、ひとつまたはそれ以上の適用業
務プログラム、および少なくともひとつのオペレ
ーテイング・システム30を含んでいる。仮想計
算機インタフエース31が、仮想計算機とVRM
25間に設定されている。ハードウエア・インタ
フエース32もVRM25とハードウエア部10
の間に設定されている。VRM25は仮想記憶を
サポートしている。説明のため、第1図に示すハ
ードフエアのメモリ機能は、システム・メモリ1
4に対する16メガバイトの容量に等しい、システ
ム・メモリ14の24ビツトのアドレス空間と、1
テラバイトのメモリに等しい、仮想記憶用の40ビ
ツトのアドレス空間とを含んでいるものと、想定
する。ページ化セグメンテーシヨン方法はメモリ
管理装置13に対して実施されているので、仮想
アドレスの総空間は4096のメモリ・セグメントに
分割され、各メモリ・セグメントは256メガバイ
トを占めている。
第3図は、仮想記憶のモデルを示すものであ
る。処理装置12は、たとえば適用業務プログラ
ムによつて指定される32ビツトの有効アドレスを
与える。32ビツトのアドレスの内上位の4ビツト
は、メモリ管理装置(MMU)13に配置されて
いる16個のセグメント・レジスタから1個を選択
する機能を果たす。各セグメント・レジスタは、
特別な制御型式のビツトと共に、12ビツトのセグ
メントID部分を含んでいる。12ビツトのセグメ
ントIDは、初期有効アドレスの残りの28ビツト
と連結され、システムに40ビツトの仮想アドレス
を与える。40ビツトの仮想アドレスは次いで得24
ビツトの実アドレスに変換され、この実アドレス
を使用して、システム・メモリ14をアドレスす
る。
MMU13は変換索引バツフア(TLB)を利
用して、最も近い時点で使用された仮想アドレス
の変換を含める。ハードウエアを使用して、新し
い仮想アドレスが変換のためにTLBに提示され
た場合に、主記憶ページ・テーブルからのTLB
の項目を自動的に更新する。
第4図は、TLBH再ロード機能の概念を示す
ものである。
第4図に示すように、逆ページ・テーブル
(IPT)で40ビツトの仮想アドレスを索引するこ
とによつて、これらのアドレスをTLBにロード
する。テーブルが「逆転」されるのは、このテー
ブルが仮想ペーブジあたり1項目ではなく、各実
メモリ・ページに対して1項目を含んでいるから
である。それ故、サポートされているプロセスま
たは仮想セグメント数に関係なく、IPTに実メモ
リの固定部分が必要となる。アドレスを変換する
ため、ハツシユ機能を仮想ページ数(40ビツトの
仮想アドレスの上位部−ページ・オフセツトを除
いた)に適用し、ハツシユ・アンカ・テーブル
(HAT)に対する索引を得る。各HATの項目は
同じハツシユを値を有するIPTの項目の連鎖をポ
イントする。ハツシユ連鎖の線形探索によつて、
IPTの項目が、それ故、当初の40ビツトの仮想ア
ドレスに対応する実ページ数が得られる。このよ
うな項目が見つからなかつた場合、仮想ページが
システムマツプされず、ページ不在割込が生じ
る。
ページ不在ハンドラ(PFH)の機能は、実記
憶を参照された仮想ページに割り当て、要求され
たデータを実記憶に変換するために必要な入出力
を行うことである。それ故、システムは要求時ペ
ージング形のシステムである。
実記憶が一杯になつた場合、PFHもデータの
どのページをページ・アウトするかの選択を行わ
なければならない。選択はクロツク・ページ置換
アルゴリズムなどの適当なアルゴリズムによつて
行われる。クロツク・ページ置換アルゴリズム
は、いつページが最後に使用または参照されたか
によつて、ページを置換するものである。ページ
は磁気デイスク装置に転送される。
仮想記憶管理データ構造。仮想記憶管理データ
構造の特性を、以下で説明する。
セグメント・テーブル。セグメント・テーブル
(ST)は活動セグメントを記述する情報を含んで
いる。このテーブルは次のような特性を有してい
る。このテーブルは実記憶に固定され、その大き
さは予め定められている。テーブルはメモリ内で
ワード順になつていなければならず、かつセグメ
ント・テーブルを変更しなければならない場合、
変更操作を行うプロセスに、この期間中に割込を
行わなければならない。後者の機能をクリチカ
ル・セクシヨンと呼び、セグメント・テーブルへ
のアクセスを直列化しなければならないものであ
る。
外部ページ・テーブル。外部ページ・テーブル
(XPT)はページをデイスクにマツプする方法を
記述したものである。仮想記憶の規定された各ペ
ージにXPTの項目がひとつある。セグメントが
作成されると、セグメントに対するXPTの項目
が連続項目として割り当てられる。1メガバイト
未満の、小さなセグメントに対するXPTの項目
は、XPTのページ境界を横切らない。1メガバ
イト以上の、大きなセグメントに対するXPTの
項目は、XPTページの開始部分に揃えられる。
XPTの項目は、65536バイト(64K)の仮想記憶
をマツプする32の項目単位で、割り振られる。各
項目には4バイト必要である。このテーブルは次
のような特性を有している。メモリに固定しなけ
ればならないのは、XPTのルート項目だけであ
る。この項目の大きさは予め定められており、ワ
ード順でなければならない。仮想ページ番号が
XPTテーブルに対する索引となつている。XPT
を変更するのは、仮想記憶管理プログラムのクリ
チカル・セクシヨンにおいてだけでなければなら
ない。
逆にページ・テーブル。逆ページ・テーブル
(IPT)は、上記したように、仮想アドレスと実
アドレスの間の関係を記述したものである。IPT
は2つのアレイで構成されている。第1のアレイ
は主として、メモリ管理装置によつて規定され、
変換機能を制御する情報を含んでいる。第2のア
レイは仮想記憶管理プログラムのページ状態情報
を含んでおり、ページ不在処理を制御するために
使用される。このアレイは次のような特性を有し
ている。このアレイは固定されており、その大き
さは初期プログラム・ローデイング(IPL)時に
セツトされる実記憶の大きさによつて決定され
る。このアレイは実記憶の大きさにしたがつて、
揃えられる。実ページ番号がIPTに対する索引に
なつている。上述の構造と同様に、このアレイの
変更は、仮想記憶管理プログラムのクリチカル・
セクシヨンで行わなければならない。各実ペー
ジ・フレームはIPTに項目を有している。すべて
のページは3つのリストのひとつにある。
各有効セグメントには、主リストがひとつあ
る。このリストは二重に連係され、セグメント制
御ブロツクに固定される。このリストは有効仮想
アドレスによつてセグメントに割り当てられたす
べてのページ・フレームを連係する。このリスト
に対して、有効な変換索引バツフア(TLB)項
目が存在することもある。
再割り当てできるページ・フレームを連係す
る、システム全体に渡る自由リストがひとつあ
る。この二重に連係された循環リストは、ページ
1に対してIPTに固定されている。このリストの
ページは有効なTLB項目を有しておらず、これ
らのページに対するアクセスは常にページ不在を
もたらす。ページが主リストおよび自由リストの
両方にあつてもかまわない。これが行われるの
で、ページを自由リストの探索を行わずに、開放
することも可能である。未命名(未ハツシユ)の
ページは、リストの最初の部分に置かれ、命名済
み(ハツシユ済み)のページは最後の部分に置か
れる。
現在デイスクから読み取られているか、あるい
はデイスクに書き込まれている、すべてのページ
を連係するシステム全体に渡る入出力リストがひ
とつある。この二重に連係された循環リストは、
ページ2に対してIPTに固定されている。このリ
ストのページは有効なTLBH項目を有しておら
ず、これらのページに対するアクセスもページ不
在をもたらす。先入先出し法でないデイスク・ス
ケジユーリングが行われていなくとも、入出力を
ブロツクごとに先入先出し法で、確実に処理する
ため、ページ入出力リストはひとつだけでなけれ
ばならない。
通知制御ブロツク。通知制御ブロツク(NCB)
は仮想計算機に、非同期ページング要求が完了し
たことを通知するのに必要な情報を含んでいる。
非同期要求はパージ・ページ範囲サービス・コー
ル(SVC)、あるいは非同期肯定応答が認められ
た場合のページ不在のいずれかである。NCBは
システム制御ブロツク領域内の自己記述制御ブロ
ツクである。NCBの記述子フイールドを使用し
て、NCBをシステム制御ブロツク領域内の他の
型式の制御ブロツクと区別することができる。こ
れが必要なのは、NCBがプロセス・ブロツク・
ヘツダ(PBH)と同じ待ち行列に入れられるか
らである。NCBは固定されており、必要に応じ、
システム制御ブロツク領域に割り当られる。上記
の構造と同様に、NCBの変更は仮想記憶管理プ
ログラムのクリチカル・セクシヨンで行わなけれ
ばならない。NCBが割り当られるのは、ページ
不在ハンドラがプロセスに代わつて機能を果たし
ており、したがつて、システム制御ブロツクが不
十分なことによるシステムの異常終了を引き起こ
さない場合だけである。
ページ不在待ちリスト。仮想記憶管理プログラ
ムは内部プロセスまたは仮想計算機プロセスのい
ずれかを、3つの循環待ちリストのひとつに置く
ことができる。
システム内の各フレームに対して、ページ入出
力待ちリストがひとつある。ページの入出力待ち
リストはページのIPTの項目に固定されており、
かつページへの入出力が完了するのを同期的に待
つてプロセスのプロセス・ブロツク・ヘツダ
(PBH)と、入出力完了通知を非同期的に待つて
いるプロセスのNCBHを連係する。プロセスが
入出力が行われているページを再利用するか、あ
るいはページ不在の結果としてプロセスが入出力
にページを開始した場合に、プロセスがページの
入出力待ちリストに置かれる。
大域システム自由ページ・フレーム待ちリスト
がひとつある。このリストはPBHまたはNCB
を、自由ページ・フレームを待つているプロセス
に連係する。このリストは先入先出し法で処理さ
れる。プロセスが自由ページ・フレームを必要と
しており、しかもこれがない場合に、プロセスが
このリストに置かれる。プロセスのPBHは同期
待ちのためのリストの待ち行列に入れられ、
NCBは非同期待ちのためのリストの待ち行列に
入れられる。
最後に、大域システム・ページ入出力待ちリス
トがひとつある。このリストはPBHまたはNCB
を、特定のページ入出力レベル以下のすべてのペ
ージ・アウト入出力を待つているプロセスに連係
する。このリストはページ入出力レベルによつ
て、分類される。仮想記憶管理プログラム・サー
ビス・コールの幾つかによつて、プロセスをこの
リストに置き、デイスクの内容が確実にメモリの
内容と一致するようにする。同期要求に対して、
PBHがリストの待ち行列に入れられるか、ある
いは非同期要求に対して、NCBがリストの待ち
行列に入れられる。デイスク・スケジユーリング
が先入先出し法でない場合、ページ入出力レベル
によつて、プロセスが必要以上に長い待待つこと
になることがあることに、留意されたい。
ページング・ミニデイスク・テーブル。ページ
ング・ミニデイスク・テーブルは仮想記憶管理プ
ログラムのスロツト番号を、ミニデイスク入出力
装置番号(IODN)および論理ブロツク番号に変
換することを制御する。このテーブルの項目数
が、仮想記憶管理プログラムがページング操作を
行うことができるミニデイスクの最大数を規定す
る。このアレイは次のような特性を有している。
このアレイは固定されており、その大きさは予め
定められており、かつワード順になつている。ベ
ージング空間のミニデイスク項目は、システムの
初期設定時に割り当てられるものであり、かつテ
ーブルの最初の項目でなければならない。マツプ
されたページ範囲サービス・コールが項目を、マ
ツプされたミニデイスクに割り当てる。デイス
ク・アドレスの最上位ビツトが、このテーブルに
対する索引となる。上記のデータ構造と同様に、
これを変更できるのは、仮想記憶管理プログラム
のクリチカル・セクシヨンにおいてだけである。
デイスク割り当てビツト・マツプ。仮想記憶管
理プログラムは各ページング空間のミニデイスク
に対して、ビツト・マツプを管理する。各ビツト
はページが割り当てられているか、自由であるか
を示す。システムの初期設定時にミニデイスクを
オープンすると、バツド・スロツトが割り当て済
みとマークされる。このアレイは次のような特性
を有している。このアレイはページ可能ではな
く、ページング空間がページ・アウト時に割り当
てられ、デイスク・アドレスの最下位ビツトが、
このアレイに対する索引となり、かつ上記の構造
と同様に、このアレイを変更できるのは、仮想記
憶管理プログラムのクリチカル・セクシヨンにお
いてだけである。
ページング装置拡張機構。仮想記憶管理プログ
ラムがサポートしている各ページ空間に対して、
ページング装置拡張機構(PDX)がひとつある。
PDXはページング・ミニデイスク・テーブルの
ページング空間項目に対する拡張機構である。仮
想記憶管理プログラムがペーシング空間を管理
し、PDXはこの管理の際に管理プログラムを導
くために使用される。PDXの属性は次のとおり
である。PDXは固定されており、システムの初
期設定時にはシステム制御ブロツクから割り当て
られる。PDXはリストに連係され、大域ポイン
タによつて固定され、上記の構造と同様に、
PDXを変更できるのは、仮想記憶管理プログラ
ムのクリチカル・セクシヨンにおいてだけであ
る。PDXの割当ては動的ではない。システムの
初期化によつてすべてのPDXが割り当てられ、
初期化される。
ページ不在処理。同期ページ不在処理が典型的
なページ不在処理の型式である。この操作時に、
ページ不在を解決するに必要な入出力が完了する
まで、不在処理は待ち状態に置かれる。各入出力
要求の完了時に、仮想記憶管理プログラムは処理
を再開する。タスクの再指名時に、プロセスはペ
ージ不在を生じて、不在状態を解決するために付
加的な入出力をスケジユールするか、あるいはペ
ージ不在を生じないで、ページ不在が解決されて
いるかかのずれとなる。
この型式のページ不在処理には、2つの大きな
利点がある。第1に、仮想記憶管理プログラムが
ページ不在状態のデータ構造を維持して、そのペ
ージに対してページ不在処理を再開する方法を、
この構造に知らせる必要がない。第2に、この型
式の設計は、要求時ページング・システムの動的
な性質との互換性が高い。
VRM内で実行されるVMMは、タスク、構造、
あるいは仮想計算機内部で実行されるタスクの環
境に関する概念を有していない。したがつて、仮
想記憶管理プログラムは、従来の同期ページ不在
処理によつてこれらのタスクを、効率的に管理す
ることはできない。通知のある非同期ページ不在
処理の概念を使用して、この制限を克服する。一
般に、仮想計算機には「ページ不在発生」という
機械通信割込によつて、ページ不在が通知され
る。したがつて、仮想計算機が「ページ不在クリ
ア」という機械通信割込を受信するので、仮想計
算機が不在タスクを作動可能タスク・リストに戻
すことはできない。これによつて、仮想計算機に
おける実行に関して、ページ不在を非同期的に処
理可能となる。仮想計算機はページ不在通知を割
込禁止とすることによつて、同期ページ不在処理
を行うことができる。留意しなければならないの
は、ページ不在クリア割込を、仮想計算機によつ
て直接割込禁止とすることができないことであ
る。ページ不在によつて発生する割込をもたらし
た不在状態に対する入出力が完了すると、ページ
不在クリア割込が常に与えられる。ページ不在ク
リア割込を、ページ不在によつて発生した割込を
割込禁止とすることによつて、間接的に割込禁止
とすることができる。
同期ページ不在処理。同期不在に対して、不在
を発生したプロセスのプロセス・ブロツク・ヘツ
ダ(PBH)はページの入出力待ちリストに置か
れるか、あるいは入出力が必要な場合には、自由
ページ・フレームに置かれるかのいずれかとな
る。このプロセスは仮想記憶管理プログラムがペ
ージに対する入出力を開始したか、あるいは既に
進行中のページに対する入出力を開始した場合
に、ページ入出力待ちリストに置かれる。入出力
を行うのに利用できる自由ページがない場合、プ
ロセスは自由ページ・フレーム・リストに置かれ
る。
非同期ページ不在処理。非同期ページ不在が発
生した場合、不在を生じた仮想計算機には不在と
なつたセグメント識別子が通知され、仮想アドレ
スは最も近いページ境界まで切り下げられる。特
に留意しなければならないのは、通知が与えられ
るのが、仮想計算機が不在を生じたアドレスに対
してではなく、そのページに対してであることで
ある。たとえば、仮想計算機がアドレスX‘80
6’、X‘856’、X‘87E'で不在を生じた
場合、この仮想計算機はX‘800’について、
3つのページ不在発生通知を受け取り、X‘80
0’についてひとつのページ不在クリア通知を受
け取る。通知制御ブロツク(NCB)が割り当て
られ、入出力が要求されると、ページの入出力待
ちリストに連鎖される。このチエインはPBHが
連鎖されたチエインと同じものである。PBHお
よびNCBをタイプし、これらが別のものである
ことを、通知できる。PBHは同期ページ不在に
連鎖され、NCBは非同期ページ不在に連鎖され
る。
外部ページ・テーブル入出力におけるページ不
在(当初の不在以外の入出力)のため、通知が与
えられた場合、通知制御ブロツクはXPTがペー
ジ・インされたIPTとの連鎖から外されるが、当
初のページ不在のアドレスは通知制御ブロツクに
ある。
自由フレーム待ちリストは特別な場合である。
仮想計算機には通知が与えられ、そのNCBは
PBHと共に、自由フレーム待ちリストに先入先
出しで連鎖される。このNCBが自由フレーム待
ちリストの先頭にある場合に、フレームを開放さ
せる最初のページ・アウトが通知を与える。
ページ不在発生通知。非同期不在が発生し、入
出力が要求された場合に、ページ不在ハンドラが
ページ不在発生割込を発生させる。この機能を実
行するには、VRM待ち行列要素は必要ない。ペ
ージ不在ハンドラは実際には、仮想計算機の
PSBと実行レベルをスワツプする。これを可能
とする前提は、機械通信上のページ不在またはプ
ログラム・チエツク・ルベルが、通知なしに同期
的に処理されることである。このことは仮想計算
機がページ不在発生割込を常に受け入れることが
できるため、割込を待ち行列に入れる必要がない
ことを意味する。
ページ不在クリア通知。ページ不在に対する入
出力が完了すると、仮想記憶管理プログラムが終
了処理のために、呼び出される。
ページ不在完了割込はVRM待ち行列管理機能
によつて、仮想計算機に対して待ち行列に入れら
れる。このことは待ち行列要素が必要であること
を意味する。通知制御ブロツクがこの機能のため
に使用される。
非同期ページ不在シナリオ。ページ不在はこれ
が生成した入出力が完了すると、完了したものと
みなされる。仮想計算機は合計n個のページ不在
発生割込を受け取り、かつn回の入出力を満たす
ことが必要なページ不在に対して、n個のページ
完了割込を受け取る。例えばn=3の場合、仮想
計算機が存在するが、メモリ上にないページで、
ページ不在を非同期的に発生し、メモリにこれを
ページ・インする自由フレームがなく、かつ仮想
記憶管理プログラムが当初のページに対して、
XPTでページ不在を発生したものと想定する。
以下のリストは事象の順序を表したものである
(このシナリオが典型的なものではないことに、
留意されたい)。
1 VMがページ不在を発生する 2 VMMがページアウト要求を待ち行列に入
れ、自由ページ・フレーム・リストを構築する 3 VMMが仮想計算機に、当初のページ不在を
通知する 4 VMにタスク指名がされる(VMが切り換え
を行うか、待ちになると考えられる) 5 ページ・アウト入出力が完了する 6 VMMが仮想計算機に、当初のページ不在が
解決されたことを通知する 7 VMにタスク指名がされる 8 VMがページ不在を再度同じアドレスに発生
する 9 VMMがXPTにページ不在を発生する 10 VMMがXPTに対して、ページ・イン要求
を待ち行列に入れる 11 VMMが仮想計算機に、当初のページ不在を
通知する 12 VMにタスク指名がされる(VMが切り換え
を行うか、待ちになると考えられる) 13 XPTページ・アウト入出力が完了する 14 VMMが仮想計算機に、当初のページ不在が
解決されたことを通知する 15 VMにタスク指名がされる 16VMがページ不在を再度同じアドレスに発生す
る 17 VMMがページ不在に対して、ページ・イン
要求を持ち行列に入れる 18 VMMが仮想計算機に、ページ不在を通知す
る 19 VMにタスク指名がされる(VMが切り換え
を行うか、待ちになると考えられる) 20 ページ・イン入出力が完了する 21 VMMが仮想計算機に、当初のページ不在が
解決されたことを通知する 22 VMにタスク指名がされる パージ・ページ範囲通知。システムには入出力
完了通知を、仮想記憶管理プログラムから受け取
る他の方法がある。これはパージ・ページSVC
の非同期強制書込みオプシヨンにある。パージに
対する入出力の完了時に、機械通信割込がひと
つ、仮想計算機に提示される。ページ不在完了割
込と同様に、仮想計算機がページ不在通知を割込
可能にするかどうかに関係なく、これは仮想計算
機に与えられる。
これはPBHと共にNCBを、ページ入出力待ち
リストに連鎖するように作動する。NCBにおい
て、パージ入出力を完了したものとみなせるよう
になる前に、達成しなければならないページ入出
力レベルがマークされる。このページ入出力レベ
ルが達成されると、仮想計算機に通知が行われ
る。
ページ不在ハンドラ。ページ不在ハンドラの主
要機能、すなわち同期および非同期ページ不在を
処理する方法については、「ページ不在処理」で
検討した。以下の説明において、「不在発生源に
通知」などのステートメントが出された場合、こ
れは不在発生源が非同期的に不在を発生したので
あれば、これが通知され、これ以外の場合には、
上述の規則にしたがつて、作動不能となることを
意味する。ページ不在ハンドラがページ不在を解
決するために行うプロセスを、以下で説明する。
ページ不在ハンドラはすべての割込装置の下に
ある下位の割込レベルにおいて、プログラム・チ
エツク・ハンドラの拡張機能として作動する。こ
のハンドラはバツク・トラツク状態で作動し、そ
れ故、仮想記憶管理プログラムのデータ構造上で
ページ不在を発生することが可能となる。
ページ不在ハンドラを入力すると、このハンド
ラは直ちに、仮想アドレスなどの、不在に関する
情報を与える。これを行う理由は、ページ不在ハ
ンドラがハンドラ自体の内部でページ不在を発生
し、この不在が入出力を行わなければならない場
合、ページ不在ハンドラがどのアドレスを仮想計
算機に与えて、非同期通知を行わなければならな
いかを、知つていなければならないからである。
このことはページ不在のためページ不在ハンドラ
が取り消された場所と、ハンドラ自体のページ不
在を処理するためハンドラが再度呼び出された場
所との間のウインドに、ページ不在が認められな
いということを意味する。
ページ不在ハンドラを割り込ませることのでき
る重要な工程が数種類ある。
−ページ再利用 ページを再利用できる場合、ページ不在ハンド
ラが実行される。ページ・インまたはページ・ア
ウト入出力がこのページに対して実行されている
場合、不在発生源がこのページの入出力待ちリス
トに連鎖される。入出力の完了時に、プロセスが
フレームで待ちになつているかどうかを調べるた
めのテストが行われ、待ち状態がある場合には、
その旨が通知される。ページが自由リスト上にあ
る場合には、ページ・フレームがアクセス可能に
なつたのち、ページ不在ハンドラに再度タスク指
名が行われる。不在発生源に通知が行われたり、
あるいは待ちにされることはない。
−自由ページ・リストの構築 自由リストが下方論理限界よりも低いことが判
明した場合、ページ・アウトを開始し、リストを
上方論理限界まで上げる。これらの論理限界はシ
ステム調整パラメータである。自由リストを満た
そうとしたのちも、このリストがまだ空の場合に
は、不在発生源に当初の不在が通知される。セカ
ンド・チヤンス付きクロツクは、置換されるペー
ジを選択するために使用される方法である。
−不在の処理 ページ不在ハンドラは仮想記憶管理プログラム
の構造のほとんどと関連付けられている。しか
し、最も重要なのは、ページ不在ハンドラがペー
ジ不在を生じたページについてXPTを検査し、
ハンドラがこの時点で、ページ不在を生じること
もあることである。ハンドラはページング空間デ
イスク・スロツトをこのページに割り当てる。
ページ不在終了。このプロシージヤは仮想記憶
管理プログラムに対するすべての入出力完了割込
を処理する。ハード・フアイル装置ドライバが仮
想記憶管理プログラムの要求を待ち行列から外し
た場合に、このプロシージヤは待ち行列管理プロ
グラムによつて、実行されるようにスケジユール
される。予め空にされた仮想記憶管理プログラム
のクリチカル・セクシヨンが完了するまで、この
ルーチンの実行が遅らされることに留意された
い。「ページ不在処理」に記載した規則により、
ページ不在クリア通知が、このプロシージヤによ
つて与えられる。このプロシージヤはページ不在
を生じることができず、したがつてXPTその他
のページ可能なデータ構造に対する参照は認めら
れない。仮想記憶管理プログラムに対して行える
入出力には、次の2つの型式がある。
−ページ・イン −ページ・アウト フレームで待ちになつているすべてのプロセス
は、作動可能となり、通知される。また、ページ
入出力レベルも更新される。これは完了したすべ
ての入出力のカウントである。更新されたページ
入出力レベル以下のページ入出力レベルで待ちと
なつているすべてのプロセスは、最も古い入出力
操作が完了すると、作動可能となり、通知され
る。開放されていないページに対するすべてのペ
ージ・インの完了および再使用されたページ・ア
ウトの完了に対して、IPTタグ・ワードの妥当性
を検査することによつて、フレームはアクセス可
能とされる。それ以外の場合には、フレームは自
由リストに置かれる。
自由システム制御ブロツクの数が上方論理限界
よりも少なく、かつ自由フレームが存在している
場合に、このプロシージヤはシステム制御ブロツ
ク領域を満たそうとする。自由システム制御ブロ
ツク領域で待ちになつているすべてのプロセスは
次いで、作動可能とされる。このプロシージヤは
自由フレームを待つているプロセスの起動も行
う。自由フレームは自由フレームの待ち時間が最
も長いプロセスに割り当てられる。次いで、この
プロセスは通知され/作動可能とされる。
ページング空間。仮想記憶管理プログラムはひ
とつまたはページング空間に対して、ページング
をサポートする。すべてのページング空間を512
バイトのブロツクで書式化する必要がある。
ページング空間の初期設定。システムの初期設
定時に、すべてのページング空間が仮想記憶管理
プログラムにわたつていなければならない。ユー
ザがミニデイスク管理プログラムを使用してベー
ジング空間を作成した場合、仮想記憶管理プログ
ラムがこの空間にページイングする前に、システ
ムを再初期プログラム・ロードまたは再初期化し
なければならない。これを行う理由は、仮想記憶
管理プログラムのページング空間のデータ構造が
構築されるのが、システムの初期設定時だけだか
らである。すべてのページング空間、ならびにデ
イスク割当てビツト・マツプは、ミニデイスク管
理プログラム初期設定時にセツト・アツプする。
ミニデイスク管理プログラムはすべてのミニデイ
スクに照会を行い、ページング空間ミニデイスク
が発見された場合には、ページング空間をVMM
に有効に「定義」するルーチンを呼び出す。ペー
ジング空間ルーチン定義を呼び出す前に、ミニデ
イスク管理プログラムはページング・ミニデイス
クをオープンする(これはオープンされたままと
なる)。ページング空間ルーチン定義は次のよう
に作動する。
1 PDXをページング空間に割り当てる 2 PDXを初期化する 3 ページング・ミニデイスク・テーブルを初期
化する 4 新しいPDXをすべての既存のPDXの関係さ
れたリストに挿入する 5 各PDXをそのページング・ミニデイスク・
テーブル項目に指定し、かつ逆を行わせる 6 このページング空間に対するデイスク割当て
ビツト・マツプ(一時デイスク・マツプ)をセ
ツト・アツプする デイスク割当てビツト・マツプがひとつあり、
これはすべてのページング空間に区分されてい
る。複数のビツト・マツプではなく、ひとつ設け
る理由は、ページ空間をひとつのビツト・アツプ
にパツクすることによつて、ビツト・マツプに対
する参照の局所性が改善されるからである。ビツ
ト・マツプに対するXPTは、ビツト・アツプが
当初すべて論理的にゼロになるように、セツトさ
れる。ページ空間が64Kの倍数でない場合、シス
テム初期化はサイズを、次の64Kの境界まで切り
上げ、境界間のブロツク(ビツト)を割当て済み
とマークする。これにはシステム初期化がこの時
点で、最初の参照ページ不在を取り入れる能力を
必要とする。
ページ空間の定義後、ミニデイスク管理プログ
ラムはページング空間の不良ブロツクをチエツク
する。不良ページング空間が発見された場合、ミ
ニデイスク管理プログラムはルーチンを呼び出し
て、仮想記憶管理プログラムの一時デイスク・マ
ツプに割り当てられているとおりに、不良ページ
ング空間をマツプする。ミニデイスク管理プログ
ラムはその後、このページング空間上で、不良ブ
ロツクの再配置を行う。
ページング空間管理。ページング・デイスク・
ブロツクはページング空間に、循環式に一度にひ
とつずつ割り当てられる。ポインタは各ページン
グに割り当てられた最後の位置に維持される。こ
の特定のページング空間における次の割り当ての
際に、空のスロツトの探索が、最後に割り当てら
れたスロツトで始まり、ページング空間を通して
増加するように行なわれる(最後で、重なる)。
このように割当てを行うことの背景にあるアイデ
アは、ページ・アウトの類似性およびページ・ア
ヘツドを改善することである。ページング空間を
通る循環ポインタは、このページ空間で「最も古
い」点、換言すれば、最も古い時点で書き出され
た点を指定するものとみなすことができる。この
デイスク・スロツトが自由になつている(これが
古い時点で割り当てられたものであるら)、と十
分考えられる。すべてのデイスク・スロツトがペ
ージ・アウト時に割り当てられるので、パージ・
ページの大きな範囲が与えられた場合、多くのス
ロツトが一度に割り当てられる。これはスロツト
を緊密に割り当てるものである。このことはパー
ジを行つて、特定のプロセスの実行ページ・セツ
ト、または仮想計算機のエンテイテイをページ・
アウトするものと想定している。このプロセスが
再度活動された場合、その実行ページ・セツトは
デイスク上で密着し、アームの運動を最小とし、
ページ・アヘツド効率を最大とする。
2つ以上のページング空間が存在する場合、こ
れらの空間の各々は、上記したような挙動をす
る。仮想記憶管理プログラムのデイスク割当て
は、どのページング・ミニデイスクにブロツクを
割り当てるかを決定する。デイスク・スケジユー
ラはデイスクのアームがほぼどこにあるかを追跡
する。仮想記憶管理プログラムは最後に割当てを
行つた点が、デイスク・アームのある場所に最も
近いページング空間に割当てを試みることによつ
て、これを利用する(すべてのデイスクに対し
て)。
仮想記憶管理プログラムSVC。仮想記憶管理
プログラムSVCはすべて、仮想計算機の拡張機
能として実行される。これらのSVCはパージさ
れたページのページ・アウトなどの明示入出力、
またはコード、スタツク、またはデータにおける
ページ不在などの暗黙入出力をもたらす。同期
SVCに対するすべての入出力は、入出力が完了
するまで、仮想計算機を同期ページ不在待ち状態
にする。入出力が完了するまで、仮想計算機を同
期ページ不在待ち状態にするのは、非同期SVC
に対する暗黙入出力だけである。明示入出力が開
始され、仮想計算機には完了したことが通知され
る。
特殊プログラム・チエツク・エラー処理。仮想
計算機内でコードを実行している間に発生したプ
ログラム・チエツク・エラーは、プログラム・チ
エツク仮想割込を介して仮想計算機に報告され
る。VRM内で実行している間に発生したプログ
ラム・チエツク・エラーは、異常システム終了を
もたらす。VRMのSVCはVRM内で実行され、
仮想計算機の機能を果たす。したがつて、プログ
ラム・チエツク・ハンドラは低メモリの値を調べ
て、VRMのSVCコード内で発生したエラーが、
SVCを指定する古いIARを有するプログラム・
チエツク仮想割込として仮想計算機に報告しなけ
ればならないものかどうか、あるいはエラーが異
常システム終了かどうかを決定する。
選択されたVMMのSVCはこの機能を使用し
て、パラメータ・リストをアクセスしたときに、
エラー状態をチエツクせずに、経路長さを保管す
る。プログラム・チエツク・ハンドラはこれらに
対するエラー回復を行う。
仮想記憶管理プログラム・サービス。すべての
仮想記憶管理プログラム・サービスは発呼者に関
して、同期的に実行される。これらのサービスの
うち幾つかはページ不在を生じ、この場合、発呼
者のプロセスは解決すべき不在に対して待ちにさ
れる。
非同期ページ不在と同期ページ不在。VRMは
仮想計算機に対する非同期および同期両方のペー
ジ不在処理をサポートする。同期ページ不在処理
の場合、ページ不在が解決するまで、仮想計算機
全体は待ちにされる。非同期ページ不在処理の場
合、仮想計算機によつて、他のタスク指名が可能
になる。ページ不在が解決するまで、待ちにされ
るのは、不在処理タスクだけである。このため、
同期ページ不在処理をもたらすあらゆる操作は、
実行できる並列タスクの数を減らす傾向があり、
一方非同期ページ不在処理をもたらすあらゆる操
作は、実行できる並列タスクの数を最大とする傾
向がある。
上述したもののようなVRMサービスの処理中
に発生したすべてのページ不在は、同期的に処理
される。これに対し、仮想計算機タスクを実行し
ている間に発生したページ不在は、典型的な場
合、非同期プロセスである。したがつて、仮想記
憶管理プログラムは、対応するXPTの項目で操
作を行うのではなく、XPTのXPTの項目で操作
を行える場合に、同期的なページ不在を除去す
る。これらのXPTの項目が定義したページを参
照した場合に、このページ不在が生じるが、この
場合には、ページ不在は非同期的に処理されるこ
とが多い。
作業用セツトのサイズの削減。仮想記憶管理プ
ログラムがXPTのXPTで操作を行う場合、この
プログラムはXPTのページに接触することを避
ける。このことはサービスの実行中に、これらの
データ構造を含めるのに必要なメモリ量を削減す
る。作業用セツトのサイズは、XPTのXPTで行
われる各操作に対し、512という因数で削減され
る。256メガバイトのセグメントの場合、このこ
とは作業用セツトを、256ページではなく、半ペ
ージに減らす。
上述したように、仮想計算機におけるすべての
活動は、VRMサービスの作動中、停止させられ
る。256ページのページ可能データを参照する操
作は、5秒よりも長くかかる。仮想計算機がこの
ような長い時間の間不作動化されると、装置のオ
ーバランが生じる。XPTのXPTを利用して、大
きなセグメントで操作を行う場合に必要な作業用
セツトのサイズを削減することによつて、仮想記
憶管理プログラムは、このようなことが惹起する
可能性を排除する。
大きな作業用セツトの他の欠点は、このセツト
が実記憶の大きい部分を使つてしまうことであ
る。256メガバイトのセグメントに必要な256ペー
ジのXPTは、1メガバイトのシステムにおける
実ページ・フレームの半分に等しい。この多量な
ページに接触する仮想記憶管理プログラムは、現
在使用されている多くのページのデータを、実記
憶から出してしまう。このことはサービス中に過
剰なページ・アウトを生じるものであり、サービ
スが実行を完了したのち、付加的なページ不在を
生じるものである。仮想記憶管理プログラムはこ
の影響を、大きなセグメントに対する作業用セツ
トを削減することによつて、最小限のものとす
る。
ページ不在の分配の改善。セグメントが作成さ
れた場合に、セグメントのXPTの項目のすべて
に接触しないことにより、対応するページ不在が
セグメントの寿命の間分散され、仮想記憶管理プ
ログラムの実行中に集中することがなくなる。こ
れによつて、システムの操作がよりスムーズで、
予測を行いやすいものとなる。仮想記憶管理プロ
グラムはページが参照されるまで、ページの
XPTの項目を参照しない。したがつて、仮想記
憶管理プログラムは、XPTの項目の同じページ
にXPT項目のを有しているページが参照される
まで、ページのXPTの項目をページ・インしな
い。さらに、疎らなセグメントの場合、XPTの
ひとつまたはそれ以上のページが参照されること
はなく、したがつてメモリに不在を生じることは
ない。この場合、ページ不在は完全に排除され
る。
XPTの初期設定の改善。仮想記憶管理プログ
ラムがXPTの項目を初期化するのは、セグメン
トが作成されたときではなく、セグメントが破壊
されたときである。割り当てられていない各
XPTの項目が初期化され、この項目が新しい、
参照されていないページを記述するようになる。
これはXPTの項目の部分的なページに対して
個々のXPTの項目を初期化し、かつXPTの項目
の完全なページに対して、XPTのXPTの対応す
る項目を初期化することによつて、達成される。
上述のように、セグメントの破壊は各ページの
XPTの項目を調べなければならない。したがつ
て、このセグメントは付加的なページ不在を生じ
ることなく、XPTの項目を初期化できる。セグ
メントの作成は各ページのXPTの項目を調べる
必要はない。したがつて、これが付加的なページ
不在を生じることなく、XPTの項目を初期化す
ることはできない。それ故、破壊時にXPTの項
目を初期化することにより、仮想記憶管理プログ
ラムは、仮想記憶管理プログラムのデータ構造に
おけるページ不在数を減らすことができる。
仮想記憶管理プログラムはXPTのXPTの対応
する項目を初期化することにより、XPTの項目
のページ全体を初期化することができる。この場
合、仮想記憶管理プログラムはXPTの項目のペ
ージと関連しているページ・フレームを、解放
し、それ故、不必要なデータの結果としてのペー
ジ・アウトを節減することもできる。
全セグメントに操作を行う数種類の仮想記憶管
理プログラム・サービスがある。最初のサービス
はセグメント作成サービスである。新しいセグメ
ントは、そのデータのすべてとしてゼロを含むよ
うに規定される。仮想記憶管理プログラムはセグ
メントを作成したときに、セグメントの各バイト
をゼロに実際に初期化するのではない。その代わ
りに、仮想記憶管理プログラムはページがページ
のXPTの項目で参照されないことを示す。ペー
ジが最初に参照されたときに、ページはページ不
在ハンドラによつて、ゼロに初期化される。
全セグメントに行うことのできる第2のサービ
スは、セグメント破壊サービスである。仮想記憶
管理プログラムは、セグメントが破壊されたとき
にセグメントに関連付けられる資源を、解放す
る。これらの資源はページ・フレームとページン
グ空間からなつている。仮想記憶管理プログラム
は各ページのXPTの項目を調べて、ページのペ
ージング空間を解放しなければならない。
全セグメントに行うことのできる第3のサービ
スは、セグメント・サイズ変更と呼ばれる。セグ
メント・サイズ変更は2つの機能を果たす。この
サービスはセグメント・サイズを減少または増加
させる。ゼグメント・サイズを増加させた場合、
このサービスは新しいXPTをセグメントに割り
当て、古いXPTの項目と新しいXPTの項目をス
ワツプしなければならない。セグメント・サイズ
減少機能は、セグメントの一部を破壊することと
同じである。
全セグメントで操作することのできる第4のサ
ービスは、セグメント・コピー機能である。参照
されておらず、かつXPTでその旨が示されてい
ないページは、セグメント・コピー・サービスに
よつてコピーされることはない。
XPTの項目を調べるのに必要な命令数は、比
較的短時間に実行されることができるということ
が理解すべきである。しかしながら、これらの多
数のXPTの項目を変更する必要がある場合には、
XPTテーブルの項目を更新、または変更するの
にかなりの時間がかかる。
仮想記憶管理プログラムは256メガバイトまで
のセグメントをサポートする。上述したように、
VMMは1メガバイト以上のセグメントを、大き
なセグメントとみなす。十分なデイスク空間があ
れば、大きなセグメントをデータで完全に満たす
ことができる。全セグメントに分散しているデー
タを、大きなセグメントに軽く満たすこともで
き、これを上述したように、疎らなセグメントと
いう。厳密にいえば、疎らなセグメントは1ペー
ジまたはそれ以上のページのXPTの項目で規定
された区域、すなわち1メガバイトを完全に含ん
でいる未参照のセグメントと規定される。
大きなセグメントに対する外部ページ・テーブ
ル自体は、かなりの大きさになる。XPTの項目
は2048バイトの仮想記憶を定義する。1ページの
XPTの項目は、512個の4バイトの項目を含んで
おり、1メガバイトの仮想記憶を定義する。した
がつて、256ページのXPTの項目は256メガバイ
トのセグメントを規定しなければならない。
XPTの1項目は1ページのXPTの項目、すな
わち1メガバイトの仮想記憶を定義する。256メ
ガバイトのセグメントに対する外部ページ・テー
ブルに必要なことは、256個の4バイトの項目を
含むことだけであり、これには半ページのメモリ
だけが必要である。したがつて、大きなセグメン
トを規定するのに必要なXPTのXPTの大きさ
は、セグメントのXPTよりも大幅に小さくなる。
この発明によれば、仮想記憶管理プログラムは
大きなセグメント、特に大きく疎らなセグメント
をサポートするのに、XPTのXPTを利用する。
仮想記憶管理プログラムはXPTのXPTの適切な
項目を調べ、したがつて、ページに対する512の
XPTの項目すべてを調べることによつて、512の
ページを操作する。このことは実行される命令数
を減少し、XPTのページ可能部分への参照を排
除できるものである。これを行わずに、XPTの
各項目をアクセスすると、実行される命令数、参
照されるページ数、およびこれらの参照によつて
生じるページ不在の数によつて、多くのオーバヘ
ツドがもたらされる。上述のように、全セグメン
トに共通な操作を行つた場合に、仮想記憶管理プ
ログラムは、大きなセグメント、特に大きく疎ら
なセグメントをサポートするのに、XPTのXPT
を利用する。たとえば、セグメントの初期設定ま
たは作成の際に、XPTのXPTだけが新しいセグ
メントに対して初期化される。これは256メガバ
イトのセグメントに初期化されるページ数を、
256ページから1ページに減らすものであるから、
大きなセグメントを作成する場合にオーバヘツド
を大幅に削減する。セグメントを作成する場合
に、仮想記憶管理プログラムはセグメントの各バ
イトを実際にゼロに初期化するものではないが、
ページがページのXPTの項目で参照されないこ
とを示すものである。ページが初めて参照された
ときに、このページはページ不在ハンドラによつ
て、ゼロに初期化される。未参照ページの概念を
拡張して、XPTのページを含むようにしたので、
ページ不在ハンドラはXPTの項目のページをゼ
ロに初期化し、その結果各項目は未参照のページ
または新しいページを記述することになる。した
がつて、仮想記憶管理プログラムは256メガバイ
トのセグメントに対するXPTの項目を、初期化
する必要がない。必要なのは、XPTの自由ペー
ジをXPTのXPTで未参照と定義することだけで
ある。仮想記憶管理プログラムのセグメント破壊
サービスを呼び出した場合、仮想記憶管理プログ
ラムはXPTのXPTを調べ、XPTの対応するペー
ジが参照されていなければ、516のページを蹴ば
すことができると決定できる。これを行える理由
は、仮想記憶管理プログラムがページング空間ま
たはページ・フレームを割り当てた場合に、ペー
ジXPTを参照するからである。したがつて、
XPTの項目のあるページおよびXPTの項目の未
参照ページは、これに関連付けられたページング
空間またはページ・フレームを有することはな
い。同様に、仮想記憶プログラムが呼び出され
て、セグメントのサイズを変更する場合、このセ
グメントに対する新しいXPTは割り当てられな
ければならない。古いXPTからの情報は新しい
XPTと変換される。XPTの項目のすべての完全
なページに対して、XPTのXPTの古い項目と、
新しい項目を交換することによつて、仮想記憶管
理プログラムはこれを実行する。仮想記憶管理プ
ログラムは次いで、古いXPTのページを、新し
いXPTにコピーし、古いXPTの項目を初期化し
て、未参照ページを定義する。したがつて、セグ
メントのサイズを増加する場合に、仮想記憶管理
プログラムが行う必要があるのは、XPTの項目
の多くても2つのページに接触することである。
セグメント・サイズ削減機能は、セグメントの一
部を破壊することと同じであり、作動は同様であ
る。
仮想記憶管理プログラムのセグメント・コピ
ー・サービスは、大きなセグメントで作動する場
合に、大きく疎らなセグメントをコピーするとき
に、セグメントを破壊することと同じ効果を実現
できる。未参照ページをコピーする必要はない。
したがつて、XPTの未参照のページによつて定
義されたページも参照されないのであるから、コ
ピーする必要はない。
仮想記憶システムで大きなオブジエクトを使う
能力は、これらの大きなオブジエクトに関連する
パフオーマンス・オーバヘツドに直接関係する。
大きなパフオーマンス・オーパヘツドは大きなオ
ブジエクトを使う単純な適用業務の能力を削減す
るものであり、これにより複雑な適用業務を設計
しなければならなくなる。一方、小さなパフオー
マンス・オーパヘツドは大きなオブジエクトを有
効に使う単純な適用業務の能力を拡張するもので
ある。XPTのXPTを利用することにより、仮想
記憶管理プログラムは大きなオブジエクトに関連
するパフオーマンス・オーバヘツドを、大幅に削
減することができる。この発明の改善された方法
が用いる技術は、操作を実行するのに必要な命令
数を削減し、同期ページ不数を減少し、接触され
るページ数、したがつて作業用セツト数を削減
し、ページ不在数を削減し、かつ大きなXPTの
コストを分散することを助けるものである。セグ
メント作成サービスおよびセグメント・サイズ増
加サービスは、大きなセグメントおよび大きく疎
らなセグメントの両方にこれを行う。セグメント
破壊、セグメント・コピーおよびセグメント・サ
イズ削減という仮想記憶管理プログラムのサービ
スは、大きく疎らなセグメントのみにこれを行
う。
XPTのXPTの項目を調べるのに必要な命令数
は、XPTの1項目を調べるのに必要な数と同じ
である。したがつて、XPTのXPTによつて512
のページに操作を行うのに必要な命令数は、対応
する512のXPTの項目で同じ操作を行うのに必要
な数よりも、ほぼ512分の1である。したがつて、
仮想記憶管理プログラムがXPTのXPTで操作を
行える場合には、セグメント操作の実行時間を大
幅に改善する。
XPTのXPTはVRMに割り当てられているメ
モリのセグメントに記憶される。第6図はVRM
セグメント、ゼロに対する仮想アドレスのマツプ
を示すものである。第6図に示すように、VRM
セグメントに定義された外部ページ・テーブルの
プールは、アドレス1600000−1800000に現れる。
定義された各セグメントに対するXPTは、この
プーリに含まれている。VRMに対するXPTは、
上記のアドレスの間に存在するXPT項目のプー
ルを含め、VRMの各ページを定義する。XPTの
項目のプールを定義するVRMセグメントのXPT
のサブセツト35を、XPTのXPTと呼ぶが、こ
れはページ可能ではない。
この発明によれば、上述の仮想資源管理プログ
ラムのサービスのひとつを、行わなければならな
い場合に、XPTのXPTの項目は変更される。上
述のように、XPTのXPTの項目のひとつを変更
することにより、システムのオーバヘツドにおい
て、512対1の節減が得られる。
第7a図および第7b図は、セグメント破壊操
作およびセグメント・サイズ増加操作の改善され
た方法のステツプを説明するフローチヤートであ
る。これらは上述の大きなセグメントのサポート
操作の2つの例にすぎない。
セグメント・サイズ増加操作は、正規のセグメ
ントおよび大きく疎らなセグメントの両方に用い
られる。第7a図に示すように、ステツプにはシ
ステムに確立されたXPTのプールからのセグメ
ントに、新しいXPTを割り当てることが含まれ
ている。次に、当初のセグメントのXPTの最後
の部分的ページを、新に割り当てられたXPTに
移動、すなわちコピーする。第7a図のフローチ
ヤートの3番目のブロツクにテストを行つて、新
しいセグメントが「大きな」セグメント、すなわ
ち1メガバイト以上であるかどうかを、決定す
る。このステツプは実際には、新しいセグメント
に必要なXPT2(XPTのXPT)の数を決定するも
のである。セグメントが大きなセグメントでない
場合には、操作は完了する。大きなセグメントで
ある、すなわち“n”が0に等しくない場合に
は、少なくとも1ページのXPTの項目が存在し、
これは新しいセグメントに対してXPTの新しい
ページとしてコピーできるものである。XPT2
(XPTのページ)の数は、次のブロツクで1減少
し、XPTの項目のページがすべて、新しいセグ
メントにコピーされるまで、プロセスは反復す
る。
セグメント破壊操作を第7b図に示す。この操
作は実記憶内のページ・フレームおよび磁気デイ
スク装置または二次記憶装置のページング空間を
含めて、セグメントに関連付けられている資源を
解放する。XPTはページのページング空間を定
義するデータを含でいる。XPT2の項目のひとつ
を調べることによつて、XPTの項目がシステム
によつて参照(使用)されたことがなければ、
XPTの項目のページのひとつを跳ばすことがで
きる。この条件は大きく疎らなセグメントにおい
ては、極めて頻繁に生じるものである。第7b図
において、始めの3つのブロツクは、XPTの項
目の1ページが参照されたことがないことを示す
XPT2の項目を探しだす機能を果たす。このこと
は「新しい」ページ状態を有するXPT2の1項目
によつて示される。次いで、この1項目は変更さ
れ、非ページ可能データ構造のこの1項目によつ
て表される512のページをすべて解放し、セグメ
ント内のページ“x”の数は512だけ減少する。
ページ数が0かどうかのチエツクが行われ、0で
ない場合には、プロセスが繰り返される。XPT2
の非ページ可能データ構造の項目が変更できない
場合には、第7b図の左側の経路に沿つた操作が
行われ、XPTのページ項目のひとつを操作する。
ページの総数は1だけ減少し、解放されていない
ページがセグメントにまだ存在している場合に
は、すべてのページが解放されるまでプロセスが
繰り返される。
(発明の効果) この発明によれば、仮想記憶の大きなデータ・
セグメントを扱う場合システムのオーバヘツドの
大幅な削減を行うことができるという効果が得ら
れる。
【図面の簡単な説明】
第1図はこの発明の方法を用いると有利である
仮想記憶システムの略図である。第2図は、デー
タ処理システムおよび仮想記憶計算機に対する、
第1図に示す仮想資源管理プログラムの関係を示
す図面である。第3図は、第1図に示すシステム
用の仮想記憶モデルの図面である。第4図は、第
1図に示すシステムのアドレス変換機能の概念を
示す図面である。第5図は、第1図のシステムで
用いられるデータ構造の幾つかの相互関係を示す
図面である。第6図は、仮想資源管理プログラム
に割り当てられたセグメントの仮想アドレスのマ
ツプである。第7aおよび第7b図は、この方法
の特定のステツプを示すフローチヤートである。 10……ハードウエア部分、11……ソフトウ
エアまたはプログラミング部分、12……処理装
置機能、13……メモリ管理機能、14……シス
テム・メモリ機能またはRAM、15……システ
ム・バス、16……入出力チヤネル制御装置
(IOCC)、17……磁気デイスク装置機能、18
……表示機能、19……コプロセツサ機能、20
……ブロツク、21……入出力バス、22……適
用業務プログラム、23……適用業務開発プログ
ラム、24……オペレーテイング・システムのカ
ーネル、25……仮想質源管理プログラム、30
……オペレーテイング・システム、31……仮想
計算機インタフエース、32……ハードウエア・
インタフエース、35……非ページ可能データ機
構(XPTのXPT)。

Claims (1)

  1. 【特許請求の範囲】 1 “セグメント生成”操作を含む全ての大きな
    セグメントで選択された操作を実行するための仮
    想記憶を有し、生成された前記セグメントの各々
    は独特のアドレス範囲を有し、複数の仮想ページ
    の各々は前記アドレス範囲内の仮想アドレスと前
    記仮想ページがフリーで、かつ未参照である第1
    の状態及び前記仮想ページが操作済みである第2
    の状態を有し、前記操作済みの仮想ページは、要
    求時、ページ不在機構によつて、要求時ページン
    グが行なわれ、かつ第1の記憶装置の実アドレス
    を有する記憶位置に記憶され、第2の記憶装置の
    上の記憶位置にページングが行なわれ、さらに、
    複数のページ化可能外部ページテーブル(XPT)
    を含み、各XPTは少なくとも1ページのXPTの
    項目を有し、このページのXPTの項目は仮想ア
    ドレスを有し、かつk個の項目を含み、各項目は
    nバイト(ここで、k・Nは仮想ページのバイト
    容量に等しい)を有し、前記複数のXPTの項目
    の各々は、前記仮想ページの1つの前記実アドレ
    スを記憶するための第1のフイールド及び前記仮
    想ページの1つの前記第1及び第2の状態を示す
    フラグを記憶するための第2フイールドを有して
    いるデータ処理システムにおいて、 実ページアドレスに対応する仮想ページアドレ
    スを含むページを複数有する1つの仮想セグメン
    トを生成し、 前記1つの仮想セグメントをページ化できない
    ように前記第2の記憶装置に記憶し、 k′個の項目を有し、各項目はn′バイト(ここ
    で、k′・n′は前記バイト容量に等しい)を有し、
    前記k′個の前記XPTの前記XPTの各々は、前記
    ページの前記XPTの項目の1つの仮想アドレス
    を記憶するための第1フイールド及び前記1つの
    ページのXPTの項目における前記XPTの項目に
    よつて表わされる前記ページの全ては前記第1の
    状態又は前記第2の状態のいずれかを示すフラグ
    を記憶するための第2のフイールドを有するペー
    ジ化できないデータ構造を設け、 複数の前記XPTの前記XPTのデータ構造を記
    憶するために前記1つの仮想セグメントのための
    実アドレスの部分集合を生成し、 前記生成されたセグメントの前記アドレス範囲
    に対応する前記k′個の前記XPTの前記XPTの項
    目の1つの前記フラグを前記第1の状態から前記
    第2の状態に変更するようにしたことを特徴とす
    る仮想記憶方法。
JP62002012A 1986-01-16 1987-01-09 仮想記憶方法 Granted JPS62229446A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US819457 1986-01-16
US06/819,457 US4730249A (en) 1986-01-16 1986-01-16 Method to operate on large segments of data in a virtual memory data processing system

Publications (2)

Publication Number Publication Date
JPS62229446A JPS62229446A (ja) 1987-10-08
JPH0566621B2 true JPH0566621B2 (ja) 1993-09-22

Family

ID=25228214

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62002012A Granted JPS62229446A (ja) 1986-01-16 1987-01-09 仮想記憶方法

Country Status (5)

Country Link
US (1) US4730249A (ja)
EP (1) EP0230354B1 (ja)
JP (1) JPS62229446A (ja)
BR (1) BR8700180A (ja)
DE (1) DE3750337T2 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4922414A (en) * 1982-12-17 1990-05-01 Symbolics Inc. Symbolic language data processing system
US4763244A (en) * 1986-01-15 1988-08-09 Motorola, Inc. Paged memory management unit capable of selectively supporting multiple address spaces
US4761737A (en) * 1986-01-16 1988-08-02 International Business Machines Corporation Method to automatically increase the segment size of unix files in a page segmented virtual memory data processing system
US4991078A (en) * 1987-09-29 1991-02-05 Digital Equipment Corporation Apparatus and method for a pipelined central processing unit in a data processing system
US4862349A (en) * 1987-10-19 1989-08-29 International Business Machines Corporation Method for extracting and/or replacing control system information in a computer operating system
US5127094A (en) * 1987-11-09 1992-06-30 Hitachi, Ltd. Virtual storage type computer 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
US4943908A (en) * 1987-12-02 1990-07-24 International Business Machines Corporation Multiple branch analyzer for prefetching cache lines
US5055999A (en) 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5822578A (en) * 1987-12-22 1998-10-13 Sun Microsystems, Inc. System for inserting instructions into processor instruction stream in order to perform interrupt processing
US5341483A (en) * 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US5761413A (en) * 1987-12-22 1998-06-02 Sun Microsystems, Inc. Fault containment system for multiprocessor with shared memory
JPH0290330A (ja) * 1988-09-28 1990-03-29 Hitachi Ltd プログラム構成方式
CN1016743B (zh) * 1988-12-03 1992-05-20 国际商业机器公司 虚拟存储器管理系统和方法
JPH0373037A (ja) * 1989-05-26 1991-03-28 Hitachi Ltd データベース障害回復方法
US5101485B1 (en) * 1989-06-29 1996-12-10 Frank L Perazzoli Jr Virtual memory page table paging apparatus and method
US5339398A (en) * 1989-07-31 1994-08-16 North American Philips Corporation Memory architecture and method of data organization optimized for hashing
FR2652926B1 (fr) * 1989-10-06 1994-07-08 Bull Sa Procede d'exploitation de la memoire dans un systeme informatique du type a adressage virtuel et dispositif pour la mise en óoeuvre dudit procede.
US5121483A (en) * 1990-05-21 1992-06-09 International Business Machines Corporation Virtual drives in an automated storage library
US5426779A (en) * 1991-09-13 1995-06-20 Salient Software, Inc. Method and apparatus for locating longest prior target string matching current string in buffer
CA2078310A1 (en) * 1991-09-20 1993-03-21 Mark A. Kaufman Digital processor with distributed memory system
CA2078315A1 (en) * 1991-09-20 1993-03-21 Christopher L. Reeve Parallel processing apparatus and method for utilizing tiling
CA2078312A1 (en) 1991-09-20 1993-03-21 Mark A. Kaufman Digital data processor with improved paging
US5388244A (en) * 1992-09-17 1995-02-07 International Business Machines Corporation Controls for initial diversion of page-frame logical content as part of dynamic virtual-to-real translation of a virtual page address
US6091430A (en) * 1993-03-31 2000-07-18 International Business Machines Corporation Simultaneous high resolution display within multiple virtual DOS applications in a data processing system
US5586325A (en) * 1993-12-10 1996-12-17 Cray Research, Inc. Method for the dynamic allocation of array sizes in a multiprocessor system
JPH07182239A (ja) * 1993-12-24 1995-07-21 Nec Corp セグメント分割管理システム
US5613068A (en) * 1994-06-17 1997-03-18 International Business Machines Corporation Method for transferring data between processors on a network by establishing an address space for each processor in each other processor's
US5721917A (en) * 1995-01-30 1998-02-24 Hewlett-Packard Company System and method for determining a process's actual working set and relating same to high level data structures
US5699543A (en) * 1995-09-29 1997-12-16 Intel Corporation Profile guided TLB and cache optimization
US7406694B2 (en) * 2003-06-20 2008-07-29 Microsoft Corporation Method and system for tracking kernel resource usage
US7603442B2 (en) * 2003-06-20 2009-10-13 Microsoft Corporation Method and system for maintaining service dependency relationships in a computer system
US7076632B2 (en) * 2003-10-16 2006-07-11 International Business Machines Corporation Fast paging of a large memory block
US8966220B2 (en) 2013-01-15 2015-02-24 International Business Machines Corporation Optimizing large page processing
US9164915B2 (en) 2013-01-15 2015-10-20 International Business Machines Corporation Reserving fixed page areas in real storage increments
US9798673B2 (en) * 2013-03-14 2017-10-24 Sandisk Technologies Llc Paging enablement of storage translation metadata
US9483400B2 (en) * 2014-04-21 2016-11-01 Microsoft Technology Licensing, Llc Multiplexed memory for segments and pages
US11150928B2 (en) * 2016-06-08 2021-10-19 Red Hat Israel, Ltd. Hypervisor translation bypass

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5718070A (en) * 1980-07-04 1982-01-29 Fujitsu Ltd Multiplex virtual storage controlling system
JPS6084641A (ja) * 1983-10-05 1985-05-14 Mitsubishi Electric Corp 仮想計算機システム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4173783A (en) * 1975-06-30 1979-11-06 Honeywell Information Systems, Inc. Method of accessing paged memory by an input-output unit
FR2344094A1 (fr) * 1976-03-10 1977-10-07 Cii Systeme de gestion coherente des echanges entre deux niveaux contigus d'une hierarchie de memoires
EP0150522B1 (en) * 1980-04-25 1989-08-30 Data General Corporation Data processing system with hierarchical memory protection
US4532590A (en) * 1980-04-25 1985-07-30 Data General Corporation Data processing system having a unique address translation unit
US4374417A (en) * 1981-02-05 1983-02-15 International Business Machines Corp. Method for using page addressing mechanism
US4442487A (en) * 1981-12-31 1984-04-10 International Business Machines Corporation Three level memory hierarchy using write and share flags
US4654777A (en) * 1982-05-25 1987-03-31 Tokyo Shibaura Denki Kabushiki Kaisha Segmented one and two level paging address translation system
US4525778A (en) * 1982-05-25 1985-06-25 Massachusetts Computer Corporation Computer memory control
US4569018A (en) * 1982-11-15 1986-02-04 Data General Corp. Digital data processing system having dual-purpose scratchpad and address translation memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5718070A (en) * 1980-07-04 1982-01-29 Fujitsu Ltd Multiplex virtual storage controlling system
JPS6084641A (ja) * 1983-10-05 1985-05-14 Mitsubishi Electric Corp 仮想計算機システム

Also Published As

Publication number Publication date
BR8700180A (pt) 1987-12-01
EP0230354A3 (en) 1990-05-30
EP0230354B1 (en) 1994-08-10
JPS62229446A (ja) 1987-10-08
US4730249A (en) 1988-03-08
DE3750337D1 (de) 1994-09-15
EP0230354A2 (en) 1987-07-29
DE3750337T2 (de) 1995-03-09

Similar Documents

Publication Publication Date Title
JPH0566621B2 (ja)
USRE36462E (en) Method to control paging subsystem processing in virtual memory data processing system during execution of critical code sections
EP0239181B1 (en) Interrupt requests serializing in a virtual memory data processing system
KR920005853B1 (ko) 페이지 분할형 가상 메모리 데이타 처리 시스템에서의 데이타 전송 방법
US4761737A (en) Method to automatically increase the segment size of unix files in a page segmented virtual memory data processing system
US4742450A (en) Method to share copy on write segment for mapped files
US7487329B2 (en) Page replacement policy for systems having multiple page sizes
US7409487B1 (en) Virtualization system for computers that use address space indentifiers
EP1010080B1 (en) Mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
US6067608A (en) High performance mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
US5539899A (en) System and method for handling a segmented program in a memory for a multitasking data processing system utilizing paged virtual storage
JP4366012B2 (ja) 仮想記憶システムにおいてアプリケーションプログラムによってコードまたはデータをグループに分類して、物理メモリの割り振りの制御を行うアプリケーション・プログラミング・インターフェイス
EP0557908A2 (en) Method and system for avoiding selector loads
US20090024820A1 (en) Memory Allocation For Crash Dump
US5555399A (en) Dynamic idle list size processing in a virtual memory management operating system
US20050198464A1 (en) Lazy stack memory allocation in systems with virtual memory
EP0220929A2 (en) Memory management system
WO1997039407A9 (en) Mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
EP1094392B1 (en) Method and apparatus for interfacing with a secondary storage system
US6895583B1 (en) Task control block for a computing environment
CA1160351A (en) Virtual memory terminal
JPH08339341A (ja) 主記憶ページ選択方法
Rees et al. The kernel of the EMAS 2900 operating system
Pattinson Single Contiguous Store Allocation
JPS62224845A (ja) 仮想記憶方式