| 【発明の名称】 |
メモリ管理方法 |
| 【発明者】 |
【氏名】平岩 友理
【氏名】清井 雅広
【氏名】秋葉 千江子
【氏名】長須賀 弘文
|
| 【要約】 |
【課題】従来、ページリプレイスメントのための参照・更新情報を取得し実記憶の使用状況を反映するという処理を定期的にCPUを占有して行う必要があった。従って実装する実記憶が大容量化した場合に、上記の使用状況反映処理に要する時間が長大化する課題があった。
【解決手段】ページリプレイスメントのための参照・更新情報を取得し実記憶の使用状況を反映するという処理を行うか否かを空間単位でシステム稼働中に動的に変更できるようにする。 |
【特許請求の範囲】
【請求項1】 主記憶装置と補助記憶装置を利用することで複数の仮想空間を展開し、当該主記憶装置以上の容量の仮想記憶を展開することが可能な計算機システムのメモリ管理方法において、当該計算機システム上に展開されている当該複数の仮想空間を、複数のグループのいずれかのグループに属するよう分類し、当該グループの中から1つ以上の仮想空間が属しているグループを1つ選択する処理を、予め定められた契機に基づき反復して動作させるステップと、上記主記憶装置上の利用されている領域を部分的に未使用状態にするときに、上記ステップにより選択されているグループに属している仮想空間が利用している当該主記憶装置上の領域の情報を、優先して上記補助記憶装置に出力するステップとを有することを特徴とするメモリ管理方法。 【請求項2】 請求項1記載の計算機システムのメモリ管理方法において、当該主記憶装置上の領域を、一定のサイズ(ページ)単位で管理することを特徴とするメモリ管理方法。 【請求項3】 主記憶装置と補助記憶装置を利用することで複数の仮想空間を展開し、当該主記憶装置以上の容量の仮想記憶を展開することが可能な計算機システムのメモリ管理方法において、当該計算機システム上に展開されている当該複数の仮想空間を、複数のグループのいずれかのグループに属するよう分類し、当該グループの中から1つ以上の仮想空間が属しているグループを1つ選択する処理を、予め定められた契機に基づき反復して動作させる第1のステップと、上記第1のステップで選択されたグループに属する仮想空間が利用している当該主記憶装置上の領域について未使用状態にする順序を決定する処理を、予め定められた契機に基づき反復して動作させる第2のステップと、上記主記憶装置上の利用されている領域を部分的に未使用状態にするときに、上記第1のステップにより選択されているグループに属している仮想空間が利用している当該主記憶装置上の領域の情報を、上記第2のステップにより決定した順序に基づき、優先して上記補助記憶装置に出力する第3のステップとを有することを特徴とするメモリ管理方法。 【請求項4】 請求項3記載の計算機システムのメモリ管理方法において、当該主記憶装置上の領域を、一定のサイズ(ページ)単位で管理することを特徴とするメモリ管理方法。 【請求項5】 請求項4記載の計算機システムのメモリ管理方法において、上記第1のステップは、当該複数の仮想空間から、予め定めた基準に基づき、少なくとも2つ以上で、多くとも当該複数の仮想空間の数より少ない数の仮想空間が属する第1のグループと、それ以外の仮想空間が属する第2のグループに分類する処理と、定期的に、予め定めた基準に基づき、上記第1のグループに属する仮想空間の中から、少なくとも1つ以上の仮想空間を残し、当該残された仮想空間以外の上記仮想空間を第1のグループから第2のグループに分類し、第2のグループから新たに少なくとも1つ以上の仮想空間を第1のグループに分類する処理と、定期的に、上記第1のグループを選択する処理から構成されることを特徴とするメモリ管理方法。 【請求項6】 請求項5記載の計算機システムのメモリ管理方法において、上記第1のステップにおいて、上記第1のグループに仮想空間を残す基準を、当該グループに分類されてからの期間が短い順であることを特徴とするメモリ管理方法。 【請求項7】 請求項4及び請求項6記載の計算機システムのメモリ管理方法において、上記主記憶装置上のページに対応するカウンタ領域を付加し、上記第2のステップは、上記第1のグループに属する仮想空間に割り当てられている上記主記憶装置上のページの参照及び更新の情報を取得し、参照又は更新があった場合は当該ページに対応するカウンタ領域をの値をクリアし、参照又は更新がなかった場合は当該ページに対応するカウンタ領域の値を増分させ、未使用状態にする順序を当該カウンタ領域の値が大きい順とする処理を、予め定められた契機に基づき反復して動作させることを特徴とするメモリ管理方法。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、仮想アドレスと実アドレスを対応させることで主記憶装置を使用する仮想記憶管理方式を採用した計算機システムにおけるメモリ管理方法に関する。特に、主記憶装置の空きが不足した場合に、既に割り当て済みのページを補助記憶装置に追い出し、空きページとして補給するページリプレイスメント方法に関する。 【0002】 【従来の技術】仮想記憶方式では、主記憶装置と、主記憶装置に入り切らない情報を格納しておく補助記憶装置の間で、ページ単位の情報の交換を行う。主記憶装置から補助記憶装置に情報を移すことをページアウト、補助記憶装置から主記憶装置へ移すことをページインという。また、この2つを総称してページングという。 【0003】通常、実装主記憶容量よりも仮想記憶の方が大きいため、システム稼働中にページングを行う必要が生じる。ある時点で必要なページを主記憶装置上に置くため、その時主記憶装置上にあるページ(実ページ)を選択し、ページアウトを行うことで空きページを作り、必要なページを割り当てるのである。これらのページの入れ替えによるメモリ管理方法はページリプレイスメントと呼ばれる。 【0004】ページリプレイスメントを行う際に、空きページを作るためのページアウト対象ページを選択する論理に、例えばワーキングセット方式と呼ばれるものがある。これは実ページが参照・更新されたか否かの状態を一定時間毎に調査し、参照・更新状態でない時に対応する実ページ管理テーブルに設けられたカウンタを増分する処理を行い、その情報を元に実ページ管理テーブルを降順又は昇順に並び換える。そして、実際にページアウトを行う際に、実ページ管理テーブルの先頭又は最後尾に位置するページから、そのカウンタの値に基づきページアウトすることで、長い期間使用されていないページを対象として選出する方式である。なお、この種の仮想記憶方式及びページリプレイスメント方式については、例えば亀田寿夫著「オペレーティングシステムの基礎」(昭晃堂 昭和60年2月発行)の頁70〜89や、前川守著「オペレーティングシステム」(岩波書店 昭和63年9月発行)の頁250〜271に記述されている。 【0005】また、特開平2−245951号公報に、主記憶領域を複数のグループに分けて、各々に対し順に参照・更新状態によるカウンタ操作処理を行うという技術が開示されている。 【0006】 【発明が解決しようとする課題】従来技術において参照・更新状態を調査するには、その調査時点での使用状況を取得する必要があるため、CPUを占有して動作していた。従ってワーキングセット方式を主記憶装置上の全てのページを対象とした場合、その定期的にかかる参照・更新状態によるカウンタ操作処理のため、長時間CPUを占有してしまう問題があった。 【0007】特に、大規模システムでは、高多重でジョブを実行するために、極めて大容量の主記憶を実装し、ジョブを実行したりジョブのデータを格納したりする仮想空間を多数配置できるようにしているため、上記問題点が顕著に現れてくる。 【0008】特開平2−245951号公報で開示された技術は、主記憶容量の増加によるCPU占有時間の長大化を防止できるが、仮想空間の数が増加した場合に発生する上記問題点に対する解決策は開示されていない。 【0009】 【課題を解決するための手段】上記課題を解決するために、本発明では実ページの参照・更新状態によるカウンタ操作処理を行うか否かをシステム稼働中に空間単位で切替えるメモリ管理方法を提供する。 【0010】本発明での実ページの参照・更新の判断に用いるカウンタ管理や、実ページ管理テーブルのキュー操作等は、既に述べた公知技術と同様である。 【0011】本発明のページリプレイスメント部は、ページリプレイスメント切替部と、ページリプレイスメント制御部と、ページリプレイスメント実行部から構成される。 【0012】ページリプレイスメント切替部は、予め定めた基準に基づき、全ての空間を、参照・更新状態によるカウンタ操作処理行うグループと、同処理を行わないグループとに分類する。また、上記分類を行った後も、両グループの一部の空間の入れ替え処理を定期的に行う。 【0013】ページリプレイスメント制御部は、定期的に、ページリプレイスメント切替部で参照・更新状態によるカウンタ操作処理を行うグループに分類された空間を選択し、同空間に割り当てられた実ページについて、参照・更新状態の情報を取得してカウンタを操作する。 【0014】ページリプレイスメント実行部は、参照・更新状態によるカウンタ操作処理を行うグループに分類された空間に割り当てられた実ページを、それ以外の空間に割り当てられた実ページより優先してページアウトする。 【0015】 【発明の実施の形態】本発明の実施形態を図を用いて詳細に説明する。 【0016】まず第一の実施形態について図1〜図8を用いて説明する。 【0017】図1は、本実施形態の基本的な構成を表している。計算機101は、CPU102、主記憶装置103、及び補助記憶装置105からなる。計算機101は、主記憶装置103上に配置しきれない情報を補助記憶装置105に書き出し、必要に応じて読み込みを行うページングを行う。このようにすることで、実装された主記憶装置103が有する容量以上の仮想記憶を計算機101に展開することが可能になる。 【0018】主記憶装置103上のページは、CPU102で実行される命令によって参照及び更新される。主記憶装置103上には、主記憶装置103の空きページ状況を格納した空きページ情報104、ページリプレイスメント処理に用いる情報を格納したリプレイスメント情報テーブル400、本発明の主記憶管理を行うページリプレイスメント部800、ユーザジョブが使用する仮想空間を管理するための仮想空間管理テーブル200、実ページを管理するための実ページ管理テーブル300がある。ページリプレイスメント部800は、ページリプレイスメント切替部500、ページリプレイスメント制御部600、ページリプレイスメント実行部700から構成される。仮想空間管理テーブル200のチェインは並び換えられない。 【0019】また、本システムでは、CPU102によってページが参照及び更新されたという情報は、ハードウェアが情報を設定・保持し、CPU102に参照及び更新情報取得用の命令を実行させることで取得できる。 【0020】仮想空間管理テーブル200の構成を図2に示す。切替情報201は、その空間が参照・更新状態によりカウンタを処理すべきか否かの情報を格納する領域である。本実施の形態では、ONの場合に参照・更新状態によるカウンタ操作処理をする状態であり、OFFの場合は処理を行わない状態であるとして説明を行う。この切替情報201の内容を見ることで、その空間で参照・更新状態によるカウンタ操作処理を行っているか否かを見ることができる。ユーザは仮想空間管理テーブル200を見てもよいし、稼動情報をモニタリングするツール等で表示させる手段をとってもよい。カウンタ処理回数202は、その仮想空間に対してページリプレイスメント制御部600が参照・更新状態によるカウンタ操作処理を行った回数を格納するカウンタであり、初期値は0である。実ページ管理テーブルへのポインタ203は、その仮想空間に割り当てられている実ページを管理するための実ページ管理テーブル300のキューの先頭へのポインタを格納している。但し、ポインタではなく、実ページ管理テーブルのアドレスを取得するための情報であってもよい。次空間テーブルへのポインタ204は、次の仮想空間管理テーブルへのポインタを格納している。前空間テーブルへのポインタ205は、前の仮想空間管理テーブルへのポインタを格納している。仮想空間管理テーブル200が生成順等のキュー状にチェインされたとしても、そのキューの先頭と最後では、上記次空間テーブルへのポインタ204及び前空間テーブルへのポインタ205により、リング状に辿ることができる。 【0021】実ページ管理テーブル300の構成を図3に示す。カウンタ301は、参照・更新を管理するためのカウンタである。次テーブルへのポインタ302は、実ページ管理テーブル300のキューでの、次のエントリへのポインタを格納している。但し、ポインタではなく、実ページ管理テーブルのアドレスを取得するための情報であってもよい。 【0022】リプレイスメント情報テーブル400の構成を図4に示す。処理空間数401は、参照・更新状態によるカウンタ操作処理を行ってページリプレイスメント実行部700の第一の対象となるべき空間数を格納した領域である。リプレイスカウンタ値402は、ページリプレイスメント実行部700で、実ページ管理テーブル300のカウンタ301がいくつ以上のページをページアウト対象とするか選別するための閾値である。処理先頭空間テーブル403は、参照・更新状態によるカウンタ操作処理を行う空間の仮想空間管理テーブル200へのポインタを格納する領域であり、システム立ち上げ時は空である。 【0023】本実施形態におけるページリプレイスメント切替部500の処理の流れを図5により説明する。本処理は定期的にタイマにより起動する。 【0024】処理先頭空間テーブル403が空であるか否かを判定する(ステップ501)。 【0025】上記判定が真であった場合は、以下の初期設定を行う。 【0026】まず、処理先頭空間テーブル403に、ページアウト可能な実ページを有する空間の仮想空間管理テーブル200の、先頭のエントリのアドレスを格納する(ステップ502)。 【0027】次に処理先頭空間テーブル403から順に処理空間数401とリプレイスカウンタ値402を足した数から1減算した数の仮想空間管理テーブル200の切替情報201にONを設定する(ステップ503)。 【0028】以上で初期設定時の処理を終了する。 【0029】ステップ501における判定が偽であった場合は、以下の処理を行う。 【0030】処理先頭空間テーブル403が指す仮想空間管理テーブル200のカウンタ処理回数202がリプレイスカウンタ値402以上であるか否かを判定する(ステップ504)。 【0031】上記判定が偽であった場合は、そのまま切替処理を終了する。 【0032】上記判定が真であった場合は、以下の処理を行う。 【0033】処理先頭空間テーブル403が指す仮想空間管理テーブル200の切替情報201にOFFを設定し、当該カウンタ処理回数202を0にクリアする。 【0034】また、処理先頭空間テーブル403を、当該仮想空間管理テーブル200の次のエントリを指すように設定する(ステップ505)。 【0035】次に、ステップ505で更新した処理先頭空間テーブル403が指すエントリから、(処理空間数401+リプレイスカウンタ値402−1)番目のエントリの切替情報201にONを設定する(ステップ506)。 【0036】以上で切替え処理は終了であり、引き続きリプレイスメント制御処理を行う。本実施形態におけるページリプレイスメント制御部600の処理の流れを図6により説明する。リプレイスメント制御処理は、リプレイスメント切替処理から処理を引き継ぐ。 【0037】ステップ604までの処理を、切替情報201がONである仮想空間を対象として処理を行う(ステップ601)。 【0038】当該空間の仮想空間管理テーブル200の実ページ管理テーブルへのポインタ203にキューイングされている実ページ管理テーブル300に対応する実ページの参照・更新状態を調べ、参照・更新されていた場合には、カウンタ301をクリアし、参照・更新されていなかった場合にはカウンタ301を増分する。当該空間の実ページについて処理が終った後に、このカウンタ301の値の大きい順に実ページ管理テーブル200のキューを並び換える(ステップ602)。 【0039】次に、ステップ602で処理を行った空間のカウンタ処理回数202を1つ増分する(ステップ603)。 【0040】以上で1つの空間に対する処理を終了する(ステップ604)。 【0041】本実施形態におけるページリプレイスメント実行部700の処理の流れを図7により説明する。リプレイスメント実行処理は、タイマにより起動されるか、主記憶の空きが少なくなった場合に起動される。 【0042】リプレイスメント対象空間を処理先頭空間テーブル403で指すエントリとする(ステップ701)。 【0043】空きページ情報104から、必要なページアウト数を求める(ステップ702)。 【0044】ページアウトする必要があるか否かを判定する(ステップ703)。 【0045】上記判定が偽であった場合は、処理を終了する。 【0046】上記判定が真であった場合は、以下の処理を行う。 【0047】リプレイスメント対象空間のカウンタ処理回数202がリプレイスイカウンタ値402以上であるか否かを判定する(ステップ704)。 【0048】上記判定が真であった場合は、以下の処理を行う。 【0049】当該空間に割り当てられている実ページの実ページ管理テーブル300のカウンタ301が、リプレイスカウンタ値402以上である実ページをページアウトする(ステップ705)。 【0050】リプレイスメント対象空間を次のエントリにして、ステップ703へ戻る(ステップ706)。 【0051】ステップ704の判定が偽であった場合は、以下の処理を行う。 【0052】リプレイスメント対象空間を、処理先頭空間テーブル403の前のエントリとする(ステップ707)。 【0053】当該空間に割り当てられている実ページの実ページ管理テーブル300のカウンタ301が、リプレイスカウンタ値402以上である実ページをページアウトする(ステップ708)。 【0054】リプレイスメント対象空間を前のエントリにする(ステップ709)。 【0055】これ以上ページアウトする必要がないか、又は、リプレイスメント対象空間の切替情報201がONであるかを判定する(ステップ710)。 【0056】上記判定が何れかが真であった場合は、処理を終了する。 【0057】上記判定が何れも偽であった場合は、ステップ708に戻る。 【0058】本実施形態では、ステップ708において、処理対象である空間の切替情報201がOFFであり、その時点より前の参照・更新状態によるカウンタ操作処理の結果をそのままリプレイスカウンタ値402と比較してページアウトするか否かの判定を行っているが、これをt回前に参照・更新状態によるカウンタ操作処理を行った空間であるならば(リプレイスカウンタ値402−t)以上である実ページまでページアウトの対象と判定するなどの処理に変えてもよい。 【0059】本実施形態におけるページリプレイスメント部800における処理の概要を、図8により説明する。 【0060】処理空間数401が3である。これは参照・更新状態によるカウンタ操作処理を行っていて、カウンタ301がリプレイスカウンタ値402以上でページアウト対象となり得る実ページを有する可能性のある空間を3個保持しながら動作することを示している。 【0061】リプレイスカウンタ値402が2である。これは参照・更新状態によるカウンタ操作処理を行った結果、ページアウト対象としてカウンタ301が2以上の実ページをページアウト対象として選出することを示している。 【0062】処理空間数401が3でありリプレイスカウンタ値402が2であることから、一回のページリプレイスメント制御部600の起動で参照・更新状態によるカウンタ操作処理を行う空間数は4個である。これは図5におけるステップ503及びステップ506から求まる数値である。処理空間数401+リプレイスカウンタ値402−1)から、1空間ずつずらしながら参照・更新状態によるカウンタ操作処理を行った場合でも、ある時点で処理空間数401に示した空間数からはページアウト可能であるために、一回のページリプレイス制御処理で参照・更新状態によるカウンタ操作処理を行う必要がある空間数が求まる。 【0063】n回目に参照・更新状態によるカウンタ操作処理を行ったのがAからDの4個の空間であったとすると、上記カウンタ操作処理により、各々の空間に割り当てられた実ページのカウンタ301が取り得る値の最大値は図示したようになる。空間Aであれば0から4の値をとる。割り当てられた全てのページを参照・更新すると、カウンタ301がクリアされるため、必ず最大値の値を持つ実ページを有するわけではない。 【0064】その後ページリプレイスメント切替部500により参照・更新状態によるカウンタ操作処理を行う範囲がずれていく。 【0065】n+2回目の参照・更新状態によるカウンタ操作処理を行った後に、ページリプレイスメント実行部によりページアウトを行う場合の、リプレイスメント対象となる空間の順序を■から■で示した。その時点での参照・更新状態によるカウンタ操作処理対象である空間Cから空間Fの内、リプレイスカウンタ値402を超えるカウンタ301の実ページを持つ可能性のある空間Cから空間Eをリプレイスメント対象とした後、更に必要な空きページを満たさなかった場合は、空間Cより前の空間を、参照・更新状態によるカウンタ操作処理の結果が確かな順に空間B、空間Aと溯って対象としてページアウト処理を続ける。 【0066】以上に述べたようにページリプレイスメント制御の切替を行い、ページリプレイスメントを実行することで、参照・更新状態によるカウンタ操作処理結果に基づく従来通りのワーキングセット方式のページリプレイスメントを行いつつ、大規模な主記憶装置全体に対して参照・更新状態によるカウンタ操作処理を行うことを避けることができる。また、対象となる空間を循環して変更していくことで、リプレイスカウンタ値402に示された回数以上に参照・更新状態によるカウンタ操作処理済みの空間を常に存在させておくことができ、いつページリプレイスメントを行う必要が生じた場合でも、ワーキングセット方式のページリプレイスメントが実行できる。更に、対象となる空間を循環して変更していくことで、ある時点より前に参照・更新状態によるカウンタ操作処理対象であった空間が何回前まで対象であったかを把握した上で、対象であった当時の参照・更新状態によるカウンタ操作処理結果を用いたページリプレイスメントができる。 【0067】以上で本発明の第一の実施形態を説明したが、ページリプレイスメント切替部で、s個(sは1以上の自然数)ずつ空間をずらす形態にしてもよい。 【0068】ページリプレイスメント制御部の一回の動作で参照・更新状態によるカウンタ操作処理が行われる空間数は、(処理空間数401+(リプレイスカウンタ値402−1)×s)となる。この場合、ずらす個数sを格納する領域を設ける必要がある。 【0069】次に、第二の実施形態を説明する。基本的には第一の実施形態と同様であるが、以下に相違点を述べる。 【0070】前記実施形態においては、切替情報201の変更は、ページリプレイスメント切替部500をタイマが起動する度に一空間ずつずらしていたが、これらを一定の時間が経過した場合に一括して切替え、ページリプレイスメント対象を、それ以前に参照・更新状態によるカウンタ操作処理を行っていた仮想空間群を単位としてずらす形態としてもよい。 【0071】この場合の仮想空間情報テーブル200を図9に示す。参照・更新状態によるカウンタ操作処理を行った順序情報を記述した切替順序情報206を追加してある。本実施形態では、この順序情報を0から始まり最大値の後0にラップアラウンドするカウンタとして説明するが、時刻情報としてもよい。 【0072】また、本実施形態のリプレイスメント情報テーブル400を図10に示す。ページリプレイスメントによりページアウトを行う空間の先頭を指すリプレイスメント先頭空間テーブル404と、参照・更新状態によるカウンタ操作処理を行う時間を記述した経過時間閾値405を追加してある。 【0073】次に、新たなページリプレイスメント切替部500の処理の流れを図11により説明する。本処理は定期的にタイマにより起動する。 【0074】処理先頭空間テーブル403が空であるか否かを判定する(ステップ1101)。 【0075】上記判定が真であった場合は、以下の初期設定を行う。 【0076】まず、処理先頭空間テーブル403に、ページアウト可能な実ページを有する空間の仮想空間管理テーブル200の、先頭のエントリのアドレスを格納する(ステップ1102)。 【0077】次に処理先頭空間テーブル403から順に処理空間数401に記述された数の仮想空間管理テーブル200の切替情報201にONを設定する(ステップ1103)。 【0078】ステップ1103で切替情報201をONにした仮想空間管理テーブルの切替順序情報206に初期値である0を設定する(ステップ1104)。 【0079】ステップ1101における判定が偽であった場合は、以下の処理を行う。 【0080】リプレイスメント先頭空間テーブル404に、処理先頭空間テーブル403の内容を格納する(ステップ1105)その時点で切替情報201がONである空間の切替情報201をOFFにする(ステップ1106)。 【0081】処理先頭空間テーブル403に、ステップ1107でOFFにした空間の次の空間のテーブル200のアドレスを格納する(ステップ1107)。 【0082】処理先頭空間テーブル403が指す空間から、処理空間数401に記述された数の空間数の切替情報201をONにし、各々の切替順序情報206に前回の切替順序情報に設定した値の次であることを示す値を設定する(ステップ1108)。前回の切替順序情報の値がaであれば、a+1を設定する。前回の切替順序情報の値が切替順序情報206で表わせる最大値であれば、0を設定する。 【0083】ステップ1101における判定が真であった場合も偽であった場合も、最後に経過時間閾値405に記述された時間後に次の切替処理を起動するためのタイマ設定を行い、処理を終了する(ステップ1109)。 【0084】次に、ページリプレイスメント制御部600の処理を説明する。処理の流れは図6を用いて説明した前記実施形態と同様であるが、ページリプレイスメント切替部とは別の契機でタイマ起動する。起動する契機は前記実施形態のページリプレイスメント切替部と同じである。 【0085】次に、新たなページリプレイスメント実行部700の処理の流れを図12により説明する。リプレイスメント実行処理2は、タイマにより起動されるか、主記憶の空きが少なくなった場合に起動される。 【0086】リプレイスメント対象空間をリプレイスメント先頭空間テーブル404で指すエントリとする(ステップ1201)。 【0087】空きページ情報104から、必要なページアウト数を求める(ステップ1202)。 【0088】ページアウトする必要がないか、又は、リプレイスメント対象空間が処理先頭空間テーブル403で指す空間に達したかを判定する(ステップ1203)。 【0089】上記判定が何れかが真であった場合は、処理を終了する。 【0090】上記判定が何れも偽であった場合は、以下の処理を行う。 【0091】当該空間に割り当てられている実ページの実ページ管理テーブル300のカウンタ301が、リプレイスカウンタ値402以上である実ページをページアウトする(ステップ1204)。 【0092】当該エントリの切替順序情報206と、次のエントリの切替順序情報206が同じか否かを判定する(ステップ1205)。 【0093】上記判定が真であった場合は、リプレイスメント対象空間を次のエントリにして、ステップ1203へ戻る(ステップ1206)。 【0094】ステップ1205における判定が偽であった場合は、以下の処理を行う。 【0095】当該エントリの切替順序情報206が示す値の直前にリプレイスメント制御処理の対象になったことを示す値を持った仮想空間管理テーブル200を探し、複数あった場合はその先頭のエントリを、リプレイスメント先頭空間テーブル404に設定する(ステップ1207)。 【0096】リプレイスメント対象空間をリプレイスメント先頭空間テーブル404で指すエントリとし、ステップ1203へ戻る(ステップ1208)。 【0097】本実施形態におけるページリプレイスメント部800における処理の概要を、図13により説明する。 【0098】処理空間数401が3である。これは参照・更新状態によるカウンタ操作処理を行う空間数と、カウンタ301がリプレイスカウンタ値402以上でページアウト対象となり得る実ページを有する可能性のある空間を3個として切替えることを示している。 【0099】ある時間帯は、m回目で示した参照・更新状態によるカウンタ操作処理の範囲と、リプレイスメント対象とする範囲でページリプレイスメントを行っているとする。 【0100】その後ページリプレイスメント切替処理により、上記の対象をずらす。n回目として示したように、前回まで上記カウンタ操作処理を行っていた範囲の空間が、優先的にリプレイスメント対象となり、前回まで上記カウンタ操作処理を行っていた範囲の次のエントリから処理空間数401に示された3個の空間が、新しい上記カウンタ操作処理の範囲となる。 【0101】n回目から次のリプレイスメント切替処理が行われるまでに、ページリプレイスメント実行部によりページアウトを行う場合は、まず前回までリプレイスメント制御処理の対象であった■の範囲の空間のページを対象とし、その次に、更に前にリプレイスメント制御処理の対象であった■の範囲の空間のページを対象とする。このように、空間をいくつかのグループにわけ、そのグループ間でページリプレイスメントの対象として優先順位付けをする。 【0102】以上で本発明の実施形態を説明したが、ページリプレイスメント切替部で、新たに切替情報201をONにする空間数を、その時のシステムの負荷に応じて変更する形態にしてもよい。CPUの負荷が低い期間に多くの空間に参照・更新状態によるカウンタ操作処理を行い、CPUの負荷が高くなった時に、参照・更新状態によるカウンタ操作処理を行う空間数を減らしてオーバーヘッドを抑えつつ、CPUの負荷が低い時期に算出したカウンタ301の情報を基にページアウト候補を選出する。 【0103】主記憶装置の他に拡張記憶装置を具備し、拡張記憶装置をページングに用いる計算機システムにおける、拡張記憶装置の空き領域管理に適用する形態もある。拡張記憶装置に空き領域を作成する場合に、拡張記憶装置を利用している空間の一部の空間に割り当てられている拡張記憶装置上の領域を、補助記憶装置への転送候補とする。 【0104】 【発明の効果】本発明により、ページアウトの対象となるページを選出するために、一定時間毎に割り当てられた実ページの参照・更新状態を調査する空間を、システム稼働中に動的に変更し、一部の空間のみ上記処理を行うことで、実記憶が大容量化し空間が多数存在した場合でも、定期的にCPUを占有して行う上記処理に要する時間が長大化することを避けることができる。
|
| 【出願人】 |
【識別番号】000005108 【氏名又は名称】株式会社日立製作所
|
| 【出願日】 |
平成12年9月26日(2000.9.26) |
| 【代理人】 |
【識別番号】100075096 【弁理士】 【氏名又は名称】作田 康夫
|
| 【公開番号】 |
特開2002−108706(P2002−108706A) |
| 【公開日】 |
平成14年4月12日(2002.4.12) |
| 【出願番号】 |
特願2000−297069(P2000−297069) |
|