(57)【特許請求の範囲】
【請求項１】
主記憶装置からプログラムを２次記憶装置にページアウトするページング処理装置において、
２次記憶装置の空き領域毎に一定時間にアクセスできる有効サイズ情報を保持する構造体と、
ページアウト要求があったときに、上記構造体の有効サイズ情報を参照してページアウト要求を満たす１つあるいは複数のページング領域を決定するページング領域決定手段と、
上記決定されたページング領域に主記憶装置からページアウト要求のあったプログラムをページアウトするページング手段と
を備えたことを特徴とするページング処理装置。
【請求項２】
上記ページアウト要求として、主記憶装置が不足するサイズをもとに必要となる時のサイズを予測してこの予測した予測サイズを当該ページアウト要求としたことを特徴とする請求項１記載のページング処理装置。
【請求項３】
上記構造体の有効サイズ情報を参照してページアウト要求を満たすサイズかつ必要となる時までにページアウトできる１つあるいは複数のページング領域を決定することを特徴とする請求項１あるいは請求項２記載のページング処理装置。
【請求項４】
上記有効サイズを空き領域が変化する毎に動的に求めて上記構造体に設定することを特徴とする請求項１から請求項３のいずれかに記載のページング処理装置。
【請求項５】
上記２次記憶装置の空き領域のアクセス速度を測定して上記構造体の有効サイズ情報として動的に再設定することを特徴とする請求項１から請求項４のいずれかに記載のページング処理装置。
【請求項６】
コンピュータを、
２次記憶装置の空き領域毎に一定時間にアクセスできる有効サイズ情報を構造体に設定する手段と、
ページアウト要求があったときに、上記構造体の有効サイズ情報を参照してページアウト要求を満たす１つあるいは複数のページング領域を決定するページング領域決定手段と、
上記決定されたページング領域に主記憶装置からページアウト要求のあったプログラムをページアウトするページング手段と
として機能させるプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、主記憶装置からプログラムを２次記憶装置にページアウトするページング処理装置および記録媒体に関するものである。
【０００２】
近年の計算機システムには仮想記憶方式が多く採用されており、そこでは多くのプロセスを並列に動作させることが可能であり、主記憶装置の資源量以上のプロセスを動作させることが可能である。また、プロセッサ技術の発展による論理空間の拡大に伴い、巨大なプロセスも実行可能となりつつある。
【０００３】
プロセスは主記憶装置上で動作する。そのため、複数のプロセスを並列に実行する際に、そのプロセスのサイズの和が主記憶装置のサイズ以上になってしまう場合には、システムは２次記憶装置に対して、ページング処理を頻繁に繰り返して、処理を進める。
【０００４】
そのため、論理空間の拡大に対応して、２次記憶装置も資源量を拡大する必要があり、複数の２次記憶装置をページング領域として設定されるようになってきた。
【０００５】
しかし、ページング領域として一般に用いられる２次記憶装置の処理速度はプロセッサの処理速度に比して極めて遅い。また、ページング領域として一般的に用いられるハードディスク装置はそのセクタ位置によってアクセス速度が変化することが知られている。そのため、２次記憶装置の状態によっては、ページング処理の終了待ちのため、結果としてシステム全体のスループットが悪化する場合がある。即ち、仮想記憶システムでは主記憶装置と２次記憶装置との間でページング処理が発生すると、主記憶装置の容量が負荷に比して少ない場合、ページング処理に伴う２次記憶装置に対する入出力のオーバヘッドが過大となるため、その効率を改善する必要がある。
【０００６】
【従来の技術】
従来、仮想記憶システムにおけるページング処理の効率を向上させるためには、ページング処理時のプログラムの追い出しアルゴリズムの改善やページング領域として設定する２次記憶装置の分散化による方法が提案され、実現されている。
【０００７】
しかし、プログラムの追い出しアルゴリズムを改善しただけでは１回のページアウト要求は、その対象ページ数の大小に関わらず一括してページアウトしてしまう。
【０００８】
また、２次記憶装置を分散化しても、少量の主記憶装置の空き資源によって処理が進行する場合にも、巨大なページアウト要求を発行する場合がある。
更に、ページング領域として設定する２次記憶装置のアクセス速度を考慮していない、あるいは一定として考慮しているため、２次記憶装置の状態によって処理が遅延する場合がある。
【０００９】
【発明が解決しようとする課題】
以上のように従来の仮想記憶システムは、ページング処理を行う際に、必要とする主記憶装置の空き資源量を考慮していなく、しかも、ページング領域として指定された２次記憶装置のアクセス速度を考慮していない状態でページング処理を行うために、少量の主記憶装置の空き資源によってシステムが次の処理を実行可能な場合にも巨大なページアウト要求を発行し、かつ、２次記憶装置のアクセス速度が遅い部分にページアウトしてしまう場合があり、２次記憶装置の処理待ちのために、その間、主記憶装置が解放されず、システムが他の処理を実行できなくなるという問題が生じていた。
【００１０】
本発明は、これらの問題を解決するため、ページング処理時に、主記憶装置の空き容量を予測して２次記憶装置の空き領域中の有効サイズなどをもとに最適なページング領域を決定してページアウトし、主記憶装置からの無駄な巨大サイズのページアウトを無くすと共に、２次記憶装置の有効サイズなどを常に動的に更新して最適なページング領域を決定してページング処理に伴う待ちを無くしてシステム全体のスループットを向上させることを目的としている。
【００１１】
【課題を解決するための手段】
図１を参照して課題を解決するための手段を説明する。
図１において、処理装置１は、プログラムに従い各種処理を行うものであって、主記憶装置２、ページング領域決定手段３、ページング手段４、および構造体６などから構成されるものである。
【００１２】
主記憶装置２は、プログラムおよびデータを格納して処理を行うものである。
ページング領域決定手段３は、２次記憶装置７の空き領域のいずれかをページング領域として決定するものである。
【００１３】
ページング手段４は、主記憶装置２からプログラムを読み出して２次記憶装置７の空き領域中のページング領域に書き込むもの（ページアウトするもの）である。
【００１４】
構造体６は、２次記憶装置７の空き領域の有効サイズ情報などを設定して管理するものである。
２次記憶装置７は、主記憶装置２に格納されているプログラムをページアウトする対象の記憶装置である。
【００１５】
次に、動作を説明する。
ページング領域決定手段３がページアウト要求があったときに構造体６の有効サイズ情報などを参照してページアウト要求を満たす１つあるいは複数のページング領域を決定し、ページング手段４が決定された２次記憶装置７の空き領域中のページング領域に主記憶装置２からページアウト要求のあったプログラムを読み出して格納するようにしている。
【００１６】
この際、主記憶装置２の領域が不足するサイズをもとに必要となる時のサイズを予測してこの予測した予測サイズをページアウト要求するようにしている。
また、構造体６の有効サイズ情報を参照してページアウト要求を満たすサイズかつ必要となる時までにページアウトできる２次記憶装置７の空き領域中の１つあるいは複数のページング領域を決定するようにしている。
【００１７】
また、有効サイズを空き領域が変化する毎に動的に求めて構造体６に設定して更新するようにしている。
また、２次記憶装置７の空き領域のアクセス速度を測定して構造体６の有効サイズ情報として設定するようにしている。
【００１８】
従って、ページング処理時に、主記憶装置２の空き容量を予測して２次記憶装置７の空き領域中の有効サイズなどをもとに最適なページング領域を決定してページアウトすることにより、主記憶装置２からの無駄な巨大サイズのページアウトを無くすと共に、２次記憶装置７の有効サイズなどを常に動的に更新して最適なページング領域を決定してページング処理に伴う待ちを無くしてシステム全体のスループットを向上させることが可能となる。
【００１９】
【実施例】
次に、図１から図８を用いて本発明の実施の形態および動作を順次詳細に説明する。
【００２０】
図１は、本発明のシステム構成図を示す。
図１において、処理装置１は、図示外の記録媒体から読み出したプログラムをローディングして起動し、以下に説明する各種処理を行うものであって、ここでは、主記憶装置２、ページング領域決定手段３、ページング手段４、Ｉ／Ｏ制御装置５、および構造体６等から構成されるものである。
【００２１】
主記憶装置２は、図示外の記録媒体からプログラムおよびデータを読み出してローディングし、各種処理を行うための記憶装置であり、ここでは、ページアウトの対象となるものである。
【００２２】
ページング領域決定手段３は、２次記憶装置７の空き領域のいずれかをページング領域として決定するものであって、構造体６を参照してページング領域を決定するものである（図３、図８を用いて後述する）。
【００２３】
ページング手段４は、主記憶装置２からプログラムを読み出して２次記憶装置７の空き領域中のページング領域に書き込むもの（ページアウトするもの）である。
【００２４】
Ｉ／Ｏ制御装置５は、２次記憶装置７にプログラムを格納（ページアウト）したり、２次記憶装置７からプログラムを読み出して主記憶装置２に格納（ページイン）したりなどの入出力を行うものである。
【００２５】
構造体６は、２次記憶装置７の空き領域の有効サイズ情報などを設定して管理するものであって、後述する図５に示すような構造を持つものである。
２次記憶装置（１）、（２）７は、主記憶装置２に格納されているプログラムをページアウトする対象の記憶装置であって、ハードディスク装置などであり、後述する図２に示すように、セクタ位置によってアクセス速度（処理速度）が異なるものである。
【００２６】
表示装置８は、各種データや指示などを表示するものである。
入力装置９は、データを入力したり、各種操作指示をを入力したりするものであって、例えばマウスやキーボードなどである。
【００２７】
次に、図２の概念説明図を用いて２次記憶装置７の有効アクセス情報などについて説明する。
図２は、本発明の概念説明図を示す。
【００２８】
図２の（ａ）は、ハードディスク状態図（初期状態）を示す。この状態は、図１の２次記憶装置７であるハードディスク装置が初期状態で、プログラムが格納されていなく、全てが空き領域の状態である。ここで、横軸の左端の「始まり」が磁気ディスク円盤の外側のセクタ位置に相当し、右端の「終わり」が磁気ディスク円盤の内側のセクタ位置に相当する。縦軸はサイズ（一定時間にアクセスできるサイズ）を表す。
【００２９】
図２の（ａ）において、連続サイズは、図示のように、始まりのセクタ位置から終わりのセクタ位置に向けてアクセスできる可能なサイズを表し、左端の始まりのセクタ位置では最大のアクセスできる可能なサイズとなり、右端の終わりのセクタ位置では最小のアクセスできる可能なサイズ（ゼロ）となる右下がりの直線で表されるものである。
【００３０】
理論サイズは、図示のように、一定時間でアクセスできるサイズを表し、左端の始まりのセクタ位置では最大の一定時間でアクセスできるサイズとなり、右端の終わりに向かうに従い徐々に小さくなり、右端で所定のサイズとなる右下がりの直線で表されるものである。この理論サイズは、各セクタ位置で実際にアクセス（読み書き）したときの一定時間にアクセスできるサイズを測定して設定する。左端の始まりはディスク装置の外周であって速度が速く一定時間に大きなサイズをアクセスでき、右端の終わりはディスク装置の内周であって速度が遅く一定時間に若干小さなサイズをアクセスできる。
【００３１】
有効サイズは、斜線の領域であって、図示の連続サイズと理論サイズのうちの小さいサイズを最大とした範囲内であり、当該斜線の範囲のサイズ（一定時間にアクセスできるサイズ）でページング処理を行うことで規定時間内に当該ページング処理を終了できる範囲内である（即ち、ページング処理に待ちが生じて、システムが主記憶装置２をアクセスして処理を行うのを待たされない範囲内である）。
【００３２】
図２の（ｂ）は、ハードディスク状態図（フラグメント時）を示す。この状態は、図１の２次記憶装置７であるハードディスク装置が図示のようにフラグメントされた状態（図示の使用中領域が設定された状態）であって、フラグメントによって空き領域がここでは、４つに分断されている状態である。
【００３３】
図２の（ｂ）において、連続サイズは、使用中領域では０（ゼロ）とし、各空き領域で左端の始まりのセクタ位置から終わりのセクタ位置に向けてアクセスできる可能なサイズを表し、左端の始まりのセクタ位置では最大のアクセスできる可能なサイズとなり、右端の終わりのセクタ位置では最小のアクセスできる可能なサイズ（ゼロ）となる右下がりの直線で、それぞれ図示のように表されるものである。
【００３４】
理論サイズは、図示のように、既述した一定時間でアクセスできるサイズであるが、システムの負荷の状態によって多少の変動があるのでページング処理時などに一定時間でアクセスできるサイズを実測して再設定するものである。
【００３５】
有効サイズは、斜線の領域であって、既述した連続サイズと理論サイズのうちの小さいサイズを最大とした範囲内であり、ここでは、図示の斜線の４つの領域に示すサイズのグラフ（直線グラフ）となる。
【００３６】
以上のようにして２次記憶装置７の各空き領域について斜線で示す有効サイズを求めて設定（後述する図５の構造体に設定）することが可能となる。そして、各空き領域の有効サイズを参照して最適なページング領域を１つあるいは複数決定し、ページアウトを行うようにする。
【００３７】
次に、図３のフローチャートの順番に従い図１の構成の動作を詳細に説明する。
図３は、本発明の動作説明フローチャートを示す。
【００３８】
図３において、Ｓ１は、ページアウト要求を行う。これは、ページアウトする主記憶装置２上からプログラムをページアウトするサイズＰ１を指定したページアウト要求を行う。
【００３９】
Ｓ２は、規定時間後に必要となる主記憶容量の予測をＰ２として行う。これは、後述する図６に示すように、時刻ｔ（ｉ）でページアウト要求（サイズＰ１を指定）があったときに、当該ページアウトによって実際に主記憶装置上で獲得して使用する時刻ｔ（ｉ＋１）に必要な予定のサイズＰ２を予測、例えば線形予想して求める。
【００４０】
Ｓ３は、予測サイズＰ２と、ページアウト可能なサイズＱ１の比較を行う。これは、空き領域のリスト（有効サイズのリスト）を参照し、最適なページング領域を選ぶ。例えば図４の場合には、
（１）  予測サイズＰ２が小さいときは、図４の領域Ａ２あるいはＡ４のうちのサイズを満たす方から利用領域を選ぶ（１つでサイズ不足のときは複数の領域を利用する）。
【００４１】
（２）  予測サイズＰ２が大きいときは、
・予測サイズＰ２が所定値（図４では２６）以下の場合には、分割せずに記録することが可能な、図４のＡ３（最大サイズ）を利用領域に選ぶ。
【００４２】
・予測サイズＰ２が所定値（図４では２６）より大きい場合には、図４ではセクタ位置４５からサイズ２６の領域を利用し、不足する分はそのサイズに応じて利用領域を定める。
【００４３】
Ｓ４は、ページアウトする。これは、Ｓ３で選んで決定したページング領域に、主記憶装置から読み出したプログラムをページ単位に格納すると共に、主記憶装置２上のページと、２次記憶装置７上のページアウトしたページとを対応づけてテーブルに登録して管理し、ページインに備える。
【００４４】
Ｓ５は、システム管理パラメタの更新を行う。
Ｓ６は、システム管理パラメタの設定を行う。これら、Ｓ５、Ｓ６は、後述する図５の構造体の情報を更新（設定）する。そして、Ｓ２に戻り繰り返す。
【００４５】
以上によって、ページアウト要求（要求サイズＰ１）があると、当該ページアウトで主記憶装置２から領域を獲得して使用するときに必要となる予測サイズＰ２を予測し、当該予測した予測サイズＰ２を、２次記憶装置７の空き領域の情報（有効サイズ情報）を参照して最適なページング領域を選択して決定し、決定した２次記憶装置７の空き領域中の最適なページング領域に、主記憶装置２から読み出したプログラムをページ単位にページアウト（格納）することにより、無駄な巨大サイズのページアウトを無くしたり、更に、２次記憶装置７の空き領域中から最適なページング領域を選んで決定し、ページング処理の遅延によるシステムの待ちを無くしてシステム全体のスループットを向上させることが可能となる。
【００４６】
図４は、本発明の説明図を示す。これは、２次記憶装置７であるハードディスク装置に図示の使用中領域を使用した状態における各パラメタ（有効サイズ情報など）の例を示す。ここで、空き領域の左側から領域Ａ１、Ａ２、Ａ３、Ａ４とする。また、図５は、図４の各パラメタを構造体に設定した例を示す。
【００４７】
（１）  図４の各空き領域Ａ１、Ａ２、Ａ３、Ａ４の最大有効サイズの先頭セクタ位置と末尾セクタ位置、最大連続サイズの先頭セクタ位置と長さは、図５の（ａ）に示す下記のようになる。
【００４８】
0003898369.tif 000002
ここで、領域Ａ３は、
・有効サイズ領域の先頭セクタが４５で、末尾セクタが５６であり
・連続サイズ領域の先頭セクタが４５で、長さが３５セクタである
ことを表す。同様に、領域Ａ１、Ａ２、Ａ４は有効サイズ領域がそれぞれ無く、連続サイズ領域がそれぞれ先頭セクタ０，２５，９０で、長さ１５、１０、１０セクタである。
【００４９】
（２）  図４の理論サイズ（一定時間内でアクセスできるサイズ）の範囲は、先頭（図中のオフセット０のＲ１）の３５、および最後（図中の最後のＲ２）の１５であって、図５の（ｂ）に示す下記のように設定する。
【００５０】
0003898369.tif 000003
尚、理論サイズは、ページング領域（空き領域）が更新される毎に新たな理論サイズ（ページング領域のアクセス時に一定時間にアクセスできたサイズを求めて算出した理論サイズ）に更新する。
【００５１】
（３）  図４の各サイズは、図５の（ｃ）に示す下記のようにそれぞれ設定する。
最大有効サイズ        ２６
最大連続サイズ        ３５
主記憶獲得速度          −（システム動作に依存し、実測する）
要求サイズ              −（システム動作に依存し、必要な要求サイズ、例えば図６で説明する予測サイズ）
ここで、
・最大有効サイズ２６は、今現在使える最大有効サイズであって、図４の例では、領域Ａ３の２６である。
【００５２】
・最大連続サイズ３５は、今現在使える最大連続サイズであって、図４の例では、領域Ａ３の３５である。
尚、２次記憶装置が複数の場合には、当該２次記憶装置を区別する識別子を付与して区別してそれぞれ管理する。
【００５３】
以上の図４のように空き領域Ａ１、Ａ２、Ａ３、Ａ４が存在したときには図５に示すようなパラメタが構造体に設定されるので、この構造体中から既述した図３のフローチャートの手順に従い最適な空き領域をページング領域として選んで決定し、ページアウトすることにより、無駄な巨大サイズのページアウトを行うことなく、予測して必要な要求サイズのみを、２次記憶装置の空き領域中から最適なページング領域を決定してページアウトを行うことができ、ページング処理時の待ちがなく、システム全体のスループットを向上させることが可能となる。
【００５４】
図６は、本発明の説明図を示す。これは、システムが主記憶装置上で必要とするサイズを予測するときの説明図であって、横軸は時間を表し、各横軸の目盛はＩ／Ｏ発行するデーモンの起動間隔を表す。縦軸は主記憶装置上で必要とするサイズ（要求サイズ、予測サイズ）を表す。
【００５５】
（１）  時刻ｔ（ｉ）の時にシステムが必要とする要求サイズをＰ１とする。
（２）  次の時刻ｔ（ｉ＋１）の時にシステムが必要と予測される予測サイズＰ２を求める。求め方は、ここでは、過去の履歴から直線予測して点線の延長線上で次の時刻ｔ（ｔ＋１）におけるサイズを予測サイズとして求める。
【００５６】
以上のように、システムからの要求サイズＰ１をもとに、主記憶装置から獲得して実際に使用する時に必要なサイズを予測して予測サイズＰ２を求めてこれを要求サイズにすることで、無用な巨大サイズの要求を無くし、巨大サイズのページアウトに伴うページング処理による待ちを無くし、システム全体のスループットを向上させることが可能となる。
【００５７】
図７は、本発明の動作説明フローチャート（ページング領域設定）を示す。これは、２次記憶装置７上で空き領域を追加設定し、既述した図５の構造体にパラメタを追加設定するときのフローチャートである。
【００５８】
図７において、Ｓ１１は、ページング領域の追加設定を行う。これは、２次記憶装置７上で、既述した図４の領域Ａ１などのように、ページング領域の対象としてパーティションをページング領域専用にフォーマットし、そのパーティション番号をシステムが記憶することで、ページング領域として追加設定する。
【００５９】
Ｓ１２は、連続サイズ・理論サイズの算出を行う。これは、Ｓ１１で追加設定したページング領域について連続サイズ・理論サイズを既述した図４、図５で算出したようにして算出する。
【００６０】
Ｓ１３は、システムパラメタの保存を行う。これは、Ｓ１２で算出した追加設定したページング領域のパラメタ（連続サイズ、理論サイズなどのパラメタ）を既述した図５の構造体に追加設定する。
【００６１】
以上によって、２次記憶装置７上でページング領域の追加設定および構造体６にパラメタが追加設定されたこととなる。
図８は、本発明の動作説明フローチャートを示す。ここで、左側はシステム動作を表し、右側はシステムパラメタ設定（記憶／管理）を表す。
【００６２】
図８において、Ｓ２１は、主記憶の獲得を行う。この際、主記憶獲得時の速度を求め、Ｓ４２の主記憶獲得速度として記憶（図５の構造体に記憶）する。
Ｓ２２は、ページアウト要求を行う。これは、Ｓ４１の主記憶空き容量を参照してページアウト要求を行う。
【００６３】
Ｓ２３は、ページアウト対象選出する。
Ｓ２４は、要求サイズの算出を行う。これは、Ｓ４１の主記憶空き容量、Ｓ４２の主記憶獲得速度、Ｓ４３の要求サイズをもとに既述した予測サイズを求めて要求サイズとする。
【００６４】
Ｓ２５は、分割の要・不要決定する。これは、Ｓ２４で求めた要求サイズについて、複数の２次記憶装置などに分割する必要があるか否か決定する（Ｓ４３の要求サイズ、Ｓ４４のプロセスサイズ、Ｓ４５の最大有効サイズ、Ｓ４６の最大連続サイズをもとに決定する）。
【００６５】
Ｓ２６は、セクタ位置決定する。２次記憶装置７の空き領域中から、要求サイズを満たすページング領域とするもののセクタ位置を決定する（Ｓ４７の有効サイズ領域、Ｓ４８の連続サイズ領域をもとに決定する）。
【００６６】
Ｓ２７は、パラメタ更新する。これは、Ｓ４５からＳ４８のパラメタを更新する。
Ｓ２８は、ページアウトする。
【００６７】
Ｓ２９は、理論サイズを再設定する。これは、ページアウト時の実際の一定時間内にアクセスできたサイズをもとに理論サイズを求めて再設定する（Ｓ４９の理論サイズに設定する）。
【００６８】
Ｓ３０は、パラメタ再更新する。これは、Ｓ２９で理論サイズ再設定した後に各パラメタを再算出してパラメタ再更新する（Ｓ４５からＳ４８のパラメタを再更新する）。
【００６９】
【発明の効果】
以上説明したように、本発明によれば、ページング処理時に、主記憶装置２の空き容量を予測して２次記憶装置７の空き領域中の有効サイズなどをもとに最適なページング領域を決定してページアウトする構成を採用しているため、主記憶装置２からの無駄な巨大サイズのページアウトを無くすと共に、２次記憶装置７の有効サイズなどを常に動的に更新して最適なページング領域を決定してページング処理に伴う待ちを無くしてシステム全体のスループットを向上させることができる。
【図面の簡単な説明】
【図１】本発明のシステム構成図である。
【図２】本発明の概念説明図である。
【図３】本発明の動作説明フローチャートである。
【図４】本発明の説明図である。
【図５】本発明の構造体例である。
【図６】本発明の説明図（予測）である。
【図７】本発明の動作説明フローチャート（ページング領域設定）である。
【図８】本発明の動作説明フローチャートである。
【符号の説明】
１：処理装置
２：主記憶装置
３：ページング領域決定手段
４：ページング手段
５：Ｉ／Ｏ制御装置
６：構造体
７：２次記憶装置
８：表示装置
９：入力装置
【図１】
0003898369.tif 000004
【図２】
0003898369.tif 000005
【図３】
0003898369.tif 000006
【図４】
0003898369.tif 000007
【図５】
0003898369.tif 000008
【図６】
0003898369.tif 000009
【図７】
0003898369.tif 000010
【図８】
0003898369.tif 000011