JPH0346043A - 実記憶割り当て方法 - Google Patents

実記憶割り当て方法

Info

Publication number
JPH0346043A
JPH0346043A JP1180323A JP18032389A JPH0346043A JP H0346043 A JPH0346043 A JP H0346043A JP 1180323 A JP1180323 A JP 1180323A JP 18032389 A JP18032389 A JP 18032389A JP H0346043 A JPH0346043 A JP H0346043A
Authority
JP
Japan
Prior art keywords
real
page
virtual
pages
allocated
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.)
Granted
Application number
JP1180323A
Other languages
English (en)
Other versions
JP2858795B2 (ja
Inventor
Kikuo Takahashi
高橋 喜久雄
Toyohiko Kagimasa
豊彦 鍵政
Yoshiki Matsuda
芳樹 松田
Toshiaki Mori
利明 森
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP1180323A priority Critical patent/JP2858795B2/ja
Priority to DE69033064T priority patent/DE69033064T2/de
Priority to EP90113477A priority patent/EP0408070B1/en
Publication of JPH0346043A publication Critical patent/JPH0346043A/ja
Priority to US08/232,400 priority patent/US5426752A/en
Application granted granted Critical
Publication of JP2858795B2 publication Critical patent/JP2858795B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は仮想記憶方式の計算機システムにおいて各仮想
ページに対する実記憶内の実ページの割り当て方法に係
わり、特に大容量の実記憶装置を有する計算機システム
に好適な実記憶割り当て方法に関する。
〔従来の技術〕
仮想ページに関する実ページの割り当てを管理する記憶
管理方法に関しては、特開昭53−114318号、特
開昭58−17586号、特開昭60−204048号
、特開昭62−274351号記載の技術が知られてい
る。
まず、特開昭53−114318号では記憶保のための
記憶キーの付与単位(実ページに相当)2”KB (キ
ロバイト)の領域に対し仮想ページサイズが2”KBで
m≧nの範囲で可変であるような場合の高速アドレス変
換に関して論じられており、高速アドレス変換テーブル
エントリ長を拡張し2′″−0個のキーを格納可能な構
成にし、エントリ数を増やす事なくいずれの仮想ページ
サイズにおいても高速アドレス変換テーブル上に同数の
ページ数が登録可能としている。
この技術ではアドレス変換の効率に起因するシステムの
性能については考慮されているが、記憶保護のための記
憶キー設置単位による問題が考慮されておらず、キーの
付与が一番小さい単位毎に必要であり、実記憶容量の巨
大化に伴い記憶キー付与のためのキー記憶装置の容量が
巨大化し、しいては主記憶のアクセス性能が低下すると
言う問題がある。
すなわち、記憶キー付与数の低減が必要である。
また、特開昭58−17586号でも、仮想ページサイ
ズより実ページサイズが大きい場合の高速アドレス変換
テーブルの構造上の工夫に関して論じられているが前記
と同様の問題がある。
また、特開昭60−204048号では、仮想記憶およ
び実記憶をあらかじめ複数の領域に分割し個々の領域で
は仮想ページサイズと実ページサイズが同一であるが、
異なる領域間ではこのページのサイズが異なっている。
実行するプログラムのメモリ利用特性に応じて各分割領
域上のページサイズとページ数をあらか′じめ決めてお
くことにより実記憶の有効活用とページの管理オーバヘ
ッドの削減を図っている。しかし、複数に分割された各
実記憶領域毎においては個々の領域の実ページと同一サ
イズの仮想ページのみ割り当て可能であり各実記憶領域
間の相互利用と言う点について考慮がされておらず、あ
るサイズの仮想ページに実記憶を割り当てようとしても
実記憶全体としては空き領域があるにもかかわらず仮想
ページと同サイズの実ページを持つ実記憶領域に空き領
域が無ければ割り当て不能となり、実記憶全体の効率的
な利用と言う面で問題がある。すなわち、異なるサイズ
の仮想ページと実ページの相互割り当てがなされていな
い。
また、特開昭62−274351号では、実記憶上にセ
グメントサイズより大きな連続する空き領域が有ればセ
グメント単位に実記憶を割り当て、アドレス変換テーブ
ル上に記憶しておき、このような場合にはアドレス変換
の過程において実施される2つの変換単位、すなわちセ
グメント変換とページ変換の内、ページ変換を不要とす
ることによりアドレス変換の高速化、アドレス変換テー
ブルの容量削減を可能としている。
しかし、この技術はユーザプログラムからユーザの欲す
る任意のサイズで仮想記憶の確保、解放が成されると言
う点について考慮されておらず、たとえばセグメント単
位で実記憶を割り当てたとしても、ユーザプログラムか
らその内部を部分的に解放される′と仮想記憶、実記憶
上に虫食い状態の使用不可能領域が発生し利用効率が悪
い、また。
実記憶はセグメントより小さい単位の実ページに分割さ
れて各実ページは互いに独立して任意の仮想ページに割
り当てられるため連続した実記憶が空いてる確率は一般
的に非常に稀であると言う問題がある。
本発明の目的は異種サイズの仮想ページと実ページ間で
割り当てを可能とすることにより上記問題を解決する効
率的な記憶管理方法を提供することにある。
〔問題点を解決するための手段〕
上記目的達成のため本発明の記憶管理方式では、仮想ペ
ージサイズと記憶保護のためのキーの付与単位である実
ページサイズが異なる場合のページ割り当て方法として
、実ページサイズに対して仮想ページサイズが1 / 
n倍(nは正整数)の場合割単位毎に仮想ページに割り
当てる。
また、実ページサイズに対して仮想ページサイズがn倍
(nは正整数)の場合には仮想ページサイズの整数倍の
アドレス有する実ページを先頭とする連続するnヶの実
ページを捜し、−1この連続するnヶを仮想ページ1ペ
ージに対応させることにより仮想ページサイズと異なる
ページサイズから構成される実記憶領域を仮想ページサ
イズ単位に割り当てる。また、実ページサイズに対して
仮想ページサイズが1 / n倍およびn倍のものが混
在する場合には、仮想ページと実ページのサイズの組み
合わせにより、前記の1 / n倍もしくはn倍の場合
のいづれかの方式でページ全開り当てる。
さらに、ページの使用頻度を調べる場合には、仮想ペー
ジサイズと実ページサイズの内大きい方のサイズを単位
としてページの使用頻度計」りを実施することにより前
記目的を達成する。
〔作用〕
(1)仮想ページサイズが実ページサイズより小さい場
合(1/ n倍)、実ページ内部を1/nに分割し仮想
ページサイズ単位で割り当てることにより、仮想ページ
サイズに依存せずキー付与単位である実ページサイズを
大きくできる、したがって、実ページ数、キー記憶(第
1図の5)のエントリ(第1図の6)の数を少なくでき
、実記憶の増大にともなうキー記憶のエントリ数の巨大
化を抑止できる。
また、キー記憶エントリ数の巨大化抑止により、主記憶
のアクセス性能低下を抑えることができる。
さらに、この場合は、ページの使用頻度を調べる場合、
仮想ページサイズと実ページサイズの内大きい方のサイ
ズ、すなわち、実ページサイズを単位としてページの使
用頻度計測を実施することにより、計測ページ数を削減
でき、ページ計測に費やすオペレーティングシステムの
処理時間を短縮できる。
(2)仮想ページが実ページサイズのn倍の場合は、連
続するnヶの実ページを仮想ページと同一のサイズを持
つ実ページ1ケと考え一つの仮想ページに割り当てる。
この場合は、仮想ページサイズを単位としてページの使
用頻度計測を実施することにより、計測ページ数を削減
でき、ページ計測に費やすオペレーティングシステムの
処理時間を短縮できる。
(3)仮想ページサイズが実ページサイズに対して1 
/ n倍およびn倍のものが混在する場合には、仮想ペ
ージと実ページのサイズの組み合わせにより、上記の(
1)もしくは(2)を適応することにより異なるサイズ
の仮想/実ページ間の相互利用が可能となり効率のよい
実記憶の利用ができる。
〔実施例〕
以下、本発明の実施例を図面を参照して説明する。第1
の実施例では、第1図に示すように仮想記憶11はサイ
ズ4KB (キロバイト)の仮想ページ12の群により
構成されている。実記憶1゜は実ページサイズの異なる
2つの領域20.30に分割されている。領域2oは4
KBの実ページ21の群より成り、以下この領域4KB
ページ領域と呼ぶ。領域30は64KBの実ページ31
の群より成り、以下この領域30を64KBページ領域
と呼ぶ、以下に、詳述するように本実施例では64KB
ページ領域30を構成する各64KBページ31を仮想
ページサイズに等しい4KBの領域に分割し、各分割領
域を1つの仮想記憶に割り当てる所に特徴がある。
5は実記憶10の各ページに対する記憶保護キーを保持
するためのキー記憶である。その各エントリ6には対応
する実ページに割り当てられた記憶保護キー(SK7)
 、そのページの参照の有無を示す参照ビット(R)8
.そのページが書き替えられたことを示すチェンビット
(c)9を格納するエリエから戒る。キー記憶5の各エ
ントリ6は4KBページ領域20に対して従来と同様に
ページごと、すなわち、4KBことに、64KBページ
領域30に対しても同様にページごと、すなわち、64
KBごとに設置されている。すなわち、従来と同様に本
実施例でも実ページは記憶保護キ30では実ページサイ
ズを4KBから64KBに拡張されているので、4KB
ページ領域20に比べ実記憶の単位容量当りのキー付与
数を1716に抑えキー記憶容量の増加を抑止している
第2図は、オペレーティングシステムに含まれるプログ
ラムおよび管理テーブルを示す。図において、2はその
うち実記憶割り当てプログラム、3はページ計測プログ
ラム、7はページアウトプログラムを示す。実記憶割り
当てプログラム2ではある仮想ページに対して、プログ
ラムから実記憶の割り当て要求があると仮想ページ単位
に実記憶の領域を割り当てる。この割り当てでは具体的
には実記憶より4KBの空き領域を1つ選び出し割り当
てるべき仮想ページに対応するアドレス変換テーブルの
エントリ上に1選び出した実記憶領域のアドレスをセッ
トし仮想アドレスから実アドレスへの変換を可能とする
。すなわち、本発明でも従来と同様に仮想ページは仮ア
ドレスから実アドレスへのアドレス変換単位である。ペ
ージ計測プログラム3は実記憶上に割り当てられている
各仮想ページの使用頻度を計測するもので、実記憶の不
足状態に陥るとこの計測結果に従ってページアウトプロ
グラム7で使用頻度の低い仮想ページに割り当てられて
いる実記憶上の情報を順次、補助記憶にページアウトし
使用可能な実記憶を一定量確保する制御に用いられる6
図において、50゜60は実記憶の現在の割り当て状況
を管理するための実記憶管理テーブルである。4KB領
域理テーブル50は仮想ページサイズと同じサイズの実
記憶領域、すなわち、4KB実ページの各々および各6
4KBページの各分割領域に対応するエントリ51を持
つ。各エントリには対応する実記憶内の4KB領域の割
り当て状況を示す情報を保持する。後に説明するように
この管理テーブル50のエントリの内、仮想ページに未
だ割り当てられていない4KBの実記憶領域に対応する
エントリのキュー(未割り当て4KB領域キユー710
(第4A図))が形成される。71はこのキューの先頭
エントリを示すポインタである。また、64KB領域管
理テーブル60は64KBページ領域30内の64KB
の実ページの各々に対応するエントリ61を持つ。各エ
ントリは、対応する64KBページの割り当て状況を示
す情報を保持する。後に説明するようにこの管理テーブ
ル60のエントリうち、仮想ページに未だ割り当てられ
ていない64KBの実記憶領域に対応するエントリのキ
ュー(未割り当て64KB領域キユー720(第4B図
)が形成される。72はこのキューの先頭エントリを示
すポインタである。また、100はプログラム(ジョブ
)ごとに設けたジョブ管理テーブルである。この管理テ
ーブルには、後述するように、各ジョブが使用中の仮想
ページに割り当てられた4KB実ページに対応するテー
ブル50内のエントリキュー(割り当て済み4KBペー
ジキユー810(第5A図))が形成される。81はこ
のキューの先頭エントリを示すポインタである。また、
後述するように、各ジョブが使用中の仮想ページに割り
当てられた分割領域に対応するテーブル50内のエント
リキュー(I’llり当て済み分割領域キュー820(
第5B図)が形威される。82はこのキューの先頭エン
トリを示すポインタである。また、各ジョブについて各
ジョブが使用中の64KB実ページの内、一部の分割領
域が未割り当てであるものに対するテーブル60のエン
トリのキュー(部分未開り当て64KBページキユー9
10(第5C図))が形成される。91はこのキューの
先頭エントリを示すポインタである。また、各ジョブに
ついて、各ジョブが使用中の64KB実ページの内、そ
の全ての分割領域が割り当て済であるものに対するテー
ブル60のエントリキュー(全割り当て済64KBペー
ジキュー920(第50図))が形成される。
92はこのキューの先頭エントリを示すポインタである
第3A図は4KB領域管理テーブル50の1つのエント
リ51内の情報を示す図である。このエントリ51は実
記憶10の各4KBの領域毎に設けられている。フィー
ルド91Aには実記憶のエントリに対応する4KBの領
域に割り当てられた仮想ページの仮想アドレスがセット
され、フィールド92Aにはその仮想ページを使用して
いるジョブの識別子が(ジョブID)がセットされる。
フィールド93Aには、実記憶の対応する4KB領域が
最近に使用されてから現在に至るまでの時間(未使用時
間)がセットされている。なお、6KBの実ページ内を
分割した4KB領域に対応するエントリ51にはセット
不要である。フィールド94A、95Aには、そのエン
トリがテーブル50内の他のエントリとキューイングさ
れるときに使用されるもので、フィールド94Aには、
そのエントリの次につながるべきエントリのアドレス(
フォワードポインタ(FWPI))がセットされ、フィ
ールド95Aには、そのエントリの前つながっているエ
ントリのアドレス(バックワードポインタ(BWPI)
)がセットされる。
第3B図は64KB領域管理テーブル60の工つのエン
トリ61内の情報を示す図である。このエントリ61は
実記憶10の各64KBの実ページに対応して設けられ
る。フィールド91B。
92B、93B、94B、95Bはそれぞれの第3A図
のフィールド91A、92A、93A。
94A、95Aと同じ意味の情報がセットされる。
フィールド96には、そのエントリに対応する64KB
ページ内の16個の分割領域の内、仮想ページに末割り
当ての分割領域数がセットされる。
フィールド97には、対応する64KB実ページ内の分
割領域が最初に使用された時に分割領域に割り当てた仮
想ページの持つ記憶保護キーがセットされる。この記憶
キーは後述するように64KB実ページ内に割り当てる
16個の仮想ページの記憶キーが矛盾しないで同一とな
るよう制御に使用する。フィールド97.98はそのエ
ントリに対応する64KBページ内の16個の分割領域
に対する4KB領域管理テーブル50内のエントリ51
のキューを形成するときに使用される。
第4A図は4KB未割当領域キュー710を示す。この
キューは実記憶10の各4KB領域の内。
仮想ページが割りあてられていない領域に対するテーブ
ル50のエントリ51Aの群をポインタにより連ねて構
成される。実記憶の4KBの未割当領域に対する各エン
トリ5’lA内のフォワードポインタ(FWPI)は後
続の未割当の4KB領域に対応するエントリ51Aのア
ドレスがセットされ、そのエントリ51.A内のバック
ワードポインタ(BWPI)には、先行する未割当の4
 K B M域に対する他のエントリ51Aのアドレス
セットされている。さらに4KB未割当領域キューポイ
ンタ内にはこのエントリ列の内、先頭にあるエントリの
アドレスおよび末尾のエントリのアドレスをそれぞれフ
ォワードポインタ71A、バックワードポインタ71B
としてセットされている。こうしてキュー710が形成
される。なお、このようなエントリ51Aがない場合に
はポインタ71A、71BにはOがセットされる。この
ことは他のキューについても同様である。
ポインタ71につらなるエントリ51Aの列をたどるこ
とにより、未割当の4KB領域がいずれであるかを判定
できる。
第4B図は、64KB未割当ページキュー720を示す
、このキューは、実記憶10の64KBページの内、ど
の分割領域も仮想ページに割当てされていないものに対
する、テーブル60のエントリ61Bの列およびそれぞ
れの64KBページ内の16個の分割領域に対するテー
ブル50のエントリ51Bの列からなる。すなわち未割
当の64KBページに対するテーブル60のエントリ6
1Bのフォワードポイント(FWP2)、バックワード
ポインタ(BWP2)には、それにつづく、未割当の6
4KBページに対するエントリ61Bのアドレスおよび
それに先行する未割当の64KBページに対するエント
リ61Bのアドレスがそれぞれセットされる。エントリ
51Bの列の先頭のエントリおよび末尾のエントリのア
ドレスがそれぞれ、キューポインタ72内に、フォワー
ドポインタ、バックワードポインタとしてセットされる
。こうしてキュー720が形成される。
さらに、未割当の64KBページに含まれる16個分割
領域に対するテーブル50のエントリ51Bのフォワー
ドポインタ(FWPI)とバックワードポインタ(BW
PI)には、同じ64KBページ内の、後続の分割領域
に対する、テーブル50のエントリ51Bのアドレスお
よび同じ64KBページ内の先行する分割領域に対する
、テーブル50のエントリ51Bのアドレスがそれぞれ
セットされることにより、同じ64KBページに属する
エントリ51Bの列が形成される。この64KBページ
に対する、テーブル60内のエントリ61B内の内部フ
ォワードポインタ(F)および内部バックワードポイン
タ(L)には、そのようなエントリ51の列の先頭のエ
ントリ51Bおよび末尾のエントリ51Bのアドレスが
セットされている。
第5A図はあるジョブに対する割当済4KBページキユ
ー810に示す。キュー810はそのジョブに割当済み
の4KB実ページに対するテーブル50のエントリ51
Cの列とキューポインタ81にて形成される。これらの
エントリの接続は未割当4KB領域キユー710(第4
A図)の場合と同じである。
第5B図は、あるジョブに対する割当済分割領域キュー
820を示す。
このキュー820は、そのジョブに割当て済の介在領域
に対するテーブル50のエントリ51Dの列をキューポ
インタ82とからなる。第5C図はあるジョブに対する
部分割り当て済み64KBページキユー910を示す。
このキューはそのジョブに一部の分割領域が割当て済み
であるが、他の一部の分割領域が未割当である64にB
ページに対するテーブル60のエントリ61Eの列をそ
れぞれのページ内の未割当の分割領域に対するテーブル
50のエントリ51Eの列とキューポインタ9工とから
形成される。これらのエントリ61E、51Eの接続は
未割当64KBベージキユー810(第4B図)の場合
と同様である。
なお、ジョブ管理テーブル100内の、64KB部分使
用ページキューポインタ102には、これらのエントリ
61の列の先頭のエントリおよび末尾のエントリのアド
レスがそれぞれフォワードポインタ102A、バックワ
ードポインタ102Bとしてセットされる。このキュー
910からあるジョブが使用している64KBページの
内、未割当ての分割領域を容易に検出できる。
第5A図〜第5C図に示したキュー810゜820.9
10は他のジョブに対しても同様に設けられている。そ
れらは簡単化のために図示されていない。
第5D図は、あるジョブに対する全割り当て済み64K
Bページ、920を示す。このキューは、そのジョブに
割り当てられている、64KBページのうち、その分割
領域が全て割り当て済みである(全てが使用済みである
)64KBページを対象に、それに対応するテーブル6
0のエントリ61Fの列から形成される。このキュー9
20は、後で述べるページ計測プログラム3により使用
される。また、このキュー920は、前記部分割り当て
済みキュー310とは異なり、全ての分割領域が使用済
みであるため、それら分割領域に対するテーブル50の
エントリ列は接続されない。これら分割領域に対するエ
ントリは、前記の通り割り当て済み分割領域キュー82
0に接続されている。
次に実記憶割り当てプログラム2の動作を説明する。
第6図はページ割り当てプログラム2の概略フローを示
す図である。
あるプログラム(ジョブ)の実行中に仮想記憶上のある
領域をアクセスしたとき、その仮想領域に対応する実記
憶領域が割り当てられていない場合に、ページフォルト
割り込みが発生し、これを契機に仮想領域に実記憶領域
を仮想ページ単位に割り当てるための実記憶割り当て要
求がおこり、実記憶割り当てプログラム2が起動される
。実記憶割り当てプログラム2が起動されると、まず実
記憶領域選定ステップ200で割り当てるべき実記憶上
の領域を選定する。
本実施例では割り当てるべき実記憶が属する領域が4K
Bページ領域20又は、64KEベージ領域30のいず
れかにあらかじめ指定されている場合にはその指定領域
を選定し、その他の場合には、まず64KBページ領域
30を選定する。後に説明するようにこの領域30内の
未割り当ての4KB領域を捜し、これが見つからない場
合には4KBページ領域20内の実記憶を割り当てるよ
うになっている。実記憶領域選定ステップ200により
64KBページ領域30が選ばれると、要求元ジョブ割
り当て済み64KBページ内サーチ210を実施する。
この処理は64KBページ内を分割使用した場合に生じ
る64KBページ内の部分未刈り当て分割領域を利用す
るための工夫であり、要求元ジョブに概に部分的に割り
当て済みの64KBページ内の未割り当て分割領域を優
先してそのジョブに割り当てるい ジョブからの実記憶割り当ての要求がそのジョブから最
初に出された場合、そのジョブに対して部分的に未割り
当ての64KBページは存在しない。
従って、サーチ210は失敗するのでこのサーチ210
については後に説明する。サーチ210で部分的に未割
り当てのページが見つからなければ、次に未割り当て6
4KBページサーチ230を実施し、未割り当て64K
B内の一つの分割領域を割り当てる。すなわち、未割り
当て64KBページキユー720(第4B図)を用いて
、そのジョブに割り当てるべき未使用の64KBページ
を見つける。このために、まずステップ231でこのキ
ュー720のポインタ72を取り出し、ステップ232
でポインタ値のゼロ判定を行いこのポインタに接続され
たエントリ61Bの有無を調べる。
キューポインタ72がゼロでなければ、ステップ233
にてそれに連なるキュー720の先頭のエントリ61B
を取り出す。そのエントリ61Bに連なる16個の分割
領域に対するエントリ51Bの列の先頭のエントリを選
択しそれに対応する分割領域を割り当て対象とする。次
に、ステップ234Aで管理テーブルエントリおよびキ
ューの更新を行う。すなわち、エントリ61Bの内部フ
ォワードポインタ(F)(第3B図)で示されるエント
リ61Bに連なるエントリ51Bを選択し、そのフィー
ルド91A、92A、(第3図A)に割り当て対象とな
った仮想ページのアドレスと割り当て要求元のジョブの
IDをセットし、選択したエントリ61B内の割り当て
済み分割領域数96を+1しくその初期値はOである)
、フィールド92BにそのジョブのジョブIDをセット
する。
次に、キューの更新を以下のように行う。即ち、未割り
当て64KBページキユー720から(第4B図)上記
選択されたエントリ61Bおよびこれに連なる16個の
エントリ51Bをはずし、このエントリ61Bおよび上
記16個のエントリ51Bの中の、上記選択されたエン
トリ51B以外の15個(未割り当ての分割領域に対す
るテーブル50のエントリ)をそのジョブに対して設け
られた部分割り当て済み64KBページキユー910(
第5C@)に接続する。さらに、上記選択されたエント
リ51Bをそのジョブに対して段別られた割り当て済み
分割領域キュー820(第5B図)に接続する。
次に、ステップ236Aにて割り当て対象となった仮想
ページに指定されている記憶キー(ジョブから明示的に
指定されていない場合は、そのジョブのその時点のプロ
グラムキー値)をフィールド97にセットし、割り当て
対象となった分割領域の含まれる64KB実ページに対
応するキー記憶5(第工図)のエントリ6にフィールド
97にセットした値と同じキー値をセットする。なお、
この64KB実ページのアドレスは選択されたエントリ
61Bがテーブル60中の何番目のエントリであるか(
すなわち、それに対応して定まるこのエントリ61Bの
テーブルインデイクスがそのまま実ページのページアド
レスをページ番号で示す)から決定することができる。
この64KB実ページアドレスに基づいてハードウェア
命令を用いて上記記憶キーを書き込む。また、この記憶
キーの書き込みは未割り当て64KBページ内から分割
領域を最初に割り当てる場合のみ実施するのは前述の通
りである。
次に、ステップ240により、実記憶割り当てが要求さ
れた仮想ページに対応するアドレス変換テーブル内のエ
ントリに選択した分割領域の実アドレスのセットとこの
エントリのバリデーシコンを実施する。こうしてこの実
記憶領域が使用可能となる。こうして、未割り当ての6
4KBページ内の最初の分割領域の割り当てが終了する
以上の処理における、サーチ230においてキューポイ
ンタ(72)がゼロであれば未割り当ての64KBペー
ジは無しと判断し4KBページの選択処理260にて実
記憶10の4KB実ページ領域20内の未割り当ての一
つの実ページを割り当てるべき実記憶領域として選択す
る。
この選択は、未割り当て4KBベージキユー710(第
4A図)に接続されたーっのエントリ51Aを選択する
ことにより行われる。次にステップ234Bにおいて、
この選択されたエントリ51A内に割り当て要求元のジ
ョブのIDおよび割り当て対象の仮想ページのアドレス
を書き込む。
さらに、このエントリ51Aを上記キュー710よりは
ずし、そのジョブに対して設けられた割り当て済4KB
ページキュー810(第5A図)に接続する。その後、
ステップ236Bにおいて記憶キーのセットをステップ
236Aと同様に行い。
ステップ240においてアドレス変換テーブルの書き換
えを先に述べたのと同じように行う。こうして4KB実
ページへの割り当てが終了する。その後、仮想ページに
対する新たな実記憶割り当て要求がなされる毎に同じよ
うに処理される。この際、先に詳細を省略した要求元ジ
ョブ割り当て済み64KBページサーチ210も実行さ
れる。以下、その詳細を述べる。
すなわち、ステップ211においてそのジョブに対する
部分未開り当て64KBベージキユー910(第5C図
)のキューポインタ91を読み出し、ステップ212で
その値がゼロか否かを判断しポインタ91の値がゼロで
あれば部分未開り当ての64KBページは無いと判断し
、前述の未割り当て64KBページサーチ230に移る
ポインタ91がゼロでなければ、ステップ213でこの
キューポインタ91に接続された先頭のエントリ61E
を選択し、次にステップ220でその先頭のエントリ6
1Eの記憶キー97(第3B図)と割り当て対象仮想ペ
ージの記憶キーとを比較し、一致すれば割り当て可能と
判断する。これが不一致であればステップ221でその
先頭エントリ61E内のフォワードポインタFWP 2
(第5C図)を取り出しこれを新たなポインタとして、
ステップ212から221を後続のエントリ61E内の
フォワードポインタFWP2がゼロとなるか、前記ステ
ップ220で記憶キーが一致するエントリ61Eが見つ
かるまで繰り返す。このページキュー910にて示され
る64KBページはいずれも、今回のページ割り当て要
求元ジョブに一部の部分領域が割り当て済みである。今
回のページ割り当て対象仮想ページの記憶キーと一致す
る記憶キーを持つ64B実ページがその部分割り当て済
みページキュー中に有れば、その部分割り当て済み64
Bページ内の一つの分割領域を割り当てるべき実記憶領
域として選択する。このようにすれば64KB実ページ
に対して1つのキー記憶エントリしか与えられない状態
においても、そのページを分割領域に分けてジョブに割
り当てても不都合が生じない。さて、上記のようにして
ステップ220において部分割り当て済み64KBペー
ジキユー910の−っのエントリ61E内の記憶キーが
一致する場合には、ステップ234Cにてそのエントリ
およびキューの更新を行う。
すなわち、そのエントリ61Eに接続されていた未使用
分割領域のエントリ51Eを−っ選択し。
このエントリに対応する分割領域を割り当て領域とすべ
く、この選択されたエントリ51HにそのジョブIDお
よび割り当て対処となった仮想ページのアドレスをセッ
トする。さらに、上記エントリ61E内の割り当て済み
分割領域数96を+1する。
上記エントリ51Eを上記キュー910からはずし、そ
のジョブに対して設けられている割り当て済み分割領域
キュー820に接続する。もし。
上記更新後の割り当て済み分割領域数が16に等しいと
きは、割り当て対象となった分割領域を含む64KB実
ページは未割り当ての分割領域がなくなったことになる
。したがって、この時には、この64KB実ページに対
応する前記エントリ61Eもキュー910からはずし、
全割り当て済みキュー920(第5D図)にエントリ6
1Fとして接続する。
こうして、ステップ234Cが終了するとその後ステッ
プ240が前と同様になされる。以上の処理を実ページ
割り当て要求がなされるたびに繰り返せばよい。こうし
て、仮想ページサイズは従来通りの4KBのまま、実ペ
ージサイズのみを拡張した場合についても、キー記憶5
(第1図)上のエントリ6を64KBの実ページに対し
て1つしか設けずに、かつ実記憶に空きを生じないで実
記憶領域を仮想ページに割り当てることができる。
次にページ計測プログラム3(第2図)の動作を説明す
る。第7A、7B図はページ計測プログラム3の概略フ
ローを示す図である。
点線で示したステップ370〜380は本ケースの実施
例では使用せず、後で述べる第2の実施例で用いる。
ページ計測プログラム3の動作説明の前にページ計測の
目的について少し述べておく、ページ計測とは、実記憶
不足時にページアウトすべきページを決定するために、
実行中の個々のジョブが一定のCPUを使用するつど各
ジョブに割り当てられているページの使用頻度を前もっ
て調べておく処理である。したがって1本ページ計測プ
ログラム3はある時間インターバルで起動される。
本実施例におけるページ計測処理は、仮想ページとそれ
に割り当てられた実記憶が属する実ページサイズが異な
る場合、その仮想ページと実ページのサイズの大きい方
の領域毎にページ計測を行う所にある。
すなわち、64KBページがいくつかの仮想ページに割
り当てられている場合、その実ページの16個の分割領
域のいずれかが使用された場合、その実ページが使用さ
れたものとしてページ計測を行う、すなわち、64KB
ページ領域30上に割り当てられている4KB仮想ペー
ジに対しては、割り当て済み分割領域キュー820(第
5B図)を使用せず、部分割り当て済み6〜4KBペー
ジキユー910(第5c図)、および全割り当て済み6
4 KB/<−ジ’lrユ 920(第5D図)を用い
てこれらキューに接続されているテーブル6oのエント
リ61単位に、すなわち、64に’B単位にページ計測
を実施する。
以下、詳細を説明する。第7A図に示すように、ステッ
プ310でページ計測すべきジョブに対して設けられた
全割り当て済み64KBページキユー920(第5D図
〉の先頭ポインタ92を変数QUEUEにセットし、ス
テップ320で内部サブルーチンSUB 1をコールす
る。
このキュー920は4KBの仮想ページが割り当てられ
ている64KB実ページに対するテーブル60のエント
リを表すキューの一つで前述の64KB実ページ内の全
分割領域が割り当て済みの64KBページを表す。サブ
ルーティン5UB1はコールされると、ステップ510
において、変数QUEUEの値がゼロか否かによりペー
ジ計測すべきエントリ61Fがあるか否かを調べる。
次にエントリがある場合にはステップ440にょり変数
QUEUEで指されるエントリ61Fに対応する64K
B実ページの使用の有無を調べる。
これは、ハードウェア命令により第1図に示すキー記憶
エントリ6上の参照ビット(R7)を読み出すことによ
り行う。参照ビットR7は当該キー記憶エントリに対応
するページがアクセスされるとハードウェアによりセッ
トされ、前記ハードウェア命令により命令実行後リセッ
トされる。これらのビットがゼロであれば当該ページは
、前回のページ計測時点から今回のページ計測までの間
使用されなかったことが分かる。次に、当該ページが使
用されていれば、ステップ450において不参照期間数
93A(第3B図)をクリアしく不参照期間数93Aを
ゼロにする)、ステップ460で当該エントリ61Fを
当該キュー(SUBIがコールされたとき変数QUEU
Eにキューポインタをセットしたキュー、この場合はキ
ュー920(第5D図))の最終位置に移動する。この
エントリの移動は、不参照期間数93Aの大きい順にキ
ューを構成するためである。こうすることにより、後に
述べるページアウトプログラム7では、キューの先頭か
ら順次ページアウトすれば自動的に使用頻度の小さいも
のよりページアウトできる。
次に、当該ページが使用されていなければステップ47
0において不参照期間数をカウントアツプする。このよ
うに、ページの使用頻度はページ計測インターバル毎に
そのページが使用されていない場合に不参照期間数をカ
ウントアツプし、使用されていた場合には不参照期間数
をゼロにするため、この不参照期間数が大きいほど使用
頻度が低いことを示す。
次にステップ480により変数QUEUEに現在処理し
ているエントリ61F内のフォワードポインタ(FWP
2)94Bをセットし、新たなエントリ61Fに対して
今まで述べてきたステップ510〜480の処理を変数
QUEUEの値がゼロすなわちキュー920に接続され
た全てのエントリ61Fを処理し終わるまで繰り返す。
以上で、64KBページ領域30上に割り当てられてい
る4KB仮想ページの内、全割り当て済み64KBペー
ジキユー920(第5D図)に接続されているものにつ
いて64KB単位にページ計測を実施した。
次に、64KBページ領域30上に割り当てられている
4KB仮想ページの内、もう一つの部分割り当て済み6
4KBページキユー910(第5C図)に接続されてい
るものについて、64KB単位にページ計測を実施する
ため、第7A図に示すように、ステップ330で変数Q
UEUEこのキューの先頭エントリ61Eを示すポイン
タ91をセットしステップ340で内部サブルーチン5
UBIをコールする。サブルーチン5UBIは、前記キ
ュー910に接続されているエントリ61Eを対象とし
て先はど説明したステップ5↓O〜480の処理を繰り
返すことにより当該キュー上に接続されるエントリ61
Eに対するページ計測処理を64KB単位に行う。以上
で64KBページ領域30上に割り当てられている、当
該ジョブのページ計測が終了する。次に、4KBページ
領域20上に割り当てられている4KB仮想ページに対
してページ計測を実施する。この場合には、ページ計測
処理は4KB単位に実施する。4KBページ領域20上
に割り当てられている4KB仮想ページは全て、割り当
て済み4KBページキユー810(第5A図)に接続さ
れている。この場合も、前記同様にステップ390で変
数QUEUEにこのキューの先頭エントリ51Cを示す
ポインタ81をセットしステップ400で内部サブルー
チン5UBIをコールする。サブルーチン5UB1は、
前記キュー810に接続されているエントリ51Cを対
象として前記同様にステップ510〜480の処理を繰
り返すことにより当該キュー上に接続されるエントリ5
1Cに対するページ計測処理を4KB単位に行う6以上
の処理を実行中のジョブがCPUをある一定時間使用す
るつと実施すればよい。こうして、仮想ページサイズは
従来通りの4KBのままで、ページ計測処理はその仮想
ページに割り当てられた実記憶の実ページサイズ単位に
実施することができ、ページ計測数を低減することがで
きる。
次にページアウトプログラム7(第2図)の動作を説明
する。第13A、13B図はページアウトプログラム7
の概略フローを示す図である。本実施例におけるページ
アウト処理は、仮想ページとそれに割り当てられた実記
憶が属する実ページサイズが異なる場合、その仮想ペー
ジと実ページのサイズの大きいほうのサイズ単位ページ
アウトを行う所にある。すなわち、64KBページ領域
30内の同一64KB実ページ上の16個の分割領域に
割り当てられている仮想ページ群を一括してページアウ
ト処理する。こうすることにより110回線を低減する
ことができる。以下、第13A図、13B図により、ペ
ージアウト処理の詳細を述べる。本ページアウトプログ
ラム7は実記憶の使用可能な領域が、ある一定量以下に
なると起動され、また、不参照期間数があらかじめ定め
られたn以上のページをN、P A G E個ページア
ウトするべく起動されるものとする。ページアウトプロ
グラム7は起動されると、まず、ステップ500でペー
ジアウトしたページ数をカウントする変数、POUTを
Oにする。次に、ステップ510でページアウトすべき
ジョブに対して設けられた部分割り当て済み64KBペ
ージキユー910(第5B図)の先頭ポインタ91を変
数RPNにセットし、ステップ511で64KBページ
領域30上に割り当てられているページのキューである
ことを示すために変数EXに1をセットし、ステップ5
12で内部サブルーチンOUTをコールする。サブルー
ティンOUTはコールされると、ステップ600におい
て、変数RPNの値がゼロか否かによりページアウトす
べきエントリ61Eがあるか否かを調べ、エントリが無
ければ、何もせずリターンする。次にエントリがある場
合にはステップ610により当該エントリ61Eの不参
照期間数がページアウトプログラム起動時に指示された
n以上かを調べる。n以下であれば、ページ計測プログ
ラム3で述べたように各エントリは不参照期間数が大き
い順に並んでいるため以降のエントリ61Eもn以下で
あり、当該キューには今回のページアウト起動条件を満
たすページが無いためリターンする。
n以上であれば、次にステップ620でページアウトし
て良いページかどうかを調べる。これは、そのページの
ページアウトが禁止されている(ページ固定されている
)とか、既に前回のページアウト処理でページアウト中
であると言った従来からのチエツクで、仮想記憶方式の
計算機において通常酸されているチエツクである。ペー
ジアウト不可であれば、キューに接続された次のページ
を処理するため、ステップ680で変数PRNに当該エ
ントリ61Hのフォワードポインタ94Bをセットしス
テップ600からの処理を繰り返す。
ステップ620でページアウト可能なページが見つかれ
ば、次にステップ630で変数EXの値を調べる。この
場合はEXに1がセットされており64KB単位の処理
であると判断し、ステップ640に進む。ステップ64
0では当該エントリ61E上に含まれる16個の分割領
域を全てページアウトしく但し当該エントリ61Eの対
応するキー記憶上のチェンジビットC(第8図5)がo
ffの場合はページアウトは行わない)、各分割領域に
割り当てられていた仮想ページに対応するアドレス変換
テーブルのエントリを無効とする。
次に、ステップ650で前記各分割領域に対応するエン
トリ51Eを部分割り当て済み64KBページキユー9
10から全てはずし、当該エントリ61E上のキューポ
インタ98.99 (第3B図)テ管理される64KB
ペ一ジ内部のキューへ接続し、割り当て済み分割領域数
96(第3B図)をOにセットし、さらに、エントリ6
1Eを未割り当て64KBページキユー720(第4B
図)に接続する。次に、ステップ660でページアウト
数を示す変数POUTを工6増し、ステップ670でP
OUTがページアウトすべき個数に達したか否かをチエ
ツクするため変数NPAGEと比較する。ページアウト
数がNPAGE未満であれば、つぎにステップ680で
変数RPNに当該エントリ61Eのフォワードポインタ
94Bをセットしステップ600からの処理を繰り返す
。以上の処理をステップ600で当該キューの全エント
リ61Eを処理し終わるか、ステップ610で起動時の
条件以上の不参照期間数を持つエントリ61Eが現れる
まで、もしくは、ステップ670で所定のページ数(N
PAGE)をページアウトするまで繰り返す。以上で、
64KBページ領域30上に割り当てられている4KB
仮想ページの内、部分割り当て済み64KBページキユ
ー910(第5C図)に接続されているものについて6
4KB単位にページアウトを実施しサブルーチンOUT
がリターンする。次に、第13A図のステップ520で
所定のページ数(NPAGE)をページアウト出来た′
かどうかを調べ、所定数に達していなければ1次に、6
4KBページ領域30上に割り当てられている4KB仮
想ページの内、もう1つの全割り当て済み64KBペー
ジキユー920(第5D図)に接続されているものにつ
いて、64KB単位にページアウトを実施する。これは
、第13A図に示すように、ステップ530で変数RP
Nこのキューの先頭エントリ61Fを示すポインタ92
をセットしステップ531で64KBページ領域30上
に割り当てられているページのキューであることを示す
ために変数EXに1をセットしステップ532で内部サ
ブルーチンOUTをコールする。
サブルーティンOUTはコールされると今度は。
キュー920上のエントリ61Fに対して前記と同様に
先はどまで説明したステップ600〜680の処理を繰
り返すごとにより当該キュー920上に接続されるエン
トリ61Fに対するページアウト処理を64KB単位に
行う。但し、ステップ650でキューの更新する際、エ
ントリ61Fをキュー920から外す処理が追加される
ことが異なる。以上で64KBページ領域30上に割り
当てられている、当該キューのページアウトが終了しサ
ブルーチンOUTはリターンする。
次に、再度第13A図のステップ540で所定のページ
数(NPAGE)をページアウト出来たかどうかを調べ
、所定数に達していなければ、次に、4KBページ領域
20上に割り当てられている4KB仮想ページに対して
ページアウトを実施する。
この場合には、ページアウト処理は4KB単位に実施す
る。4KBページ領域20上に割り当てられている4K
B仮想ページは全て1割り当て済み4KBページキユー
810(第5A図)に接続されている。この場合も、前
記同様にステップ550で変数RPNにこのキューの先
頭エントリ51Gを示すポインタ81をセットしステッ
プ551で、4KBページ領域20上のキューであるこ
とを示すためEXにOんセットし、ステップ552で内
部サブルーチンOUTをコールする。
サブルーチンOUTは、前記キュー810に接続されて
いるエントリ51Cを対象として前記同様にステップ6
00〜630のまでの処理を行うと、次にステップ63
0で変数EXの値を調べる。この場合はEXにOがセッ
トされており4KB単位の処理であると判断し、ステッ
プ640Aに進む。
ステップ640Aでは当該エントリ51Cに対応するペ
ージをページアウトしく但し当該エントリ51Cの対応
するキー記憶上のチェンジビットC(第8図5)がof
fの場合はページアウトは行わない)、当該領域に割り
当てられていた仮想ページに対応するアドレス変換テー
ブルのエントリを無効とする0次に、ステップ650A
で前記各エントリ51Cを割り当て済み4KBページキ
ユー810からはずし、当該エントリ51Cを未割り当
て4KBベージキユー710 (第4A図)に接続する
。次に、ステップ660Aでページアウト数を示す変数
POUTを1増し、ステップ670でPOUTがページ
アウトすべき個数に達したか否かをチエツクするため変
数NPAGEと比較する。ページアウト数がNPAGE
未満であれば、つぎにステップ680で変数RPNに当
該エントリ51Cのフォワードポインタ94A(第3A
図)をセットしステップ600からの処理を繰り返す。
以上に処理をステップ600で当該キューの全エントリ
51Cを処理し終わるか、ステップ610で起動時の条
件以下の不参照期間数を持つエントリ51Cが現れるま
で、もしくは、ステップ670で所定のページ数(NP
AGE)をページアウ以上で、4KBページ領域20上
に割り当てられている割り当て済み4KBページキユー
810(第5A図)に接続されているものについて4K
B単位にページアウトを実施しサブルーチンOUTがリ
ターンし、処理を終える。以上の様にして十分な未使用
実記憶量が確保出来るまで、ページアウトプログラム7
起動時の条件の1つであるページアウトすべき不参照期
間数を順次小さくして繰り返しページアウトプログラム
7を起動すれば良い。こうして、仮想ページサイズは従
来通りの4KBのままで、ページアウト処理はその仮想
ページに割り当てられた実記憶の実ページサイズ単位に
実施することができ、ページアウトに関するX70回数
を低減できる。
以上で本発明の第1の実施例の説明を終える。
次に、本発明の第2の実施例について述べる。
なお、第2の実施例 の説明に当り第1実施例と同じ構成、用途のものは第1
実施例と同じ番号を付加し、その詳細図も同一の図を用
いる。
第2の実施例では、第8図に示すように仮想記憶11A
は仮想アドレス 2GB (ギガバイト)を境としてサイズ4KB(キロ
バイト)の仮想ペ ージ′12の群により構成されている4KBページ領域
110とサイズ64KB (キロバイト)の仮想ベージ
13の群により構成されている64KBページ領域12
0から成る。
実記憶10Aは第1の実施例と同様に実ページサイズの
異なる2つの領域、すなわち、ページサイズ4 K B
 M域と64KB領域に分割されている。
