JPS6336539B2 - - Google Patents

Info

Publication number
JPS6336539B2
JPS6336539B2 JP54129208A JP12920879A JPS6336539B2 JP S6336539 B2 JPS6336539 B2 JP S6336539B2 JP 54129208 A JP54129208 A JP 54129208A JP 12920879 A JP12920879 A JP 12920879A JP S6336539 B2 JPS6336539 B2 JP S6336539B2
Authority
JP
Japan
Prior art keywords
page
frame
working set
pages
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
JP54129208A
Other languages
English (en)
Other versions
JPS5654683A (en
Inventor
Naoya Oono
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.)
NEC Corp
Original Assignee
Nippon Electric Co 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP12920879A priority Critical patent/JPS5654683A/ja
Publication of JPS5654683A publication Critical patent/JPS5654683A/ja
Publication of JPS6336539B2 publication Critical patent/JPS6336539B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 本発明は、マルチプログラミングで動作する仮
想記憶方式の情報処理システムにおけるワーキン
グセツトの管理方式の改良に関するものである。
マルチプログラミングで動作する情報処理シス
テムにおいては主記憶上の各プログラムに対し
て、いかに主記憶ページを割当てるかが問題とな
る。
このための方式としてあるプログラムで、一定
時間内に参照したページはそのプログラムのため
に確保しておく、いわゆるワーキングセツト方式
が知られている。
ワーキングセツト方式は、実際には、次のよう
に実現される。即ち、主記憶上の全ページについ
て、ページテーブルの参照ビツトを一定周期毎に
調べ、参照があれば、即ち参照ビツトが1なら
ば、これをリセツトするとともに対応するページ
の参照カウント置を0にし、参照されなかつた場
合には、カウント値をカウントアツプする。そし
て、参照カウント値が、ある値nよりも大きくな
つた場合には、即ちn周期の間参照されなかつた
場合には、そのページは不要ページとしてプログ
ラムからはずしシステムに戻され、空きページプ
ールに登録される。
プログラムの実行中にページフオルトが発生し
た場合には、空きページプールからページがとら
れ、これが、そのプログラムに与えられることに
なる。
この方式により、各プログラムに割当てられる
ページ数はその動きにより、必要に応じて、縮
小、拡大し、固定的にプログラムにページを与え
る場合に比べて、主記憶を有効に使うことが可能
である。
しかしながらこの方式においては、ある特定の
プログラムでたとえばフエイズの切挨わり等によ
り、アクセスするアドレス空間が急に切換わつた
場合には、ページフオルトが多発しこのプログラ
ムのワーキングセツトが拡大する。このために、
空きページプールから多くのページがこのプログ
ラムのために取られるために、他のプログラムで
発生したページフオルトに対して割当てるべき空
きページが不足するような事態が発生し、このた
めに、空きプールを回復するための処理が必要と
なりこれが処理速度の低下を招くという欠点があ
つた。そして、この空きプール不足の発生を少な
くするためには大きな空きプールを用意しておく
必要があり、これは主記憶の使用率を低下させる
要因となつていた。
本発明の目的は、従来のこれらの欠点を除こう
とするもので比較的少量の空きプールを用意して
おくだけで、主記憶上のページを効率的に使用で
きる情報処理装置を提供することにあり、また、
高い処理速度をもつ情報処理装置を提供すること
にある。
本発明は、各プログラムでワーキングセツトの
見直しを行つた時点で、次期の見直し周期におけ
るワーキングセツトの期待値を計算し、この期待
値に基づき、次の見直し周期までに各プログラム
が専有し得るページ数の最大値を設けておき、あ
るプログラムでページフオルトが発生する毎にそ
のプログララムで専用しているページ数が、この
最大値に達するまでは空きページプールからペー
ジをそのプログラムに割当てるが、それ以上ペー
ジフオルトが発生した場合にはそのプログラムの
ワーキングセツト枠の中で最も長い間使われなか
つたページを切り出し、ここに新たなページを割
当てるようにすることにより、特定のプログラム
におけるページフオルトの頻発により、空きペー
ジプールが不足する確率を低くしようとするもの
である。
従つて本発明によれば、従来の方式に比べて、
比較的小さい空きプールしか用意しなくても、空
きプールの不足の発生の確率を低くでき、主記憶
の有効利用、処理速度の向上が期待できることに
なる。
以下図により、本発明の一実施例を説明する。
本実施例においては、各プログラムに対応して、
ワーキングセツト管理が行われることとする。即
ち、ワーキングセツト枠がプログラム毎に設けら
れる。
そして、ワーキングセツト枠の制御のために、
各枠に対して、ワーキングセツト枠制御ブロツク
(以下WSCBと略す)が用意される。各WSCB
は、次期ワーキングセツト見直し直後のワーキン
グセツトサイズの期待値を保持するフイールド
EWSj現在その枠につながれているページ数、即
ち、現ワーキングセツトサイズを保持するフイー
ルドCWS、次期ワーキングセツト見直しまでに
許されるワーキングセツトの最大値MWS、その
枠に属するページのリストの最初、最後のページ
を示すポインタを保持するフイールドTP,LPを
もつ。
同様に、空きページプール枠の管理のために、
空きプール枠制御ブロツク(以下EPCBと略す)
が用意され、これは、現在この枠につながれてい
るページ数即ち、空きページ数を保持するフイー
ルドEPN、空きページのリストへのポインタフ
イールドTPをもつ。
また、主記憶上の実ページを管理するために、
実ページに対応したエントリをもつページマツプ
PMAPが用意される。ページマツプの各エント
リは、現在の使用カウント値を保持するフイール
ドUC、このページにつながるページへの両方向
のポインタをもつフイールドEP,BPおよび各ペ
ージが参照された事を示すRビツト、書込みが行
われたことを示すWビツトをもつ。
ワーキングセツト枠につながれたページは、
WSCBおよびページマツプ上のポインタにより、
使用カウントの小さい順に、即ち、新しくアクセ
スされた順に並べられ最大のものをトツプに、最
大のものをラストにしてリストとして管理されて
いる。
また、ある周期n以上参照されなかつたページ
はワーキングセツトからはずされ、空きページ枠
に戻されるがこの値nが閾値として保持される。
なお、本実施例においては、前回のワーキング
セツトサイズの期待値EWSj′と、今回のワーキン
グセツトの見直しにおいて、枠に残されたページ
数の平均値が、次期ワーキングセツトサイズの期
待値、として使用され、かつ、このワーキングセ
ツトサイズの期待値に、定数を加えたものが、次
期のワーキングセツト見直しまでにその枠に許さ
れるワーキングセツトの最大値MWSjとして使用
されると想定している。
次に、本実施例における動作を図により説明す
る。
あるプログラムjの実行中に、ページフオルト
が発生すると、まず、このプログラムにおける現
在のページ数CWSjと、最大ワーキングセツトサ
イズMWSjが流出され、比較される。CWSjが、
MWSjよりも小さい場合には、空きページプール
から1ページがはずされるが、プログラムjのワ
ーキングセツト枠のトツプにつながれここに、必
要な内容が二次記憶からロードされる。
そしてこのつなぎかえに伴い、EPCBの空きペ
ージへのポイツタTP、空きページ数EPN、つな
ぎかえられたページiに対応するページマツプエ
ントリのポインタFPi、ページフオルトを起した
プログラムのWSCBの現ワーキングセツトサイ
ズCWSj、ページのリストへのポインタTPj、つ
なぎかえまでその枠でトツプにいたページのポイ
ンタBPが更新される。
CWSjの値がMWSjに等しい場合即ち、既にそ
のワーキングセツトの最大値に達している場合に
は、空きページ枠からのつなぎかえを行わず、自
枠のラストにあつたページを主記憶から追出し、
ここに、必要な情報を二次記憶から転送する。
即ち、枠jのラストにあつたページkを、この
枠のトツプにつなぎかえ、このページに内容の変
更があつたかどうかを調べる。内容の変更がない
場合には直ちに、あつた場合には、これを二次記
憶にページアウトした後、必要な情報を二次記憶
装置からページインする。
なお、このつなぎかえに伴い、WSCBjのTP、
LP、つなぎかえられたページkに対応するEP、
つなぎかえの直前までリストのトツプにあつたペ
ージに対応すBPの更新が行われる。
第1図の例により、以上の動作を説明する。
たとえば、ある時点で、プログラムjが実行さ
れていたときに、ページフオルトを発生したとす
る。この時点で、プログラムjには、6ページが
つながれているとする(CWS=6)。また、この
枠に属する6ページのつながれている順序は、ペ
ージ番号が7、1、10、14、13、2の順でありこ
れはトツプが7(TP=7)、ラストが2(LP=
2)、およびページマツプの対応するページの前
方向および後方向のポインタEP、BPにより接続
されている。また、これは、その枠に属する各ペ
ージの使用カウント(UC)が小さい順に並べら
れていることが示されている。
また、空きページ枠はこの時点で5ページをも
ち、そのページのトツプはページ番号12、次に
15、0、4、5の順にページマツプのポインタ
EPによりリストを構成している。この様子が第
1図aに示されている。
ページフオルトの発生について、ワーキングセ
ツトの最大値をMWS=8とした場合についてみ
るとCWSj<MWSjであるので空きページ枠か
ら、そのトツプにあるページ(12)が枠jのトツプに
つなぎかえられここにページ転送が行われる。第
1図bに示すようにこれに伴い空きページ枠のペ
ージ数ENPは5から4に、リストのトツプは以
前のページ番号12の次に、つながつていたページ
番号15となる(TP=15)。また、枠jのTPには
12が、ページ数CWSは6から7にカウントアツ
プされる。また、これに伴いページマツプのポイ
ンタも更新される。また枠jには新たにつなげら
れたページ12のUC、Wビツトは0に、Rビツト
は1にセツトされる。これに対して、MWSj=6
と設定されていた場合においては、ページフオル
トの発生により、CWSj=MWSj=6であり、従
つてこの場合には、ページ枠からのページのつな
ぎかえは行われず、第1図cに示すように枠jの
ラストにあるページ2がトツプにつなぎかえられ
る。ページ2はPMAPのページ2に対応するW
ビツトが1であり、書込みが行われているので、
まず、このページの内容を二次記憶装置に転送
し、Wビツトをリセツトした後要求された情報
を、二次記憶からページ転送し、Rビツトを1に
セツトするまたUCも0にリセツトする。なお、
これに伴いWSCBjのトツプは2に(TP=2)、
ラストはページ2の前にあつた13になる(LP=
13)また、ページマツプPMAPのポインタも第
1図cのように変更される。
なお、これらの処理を第2図のフロウチヤート
に示す。また、第1図のページマツプPMAPに
おいてページ3、6、8、9、11は枠jにも空き
ページ枠にも属していないページである。
なお、フロウチヤートにおけるi、l、h、k
は、数値を一時的に保持する一時的な変数であ
る。
なお、ワーキングセツトの見直しは一定時間毎
に起動され、次の処理が行われる。即ち、主記憶
上にあるプログラムに属する全ページについて、
そのページに参照があつた場合即ち参照ビツトR
が1の場合にはこれをリセツトするとともに対応
する使用カウンタUCを0にするとともに、この
ページをそのページの属するワーキングセツトの
トツプにつなぎかえる。
ページに参照がなかつた場合には、対応する使
用カウンタUCをカウントアツプし、この値が閾
値nを越えている場合には、即ちT周期の間使用
されなかつたページは、空きページ枠に戻す。
(即ち、CWSをカウントダウンするとともに、こ
のページの空きページ枠へのつなぎかえのための
ポインタの更新、EPNのカウントアツプを行
う。)閾値nを越えていない場合には何も行わな
い。
また、各ワーキングセツトの枠について、次期
のワーキングセツト見直しまでに許されるワーキ
ングセツトの最大値MWSを次のようにして計算
し、新MWSとしてセツトする。
即ち、今回の見直しにより、枠jに残つている
ページ数を数えこの数と、枠jの前回の期待値即
ちEWSjフイールドの値を加算し、1/2倍するこ
とにより平均をとり、これを新EWSjとして、
EWSjのフイルドに格納するとともに、これに、
システムで管理されている定数Nを加え、これを
次期ワーキングセツト見直しまでのその枠におい
て許されるワーキングセツトサイズの最大値とし
て枠制御ブロツクWSCBjのMWSjのフイールド
に格納する。
第1図cの状態でワーキングセツトの見直しを
行つた場合を例として示す。なおここでは、枠j
と、空きページ枠だけを対象としている。また、
ここでは定数n=2としている。またワーキング
セツトサイズMWSを定めるための定数N=3と
する。また、前回の枠jのワーキングセツトサイ
ズの期待値EWSは3で、これがEWSjのフイール
ドに格納されているとする。
まず、ページ2は参照されているので(Rビツ
ト=1)UCは0に、またリストのトツプにおか
れページ7はR=0なのでUCは0から1にカウ
ントアツプされ、リスト上の順序はそのまま、ペ
ージ1はR=1なのでUCは0、リストのトツプ
におかれ、次にページ10はR=0なのでUCは1
から2にカウントアツプされる、ページ14はR=
0なのでUCは2から3になりn=2よりも大と
なつたので、これは枠jのリストからはずし、こ
の場合にはWビツトが0なのでそのまま空きプー
ル枠のトツプにつなげる。これにより、枠jの
CWSは、6から5にカウントダウンされ、空き
プールサイズEPNは5から6にカウントアツプ
されるページ13は、R=1なのでUCは2から0
にリセツトされ、リストのトツプにつながれる。
次に、枠jの今回の見直しによるページ数CWS
は5で、前回の期待値3との平均が計算され、こ
の値、即ち4が新たな期待値としてEWSのフイ
ールドに格納され、さらに、これにN=3を加え
た値7が、次期のワーキングセツトサイズの最大
値として、MWSのフイールドに格納される。ワ
ーキングセツトの見直しが完了した時点で、枠j
には、13、1、2、7、10の順で5個のページが
つながれ、空きページ枠には新たにページ14が加
えられている。それを第1図dに示す。なおメモ
リマツプにおける一は何の値でも関係ないことを
示す。以上、本発明の一実施例について説明した
ように、本発明の主旨は特定のワーキングセツト
枠におけるページフオルトの頻発により、空きプ
ール枠から無制限にページが割当てられるのを防
ぐために、特定のワーキングセツト枠が次のワー
キングセツトの見直しの周期までに許されるワー
キングセツトの最大値を設け、これ以上は割当て
られないようにすることにより、主記憶の有効利
用処理速度の向上を計ることにより、この主旨に
背かないかぎりいくつかの変形が可能であること
は明らかであろう。
たとえば、本実施例においては、ワーキングセ
ツト枠は、プログラム毎に用意するとしている
が、複数のプログラムに対して、1個のワーキン
グセツト枠を設けることも可能である。
また、本実施例においては、第2図のフロウチ
ヤートの右側に示すようにあるWS枠で最大値N
以上のページフオルトが発生した場合には、その
WS枠からまずページを切出し、必要ならばペー
ジアウトを行つた後、ページ転送を行うとしてい
るが、そのかわりに次のようにすることも可能で
ある。
即ち、まず空きページからページを割当て、こ
のページに対して二次記憶からのページの転送起
動する。この後でこれがこのWS枠に対する最大
値N以上のページフオルトであるかどうかを調
べ、そうであつた場合には、そのWS枠からリス
トの最後のページを取出し、このページのWビツ
トを調べ、これが0ならばただちに、これが1な
らば、二次記憶に対して追出しを行つた後(ペー
ジアウト)、空きページ枠に戻すようにすること
も可能である。これにより、自WS枠内での切出
しに際して、切出すべきページに書込みがあつた
場合においても、この追出しに先立つて空きペー
ジ枠のページへのページインが行えるので、ペー
ジフオルト処理を短縮することができる。
なお、本実施例においては、ページマツプは専
用のメモリ上におかれ、ページへの参照があるた
びにページマツプ上の参照ビツトRが1にセツト
されまた、書込みがあるたびにWビツトに1がセ
ツトされるとしているが、ワーキングセツト見直
しにおける参照ビツトのリセツト時に、アドレス
変換テーブル上の参照ビツトを同時にリセツトし
ておき、アドレス変換テーブルで参照ビツトの0
から1への書換えがあつたときにのみ、ページマ
ツプ上の参照ビツトを1にセツトするように構成
することも可能である。また、参照ビツトをメモ
リマツプ上に設けずに、ページテーブル上に設け
ることも可能である。
また、本実施例においては、各ワーキングセツ
トの枠に対してワーキングセツトサイズの期待値
から最大値を求める方法として、期待値に、枠に
よらず一定値Nを加えるとしたが、各ワーキング
セツトの枠毎にたとえば、ワーキングセツトサイ
ズの期待値に応じて異なる値を与えるようにして
もよい。また、一定値Nを加えるとした場合に
は、MWSによりEWSを計算できるので、ワーキ
ングセツト枠制御ブロツクのEWSのフイールド
を省略してもよい。また、次期ワーキングセツト
の期待値として、今回のワーキングセツト見直し
直後のページ数と、前回の期待値との平均値を用
いているが、必ずしもこのようにする必要はな
く、前回の期待値と今回の値との比を変えること
も可能であり、また、今回のワーキングセツト見
直し直前のページ数も考慮して、次期期待値
EWSを求めることも可能である。たとえば、2/1
(見直し直前のページ数+見直し直後のページ数)
と前回の期待値との平均を次期期待値としてもよ
い。
第3図は本実施例の構成の概要を示すブロツク
図である。本実施例においては、各ワーキングセ
ツト枠におけるページリスト現ワーキングセツト
サイズ、発生ページフオルト回数を管理するワー
キングセツト枠管理ブロツク1、主記憶上の各ペ
ージにおける書込み、参照、使用カウント等の使
用状況、ワーキングセツト枠、あるいは空きペー
ジ枠上につながれている順序等を管理するメモリ
マツプ2、空きページを管理する空きページ管理
ブロツク3、および、関連する制御回路4が用意
される。
制御回路4はページフオルトの発生に伴う、ペ
ージのプールからワーキングセツト枠へのつなぎ
かえ、ワーキングセツトの見直しに伴う、メモリ
マツプ上の参照ビツトのチエツク、使用カウント
の更新、ワーキングセツト枠から空きページ枠へ
のつなぎかえ、あるいは、ページへの参照、書込
に伴うRビツト、Wビツトの更新等の前述の動作
を制御するが、本発明の詳細な説明な構成、ある
いは、制御回路の詳細な動作は本発明の主旨とは
直接関係がないので詳細な説明は省略してあるが
従来知られている技術で容易に実現可能であるこ
とは明らかであろう。
【図面の簡単な説明】
第1図a〜dは、本発明の一実施例における動
作を示すもので、第1図aは、ページフオルトの
発生直前の主記憶上のページの状態を示すもので
ある。第1図bは、ページフオルト回数が規定最
大値を超えなかつた場合、第1図cは最大値をこ
えた場合におけるページフオルト後の状態を示
す。なお、第1図dは、ワーキングセツト見直し
後の状態を示す。第2図は、本発明における動作
を示すフロウチヤート、第3図は本発明の一実施
例の構成を示すブロツク図である。 1はワーキングセツト枠管理ブロツク、2はペ
ージマツプ、3は空きプール制御ブロツク、4は
関連する制御回路を示す。

