JPH01273153A - 仮想記憶制御方式 - Google Patents
仮想記憶制御方式Info
- Publication number
- JPH01273153A JPH01273153A JP63100200A JP10020088A JPH01273153A JP H01273153 A JPH01273153 A JP H01273153A JP 63100200 A JP63100200 A JP 63100200A JP 10020088 A JP10020088 A JP 10020088A JP H01273153 A JPH01273153 A JP H01273153A
- Authority
- JP
- Japan
- Prior art keywords
- virtual
- user program
- user
- virtual space
- space
- 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
Links
- 238000013507 mapping Methods 0.000 claims abstract description 6
- 230000015654 memory Effects 0.000 claims description 36
- 238000000034 method Methods 0.000 claims description 30
- 238000003860 storage Methods 0.000 abstract description 16
- 230000014759 maintenance of location Effects 0.000 abstract 1
- 230000001681 protective effect Effects 0.000 abstract 1
- 238000006243 chemical reaction Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 239000000872 buffer Substances 0.000 description 7
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
本発明は仮想記憶機構を有する計算機システムにおける
仮想記憶制御方式に係り、特に、実記憶システムから容
易に移行でき、オーバヘッドの少ない仮想記憶制御方式
に関する。
仮想記憶制御方式に係り、特に、実記憶システムから容
易に移行でき、オーバヘッドの少ない仮想記憶制御方式
に関する。
一般に、計算機システムにおける仮想記憶システムは、
実記憶システムと比べて、以下の点が優れている。
実記憶システムと比べて、以下の点が優れている。
■実記憶の利用効率がよい。
■実記憶容量より大きな1プログラムを実行できる。
■主記憶保護機能が高い。
従って、実記憶システムから仮想記憶システムに移行す
ることにより、上記利点を具備することが可能となる。
ることにより、上記利点を具備することが可能となる。
従来、計算機システムの仮想記憶制御方式については、
千田著、近代科学社発行、rMVsの機能と構造」、第
5真から第9頁において述べられているように、ただ、
一つの仮想空間を用いる単一仮想空間方式と複数の仮想
空間を用いる多重仮想空間方式とが知られている。
千田著、近代科学社発行、rMVsの機能と構造」、第
5真から第9頁において述べられているように、ただ、
一つの仮想空間を用いる単一仮想空間方式と複数の仮想
空間を用いる多重仮想空間方式とが知られている。
単一仮想空間方式では、同時に実行する複数のプログラ
ムを1つの空間にロードするのに対し、多重仮想空間方
式ではそれぞれ1つのプログラム毎に1つの空間を割り
当てるので広い空間を使用できる。
ムを1つの空間にロードするのに対し、多重仮想空間方
式ではそれぞれ1つのプログラム毎に1つの空間を割り
当てるので広い空間を使用できる。
一方、実記憶システムから仮想記憶システムに移行する
場合、単一仮想空間方式の方が容易である。この理由は
次の通りである。
場合、単一仮想空間方式の方が容易である。この理由は
次の通りである。
■単一仮想空間方式は実記憶システムと同様、一つの空
間しか持たないので、実記憶システムのメモリ割り付は
法がその侭使える。
間しか持たないので、実記憶システムのメモリ割り付は
法がその侭使える。
■O8からユーザプログラム領域をアクセスするのに、
多重仮想空間方式のようにアドレスのほかに空間を指定
しなくて済む。実記憶システム同様、アドレスだけで一
意にアクセスしたいメモリが決まる。
多重仮想空間方式のようにアドレスのほかに空間を指定
しなくて済む。実記憶システム同様、アドレスだけで一
意にアクセスしたいメモリが決まる。
(発明が解決しようと午る課題〕
多重仮想空間方式では、O8がユーザ領域内(個々の仮
想空間内)の制御テーブルやバッファを管理するのに、
仮想空間アドレスのほかに仮想空間を特定するための空
間番号を合わせて覚えておく必要があり、他空間のアド
レスを参照するときに空間切り替えのオーバヘッドが発
生する。これに対し、単一仮想空間方式では実記憶シス
テム同様アドレスだけを管理すればよいからである。
想空間内)の制御テーブルやバッファを管理するのに、
仮想空間アドレスのほかに仮想空間を特定するための空
間番号を合わせて覚えておく必要があり、他空間のアド
レスを参照するときに空間切り替えのオーバヘッドが発
生する。これに対し、単一仮想空間方式では実記憶シス
テム同様アドレスだけを管理すればよいからである。
しかしながら、単一仮想空間方式は多重仮想空間方式に
比べ次のような欠点を持つ。すなわち、単一仮想空間方
式では異なるユーザプログラム間で主記憶を保護するた
め、主記憶をCPUに設けた保護キーにより分割し、実
行時に、アドレス変換テーブル(プログラム毎に設けた
仮想アドレス→実アドレス変換テーブル)上のロックの
値(JOB値)と主記憶の保護キーの値が一致した場合
のみ主記憶をアクセス可能としている。このため、計算
機で保持しているキーの上限数よりユーザプログラムの
数(JOB数)が例えば100及至200のように多く
なると実行ユーザプログラムの切り替え時に保護キーを
動的に入れ替えなければならないので、その分オーバヘ
ッドが大きくなる′。また、キーの上限数を同時実行可
能とするユーザプログラム数分にすると、キー、とロッ
クの比較時間が長くなると共に主記憶上のアドレス変換
テーブルも太き(なり、アドレス変換時開テーブルの参
照時間が長くなる。その結果仮想アドレスから物理アド
レス(実アドレス)への変換が遅くなってしまうのでキ
ーの数は一般に16程度に制限されている。一方、多重
仮想空間方式ではユーザプログラム毎に独立した空間を
割り付けることによりユーザプログラム間の主記憶保護
を行なうのでそのようなオーバヘッドは存在しない。
比べ次のような欠点を持つ。すなわち、単一仮想空間方
式では異なるユーザプログラム間で主記憶を保護するた
め、主記憶をCPUに設けた保護キーにより分割し、実
行時に、アドレス変換テーブル(プログラム毎に設けた
仮想アドレス→実アドレス変換テーブル)上のロックの
値(JOB値)と主記憶の保護キーの値が一致した場合
のみ主記憶をアクセス可能としている。このため、計算
機で保持しているキーの上限数よりユーザプログラムの
数(JOB数)が例えば100及至200のように多く
なると実行ユーザプログラムの切り替え時に保護キーを
動的に入れ替えなければならないので、その分オーバヘ
ッドが大きくなる′。また、キーの上限数を同時実行可
能とするユーザプログラム数分にすると、キー、とロッ
クの比較時間が長くなると共に主記憶上のアドレス変換
テーブルも太き(なり、アドレス変換時開テーブルの参
照時間が長くなる。その結果仮想アドレスから物理アド
レス(実アドレス)への変換が遅くなってしまうのでキ
ーの数は一般に16程度に制限されている。一方、多重
仮想空間方式ではユーザプログラム毎に独立した空間を
割り付けることによりユーザプログラム間の主記憶保護
を行なうのでそのようなオーバヘッドは存在しない。
以上のように、従来の仮想記憶制御方式では、単一仮想
空間方式の場合、キーの入れ替えの必要があり、また、
多重仮想空間方式の場合、空間番号により各空間を管理
する必要があり、その結果、キー切り替え時又は空間切
り替え時にオーバヘッドが発生する等、どちらの方式も
実記憶システムから移行するには問題がある。
空間方式の場合、キーの入れ替えの必要があり、また、
多重仮想空間方式の場合、空間番号により各空間を管理
する必要があり、その結果、キー切り替え時又は空間切
り替え時にオーバヘッドが発生する等、どちらの方式も
実記憶システムから移行するには問題がある。
従って、本発明の目的は、上記従来技術の問題点を解消
し、実記憶システムから容易に移行でき、オーバヘッド
の少ない仮想記憶制御方式を提供することにある。
し、実記憶システムから容易に移行でき、オーバヘッド
の少ない仮想記憶制御方式を提供することにある。
上記目的を達成するため、本発明は、まず基本発明(第
1発明)として、仮想記憶制御方式において、複数の仮
想空間を設け、それぞれの仮想空間には、オペレーティ
ングシステム及び相互に記憶保護可能な数だけの(数基
内の)ユーザプログラムを順にマツプする。(例えば、
キーの種類が8個の計算機では、1つの仮想空間に7個
のユーザプログラムをマツプし、残りの1つのキーは○
S w4域の保護に用いる。また、リング・プロテクシ
ョン機構の計算機では、1つのユーザプログラムだけを
マツプする。)この際に、各々のユーザプログラム領域
は、異なる仮想空間の間でも各ユーザプログラム領域が
重複しないように(各々のユーザプログラムの仮想アド
レスが重複しないように)割り付けられる。そして、各
々のユーザプログラムは、該ユーザプログラムがマツプ
されている仮想空間で実行させるように構成する。
1発明)として、仮想記憶制御方式において、複数の仮
想空間を設け、それぞれの仮想空間には、オペレーティ
ングシステム及び相互に記憶保護可能な数だけの(数基
内の)ユーザプログラムを順にマツプする。(例えば、
キーの種類が8個の計算機では、1つの仮想空間に7個
のユーザプログラムをマツプし、残りの1つのキーは○
S w4域の保護に用いる。また、リング・プロテクシ
ョン機構の計算機では、1つのユーザプログラムだけを
マツプする。)この際に、各々のユーザプログラム領域
は、異なる仮想空間の間でも各ユーザプログラム領域が
重複しないように(各々のユーザプログラムの仮想アド
レスが重複しないように)割り付けられる。そして、各
々のユーザプログラムは、該ユーザプログラムがマツプ
されている仮想空間で実行させるように構成する。
また、本発明は、第2発明として、上記第1発明におけ
る複数の仮想空間に加え、別の仮想空間を設ける。この
追加された別の仮想空間には、オペレーティングシステ
ム及び全てのユーザプログラムをマツプし、この仮想空
間でオペレーティングシステムを実行させるように構成
する。
る複数の仮想空間に加え、別の仮想空間を設ける。この
追加された別の仮想空間には、オペレーティングシステ
ム及び全てのユーザプログラムをマツプし、この仮想空
間でオペレーティングシステムを実行させるように構成
する。
上記構成に基づく作用を説明する。
上記第1発明において、1つの仮想空間には相互に保護
可能な数(キー数)以内のユーザプログラムだけがマツ
プされていて、ユーザプログラムは同一空間に配置して
も相互に記憶保護可能となっており、かつ上記保護可能
な数を超える他のユーザプログラムは別の仮想空間にマ
ツプしているので、ユーザプログラム実行中に他のユー
ザプログラムの領域を過ってアクセスするのを防ぐこと
ができる。従って、単一仮想空間方式のようにユーザプ
ログラムの数が多くなっても主記憶の保護キーを入れ替
えるオーバヘッドは生じない。また、各々のユーザプロ
グラムの仮想アドレスは、同一の仮想空間は勿論、異な
る仮想空間の間でも重複することがないので、仮想空間
が異なってもユーザプログラム領域は仮想アドレスだけ
で特定でき、それゆえ、O8は多重仮想空間方式のよう
に空間識別子を合わせて管理しなくてもすむ。即ち、各
々のユーザプログラムの仮想アドレス(例えばその上位
ビット)は、それ自体空間識別子としての機能を兼ねて
いるものである。
可能な数(キー数)以内のユーザプログラムだけがマツ
プされていて、ユーザプログラムは同一空間に配置して
も相互に記憶保護可能となっており、かつ上記保護可能
な数を超える他のユーザプログラムは別の仮想空間にマ
ツプしているので、ユーザプログラム実行中に他のユー
ザプログラムの領域を過ってアクセスするのを防ぐこと
ができる。従って、単一仮想空間方式のようにユーザプ
ログラムの数が多くなっても主記憶の保護キーを入れ替
えるオーバヘッドは生じない。また、各々のユーザプロ
グラムの仮想アドレスは、同一の仮想空間は勿論、異な
る仮想空間の間でも重複することがないので、仮想空間
が異なってもユーザプログラム領域は仮想アドレスだけ
で特定でき、それゆえ、O8は多重仮想空間方式のよう
に空間識別子を合わせて管理しなくてもすむ。即ち、各
々のユーザプログラムの仮想アドレス(例えばその上位
ビット)は、それ自体空間識別子としての機能を兼ねて
いるものである。
また、上記第2発明では、上記複数の仮想空間に追加し
て、更に、全部のユーザプログラムをマツプした別の仮
想空間を設け、OSを該別の仮想空間で実行させること
により、該別の仮想空間でO5は全てのユーザプログラ
ム領域を直接アクセスできるので、ユーザプログラム領
域がマツプされている仮想空間を仮想アドレスから求め
る必要はなくなる。
て、更に、全部のユーザプログラムをマツプした別の仮
想空間を設け、OSを該別の仮想空間で実行させること
により、該別の仮想空間でO5は全てのユーザプログラ
ム領域を直接アクセスできるので、ユーザプログラム領
域がマツプされている仮想空間を仮想アドレスから求め
る必要はなくなる。
最初に、具体的な実施例を説明する前に、本発明の概要
を、従来技術と比較して説明する。
を、従来技術と比較して説明する。
本発明が従来の単一仮想空間方式と異なるのは複数の仮
想空間を設けていることで明らかである。
想空間を設けていることで明らかである。
また、従来の多重仮想空間方式との違いを第6図及び第
7図を用いて説明する。第6図に示すように、従来の多
重仮想空間方式では、それぞれのユーザプログラム領域
の仮想アドレスの重複を許しているが、本発明では重複
しないように割り付けている。従って、O3がユーザプ
ログラム領域のアドレスを特定するのに、第7図(a)
に示すように、従来の多重仮想空間方式では仮想アドレ
スのほかに空間識別子を指定しなくてはならないのに対
し、本発明では第7図(b)に示すように仮想アドレス
の上位フィールドが空間識別子を兼ねているので、仮想
アドレスのほかに空間識別子を合わせて管理する必要は
ない。なお、本発明は、ユーザプログラム領域のメモリ
割り付は方法を限定するものではな(、前記仮想アドレ
スの空間識別子フィールドの長さは可変長として取り扱
う。
7図を用いて説明する。第6図に示すように、従来の多
重仮想空間方式では、それぞれのユーザプログラム領域
の仮想アドレスの重複を許しているが、本発明では重複
しないように割り付けている。従って、O3がユーザプ
ログラム領域のアドレスを特定するのに、第7図(a)
に示すように、従来の多重仮想空間方式では仮想アドレ
スのほかに空間識別子を指定しなくてはならないのに対
し、本発明では第7図(b)に示すように仮想アドレス
の上位フィールドが空間識別子を兼ねているので、仮想
アドレスのほかに空間識別子を合わせて管理する必要は
ない。なお、本発明は、ユーザプログラム領域のメモリ
割り付は方法を限定するものではな(、前記仮想アドレ
スの空間識別子フィールドの長さは可変長として取り扱
う。
本発明ではさらに、前記複数の仮想空間のほかに、別の
仮想空間を1面追加し、該別の仮想空間にO5及び、全
てのユーザプログラムを前記複数の仮想空間と重複して
マツプし、O3を該別の仮想空間で実行させることによ
り、O3から全てのユーザプログラム領域を該別の仮想
空間でアクセス可能とする。ユーザプログラムは該別の
仮想空間では実行させない。
仮想空間を1面追加し、該別の仮想空間にO5及び、全
てのユーザプログラムを前記複数の仮想空間と重複して
マツプし、O3を該別の仮想空間で実行させることによ
り、O3から全てのユーザプログラム領域を該別の仮想
空間でアクセス可能とする。ユーザプログラムは該別の
仮想空間では実行させない。
次に、本発明の実施例を図面によって説明する。
第1図は、本実施例における仮想空間内のプt′1グラ
ムの配置を示す図である。仮想空間lにはO85および
第2図に示す全てのユーザプログラム、すなわちユーザ
プログラム6ないし10をアドレス領域が重ならないよ
うにマツプする。仮想空間2にはO35およびユーザプ
ログラム6ないし8をマツプする。仮想空間3にはO3
5およびユーザプログラム9およびユーザプログラム1
0をマツプする。この場合、本実施例の特徴としてユー
ザプログラム6〜8とユーザプログラム9〜10とは、
同一空間内だけでなく、異なる空間2と3の間でも、ア
ドレス領域が相互に重複しないようになっている。第2
図はプログラムの構成を示す図である。035の下でユ
ーザプログラム6ないし10が動作している。第3図は
、変換テーブルを用いて、上記仮想空間を実現するため
の仮想アドレスから物理アドレス(実アドレス)へのア
ドレス変換手順を示す図である。第3図では、ある1つ
のプログラムについて必要な変換手順のみを示している
が、実際にはプログラム毎に異なる変換テーブルが用い
られる。仮想アドレス20は32ビツト長である。セグ
メント・テーブル・ポインタ5TP21はセグメント・
テーブル5T22の先頭物理アドレス(テーブル5T2
2の存在する位置の先頭実アドレス)を示すレジスタで
ある。
ムの配置を示す図である。仮想空間lにはO85および
第2図に示す全てのユーザプログラム、すなわちユーザ
プログラム6ないし10をアドレス領域が重ならないよ
うにマツプする。仮想空間2にはO35およびユーザプ
ログラム6ないし8をマツプする。仮想空間3にはO3
5およびユーザプログラム9およびユーザプログラム1
0をマツプする。この場合、本実施例の特徴としてユー
ザプログラム6〜8とユーザプログラム9〜10とは、
同一空間内だけでなく、異なる空間2と3の間でも、ア
ドレス領域が相互に重複しないようになっている。第2
図はプログラムの構成を示す図である。035の下でユ
ーザプログラム6ないし10が動作している。第3図は
、変換テーブルを用いて、上記仮想空間を実現するため
の仮想アドレスから物理アドレス(実アドレス)へのア
ドレス変換手順を示す図である。第3図では、ある1つ
のプログラムについて必要な変換手順のみを示している
が、実際にはプログラム毎に異なる変換テーブルが用い
られる。仮想アドレス20は32ビツト長である。セグ
メント・テーブル・ポインタ5TP21はセグメント・
テーブル5T22の先頭物理アドレス(テーブル5T2
2の存在する位置の先頭実アドレス)を示すレジスタで
ある。
5T22は1024個(21°個)のエントリ5TE2
3を有し、それぞれのエントリ23はページテーブルP
T24の先頭物理アドレス(テーブルPT24が存在す
る位置の先頭実アドレス)を示す。仮想アドレス20の
上位10ビツトは、5TE23のエントリ・ナンバを表
しておリアドレス変換時、仮想アドレス20の上位10
ビツトにより当該エントリ・ナンバの5TE23の一つ
が選択される。FT24は1024個(21°個)のエ
ントリPTE25を有し、それぞれのPTH25は仮想
アドレス20に対応する物理アドレス28の上位20ビ
・ントを示すPNフィールド26および記憶保護データ
を示す2ビット長のにフィールド(キー・フィールド)
27を含む。仮想アドレス20の第12〜第21ビツト
の範囲の10ビツトは、PTH25のエントリ・ナンバ
を表しており、アドレス変換時、仮想アドレス20の第
12ビツトから第21ビツトまでの10ビツトによりP
T24のPTH25の一つ(当1亥エントリ・ナンバに
相当するエントリ)が選択される。物理アドレス2日は
32ビット長であり、アドレス変換の結果仮想アドレス
20の下位12ビツトがそのまま物理アドレス28の下
位12ビツトに反映され、選択されたPTH25内のP
Nフィールド26が示す物理アドレス上位20ビツトが
物理アドレス28の上位20ビツトに反映され、32ビ
ツト長の物理アドレス(実主メモリ上のアドレス)28
が生成される。制御レジスタ29はプログラム実行時の
メモリへの2ビツト長のアクセスJti−30(当該プ
ログラムからのみ主メモリへアクセスでき他プログラム
からはアクセスできない権利、つまり、ロック)を含む
レジスタである。制御レジスタ29内のアクセス権30
と選択されたPTH25のにフィールド27の記憶保護
データとが比較され両者の値が一致した場合のみ仮想ア
ドレス20が示す主記憶へのアクセスが可能となる。但
し、アクセス権の値“0”は特別であり、Kフィールド
の値にかかわらず任意の仮想アドレス20が示すメモリ
へのアクセスが可能である。これは、O3実行時に全て
のユーザプログラム領域をアクセスできるようにするた
めである。また、ユーザプログラムからO5に制御が移
ったとき自動的にアクセス権30の値は“0″になるよ
うになっている。
3を有し、それぞれのエントリ23はページテーブルP
T24の先頭物理アドレス(テーブルPT24が存在す
る位置の先頭実アドレス)を示す。仮想アドレス20の
上位10ビツトは、5TE23のエントリ・ナンバを表
しておリアドレス変換時、仮想アドレス20の上位10
ビツトにより当該エントリ・ナンバの5TE23の一つ
が選択される。FT24は1024個(21°個)のエ
ントリPTE25を有し、それぞれのPTH25は仮想
アドレス20に対応する物理アドレス28の上位20ビ
・ントを示すPNフィールド26および記憶保護データ
を示す2ビット長のにフィールド(キー・フィールド)
27を含む。仮想アドレス20の第12〜第21ビツト
の範囲の10ビツトは、PTH25のエントリ・ナンバ
を表しており、アドレス変換時、仮想アドレス20の第
12ビツトから第21ビツトまでの10ビツトによりP
T24のPTH25の一つ(当1亥エントリ・ナンバに
相当するエントリ)が選択される。物理アドレス2日は
32ビット長であり、アドレス変換の結果仮想アドレス
20の下位12ビツトがそのまま物理アドレス28の下
位12ビツトに反映され、選択されたPTH25内のP
Nフィールド26が示す物理アドレス上位20ビツトが
物理アドレス28の上位20ビツトに反映され、32ビ
ツト長の物理アドレス(実主メモリ上のアドレス)28
が生成される。制御レジスタ29はプログラム実行時の
メモリへの2ビツト長のアクセスJti−30(当該プ
ログラムからのみ主メモリへアクセスでき他プログラム
からはアクセスできない権利、つまり、ロック)を含む
レジスタである。制御レジスタ29内のアクセス権30
と選択されたPTH25のにフィールド27の記憶保護
データとが比較され両者の値が一致した場合のみ仮想ア
ドレス20が示す主記憶へのアクセスが可能となる。但
し、アクセス権の値“0”は特別であり、Kフィールド
の値にかかわらず任意の仮想アドレス20が示すメモリ
へのアクセスが可能である。これは、O3実行時に全て
のユーザプログラム領域をアクセスできるようにするた
めである。また、ユーザプログラムからO5に制御が移
ったとき自動的にアクセス権30の値は“0″になるよ
うになっている。
第4図は第1図の各プログラム領域に対応するPTH,
25のにフィールド27の値を示す表である。
25のにフィールド27の値を示す表である。
この実施例では、Kフィールドは前記のように2ビット
であって、1つの仮想空間にオペレーティングシステム
O8と、ユーザ側から実行できるプログラムとして、最
大3個までのユーザプロ、ダラムとを指定できる場合を
示している。但し、ユーザプログラム6とユーザプログ
ラム9はにフィールドの値が共に“1”となっており、
仮想空間1において両者のにフィールドの値が重複して
しまうが、仮想空間1では後述するようにO35しか実
行しないのでユーザプログラム実行時の主記憶保護の問
題とはならない。同様のことがユーザプロクラム7とユ
ーザプログラム10についてもいえる。第5図は第1図
に示す仮想空間1. 2. 3をマツプするためのセグ
メント・テーブルSTおよびページ・テーブルPTの関
係を示す図である。
であって、1つの仮想空間にオペレーティングシステム
O8と、ユーザ側から実行できるプログラムとして、最
大3個までのユーザプロ、ダラムとを指定できる場合を
示している。但し、ユーザプログラム6とユーザプログ
ラム9はにフィールドの値が共に“1”となっており、
仮想空間1において両者のにフィールドの値が重複して
しまうが、仮想空間1では後述するようにO35しか実
行しないのでユーザプログラム実行時の主記憶保護の問
題とはならない。同様のことがユーザプロクラム7とユ
ーザプログラム10についてもいえる。第5図は第1図
に示す仮想空間1. 2. 3をマツプするためのセグ
メント・テーブルSTおよびページ・テーブルPTの関
係を示す図である。
ここでは、1つのセグメント・テーブルを1つの空間に
対応させ、1つのページ・テーブルを1つのユーザプロ
グラム又はO8に対応させている。
対応させ、1つのページ・テーブルを1つのユーザプロ
グラム又はO8に対応させている。
5T40は仮想空間1を、ST41は仮想空間2を、S
T42は仮想空間3をそれぞれマツプするためのセグメ
ント・テーブルである。セグメント・テーブル5T40
.41.42の1つ1つは、第3図のセグメント・テー
ブル5T22に相当する。
T42は仮想空間3をそれぞれマツプするためのセグメ
ント・テーブルである。セグメント・テーブル5T40
.41.42の1つ1つは、第3図のセグメント・テー
ブル5T22に相当する。
PT45は035を、PT46はユーザプログラム6を
、PT41はユーザプログラム7を、PT48はユーザ
プログラム8を、PT49はユーザプログラム9を、P
T50はユーザプログラム10をそれぞれマツプするた
めのページ・テーブルである。ページ・テーブルPT4
5〜50の1つ1つは、第3図のページ・テーブルPT
24に相当している。O35は各仮想空間に共通してマ
ツプするため、Sr10ないし5T42は同じPT45
をポイントしている。ユーザプログラム6ないしユーザ
プログラム8は仮想空間1および仮想空間2にマツプさ
れるため、5T40およびSr11は共にPT46ない
しPT48をポイントしている。同様に、ユーザプログ
ラム9ないしユーザプログラム10は仮想空間1および
仮想空間3にマツプされるため、Sr10およびSr1
2は共にPT49ないしPT50をポイントしている。
、PT41はユーザプログラム7を、PT48はユーザ
プログラム8を、PT49はユーザプログラム9を、P
T50はユーザプログラム10をそれぞれマツプするた
めのページ・テーブルである。ページ・テーブルPT4
5〜50の1つ1つは、第3図のページ・テーブルPT
24に相当している。O35は各仮想空間に共通してマ
ツプするため、Sr10ないし5T42は同じPT45
をポイントしている。ユーザプログラム6ないしユーザ
プログラム8は仮想空間1および仮想空間2にマツプさ
れるため、5T40およびSr11は共にPT46ない
しPT48をポイントしている。同様に、ユーザプログ
ラム9ないしユーザプログラム10は仮想空間1および
仮想空間3にマツプされるため、Sr10およびSr1
2は共にPT49ないしPT50をポイントしている。
なお前述のように、すべてのユーザプログラム6〜10
は、異なる仮想空間の間でもアドレス領域が重複するこ
とはないので、仮想アドレス20の上位ビット(各ユー
ザプログラム毎に異なる)を見れば、それが所属してい
る空間がどれであるかわかる。即ち、この上位ビットは
、空間識別子を兼ねているということができる。
は、異なる仮想空間の間でもアドレス領域が重複するこ
とはないので、仮想アドレス20の上位ビット(各ユー
ザプログラム毎に異なる)を見れば、それが所属してい
る空間がどれであるかわかる。即ち、この上位ビットは
、空間識別子を兼ねているということができる。
以下、O35がユーザプログラム6を選択・実行させ、
ユーザプログラム6がO35に外部記憶装置(図には示
していない)からのデータ入力サービスを要求し、次に
O85がユーザプログラム10を選択・実行させた場合
を例にとり本実施例の動作を説明する。O35がプログ
ラムのスケジュールを行ないユーザプログラム6を選択
すると、5TP21に、ユーザプログラム6が存在する
仮想空間2をマツプしている5T41のアドレス(前述
のように先頭物理アドレス)を設定する。以後、アドレ
ス変換はSr11を元に行なわれ、仮想空間2が選択さ
れる。次に、制御レジスタ29のアクセス権30に値“
1”を設定すると同時にユーザプログラム6に制御を移
す。ユーザプログラム6に制御が移った時点では、アク
セス権30の値はu 1 nになっているので、PTE
のにフィールドの値が1nであるユーザプログラム6(
第4図参照)の領域にはアクセスできるが、同じ仮想空
間2にマツプされているユーザプログラム7あるいはユ
ーザプログラム8の領域には第4図に示すようににフィ
ールドの値が異なるためアクセスすることができない。
ユーザプログラム6がO35に外部記憶装置(図には示
していない)からのデータ入力サービスを要求し、次に
O85がユーザプログラム10を選択・実行させた場合
を例にとり本実施例の動作を説明する。O35がプログ
ラムのスケジュールを行ないユーザプログラム6を選択
すると、5TP21に、ユーザプログラム6が存在する
仮想空間2をマツプしている5T41のアドレス(前述
のように先頭物理アドレス)を設定する。以後、アドレ
ス変換はSr11を元に行なわれ、仮想空間2が選択さ
れる。次に、制御レジスタ29のアクセス権30に値“
1”を設定すると同時にユーザプログラム6に制御を移
す。ユーザプログラム6に制御が移った時点では、アク
セス権30の値はu 1 nになっているので、PTE
のにフィールドの値が1nであるユーザプログラム6(
第4図参照)の領域にはアクセスできるが、同じ仮想空
間2にマツプされているユーザプログラム7あるいはユ
ーザプログラム8の領域には第4図に示すようににフィ
ールドの値が異なるためアクセスすることができない。
ユーザプログラム6は処理を行ないバッファ・アドレス
を指定し、外部記憶装置からのデータ入力サービスを要
求し、O35に制御を戻す。035に制御が戻ったとき
、自動的に制御レジスタ29のアクセス権30の値は“
°0″に切り替わる。O35は、5TP21に5T40
のアドレスを設定し、仮想空間1に切り替える。
を指定し、外部記憶装置からのデータ入力サービスを要
求し、O35に制御を戻す。035に制御が戻ったとき
、自動的に制御レジスタ29のアクセス権30の値は“
°0″に切り替わる。O35は、5TP21に5T40
のアドレスを設定し、仮想空間1に切り替える。
O55は内部テーブルに、前記指定されたバッファ・ア
ドレスを格納してから、外部記憶装置を起動し、再びプ
ログラムのスケジュールを行ないユーザプログラム10
を選択する。5TP21にユーザプログラム10が存在
する仮想空間3をマツプしているSr12のアドレスを
設定する。次に、制御レジスタ29のアクセス権30に
値“2”を設定すると同時にユーザプログラム10に制
御を移す。ユーザプログラム10が処理を行なうが、処
理中に先に起動した外部記憶装置からの完了割り込みが
発生すると、−旦、O35に制御が戻る。
ドレスを格納してから、外部記憶装置を起動し、再びプ
ログラムのスケジュールを行ないユーザプログラム10
を選択する。5TP21にユーザプログラム10が存在
する仮想空間3をマツプしているSr12のアドレスを
設定する。次に、制御レジスタ29のアクセス権30に
値“2”を設定すると同時にユーザプログラム10に制
御を移す。ユーザプログラム10が処理を行なうが、処
理中に先に起動した外部記憶装置からの完了割り込みが
発生すると、−旦、O35に制御が戻る。
この場合も、自動的に制御レジスタ29のアクセス権3
0の値は“0”に切り替わる。O35は、5TP21に
5T40のアドレスを設定し、仮想空間1に切り替え、
内部テーブルに格納しておいたバッファ・アドレスを取
り出し、読み込んだデータをユーザプログラム6の領域
の指定されたバッファに書き込む。このようにO85は
全てのユーザプログラムがマツプされている仮想空間1
でユーザプログラム領域にアクセスするので、バッファ
・アドレスを管理しておくのに実行時の仮想空間の識別
子を覚えておく必要はない。そして、再びプログラムの
スケジュールを行ないユーザプログラム6を選択し、5
TP21にユーザプログラム6が存在する仮想空間2を
マツプする5T41のアドレスを設定する。次に、制御
レジスタ29のアクセス権30に値“1”を設定すると
同時にユーザプログラム6に制御を移す。
0の値は“0”に切り替わる。O35は、5TP21に
5T40のアドレスを設定し、仮想空間1に切り替え、
内部テーブルに格納しておいたバッファ・アドレスを取
り出し、読み込んだデータをユーザプログラム6の領域
の指定されたバッファに書き込む。このようにO85は
全てのユーザプログラムがマツプされている仮想空間1
でユーザプログラム領域にアクセスするので、バッファ
・アドレスを管理しておくのに実行時の仮想空間の識別
子を覚えておく必要はない。そして、再びプログラムの
スケジュールを行ないユーザプログラム6を選択し、5
TP21にユーザプログラム6が存在する仮想空間2を
マツプする5T41のアドレスを設定する。次に、制御
レジスタ29のアクセス権30に値“1”を設定すると
同時にユーザプログラム6に制御を移す。
本実施例によれば、複数のユーザプログラムを同一仮想
空間内に配置することができるので、仮想空間の数を減
らし、アドレス変換テーブルに必要なメモリ容量を小さ
くすることができる。
空間内に配置することができるので、仮想空間の数を減
らし、アドレス変換テーブルに必要なメモリ容量を小さ
くすることができる。
以上詳しく述べたように、本発明の仮想記憶制御方式に
よれば、複数の仮想空間を設け、各々のユーザプログラ
ムの仮想アドレスが、異なる仮想空間の間でも重複しな
いようにマツプしたことにより、O3内でユーザプログ
ラム領域の制御テーブルおよびバッファを管理するのに
、従来の多重仮想空間方式のようにアドレスの外に空間
識別子を合わせて管理する必要がないので、実記憶シス
テムから容易に移行でき、また、従来の単一仮想空間方
式のようにユーザプログラム数の増加により主記憶保護
キーを増加したり入れ替えたりする必要がないので、オ
ーバヘッドの少ない仮想記憶制御方式を実現することが
できる効果を奏する。
よれば、複数の仮想空間を設け、各々のユーザプログラ
ムの仮想アドレスが、異なる仮想空間の間でも重複しな
いようにマツプしたことにより、O3内でユーザプログ
ラム領域の制御テーブルおよびバッファを管理するのに
、従来の多重仮想空間方式のようにアドレスの外に空間
識別子を合わせて管理する必要がないので、実記憶シス
テムから容易に移行でき、また、従来の単一仮想空間方
式のようにユーザプログラム数の増加により主記憶保護
キーを増加したり入れ替えたりする必要がないので、オ
ーバヘッドの少ない仮想記憶制御方式を実現することが
できる効果を奏する。
また、上記複数の仮想空間に加え、全部のユーザプログ
ラムをマツプした別の仮想空間を設け、ここでO3が全
てのユーザプログラム領域をアクセスできるようにした
ことにより、ユーザプログラムのマツプされた仮想空間
を一々仮想アドレスから求める必要がないという効果を
奏する。
ラムをマツプした別の仮想空間を設け、ここでO3が全
てのユーザプログラム領域をアクセスできるようにした
ことにより、ユーザプログラムのマツプされた仮想空間
を一々仮想アドレスから求める必要がないという効果を
奏する。
第1図は本発明の一実施例における仮想空間の構成を示
す図、第2図はプロ、ダラム構成を示す図、第3図はア
ドレス変換手順を示す図、第4図はプログラムの保護キ
ーを示す図、第5図はアドレス変換テーブルの関係を示
す図、第6図及び第7図は本発明と多重仮想記憶方式と
の違いを示す図である。 1〜3−・−・−・・仮想空間、5・・・・−・・・0
316〜10・−−・ユーザプログラム、20−・・−
・仮想アドレス、21・・−・−・・セグメント・テー
ブル・ポインタSTP、22゜40〜42−−−−−−
−セグメント・テーブルST、23・・・・−・セグメ
ント・テーブル・エントリSTE、24゜45〜50−
・−一一一一ページ・テーブルPT、25・−・−・・
−ページ・テーブル・エントリPTE、28・−・−・
−物理アドレス、29−・−・−制御レジスタ。 第1図 艷2図 第4図 第5図 第6図 第7図 (a)
す図、第2図はプロ、ダラム構成を示す図、第3図はア
ドレス変換手順を示す図、第4図はプログラムの保護キ
ーを示す図、第5図はアドレス変換テーブルの関係を示
す図、第6図及び第7図は本発明と多重仮想記憶方式と
の違いを示す図である。 1〜3−・−・−・・仮想空間、5・・・・−・・・0
316〜10・−−・ユーザプログラム、20−・・−
・仮想アドレス、21・・−・−・・セグメント・テー
ブル・ポインタSTP、22゜40〜42−−−−−−
−セグメント・テーブルST、23・・・・−・セグメ
ント・テーブル・エントリSTE、24゜45〜50−
・−一一一一ページ・テーブルPT、25・−・−・・
−ページ・テーブル・エントリPTE、28・−・−・
−物理アドレス、29−・−・−制御レジスタ。 第1図 艷2図 第4図 第5図 第6図 第7図 (a)
Claims (1)
- 【特許請求の範囲】 1、複数の仮想空間と、前記複数の仮想空間の各々に対
し、オペレーティングシステム及び相互に記憶保護可能
な数以内のユーザプログラムを、それらのユーザプログ
ラム領域の仮想アドレスが異なる仮想空間の間でも重複
しないように順にマップする手段と、前記各々のユーザ
プログラムを、該ユーザプログラムがマップされている
空間で実行させる手段とを備えたことを特徴とする仮想
記憶制御方式。 2、前記複数の仮想空間に加え、オペレーティングシス
テム及び全てのユーザプログラムをマップした別の仮想
空間を設け、前記オペレーティングシステムを前記別の
仮想空間で実行させるように構成したことを特徴とする
請求項1記載の仮想記憶制御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63100200A JPH01273153A (ja) | 1988-04-25 | 1988-04-25 | 仮想記憶制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63100200A JPH01273153A (ja) | 1988-04-25 | 1988-04-25 | 仮想記憶制御方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH01273153A true JPH01273153A (ja) | 1989-11-01 |
Family
ID=14267660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63100200A Pending JPH01273153A (ja) | 1988-04-25 | 1988-04-25 | 仮想記憶制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH01273153A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5627987A (en) * | 1991-11-29 | 1997-05-06 | Kabushiki Kaisha Toshiba | Memory management and protection system for virtual memory in computer system |
-
1988
- 1988-04-25 JP JP63100200A patent/JPH01273153A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5627987A (en) * | 1991-11-29 | 1997-05-06 | Kabushiki Kaisha Toshiba | Memory management and protection system for virtual memory in computer system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0208428B1 (en) | Direct input/output in a virtual memory system | |
US7409487B1 (en) | Virtualization system for computers that use address space indentifiers | |
KR920005853B1 (ko) | 페이지 분할형 가상 메모리 데이타 처리 시스템에서의 데이타 전송 방법 | |
US4511964A (en) | Dynamic physical memory mapping and management of independent programming environments | |
US6681239B1 (en) | Computer system having shared address space among multiple virtual address spaces | |
US6349355B1 (en) | Sharing executable modules between user and kernel threads | |
US6275917B1 (en) | High-speed address translation system | |
US4742450A (en) | Method to share copy on write segment for mapped files | |
US4761737A (en) | Method to automatically increase the segment size of unix files in a page segmented virtual memory data processing system | |
US5335334A (en) | Data processing apparatus having a real memory region with a corresponding fixed memory protection key value and method for allocating memories therefor | |
US7149873B2 (en) | Methods and apparatus for a dual address space operating system | |
US4758946A (en) | Page mapping system | |
EP0700000A2 (en) | System and method combining a global object identifier with a local object address in a single object pointer | |
JPH0552540B2 (ja) | ||
JPH01207856A (ja) | アドレス空間制御機構 | |
JPH08212136A (ja) | 仮想メモリ変換処理を効率的に共有する方法及び装置 | |
US5875487A (en) | System and method for providing efficient shared memory in a virtual memory system | |
WO2002057923A1 (fr) | Dispositif de commande de protection de la memoire | |
US5940869A (en) | System and method for providing shared memory using shared virtual segment identification in a computer system | |
JPH01273153A (ja) | 仮想記憶制御方式 | |
Motobayashi et al. | The HITAC5020 time sharing system | |
US5450587A (en) | Expanded memory addressing scheme | |
JPS63254544A (ja) | アドレス変換制御方法 | |
JPH01228038A (ja) | アクセス・レジスタ変換機構 | |
CN118210622A (zh) | 一种内存分配方法及计算设备 |