JPS60501824A - 複数個のアドレス変換バッファ記憶装置を共有する記憶装置処理システムのデマンド・ペ−ジング法 - Google Patents

複数個のアドレス変換バッファ記憶装置を共有する記憶装置処理システムのデマンド・ペ−ジング法

Info

Publication number
JPS60501824A
JPS60501824A JP59502361A JP50236184A JPS60501824A JP S60501824 A JPS60501824 A JP S60501824A JP 59502361 A JP59502361 A JP 59502361A JP 50236184 A JP50236184 A JP 50236184A JP S60501824 A JPS60501824 A JP S60501824A
Authority
JP
Japan
Prior art keywords
page
entry
block
cpu
group
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
JP59502361A
Other languages
English (en)
Inventor
ホー,ガリー シウーフアン
ピーターソン,ラルフ ウオーレン
Original Assignee
アメリカン テレフオン アンド テレグラフ カムパニ−
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アメリカン テレフオン アンド テレグラフ カムパニ− filed Critical アメリカン テレフオン アンド テレグラフ カムパニ−
Publication of JPS60501824A publication Critical patent/JPS60501824A/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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 複数個のアドレス変換バッファ記憶装置を共有する記憶装置処理シ、:、テムの デマンド・ページング法技術分野 本発明は処理システムの記憶装置のマ不ジメンー〜に、細目的には共有記憶装置 の複数個のアドレス変換バッファ処理システムのベージング法に関する。
発明の背景 仮想記憶システムにあっては、プロゲラl、およびデータには仮想、即ち論理的 アドレスが割当てられており、システムのユーザは物理アドレスでなく仮想アド レスを参照する。仮想記憶処理システムの大きな利点はシステム・ユーザが使用 できる仮想、即ち論理的アドレス空間が処理システムの主記憶の実際の物理空間 と異っても良い点にある。このような処理システムでは、任意の一時点において 仮想記憶のほんの1部分のみが物理的な主記憶中に存在し、残りは大容量の二次 記憶中にあるのが普通である。全仮想記憶に対し主記憶中において選択的にアク セス可能とするためには、仮想記憶の各部分を二次記憶から物理的主記憶に、そ して主記憶から再び二次記憶にシステムの要求に応してスワツピング、即ち転送 出来るようになっていなげればならない。
スワツピングを含む記憶装置のマネジメントを行うため、仮想記憶は通常ページ と呼ばれる等しい大きさのブロックに分割されており、仮想記憶の各部分は1ペ ージまたは数ページ単位で主記憶との間でスワツピングされる。−力士記憶はペ ージ・フレームに分割されており、各ページ・フレームはその中に仮想ページが コピーされるハードウェアである。主記憶中に存在しない仮想ページ中に含まれ ている情報が必要とされる場合には、該ページは二次記憶から取り込まれ、ペー ジ・フレーム中に記憶される。しカシヘーシ・フレームの数は制限されている。
全ページ・フレームがコピーされ、それでも未だ他のページが必要とされる場合 には、1つのページ・フレームが選択され、現在該ページ・フレームを占有して いるページがクリアされ、要求されたページがクリアされたページ・フレーム中 に転送される。
仮想記憶計算システムは仮想アドレスをプロセッサが使用する相応する主記憶の 物理アドレスに変換する機構を含んでいる。変換機構は通常アドレス変換バッフ ァ (ATB)を含んでいる。このATBは比較的小さく速い記憶装置であって 、選択された仮想アドレスと以前にアドレス変換を行った結果として得られた相 応する主記憶アドレスを記憶するのに使用される。ATBから以前の変換結果を 引き出すことは変換機構を使用して変換を繰返すよりも速いので、ATBを使用 すると記憶装置中のアイテムにアクセスする過程がスピード・アップされる。
ATBのエントリは通常主記憶の現在の仮想記憶内容(すべてのATBの主記憶 アトルス・エントリはこれ不参照する)に対してのみ有効である。従って、ペー ジ・スワップによっ主記憶の仮想記憶の内容が変更されるときは常に、スワップ によって影響を受けたATBエントリはクリアされねばならない。ここで記憶素 子の“クリア”という用語は記憶素子の現在の内容を取り除く、無効とする、消 去する、あるいは破壊するという意味で用いる。
処理システムは1つまたはそれ以上のプロセッサ上で動作している複数個のプロ セスを有している。例えば多数のプロセスが時分割で華−のプロセッサ上で動作 することが考えられる。また多数のプロセスがマルチ・プロセッサ・システムの 各プロセッサ上で同時に動作することも考えられる。これらプロセスは処理シス テムの主記憶を共有使用している。このようなシステムは複数個のプロセスによ って使用される複数個のナトレス変換バッファを含んでいてよい。このようなシ ステムでプロセスの要求により共有主記憶へまたばからページがスワップされる ときには、スワップによって影響を受けるすべてのATBのエントリを無効とす るように注意しなければならない。そうでないと、スワップに気付かない他のプ ロセスはA、 T Bのエントリを使用して仮想記憶の誤ったページにアクセス し、その結果誤った結果を得ることになる。
従来から前記のようなシステムで複数個のATBを最新状態に保持するため種々 の方法が考えられて来た。1つの方法ではスワップを開始させたプロセスがプロ セッサに指示を与えてシステム中のすべてのATBにアクセスしてスワップによ って影響を受けたエントリを無効とするようにする。しかし、すべてのATB中 の影響を受けたエントりを探してそれを無効にするために要するオーバヘッドは 大きく、システムの性能を大幅に劣化させる。更に、マルチプロセソザ・システ ム中の複数個のプロセフ’Jが各ATBにアクセスし得るようにすること、なら びに互いに干渉しないようにアクセスの同期をとることは困難で、費用もかかり 、オーバヘッドも大きかった。
他の方法ではスワップを開始させたプロセスが例えばインクラブドによって他の プロセスにスワップを知らせ、それによって他のプロセスがそれ自身のATBの エントリを変更するようになってい−る。しかしスワップが起ったという事実だ けでなくそれによってどのページが影響を受けたかということを各プロセスに通 知し、複数個のATBを調べて影響を受けたエントリを見出して無効とするため に必要なオーバヘッドは極めて犬であり、このためこのようなシステムではペー ジングは魅力のないものとなってし4 まう。
従来技術の前述の二つの方法と関連する更に他の問題は2つまたはそれ以上のブ ロセソザによって共有使用されている物理的記憶装置中のページが現在プロセス によって使用されているか否かを決定しなければならないこと、ならびに他のプ ロセスが現在使用中のページをスワップ・アウトすることを妨げなければならな いことである。プロセスによってページが使用される毎に1つ進められ、プロセ スが該ページの使用を止める毎に1つ減らされるカウンタを各ページに設けると いった従来の方法は力うンタの更新、読み取りに要するオーバヘッドのために満 足すべき結果を与えない。更に、共有されているページは異なるプロセス中にお いて異なる仮想アドレスを有すことが出来、その結果各ATB中に異なるエント リに対応することがある。またどのプロセスがページを共有しているかを決定す ることは困難でオーバヘッドも大である。
従来技術の更に他の方法ではプロセスがスワップし得るページを制限しているも のがある。例えばプロセスは既に所有しているページのみをスワップ・アウトす るよう制限されている。即ちプロセスは物理的記憶装置中に配置したページのみ を物理的記憶装置から取り除くことが可能であり、他のプロセスと共有している ページはスワップ・アウトできない。これらの制約は物理的記憶装置を最適に使 用することを妨げ、共有記憶装置の概念と、共有記憶装置の利点を破壊する傾向 にある。
光里q!1 本発明の目標は前述の従来技術の欠点を解決することである。
本発明は仮想記憶と主記憶アドレスの間の対応を指示する複数個のアドレス変換 記憶装置を使用する処理システム用の新らしいベージング法を含んでいる。本発 明に従い、1つまたはそれ以上の主記憶ページ・フレームが放棄され、ページ・ フレームが放棄されて以後複数個のアドレス変換記憶装置がクリアされたかどう か決定され、アドレス変換記憶装置がクリアされると、仮想記憶のページが放棄 されたページ・フレームから選択されたページ・フレーム中に記憶される。
本発明では、ページ・フレームは、アドレス変換ノ\・ノファかこのページ・フ レームを指示する有効なエントリを含むかどうかを記憶している関連する装置が 初期化されるとき、即ち記憶を開始するときに放棄される。
本発明の第1の特徴に従い、ページ・フレームの放棄はアドレス変換記憶装置が 1つまたはそれ以上のページ・フレームの主記憶アドレスを記憶することを妨げ ることを含んでいる。
本発明の第2の特徴に従い、ページ・フレームの放棄はアドレス変換記憶装置が 1つまたはそれ以上のページ・フレームの主記憶アドレスを記憶したことを知ら せるため装置を初期化することを含んでいる。そのアドレスがアドレス変換記憶 装置によって記憶されている放棄されたページ・フレームはページを記憶するの には選択されない。
本発明のベージング法は従来技術に比べて多数の利点を有している。例えば、プ ロセスがスワップしするページのタイプに制限を加えない。即ちプロセスはそれ 自身の所有するページまたは他のページの所存するページ、ならびに共有ページ をスワップしてよい。本方法は共有ページと関連するカウンタまたは他の特殊な 構造物ならびにその更新を必要としない。また共有ページの状態を記憶する必要 もない。更に本方法ではオーツ−ヘットは殆んど生しない。本方法はページが主 記憶からスワップされる毎にATBにアドレスして変更する必要はない。該ベー シング法は極めてまれにしかATBのクリアを要求しない。何故ならば個々のA TBは処理システムの通常の動作の一部としてシステム動作の種々の点でクリア されるからである。
本発明のこれらおよび他の利点および特徴は付図と共に本発明の図示の実施例の 以下の説明から明らかとなろう。
H運p】単奏皇贋 第1図はページ式仮想記憶処理システムのブロック図、第2〜6図は第1図のデ マンド・ベージング法の第1の実施例のブロック図であり、詳細に述べると、第 2図は本ページング法のデータ構造のブロック図、第3 a−b図はデマンド・ ベージング・プロゲラl、のページ障害処理部の論理流れ図、 第4 a −b図はベージング・プログラムのリスト保守おまひローディング部 の論理流り、4、 第5図はページング・プログラムのリスト・ローティング部の論理流れ図、 第6図はデマント・ベーシング・プログラムのスワップ部の論理流れ図、 第7〜IO図は第1図のデマント・ベージング法の第2の実施例のブロック図で あり、詳細に述へると、第7図は本ベーシング法のデータ構造のブロック図、第 3 a −b図は本ベージング法のデマント・ベーシング・プログラムのベージ 障害処理部の論理流れ図、第9図はページング・プログラムのリスト・ローディ ング部の論理流れ図、 第10eはデマンド・ベーシング・プログラムのスワップ部の論理流れ図である 。
韮員左主里 本発明の実施例が目指しているページ式仮想記憶処理システJ、の関連する部分 は第1図にブロック図として示されている。このようなシステムは仮想主記憶ア ドレスと共有主記憶アドレスの間の対応関係を示すために、仮想記憶ア]レス法 と共有上記憶と関連して複数のアドレス変換記憶装置を使用する任意の処理/ス テムであって良い。第1図のシステムは主記憶100と呼ばれる1次記憶と、デ ィスク101の如き大容量2次記憶装置と、少くとも1つの中央処理ユニノl− (CPU)102を含んでいる。
仮想記憶空間は第1図にあっては象徴的に表わされており、数字130で示され ている。仮想記憶空間130中に含まれている情f[i (例えばデータおよび 命令)はディスク101上に記憶されており、CP U ]、 02の制御の下 で主記憶100中に選択的に取り込まれろ、説明を容易にするため、仮想、記憶 空間−オデノスク101のアドレス空間と直接対応するように図示されているが 、本発明の方法はこのような制限を受けていない仮想メモリ・システムに対して も同様に適用できることに注意されたい。
CPU102は主舵’lt+00のメモリ・ロケーションにアクセスして、そこ から情報ワード−を取り出すと共にその中に情報ワードを記憶する。再び説明の 便宜上型−のCPU I O2を有する処理システムが示されている。本発明は 複数のCPU102を有する処理システムも同様に適用できる。複数のCPU1 02を含む処理システムでは、CPU102は主記憶100を共同使用すること になる。
複数個のプロセスが各々のCPU102上で時分割で実行される。プロセスは実 行すべ(処理システムにサブミントされたブロ8 ダラムされたジョブ、即ちタスクである。複数個のプロセスは主記憶100を共 同使用する。プロセスは仮想アドレスをCPU102に提供する。C,PU10 2のアドレス変換記メカニズム(ATV)103は周知の仕方である単位の情報 の仮想アドレスを主記憶100中のロケーションの物理的アドレスに変換する。
すると該単位の情報が主記憶100中に本当に記憶されている場合には主記憶の その物理アドレスのところで情報が見出されることになる。
仮想メモリ・アI・レス空間130はセグメント131と呼ばれる1つまたはそ れ以上のアドレスのブロックに分割されている。
セグメント131はページ132と呼ばれるアドレスのサブ・ブロックに細分割 されている。セグメント131は可変サイズであって良い。各セグメント131 は1つまたはそれ以上のページ132より成る。仮想メモリ・アドレス空間13 0はセグメント単位で使用するべくプロセスに割当てちれる。各プロセス(ま主 記憶100中に位置する複数個のセグメント・テーブル(STs)+20−12 1の1つと関連している。セグメント・テーブル120〜121の各々は1つま たはそれ以上のエントリー22を含んでおり、各エントリは関連するプロセスに 割当てられている、あるいは“所有されている”セグメント131に対応する。
逆に各セグメント・テーブルのエントリー22はやはり主記憶100中に位置す る複数個のページ・テーブル(PTs)109〜111の1つと関連している。
ページ・テーブル101−111の各々は複数個のエントリー12を含んでおり 、各エントリは関連するセグメント131中に含まれている仮想記憶130のペ ージ132に対応している。セグメント・テーブルのエントリ233は関連する ページ・テーブル109−111の1つを指示している。従って第1図の例にお いては、セグメント・テーブル120と関連するプロセスはページ・テーブル1 09および110と関連するページ132を所有している。何故ならばセグメン ト・テーブル120はページ・テーブル109を指示する1つのエントリ122 とページ・テーブル110を指示する他のエン1へりを含んでいるからである。
第1図の図示の実施例において、2つまたはそれ以上のプロセスがセグメント1 31単位でページ132を共有している。セグメント131を共有するプロセス は各々同じベーン・テーブルを指示するセグメント・テーブル・エンドす122 を有している。
該ページ・テーブルに相応するページ132が共有されている。
例えば第1図においてセグメント・テーブル120および121は共にページ・ テーブル110を指示するエントリ122を有しており、従ってセグメント・テ ーブル120および121と関連するプロセス:′:、ページ テーブル110 と関連するー々−L′i32を共有している。この例ではセグメント131単位 でプロセスがページ132を共有しているものとして示されているが、ページ1 32単位でページを共有するような他の方法も当業者にあっては知られている。
本発明はそのような方法にも等しく適用できる。
主記憶100は複数のページ・フレーム(PFs)114−116を含んでおり 、各ページ・フレームは、ページ132がディスク101から主記憶100中に スワツピング、即ち転送されるとき1ページ132の情報を記憶するのに使用さ れる主記憶100のブロック・メモリ・ロケーションである。1つまたはそ ・ れ以上のページ・テーブル109−111のエントリ112は、もし存在する場 合には該エントリ112に相応するページ132が記憶されているページ・フレ ーム114−116の1つの第10 の主記憶100の記憶ロケーションを指示する。(即ちその主記憶100のアド レスを含んでいる。)第1図の例ではページ・テーブル109のエントリはペー ジ・テーブル114を指示しており、ページ・テーブル110のエントリ112 はページ・フレーム115を指示しており、ページ・テーブル111のエントリ 112はページ・フレーム116を指示している。単一のページ・テーブル・エ ントリ112は主記憶100の1つまたはそれ以上のワードを含んでいる。
ページ・テーブル・エントリ122と関連するページ132が主記憶100のペ ージ・フレーム114−116の1つに記憶されているかどうか、およびそのエ ントリが有効なものかどうか、即ち有効期限切れでなくアドレス変換に使用でき るかどうかを示すため、各々のページ・テーブル・エントリ112は有効ビット 113と関連を有している。他のCPU 102が関連するエントリ112に同 時にアクセスし、変更を行うのとは独立にCP Lj102が有効ピッ) 11 3にアクセスし、その値を選択的に変更することを許容するため、ビット113 は主記憶100のハイドまたはワード単位で実現されている。
現在実行中のプロセスによってCPU102に供給された仮想アドレスを変換す る際、ATM103はまず現在実行中のプロセスと関連するセグメント・テーブ ル120−121の1つを選択し、現在変換されている仮想アドレスによって指 定されるエントリ122にアクセスする。アクセスされたエントリ122は^翔 103を該エントリ122と関連するページ・テーブル109−111の1つに 振り向わせ、ATMI03は該ページ・テーブル109−111の1つにおいて 現在変換されている仮想アドレスによって同様に指示されているエントリ112 にアクセスする。
アクセスされたページ・テーブル・エントリ112の有効ビット113が有効状 態にあると、アクセスされたエントリ112は関連するページ132が記憶され ている主記憶100のページ・フレーム114−116の1つのアドレスを/M rM103に提供する。選択されたページ・テーブル・エントリ112の有効ビ ット113が有効状態にあることが見出されると、ATM103はアドレス変換 プロセスを完了するために該ページ・テーブル・エントリ112中に含まれてい るページ・フレーム・アドレスをCPU102に返送することが出来る。何故な らばベーン132の特定ワード、従ってページ・フレーム114−116の1つ の相応するメモリ・ロケーションが現在変換中の仮想アI・レスによって指定さ れるからである。
選択された変換の結果はATM 103中に含まれている複数個のアドレス変換 バッファ・メモリ (ATBs) (104−105)の1つの中に現在実行中 のプロセスによって再使用するべく記憶される。各々のATB104−105は 複数個の記憶ロケーション、即ちエントリ106を含んでおり、各記憶ロケーシ ョンは仮想アドレスを変換した結果として得られる主起1なアドレスを記憶して いる。例えば、第1図においてATB 104のエントリ106は主記憶100 中のページ・フレーム115のアドレスを含んでいる各々のエントリ106はま た記憶された主記憶アドレスに相応する仮想アドレスを直接あるいは間接に指定 する。アドレス変換期間中、指定された仮想アドレスは、記憶された主記憶アド レスがATBエントリ106から引き出される前に現在変換中の仮想アドレスと 整合しなければならない。
1つのCPU102を有する処理システムにおいては、複数個のATBs104  105がATM103中に含まれている。複12 数のCPU102を有する処理システムでは、各CPLJ102のATBS10 4−105の内の少なくとも1つのATBを含んでいる。
処理システム中のATBs104−105の数は制御されており、一般にATB sを使用する必要のあるプロセスの数に比べて少い。従って複数個のプロセスが 1つまたはそれ以上のA T B104−105を連続して使用しなければなら ない。CPU102が1つのプロセス実行から他のプロセスの実行に切換わると き、該cpuば関連するATBs104−105の1つから以前実行していたプ ロセスによってその中に記憶された情報をクリアし、それによって以前実行され ていたプロセスに属する主記憶100中に記憶された情報が新らしく実行中のプ ロセスによってアクセスされることから保護し、またATB sの1つを新らし く実行中のプロセスが使用できるよう開放する。CPU1.02はATBの有効 ビット107のすべて(その内の1つは各ATB104.−105の各エン]・ す106と関連している)を無効状態にセントすることによりATB104.− 105の1つをクリアする。
仮想アドレスを変換する前に、ATM 103はまず現在実行中のプロセスによ って使用されているATBIO4−105の1つの内容を検査し、その中に以前 の変換の結果を含むエントリ106が見出されるかどうかを調べる。有効状態に 設定された関連する有効ビット107を有するエントリ106を見出すことが出 来るならば、ATM103は所望の主記憶ベージ・アドレスとしてエントリ10 6の内容をCP U 102に返す。
変換結果がATB 104−10.5の1つ中に見出すことが出来ないか、また は結果を含むエントリ106が見出されるが、その相応する有効ビット】07は 無効状態にあるならば、ATM1033 は先に述べたようにセグメント・テーブル120−121およびページ・テーブ ル109−111にアクセスすることにより要求されたアドレス変換を実行しな ければならない。変換を完了すると、ATM103ば現在実行中のプロセスによ って使用されているATB104−105の1つに結果を記憶する。
実行中のプロセスが主記憶100のページ・フレーム114−116において現 在アクセス出来ない仮想記憶ベージ132中にあるワードの情報にCPU102 がアクセスすることを要求するとき、ATM103はその仮想ページ132に相 応するページ・テーブル・エントリ112の有効ビット113が無効状態にセッ トされていることを見出す。従ってATM103はベージ障害インクラブド信号 を発生する。
ページ障害インクラブド信号はCPUI O2をして例えば主記憶100の一部 に記憶されているデマンド・ページング・プログラム108を実行させる。デマ ント・ページング・プログラム]、 08の機能は要求された情報を主記憶10 0中のプロセスに与えることにある。そのため、一般にデマンド・ページング・ プログラムはページ・フレーム114−116の1つを選択して、該ページ・フ レームにディスク101から要求されたページ132をロードしなければならな い。デマンド・ページング・プログラム108はまたページ・テーブル・エント リ112の内容およびその有効ビット113を調整して主記憶100の新らしい 状態を反映させる。ページング・プログラムおよびザーポート・データ構造は当 業者にあっては周知であり、その詳細に関してはここでは議論しない。本発明の 第1および第2の図示の実施例を実現するのに必要な修正点についてのみ詳細に 議論する。
デマンド・ページング・プログラムおよびザーボート構造の第4 1の実施例が第2−6図に示されている。第2図は主記憶100中に含まれてい るデータ構造を示す。既に議論し、第1図に示されている第2図に示す構造は第 2図においても第1図と同じ番号が付けられている。
第2図に示すように、ページ・テーブル109−111の各エンドす112は参 照(R)ビット214、修正(M)ビット215および有効(V)ビット113 の3つのピノ1−が関連している。
先に議論した有効ビット113の場合と同様に、エントリ112と関連する他の ビットまたはエントリ112それ自身に同時にアクセスし、変更を行う他のCI ) U 102とは独立に、CPU102がRビット214またはMビット21 5にアクセスし、その値を選択的に変更することを許容するため、ピノ+214 および215は各々メモリ100のハイドまたはワードで実現されている。ペー ジ・テーブル・エンドす112の参照ヒツト214は該エンド”ノ112に相応 するR−ン フL−ム114−116の1つか実行中のプロセスによって最初に アクセスまたは参照されるとき、ATM]03によって七ノI〜される。このよ うにして、参照ピノ1−214は関連するページ132の最近の使用状態、ある いは使用されていないことを示すことになる。ページ・チーフル・エンドす11 2の修正ビット215は同様に該エントリ112に相応するページ・フレーム1 14−116の1つが実行中のプロセスによって最初に変換されるときにセット される。このようにして修正ピノI・2 ] 4は関連するページ132が主記 憶100中に存在する間に該関連するページ132中に含まれている情報が変化 しなかったかまたは修正されたかどうかを示す。
主記憶100はまた「自分は自由になりたい(l want to befre e) l (IWTBF)リスト216を含んでいる。このIWTBFリスト2 16はその関連するページ132が主記憶100のページ・フレーム114−1 16から除去される$備のできているページ・テーブル・エントリ112に対す るポインタ、即ちそのアドレスを記憶する複数のエントリ217を有している。
各エントリ217はメモリ100の1つまたはそれ以上のワードより成る。
リスト216は任意の便利な形態をとって良い。例えば該リストはページ・テー ブル109−111の選択されたエントリl 1.2のリンクされたリストであ っても良いし、第2図に示すようなテーブルであっても良い。IWTBFリスト 216と関連するものとしてIWTBFフラグ218のグループがある。各フラ グ218はATB104−105+7)1つに相応する。フラグ218のすへて はIWTBFリスト216にページ・フレーJ、・アドレスがロートされるとき にリセットされる。フラグ218はATB1、04−105の内の関連するもの の内容がクリアされるときにセットされる。フラグ218のすべてがセットさ相 ろ上当はすべてのAT13104−105がクリアされたごとを示す。(何故な らばIWTBFリスト216がロートされたからである。)残りのフラグ218 に影響を与えることなくフラグ218の任意の1つに独立にアクセスし、その値 を変化させることを許容するために、各フラグ218はメモリ100のハイドま たはワードで実現されている。
主記憶100は更にディスク101からページ132に自由にロート出来るペー ジ・フレーム114− ] ]、 6に対するポインタを記憶している複数個の エンI・す219を有する自由リスト222を含んでいる。各エントリ219は メモリ100の1つまたはそれ以」二のワードより成っている。IWTBFリス ) 216の場合と同様に、自由リスト222は任意の便利な形態をとって良い が、16 第2図ではテーブルとして示されている。
主記憶100はまた主記憶100のページ・フレーム114−116中に存在す る間にその関連するページ132が修正されたページ・テーブル・エントリ11 2に対するポインタを記憶する複数個のエントリ221を有し、従ってディスク 101がらスワップ・インされる新らしいページ132によって上から書き込ま れる前にディスク101上にスワップ・アウトされねばならないスワップ・アウ ト・キュー220を含んでいる。エントリ221はまた通常関連するページ13 2のディスク101アドレスを含んでいる。再び、エントリ221はメモリ10 0の1つまたはそれ以上のワードより成って良く、スワ・ノブアウト・キュー2 20は任意の便利な形態をとって良いが、第2図ではテーブルとして示されてい る。
最後に、主記憶、100はその関連するページ132がディスク101から主記 憶100中にスワップされるプロセス中にあるページ・エントリ112に対する ポインタを記憶する複数個のエントリ226を有するスワップイン・キュー22 5を含んでいる。
エンドす226は、要求されたページ132が他のプロセスによって実行された 以前の要求に応動して既にスワップされているため、特定のページ障害インクラ ブドに応動してデマンド・ページング・プログラムを実行する必要があるかどう かを指示する。エントリ226は同様に通常関連するページ132のディスク1 01アドレスを含んでいる。エントリ226はメモリ100の1つまたはそれ以 上のワードより成り、スワップイン・キュー225は任意の便利な形態をとって 良いが、第2図ではテーブルの形で示されてい゛る。
1つ以」二のCPU102を有する処理システムでは、CPU7 102カ月WTI3Fリスト216、自由リス1222またはスワップアウト・ キュー220の如きデータ構造を互いに相互干渉のない仕方で使用することを保 証するために、1つ以上のcpu102がこれらデータ構造に同時にアクセスす ることを制限すると有利である。このために各データ構造の周辺に信号機(図示 せず)を設けることが考えられる。この“信号機”の概念、構造および使用法は 当業者にあっては周知である。あるいは信号機をページング・プログラムの臨界 的、即ち多分圧いに干渉し合うような部分に配置して、任意の時点においてペー ジ、ング・プログラムの臨界部分が処理システム中の唯一つのCP U 1.0 2上でのみ実行し得ることを保証することが考えられる。ページング・プログラ ムの臨界領域は第3−6図の流れ図中に示されている。
前述のデータ構造の使用を第3−6図のデマント・ページング・プログラムの論 理流れ図の記述と共に以下で述べる。
第3a図においてブロック300で示し、かつ前述した如く、デマンド・ページ ング・プログラムの実行はページ障害インクラブドの出現に応動してCPU10 2により開始される。ブロック301中に示すように、CPU102はデマント ・ページング・プログラムの第1の臨界領域Aに入る。ブロック302中に示す ように、次にCPU ] 02は要求されたページ132と関連するページ・テ ーブル・エンドす112にアクセスし、ページ障害インクラブドを発生したAT M103が有効ビットが無効であることを見出してから該有効ビットが有効状態 にセットされているかどうかを決定する。
■ビット113がセットされていて、現在要求されたページ132が主記憶10 0中に入手可能であることを示している場合、CPU102はブロック3]0に 示すように臨界領域Aを抜は出8 し、次いでCPU102はブロック311に示すようにデマンド・ページング・ プログラムを抜は出す。ブロック302において■ビット113が無効状態にリ セットされていることが見出されると、CPU102はブロック303に示すよ うに要求されたページ132のページ・テーブル・エントリ112がIWTBF リスト216のエントリ217により指示されているがどうかをチェックする。
要求されたページ132のページ・テーブル・エントリ122がIWTBFリス ト216のエントリ217によって指示されていると、CPUI 02はブロッ ク307に示すように該ページ・テーブル・エントリ112をIWTBFリスト 216がら取り除く。次にCP U ] 02はブロック308に示すようにP ′Fエントリ112の有効ビット113を有効状態にセットする。このようにし て要求されたページ132が主記憶100中においてΔTM103!こ対して与 えられ、CP Ll ! Q 2 Bまブl:?7/’31Qおよび3]1に夫 々示すようにデマント・ページング・プログラムの臨界領域Aおよびプログラム それ自身から抜は出す。
ページのページ・テーブル・エントリ112がブロック303中においてIWT BFリスト216のエントリによって指示されていないと決定されると、CPU I02はブロック304中に示すように該ページ・テーブル・エントリ112を 指示するエンドIJ 221に対するスワップアウト待行列220をチェ、りす る。
要求されたページ132のページ・テーブル・エントリ+12がスワップアウト 待行列220のエントリ221によって指示されていると、CPU102はブロ ック309中に示すように該ページ・エントリ112をスワップアウト待行列2 20から取り除く。
次にCPU102はプログラムの実行を進めてブロック308に9 行き、主記憶100に要求されたページ132を形成する作業を完了させる。
要求されたページのページ・テーブル・エントリ112がブロック304中にお いてスワップアウト・キュー220のエントリ221によって指示されていない ことが決定されると、要求されたページ132はディスク101から主記憶10 0中に持ち込まれねばならない。プロ、り305中に示すように、CPUはペー ジ132が“眠っていること”を要求するプロセフい即ち該ページ132が更に 実行するよう計画を立てることを妨げるプロセスを配置する。(この状態は該プ ロセスにより要求されたページが主記憶100中においてアクセス可能となるま で続く。)次にCPUI02はブロック306に示すように要求されたページ1 32のページ テーブル・エントリ112を指示するエントリ226があるかど うかスワツピング待行列225をチェックする。
もしこのようなエントリ226が存在する場合には、これは他のプロセスによっ てなされた以前の要求に応動して要求されたページ132が既に主記憶100中 にスワップされていることを示すものである。従ってデマンド・ページング・プ ログラムは現在処理されているページ障害インクラブドに応動して更に実行され る必要はない。従ってCPU102はブロック310および311に夫々示すよ うに臨界領域Aおよびデマント・ページング プログラムそれ自身から抜は出す 。
ブロック306において要求されたページのページ・テーブル・エントリ112 がスワップイン待行列225のエントリ226によって指示されていないことが 決定されると、CPU102は自由リスト222から要求されたページ132を その中にスワップすることの出来るページ・フレーム114−116のアトレス 20 を獲得せねばならず、従ってCPU102は自由リスト222にアクセスし、第 3b図のブロックに示すようにリスト222が空かどうかをチェックする。リス ト222が空でないなら、即ちリスl−222が1つまたはそれ以上のページ・ フレーム114−116を指示するならば、(T、PUlo、2はブロック31 6eこおいてプログラムの実行を継続する。リスト222が空であると、CP  LJ102はブロック313中に示すようにプログラムの臨界領域へを抜は出し 、次いでブロック314中に示すように第4b図の自由リスト・ロード・ルー、 ヂンを実行する。自由リスト・ロード・ルーチンの実行に続いて、CPUI O 2はブロック315に示すように再び臨界領域A中に入り、デマント・ベーシン グ・プログラムの実行をブロック312に戻す。
ブロック316中に示すように、CPU102はページ・フレーム114−11 6に対するポインタを自由リスト222がら取除く。次にCP U 102はブ ロック317中に示す如くデノスク10]に対し要求されたページ132を該ペ ージ・フレーム114−116中に転送するよう要求する。ページ・フレーム1 14−116に対するポインタ(即ちページ・フレーム11.!−116の主記 憶アドレス)は次にブロック318中に示すように要求されたページ132のP Tエントリ112中にCPUI O2により記憶される。そしてブロック319 中に示すようにPTエントリ112に対するポインタはスワップイン待行列22 5のエントリ226中ムこCPU102により配置される。CPu102はまた このスワップイン・キュー・エントリ226中に要求されたページ132のディ スク101アドレスを配置する。
この時点において、CPU102はブロック320によって示すようにデマンド ・ページング・プログラムの臨界領域Aから抜は出す。CPU102はブロック 321に示すようにディスク101が要求された転送を実行している間、デマン ド・ページング・プログラムの更なる実行を待たねばならない。ここでの議論で はディスク101中の任意の記憶ロケーションに対する読み出し、書き込み操作 は受信された順にディスクI(11により実行されるものと仮定している。ディ スク101が要求された転送を実行している間、CPU102はデマンド・ペー ジング・プログラムから離れて、他の活動、例えば他のプロセスの実行を行って 良い。ディスク101が転送を完了すると、ブロック322に示ずようにCPU 102はデマンド・ページング・プログラムの実行に戻り、そのしn界領域へに 再び入る。ブロック322中に示すように、CPU102はスワップイン待行列 225にアクセスし、そこから要求されたページ132のPTエントリ112に 対するポインタを取除く。次ぎにCPU102は要求されたページ132のPT エントリ112にアクセスし、関連するRビット214およびMビット215を リセットして初期状態にする。また、ブロック324に示ずようにCPU102 はそのページ・テーブル・エントリ112の有効ビット113をセントし、要求 されたページ132が主記憶100中に記憶されたこと、従ってページ・テーブ ル・エントリ112が有効であることを指示する。次にCPUI O2はブロッ ク325中に示すように、プロセスの再実行スケジュールを立てることにより、 このページ132によって引き起されたページ障害インクラブドによって中断さ れたプロセスを“目覚め”させる。この時点でCPU102はブロック326に よって示すようにページング・プログラムの臨界領域へから抜は出す。そしてブ ロック327に示すように、次にCPu102はページング・プログラムそれ自 身から抜は出す。
要求されたページ132をスワップ・インするのに利用できるページ・フレーム 114−11.6からはみ出すことを回避するため、CPU 102は第4a図 にフローチャートを示すルーチンを実行することにより自由リスト222の保守 を周期的に行うことが要求される。CPU102は周期的割込みの如き時間的な エントリを介して第4a図のルーチンを実行するよう指令される。第4a図のブ ロック450中に示すように、自由リスト保守ルーチンを実行せよとの指令を受 信すると、CPU102はブロック451中に示すように、自由リスト222を チェックし、該自由リストの長さが予め定められた最小値以下かどうか、即ち該 自由リストがある予め定められた数のページ・フレーム・アドレス以下しか含ん でいないかどうかを決定する。この予め定められた数は例えば自由ページの数が 少なすぎる結果ページング・プログラムによって自由リスト222が空であるこ とが見出される費用と、自由ページの数が多すぎる結果メモリが使用されないこ との費用のバランスによって決定される。自由リスト222の長さが十分である と、ブロック453に示すように、CPU102は自由リスト保守ルーチンから 抜は出す。自由リスト222の長さが十分でないと、CPU102はブロック4 52に示すように、ブロック453において自由リスト保守ルーチンから抜は出 す前に第4a図の自由リスト・ロード・ルーチンを実行する。
デマント・ページング・プログラムの自由リスト・ロート・ルーチンの論理流れ 図が第4b図に示されている。ブロック400中に示すように、自由リスト・ロ ード・ルーチンは、第3b図のブロック314および第4a図のブロック452 において、自由リスト・ロード条件に出会うとCPU102により実行される。
ブロック401中に示すように、CPU102はまずデマントページング・プロ グラムの臨界領域Bに入り、一時には唯一つのページ102のみが自由リスト・ ロート・ルーチンを実行していることを保証する。次にCP LJ ]、 02 はブロック402に示すように、デマンド・ページング・プログラムのOp界領 域Aに入る。
次にCPU102はブロック403に示すようGこ、IWTBFフラグ218を 8周べ、IWTBFリスト216が最後にロートされてからすべてのATB10 4−105がクリアされたかどうかを決定する。すべてのIWTBFフラグ21 8がセットされていないと(これはすべてのATB 104−105がクリアさ れていないことを示す)、CPU102はプロ・ツク40゛4中に示すようにA TB104−105の内、クリアされていないものをクリアすす。次にCPU1 02はブロック405においてプログラムの実行を継続する。ブロック403に おいてすべてのjWTBFフラグ218がセットされていることが見出されると (これはすべてのATB+04−105が)う、ン7.されたことを示す)、C PU102はプログラムの実行を直接ブロック405に進める。
IWTBFリスト216がロードされてからすべてのATB104−105をク リアすることによりどのAT BIO4−105も有効なエントリ106を含ん でいないこと、即ち+WTBFリスト216のロートより前に生成されたその関 連する有効ビット107が有効状態にセントされているエントリ106を含んで いないことが保証される。この場合エントリ106はそのアドレスがIWTBF リスト216中にあるページ・フレーム114−116を指示している。第5図 のブロック504と関連して述べる更なるメカニズムによりjWTBFリスト2 16がロードされてからそのようなATBエントリ106が生成されていないこ とが保証される。従って、IWTBFリスト216のエントリ21724 によって指示されているページ・フレーム114−116のグループは主記憶1 00からスワップアウトされ、CPU102はこのページ・フレーム114−1 16の内の選択されたもののアドレスをIWTBFリスト216から自由リスト 222に転送する。
ブロック405中に示すように、CPUI 12はIWTBFリスト216が空 かどうか、即ちIWTBFリストがいずれかのPTエントリ112に対するポイ ンタを含むか否かがチェックされる。リスト216が空であるとCPUI 02 はブロック406に示すようにプログラムの臨界領域Aから抜は出し、ブロック 407に示すようにIWTBFリスト・ロード・ルーチン(これは第5図に論理 流れ図が示されている)を実行する。その後CPU102はブロック408に示 すようにプログラムの臨界領域Bを抜は出し、ブロック409に示すようにプロ グラムの実行を自由リスト・ロード・ルーチンが呼び出された点に戻す。
ブロック405においてリスト216が空でないことが見出されると、ブロック 410中に示すように、CPU102はPTエントリ112に対するポインタを TWTBFリスト216から取除く。CPU102はそのPTエントリ112に アクセスし、該エントリ112の参照ビット214をチェックし、ビット214 がセノ1−されているかどうかを決定する。参照ビット214がセットされてお り、該PTエントリ112と関連するページ132がTWTBFリスト216の ロード時に参照されていたことを指示すると、同しページ132が近い将来再び 参照される可能性がある。従ってこのページ132は主記憶からスワップアウト すべきではなく、CPU102はブロック412中に示すようにこのページ・テ ーブル・エントリ112の有効ピノ)113を有効状態にセットし、PTエント リ112をATM 103が使用できるようにする。次にCPU102はブロッ ク405に戻る。
ブロック411においでページ・テーブル・エントリ112の参照ビット214 がセットされていることが見出されないと、CPU102はブロック413中に 示すようにこのPTエントリ112の修正ビット215をチェックする。修正ビ ット215がセ・ノドされており、それによってこのPTエントリ112と関連 するページ132が主記憶loo中に存在する間に修正されたことを指示すると 、ページ132は主記憶100中で破壊される前にディスク101にスワップ・ バンクされねばならない。従ってCPUI 02はブロック414中に示すよう にスワップアウト待行列 220のエントリ221中にページと関連するPTエ ントリに対するポインタを配置する。次にCPU102はブロック405に戻る 。
ブロック413においてページ・テーブル・エントリ112の修正ビット215 がセットされていることが見出されないと、ブロック415中に示すようにその エントリ112に含まれているページ・フレーム114−116のアドレスを自 由リスト222に転送する。次にCPU102はプログラムの実行をブロック4 05に戻す。
IWTBFリスト・ロード・ルーチンの論理流れ図が第5図に示されている。ブ ロック500中に示すように、このルーチンは、第4b図のブロック407にお いてIWTBFリストが空であることが見出されたとき、IWTBFリスト条件 に出会うとCPU102によって実行される。ブロック501中に示すように、 CPUI O2はその有効ビット113が有効状態にセットされているページ・ テーブル109−111からエントリ112を選択する。ページ・テーブル・エ ントリ112の選択は任意に適切な6 基準に従い、例えばページ・テーブル109−111の逐次探索によって実行さ れる。有効ビットの有効状態は関連するエントリ112が現在主記憶100中に 存在し、がっ現在IWTBFリスト216上にはないページ132に相応するこ とを指示する。次にCPU102はブロック502中に示すように選択されたエ ントリ112の基準ビット214をチェックする。参照ビット214がセットさ れており、それによって関連するページ132が最近参照されたことが指示され ていると、同しページ132が近い将来再び参照される可能性がある。従ってこ のページ132は主記憶100からスワップアウトされるべきではない。従って CPU102はブロック5o3中に示すように、選択されたI :/ ) IJ 112の参照ビット214をリセットし、ブロック501に戻って他のページ・ テーブル・エントリ112を選択する。
選択されたページ・テーブル・エンドIJ 112の参照ビット214がブロッ ク5(L2中においてリセットされていることが見出されると、CPU102は 選択されたページ・テーブル・エントリ112によって指示されているページ・ フレーム114−116を放棄する。本出願の実施例にあっては、ページ・フレ ーム1]4−116の放棄はATB104−105がクリアされたかどうかに関 する情報を記憶している関連する装置の初期化を含んでいる。本実施例において 該装置はIWTBFフラグ218を°含んでいる。第7〜1o図の実施例の場合 から分るように、該装置は特定の1つまたはそれ以」二のページ・フレーム11 4−116と恒久的に関係しているが、またはページ・フレームの放棄は第2〜 6図の実施例から分るように該装置を特定の1つまたはそれ1ソ」二のページ・ フレーム114−116と関連付けることを含んでいる。これら実施例において 、IWTBFフラグ218の初期化の後に、放棄される1つまたはそれ以上のペ ージ・フレーム114−116を指示する有効なATBエントリ106、即ち有 効な有効ビット107でマークされたATBエントリ106が形成されたか否か を把握していなければならない。ある時点以降にこのようなATBエントリ19 6の可能な生成状況を把握しているという後者の機能は、前記時点より前に生成 された前記ATBエントリ106の存在状況を把握する前者の機能(この機能は IWTBFフラグ128によって戻される)を補完する。後者の機能がある時点 以降前述の如きATBエントリ106を生成しなかったことを指示し、前者の機 能が前記時点より以前に生成された前述の如きATBエントリ106が存在しな いことを指示するとき、放棄されたページ・フレームの内容は主記憶100から 取除かれる。
第2−6図の例において、放棄されたページ・フレーム114−116を指示す るATBエントリ106の生成はこのようなエントリ106が形成されることを 妨げる手段によって記憶される。
このためにCPUI 02はブロック504中に示すように放棄されたページ・ フレーム114−116を示すページ・テーブル・エントリ112の有効ビン) 113を無効状態にリセットする。
有効ビット113の無効状態は関連するページ132が主記憶100中に存在し ないものと考えられることATM 103ζこ指示し、それによってATM10 3が選択されたページ・テーブル・エントリ112の内容に基づいてATB10 4−105中にエントリ106を生成しないことを保証する。次にCPU102 はブロック505中に示すように臨界プログラム領域Aに入り、ブロック506 中に示すようにIWTBFリスト216のエン1−リ217に選択されたページ ・テーブル・エントリ112に対するポインタをロートする。するとページ・テ ーブル・エントリ112がページ・フレーム114−116を指示するので、I WTBFリスト216は放棄されたページ・フレーム114−116のIJリス トなる。
次にCPU102はブロック507中に示すようにじR界プログラム領域Aを抜 は出し、IWTBFリスト216の長さをチェックして、ブロック508によっ て示すようにIWTBFリスト216が適当な長さであるかどうか、または既に IWTBFリス)216中に含まれているページ フレームに更にページ・フレ ーム114−116を付加する必要があるかどうかが決定される。
IWT’BPリスト216の適当な長さは再びリスト216の長さが短いときの rW TBFリスト・L7−L・ルーチンに対する度重さなるコールと、リスト 216の長さが長いときのメモリの利用効率の悪さによる度重さなるデマント− ・ページング ブコクラムに対するコールとの間のバランスの如きソフテ1、効 率を考rヒスることにより決定される。I W T B Fリスト216が満杯 でないと、CP LJ 102はプログラムの実行をブロック501に戻し、更 に他のページ・テーブル・エントリ112を選択する。IWTBFリスト216 が満杯であると、CPU102はブロック509中に示すように、ずべてのIW TBFフラグ218をクリアすることによってページ・フレームの放棄を完了し 2、該フラグを初期化してどのATBl、04−105がクリアされるかを記憶 する。次にプログラムの実行はブロック510中に示すように、IWTBF リ スト・ロード・ルーチンが呼び出された点に戻される。
修正されたページ132中に含まれている新しい情報をディスク101上にセー ブするため、CPU102は第6図にフローチャートを示すスワップ・ルーチン を周期的に実行する。このルー9 −− チンは例えばCPU102が第4b図の自由リスト・ロード・ルーチンから抜は 出す毎、まなは周期的インクラブドの如き時間的エントリに出会うときに実行さ れる。第6図のブロック600中に示すように、CPU102はスワップ指令が 与えられたときスワップ・ルーチンを実行する。CPIJ102はブロック60 1中に示すように臨界プログラム領域A中に入り、スワップ・アウト待行列22 0をチェックし、プロ、り602中に示すよテに待行列220が空かどうか決定 する。待行列が空であると、C’P ’[1102はブロック610によって示 すように臨界プログラム領域Aを抜は出し、次いでプロ・7り611中に示すよ うにスワップ。
ルーチンそれ自身から抜は出す。スワップアウト待行列220が空でないと、C PU102はスフ・ノブアウト待行列220のエントリにアクセスし、ブロック 603に示すように入出力装置、例えばディスク101に対し該スワップアウト 待行列エントリ221によって示されるPTエントリ112によって7トレス指 定されるページ・フレーム114−116の内容、即ち占有しているページ13 2をディスク1011に書き込むよう指示を与える。主記憶100中に記憶され ているページ132の内容はディスク101上において該ページ132の元の内 容にとって代る。ブロック604中に示すように、次にCPU102はスワップ アウトされたページのPTエントリ112に対するポインタをスフノブアウト・ キュー220から取り除く。そしてCPU1.02はフロック605中に示すよ うに該PTエントリ112と関連するMビット215をリセットする。
この時点でCPU102はブロック606に示すようにI+’H−1プログラム 領域Aから抜は出す。CPIJ102はブロック607中に示すように入出力装 置がスワップを実行している間、スワップ0 ・ルーチンの更なる実行を待たねばならない。この期間中、CPU102はスワ ップ・ルーチンから離れて他の活動を行ってもよい。
スワップ完了後、CPU102はブロック608に示すようにスワップ・ルーチ ンの実行に戻り、その臨界領域Aに入る。CPU102はブロック609中に示 すようにスワップアウトされたページ132を保持していたページ・フレーム1 14−116に対するポインタを自由リスト222に付加し、ブロック602に 戻る。CPU102がブロック602においてスワップアウト待行列220が空 であることを見出すと、CPU102はブロック611においてスワップ・ルー チンから抜は出す。
デマンド・プログラムおよび支持構造の第2の実施例が第7−10図に示されて いる。第7図は主記憶100中に含まれているデータ構造を示す。既に議論し、 第1図に示した第7図に示す構造は第7図においても第1図と同し番号で示され ている。
第7図に示すように、主記憶]00は複数個のエンドす719を有する自由リス トア22と複数個のエントリ721を有するスワツプアウト待行列を含んでいる 。これら構造の機能は第2図の同様な構造222.219.220および221 と夫々間しである。エントリ719および721の各々は同様に主記憶100の 1つまたはそれ以上のワードを含んでいる。自由リストア22およびスワップア ウト待行列720は任意の便利な形態をとって良い。例えばページ・データ・テ ーブル(PDT)716の選択されたエントリ717のリンクされたリストであ っても良いし、第7図の例に示すようにこのようなエントリ717のテーブルで あっても良い。
主記憶100はまたその各々がページ・フレーム114−116の1つと関連し ており、該関連するjつのベーン・・フレーム114−116に関する情報を含 んでいる複数個のエンドす717を含むページ・データ・テーブル(PDT)7 16を含んでいる。エントリ717は該エントリ717が対応するページ・フレ ーム114−116中に記載されているページ132と関連するページ・テーブ ル・エントリ112を指示、即ちそのアドレスを含んでいる。各エントリ717 は同様に主記憶100の1つまたはそれ以上のワードより成る。PDT716の 各エントリ717は割当て(A)ビット723、参照(R)ビット714、修正 (M)ビット715、スワップアウト(S)ビット724およびスワップイン( 1)ビット727と名付けられた複数個の状態指示ビットと関連している。割当 てビアドア23の状態は相応するページ・フレーム114−116が占有されて いるかどうか、即ち相応するページ・フレーム114−116がページ132を 保持するために割当てられているかどうかを指示する。参照ビット714および 修正ビット7I5の機能は第2図の類僚のビット214および215の機能と同 様である。スワップアウト・ビット724の状態は相応す、るPDTエントリ7 17がスワップアウト待行列720に付加されているかどうかを指示する。そし てスワップイン・ビット727の状態は相応するPDTエントリ717がディス ク101から主記憶100中にスワップされるプロセス中にあるかどうかを指示 する。有効ビット113の場合と同様に、ビット723.714.715.72 4および727の内1つまたはそれ以上のものが独立にアクセスされ、その値が エントリ717と関連する残りのビットまたはエントリ717それ自身に同時に アクセスする他のCPUI 02とは独立にCPUI O2によって選択的に変 更されることを許容するために、ビット723.714.715.724および 727の各々は主記憶100の1つのハイ32 トまたは1つのワードで実現されていて良い。
PDT716は複数個のパーティションに分割されている。即ちPDT716の エントリ717は複数個の異なるグループに分離されている。第7図の例では、 P、DT716は2つのパーティション716aおよび716bに分割されてい るものとして示されている。各々のPDTパーティソヨン716aおよび716 bは関連する[−自分は自由になりたい(I 11ant to be fre e ) J(TWTBF)フラグのグループを有している。第7図の例ではPD Tパーティション716aはそれと関連するフラグ718aのグループを有して おり、PDTパーティション716bはそれと関連するフラグ718bのグルー プを有している。独立にアクセスするため、各フラグ718は再び主記憶100 の1つのハイドまたは1つのワードから成っていて良い。複数個のフラグ718 aおよび718bの各々(21)7−+グア18はATB104−105(7) 1つと対応している。このようにして複数個のフラグ718aおよび718bの 各々はATB104−105の各々に対するフラグ718を有している。AT’ B’104−105の特定の一つと関連するフラグ718aおよび718bはそ の特定の一つのATB+04−105がクリアされるときセントされる。PDT パーティション716aまたは716bと関連する複数個のフラグ718aおよ び71.8 bは第8図の説明と関連して明らかとなるように、第8図のページ ング・プログラムが該P D Tパーティション716aまたは716bから抜 は出すとき、即ち探索を完了するときにクリアされる。複数個のフラグ718a または718bのフラグ718がすべてセットされると、これは第8図のページ ング・プログラムが関連するPDTパーティション716aまたは716bを励 起してからすべてのATB 104−・105がりIJ 7されたことを示すこ とになる。
第2−6図の実施例の場合と同様に、複数個のC,1)U2O5を有する処理シ ステムにおいて、PDT716、自由リストア22およびスワップアウト待行列 720の如きデータ構造の周辺、またはページング・プログラムの臨界部分の周 辺に周知の仕方て″信号機” (図示ゼず)を設りることが考えられる。ベーシ ング・プログラムの臨界領域は第5−tO図の流れ図に示されている。
前述のデータ構造の使用法を以下で第8−10図のデマンド・ページング・プロ グラムの論理流れ図の記述と関連して詳述する。
第8図のブロック800で示すように、デマント・ベーシング・プログラムの実 行はページ障害インクラブドの出現に応動してCPU102によって開始される 。ブロック801中に示すように、CPU 102は最初にデマント・プログラ ムの臨界領域A4こ入る。次にCPUI O2はブロック802中に示すように 要求されたページと関連するPTエントリ112にアクセスし、もし存在する場 合にはPDTエントリ717に対するポインタを取り出し、PDTエントリ71 7にアクセスして該エントリが要求されたページ132のPTエントリ112を 指示するかどうかを決定する。このようなエントリ717が見出されると、CP U102はブロック802に示すように該エントリ717のAビット723をチ ェックし、該ビットがセットされているかどうか決定する。
両方の条件が満されない場合には、これは要求されたページ132がディスク1 01から取り出されねばならないことを意味する。
従ってCPUI O2はブロック804に示すように該ページを要求しているプ ロセスを“眠むらせ”プログラムの実行をブロック811に進める。
ブロック802においてPDTエントリ717により両方の条4 件が満されると、これはたとえページ132が主起41100中で得られないと 考えられる場合でも、要求されたページ132が該PDTエントリ717に相応 するページ・フレーム114−116中に記憶されていることを意味する。CP U102はブロック803中に示すようにPDTエントリ717のSビット72 4をチェックする。Sビット724がセットされており、従ってPDTエントリ 717がスワ・ノブアウト待行列720にリンクされている場合には、ブロック 805に示すようにCPU102は該PDTエントリ717をスワップアウト待 行列720から切離し、Sビット724をリセットする。次にCPU102はP DTエントリ717によって指示されているPTエントリ112の有効ビット1 13を有効状態にセフ)し、要求されたべ一ソ132を主記憶100中でアクセ ス出来るようにする。次にCPU102はフロック807中に示すように臨界プ ログラム領域Aを抜は出し、その後ブロック808中に示すようにデマント・ベ ーシング・プログラムそれ自身から抜は出す。
フロック807中で8周べられたPDTエントリ717のSビ。
ドア24がセットされていないと、CPU102はブロック809に示すように ページ132を要求しているプロセスを“眠らせる”。次にCPUI02はブロ ック810に示ずようにPDTエントリ717のスワップイン・ビット727を チェックする。スワップイン・ビット727がセットされており、従って要求さ れたページ132が他のプロセッサによりなされた以前の要求に応動して主記憶 100中に既にスワップインされている場合には、CP U I D 2はブロ ック807および808に夫々示すように臨界プログラム領域Aを抜は出し、次 いでページインク・エントリ717のスワップイン・ビット727がセットされ ていないことが見出されると、CPU102はブロック81.1においてデマン ド・ページング・プログラムの実行を進める。
前述した如く、CPLJI 02はディスク101から要求されたページ132 を得るためにプロ、り804またはブロック810のいずれからかブロック81 1のプロゲラ1、に到達する。CP U2O5は自由リストア22からその中に 要求されたページ132がスワップ出来るページ・フレーム114−116のア ドレスを取り出さねばならない。CPU102は自由リストア22にアクセスし 、ブロック811中に示すように自由リストア22が予め定められた最小の長さ より短いか否かチェックする。自由リストア22の最小の長さは、自由リストア 22中におけるエントリの完全なターンオーバに必要な最小時間が、アI・レス 交換およびPDT716の更新を含むメモリ100のアクセス・サイクルを実行 するのにCPU102が必要とする最大時間を超すような長さとなっている。
自由リストア22はすべての未割当てページ・フレーム114−116、即ちP DT716中のその相応する割当てビアドア23がセットされていないすべての ページ・フレー1.114−116を含んでいる。十分な数の未割当てページ・ フレーム114.−116が存在する場合には、CP U Llプロ、り811 において自由リストア22が十分な長さであることを見出し、ブし1ツク815 においてプログラムの実行を継続する。しかし未割当てページ・フレーム114 −116がほぼ消費されている場合には、CP U102jよブロック811に おいて自由リストア22が不十分な長さであることを見出し、CPUI02はブ ロック813中に示すように第9図の自由リスト・ロートルーチンを実行しなけ れば36 ならない。自由リスト・ロード・ルーチンを実行する前に、CPU102はブロ ック812中に示すように臨界プログラム領域Aを抜は出す。自由リスト・ロー ド・ルーチンを実行した後、CPU102はブロック814中に示すように臨界 領域Aに再び入り、プログラムの実行をブロック811に戻して自由リストア2 2の長さが適当であるかどうかを再チェックする。
ブロック815に示すように、ブロック811において自由リストア22が十分 な長さであることが見出されると、CPU102は自由リストア22から次のエ ントリ719を取り除く。自由リストア22はファーストイン・ファーストアウ ト(FIFO)メモリとして構成されており、CPU102は自由リストア22 がら最も古いエントリ719、例えば底にあるエントリを取り除く。
自由リスト・エントリ719はPDTエントリ717を指示しており、CP I J 1.02はブロック816中に示すようにPDTエントリ717にアクセス してエントリ717の参照ビット714がセットされているかどうかを決定する 。参照ビット714がセットされると、これはPDTエントリ717が第9図の 自由リスト・ロード・ルーチンによって自由リストア22に付加されていたとき にPDTエンドす717に相応するページ・フレーム114−116に割当てら れたページ132が参照されていたことを示す。同じページ132が近い将来再 び参照される可能性がある。
また参照ビット714がセントされる原因となる該ページ132に対する参照は 、参照ページ132を保持しているページ・フレーム114−116を指示して いるATBエントリ106を生成したアドレス変換より先行して実行されている 可能性がある。従ってこのページ132は主記憶100からスワツプアウトすべ きではなく、cpul 02はブロック817に示すようにPDTエントリ71 7によって指示されているページ・テーブル・エントリ112の有効ビット11 3を有効状態に戻す。CPUI O2はまたPDTエントリ717の割当てビッ ト723をセットする。
次にCPU102はプログラムの実行をブロック811に戻す。
ブロック810において、PDTエントリ717の参照ビット714がセットさ れていないことが見出されると、以下で示すようにいずれのATB104−10 5も該PDTエンl−IJ 717と関連するページ・フレーム114−116 を指示する有効なエントリ106を含んでいないことが保証される。従って該ペ ージ・フレーム114−116はディスク101からスワップ・インされている 要求されたページ132を保持することが出来る。従って第8b図のブロック8 18に示すように、CPU102は要求されたページ132のPTエントリ11 2をして自由ページ・フレーム114−116のPDTエントリ717を指示さ せる。ブロック819中に示すように、CPU102はまた該PDTエントリ7 17をして要求されたページ132のPTエントリ112を指示させ、P ’D  Tエントリ717のAビット723をセットして相応するページ・フレーム1 14’−116がページ132に割当てられたことを示す。CPU102はまた ブロック820中に示すように、PDTエントリ717の■ビット727をセッ トし、ページ132がPDTエントリ717と関連するページ・フレーム114 −116中にスワップされていることを示す。
種々のリンケージを実行するとき、CPU102はブロック821中に示すよう に、要求されたページ132をディスク101から自由ページ・フレーム114 −116中にスワップすることを要求する。この時点で、CPUI(12はブロ ック822に示すようにデマンド・ページング・プログラムの臨界領域Aを抜は 出8 す、CPU102はブロック823に示すようにディスク101が要求された転 送を実行している間、デマンド・ページング・プログラムの更なる実行を待たね ばならない。前述した如く、ここでの議論ではディスク101の任意の記憶ロケ ーションに対する読み出し、書き込み操作は要求された順に実行されるものと仮 定している。ディスク101が要求された転送を実行している間、CPU 10 2はデマンド・ページング・プログラムを離れ、他の活動をして良い。ディスク 101が転送を完了した後、CPU102はページング・プログラムの実行に戻 る。ブロック824に示すように、CPU102はPDTエントリのIビット7 27をリセットする。次にCPUI 02はブロック725に示ずようにPDT エントリ717によって指示されているPTエントリ112の有効ビット113 にアクセスし、■ビット113を有効状態にセントする。
ページングを完了した後、CPUI O2はブロック726中に示すようにこの ページ132によって引き起されたページ障害インクラブドによってインクラブ ドされたプロセスを“起し”、該プロセスの実行計画を再び立てる。次にCPU 102はブロック827に示すようにデマント・ページング・プログラムを抜は 出す。
前述した如く、デマント・ページング・プログラムの自由リスト・ロード・ルー チンの論理流れ図は第9図に示されている。ブロック900中に示すように、自 由リスト・ロート・ルーチンは第8a図のブロック813において自由リスト・ ロード条件に出会ったときにCPU102により実行される。CPU102は主 記憶100からスワップし得るページ・フレーム114−116を探索する。C PU102はブロック901中に示すように最初臨界プログラム領域B中に入る 。次にCPU102はプロ・ツク902中に示すようにそのAビット723がセ ットされているPDTエントリ717を選択し、アクセスする。CPU102は 逐次PDTエントリ717にアクセスし、その割当てビット723がセットされ ている次の逐次PDTエントリ717にアクセスする。PDTエントリ717に アクセスした後、CPU102はブロック903中に示すようにプロセス中にパ ーティション716aからパーティション716bへ、またはパーティション7 16bの最後のエントリ717からパーティション716aの最初のエントリ7 17にCPU102がPDTパーティソヨン境界を越したかどうかをチェックす る。
PDTパーティション716の境界を越えるとPDTパーティション761aお よび716bの内の励起された1つと関連するページ・フレーム114−116 の放棄がマークされる。先に述べた如く、ページ・フレームの放棄はATB10 4−105がクリアされたか否かの記憶を開始させるIWTBFフラグ718の 関連するグループの初期化を含んでいる。このIWTBFフラグ718の前者の 機能は再び放棄されるページ フレーム114−116を指示する有効ATBエ ントリ106がIWTBFフラグ718の関連するグループの初期化の後で形成 されるか否かの記憶を行う後者の機能によって補完される。第7−10図の図示 の実施例では、この後者の機能は以下で明らかとなるようるこ関連する参照ビッ ト714により放棄されたページ・フレーム114−116に対して実行される 。
パーティションの境界が越されると、CPU1O’2はブロック904中に示す ようにPDTパーティショソ716aおよび716bの内の“励起された”1つ と関連するフラグ718aおよび7]8b40 のグループの1つのIWTBFフラグ718をクリアし、どのATB104−1 05がクリアされるかを記憶するためにフラグ718の該グループを初期化する 。CPU102は次にブロック905中に示すようにPDTパーティション71 6aおよび716bの内6人れられた”1つと関連する+WTBFフラグ718 aおよび718bの他のグループのフラグ718をチェックする。例えば割当て られたPDTエントリ717の探索によりCP U2O5がPDTパーティショ ン716”aを抜は出して、PDTパーティション716bに入ると、CPU1 02はフラグ718bをクリアし、フラグ718bの状態をチェックする。他方 、PDTパーティション716aに入ると、CPU102はフラグ718bをク リアし、フラグ718aの状態をチェックする。
CPU l 02は新らしく“入れられた”パーティション716aまたは71 6bと関連するフラグ718をチェックし、CPU102が最後に゛該パーティ ション716aまたは716bfi:励起してからずべてのATB104−10 5が少なくとも1回はクリアされたか否かを決定する。すべてのチェ′ツクされ たフラグ718aまたは718bがセットされておらす、従って該パーティショ ン716が励起されてからすべてのATBIOI−105がクリアされていない ことを示している場合、CPUI O2はプロ・ツク906中に示すようにAT B104−105の内クリアされていないものをクリアする。次にcpul 0 2はブロック907においてプログラムを実行することが許容される。すべての チェックされたフラグ718aまたは718bがブロック905中でセ・ツトさ れているのが見出される、それによってずへてのA T 8104−105がク リアされていることが示されると、CPtJ102はプログラムの実行は直接ブ ロック907に進むことが許容される。
新らしく“入れられた”パーティション716が最後に励起されてからすべての ATB104−105がクリアされることにより、いずれのATB104−10 5もCPU102が最後にパーティション716を励起した時よりも以前に生成 され、該パーティションと関連するページ・フレーム114−116を指示する 有効エントリ106を含んでいないことが保証される。
CPU102は同様にプロ、り902においてパーティションの境界を越さない ことが見出されるとブロック903から直接ブロック907に実行が進む。
前述の如く、CPU102は主記憶100からスワツピング可能なページ・フレ ーム114−116を探索する。ブロック907に示すように、CPU102は ブロック902でアクセスされたPDTエントリ7.17の基準ピノI−724 をチェックする。Rビット714がセノ1−されると、これはCPU102が最 後にPDTエントリ717を調べてからこのPDTエントリ717と関連するペ ージ・フレーム114−j16の内容が参照されたことを示すものである。この 関連するページ・フレーム114−116の内容に対する他の参照がすくに行な われる可能性がある。またCPU103が最後にこのエントリ717を調べてか らこのページ・フレーム114−116を参照する前に該ページ・フレーム11 4−116を指示するATBエントリ106を生成するアドレス変換が行なわれ ていてもよい。従ってページ・フレーム116−116の現在の内容は破壊され てはならない。従ってCPU102はブロック908中に示すように、6 p  D Tエントリ717の参照ビット914をリセットし、関連するページ・フレ ーム114−116に対して改めてなされる参照を記憶する参照ビ・7ト714 を初期化する。次にCPU102はプログラムの実行を2 ブロック902に戻し、次の割当てられたPD’Tエントリ717にアクセスす る。CPU102は第9図のプログラムを実行している間、PDTエンドす71 7に逐次アクセスするので、CPtJ102は丁度その参照ビット714をリセ ットしたエントリ717には、該エントリ717が存在するパーティション71 6中に次にCPtJ102が入るまでアクセスしない。
参照ビット714がブロッ、り907においてセットされていないことが分ると 、これはすべてのATB104−105が少くとも1回クリアされてから相応す るページ・フレーム114−116が参照されていないことを意味する。従って 、これはA T B 114−105がこのページ・フレーム114−116を 指示する有効なエンドす106を含んでいないこと、そしてこのようなエントリ 106が現在形成されていないならば、ページ・フレーム114−116の内容 は主記憶100から取り除いても良いことを示す。
ブロック909中乙こ示すようるこ、CP IJ 10’ 2はページ フレー ム114−116と相応するPDTエントリ717のスワップアウト・ビット7 24およびスワップイン・ビット727をチェックし、ページ・フレーム114 −116によって保持されているページ132が夫々主記憶100から取り出さ れるかまたは取り込まれる過程にあるかどうかが決定される。もしそうであるな らば、CPUI 02はプログラムの実行をブロック902に戻し、次の割当て られたPDTエントリ717にアクセスする。しかしブロック909においてS ビット(724)またはIビット727がセントされていることが見出れさない と、CPU102は相応スるページ・フレーム11.4−116によって保持さ れているページ132を主記憶100から取り除く。
CPtJ102はフ′ロック910に示すように、I)I)Tエントリ717に よって指示される・く−ジ・テーブル・j:ンMJ112aこアクセスし、該ペ ージ・チーフル・エンIIJ 112の*−効ヒーノト113を無効状態にリセ 71−する。有効ピノ1〜113の無効を大態はATM 103に対し関連する ページ132が主記憶1001←(こ存在しないと考えられることを指示し、従 ってΔTM103力<選択されたページ・テーブル・エンl−IJ 112の内 容に基づし)てATM101105中にエンドiJ 106を生成しな0ことを イ呆証する。次にCPU102はブロック911中に示1−ようεこプログラム の臨界領域A中に入る。CP[J102は)゛ロック912中に示すように再び PDTエンドす717にアクセスし、(lhIJ:、ヒツトをチェックする。M ビア)715が七ノ1−されて0ると、これはエンドI7171と関連するペー ジ・フレーム114−116中に記憶されているページ132か主記憶100中 もこ存在3″る間Gこ修正されたことを表わす。従ってページI32しよ主記憶 】00中で破壊される前にディスク101にスワップしなしすれ+iならな%s 。
このため、CPU102はブロック9]3中乙こ示すように、PDTエントリ7 17のスワ・ノブアウト・ビット724をセットし、PDTエントリ717をス ワップアウト待行列720上Qこ西装置する。スワップアウト待行列720はT ? I F OメモIJとして+苗成されており、CPUI O2は待行列72 0上Qこ逐次、仔1jえGよ1寺jテダIJ720の先頭にPDTエントリを配 置する。次にCPU]024!CPUI914中に示すように、臨界領域へを抜 むす出し、ブロク゛ラムの実行をブロック902に戻し、次の割当られたP l ) T ]−ントリ717にアクセスする。
ブロック912中に示すようGこ、PDTエントリ717の(蔭正ビット715 がセットされていないことが見出されると、CPU102はブロック915中に 示すようにPDTエンl−IJ 717の44 割当てビット723をリセノトシ、相応するページ・フレーム114−116が 自由であることを示す。次にCPU 102はブロック915中に示すようにP DTエントリ717を自由リストア22ヒに配置する。プロ・ツク809に関す る前述の議論で指摘したように、自由リストア22はFIFOメモリとして構成 されており、CP tJ ]、 02はエントリ719を自由リストア22がら 逐次、例えば底から取り除く。従ってCP LJ 102はPDTエントリ71 7を自由リストア22の先頭にリンクし、PDTエントリ717が最初に自由リ ストア22にリンクされることを保証する。次にCP U 102はブロック9 16および917に夫々示すようにプログラムの臨界領域AおよびBから抜は出 ず。ブロック918に示すように、次にプログラムの実行は第9図の自由リスト ・ルーチンから第8a図のブロック813に戻る。
ディスク101上に修正されたページ中に含まれている新らしい情報をセーブす るために、CII) tJ 102は第10図にフローチャートを示すスワップ ・ルーチンを周期的に実行する。このルーチンは例えばCPUI 02が第9図 の自由リスト・ロード・ルーチンを抜は出す毎に、または周期的インクラブドに 出会うたびに実行される。ブロック1000中に示すように、CPUIO2はス ワップ指令が与えられたときスワップ ルーチンを実行する。
CI) U 102はブロック1001に示すように、プログラムの臨界領域へ に入り、スワップ待行列720をチェックしてブロック1002中に示すように 待行列720が予め定められた最小の長さより短いかどうかを決定する。スワッ プアウト待行列720の最小の長さは、スワップアウト待行列720中のエント リの完全なターンオーバに要求される最小時間が、アドレス変換とPDT716 の更新を含むメモリ100のアクセス・サイク゛ルをCPU102が実行するの に要求される最大時間を越すようになっている。
待行列720が最小の長さより短いと、CPU102はブロック1003中に示 すように、臨界プログラム領域へを抜は出し、次いでCPU102はブロック1 004中に示すように、スワップ・ルーチンそれ自身を抜は出す。スワップアウ ト待行列720が十分長いと、CPU102はプロ、り1005中に示すように 主記憶100からスワップアウトされるページ132を指示する次の逐次スワッ プアウト待行列エントリ721、例えばFIFOスワップアウト待行列720の 底のエントリ721にアクセスする。エントリ721はPDTエントリ717を 指示し、CPU102はPDTエントリ717にアクセスし、ブロック1006 中に示すようにエントリ717の参照ビット714がセットされているかどうか を決定する。
参照ビット714がセット、されていることが見出されると、これはCPU10 2が最後にPDTエントリ717を調へてから、該P D Tエントリ717に 相応するページ・フレーム114−116に割当てられたページ132が参照さ れたことを表わす。
従って同じページ132が近い将来再び参照される可能性がある。
また、CPU102が最後にこのエントリ717を調べてからこのページ・フレ ーム114−116を参照することは該ページ・フレーム1.14−116を指 示するATBエントリ106を生成したアドレス変換により後で行なわれていて も良い。従ってこのページ132はこの時点では主記憶100からスワップアウ トされてはならない。CPUI O2はこのページ132に相応するPTエント リ112にアクセスし、ブロック1007中に示すようにその有効ピント113 を有効状態にセットし、それによって6 ページ132を主記憶100中でアクセス可能な状態とする。次にCPU102 はスワップアウト待行列720からアクセスされたスワップアウト待行列エント リ721の内容を取り除き、ブロック1008中に示すようにこれによって待行 列720からアドレス指定されたPDTエントリ717を取り除く。CPU10 2はまたブロック1008中に示すようにPDTエントリのスワップアウト・ピ ノl−724をリセットし、PDTエントリ717が最早待行列720上に存在 しないことを知らせる。次にプログラムの実行はブし1ツク1002に戻る。
ブロック1006においてPDTエントリ717の参照ビット714がセットさ れていないことが見出されると、CPU 102は入出力装置、例えばディスク 101に対し、ブロック1009中に示ずようにPI)Tエントリ717に相応 するページ・フレーム114−116から内容、即ち占有しているページ132 をディスクI OI Hこ書き出し、ディスク101上で該ページ132の以前 の状態と置き換える。次にCPU102はスワップアウト待行列720からPD Tエンl IJ 717を取り除き、ブロック1010中に示すようにPDTエ ントリのAピノh 723、Mピノl−715およびSビット724をリセット する。
この時点でCPU102はブロック101Jに示すように臨界プログラム領域A から抜は出す。CPU102は入出力装置がスワップを実行している間、ブロッ ク1012に示すように、スワップ・ルーチンの更なる実行を待たねばならない 。この期間中、CPU102はスワップ ルーチンを離れて他の活動をしても良 い。スワップが完了した後、CP U 102はブロック1013に示すように スワップ・ルーチンの実行に戻り、その臨界領域Aに再び入る。ブロック101 4中に示すように、CPU102はPDTエントリ717を自由リスト上に配置 する。次にプログラムの実行はブロック1002に戻る。
スワップ・ルーチンはスワップアウト待行列720がブロック1002において 最小の長さより短くなることが見出される(このときスワップ・ルーチンはブロ ック1004において励起される)までCPU102によって繰返し実行される 。
もちろん前述の図示の実施例に対し種々の変更および修正を加え得ることは当業 者にとっては明らかである。これらの変更および修正は本発明の精神および範囲 を逸脱することなく、その不随する利点を損うことな(実現することが出来る。
従ってそのような変更および修正は別記の請求の範囲によってカッ\−されてい る。
FIG、 2 FIG、3A FIG、 4B FIG、 5 FIG、6 FIG、 7 FIG、 8A F/θ8B F/θ9

Claims (1)

  1. 【特許請求の範囲】 1、 ページ代仮想記憶アドレッシングを使用し、情報の選択されたページを記 憶する複数個のページ・フレームを有するアドレス指定可能な主記憶と、選択さ れた仮想記憶アドレスに相応する主記憶アドレスを記憶する複数個のクリア可能 なアドレス変換記憶装置を含む処理システム用のページング装置において、該装 置は:少くとも1つのページ・フレームの第1のグループを放棄する手段を含み 、該手段はアドレス変換記憶装置がページ・フレームの該第1のグループの主記 憶アドレスを記憶することを妨げる手段を含み、 更に該放棄を行う手段およびアドレス変換記憶装置に応動して前記第1のグルー プが放棄されて以後前記複数個のアドレス変換記憶装置がクリアされたか否かを 指示する手段と、該指示する手段に応動して前記複数個のアドレス変換記憶装置 がクリアされた後ページ・フレーJを第1のグループから第2のグループに転送 する手段と、 ページ・フレームを第2のグループから取り゛除く手段と、咳取り除く手段と共 同動作してページを取り除かれたページ・フレーム中に記憶する手段とから成る ことを特徴とするページング装置。 2、 請求の範囲第1項記載の装置において、前記システムは更に、仮想ページ に相応するページ・フレームを同定する少くとも1つのエントリを有するページ ・テーブル手段と、各々がページ・テーブル手段のエントリと関連している少く とも1つの有効状態指示手段を含み、 前記アドレス変換記憶装置が記憶することを妨げる手段は第1のグループのペー ジ・フレームを示すページ・テーブル手段のエントリの有効状態指示手段を無効 状態とする手段を含むことを特徴とする装置。 3、 ページ式仮想記憶アドレッシングを使用し、情報の選択されたページを記 憶する複数個のページ・フレームを有するアドレス指定可能な主記憶と、選択さ れた仮想記憶アドレスに相応する主記憶アドレスを記憶する複数個のクリア可能 なアドレス変換記憶装置を含む処理システムにおけるページングの方法であって 、該方法は アドレス変換記憶装置がページ・フレームの第1のグループの主記憶アドレスを 記憶することを妨げることにより少くとも1つのページ・フレームの第1のグル ープを放棄し、第1のグループが放棄されて以後複数個のアドレス変換記憶装置 がクリアされたか否かを指示し、 複数個のアドレス変換記憶装置がクリアされたことが示された後ページ・フレー ムの第1のグル−フ”から第2のグlレープCニページ・フレームを転送し、 第2のグループから1つのページ・フレームを取り除き、取す除かれたページ・ フレーム中に1つのページを記憶させる階程より成ることを特徴とする方法。 4、 請求の範囲第3項記載の方法において、前記システムは更に仮想ページに 相応するページを同定する少くとも1つのエントリを有するページ・テーブル手 段と、各々ページ・テーブル手段のエントリと関連した少なくとも1つの有効状 態指示手段を含み、前記アドレス変換記憶装置が記憶することを妨げることによ り放棄を行う階程は: ページ・フレームの第1のグループを同定するページ・テーブル手段のエントリ の有効状態指示手段を無効状態とする階程より50 成ることを特徴とする方法。 5、請求の範囲第3項記載の方法において、前記転送を行う階程の前にクリアさ れていないと示されたアトルス変換記憶装置をクリアする階程があることを特徴 とする方法。
JP59502361A 1983-07-11 1984-06-04 複数個のアドレス変換バッファ記憶装置を共有する記憶装置処理システムのデマンド・ペ−ジング法 Pending JPS60501824A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US512379 1983-07-11
US06/512,379 US4577274A (en) 1983-07-11 1983-07-11 Demand paging scheme for a multi-ATB shared memory processing system

Publications (1)

Publication Number Publication Date
JPS60501824A true JPS60501824A (ja) 1985-10-24

Family

ID=24038846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59502361A Pending JPS60501824A (ja) 1983-07-11 1984-06-04 複数個のアドレス変換バッファ記憶装置を共有する記憶装置処理システムのデマンド・ペ−ジング法

Country Status (5)

Country Link
US (1) US4577274A (ja)
EP (1) EP0150195B1 (ja)
JP (1) JPS60501824A (ja)
DE (1) DE3477283D1 (ja)
WO (1) WO1985000451A1 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4754394A (en) * 1984-10-24 1988-06-28 International Business Machines Corporation Multiprocessing system having dynamically allocated local/global storage and including interleaving transformation circuit for transforming real addresses to corresponding absolute address of the storage
US4812981A (en) * 1985-10-24 1989-03-14 Prime Computer, Inc. Memory management system improving the efficiency of fork operations
US4742450A (en) * 1986-01-16 1988-05-03 International Business Machines Corporation Method to share copy on write segment for mapped files
US4742447A (en) * 1986-01-16 1988-05-03 International Business Machines Corporation Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system
US5045996A (en) * 1986-11-12 1991-09-03 Xerox Corporation Multiprocessor cache memory housekeeping
US5123101A (en) * 1986-11-12 1992-06-16 Xerox Corporation Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US4927605A (en) * 1987-04-22 1990-05-22 Wadley Technologies, Inc. Specimen collection and sampling container
US5136706A (en) * 1987-04-30 1992-08-04 Texas Instruments Incorporated Adaptive memory management system for collection of garbage in a digital computer
US4914577A (en) * 1987-07-16 1990-04-03 Icon International, Inc. Dynamic memory management system and method
US4839796A (en) * 1987-07-16 1989-06-13 Icon International, Inc. Static frame digital memory
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
AU6959891A (en) * 1989-11-30 1991-06-26 Storage Technology Corporation Data record move apparatus for a virtual memory system
AU6957191A (en) * 1989-11-30 1991-06-26 Storage Technology Corporation Data record copy apparatus for a virtual memory system
US5123094A (en) * 1990-01-26 1992-06-16 Apple Computer, Inc. Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers
US5159678A (en) * 1990-06-11 1992-10-27 Supercomputer Systems Limited Partnership Method for efficient non-virtual main memory management
US5412787A (en) * 1990-11-21 1995-05-02 Hewlett-Packard Company Two-level TLB having the second level TLB implemented in cache tag RAMs
US5379391A (en) * 1991-03-01 1995-01-03 Storage Technology Corporation Method and apparatus to access data records in a cache memory by multiple virtual addresses
JP2778291B2 (ja) * 1991-05-31 1998-07-23 日本電気株式会社 アドレス変換レジスタ制御方式
US5278963A (en) * 1991-06-21 1994-01-11 International Business Machines Corporation Pretranslation of virtual addresses prior to page crossing
US5278969A (en) * 1991-08-02 1994-01-11 At&T Bell Laboratories Queue-length monitoring arrangement for detecting consistency between duplicate memories
CA2285096C (en) * 1991-11-12 2000-05-09 Ibm Canada Limited-Ibm Canada Limitee Logical mapping of data objects using data spaces
US5251207A (en) * 1992-03-10 1993-10-05 International Business Machines Corporation Combined terminal adapter for SMDS and frame relay high speed data services
CA2107056C (en) * 1993-01-08 1998-06-23 James Allan Kahle Method and system for increased system memory concurrency in a multiprocessor computer system
US5559980A (en) * 1993-03-18 1996-09-24 Lucent Technologies Inc. Method and apparatus for detecting references to deallocated memory in a dynamic memory allocation system
US5765209A (en) * 1993-09-23 1998-06-09 Hewlett-Packard Co. Method and apparatus to eliminate redundant mapping in a TLB utilizing variable sized pages
US6128714A (en) * 1994-03-17 2000-10-03 Hitachi, Ltd. Method of processing a data move instruction for moving data between main storage and extended storage and data move instruction processing apparatus
US6119214A (en) * 1994-04-25 2000-09-12 Apple Computer, Inc. Method for allocation of address space in a virtual memory system
JPH07326659A (ja) 1994-06-02 1995-12-12 Hitachi Ltd 半導体集積回路装置の製造方法
US6112286A (en) * 1997-09-19 2000-08-29 Silicon Graphics, Inc. Reverse mapping page frame data structures to page table entries
US6112285A (en) * 1997-09-23 2000-08-29 Silicon Graphics, Inc. Method, system and computer program product for virtual memory support for managing translation look aside buffers with multiple page size support
US6470436B1 (en) * 1998-12-01 2002-10-22 Fast-Chip, Inc. Eliminating memory fragmentation and garbage collection from the process of managing dynamically allocated memory
US6829693B2 (en) 2001-02-28 2004-12-07 International Business Machines Corporation Auxiliary storage slot scavenger
US6675281B1 (en) * 2002-01-22 2004-01-06 Icreate Technologies Corporation Distributed mapping scheme for mass storage system
US7412513B2 (en) * 2003-11-14 2008-08-12 Microsoft Corporation Systems and methods for using metrics to control throttling and swapping in a message processing system
KR100576935B1 (ko) * 2003-12-22 2006-05-10 한국전자통신연구원 온톨로지 기반의 애드혹 서비스 검색 시스템 및 방법
GB2420639A (en) * 2004-11-24 2006-05-31 Hewlett Packard Development Co Monitoring Copy on write (COW) faults to control zero-copy data transfer
US20060253509A1 (en) * 2005-04-08 2006-11-09 Slothouber Louis P Method and system for downloading applications into memory-constrained systems
US9195581B2 (en) * 2011-07-01 2015-11-24 Apple Inc. Techniques for moving data between memory types

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3947823A (en) * 1973-12-26 1976-03-30 International Business Machines Corp. Means for coordinating asynchronous main store accesses in a multiprocessing system using virtual storage
JPS52149444A (en) * 1976-06-08 1977-12-12 Fujitsu Ltd Multiplex virtual space processing data processing system
US4096568A (en) * 1976-09-24 1978-06-20 Sperry Rand Corporation Virtual address translator
US4228503A (en) * 1978-10-02 1980-10-14 Sperry Corporation Multiplexed directory for dedicated cache memory system
US4277826A (en) * 1978-10-23 1981-07-07 Collins Robert W Synchronizing mechanism for page replacement control
US4231088A (en) * 1978-10-23 1980-10-28 International Business Machines Corporation Allocating and resolving next virtual pages for input/output
US4320456A (en) * 1980-01-18 1982-03-16 International Business Machines Corporation Control apparatus for virtual address translation unit
US4481573A (en) * 1980-11-17 1984-11-06 Hitachi, Ltd. Shared virtual address translation unit for a multiprocessor system
US4525778A (en) * 1982-05-25 1985-06-25 Massachusetts Computer Corporation Computer memory control

Also Published As

Publication number Publication date
DE3477283D1 (en) 1989-04-20
US4577274A (en) 1986-03-18
WO1985000451A1 (en) 1985-01-31
EP0150195B1 (en) 1989-03-15
EP0150195A1 (en) 1985-08-07

Similar Documents

Publication Publication Date Title
JPS60501824A (ja) 複数個のアドレス変換バッファ記憶装置を共有する記憶装置処理システムのデマンド・ペ−ジング法
US4272819A (en) Inter-subsystem direct transfer system
US4520441A (en) Data processing system
JPS62165250A (ja) 仮想記憶方法
JPH0552540B2 (ja)
CA1300279C (en) Central processor unit for digital data processing system including cache management mechanism
JPH03223945A (ja) 仮想記憶管理方法
JPH0340046A (ja) キャッシュメモリ制御方式および情報処理装置
JPS59132048A (ja) デ−タ処理システム用ス−パ−バイザを提供する方法及びその装置
JPH04213129A (ja) メモリ管理システム及びメモリ管理方法
KR0175983B1 (ko) 데이타 처리 시스템
EP0480858A2 (en) Hardware primary directory lock
JPH0555901B2 (ja)
JPH0519176B2 (ja)
EP0175398A2 (en) Data processing system comprising a memory access controller which is provided for combining descriptor bits of different descriptors associated with virtual addresses
JP2002202960A (ja) データ処理方法および装置
US5404549A (en) Method for efficient access of data stored in a nexus table using queue tag indexes in a table portion
JPS63240653A (ja) 記憶装置管理ユニットと仮想一実アドレス間の翻訳方法
US5761738A (en) Computer system which stores management or control information in different address space but same offset as corresponding data
JPH0519179B2 (ja)
JPH035625B2 (ja)
JPS63180150A (ja) 入出力バッファ用領域獲得処理方式
JPH09190375A (ja) 共有メモリ管理方法
CA1305557C (en) Control signal generation circuit for arithmetic and logic unit for digital processor
EP0418220B1 (en) Destination control logic for arithmetic and logic unit for digital data processor