Claims (1)

    【特許請求の範囲】
  1. 1 マルチプログラムで動作する情報処理装置に
    おいて、ワーキングセツトを管理する単位である
    ワーキングセツト枠(WS枠)は、次のワーキン
    グセツト見直しまでの間にそのワーキングセツト
    が保有することができるベージ数の最大値を保持
    する手段をもち、ワーキングセツト見直しに際
    し、各WS枠に対して次の見直し周期におけるワ
    ーキングセツトへの期待値とともに前記ページ数
    の最大値を求め、これを前記保持する手段に格納
    するとともに、ページフオルト発生に際しては当
    該ページフオルトを発生したWS枠に属するペー
    ジ数が前記最大値を越えていない場合には、空き
    ページプールからページを切出してこのWS枠に
    付与し、前記最大値に達している場合には、その
    WS枠からページを切出すことを特徴とするワー
    キングセツト管理方式。
JP12920879A 1979-10-05 1979-10-05 Working set control system Granted JPS5654683A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12920879A JPS5654683A (en) 1979-10-05 1979-10-05 Working set control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12920879A JPS5654683A (en) 1979-10-05 1979-10-05 Working set control system

Publications (2)

Publication Number Publication Date
JPS5654683A JPS5654683A (en) 1981-05-14
JPS6336539B2 true JPS6336539B2 (ja) 1988-07-20

