(57)【特許請求の範囲】
【請求項１】
所定のタイミングで実行されるよう設定されたワーキングセット見直し時に、ワーキングセット内のページが予め設定された基準によりページアウトの対象であるか否かを調べるページングチェック手段と、
前記ページングチェック手段にてページアウトの対象であると判断されたページを、主記憶装置から補助記憶装置にページアウトするページアウト処理手段と、
複数のページを関連付けてブロック化すると共に、当該ブロック化されたページのうち一部のページを、前記ページングチェック手段によってページアウトの対象であるか否かが調べられるページングチェック対象として設定するブロック化処理手段と、を備え、
前記ページングチェック手段は、ブロック化されている複数のページのうち、ページングチェック対象として設定されたページがページアウトの対象であるか否かを調べ、当該ページがページアウトの対象ではないと判断した場合に、当該ページを次のワーキングセット見直し時におけるページングチェック対象から外し、当該ページと同一ブロック内の他のページを次のワーキングセット見直し時におけるページングチェック対象として設定する、
情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記ページングチェック手段は、ページングチェック対象として設定されたページがページアウトの対象であると判断した場合に、当該ページを前記ページアウト処理手段にてページアウト可能なよう当該ページが属するブロックのブロック化を解除する、
情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置であって、
前記ページングチェック手段は、ページングチェック対象として設定されたページがページアウトの対象であると判断した場合に、当該ページと同一ブロック内の他のページもページアウトの対象であるか否かを調べる、
情報処理装置。
【請求項４】
請求項１乃至３のいずれかに記載の情報処理装置であって、
前記ページングチェック手段は、ページングチェック対象として設定されたページがページアウトの対象ではないと判断した場合に、当該ページと同一ブロック内の他のページがページアウトの対象であるか否かの判断は行わない、
情報処理装置。
【請求項５】
請求項１乃至４のいずれかに記載の情報処理装置であって、
前記ブロック化処理手段は、ページ毎に予め設定されたページアウトされるまでの未使用時間が所定の範囲内である複数のページをブロック化する、
情報処理装置。
【請求項６】
請求項１乃至５のいずれかに記載の情報処理装置であって、
前記ブロック化処理手段は、ページ毎に予め設定された当該ページの分類が同一分類である複数のページをブロック化する、
情報処理装置。
【請求項７】
情報処理装置に、
所定のタイミングで実行されるよう設定されたワーキングセット見直し時に、ワーキングセット内のページが予め設定された基準によりページアウトの対象であるか否かを調べるページングチェック手段と、
前記ページングチェック手段にてページアウトの対象であると判断されたページを、主記憶装置から補助記憶装置にページアウトするページアウト処理手段と、
複数のページを関連付けてブロック化すると共に、当該ブロック化されたページのうち一部のページを、前記ページングチェック手段によってページアウトの対象であるか否かが調べられるページングチェック対象として設定するブロック化処理手段と、を実現させると共に、
前記ページングチェック手段は、ブロック化されている複数のページのうち、ページングチェック対象として設定されたページがページアウトの対象であるか否かを調べ、当該ページがページアウトの対象ではないと判断した場合に、当該ページを次のワーキングセット見直し時におけるページングチェック対象から外し、当該ページと同一ブロック内の他のページを次のワーキングセット見直し時におけるページングチェック対象として設定する、
プログラム。
【請求項８】
請求項７に記載のプログラムであって、
前記ページングチェック手段は、ページングチェック対象として設定されたページがページアウトの対象であると判断した場合に、当該ページを前記ページアウト処理手段にてページアウト可能なよう当該ページが属するブロックのブロック化を解除する、
プログラム。
【請求項９】
所定のタイミングで実行されるよう設定されたワーキングセット見直し時に、ワーキングセット内のページが予め設定された基準によりページアウトの対象であるか否かを調べるページングチェック工程と、
前記ページングチェック工程にてページアウトの対象であると判断されたページを、主記憶装置から補助記憶装置にページアウトする処理を行うページアウト処理工程と、を有すると共に、
複数のページを関連付けてブロック化し、当該ブロック化されたページのうち一部のページを、ページアウトの対象であるか否かを調べるページングチェック対象として設定するブロック化工程を有し、
前記ページングチェック工程は、ブロック化されている複数のページのうち、ページングチェック対象として設定されたページがページアウトの対象であるか否かを調べ、当該ページがページアウトの対象ではないと判断した場合に、当該ページを次のワーキングセット見直し時におけるページングチェック対象から外し、当該ページと同一ブロック内の他のページを次のワーキングセット見直し時におけるページングチェック対象として設定する、
情報処理方法。
【請求項１０】
請求項９に記載の情報処理方法であって、
前記ページングチェック工程は、ページングチェック対象として設定されたページがページアウトの対象であると判断した場合に、当該ページを前記ページアウト処理工程にてページアウト可能なよう当該ページが属するブロックのブロック化を解除する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置にかかり、特に、主記憶装置と補助記憶装置との間でページングを行う機能を有する情報処理装置に関する。
【背景技術】
【０００２】
情報処理装置では、主記憶装置の有効利用を図るために、使用していないページを主記憶装置から補助記憶装置にページアウトするページング方式が採用されている。例えば、アプリケーションが現在使用している領域であるワーキングセット内のページを周期的に見直すことで、不要なページを主記憶装置からページアウトしている。
【０００３】
ところが、情報処理システムに搭載される主記憶装置の容量が大きくなり管理するページ数が多くなるにつれて、そのページが使用されているかどうかを判断するワーキングセット見直し処理のＣＰＵ負荷が大きくなってしまう、という問題があった。
【０００４】
かかる問題に対して、ワーキングセット見直し処理によるＣＰＵ負荷を軽減するためには、ページサイズを大きくして見直し対象ページ数を削減する方法、ワーキングセット見直しの間隔を長くする方法、さらには、ワーキングセット見直しを行うページを限定する方法がある。その一例が、特許文献１、特許文献２に記載されている。
【０００５】
例えば、特許文献１，２に記載されているワーキングセット管理方式は、図１、図２に示すように、ワーキングセット（ＷＳ）見直し周期２３２（図１）、ＬＲＵカウント幅２３３（図１）、ワーキングセット（ＷＳ）見直し要否フラグ２３４（図２）、を用いて、ワーキングセット見直し処理のＣＰＵ負荷軽減と主記憶装置の利用効率の向上を図っている。
【０００６】
ここで、上記ＬＲＵカウント幅２３３とは、ワーキングセット見直し処理において、参照ビット２４１を調べてページに参照（アクセス）がなかった場合、ＬＲＵカウンタ２４２をいくつ進めるかを指定するパラメータであり、ＬＲＵカウント幅が大きければページアウトされやすく、逆にＬＲＵカウント幅が小さければページアウトされにくくなる、というように設定される。
【０００７】
このような構成を有するワーキングセット管理方式は、次のように動作する。まず、特許文献１について図１を用いて説明する。図１に示す例における情報処理装置は、実メモリ２１０、ワーキングセット管理手段２２０、ワーキングセット管理テーブル２３０、メモリ管理テーブル２４０を備える。上記ワーキングセット管理テーブル２３０は、ワーキングセットのページリストの先頭へのポインタ（ワーキングセット（ＷＳ）ポインタ２３１）、ワーキングセット見直し周期２３２、ＬＲＵカウント幅２３３を含む。また、メモリ管理テーブル２４０は、各ページのデータとして、参照ビット２４１、ＬＲＵカウンタ２４２を含む。
【０００８】
そして、上述したワーキングセット見直し周期２３２を長く設定すれば、ワーキングセット見直し処理にかかるＣＰＵ負荷は軽減されるが、不要なページがページアウトされにくくなり主記憶の利用効率が低下する。逆に、ワーキングセット見直し周期２３２を短くすれば、主記憶の利用効率は向上するが、ワーキングセットを細かく制御するためＣＰＵ負荷は高くなってしまう。
【０００９】
つまり、上述した方法では、ワーキングセット見直し周期２３２を長くしてＬＲＵカウント幅２３３を大きくすれば、ワーキングセット見直し回数を削減できるが、参照されないページが主記憶装置に残りやすくなってしまい、当該主記憶装置の利用効率が低下する、という問題が生じる。
【００１０】
次に、特許文献２について図２を用いて説明する。図２に示す例における情報処理装置は、実メモリ２１０、ワーキングセット管理手段２２０、ワーキングセット管理テーブル２３０、メモリ管理テーブル２４０、を備える。上記ワーキングセット管理テーブル２３０は、ワーキングセットのページリストの先頭へのポインタ（ワーキングセット（ＷＳ）ポインタ２３１）、ワーキングセット見直し要否フラグ２３２を含み、メモリ管理テーブル２４０は、各ページの情報として、参照ビット２４１、ＬＲＵカウンタ２４２を含む。
【００１１】
そして、ワーキングセット見直し要否フラグ２３２を使って、プログラム毎にワーキングセット見直し処理の有無を指定することで、ワーキングセット見直し対象ページを削減し、ワーキングセット見直し処理によるＣＰＵ負荷を軽減している。しかしながら、上述した方法では、ワーキングセット見直し処理を行わないページが増加することで、主記憶装置の利用効率が低下する、という問題が生じる。
【００１２】
そして、上述した特許文献１、特許文献２では、手動でワーキングセット見直し周期や幅、ワーキングセット見直しの要否パラメータを設定し、管理することには限界があり、また、すべてのプログラムについて適当な値が設定されているかを検証することも困難である。さらに、自動で適切なワーキングセット見直し周期と幅を計算する場合も、計算のオーバヘッドが大きく現実的でない。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開昭５７−１６９９８７号公報
【特許文献２】特開昭５７−１６９９８９号公報
【特許文献３】特開平４−１２４７４９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
また、特許文献３に記載のように、ＣＰＵ負荷を軽減するために、複数のページをグループ化して、各グループ内の代表ページの使用頻度に基づいてページアウトするページを選択する、という方法もある。ところが、かかる方法では、使用頻度の異なるページのグループが生成されると、代表ページの使用頻度に応じて適切なページングを行うことができない。
【００１５】
つまり、代表ページの使用頻度が高い場合であっても、同一グループ内の他のページの使用頻度が少ない場合には、当該使用頻度の少ないページが主記憶装置に残ることとなる。逆に、代表ページの使用頻度が低い場合であっても、同一グループ内の他のページの使用頻度が高い場合には、当該使用頻度の高いページがページアウトされてしまう。従って、依然として主記憶装置の効率的な利用を図ることができない、という問題があった。
【００１６】
このため、本発明の目的は、上述した課題である、処理負荷の増加と主記憶装置の利用効率の低下ということ、を解決することにある。
【課題を解決するための手段】
【００１７】
かかる目的を達成するため本発明の一形態である情報処理装置は、
所定のタイミングで実行されるよう設定されたワーキングセット見直し時に、ワーキングセット内のページが予め設定された基準によりページアウトの対象であるか否かを調べるページングチェック手段と、
上記ページングチェック手段にてページアウトの対象であると判断されたページを、主記憶装置から補助記憶装置にページアウトするページアウト処理手段と、
複数のページを関連付けてブロック化すると共に、当該ブロック化されたページのうち一部のページを、上記ページングチェック手段によってページアウトの対象であるか否かが調べられるページングチェック対象として設定するブロック化処理手段と、を備える。
【００１８】
そして、上記ページングチェック手段は、ブロック化されている複数のページのうち、ページングチェック対象として設定されたページがページアウトの対象であるか否かを調べ、当該ページがページアウトの対象ではないと判断した場合に、当該ページを次のワーキングセット見直し時におけるページングチェック対象から外し、当該ページと同一ブロック内の他のページを次のワーキングセット見直し時におけるページングチェック対象として設定する、
という構成をとる。
【００１９】
また、本発明の他の形態であるプログラムは、
情報処理装置に、
所定のタイミングで実行されるよう設定されたワーキングセット見直し時に、ワーキングセット内のページが予め設定された基準によりページアウトの対象であるか否かを調べるページングチェック手段と、
上記ページングチェック手段にてページアウトの対象であると判断されたページを、主記憶装置から補助記憶装置にページアウトするページアウト処理手段と、
複数のページを関連付けてブロック化すると共に、当該ブロック化されたページのうち一部のページを、上記ページングチェック手段によってページアウトの対象であるか否かが調べられるページングチェック対象として設定するブロック化処理手段と、を実現させるためのプログラムである。
【００２０】
そして、上記ページングチェック手段は、ブロック化されている複数のページのうち、ページングチェック対象として設定されたページがページアウトの対象であるか否かを調べ、当該ページがページアウトの対象ではないと判断した場合に、当該ページを次のワーキングセット見直し時におけるページングチェック対象から外し、当該ページと同一ブロック内の他のページを次のワーキングセット見直し時におけるページングチェック対象として設定する、
という構成をとる。
【００２１】
また、本発明の他の形態である情報処理方法は、
所定のタイミングで実行されるよう設定されたワーキングセット見直し時に、ワーキングセット内のページが予め設定された基準によりページアウトの対象であるか否かを調べるページングチェック工程と、
上記ページングチェック工程にてページアウトの対象であると判断されたページを、主記憶装置から補助記憶装置にページアウトする処理を行うページアウト処理工程と、を有する。
【００２２】
そして、さらに、複数のページを関連付けてブロック化し、当該ブロック化されたページのうち一部のページを、ページアウトの対象であるか否かを調べるページングチェック対象として設定するブロック化工程を有し、
上記ページングチェック工程は、ブロック化されている複数のページのうち、ページングチェック対象として設定されたページがページアウトの対象であるか否かを調べ、当該ページがページアウトの対象ではないと判断した場合に、当該ページを次のワーキングセット見直し時におけるページングチェック対象から外し、当該ページと同一ブロック内の他のページを次のワーキングセット見直し時におけるページングチェック対象として設定する、
という構成をとる。
【発明の効果】
【００２３】
本発明は、以上のように構成されることにより、処理負荷を軽減しつつ、主記憶装置の利用効率の向上を図ることができる。
【図面の簡単な説明】
【００２４】
【図１】本発明に関連する情報処理装置の構成を示す機能ブロック図である。
【図２】本発明に関連する情報処理装置の構成を示す機能ブロック図である。
【図３】本発明の実施形態１における情報処理装置の構成を示す機能ブロック図である。
【図４】図３に開示したシングルページリスト管理テーブルに記憶されるデータのデータ構造を示す図である。
【図５】図３に開示したメモリ管理テーブルに記憶されるデータのデータ構造を示す図である。
【図６】図３に開示した情報処理装置の動作を示すフローチャートである。
【図７】図３に開示した情報処理装置の動作を示すフローチャートである。
【図８】本発明の付記１における情報処理装置の構成を示す機能ブロック図である。
【発明を実施するための形態】
【００２５】
＜実施形態１＞
本発明の第１の実施形態を、図３乃至図７を参照して説明する。図３は、情報処理装置の構成を示す機能ブロック図であり、図４乃至図５は、情報処理装置に記憶されるデータの構造を示す図である。図６乃至図７は、情報処理装置の動作を示すフローチャートである。
【００２６】
［構成］
本実施形態における情報処理装置は、演算装置と、主記憶装置と、補助記憶装置とを備えており、以下に説明するように、仮想記憶管理機能と、ワーキングセット管理機能と、を備えている。
【００２７】
上記仮想記憶管理機能は、主記憶装置と補助記憶装置とを有する情報処理システムにおいて、仮想記憶空間を使って主記憶装置の領域よりも大きなプログラムの実行を可能とする機能である。具体的には、仮想記憶空間に展開されたプログラムは、論理アドレスで管理され、主記憶装置に配置される時に論理アドレスからのアドレス変換によって物理アドレスにマッピングされる。そして、仮想記憶空間は、セグメントやページといった単位で管理されており、補助記憶装置から主記憶装置へページイン、または、主記憶装置から補助記憶装置へページアウトされるときは、ページ単位で行われる。
【００２８】
また、複数のプログラムを限られた主記憶装置を使って互いに影響を与えないよう実行するために、プログラム毎に利用可能な主記憶量を管理する必要がある。その管理する単位をワーキングセットと呼び、最大値／最小値を超えない範囲で主記憶領域を割り当て、効率的に主記憶装置を利用することを、ワーキングセット管理機能が実現している。ここで、ワーキングセット毎の利用可能な主記憶量は、仮想記憶管理、または、利用者が指定できるものとする。
【００２９】
そして、上述したワーキングセット管理の利点は、ワーキングセット毎に適正な主記憶量を割り当てておき、ＬＲＵ（Least Recently Used）制御で使用していないページをあらかじめ非同期にページアウトしておくことで、急な主記憶要求によってミッシングが多発することを防ぐことである。
【００３０】
上述した機能を有する情報処理装置は、具体的に、図３のように構成されている。この図に示すように、情報処理装置は、実メモリ（主記憶装置）１と、ワーキングセット管理部２と、ページイン処理部３と、ページアウト処理部４と、メモリ管理テーブル５と、ブロック化処理部６と、ブロック管理部７と、シングルページ管理部８と、シングルページリスト管理テーブル９と、ワーキングセット管理テーブル１０と、を備える。また、図示しないが、ハードディスクドライブなどの補助記憶装置も接続されている。なお、上述した各部２，３，４，６，７，８は、情報処理装置に装備された演算装置にプログラムが組み込まれることで構築されており、上述した各テーブル５，９，１０は、情報処理装置に装備された記憶装置に形成されている。以下、各構成について詳述する。
【００３１】
まず、シングルページリスト管理テーブル９は、後述するようにブロック化されていないページであるシングルページの一覧であるシングルページリスト（図示せず）へのポインタを記憶している。具体的に、シングルページリスト管理テーブル９は、図４に示すように、後述するようにグループ分けされたシングルページリストの先頭へのポインタ９１を含んでいる。このため、シングルページリストの先頭へのポインタ９１は、グループの数だけ用意されている。そして、シングルページリストの先頭へのポインタ９１は、各グループに属するシングルページリストの先頭ページへのポインタを格納している。ここで、グループとは、後述するようにページ毎に予め設定されている常駐度５７とセグメント属性５８により分けられるページの集合を指す。
【００３２】
なお、上記常駐度５７とは、ＬＲＵ制御によってページアウトされるまでの時間（未使用時間）を決定するパラメータである。また、上記セグメント属性５８とは、ページをコードやデータなどの用途毎に分類するパラメータである。
【００３３】
上記ワーキングセット管理テーブル１０は、ワーキングセット先頭ポインタ１１を含む。ここで、ワーキングセット先頭ポインタ１１は、各ワーキングセットに属するページを表すページリストの先頭ページへのポインタを格納している。
【００３４】
上記メモリ管理テーブル５は、ページングされる各ページの種々の情報を含むページエントリ５０を含み、主記憶装置上にあるページの数だけページエントリ５０を持つ。各ページエントリ５０は、例えば、図５に示すように、シングルフラグ５１、ペアポインタ５２、シングルページリストポインタ５３、ワーキングセットリストポインタ５４、参照ビット５５、ＬＲＵカウンタ５６、常駐度５７、セグメント属性５８を含む。
【００３５】
ここで、ページのうち、後述するブロック化処理にてブロック化されていないページを、シングルページと呼ぶこととする。そして、上記シングルフラグ５１は、そのページがブロック化されているか否かを判断するために利用され、シングルフラグが「１」のときには、非ブロック化ページであることを示す。
【００３６】
上記ペアポインタ５２は、そのページがブロック化されている場合、同一ブロックを構成する相手ページへのポインタを格納する。なお、ここでは、２つのページが関連付けられて同一のブロックに属している状態をブロック化と呼ぶが、さらに多くの数のページをブロック化してもよい。
【００３７】
上記シングルページリストポインタ５３は、シングルページリストにつながっている次のシングルページへのポインタを格納する。上記ワーキングセットリストポインタ５４は、ワーキングセットのページリストにつながっている次のページへのポインタを格納する。
【００３８】
上記参照ビット５５は、ワーキングセット見直し処理から次のワーキングセット見直し処理の間に、そのページにアクセスがあった場合に「１」が設定され、アクセスがない状態では「０」である。
【００３９】
上記ＬＲＵカウンタ５６は、ページイン、または、ブロック化のタイミングでページ毎の初期値（例えば、「０」）を格納し、そのページにアクセスがなければワーキングセット見直し処理のたびに「１」ずつ減算されていく。そして、ＬＲＵカウンタ５６が、しきい値（例：−１）を下回ると、そのページはページアウト対象となる。
【００４０】
上記ワーキングセット管理部２は、ワーキングセット管理テーブル１０を参照して、各ワーキングセットのワーキングセット先頭ポインタ１１が指すページから順に、ページリストにつながっているページをたどり、ブロック化処理部６を呼び出す。
【００４１】
上記ブロック化処理部６（ブロック化処理手段）は、ワーキングセット見直し中のページのシングルフラグ５１を参照し、当該シングルフラグ５１が「０」であれば、ブロック管理部７を呼び出す。一方、シングルフラグ５１が「１」であれば、シングルページ管理部８を呼び出し、当該シングルページ管理部８を介して、そのページの常駐度５７やセグメント属性５８を参照して、そのページが属するグループを判別し、かかるグループに属するシングルページリストがシングルページリスト管理テーブル９に存在するか確認する。
【００４２】
そして、シングルページリストがシングルページリスト管理テーブル９に存在し、そのページが属するグループに他のシングルページがあれば、上記ページと他のシングルページとを関連付けてブロック化し、ブロック管理部７を呼び出す。つまり、ブロック化処理部６は、ページ毎に設定されたＬＲＵ制御によってページアウトされるまでの時間（未使用時間）を決定するパラメータが同一であったり所定の範囲内であることにより同一グループに属するページ同士や、ページの用途など分類が同一であることにより同一グループに属するページ同士をブロック化する。なお、同一グループに属する他のシングルページがなければ、上記ページを１ページだけのブロックとして、ブロック管理部７を呼び出す。
【００４３】
また、ブロック化処理部６は、上述したように複数のページをブロック化する際には、当該ブロック化した両ページのシングルフラグを「０」に設定し、シングルページリストの先頭へのポインタ９１に、判別したグループのシングルページリストの次ページへのポインタを格納する。また、両ページのペアポインタ５２には、ブロック化した相互に相手ページのポインタを格納し、いずれか一方のページのワーキングセットリストポインタには、ワーキングセットのページリストの前ページと後ページを直接つなぐよう変更する。つまり、ブロック化する際に、当該ブロックを構成するページのうち、一方のページは、後述するように参照ビットチェック対象ページ（ページングチェック対象）としてワーキングセットのページリストにつながって設定され、他方のページは、参照ビットチェック対象ページとはせず、ワーキングセットのページリストにつながっていない状態に設定する。なお、１ページだけのブロックの場合は、そのページを参照ビットチェック対象ページとする。
【００４４】
上記ブロック管理部７（ページングチェック手段）は、ブロック化処理部６から渡されたブロックについて、当該ブロック内の参照ビットチェック対象ページに設定されているページの参照ビット５５のチェックを行い、チェックしたページがページアウトの対象となるか否かを調べる。例えば、２つのページにてブロックが構成されている場合には、上述したようにブロック化処理部６にて一方のページが参照ビットチェック対象ページとして設定されているため、当該一方のページの参照ビット５５をチェックする。
【００４５】
具体的に、１ページのブロックの場合であり、かかるページの参照ビット５５が「１」である場合、つまり、前回のワーキングセット見直し時と今回のワーキングセット見直し時との間に、ページへのアクセスがあった場合には、ＬＲＵカウンタ５６をリセットする。一方、参照ビット５５が「０」の場合、つまり、前回のワーキングセット見直し時と今回のワーキングセット見直し時との間に、ページへのアクセスがなかった場合には、ＬＲＵカウンタ５６を減算する。
【００４６】
また、２ページのブロックの場合であり、参照ビットチェック対象ページに設定されているページの参照ビット５５が「１」の場合（前回のワーキングセット見直し時と今回のワーキングセット見直し時との間に、ページへのアクセスがあった場合）、当該参照ビットチェック対象ページであるページのＬＲＵカウンタ５６をクリアし、同一ブロック内の全ページの参照ビット５５を「０」に設定する。つまり、ブロック内の一部（ここでは１つ）のページの参照ビット５５だけをチェックして、当該参照ビット５５が「０」である場合には、同一ブロック内の他のページの参照ビット５５のチェックを行うことなく、当該他のページも主記憶装置に残すようアクセスがあったものとみなす。
【００４７】
そして、さらに、参照ビットチェック対象ページの参照ビット５５が「１」である場合には、当該ページのペアポインタ５２で指される他方のページに、参照ビットチェック対象ページを切り替えるよう設定する。具体的に、参照ビットチェック対象ページを切替えるには、ワーキングセットのページリストでリストの前後ページから向いている参照ビットチェック対象ページへのポインタを、参照ビットチェック対象ページではない他方のページへのポインタに更新する。それと同時に、参照ビットチェック対象ページになったページのワーキングセットリストポインタ５４を更新する。これにより、次回のワーキングセット見直し時には、今回、参照ビット５５がチェックされたページのチェックは行われず、今回、参照ビット５５がチェックされなかった他のページの参照ビット５５がチェックされることとなる。
【００４８】
一方で、参照ビットチェック対象ページに設定されているページの参照ビット５５が「０」の場合（前回のワーキングセット見直し時と今回のワーキングセット見直し時との間に、ページへのアクセスがなかった場合）、当該参照ビットチェック対象ページであるページのＬＲＵカウンタ５６を１つ減算する。そして、ＬＲＵカウンタ５６の値をチェックして、その値が「−１」であれば、参照ビットチェック対象ページであるページをページアウトの対象であると判断し、当該ページを後述するようにページアウトできるようブロック化を解除する。このとき、ページアウトの対象であると判断されたページのペアポインタ５２が指す同一ブロック内の他のページの参照ビット５５もチェックする。そして、参照ビット５５が「０」の他のページは、上記参照ビットチェック対象ページと一緒にページアウト対象とし、参照ビット５５が「１」である他のページは、主記憶装置上に残し、シングルページリストに追加する。このとき、他のページはワーキングセットのページリストにつながっていないので、参照ビットチェック対象ページがつながっていたリストにつなぐ。
【００４９】
ここで、上記では、ブロック管理部７では、ＬＲＵカウンタ５６が「−１」となったページをページアウトの対象であると判断することを説明したが、ＬＲＵカウンタ５６が他の値になったときにページアウトの対象であると判断してもよい。例えば、単に参照ビット５５の値が「０」であるページを、ページアウトの対象であると判断してもよい。
【００５０】
そして、上記ページアウト処理部４とページイン処理部３は、ページング処理を実行する。具体的に、ページアウト処理部４（ページアウト処理手段）は、上述したブロック管理部７にてページアウトの対象であると判断されたページを、主記憶装置である実メモリ１から補助記憶装置にページアウトする処理を行う。なお、上述したように、同一ブロック内の一方のページをページアウトし、他方の残されたページがシングルページとなった場合には、シングルページ管理部８に当該シングルページを通知する。また、ページイン処理部３は、補助記憶装置から実メモリ１にページインしたページを、シングルページ管理部８に通知する。
【００５１】
上記シングルページ管理部８は、ページイン処理部３とページアウト処理部４から呼び出されると、通知されたページの常駐度５７とセグメント属性５８をチェックして、そのページの属するグループのシングルページリストにページを追加する。また、ブロック化処理部６から呼び出されると、指定されたグループのシングルページリストの先頭へのポインタ９１に格納されているページを返却し、シングルページリストの先頭へのポインタ９１に当該グループのシングルページリストの次ページへのポインタを格納する。
【００５２】
［動作］
次に、上述した情報処理装置の動作を、図６乃至図７のフローチャートを参照して説明する。まず、ワーキングセット見直し処理において、シングルページをブロック化する処理を、図６を参照して説明する。
【００５３】
ワーキングセット見直しのタイミングとなると、ワーキングセット管理部２から呼び出されたブロック化処理部６は、メモリ管理テーブル５にあるワーキングセット見直し中のページのシングルフラグ５１をチェックする（ステップＳ１）。このとき、シングルフラグ５１が「１」であれば（ステップＳ１：Ｙｅｓ）、シングルページ管理部８を呼び出し、シングルページリスト管理テーブル９にワーキングセット見直し中のページの属するグループにシングルページリストが存在するかをチェックする（ステップＳ２）。
【００５４】
シングルページリスト管理テーブル９に、ワーキングセット見直し中のページの属するグループのリストが存在しない場合は（ステップＳ３：Ｎｏ）、１ページで１ブロックとして（ステップＳ５）、ブロック管理部７を呼び出す。一方、同一グループのシングルページリストが存在して、当該リストに他のページが存在する場合は（ステップＳ３：Ｙｅｓ）、ワーキングセット見直し中のページとシングルページリストの先頭の他のページとをブロック化する（ステップＳ４、ブロック化工程）。そして、ブロック管理部７を呼び出す。
【００５５】
なお、上記ブロック化の際には、ブロック化されたページのシングルフラグ５１を「０」にすると共に、各ページのポインタをそれぞれ相手方のページのペアポインタ５２に格納する。また、いずれか一方のページのワーキングセットリストポインタ５４に、見直し処理中のワーキングセットのページリストの前ページと後ページを直接つなぐよう変更する。これにより、ブロック化した一方のページを、参照ビットチェック処理の対象に設定する。
【００５６】
次に、ブロック化されたページの参照ビットチェック処理、つまり、主にブロック管理部７の動作を、図４を参照して説明する。
【００５７】
まず、ワーキングセット見直し中のページがブロック化されている場合、あるいは、シングルページを新たにブロック化された後に、上記ブロック化処理部６から呼び出されたブロック管理部７は、参照ビットチェック対象ページとなっているページの参照ビット５５をチェックする（ステップＳ１１、ページングチェック工程）。つまり、複数のページがブロック化されているブロックに対しては、そのうち参照ビットチェック対象ページとなっている一部のページの参照ビット５５をチェックする。
【００５８】
そして、参照ビット５５が「１」である場合には（ステップＳ１１：Ｙｅｓ）、参照ビットチェック対象ページのＬＲＵカウンタ５６をクリアし（ステップＳ１２）、同一ブロック内の他のページ全ての参照ビット５５を「０」にする（ステップＳ１３）。さらに、その後の参照ビットチェック対象を、現在の参照ビットチェック対象となっているページのペアポインタ５２のページ、つまり、同一ブロック内の他のページ、に切り替える（ステップＳ１４）。なお、参照ビットチェック対象ページの切替えは、上述したように、ワーキングセットのページリストでリストの前後ページから向いている現在の参照ビットチェック対象ページへのポインタを、ワーキングセットリストにつながっていなかった他のページへのポインタに更新する。それと同時に、次の参照ビットチェック対象ページになったページのワーキングセットリストポインタを更新する。
【００５９】
また、参照ビット５５が「０」である場合には（ステップＳ１１：Ｎｏ）、参照ビットチェック対象ページのＬＲＵカウンタ５６を１つ減算する（ステップＳ１５）。そして、ＬＲＵカウンタ５６の値をチェックし（ステップＳ１６）、その値が「０」以上であれば（ステップＳ１６：Ｎｏ）、当該ブロックのワーキングセット見直し処理を終了し、次のブロックのワーキングセット見直し処理へ進む。一方、ＬＲＵカウンタ５６が「−１」であれば（ステップＳ１６：Ｙｅｓ）、ペアポインタ５２が指すページつまり同一ブロック内の他のページについても参照ビット５５をチェックする（ステップＳ１７）。
【００６０】
同一ブロック内の他のページについて調べた参照ビット５５が「１」の場合には（ステップＳ１７：Ｙｅｓ）、当該他のページは主記憶装置上に残し、ＬＲＵカウンタ５６が「−１」となった参照ビットチェック対象ページであるページのみをページアウトする（ステップＳ１８、ページアウト処理工程）。なお、上述したように参照ビット５５が「１」である他のページは、シングルページリストに追加し、ワーキングセットのページリストにつながっていないので、現在の参照ビットチェック対象ページがつながっていたリストにつなぎ、次回のワーキングセット見直し処理時の参照ビットチェック対象に設定する。一方で、同一ブロック内の他のページについて調べた参照ビット５５が「０」の場合には（ステップＳ１７：Ｎｏ）、当該他のページと、ＬＲＵカウンタ５６が「−１」となった参照ビットチェック対象ページであるページと一緒に、ページアウトする（ステップＳ１９、ページアウト処理工程）。
【００６１】
以上のように、本実施形態における情報処理装置によると、まず、上述したステップＳ１４に示すように、ブロックの一部のページである参照ビットチェック対象ページのみの参照ビットをチェックし、その度に、次回のワーキングセット見直し時の参照ビットチェック対象ページを切り替えている。このため、利用頻度の高いページと利用頻度の低いページが同一ブロックにブロック化された場合であっても、利用頻度の低いページはページアウトされ、利用頻度の高いページは主記憶装置上に残り、他のページとブロック化される。このようなブロックの解体と再構築を繰り返すことで、利用頻度の近いページ同士のブロックに収束していくこととなる。
【００６２】
また、上述したステップＳ１６，Ｓ１７に示すように、参照ビットチェック対象ページのＬＲＵカウンタの値がしきい値を下回ったタイミングで、現在、参照ビットチェック対象となっていない同一ブロック内の他のページの参照ビットもチェックすることで、使用中のページがページアウトされることを防いでいる。
【００６３】
従って、本発明によると、参照ビットチェック回数を削減して、ワーキングセット見直し処理におけるＣＰＵ負荷を軽減できると共に、主記憶装置の利用効率の向上を図ることができる。
【００６４】
ここで、上記では、２ページを１ブロックにブロック化する場合を説明したが、３ページ以上を１ブロックにブロック化してもよい。そして、かかる場合も上述同様に、参照ビットのチェック対象ページを切替えながらワーキングセット見直し処理を行うことで、上述同様の効果を発揮することができる。
【００６５】
なお、２ページで１ブロックの場合は、メモリ管理テーブル５にあるペアポインタ５２に相手ページのポインタを格納するが、３ページ以上で１ブロックの場合は、参照ビットチェック対象ページの切替え操作で、すべてのページを巡回するようにペアポインタ５２に各ページのポインタを格納すればよい。例えば、ページＰ１，Ｐ２，Ｐ３があった場合には、Ｐ１のペアポインタ５２にはＰ２へのポインタを、Ｐ２のペアポインタ５２にはＰ３へのポインタを、Ｐ３のペアポインタ５２にはＰ１へのポインタを格納する。
【００６６】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における情報処理装置１００の構成の概略について図８を参照して説明する。また、本発明における、プログラム、情報処理方法の構成について説明する。但し、本発明は、以下の構成に限定されない。
【００６７】
（付記１）
所定のタイミングで実行されるよう設定されたワーキングセット見直し時に、ワーキングセット内のページが予め設定された基準によりページアウトの対象であるか否かを調べるページングチェック手段１０２と、
前記ページングチェック手段１０２にてページアウトの対象であると判断されたページを、主記憶装置１１０から補助記憶装置１２０にページアウトするページアウト処理手段１０３と、
複数のページを関連付けてブロック化すると共に、当該ブロック化されたページのうち一部のページを、前記ページングチェック手段１０２によってページアウトの対象であるか否かが調べられるページングチェック対象として設定するブロック化処理手段１０１と、を備え、
前記ページングチェック手段１０２は、ブロック化されている複数のページのうち、ページングチェック対象として設定されたページがページアウトの対象であるか否かを調べ、当該ページがページアウトの対象ではないと判断した場合に、当該ページを次のワーキングセット見直し時におけるページングチェック対象から外し、当該ページと同一ブロック内の他のページを次のワーキングセット見直し時におけるページングチェック対象として設定する、
情報処理装置１００。
【００６８】
（付記２）
付記１に記載の情報処理装置であって、
前記ページングチェック手段は、ページングチェック対象として設定されたページがページアウトの対象であると判断した場合に、当該ページを前記ページアウト処理手段にてページアウト可能なよう当該ページが属するブロックのブロック化を解除する、
情報処理装置。
【００６９】
（付記３）
付記１又は２に記載の情報処理装置であって、
前記ページングチェック手段は、ページングチェック対象として設定されたページがページアウトの対象であると判断した場合に、当該ページと同一ブロック内の他のページもページアウトの対象であるか否かを調べる、
情報処理装置。
【００７０】
（付記４）
付記１乃至３のいずれかに記載の情報処理装置であって、
前記ページングチェック手段は、ページングチェック対象として設定されたページがページアウトの対象ではないと判断した場合に、当該ページと同一ブロック内の他のページがページアウトの対象であるか否かの判断は行わない、
情報処理装置。
【００７１】
（付記５）
付記１乃至４のいずれかに記載の情報処理装置であって、
前記ブロック化処理手段は、ページ毎に予め設定されたページアウトされるまでの未使用時間が所定の範囲内である複数のページをブロック化する、
情報処理装置。
【００７２】
（付記６）
付記１乃至５のいずれかに記載の情報処理装置であって、
前記ブロック化処理手段は、ページ毎に予め設定された当該ページの分類が同一分類である複数のページをブロック化する、
情報処理装置。
【００７３】
（付記７）
情報処理装置に、
所定のタイミングで実行されるよう設定されたワーキングセット見直し時に、ワーキングセット内のページが予め設定された基準によりページアウトの対象であるか否かを調べるページングチェック手段と、
前記ページングチェック手段にてページアウトの対象であると判断されたページを、主記憶装置から補助記憶装置にページアウトするページアウト処理手段と、
複数のページを関連付けてブロック化すると共に、当該ブロック化されたページのうち一部のページを、前記ページングチェック手段によってページアウトの対象であるか否かが調べられるページングチェック対象として設定するブロック化処理手段と、を実現させると共に、
前記ページングチェック手段は、ブロック化されている複数のページのうち、ページングチェック対象として設定されたページがページアウトの対象であるか否かを調べ、当該ページがページアウトの対象ではないと判断した場合に、当該ページを次のワーキングセット見直し時におけるページングチェック対象から外し、当該ページと同一ブロック内の他のページを次のワーキングセット見直し時におけるページングチェック対象として設定する、
プログラム。
【００７４】
（付記８）
付記７に記載のプログラムであって、
前記ページングチェック手段は、ページングチェック対象として設定されたページがページアウトの対象であると判断した場合に、当該ページを前記ページアウト処理手段にてページアウト可能なよう当該ページが属するブロックのブロック化を解除する、
プログラム。
【００７５】
（付記９）
所定のタイミングで実行されるよう設定されたワーキングセット見直し時に、ワーキングセット内のページが予め設定された基準によりページアウトの対象であるか否かを調べるページングチェック工程と、
前記ページングチェック工程にてページアウトの対象であると判断されたページを、主記憶装置から補助記憶装置にページアウトする処理を行うページアウト処理工程と、を有すると共に、
複数のページを関連付けてブロック化し、当該ブロック化されたページのうち一部のページを、ページアウトの対象であるか否かを調べるページングチェック対象として設定するブロック化工程を有し、
前記ページングチェック工程は、ブロック化されている複数のページのうち、ページングチェック対象として設定されたページがページアウトの対象であるか否かを調べ、当該ページがページアウトの対象ではないと判断した場合に、当該ページを次のワーキングセット見直し時におけるページングチェック対象から外し、当該ページと同一ブロック内の他のページを次のワーキングセット見直し時におけるページングチェック対象として設定する、
情報処理方法。
【００７６】
（付記１０）
付記９に記載の情報処理方法であって、
前記ページングチェック工程は、ページングチェック対象として設定されたページがページアウトの対象であると判断した場合に、当該ページを前記ページアウト処理工程にてページアウト可能なよう当該ページが属するブロックのブロック化を解除する、
情報処理方法。
【符号の説明】
【００７７】
１      実メモリ
２      ワーキングセット管理部
３      ページイン処理部
４      ページアウト処理部
５      メモリ管理テーブル
６      ブロック化処理部
７      ブロック管理部
８      シングルページ管理部
９      シングルページリスト管理テーブル
１０    ワーキングセット管理テーブル
１１    ワーキングセット先頭ポインタ
５０    ページエントリ
５１    シングルフラグ
５２    ペアポインタ
５３    シングルページリストポインタ
５４    ワーキングセットリストポインタ
５５    参照ビット
５６    ＬＲＵカウンタ
５７    常駐度
５８    セグメント属性
１００  情報処理装置
１０１  ブロック化処理手段
１０２  ページングチェック手段
１０３  ページアウト処理手段
１１０  主記憶装置
１２０  補助記憶装置
２１０  実メモリ
２２０  ワーキングセット管理手段
２３０  ワーキングセット管理テーブル
２３１  ポインタ
２３２  周期
２３２  要否フラグ
２３３  ＬＲＵカウント幅
２３４  要否フラグ
２４０  メモリ管理テーブル
２４１  参照ビット
２４２  ＬＲＵカウンタ
【図１】
0005454234.tif 000002
【図２】
0005454234.tif 000003
【図３】
0005454234.tif 000004
【図４】
0005454234.tif 000005
【図５】
0005454234.tif 000006
【図６】
0005454234.tif 000007
【図７】
0005454234.tif 000008
【図８】
0005454234.tif 000009