さらに、本実施例では各ページサイズの領域内がさらに
各々2分割されており1合計4つの領域20.20A、
30,30Aに分割されている。
領域20は4KBの実ページ21の群より成り、以下こ
の領域を4KBページ専用領域と呼ぶ。
領域2OAは4KBの実ページ2LAの群より成り、以
下この領域を4KBページ共用領域と呼ぶ、なお、この
両者をまとめて4KBページ領域と呼ぶ。
領域30は64KBの実ページ31の群より戊り、以下
この領域30を64KBページ共用領域と呼ぶ。
領域30Aは64KBの実ページ31Aの群より成り、
以下この領域30Aを64KBページ専用領域と呼ぶ。
なお、この両者をまとめて64KBページ領域と呼ぶ。
すなわち1本実施例では第1の実施例に領域20Aと領
域30Aが起加されている所が異なる。領域20は第1
実施例で詳述したように本実施例においても4KB仮想
ページのみを割り当て可能な領域である。領域30も第
1実施例と同様に64KBページ領域30構成する各6
4KBページ31を4KBの領域に分割し、各分割領域
 1つの4KB仮想ページに割り当てることも出来るし
、各64KBページ31&1つの64KB仮想ページに
割り当てることも出来る所が特徴の一つである。また、
領域2OAは領域を構成する各4KBページ21Aを1
つの4KB仮想ページに割り当てることも出来るし、1
6個の連続する4KBページ21Aをまとめて1つの6
4KB仮想ページに割り当てることも出来る所が特徴の
一つである。
また、領域30Aは64KB仮想ページのみが割り当て
可能な領域である。
5は実記憶10Aの各ページに対する記憶保護キーを保
持するためのキー記憶である。その各くエントリ6には
対応する実ページに割り当てられた記憶保護キー(SK
7)、そのページの参照の有無を示す参照ビット(R)
8、そのページが書き替えられたことを示すチェンビッ
ト(c)9を格納するエリアから成る。キー記憶5の各
エントリ6は4KBページ領域20.2OA対しては従
来と同様にページごと、すなわち、4KBごとに、64
KBページ領域30.30Aに対しても同様にページご
と、すなわち、64KBごとに設置されている。すなわ
ち、従来と同様に本実施例でも実ページは記憶保護キー
の付与単位となっている。
64KBページ領域30.3OAでは実ページサイズを
4KBから64KBに拡張されているので、第1必実施
例と同様に4KBページ領域20゜2OAに比べ実記憶
の単位容量当りのキー付与数を1/工6に抑えキー記憶
容量の増加を抑止している。
第9図は、オペレーティングシステムに含まれるプログ
ラムおよび管理テーブルを示す0図において、2Aはそ
のうちの実記憶割り当てプログラム、3はページ計測プ
ログラム、7Aはページアウトプログラムを示す、実記
憶割り当てプログラム2Aではある仮想ページに対して
、プログラムから実記憶の割り当て要求があると仮想ペ
ージ単位に実記憶の領域を割り当てる。この割り当てで
は具体的には実記憶より仮想ページサイズに一致する空
き領域を1つ選び出し割り当てるべき仮想ページに対応
するアドレス変換テーブルのエントリ上に、選び出した
実記憶領域のアドレスをセットし仮想アドレスから実ア
ドレスへの変換を可能とする。すなわち1本発明でも従
来と同様に仮想ページは仮想アドレスから実アドレスへ
のアドレス変換単位である。ページ計測プログラム3は
実記憶上に割り当てられている各仮想ページの使用頻度
を計測するもので、実記憶の不足状態に陥るとこの計測
結果に従ってページアウトプログラム7Aで使用頻度の
低い仮想ページに割り当てられている実記憶上の情報を
順次、補助記憶にページアウトし使用可能な実記憶を一
定量確保する制御に用いられる。図において、50.6
0は実記憶の現在の割り当て状況を管理するための実記
憶管理テーブルである。4KB領域管理テーブル5゜は
仮想ページサイズと同じサイズの実記憶領域、すなわち
、4KB実ページの各々(21,21A群)および各6
4KBページの各分割領域(31群)に対応するエント
リ51を持つ。各エントリには対応する実記憶内の4K
B領域の割り当て状況を示す情報を保持する。後に説明
するようにこの管理テーブル50のエントリの内、仮想
ページに未だ割り当てられていない4KBの実記憶領域
に対応するエントリのキュー(未割り当て4KB領域キ
ユー710(第4A図))が形成される。
71はこのキューの先頭エントリを示すポインタである
また、64KB領域管理テーブル60は4KBページ領
域20Aの連続する4KB実ページ21Aを16a毎に
まとめた64KB単位に対応するエントリ61、および
、64KBページ領域3o内の64KBの実ページ31
の各々に対応するエントリ61を持つ。各エントリは、
対応する実記憶領域の割り当て状況を64KB単位に示
す情報を保持する。
後に説明するようにこの管理テーブル60のエントリの
内、仮想ページに未だ割り当てられていない64KB単
位の実記憶領域に対応するエントリのキュー(未割り当
て4KB共用キユー1720(第10A図)9部分割り
当て済み4KB共用キユー1730 (第10B図)、
未割り当て64KB領域キユー720(第4B図))が
形成される。
172.173.72はこれらキューの先頭エントリを
示すポインタである。
また、64KB領域管理テーブル40は64KBページ
領域30A内の64KBの実ページ31Aの各々に対応
するエントリ41を持つ、各エントリ゛は、対応する実
記憶領域の割り当て状況を64KB単位に示す情報を保
持する。
後に説明するようにこの管理テーブル40のエントリう
ち、仮想ページに未だ割り当てられていない64KB単
位の実記憶領域に対応するエントリのキュー(未割り当
て64KB専用キユー1750(第10C図))が形成
される。
175はこのキューの先頭エントリを示すポインタであ
る。
また、100Aはプログラム(ジョブ)ごとに設けたジ
ョブ管理テーブルである。この管理テーブルには、機能
するように、各ジョブが使用中の仮想ページに割り当て
られた4KB実ページに対応するテーブル50内のエン
トリキュー(割り当て済み4KBページキユー810(
第5A図))が形成される。
81はこのキューの先頭エントリを示すポインタである
また、後述するように、各ジョブが使用中の仮想ページ
に割り当てられた分割領域に対応するテ−プル50内の
エントリキュー(割り当て済み分割領域キュー820(
第5B図))が形成される982はこのキューの先頭エ
ントリを示すポインタである。また、各ジョブについて
各ジョブが4KBの仮想ページ割り当てに使用中の64
KB実ページの内、一部の分割領域が未割り当てである
ものに対するテーブル60のエントリのキュー(部分未
開り当て64KBページキユー910(第5C図))が
形成される。9■はこのキューの先頭エントリを示すポ
インタである。また、各ジョブについて各ジョブが4K
Bの仮想ページ割り当てに使用中の64KB実ページの
内、全部の分割領域が割り当て済みであるものに対する
テーブル60のエントリのキュー(全割り当て済み64
KBページキユー920(第5D図))が形成される。
92はこのキューの先頭エントリを示すポインタである
また、各ジョブが使用中の64KB仮想ページが割り当
てられている64KB実ページ31Aに対するテーブル
40のエントリ41のキュー(割り当て済み64KBペ
ージキユー1760 (第11図〉)が形成される。1
76はこのキューの先頭エントリを示すポインタである
第3A図、第3B図に各管理テーブルエントリ51、エ
ントリ61の構造を示すが、第1実施例ですでに説明し
たため詳細説明は省略する。
また、64KB専用領域管理テーブル40の1つのエン
トリ41の内の情報は第3A図のエントリ51と全く同
じである。
尚、第3B図は84KB領域管理テーブル60の1つの
エントリ61内の情報を示す図であるが、64KB仮想
ページが割り当てられる場合には第1実施例とはセット
するフィールドが異なる。すなわち、フィールド97.
98.99は使用しない。
次に、第1実施例に対して追加された各キューについて
述べる。
第10A図は未割り当て4KB共用キユーを示す、この
キューは第1実施例のキュー720(第ページ領域2O
A内の領域を64KB単位で管理する。仮想ページが割
り当てられていない連続する16個の4KB実ペ一ジ2
1A群毎に設けられたテーブル60のエントリ61Gの
列および前記4KB実ペ一ジ21A群の各々に対するエ
ントリ51Gの列とキューポインタ172とから形成さ
れる。各エントリのキューのされ方は前記キュー720
と同様であり省略する。
第10B図は部分割り当て済み4KBページ共用キユー
1730を示す。このキューは第1実施例のキュー91
0(第4C図)と同形式であるが。
第1実施例とは異なりジョブ別に作成されずシステム全
体で唯一1個のキューを形成する。
このキューは実記憶10Aの4KBページ領域2OA内
の領域を連続する16個の4KB実ペ一ジ21A群毎の
64KB領域の内、前記連続する16個の4KB実ペ一
ジ21A群のいづれかが4KB仮想ページに割り当てら
れているテーブル60のエントリ61Hの列および前記
4KB実ぺ一キューポインタ173とから形成される。
各エントリのキューのされ方は前記キュー910と同様
であり省略する。なお、このキューがシステム全体で唯
一1個のキューを形成するのは、前記キュー910とは
異なりこのエントリ61H内はもともと16個の4KB
実ペ一ジ21A群により構成されるため、キー記憶がエ
ントリ51H対応に存在し、各々のエントリ51Hに対
応する4KB実ページは異なる記憶キーの仮想ページや
ジョブに割り当て可能である為である。第10C図は未
割り当て64KBページ専用キユーを示す。このキュー
は64KBページ専用領域30A上の仮想ページが割り
当てられていないテーブル40のエントリ41の列とキ
ューポインタ175とから形成される。キューのされ方
は第1実施例のキュー710と同様であり省略する。第
11A図は割り当て済み64KBページキユーを示す。
このキューはジョブ別に設けられたキューで、実ページ
サイズを問わずそのジョブの64KB仮想ページに割り
当てられている管理テーブル40のエントリ41(領域
30A上)の列および管理テーブル60のエントリ61
J(領域2OA上)、611(領域30上)の列とキュ
ーポインタ176とから形成される。
次に実記憶割り当てプログラム2Aの動作を説明する。
第12A、12B図はページ割り当てプログラム2Aの
概略フローを示す図である。あるプログラム(ジョブ)
の実行中に仮想記憶上のある領域をアクセスしたとき、
その仮想領域に対応する実記憶領域が割り当てられてい
ない場合に、ページフォールト割り込みが発生し、これ
を契機に仮想領域に実記憶領域を仮想ページ単位に割り
当てるための実記憶割り当て要求がおこり、実記憶割り
当てプログラム2Aが起動されるのは第1実施例と同様
である。
実記憶割り当てプログラム2Aが起動されると、まずス
テップ2000でページフォールト割り込みが発生した
仮想アドレスを調べる。仮想アドレに示す64KB仮想
ページの割り当てを実施する。
仮想アドレスが2GB以下であれば4KB仮想ページの
割り当てを実施する。4KB仮想ページの割り当ての場
合には、まず、ステップ210で第1実施例で述べた要
求元ジョブ割り当て済み64KBページ内サーチ処理を
実施する。この処理の詳細は前述の通りであり省略する
が、この処理は64KBページ内を分割使用した場合に
生じる64KBページ内の部分末剤り当て分割領域を利
用するための工夫であり、要求元ジョブに既に部分的に
割り当て済みの64KBページ内の未割り当て分割領域
を優先してそのジョブに割り当てる。
ジョブに最初にページを割り当てる場合はそのジョブに
対して部分的に未割り当ての64KBページは存在しな
い。従って、サーチ210は失敗するのでこのサーチ2
10については後に説明する。
ステップ2010でサーチ210において部分的に未割
り当てのページが見つからなかったことを判断すると、
次に、部分割り当て済み4KB共用するが、この場合も
同様に最初はキューが存在しないためステップ2100
は失敗するのでこの処理についても後に説明する0次に
未割り当て4KB共用キユー1720 (第10A図)
から未使用ページをサーチするためステップ2200で
そのキューポインタ172がゼロであるか否かを調ベゼ
ロでなければ、ステップ2210でこのキュー1720
の先頭に接続されるエントリ61Gを選択する。さらに
、このエントリ61Gに連なる16個の4KBペ一ジ2
1A群に対するエントリ51Gの列の先頭のエントリを
選択しそれに対応する4KBページ21Aを割り当て対
象とする。
次に、ステップ2220で管理テーブルエントリおよび
キューの更新を行う。すなわち、エントリ61Gの内部
ポインタF(第3B図)で示されるエントリ61Gに連
なる先頭のエントリ51Gを選択し、そのフィールド9
1A、92A、(第3図A)に割り当て対象となった仮
想ページのアドレスと割り当て要求元のジョブのIDを
セットし、減数96を+1しくその初期値は0である)
する。
次に、キューの更新を以下のように行う。即ち。
未割り当て4KBページ共用キユー172oがら(第1
0A図)上記選択されたエントリ61Gおよびこれに連
なる16個のエントリ51Bをはずし、このエントリ6
1Gおよび上記16個のエントリ51Gの中の、上記選
択されたエントリ51G以外の15個(未割り当ての4
KBペ一ジ21A群に対するテーブル50のエントリ)
を部分割り当て済み4KBページ共用キユー1730 
(第10B図)に接続する。さらに、上記選択されたエ
ントリ51Gをそのジョブに対して設けられた割り当て
済み4KBページキユー81o(第5A図〉に接続する
さらに割り当て対象となった仮想ページに指定されてい
る記憶キー(ジョブから明示的に指定されていない場合
は、そのジョブのその時点のプログラムキー値)を割り
当て対象となったエントリ51Gに対応するキー記憶5
(第1図)のエントリ6のSK7にセットする。なお、
この4KB実べ−ジのアドレスは、選択されたエントリ
51Gが管理テーブル5o中の何番目のエントリである
か。
すなわち、エントリ51Gのテーブルインデックスによ
り決定することができる。この4KB実ページアドレス
に基づいてハードウェア命令を用いて記憶キーセットす
る。
次に、ステップ2600により、実記憶割り当てが要求
された仮想ページに対応するアドレス変換テーブル内の
エントリに選択した分割領域の実アドレスのセットとこ
のエントリのバリデーションを実施する。こうして;の
実記憶領域が使用可能となる。こうして、未割り当て4
KBページ共用キユー1720内の最初の割り当てが終
了する。
以上の処理における、ステップ2200でキューポイン
タ(172)がゼロであれば領域20A上には未割り当
てページは無して判断し、次に未割り当て64KBペー
ジキユー720(第4B図)から未割り当て64KBペ
ージのサーチを実施し、未割り当て64KB内の一つの
分割領域を割り当−720(第4B図)を用いて、その
ジョブに割り当てるべき未使用の64KBページを見つ
ける。
このために、まずステップ2300でこのキュー720
のポインタ72の値のゼロ判定を行いこのポインタに接
続されたエントリ61Bの有無調べる。
キューポインタ72がゼロでなければ、ステップ231
0にてそれに連なるキュー720の先頭のエントリ61
B&選択する。そのエントリ6よりに連なる16個の分
割領域に対するエントリ51Bの列の先頭のエントリを
選択しそれに対応する分割領域を割り当て対象とする。
次に、ステップ2320で管理テーブルエントリおよび
キューの更新を行う。すなわち、エントリ61Bの内部
ポインタF(第3B図)で示されるエントリ61Bに連
なるエントリ51Bを選択し、前記と同様にそのフィー
ルド9LA、92A。
(第3@A)に割り当て対象となった仮想ページのアド
レスと割り当て要求元のジョブのIDをセみ分割領域数
96を+1しくその初期値はOである)、フィールド9
2BにそのジョブのジョブIDをセットする。
次に、キューの更新を以下のように行う。即ち、未割り
当て64KBページキユー720から(第4B図)上記
選択されたエントリ61Bおよびこれに連なる16個の
エントリ51Bをはずし、このエントリ61Bおよび上
記16個のエントリ51Bの中の、上記選択されたエン
トリ51B以外の15個(未割り当ての分割領域に対す
るテーブル50のエントリ)をそのジョブに対して設け
られた部分割り当て済み64KBページキユー910(
第5C図)に接続する。さらに、上記選択されたエント
リ51Bをそのジョブに対して設けられた割り当て済み
分割領域キュー820(第5B図)に接続する。さらに
、割り当て対象となった仮想ページに指定されている記
憶キー(ジョブから明示的に指定されていない場合は、
そのジョブのその時点のプログラムキー値)をフィール
ド97にセットし、割り当て対象となった分割領域の含
まれる64’KB実ページに対応するキー記憶5(第1
図)のエントリ6にフィールド97にセットした値と同
じキー値をセットする。なお、この64KB実ページの
アドレスは選択されたエントリ61Bがテーブル60中
の何番目のエントリであるか(すなわち、それに対応し
て定まることエントリ61Bのテーブルインデイクス)
から決定することができる。この64KB実ページのア
ドレスに基づいて八−ドウエア命令を用いて上記記憶キ
ーをキー記憶5の対応するエントリ6のフィールドSK
7 (第8図)に書き込む。また。
この記憶キーの書き込みは未割り当で64KBページ内
から分割領域を最初に割り当てる場合のみ実施する。次
に、前記同様にステップ2600により、実記憶割り当
てが要求された仮想ページに対応するアドレス変換テー
ブル内のエントリに選択した分割領域の実アドレスのセ
ットとこのエントリのバリデーションを実施する。こう
してこの実記憶領域が使用可能となる。こうして、未割
り当て64KBページキユー910からの最初の分別領
域の割り当てが終了する。
上記の処理における、ステップ2300においてキュー
ポインタ(72)がゼロであればキュー910にはエン
トリが存在しないと判断し未割り当て4KBページキユ
ー710からの割り当てを試みる。この処理は実記憶1
0Aの4KB実ページ専用領域20内の未割り当ての一
つの実ページを割り当てるべき実記憶領域として選択す
る。この選択は、未割り当て4KBページキユー710
(第4A図)に接続されたエントリが有るかどうかをス
テップ2400で調べ、有ればステップ2410でキュ
ー710の先頭につながるエントリ51Aを選択するこ
とにより行われる。次にステップ2420において、こ
の選択されたエントリ51A内に割り当て要求もとのジ
ョブのIDおよび割り当て対象の仮想ページのアドレス
を書き込む。さらに、このエントリ51Aを上記キュー
710よりはずし、そのジョブに対して設けられた割り
当てず見4KBページキュー810(第5A図)に接続
する。さらに、前記エントリ51Gの場合と同様に記憶
キーのセットを行い、ステップ2600においてアドレ
ス変換テーブルの書き替えを先に述べたのと同じように
行う。こうして4KB実ページへの割り当てが終了する
。その後、4KB仮想ページに対する新たな実記憶割り
当て要求がなされる毎に同じように処理される。この際
、先に詳細を省略した要求元ジョブ割り当て済み64K
Bページサーチ210も実行される。以下、この処理に
ついて述べる。
ステップ210の処理は既に第1実施例で詳述したので
省略するが、ステップ210が完了すると、ステップ2
010でこのジョブに設けられた部分割り当て済み64
KBページキユー910内に割り当て可能な部分未開り
当ての64KBページが有ったか無かったかを判断し、
有ればステップ834Cにてそのエントリおよびキュー
の更新を行う、すなわち、そのエントリ61Eに接続さ
れてた未使用分割領域のエントリ51Eを一つ選択し、
このエントリに対応する分割領域を割り当て領域とすべ
く、この選択されたエントリ51EにそのジョブのID
および割り当て対処となった仮想ページのアドレスをセ
ットする。
さらに、上記エントリ61E内の割り当て済み分割領域
数を+1する。
上記エントリ51Eを上記キュー910からはずし、そ
のジョブに対して設けられている割り当て済み分割領域
キュー820に接続する。もし、上記更新後の割り当て
済み分割領域数が16に等しいときは、割り当て対象と
なった分割領域を含む64KB実ページは未割り当ての
分割領域がなくなったことになる。したがって、この時
には、この64KB実ページに対応する前記エントリ6
1Eもキュー910からはずし、全割り当て済みキュー
920(第5D図)にエントリ61Fとして接続する。
こうして、ステップ234Cがするとその後ステップ2
600が前と同様になされる。上記のステップ2010
で割り当て可能な部分未開り当ての64KBページが無
かったか場合には、次に前記の説明で後回しにしたもう
一つの処理、すなわち、部分割り当て済み4KBページ
共用キユー1730 (第10B図)がらの割り当てを
行う、この処理はステップ2100でこのキューのポイ
ンタ173がゼロでない場合に実施され、ステップ21
10でキュー1730の先頭のエントリ61Hを取り出
す。そのエントリ61Hに連なる4KBペ一ジ21A群
に対するエントリ51Hの列の先頭のエントリを選択し
これを割り当て対象とする。
次に、ステップ2120で管理テーブルエントリおよび
キューの更新を行う。すなわち、エントリ61Hの内部
ポインタF(第3B図)で示されるエントリ61Hに連
なるエントリ51Hを選択し、そのフィールド91A、
92A、(第3図A)に割り当て対象とな漬た仮想ペー
ジのアドレスと割り当て要求元のジョブのIDをセット
し、′a択したエントリ61B内の割り当て済み分割領
域数96を+1しくその初期値はOである)する。さら
に前記エントリ51Gの場合と同様に記憶キーをセット
する。次に、上記エントリ51Hを上記キュー1730
よりはずし、そのジョブに対して設けられた部分割り当
て済み4KBページキユー810(第5A図)に接続す
る。もし、上記更新後の割り当て済み分割領域数が16
に等しい時は、上記エントリ61H内の全ての領域が使
用されたことを表す。したがって、この場合には前記エ
ントリ61.Hもキュー1730からはずす。こうして
、ステップ2120が終了するとその後のステップ26
00が前と同様になされる。
また、上記のいずれの処理においても割り当て可能な領
域が無い場合には後で述べるページアウトプログラム7
A(第14A、第14B図)が動作し、実記憶に使用可
能なページを一定量確保できるまでステップ2500で
当該割り当て要求元ジョブを停止させて実記憶の空きを
待たせる。この場合は、ページアウトプログラム7Aに
対していずれのサイズの仮想ページを割り当てるための
領域が不足しているかを通知する1以上の処理を実ペー
ジ割り当て要求がなされるたびに繰り返せばよい。
発生アドレスが2GB以上の場合、即ち、64KB仮想
ページの割り当て処理について第12B図を用いて説明
する。64KB仮想ページの割り当て処理では、まず、
未割り当て64KBページ専用キユー1750 (第1
0C図)から未使用ページをサーチするためステップ3
000でそのキューポインタ175がゼロであるか否か
を調ベゼロでなければ、ステップ3010でこのキュー
1750の先頭に接続されるエントリ41選択し、これ
を割り当て対象とする。次に、ステップ3020でテー
ブルエントリおよびキューの更新を行う。
すなわち、そのエントリ41フイールド91A。
92A、(第3図A)に割り当て対象となった仮想ペー
ジのアドレスと割り当て要求元のジョブのIDをセット
する。次に、キューの更新を以下のように行う、即ち、
未割り当て64KBページ専用キユー1750から(第
10C図)上記選択されたエントリ41をはずし、その
ジョブに対して設けられた割り当て済み64KB (仮
想)ページテップ3500により、実記憶割り当てが要
求された仮想ページに対応するアドレス変換テーブル内
のエントリに選択したエントリ41に対する実アドレス
のセットとこのアドレス変換テーブルエントリのバリデ
ーションを実施する。
こうしてこの実記憶領域が使用可能とする。こうして、
未割り当て64KBページ専用キユー1750内のから
の割り当てが終了する。
以上の処理における。ステップ3000でキューポイン
タ(175)がゼロであれば領域30A上には未割り当
てページは無しと判断し1次に未割り当て64KBペー
ジキユー720(第4B図)から未割り当て64KBペ
ージのサーチを実施し。
未割り当て64KBの一つを割り当てる。すなわち、未
割り当て64KBページキユー720(第4B図)を用
いて、そのジョブに割り当てるべき未使用の64KBペ
ージを見つける。このために、まずステップ3100で
このキュー720のポインタ72の値のゼロ判定を行い
このポインタに接続されたエントリ61Bの有無調べる
キューポインタ72がゼロでなければ、ステップ311
0にてそれに連なるキュー720の先頭のエントリ61
Bを選択し、それに対応する領域を割り当て対象とする
。次に、ステップ312゜で管理テーブルエントリおよ
びキューの更新を行う。すなわち、エントリ61Bのフ
ィールド91B、92B、(第3図B)に割り当て対象
となった仮想ページのアドレスと割り当て要求元のジョ
ブのIDをセットし、選択したエントリ61B内の割り
当て済み分割領域数96を+16(その初期値はOであ
る)する。
次に、キューの更新を以下のように行う。即ち。
未割り当て64KBページキユー720から(第4B図
)上記選択されたエントリ61Bをはずし、そのジョブ
に対して設けられた割り当て済み64KBページキユー
1760 (第11図)に接続する。次ぎに、前記同様
にステップ3500により、実記憶割り当てが要求され
た仮想ページに対応するアドレス変換テーブル内のエン
トリに選択した領域の実アドレスをセットしアドレス変
換テープルエントリのバリデーションを実施する。こう
してこの実記憶領域が使用可能となる。
上記の処理における、ステップ3100においてキュー
ポインタ(72)がゼロであればキュー910にはエン
トリが存在しないと判断し未割り当て4KBページ共用
キユー1720 (第10A図)からの割り当てを試み
る。この処理は実記憶10Aの4KB実ページ共用領域
2OA内の連続する16個の4KBペ一ジ21A群より
なる未割り当ての64KB領域を割り当てるべき実記憶
領域として選択する。この選択は、未割り当て4KBペ
ージ共用キユー1720に接続されたエントリが有るか
どうかをステップ3200で調べ、有ればステップ32
10でキュー1720の先頭につながるエントリ61G
を取り出すことにより行われる。次に、ステップ322
0で管理テーブルエントリおよびキューの更新を行う。
すなわち、エントリ61Gのフィールド91B、92B
(第3図B)に割り当て対象となった仮想ページのアド
レスと割り当て要求元のジョブのIDをセットし、選択
したエントリ61B内の割り当て済み分割領域数96を
+16(その初期値は0である)する。
次に、キューの更新を前記同様に行う。即ち。
未割り当て4KBページ共用キユー1720から(第1
0A図)上記選択されたエントリ61Gをはずし、その
ジョブに対して設けられた割り当て済み64KBページ
キユー1760 (第11図)に接続する。次に、前記
同様にステップ23500においてアドレス変換テーブ
ルの書き替えを先に述べたのと同じように行う、こうし
て64KB仮想ページに対する実記憶領域の割り当てが
終了する。その後、64KB仮想ページに対する新たな
実記憶割り当て要求がなされる毎に同じように処理され
る。
また、上記のいずれの処理においても割り当て可能な領
域が無い場合には前記同様に未使用ページを一定確保で
きるまでステップ2500で当該割り当て要求元ジョブ
を停止させて実記憶の空きをこの場合は、ページアウト
プログラム7Aに対して64KBのサイズの仮想ページ
を割り当てるための領域が不足していることを通知する
。以上の処理を64KB仮想ページに対する実ページ割
り当て要求がなされるたびに繰り返せばよい。
こうして、仮想ページサイズと実ページサイズが同一の
場合は元よりサイズの異なった仮想領域と実記線領域間
の相互割り当てができる。
次にページ計測プログラム3(第9図)の動作を説明す
る。第7A、7B図はページ計測プログラム3の概略フ
ローを示す図である。第1実施例では点線で示したステ
ップ370.380は使用しなかったが本実施例では、
これらを含め全てを使用する。以下、ページ計測プログ
ラム3の第2の実施例における動作を説明する。
本実施例においてもページ計測処理は、仮想ページとそ
れに割り当てられた実記憶が属する実ページサイズが異
なる場合、その仮想ページと実ページのサイズの大きい
ほうの領域毎にページ計測以下、詳細説明を行う。ステ
ップ310〜340、およびステップ390,400は
既に第1実施例で詳細を述べたのでこれらについては簡
単化のため詳しくは述べない。まず、ページ計測プログ
ラム3は、ページ計測すべきジョブに対して設けられた
全割り当て済み64KBページキユー920(第5B図
)の先頭ポインタ92を変数QUEUEにセットし、ス
テップ320で内部サブルーチン5UBIをコールする
このキュー920は4KBの仮想ページが割り当てられ
ている64KB実ページ領域30に対するテーブル60
のエントリを表すキューの一つで前述の64KE実ペー
ジ内の全分割領域が各々16個の仮想ページに割り当て
済みである64KBページを示し、上記の処理ではこれ
らのページに対するページ計測を64KB単位に行った
ことになる。
次に、64KBページ領域30上に割り当てられている
4KB仮想ページの内、もう一つの部分0図)に接続さ
れているものについて、ステップ330,340で同様
に64KB単位にページ計測を実施する。次に、本実施
例で初めて現れる64KB仮想ページに割り当てられて
いる領域のページ計測を実施する。64KB仮想ページ
に割り当てられている実記憶領域は第12B図の64K
B写ページの割り当てで述べた様に実記憶上の領域の種
類によらず全てが第11図に示すキュー1760に接続
されている。したがって、第7A図に示すように、この
キュー1760のキューポインタ176をステップ37
0において変数QUEUEにセットし、ステップ380
で内部サブルーチン5UBIをコールすれば全ての64
KB仮想ページに割り当てられている領域のページ計測
が行える。すなわち、サブルーティン5UBiはコール
されると、ステップ510において、変数QUEUEの
値がゼロか否かによりページ計測すべきエントリ41.
エントリ611.エントリ61Jのいづれかがあるか否
かを調べる0次にエントリがある場合にはステップ44
0により変数QUEUEで指されるエントリ41A、エ
ントリ611、エントリ61Jのいづれかに対応する6
4KB実領域の使用の有無を調べる。これは、第1の実
施例と同様にハードウェア命令により第1図に示すキー
記憶エントリ6上の参照ビットR7を読み出すことによ
り行う。
これらのビットがゼロであれば当該ページは、前回のペ
ージ計測時点から今回のページ計測までの間使用されな
かったことが分かる。次に、当該ページが使用されてい
れば、ステップ450において不参照期間数93A(第
3A図または第3B@)をクリアし、ステップ460で
当該エントリ(エントリ41A、エントリ611.エン
トリ61Jのいずれか)を当該キュー1760の最終位
置に移動する。このエントリの移動は、不参照期間数9
3Aの大きい順にキューを構成するためである。
次に、当該ページが使用されていなければステップ47
0において不参照期間数をカウンタアップする。
ンターバル毎にそのページが使用されていない場合に不
参照期間数をカウントアツプし、使用されていた場合に
は不参照期間数をゼロにするため、この不参照期間数が
大きいほど使用頻度が低いことを示す。
次にステップ480により変数QUEUEに現在処理し
ているエントリ内のフォワードポインタ(FWP2)Q
UEUEにセットし、新たなエントリに対して今まで述
べてきたステップ510〜480の処理を変数QUEU
Eの値がゼロすなわち、キュー1760に接続された全
てのエントリを処理し終わるまで繰り返す。以上で、6
4KB仮想ページに割り当てられている全ての実施例に
対して64KB単位にページ計測を実施した。最後に、
4KBページ領域20、および20A上に割り当てられ
ている4KB仮想ページに対してページ計測を実施する
。この場合には、ページ計測処理は4KB単位に実施す
る。4KBページ領域20、および20A上に割り当て
られている4KB仮想ページは全て、割り当て済み4K
Bページキユー810(第5A図)に接続されている。
この場合も、前記同様にステップ390で変数QUEU
Eにこのキューの先頭エントリ51Cを示すポインタ8
1をセットしステップ400で内部サブルーチン5UB
Iをコールする。サブルーチン5UBIは、前記キュー
810に接続されているエントリ51Cを対象として前
記同様にステップ510〜480の処理を繰り返すこと
により当該キュー上に接続されるエントリ51Cに対す
るページ計測処理を4KB単位に行う。以上の処理を実
行中のジョブがCPUがある一定時間使用するつど実施
すればよい。こうして、第2実施例においてもページ計
測処理はその仮想ページサイズとその仮想ページに割り
当てられている実記憶の実ページサイズの大きいほうの
サイズでできページ計測数を低減することができる。
次にページアウトプログラム?A(第9図)の動作を説
明する。
第14図はページアウトプログラム7A概略フローを示
す図である。本実施例におけるページアウド処理も第1
実施例と同様に、仮想ページとそれに割り当てられた実
記憶が属する実ページサイズが異なる場合、その仮想ペ
ージと実ページサイズの大きいほうのサイズ単位にペー
ジアウトを行う所にある。以下、図にしたがって動作を
説明する。
第1実施例と同様に1本ページアウトプログラム7Aは
実記憶の使用可能な領域が、ある一定量以下になると起
動され、また、不参照期間数がnに以上のページをNP
AGE個ページアウトするべく起動されるものとする。
ページアウトプログラム7Aが起動されると、まず、ス
テップ400でページアウトしたページ数をカウントす
る変数POUTをOにする。次に、ステップ4100で
いずれのサイズの仮想ページ割り当て用の領域を処理す
るのかを判断する。これは、ページアウトプログラム7
Aが起動されるときに起動者により指定される。仮想4
KB用の処理であれば、第1実施例で述べたページアウ
トプログラム7(第13A図、13B図)を実行し処理
する。この詳細は説明済みである。ステップ4100で
仮想64KB用の処理であると判断すると、次にステッ
プ4300でページアウトすべきジョブに対して設けら
れた割り当て済み64KBページキユー1760(第1
1図)の先頭ポインタ176を変数RPNにセットし、
ページアウトすべきキュー1760の先頭エントリ(エ
ントリ41A、エントリ611、エントリ61Jのいづ
れか)をセットする。その後ステップ4400において
、変数RPNの値がゼロか否かによりページアウトすべ
きエントリあるか否かを調べ、エントリが無ければ。
何もせずリターンする。次にエントリがある場合には、
次にステップ4410でページアウトして良いページか
どうかを調べる。これは、そのページのページアウトが
禁止されている(ページ固定されている)とか、既に前
回のページアウト処理でページアウト中であると言った
従来からのチエツクで、仮想記憶方式の計算機において
通常酸されているチエツクである。ページアウト不可で
あれば、キューに接続された次のページを処理するため
、ステップ4760において変数RPNに当該エントリ
(エントリ41A、エントリ611゜エントリ61Jの
いづれか)のフォワードポインタをセットとステップ4
400からの処理を繰り返す、上記のステップ4410
でページアウト可能であれば、ステップ4500にて、
当該エントリの不参照期間数がページアウトプログラム
起動時に指示されたn以上かを調べる。n以下であれば
、ページ計測プログラム3Aで述べたように各エントリ
は不参照期間数が大きい順に並んでいるため以降のエン
トリ61Eもn以下であり、当該キューには今回のペー
ジアウト起動条件を満たすページが無いためリターンす
る。
n以下であれば、次に、ステップ4600で当該エント
リに対応する64KBの実記憶領域をページアウトしく
但し当該エントリの対応するキー記憶上のチェンジビッ
トC(第8図5)がoffの場合はページアウトは行わ
ない)仮想ページに対応するアドレス変換テーブルのエ
ントリを無効とする1次にステップ4700にて当該エ
ントリ(エントリ41A、エントリ61工、エントリ6
1Jのいずれか)がいずれの実記憶領域に属するかを調
べる。これは、第8図述べた実記憶10Aの4つの領域
(領域20.領域20A、領域30、領域30A)の各
々の大きさがシステムの初期化(IPL)時に定まる様
に戊っており、各領域の先頭および末尾の実アドレスが
あらかじめ分かっている。このアドレスと当該エントリ
のポインタである変数RPNとを比較することにより当
該エントリが属する領域が分かる。当該エントリが領域
30Aに属している場合には、ステップ4710が実行
されキュー1760 (第11図)よりエントリ41A
をはずし、未割り当て64KBページ専用キユー175
0 (第10C図)へ接続する0次にステップ4740
でページアウト数を示す変数POUTを1増し、ステッ
プ4750でPOUTがページアウトすべき個数に達し
たか否かをチエツクするため変数NPAGEと比較する
。ページアウト数がNPAGE未満であれば、つぎにス
テップ4746で変数RPNに当該エントリ41Aのフ
ォワードポインタをセットしステップ4400からの処
理を繰り返す。
また、前記ステップ4700で領域30に属する場合に
はステップ4720が実行されキュー1760よりエン
トリ611をはずし、さらに、当該エントリ611上の
割り当て済み分割領域数96(第3B図)をOにセット
し、さらに、エントリ611を未割り当て64KBペー
ジキユー720(第4B図)に接続する。次に、前記同
様にステップ4740でページアウト数を示す変数PO
1JTをl増し、ステップ4750でPOUTがページ
アウトす°べき個数に達したか否かをチエツクするため
変数NPAGEと比較し、ページアウト数がN P A
 G E未満であれば、つぎのステップ4746で変数