Family

ID=15003799

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12920879A Granted JPS5654683A (en) 1979-10-05 1979-10-05 Working set control system

Country Status (1)

Country Link
JP (1) JPS5654683A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5965988A (ja) * 1982-10-08 1984-04-14 Hitachi Ltd 実記憶制御方式
JP4811662B2 (ja) * 2006-12-27 2011-11-09 日立金属株式会社 セラミックハニカムフィルタの製造方法
JP5298915B2 (ja) * 2009-02-13 2013-09-25 日本電気株式会社 メモリ管理装置、メモリ管理方法、および、プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5458318A (en) * 1977-10-19 1979-05-11 Fujitsu Ltd Job control system in artificial memory system

Also Published As

Publication number Publication date
JPS5654683A (en) 1981-05-14

Similar Documents

Publication Publication Date Title
US5778430A (en) Method and apparatus for computer disk cache management
JP3864256B2 (ja) 仮想メモリを管理するための方法およびプロファイリング・キャッシュ
US20160267018A1 (en) Processing device and control method for processing device
US8909870B2 (en) Cache evictions from data cache based on content of address translation table cache and address translation table
EP0408070B1 (en) Method for allocating real pages to virtual pages having different page sizes therefrom
EP2541423B1 (en) Replacement policy for resource container
CN110555001A (zh) 数据处理方法、装置、终端及介质
US7802070B2 (en) Approach for de-fragmenting physical memory by grouping kernel pages together based on large pages
US6842832B1 (en) Reclaim space reserve for a compressed memory system
CA2610180C (en) Managing memory pages
JP3194201B2 (ja) キャッシュモード選択方法
US7035988B1 (en) Hardware implementation of an N-way dynamic linked list
US20130254511A1 (en) Improving Storage Lifetime Using Data Swapping
JPS6336538B2 (ja)
JPS6336539B2 (ja)
US6829693B2 (en) Auxiliary storage slot scavenger
US8812782B2 (en) Memory management system and memory management method
JP3020512B2 (ja) フアイルデータ管理方法
JPS60214060A (ja) 外部記憶キヤツシユ制御方式
JP2006350633A (ja) データ管理方法及びデータ管理システム
JP5702523B2 (ja) データベース管理システム
JPH06266619A (ja) ページ退避/復元装置
JPS6029135B2 (ja) バツフアメモリシステム
CN117991995A (zh) 一种sd卡文件连续读或写控制方法、系统及存储设备
CN117851374A (zh) 数据库系统前映像空间管理方法和装置