RPNに当該エントリ611のフォワードポインタをセ
ットしステップ4400からの処理を繰り返す。
また、前記ステップ4700で領域20Aに属する場合
にはステップ4730が実行されキュー1760よりエ
ントリ61Jをはずし、さらに、当該エントリ61J上
の割り当て済み分割領域数96(第3B図)をOにセッ
トし、さらに、エントリ61Jを未割り当て4KBペー
ジ共用キユー1720(第10A図)に接続する。次に
、前記同様にステップ4740でページアウト数を示す
変数POUTを1増し、ステップ4750でPOUTが
ページアウトすべき個数に達したか否かをチエツクする
ため変数NPAGEと比較し、ページアウト数がNPA
GE未満であれば、つぎにステップ4746で変数RP
Nに当該エントリ61Jのフォワードポインタをセット
しステップ440oからの処理を繰り返す。以上に処理
をステップ4400で当該キューの全エントリを処理し
終わるか、ステップ4500で起動時の条件以下の不導
前期間数を持つエントリが現れるまで、もしくは、ステ
ップ4750で所定のページ数(NPAGE)をページ
アウトするまで繰り返す。
以上で、64KB仮想ページに割り当てられている実記
憶領域を64KB単位にページアウトを実施し処理を終
了する。以上の処理で十分な認使用実記憶領域が得られ
なかった場合には、ページアウトプログラム7A起動時
の1つの条件であるページアウトすべき不参照期間数を
順次小さくして繰り返しページアウトプログラム7Aを
起動すれば良い。こうして、仮想ページサイズ、および
実ページサイズが各々2種存在する本第2実施例におい
てのページアウト処理を仮想ページサイズとその仮想ペ
ージに割り当てられた実記憶の実ページサイズの内大き
いほうのサイズで実施することができる。
本実施例によれば仮想ページサイズと実ページサイズが
必ずしも一致しなくてもよく、自由度の高い実記憶り拡
張が可能となり、実ページサイズを64KBに拡張する
ことにより従来の4KBに比べてオペレーティングシス
テムで管理する実ページ数が1716となり管理オーバ
ヘッドの削減ができる。
〔発明の効果〕
本発明によれば、実記憶/仮想記憶上の異なるサイズに
より構成された各領域間で相互にページの割り当てが可
能となるため、主記憶の効率的な管理が可能となる。ま
た、ページ計測処理を仮想ページサイズ/実ページサイ
ズの内大きい方の単位で実施するため計測数が城すオー
バヘッドの大幅削減が図れる。
【図面の簡単な説明】
第1図は本発明の第1の実施例の仮想記憶と実記憶の構
成図、第2図は本発明の第1実施例における構成回位と
実記憶の対応図、第3A、3B。 を唸、4A、4B、5A〜5D図は本発明の第1実施例
における各種実記憶管理テーブルの説明図、第6図(よ
第1実施例におけるページ割り当てプログラムの処理フ
ロー図、第7A、7B図は本発明の第1実施例、第2実
施例におけるページ計測プログラムの処理フロー図、第
8図は本発明の第2の実施例の仮想記憶と実記憶の構成
図、第9図は本発明の第2実施例における構成回位と実
記憶の対応図、第10A−10C,11図は第2実施例
における、各種実記憶管理テーブルの説明図、第12A
、12B図は第2実施例におけるページ割リ当てプログ
ラムの処理フロー図、第13.13B図は本発明の第1
実施例におけるぺ・ウドプログラムの処理フロー図、第
14図(実施例におけるページアウトプログラムの30
−図。 符号の説明 2・・・ページ割り当てプログラム、3,34−ジ計測
プログラム、10.IOA・・・実記111・・・仮想
記憶、20・・・4KB実ページ領大30・・・64K
B実ページ領域、50・・・第141−プル(4KB単
位)、60・・・第2管理チー(64KB単位)、21
・・・4KB実ページ、31・・・64KB実ページ、
51・・・4KB単(1管理テーブルのエントリ、61
・・・64KIの第2管理テーブルのエントリ、7.7
A・シアウドプログラム。

Claims (1)

  1. 【特許請求の範囲】 1、それぞれに対応して記憶保護のための記憶キーが記
    憶されるべき複数の実ページを含む実記憶を、仮想記憶
    の複数の仮想ページに割り当てる方法において、(a)
    第1のサイズの複数の仮想ページおよび該第1のサイズ
    のn(nは正整数)倍の第2のサイズの複1の実ページ
    をそれぞれ仮想記憶および実記憶に準備し、(b)各実
    ページを分割して得られる該第1のサイズを有する複数
    の分割領域をそれぞれ異なる仮想ページに割り当てるこ
    とを特徴とする実記憶割り当て方法。 2、(c)該複数の実ページの一つに含まれる分割領域
    がすべて未割り当てのときに、その一つの分割領域をあ
    るプログラムが使用する仮想ページに割り当てる場合、
    該仮想ページにその時与えられている記憶キーでもって
    その実ページをアクセスするのを許可する値を有する記
    憶キーを該一つの実ページに対する記憶キーとして記憶
    するステップをさらに有する第1項の実記憶割り当て方
    法。 3、該ステップにおいて、少くとも一つの分割領域が仮
    想ページに割り当て済みで少くとも一つの他の分割領域
    が仮想ページに割り当てられていない部分未分り当ての
    実ページであって、実記憶を割り当てるべき仮想ページ
    を使用するプログラムにその時与えられたアクセスキー
    でもってその実ページをへアクセスするのを許可する値
    を、該ページに対応して記憶された記憶キーが有する実
    ページを捜し、該一つの実ページ中の該他の分割領域を
    該実記憶を割り当てるべき仮想ページに割り当てる第2
    項の実記憶割り当て方法。 4、該一つの割り当て済みの分割領域が該プログラムが
    使用する仮想ページのいずれかに割り当てられた分割領
    域である第3項の実記憶割り当て方法。 5、該実ページを捜しえないとき、いずれの仮想ページ
    に対しても未割り当ての分割領域のみからなる他の実ペ
    ージを捜し、それらの分割領域の一つを該実記憶を割り
    当たるべき仮想ページに割り当てる第3項の実記憶割り
    当て方法。 6、いずれかの仮想ページに割り当て済みの分割領域を
    有する複数の実ページの各々について、それに含まれる
    分割領域のいずれかがプログラムにより参照されたか否
    かに依存してそれぞれの実ページがプログラムにより参
    照されたか否かを計測するステップをさらに有する第1
    項の実記憶割り当て方法。 7、それぞれの実ページに含まれる複数の分割領域を一
    緒にページアウトするステップをさらに有する第1項の
    実記憶割り当て方法。 8、該第1のサイズと同じサイズの複数の実ページをさ
    らに該実記憶にあらかじめ準備し、該第2のサイズを有
    する複数の実ページの一つにある一つの分割領域と該第
    1のサイズを有する複数の実ページ内、指定によりかわ
    る一方を選択して、新たに実記憶を割り当てるべき仮想
    ページに該一方を割り当てる第1項の実記憶割り当て方
    法。 9、該第1のサイズを有する複数の実ページをさらに該
    実記憶にあらかじめ準備し、該ステップ(b)において
    、(b1)該第1のサイズを有する複数の実ページの中
    に実記憶の割り当てを要求する仮想ページに対して割り
    当て可能な少くとも一つの分割領域があるかをあらかじ
    め定めた割当て条件により判別し、(b2)該一つの分
    割領域がある場合には、その分割領域を該仮想ページに
    割り当て、(b3)該一つの分割領域がない場合には該
    第1のサイズを有する該複数の実ページの一つを該仮想
    ページに割り当てる第1項の実記憶割り当て方法。 10、それぞれに対応して記憶保護のための記憶キーが
    記憶されるべき複数の実ページを有する実記憶内の領域
    を仮想記憶の複数の仮想ページに割り当てる方法におい
    て、(a)第1のサイズの複数の仮想ページおよび該第
    1のサイズの1/n(nは正整数)の第2のサイズを有
    する複数の実ページをそれぞれ仮想記憶および実記憶に
    あらかじめ準備し、(b)該複数の実ページを連続する
    n個のページからなる複数の実ページ群の各々を該仮想
    ページの異なるものに割り当てる実記憶割り当て方法。 11、該一つの仮想ページを使用するプログラムにその
    時与えられた仮想ページの記憶キーでもつてそのn個の
    実ページの群の各々の実ページをアクセスするのを許可
    する値の記憶キーを該n個の実ページの各々に対応して
    記憶するステップをさらに有する第11項の実記憶割り
    当て方法。 12、各実ページ群について、そこに含まれる実ページ
    のいずれかがプログラムにより参照されたかに依存して
    、それぞれの実ページ群が参照されたか否かを計測する
    ステップをさらに有する第11項の実記憶割り当て方法
    。 13、それぞれの実ページ群に含まれる実ページを一緒
    にページアウトするステップをさらに有する第12項の
    実記憶割り当て方法。 14、該ステップ(a)において、該第2のサイズを有
    する複数の仮想ページをさらに該仮想記憶にあらかじめ
    準備し、該ステップ(b)において実記憶を割り当てる
    べき第1の仮想ページが該第1のサイズを有する場合、
    該複数の実ページ群の内、仮想ページへの割り当てに用
    いられていないn個のページのみからなる第1の群内の
    実ページを該第1の仮想ページに割り当て、実記憶を割
    り当てるべき第2の仮想ページが該第2のサイズを有す
    る場合、該複数の実ページ群の第2の群に属し、n個の
    実ページの内、仮想ページの割り当てに用いられていな
    い一つの実ページに割り当てる第10項の実記憶管理方
    法。 15、該第1の仮想ページに実ページを割り当てた時に
    、そのときに与えられていたアクセスキーに実記憶への
    アクセスを許可する値の記憶キーを、該第1の実ページ
    群に含まれるn個の実ページの各々に対応して記憶し、
    該第2の仮想ページに実ページを割り当てた時に、与え
    られていたアクセスキーに対して実記憶へのアクセスを
    許可する値の記憶キーを、該第2の実ページ群内のn個
    の実ページの内、該一つの実ページに対応して記憶する
    ステップをさらに有する第14項の実記憶割り当て方法
    。 16、該複数の実ページ群の内、該第1のサイズを有す
    る仮想ページへ割り当てられた複数の第1種実ページ群
    の各群について、その実ページ群がプログラムが参照さ
    れたか否かを、その実ページ群内のいずれかの実ページ
    が参照されたか否かに依存して計測し、該複数の実ペー
    ジの内、該第2のサイズを有する仮想ページに割り当て
    られた少くとも一つの実ページを有する第2種の実ペー
    ジ群にいずれかに属する実ページの各々について、それ
    ぞれの実ページがプログラムにより参照されたか否かを
    計測するステップをさらに有する第14項の実記憶管理
    方法。 17、該第1種の実ページ群の各々に含まれるn個の実
    ページを一緒にページアウトし、該第2種の実ページ群
    の各々に含まれるn個の実ページのそれぞれを他の実ペ
    ージとは別にページアウトするステップをさらに有する
    第15項の実記憶管理方法。 18、(d)該第2のサイズを有する複数の第3種の実
    ページを該実記憶にさらに設け、(e)実記憶を割り当
    てるべき第2種の仮想ページに対して、該第3種の実ペ
    ージの内、仮想ページに割り当てられていない一つを捜
    し、(f)該一つの第3種の実ページが検出されたとき
    には、該実記憶を割り当てるべき第2種の仮想ページに
    該検出された一つの第3種の実ページを割り当て、(g
    )該一つの第3種の実ページが検出されなかったときに
    該ステップ(c)を実行する。 19、該ステップ(c)は、(c1)仮想ページに未だ
    割り当てられていない第2種の実ページが少くとも一つ
    あるかを判別し、(c2)該一つの第2種の実ページが
    あれば、それを実記憶割り当て対象の該仮想ページに割
    り当て、(c3)該一つの第2種の実ページがなければ
    、該連続するn個の第1種の実ページを割り当てるステ
    ップからなる第16項の実記憶割り当て方法。 20、それぞれに対応して記憶保護のための記憶キーが
    記憶されるべき複数の実ページを有する記憶を仮想記憶
    の複数の仮想ページに割り当てる実記憶割り当て方法に
    おいて、(a)第1のサイズの複数の第1種の仮想ペー
    ジと該第1のサイズのn倍(nは正整数)を有する第2
    のサイズの複数の第2種の仮想ページとをあらかじめ仮
    想記憶に準備し、(b)該第1のサイズを有する複数の
    第1種の実記憶と該第2のサイズを有する複数の第2種
    の実ページとを実記憶にあらかじめ準備し、(c)実記
    憶を割り当てるべき第1種の仮想ページに対して、該第
    1種の実ページの一つ又は該第2種の実ページの一つを
    分割して得られるn個の分割領域の一つを割り当て、(
    d)実記憶を割り当てるべき第2種の仮想ページに対し
    て、該第2種の実ページの一つ又は連続するn個の、仮
    想ページにまだ割り当てられていない第1種の実ページ
    を割り当てる実記憶割り当て方法。 21、ステップ(b)において該第1のサイズを有する
    第3種の複数の実ページおよび該第2のサイズを有する
    第4種の複数の実ページをあらかじめ該実記憶に準備し
    、ステップ(c)において、(c1)実記憶を割り当て
    るべき第1種の仮想ページに対して割り当て可能な少く
    とも一つの第3種の実ページがあるかをあらかじめ定め
    た第1の条件により判別し、(c2)該一つの第3種の
    実ページがある場合、それら該第1種の仮想ページに割
    り当て、(c3)該一つの第3種の実ページがない場合
    、該第1種の仮想ページに割り当て可能な少くとも一つ
    の第1種の実ページがあるかをあらかじめ定めた第2の
    条件により判別し、(c4)該一つの第1種の実ページ
    がある場合、それを該第1種の仮想ページに割り当て、
    ステップ(d)において、(d1)実記憶を割り当てる
    べき第2種の仮想ページに対して割り当て可能な少くと
    も一つの第4種の実ページがあるかをあらかじめ定めた
    第3の条件により判別し、(d2)該一つの第4種の実
    ページがある場合は、それを該第2種の仮想ページに割
    り当て、(d3)該一つの第4種の実ページがない場合
    は、該第2種の仮想ページに割当て可能な少くとも一つ
    の第2種の実ページがあるかをあらかじめ定めた第4の
    条件により判別し、(d4)該一つの第2種の実ページ
    があるときには、それを該第2種の仮想ページに割り当
    てる第20項の実記憶割り当て方法。
JP1180323A 1989-07-14 1989-07-14 実記憶割り当て方法 Expired - Lifetime JP2858795B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP1180323A JP2858795B2 (ja) 1989-07-14 1989-07-14 実記憶割り当て方法
DE69033064T DE69033064T2 (de) 1989-07-14 1990-07-13 Verfahren zur Zuordnung von reellen Seiten zu virtuellen Seiten mit davon verschiedenen Seitengrössen
EP90113477A EP0408070B1 (en) 1989-07-14 1990-07-13 Method for allocating real pages to virtual pages having different page sizes therefrom
US08/232,400 US5426752A (en) 1989-07-14 1994-04-25 Method for allocating real pages to virtual pages having different page sizes therefrom

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1180323A JP2858795B2 (ja) 1989-07-14 1989-07-14 実記憶割り当て方法

Publications (2)

Publication Number Publication Date
JPH0346043A true JPH0346043A (ja) 1991-02-27
JP2858795B2 JP2858795B2 (ja) 1999-02-17

Family

ID=16081205

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1180323A Expired - Lifetime JP2858795B2 (ja) 1989-07-14 1989-07-14 実記憶割り当て方法

Country Status (4)

Country Link
US (1) US5426752A (ja)
EP (1) EP0408070B1 (ja)
JP (1) JP2858795B2 (ja)
DE (1) DE69033064T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275917B1 (en) 1998-08-12 2001-08-14 Fujitsu Limited High-speed address translation system
US7028158B1 (en) 2001-11-02 2006-04-11 Beatty And Company Computing, Inc. Storage virtualization engine

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0659982A (ja) * 1992-08-10 1994-03-04 Hitachi Ltd 仮想記憶制御方法および装置
US5446854A (en) * 1993-10-20 1995-08-29 Sun Microsystems, Inc. Virtual memory computer apparatus and address translation mechanism employing hashing scheme and page frame descriptor that support multiple page sizes
US5802341A (en) * 1993-12-13 1998-09-01 Cray Research, Inc. Method for the dynamic allocation of page sizes in virtual memory
JPH07182239A (ja) * 1993-12-24 1995-07-21 Nec Corp セグメント分割管理システム
DE69428881T2 (de) * 1994-01-12 2002-07-18 Sun Microsystems, Inc. Logisch adressierbarer physikalischer Speicher für ein Rechnersystem mit virtuellem Speicher, das mehrere Seitengrössen unterstützt
US6081623A (en) * 1995-10-11 2000-06-27 Citrix Systems, Inc. Method for lossless bandwidth compression of a series of glyphs
US6016535A (en) * 1995-10-11 2000-01-18 Citrix Systems, Inc. Method for dynamically and efficiently caching objects by subdividing cache memory blocks into equally-sized sub-blocks
JP3786993B2 (ja) * 1995-12-14 2006-06-21 株式会社日立製作所 データ記憶ユニット及び該ユニットを用いたデータ記憶装置
US5732404A (en) * 1996-03-29 1998-03-24 Unisys Corporation Flexible expansion of virtual memory addressing
US6057857A (en) 1996-06-12 2000-05-02 Citrix Systems, Inc. Method for the lossless compression of lines in a distributed computer system
US6412056B1 (en) * 1997-10-01 2002-06-25 Compac Information Technologies Group, Lp Extended translation lookaside buffer with fine-grain state bits
US6857058B1 (en) * 1999-10-04 2005-02-15 Intel Corporation Apparatus to map pages of disparate sizes and associated methods
US6970992B2 (en) * 1999-10-04 2005-11-29 Intel Corporation Apparatus to map virtual pages to disparate-sized, non-contiguous real pages and methods relating thereto
US7490166B2 (en) 2000-05-26 2009-02-10 Citrix Systems, Inc. Remote control of a client's off-screen surface
US6681305B1 (en) * 2000-05-30 2004-01-20 International Business Machines Corporation Method for operating system support for memory compression
US6829693B2 (en) * 2001-02-28 2004-12-07 International Business Machines Corporation Auxiliary storage slot scavenger
JP4414349B2 (ja) * 2003-05-13 2010-02-10 富士通株式会社 入出力装置、計算機、計算機システム、入出力制御プログラム、os、ページ管理プログラム、及びページ管理方法
US7395278B2 (en) * 2003-06-30 2008-07-01 Microsoft Corporation Transaction consistent copy-on-write database
US8171169B2 (en) * 2005-03-14 2012-05-01 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment
US8423673B2 (en) 2005-03-14 2013-04-16 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment using compression
US8359449B2 (en) * 2009-12-17 2013-01-22 International Business Machines Corporation Prioritizing virtual real memory paging based on disk capabilities
US8290987B2 (en) 2010-07-12 2012-10-16 International Business Machines Corporation Processing of splits of control areas and control intervals
US20160004460A1 (en) * 2013-10-29 2016-01-07 Hitachi, Ltd. Computer system and control method
US9875189B2 (en) * 2015-06-12 2018-01-23 Intel Corporation Supporting secure memory intent
US10657274B2 (en) * 2015-06-29 2020-05-19 Samsng Electronics Co., Ltd. Semiconductor device including memory protector

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5838877B2 (ja) * 1977-03-16 1983-08-25 株式会社日立製作所 デ−タ処理装置
US4373179A (en) * 1978-06-26 1983-02-08 Fujitsu Limited Dynamic address translation system
JPS5712494A (en) * 1980-06-23 1982-01-22 Nippon Telegr & Teleph Corp <Ntt> Storage protecting system
JPS6024491B2 (ja) * 1981-07-24 1985-06-13 富士通株式会社 アドレス変換制御方式
JPS60204048A (ja) * 1984-03-28 1985-10-15 Hitachi Ltd 仮想記憶方式
US4758951A (en) * 1985-04-09 1988-07-19 Tektronix, Inc. Method for translating virtual addresses into real addresses
JPH0658649B2 (ja) * 1985-10-28 1994-08-03 株式会社日立製作所 仮想記憶装置における領域管理方法
JPS62237547A (ja) * 1986-04-09 1987-10-17 Hitachi Ltd アドレス変換方式
JPH0812640B2 (ja) * 1986-05-23 1996-02-07 株式会社日立製作所 アドレス変換方法および装置
JPS6337445A (ja) * 1986-08-01 1988-02-18 Hitachi Ltd 記憶方式
US4967353A (en) * 1987-02-25 1990-10-30 International Business Machines Corporation System for periodically reallocating page frames in memory based upon non-usage within a time period or after being allocated
JP2960415B2 (ja) * 1987-05-22 1999-10-06 株式会社日立製作所 記憶保護方法および装置
JPS6417138A (en) * 1987-07-13 1989-01-20 Nippon Telegraph & Telephone Main memory control system
JPS6417137A (en) * 1987-07-13 1989-01-20 Nippon Telegraph & Telephone Control system for large-capacity page
JP2507756B2 (ja) * 1987-10-05 1996-06-19 株式会社日立製作所 情報処理装置
JPH01109451A (ja) * 1987-10-23 1989-04-26 Hitachi Ltd 実記憶管理方式
JP2635058B2 (ja) * 1987-11-11 1997-07-30 株式会社日立製作所 アドレス変換方式
US5058003A (en) * 1988-12-15 1991-10-15 International Business Machines Corporation Virtual storage dynamic address translation mechanism for multiple-sized pages

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275917B1 (en) 1998-08-12 2001-08-14 Fujitsu Limited High-speed address translation system
US7028158B1 (en) 2001-11-02 2006-04-11 Beatty And Company Computing, Inc. Storage virtualization engine

Also Published As

Publication number Publication date
DE69033064D1 (de) 1999-05-27
US5426752A (en) 1995-06-20
EP0408070B1 (en) 1999-04-21
EP0408070A2 (en) 1991-01-16
EP0408070A3 (en) 1992-09-16
DE69033064T2 (de) 1999-12-23
JP2858795B2 (ja) 1999-02-17

Similar Documents

Publication Publication Date Title
JPH0346043A (ja) 実記憶割り当て方法
CN115599544B (zh) 内存管理方法、装置、计算机设备及存储介质
US5809516A (en) Allocation method of physical regions of a disc array to a plurality of logically-sequential data, adapted for increased parallel access to data
KR101367450B1 (ko) 멀티 스레드 어플리케이션을 위한 해시 테이블의 동시 리해싱의 수행
US5109336A (en) Unified working storage management
US5784699A (en) Dynamic memory allocation in a computer using a bit map index
CA2055295C (en) Logical mapping of data objects using data spaces
JP4206586B2 (ja) データベース管理方法および装置並びにデータベース管理プログラムを記録した記憶媒体
CN107066498B (zh) 键值kv存储方法和装置
US7949839B2 (en) Managing memory pages
CN110858162B (zh) 内存管理方法及装置、服务器
JP6885193B2 (ja) 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
JPH05274152A (ja) オブジェクト管理方式
US8274521B2 (en) System available cache color map
CN114556309A (zh) 内存空间的分配方法、装置及存储介质
CN120407201B (zh) 内存资源的分配方法、装置、电子设备、介质及产品
JP3175764B2 (ja) メモリスケジューリング方法及びメモリスケジューリングプログラムを格納する記憶媒体
US20100064110A1 (en) Method for reading out data from a storage medium
US20070050551A1 (en) Cache method and cache system for storing file&#39;s data in memory blocks divided from cache memory
JPS58164080A (ja) 領域管理処理方式
CN112997162A (zh) 一种删除内存中索引项的方法、装置
JP3020512B2 (ja) フアイルデータ管理方法
US7130857B2 (en) Method for accessing a memory unit in which sequences of notes are stored, corresponding memory unit and corresponding program
CN120067111B (zh) 数据存储方法、电子设备、存储介质及产品
JP2000047933A (ja) 双方向メモリ確保管理方式