JP3901002B2 - Paging system, paging method, and paging program - Google Patents
Paging system, paging method, and paging program Download PDFInfo
- Publication number
- JP3901002B2 JP3901002B2 JP2002121138A JP2002121138A JP3901002B2 JP 3901002 B2 JP3901002 B2 JP 3901002B2 JP 2002121138 A JP2002121138 A JP 2002121138A JP 2002121138 A JP2002121138 A JP 2002121138A JP 3901002 B2 JP3901002 B2 JP 3901002B2
- Authority
- JP
- Japan
- Prior art keywords
- page
- standby list
- working set
- paged
- list
- 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 - Fee Related
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明は、ページングシステム、ページング方法、および、ページングプログラムに関し、特に、スタンバイリストを階層化したページングシステム、ページング方法、および、ページングプログラムに関する。
【0002】
【従来の技術】
従来のページング方式で実装されたメモリ管理機構はオペレーティングシステム(OS)によって実装に差異があるが、たとえば、マイクロソフト社のWindows(登録商標)での実装は、書籍「アーキテクチャ徹底解説 Microsoft Windows(登録商標) 2000 上 マイクロソフト公式解説書 David A.Solomon,Mark E.Russinovich著/多摩ソフトウエア有限会社訳 ISBN4−89100−191−7 日経BPソフトプレス発行 2001年4月2日」の第7章にまとめて記載されている(特に7.5節以降)。
【0003】
また、「特開平6−236320号公報」記載の発明は、仮想記憶方式のコンピュータシステムにおいて、起動要求毎の時間間隔が長く、かつ、応答性能が重視されるプログラムを主記憶装置からページアウトする際に、そのプログラムの処理特性に応じてワーキングセット保証量とワーキングセット保証時間を更新することによりページアウト量を調整するようにしたメモリ管理方法」である。
【0004】
【発明が解決しようとする課題】
上述した従来の技術(書籍記載)の問題点は、ページフォールトの際に人間が意識するほどの時間がかかる場合があるということである。
【0005】
その理由は、ページを単純にLRUで判断してハードウェアページフォールトを行うからである。ソフトウェアページフォールトに比してハードウェアページフォールトはディスクI/Oを伴うため、処理完了に時間がかかるが、この結果、一時的にページの利用が多発するような場合にアクセス頻度が高いページでもハードウェアページフォールトしてしまう確率が高くなるためである。
【0006】
また、「特開平6−236320号公報」記載の発明の問題点は、スタンバイリストが存在しないので、ハードウェアページアウトの発生確率が高いという問題がある。
【0007】
本発明の目的は、スタンバイリストを階層化することにより、低速なI/O処理を伴うディスクへのハードウェアページアウト回数を利用頻度の高いものについて改善することである。
【0008】
【課題を解決するための手段】
本発明の第1のページングシステムは、ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセット、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルとを有することを特徴とする。
【0009】
本発明の第2のページングシステムは、ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセット、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルと、前記ワーキングセットからページアウトされるページの平均アクセス間隔が事前に設定した閾値以下であれば、前記第2スタンバイリストへページアウトし、閾値以下でなければ、前記第1スタンバイリストへページアウトする処理を行うオペレーティングシステムとを有することを特徴とする。
【0010】
本発明の第3のページングシステムは、ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセット、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルと、前記ワーキングセットからページアウトされるページの平均アクセス間隔が事前に設定した閾値以下であれば、前記第2スタンバイリストに空きがあれば、前記第2スタンバイリストへページアウトし、空きがなければ、前記第2スタンバイリストからページを前記ページファイルへページアウトし、その後、前記ワーキングセットからのページを前記第2スタンバイリストへページアウトし、閾値以下でなければ、前記第1スタンバイリストに空きがあれば、前記第1スタンバイリストへページアウトし、前記第1スタンバイリストに空きがなければ、前記第2スタンバイリストに空きがあれば、前記第1スタンバイリストからのページを前記第2スタンバイリストへページアウトし、空きがなければ、前記第2スタンバイリストからページを前記ページファイルへページアウトし、その後、前記第1スタンバイリストからのページを前記第2スタンバイリストへページアウトし、その後、前記ワーキングセットからのページを前記第1スタンバイリストへページアウトする処理を行うオペレーティングシステムとを有することを特徴とする。
【0011】
本発明の第4のページングシステムは、ページごとのページ切り替え回数、{ページ切り替え回数×前回の平均アクセス間隔+(システム時刻−閾値)}/(ページ切り替え回数+1)に従う平均アクセス間隔を含む主記憶上のページディレクトリと、ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセット、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルと、前記ワーキングセットからページアウトされるページの平均アクセス間隔が前記閾値以下であれば、前記第2スタンバイリストへページアウトし、前記閾値以下でなければ、前記第1スタンバイリストへページアウトする処理を行うオペレーティングシステムとを有することを特徴とする。
【0012】
本発明の第5のページングシステムは、ページごとのページ切り替え回数、{ページ切り替え回数×前回の平均アクセス間隔+(システム時刻−閾値)}/(ページ切り替え回数+1)に従う平均アクセス間隔を含む主記憶上のページディレクトリと、ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセット、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルと、前記ワーキングセットからページアウトされるページの平均アクセス間隔が前記閾値以下であれば、前記第2スタンバイリストに空きがあれば、前記第2スタンバイリストへページアウトし、空きがなければ、前記第2スタンバイリストからページを前記ページファイルへページアウトし、その後、前記ワーキングセットからのページを前記第2スタンバイリストへページアウトし、前記閾値以下でなければ、前記第1スタンバイリストに空きがあれば、前記第1スタンバイリストへページアウトし、前記第1スタンバイリストに空きがなければ、前記第2スタンバイリストに空きがあれば、前記第1スタンバイリストからのページを前記第2スタンバイリストへページアウトし、空きがなければ、前記第2スタンバイリストからページを前記ページファイルへページアウトし、その後、前記第1スタンバイリストからのページを前記第2スタンバイリストへページアウトし、その後、前記ワーキングセットからのページを前記第1スタンバイリストへページアウトする処理を行うオペレーティングシステムとを有することを特徴とする。
【0013】
本発明の第1のページング方法は、ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセット、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルとを利用し、前記ワーキングセットからページアウトされるページの平均アクセス間隔が事前に設定した閾値以下であれば、前記第2スタンバイリストへページアウトし、閾値以下でなければ、前記第1スタンバイリストへページアウトする手順を含むことを特徴とする。
【0014】
本発明の第2のページング方法は、ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセット、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルとを利用し、前記ワーキングセットからページアウトされるページの平均アクセス間隔が事前に設定した閾値以下であれば、前記第2スタンバイリストに空きがあれば、前記第2スタンバイリストへページアウトし、空きがなければ、前記第2スタンバイリストからページを前記ページファイルへページアウトし、その後、前記ワーキングセットからのページを前記第2スタンバイリストへページアウトし、閾値以下でなければ、前記第1スタンバイリストに空きがあれば、前記第1スタンバイリストへページアウトし、前記第1スタンバイリストに空きがなければ、前記第2スタンバイリストに空きがあれば、前記第1スタンバイリストからのページを前記第2スタンバイリストへページアウトし、空きがなければ、前記第2スタンバイリストからページを前記ページファイルへページアウトし、その後、前記第1スタンバイリストからのページを前記第2スタンバイリストへページアウトし、その後、前記ワーキングセットからのページを前記第1スタンバイリストへページアウトする手順を含むことを特徴とする。
【0015】
本発明の第3のページング方法は、ページごとのページ切り替え回数、{ページ切り替え回数×前回の平均アクセス間隔+(システム時刻−閾値)}/(ページ切り替え回数+1)に従う平均アクセス間隔を含む主記憶上のページディレクトリと、ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセット、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルとを利用し、前記ワーキングセットからページアウトされるページの平均アクセス間隔が前記閾値以下であれば、前記第2スタンバイリストへページアウトし、前記閾値以下でなければ、前記第1スタンバイリストへページアウトする手順を含むことを特徴とする。
【0016】
本発明の第4のページング方法は、ページごとのページ切り替え回数、{ページ切り替え回数×前回の平均アクセス間隔+(システム時刻−閾値)}/(ページ切り替え回数+1)に従う平均アクセス間隔を含む主記憶上のページディレクトリと、ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセット、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルとを利用し、前記ワーキングセットからページアウトされるページの平均アクセス間隔が前記閾値以下であれば、前記第2スタンバイリストに空きがあれば、前記第2スタンバイリストへページアウトし、空きがなければ、前記第2スタンバイリストからページを前記ページファイルへページアウトし、その後、前記ワーキングセットからのページを前記第2スタンバイリストへページアウトし、前記閾値以下でなければ、前記第1スタンバイリストに空きがあれば、前記第1スタンバイリストへページアウトし、前記第1スタンバイリストに空きがなければ、前記第2スタンバイリストに空きがあれば、前記第1スタンバイリストからのページを前記第2スタンバイリストへページアウトし、空きがなければ、前記第2スタンバイリストからページを前記ページファイルへページアウトし、その後、前記第1スタンバイリストからのページを前記第2スタンバイリストへページアウトし、その後、前記ワーキングセットからのページを前記第1スタンバイリストへページアウトする手順を含むことを特徴とする。
【0017】
本発明の第1のページングプログラムは、ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセット、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルとを利用し、前記ワーキングセットからページアウトされるページの平均アクセス間隔が事前に設定した閾値以下であれば、前記第2スタンバイリストへページアウトし、閾値以下でなければ、前記第1スタンバイリストへページアウトする手順をコンピュータに実行させることを特徴とする。
【0018】
本発明の第2のページングプログラムは、ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセット、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルとを利用し、前記ワーキングセットからページアウトされるページの平均アクセス間隔が事前に設定した閾値以下であれば、前記第2スタンバイリストに空きがあれば、前記第2スタンバイリストへページアウトし、空きがなければ、前記第2スタンバイリストからページを前記ページファイルへページアウトし、その後、前記ワーキングセットからのページを前記第2スタンバイリストへページアウトし、閾値以下でなければ、前記第1スタンバイリストに空きがあれば、前記第1スタンバイリストへページアウトし、前記第1スタンバイリストに空きがなければ、前記第2スタンバイリストに空きがあれば、前記第1スタンバイリストからのページを前記第2スタンバイリストへページアウトし、空きがなければ、前記第2スタンバイリストからページを前記ページファイルへページアウトし、その後、前記第1スタンバイリストからのページを前記第2スタンバイリストへページアウトし、その後、前記ワーキングセットからのページを前記第1スタンバイリストへページアウトする手順をコンピュータに実行させることを特徴とする。
【0019】
本発明の第3のページングプログラムは、ページごとのページ切り替え回数、{ページ切り替え回数×前回の平均アクセス間隔+(システム時刻−閾値)}/(ページ切り替え回数+1)に従う平均アクセス間隔を含む主記憶上のページディレクトリと、ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセット、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルとを利用し、前記ワーキングセットからページアウトされるページの平均アクセス間隔が前記閾値以下であれば、前記第2スタンバイリストへページアウトし、前記閾値以下でなければ、前記第1スタンバイリストへページアウトする手順をコンピュータに実行させることを特徴とする。
【0020】
本発明の第4のページングプログラムは、ページごとのページ切り替え回数、{ページ切り替え回数×前回の平均アクセス間隔+(システム時刻−閾値)}/(ページ切り替え回数+1)に従う平均アクセス間隔を含む主記憶上のページディレクトリと、ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセット、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルとを利用し、前記ワーキングセットからページアウトされるページの平均アクセス間隔が前記閾値以下であれば、前記第2スタンバイリストに空きがあれば、前記第2スタンバイリストへページアウトし、空きがなければ、前記第2スタンバイリストからページを前記ページファイルへページアウトし、その後、前記ワーキングセットからのページを前記第2スタンバイリストへページアウトし、前記閾値以下でなければ、前記第1スタンバイリストに空きがあれば、前記第1スタンバイリストへページアウトし、前記第1スタンバイリストに空きがなければ、前記第2スタンバイリストに空きがあれば、前記第1スタンバイリストからのページを前記第2スタンバイリストへページアウトし、空きがなければ、前記第2スタンバイリストからページを前記ページファイルへページアウトし、その後、前記第1スタンバイリストからのページを前記第2スタンバイリストへページアウトし、その後、前記ワーキングセットからのページを前記第1スタンバイリストへページアウトする手順をコンピュータに実行させることを特徴とする。
【0021】
【発明の実施の形態】
次に、本発明の第1の実施の形態について図面を参照して詳細に説明する。
【0022】
本発明の第1の実施の形態が適用される装置(たとえば、コンピュータ)は、時刻情報を取得する機能と、ページング方式をメモリ管理機構とするオペレーティングシステム(以降、OSと記す)とが動作しているものとする。また、時刻情報は、システムで次の要件を満たすものとする。
[時刻情報の要件]
・たとえば、Windows(登録商標)のアプリケーションインタフェース(API)のように、コマンドにより取得できる。
【0023】
・システムにおいて、一意(構造体でもかまわない)で計算と比較が可能なデータである。
【0024】
・データの分解能はカンタム値(プロセッサへのディスパッチの最小時間)である。
【0025】
・前記分解能単位で計時機能(時刻とともに恒常的に変化する)がある。
【0026】
通常、時計機能は、タイマやクロックのようにプロセッサとは独立しているのでプロセッサに問題があっても計時は可能である。データとしては現在の時刻をカンタム値の分解能で表現したもの、またはシステムが起動してからのカンタム値の分解能で測定可能な経過時間が該当する。
【0027】
図1は、本発明の第1の実施の形態を示すブロック図である。
【0028】
図1を参照すると、本発明の第1の実施の形態は、OSにより動作するコンピュータのメモリ領域に設けられるワーキングセット110と、ワーキングセット110に対応する第1スタンバイリスト140と、第2スタンバイリスト150と、システム時刻データ(S)160と、閾値データ(T)170と、ページテーブル180と、ページディレクトリ190と、ハードディスク等の外部記憶装置に設けられるページファイル130と、セット・リスト管理データ300とから構成される。
【0029】
ワーキングセット110には、プロセスにより使用される命令語、データ等を含むページが格納される。
【0030】
ワーキングセット110、第1スタンバイリスト140、第2スタンバイリスト150、および、ページファイル130は、ページを配置する構成である。また、システム時刻データ(S)160は、記時刻情報の要件を満たすデータであり、閾値データ(T)170は、システム時刻データ(S)160と比較・計算可能なデータである(いずれもシステムで単一である必要がある)。ここで、システム時刻データ(S)160は、起動からの総時間でもよければ、現在の時刻でもよい。
【0031】
図2は、ページを管理するページテーブル180、ページディレクトリ190の構成を示す説明図である。
【0032】
図2を参照すると、ページテーブル180は、複数のページテーブルエントリ(PTE)を含み、ページディレクトリ190は、複数のページディレクトリエントリを含んで構成される。
【0033】
また、ページディレクトリエントリは、ページ固有の平均アクセス間隔(A)200、最終更新時間(L)210、および、ページ切り替え回数(n)220を格納する。
【0034】
次に、ページディレクトリ190、ページテーブル180について図面を参照して説明する。
【0035】
図6は、ページディレクトリ190のページディレクトリエントリの内容を示す説明図である。
【0036】
図7は、ページテーブル180のページテーブルエントリの内容を示す説明図である。
【0037】
図2に示すように、ページディレクトリ190は、ページテーブル180のページテーブルエントリの位置を表すページディレクトリエントリ(PDE)の配列である。
【0038】
図6を参照すると、たとえば、ページディレクトリエントリ(PDE)は、ページテーブルエントリ(PTE)の位置を示す情報、および、ページの状態を示す情報(A、L、n)を含む。
【0039】
図7を参照すると、ページテーブル180のページテーブルエントリ(PTE)は、たとえば、ページ番号、その他の情報を含む。
【0040】
プロセスが作成されると、各プロセスに対応したページディレクトリ190と、ページテーブル180とが一つずつ作成される。作成されたページディレクトリ190のページディレクトリエントリ(PDE)は、プロセス固有のページテーブルエントリ(PTE)、もしくは、システム共有のページテーブルエントリ(PTE)の位置の情報を持っている。このシステム共有のページテーブル180は、あらかじめ存在し、各プロセスから共有可能である。
【0041】
次に、本発明の第1の実施の形態の動作について図面を参照して説明する。
【0042】
以下の動作は、すべて、OSにより実施される。
【0043】
プロセスが作成(プログラムが起動)されると、ページディレクトリ190が作成される(個々のページディレクトリエントリがページやページテーブル180のテーブルエントリに1対1対応しているのに対し、ページディレクトリ190全体は、プロセスに1対1対応している)。ページディレクトリ190のページディレクトリエントリ、ページテーブル180のページテーブルエントリは、ページが作成されると追加される。ページは、作成時は、ワーキングセット110に割り当てられる。
【0044】
ページディレクトリエントリのページ固有の平均アクセス間隔(A)200、最終更新時間(L)210、および、ページ切り替え回数(n)220は、初期状態では次の値をとる(作成された直後のページはワーキングセット110に含まれることを前提にしているため)。
【0045】
A=0 (1a)。
【0046】
L=0 (1b)。
【0047】
n=0 (1c)。
【0048】
次に、ページフォールト時の動作のうち、ページアウトの動作について説明する。ページアウトとは、ワーキングセット110から第1スタンバイリスト140への移動、第1スタンバイリスト140から第2スタンバイリスト150への移動、および、第2スタンバイリスト150からページファイル130への移動を意味する。
【0049】
図3は、本発明の第1の実施の形態のページアウトの動作を示すフローチャートである。
【0050】
図3を参照すると、ページアウトが必要になった場合に、まず、OSが、ワーキングセット110からページアウトすべきページをLRU等のアルゴリズムにより決定する(図3ステップS1)。次に、ページアウトすべきと決定されたページの平均アクセス間隔(A)200とシステムの閾値データ(T)170とを比較して(図3ステップS2)、次の式を評価し、正しければ(図3ステップS2/Yes)、第1スタンバイリスト140への移動を開始し、正しくなければ(図3ステップS2/No)、第2スタンバイリスト150への移動を行う処理に進む。
【0051】
A≦T (2)。
【0052】
第1スタンバイリスト140への移動の場合、まず、移動したいページが移動可能であるかどうか、すなわち、第1スタンバイリスト140に空きが存在するかどうかを調べる(図3ステップS3)。第1スタンバイリスト140に空きが存在する場合は(図3ステップS3/Yes)、ワーキングセット110からのページを第1スタンバイリスト140に移動する(図3ステップS5)。
【0053】
第1スタンバイリスト140に空きがない場合は(図3ステップS3/No)、まず、空きを作ってから移動処理を行う。空き領域を作るために第1スタンバイリスト140の内部からLRU等で第2スタンバイリスト150にページアウトされるページを決定する(図3ステップS4)。
【0054】
次に、第1スタンバイリスト140から第2スタンバイリスト150にページの移動が可能であるかどうか、すなわち、第2スタンバイリスト150に空きが存在するかどうかを調べる(図3ステップS6)。第2スタンバイリスト150に空きが存在する場合には(図3ステップS6/Yes)、第1スタンバイリスト140からのページを第2スタンバイリスト150に移動する(図3ステップS9)。
【0055】
第2スタンバイリスト150に空きが存在しない場合には(図3ステップS6/No)、空き領域を作るために第2スタンバイリスト150の内部からLRU等でページファイル130にページアウトされるページを決定し(図3ステップS7)、決定されたページをページファイル130に移動する(図3ステップS8)。次に、再度、ステップS6に戻り、第2スタンバイリスト150に空きが存在するので(図3ステップS6/Yes)、第1スタンバイリスト140からのページを第2スタンバイリスト150に移動する(図3ステップS9)。
【0056】
次に、ステップS3に戻り、第1スタンバイリスト140に空きが存在するので(図3ステップS3/Yes)、ワーキングセット110からのページを第1スタンバイリスト140に移動する(図3ステップS5)。
【0057】
また、A≦Tでなかった場合(図3ステップS2/No)、第2スタンバイリスト150に空きが存在するかどうかを調べる(図3ステップS6’)。第2スタンバイリスト150に空きが存在する場合には(図3ステップS6’/Yes)、ワーキングセット110からのページを第2スタンバイリスト150に移動する(図3ステップS9’)。
【0058】
第2スタンバイリスト150に空きが存在しない場合には(図3ステップS6’/No)、空き領域を作るために第2スタンバイリスト150の内部からLRU等でページファイル130にページアウトされるページを決定し(図3ステップS7’)、決定されたページをページファイル130に移動する(図3ステップS8’)。次に、再度、ステップS10に戻り、第2スタンバイリスト150に空きが存在するので(図3ステップS10/Yes)、ワーキングセット110からのページを第2スタンバイリスト150に移動する(図3ステップS9’)。
【0059】
以上において、ワーキングセット110、第1スタンバイリスト140、第2スタンバイリスト150にどのページが格納されているかどうか、空きがあるかどうかは、セット・リスト管理データ300により管理される。たとえば、セット・リスト管理データ300は、ワーキングセット110、第1スタンバイリスト140、第2スタンバイリスト150対応に、それらに格納されているページ番号(ページを識別するために一意につけられた番号)を保持する。OSは、このセット・リスト管理データ300を参照することにより空きがあるかどうかを判断できる。また、上述したように、LRUを適用することにより、リプレースの管理もできる。
【0060】
次に、ページフォールトの発生の有無にかかわらず新しいページを作成する際、ワーキングセット110内で発生するページの切り替えについて説明する。
【0061】
図4は、ページ切り替えにおける統計情報の更新の動作を示すフローチャートである。
【0062】
OSが、プロセッサにディスパッチされたタスクが使用するページに切り替える(コンテキスト・スイッチの一つ)。
【0063】
図4を参照すると、OSは、統計情報の初期化処理を実施する。すなわち、現在ディスパッチされているタスクが使用しているページ(切り替え前のページ)について、ページディレクトリ190の対応するページディレクトリエントリの最終更新時間(L)210にシステム時刻データ(S)160の値を格納する(図4ステップS10、)。以降、矢印(←)は、代入を表す。Sは、各々図1で示されるシステム時刻データ(S)160である。
【0064】
L←S (3)。
【0065】
次に、コンテキスト・スイッチされたページ(切り替え後のページ)に対し平均アクセス間隔(A)200とページ切り替え回数(n)220とを計算し、ページディレクトリ190の対応するページディレクトリエントリに格納する(図4ステップS11)。計算は、次の(4a)、(4b)式でこの順に行われる。Tは、各々図1で示される閾値データ(T)170である。
【0066】
A←{n×A+(S−T)}/(n+1) (4a)。
【0067】
n←n+1 (4b)。
【0068】
ここで、初めて切り替わる場合には、A=0、n=1であるから、A=(S−T)/2、n=2となる。
【0069】
以上の処理後に、ページの切り替えが発生し、ワーキングセット110に空きが無い場合に、ページフォールトが発生し、ページアウト・ページインの処理が行われる。ワーキングセット110に空きがあるかどうか調べ(図4ステップS12)、空きがあれば(図4ステップS12/Yes)、後述するページインの処理を実施する。空きがなければ(図4ステップS12/No)、図3に示すページアウトの処理をステップS1から実施し、その後、ステップS12に戻り、ワーキングセット110に空きがあるので(図4ステップS12/Yes)、後述するページインの処理に進む。
【0070】
次に、ページインの動作について図面を参照して説明する。
【0071】
図5は、本発明の第1の実施の形態のページインの動作を示すフローチャートである。
【0072】
ページインは、新規にページが作成される場合、あるいは、ページアウトされたページをワーキングセット110に移動する場合に発生するもので、ページフォールトのきっかけとなる動作である。既存ページのワーキングセット110への移動の場合、第1スタンバイリスト140、第2スタンバイリスト150、ページファイル130の順にワーキングセット110へ移動するページが存在するかどうかを検索する。
【0073】
図5を参照すると、まず、第1スタンバイリスト140を検索する(図5ステップS13)。ページインすべきページが第1スタンバイリスト140に検出されれば(図5ステップS13/Yes)、検出されたページをワーキングセット110に移動する(図5ステップS14)。ページインすべきページが第1スタンバイリスト140に検出されなければ(図5ステップS13/No)、第2スタンバイリスト150を検索する(図5ステップS15)。
【0074】
ページインすべきページが、第2スタンバイリスト150に検出されれば(図5ステップS15/Yes)、検出されたページをワーキングセット110に移動する(図5ステップS16)。ページインすべきページが、第2スタンバイリスト150に検出されなければ(図5ステップS15/No)、ページファイル130を検索し、ページファイル130から、ページインすべきページをワーキングセット110に移動する(図5ステップS17)。ここで、ページファイル130にも検出されないということは原理的にはありえない。
【0075】
以上では、平均アクセス間隔(A)200、最終更新時間(L)210、ページ切り替え回数(n)220をPDEに保持したが、ページディレクトリ190のエントリPDEとページテーブル180のエントリPTEとは一対一対応しているので、ページテーブル180のPTEに保持させることも可能である。
【0076】
次に、ハードウェアページフォールト回数が減ることについて説明する。
【0077】
従来の技術について以下のように設定する(1つだけ存在するスタンバイリストを第0スタンバイリストとする)。
【0078】
vi:ワーキングセット110に滞留する、または、から移動する確率(iの意味;0:ワーキングセット110に滞留、1:第0スタンバイリストに移動)。
【0079】
ai:第0スタンバイリストに滞留する、または、から移動する確率(iの意味;0:第0スタンバイリストに滞留、1:ワーキングセット110に移動、2:ページファイル130にページアウト)。
【0080】
Σvi=1(0≦i≦1) (5a)。
【0081】
Σai=1(0≦i≦2) (5b)。
【0082】
次に、本発明の第1の実施の形態において、以下の設定とする。
【0083】
wi:ワーキングセット110に滞留する、または、から移動する確率(iの意味;0:ワーキングセット110に滞留、1:第1スタンバイリスト140に移動、2:第2スタンバイリスト150に移動)。
【0084】
bi:第1スタンバイリスト140に滞留する、または、から移動する確率(iの意味;0:第1スタンバイリスト140に滞留、1:ワーキングセット110に移動、2:第2スタンバイリスト150に移動)。
【0085】
ci:第2スタンバイリスト150に滞留する、または、から移動する確率(iの意味;0:第2スタンバイリスト150に滞留、1:ワーキングセット110に移動、2:ページファイル130にページアウト)。
【0086】
Σwi=1(0≦i≦2) (6a)。
【0087】
Σbi=1(0≦i≦2) (6b)。
【0088】
Σci=1(0≦i≦2) (6c)。
【0089】
以下の式が成立する。
【0090】
v0=w0 (7a)。
【0091】
v1×a0=(w1×b2+w2)×c0 (7b)。
【0092】
v1×a1=w1×b1+w2×c1 (7c)。
【0093】
v1×a2=(w1×b2+w2)×c2 (7d)。
【0094】
1−a0=(1−b0)×(1−c0) (7e)。
【0095】
ここで、(7a)、(7b)、(7c)、(7d)、(7e)式は、従来の技術と、本発明の第1の実施の形態とで、ページが、それぞれ、ワーキングセット110に存在する確率、第0スタンバイリストに存在する確率(第1スタンバイリスト140+第2スタンバイリスト150に存在する確率)、ページファイル130に存在する確率は、等しいことから導出される。ただし、第0スタンバイリストに存在する確率は、第1スタンバイリスト140に存在する確率と第2スタンバイリスト150に存在する確率との合計とする。
【0096】
(7b)、(7d)式から、次式を得る。
【0097】
a2/c2=a0/c0 (8)。
【0098】
(7e)式を展開すると、次式を得る。
【0099】
a0−b0−c0+b0×c0=0 (9)。
【0100】
結果として、次の式を得る。
【0101】
a0/c0>1 (10a)。
【0102】
a2/c2>1 (10b)。
【0103】
(10b)式より、従来の技術よりも、ハードウェアページフォールトの発生回数が低くなっていることがわかる。
【0104】
次に、本発明の第2の実施の形態について図を参照して説明する。
【0105】
本発明の第2の実施の形態は、本発明の第1の実施の形態の動作のステップ(図3、図4、図5)の手順を含む方法である。
【0106】
次に、本発明の第3の実施の形態について図を参照して説明する。
【0107】
本発明の第3の実施の形態は、本発明の第2の実施の形態の動作のステップ(図3、図4、図5)の手順をコンピュータに実行させるプログラムである。
【0108】
【発明の効果】
本発明の効果は、低速なI/O処理を伴うディスクへのハードウェアページアウト回数を利用頻度の高いものについて改善できることである。
【0109】
その理由は、第1スタンバイリスト−第2スタンバイリスト間のページの移動がLRU等で選択されたページについて発生することにより、アクセス間隔の短いページについては、ハードウェアページフォールトする確率が相対的に減るからである。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態を示すブロック図である。
【図2】ページテーブル、ページディレクトリの構成を示す説明図である。
【図3】本発明の第1の実施の形態のページアウトの動作を示すフローチャートである。
【図4】ページ切り替えにおける統計情報の更新の動作を示すフローチャートである。
【図5】本発明の第1の実施の形態のページインの動作を示すフローチャートである。
【図6】ページディレクトリのページディレクトリエントリの内容を示す説明図である。
【図7】ページテーブルのページテーブルエントリの内容を示す説明図である。
【符号の説明】
110 ワーキングセット
130 ページファイル
140 第1スタンバイリスト
150 第2スタンバイリスト
160 システム時刻データ(S)
170 閾値データ(T)
180 ページテーブル
190 ページディレクトリ
200 平均アクセス間隔(A)
210 最終更新時間(L)
220 ページ切り替え回数(n)
300 セット・リスト管理データ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a paging system, a paging method, and a paging program, and more particularly to a paging system, a paging method, and a paging program in which a standby list is hierarchized.
[0002]
[Prior art]
The memory management mechanism implemented by the conventional paging method differs in the implementation depending on the operating system (OS). For example, the implementation in Microsoft's Windows (registered trademark) is described in the book "Architecture Thorough Explanation Microsoft Windows (registered trademark)". 2000 Summarized in
[0003]
The invention described in Japanese Patent Laid-Open No. 6-236320 pages out a program from a main storage device in a virtual storage type computer system that has a long time interval for each startup request and emphasizes response performance. In this case, the memory management method is such that the page-out amount is adjusted by updating the working set guarantee amount and the working set guarantee time in accordance with the processing characteristics of the program.
[0004]
[Problems to be solved by the invention]
The problem with the above-described conventional technique (described in the book) is that it may take time for a human to be aware of a page fault.
[0005]
The reason is that a hardware page fault is performed by simply judging the page by LRU. Since hardware page faults involve disk I / O compared to software page faults, it takes time to complete processing. As a result, even when pages are frequently accessed even if they are temporarily used frequently, This is because the probability of hardware page faults increases.
[0006]
Further, the problem of the invention described in Japanese Patent Laid-Open No. 6-236320 is that there is a high probability of hardware page-out because there is no standby list.
[0007]
An object of the present invention is to improve the number of hardware page-outs to a disk with low-speed I / O processing for those that are frequently used by hierarchizing a standby list.
[0008]
[Means for Solving the Problems]
A first paging system according to the present invention includes a working set on a main storage device for storing a page, a page to be paged out from the working set, and a first standby on a main memory for storing a page to be paged into the working set. A list, a working page, a page to be paged out from the first standby list, a second standby list to store the working set, a page to be paged in to the working set, and a page to be paged out from the second standby list And a page file on an external storage device for storing pages to be paged in the working set.
[0009]
The second paging system of the present invention includes a working set on a main storage device for storing a page, a page to be paged out from the working set, and a first standby on the main memory for storing a page to be paged into the working set. A list, a working page, a page to be paged out from the first standby list, a second standby list to store the working set, a page to be paged in to the working set, and a page to be paged out from the second standby list If the average access interval between the page file on the external storage device that stores the page to be paged in the working set and the page that is paged out from the working set is equal to or smaller than a preset threshold, the second standby Page to list Utoshi, if the threshold value or less, and having an operating system that performs processing for the page out to the first standby list.
[0010]
A third paging system according to the present invention includes a working set on a main storage device for storing a page, a page to be paged out from the working set, and a first standby on the main memory for storing a page to be paged into the working set. A list, a working page, a page to be paged out from the first standby list, a second standby list to store the working set, a page to be paged in to the working set, and a page to be paged out from the second standby list If the average access interval between the page file on the external storage device that stores the page to be paged in the working set and the page that is paged out from the working set is equal to or smaller than a preset threshold, the second standby There is space in the list Page out to the second standby list, and if there is no space, page out the page from the second standby list to the page file, and then page the page from the working set to the second standby list. If the first standby list is empty, page out to the first standby list, and if the first standby list is empty, the second standby list is empty. For example, the page from the first standby list is paged out to the second standby list, and if there is no space, the page from the second standby list is paged out to the page file, and then from the first standby list. Page out to the second standby list, and , And having an operating system that performs processing for the page out pages from the working set to the first standby list.
[0011]
The fourth paging system of the present invention includes a main memory including an average access interval according to the page switching count for each page, {page switching count × previous average access interval + (system time−threshold)} / (page switching count + 1). An upper page directory; a working set on a main storage device for storing pages; a page to be paged out from the working set; a first standby list on a main memory for storing pages to be paged in to the working set; A working set, a page to be paged out from the first standby list, a working standby, a second standby list for storing pages to be paged in to the working set, a page to be paged out from the second standby list, the working set To page If the average access interval between the page file on the external storage device that stores the page to be stored and the page that is paged out from the working set is less than or equal to the threshold, the page is paged out to the second standby list, and less than or equal to the threshold If not, an operating system that performs a process of page-out to the first standby list is provided.
[0012]
The fifth paging system of the present invention includes a main memory including an average access interval according to the page switching count for each page, {page switching count × previous average access interval + (system time−threshold)} / (page switching count + 1). An upper page directory; a working set on a main storage device for storing pages; a page to be paged out from the working set; a first standby list on a main memory for storing pages to be paged in to the working set; A working set, a page to be paged out from the first standby list, a working standby, a second standby list for storing pages to be paged in to the working set, a page to be paged out from the second standby list, the working set To page If the average access interval between the page file on the external storage device that stores the page to be stored and the page that is paged out from the working set is less than or equal to the threshold, the second standby list is freed. Page out to the standby list, and if there is no space, page out the page from the second standby list to the page file, then page out the page from the working set to the second standby list, and below the threshold Otherwise, if there is space in the first standby list, page out to the first standby list, and if there is no space in the first standby list, if there is space in the second standby list, the first Page out from the standby list to the second standby list If there is no space, page out the page from the second standby list to the page file, then page out the page from the first standby list to the second standby list, and then from the working set And an operating system that performs processing to page out pages to the first standby list.
[0013]
A first paging method of the present invention includes a working set on a main storage device for storing a page, a page to be paged out from the working set, and a first standby on a main memory for storing a page to be paged into the working set. A list, a working page, a page to be paged out from the first standby list, a second standby list to store the working set, a page to be paged in to the working set, and a page to be paged out from the second standby list , Using a page file on an external storage device that stores pages to be paged in the working set, and if the average access interval of pages paged out from the working set is equal to or less than a preset threshold, Go to second standby list And Jiauto, unless the threshold value or less, characterized in that it comprises a procedure for page out to the first standby list.
[0014]
The second paging method of the present invention includes a working set on a main storage device for storing a page, a page to be paged out from the working set, and a first standby on the main memory for storing a page to be paged in to the working set. A list, a working page, a page to be paged out from the first standby list, a second standby list to store the working set, a page to be paged in to the working set, and a page to be paged out from the second standby list , Using a page file on an external storage device that stores pages to be paged in the working set, and if the average access interval of pages paged out from the working set is equal to or less than a preset threshold, Empty on second standby list If there is, the page is paged out to the second standby list, and if there is no space, the page from the second standby list is paged out to the page file, and then the page from the working set is moved to the second standby list. If the first standby list is empty, the page is paged out to the first standby list. If the first standby list is empty, the second standby list is empty. If there is, the page from the first standby list is paged out to the second standby list, and if there is no space, the page is paged out from the second standby list to the page file, and then the first standby list. Page out to the second standby list, After, characterized in that it comprises a procedure for paging out the pages from the working set to the first standby list.
[0015]
The third paging method of the present invention includes a main memory including a page switching count for each page, an average access interval according to {page switching count × previous average access interval + (system time−threshold)} / (page switching count + 1). An upper page directory; a working set on a main storage device for storing pages; a page to be paged out from the working set; a first standby list on a main memory for storing pages to be paged in to the working set; A working set, a page to be paged out from the first standby list, a working standby, a second standby list for storing pages to be paged in to the working set, a page to be paged out from the second standby list, the working set Paged in If the average access interval of pages paged out from the working set is less than or equal to the threshold, the page is paged out to the second standby list using the page file on the external storage device that stores the page to be stored. If not, it includes a procedure for page-out to the first standby list.
[0016]
The fourth paging method according to the present invention includes a main memory including an average access interval according to the page switching count for each page, {page switching count × previous average access interval + (system time−threshold)} / (page switching count + 1). An upper page directory; a working set on a main storage device for storing pages; a page to be paged out from the working set; a first standby list on a main memory for storing pages to be paged in to the working set; A working set, a page to be paged out from the first standby list, a working standby, a second standby list for storing pages to be paged in to the working set, a page to be paged out from the second standby list, the working set Paged in If the average access interval of pages paged out from the working set is equal to or less than the threshold value, the second standby list is free, Page out to the second standby list; if there is no space, page out the page from the second standby list to the page file; then page out the page from the working set to the second standby list; If it is not less than the threshold value, if there is an empty space in the first standby list, it is paged out to the first standby list, and if there is no empty space in the first standby list, if there is an empty space in the second standby list, the Page out from the first standby list to the second standby list If there is no free space, the page from the second standby list is paged out to the page file, and then the page from the first standby list is paged out to the second standby list, and then the working set Including a step of page-out the page from the first standby list to the first standby list.
[0017]
The first paging program of the present invention includes a working set on a main storage device for storing a page, a page to be paged out from the working set, and a first standby on the main memory for storing a page to be paged into the working set. A list, a working page, a page to be paged out from the first standby list, a second standby list to store the working set, a page to be paged in to the working set, and a page to be paged out from the second standby list , Using a page file on an external storage device that stores pages to be paged in the working set, and if the average access interval of pages paged out from the working set is equal to or less than a preset threshold, Second standby squirrel To page out, if less than the threshold value, characterized in that to execute a procedure for page out to the first standby list in a computer.
[0018]
The second paging program of the present invention includes a working set on a main storage device for storing a page, a page to be paged out from the working set, and a first standby on the main memory for storing a page to be paged into the working set. A list, a working page, a page to be paged out from the first standby list, a second standby list to store the working set, a page to be paged in to the working set, and a page to be paged out from the second standby list , Using a page file on an external storage device that stores pages to be paged in the working set, and if the average access interval of pages paged out from the working set is equal to or less than a preset threshold, Second standby squirrel If there is free space, page out to the second standby list, and if there is no free space, page out the page from the second standby list to the page file, and then transfer the page from the working set to the second standby list. Page out to list, if not below threshold, page out to the first standby list if there is space in the first standby list, and to the second standby list if there is no space in the first standby list If there is a space, the page from the first standby list is paged out to the second standby list, and if there is no space, the page is paged out from the second standby list to the page file, and then the first Page out from the standby list to the second standby list And, thereafter, characterized in that to execute a procedure for paging out the pages from the working set to the first standby list in a computer.
[0019]
The third paging program of the present invention includes a main memory including a page switching frequency for each page, an average access interval according to {page switching frequency × previous average access interval + (system time−threshold)} / (page switching frequency + 1). An upper page directory; a working set on a main storage device for storing pages; a page to be paged out from the working set; a first standby list on a main memory for storing pages to be paged in to the working set; A working set, a page to be paged out from the first standby list, a working standby, a second standby list for storing pages to be paged in to the working set, a page to be paged out from the second standby list, the working set On page A page file on an external storage device that stores pages to be recorded, and if the average access interval of pages that are paged out from the working set is less than or equal to the threshold, page out to the second standby list; If not below the threshold, the computer is caused to execute a procedure for page-out to the first standby list.
[0020]
The fourth paging program of the present invention includes a main memory including a page switching frequency for each page, an average access interval according to {page switching frequency × previous average access interval + (system time−threshold)} / (page switching frequency + 1). An upper page directory; a working set on a main storage device for storing pages; a page to be paged out from the working set; a first standby list on a main memory for storing pages to be paged in to the working set; A working set, a page to be paged out from the first standby list, a working standby, a second standby list for storing pages to be paged in to the working set, a page to be paged out from the second standby list, the working set On page If the average access interval of pages paged out from the working set is less than or equal to the threshold value using a page file on the external storage device that stores the pages to be recorded, the second standby list is free Page out to the second standby list, and if there is no space, page out the page from the second standby list to the page file, and then page out the page from the working set to the second standby list. If it is not less than the threshold value, the first standby list is paged out if the first standby list is empty, and if the first standby list is empty, the second standby list is empty. , Pages from the first standby list to the second standby list If there is no space, the page from the second standby list is paged out to the page file, then the page from the first standby list is paged out to the second standby list, and then the working set The computer is caused to execute a procedure for page-out of a page from the first page to the first standby list.
[0021]
DETAILED DESCRIPTION OF THE INVENTION
Next, a first embodiment of the present invention will be described in detail with reference to the drawings.
[0022]
An apparatus (for example, a computer) to which the first embodiment of the present invention is applied operates a function for acquiring time information and an operating system (hereinafter referred to as OS) that uses a paging method as a memory management mechanism. It shall be. The time information shall satisfy the following requirements in the system.
[Requirements for time information]
For example, it can be acquired by a command like an application interface (API) of Windows (registered trademark).
[0023]
Data that is unique (can be a structure) and that can be calculated and compared in the system.
[0024]
The data resolution is a quantum value (minimum time for dispatch to the processor).
[0025]
-There is a timekeeping function (changes constantly with time) in units of resolution.
[0026]
Normally, the clock function is independent of the processor, such as a timer or a clock, so that it is possible to measure time even if there is a problem with the processor. The data corresponds to the current time expressed with the resolution of the quantum value, or the elapsed time that can be measured with the resolution of the quantum value after the system is started.
[0027]
FIG. 1 is a block diagram showing a first embodiment of the present invention.
[0028]
Referring to FIG. 1, the first embodiment of the present invention is a working
[0029]
The working
[0030]
The working
[0031]
FIG. 2 is an explanatory diagram showing the configuration of a page table 180 and a
[0032]
Referring to FIG. 2, the page table 180 includes a plurality of page table entries (PTE), and the
[0033]
Page directory entries are also page-specific. Average access interval (A) 200, last update time (L) 210, and page switching frequency (n) 220 are stored.
[0034]
Next, the
[0035]
FIG. 6 is an explanatory diagram showing the contents of the page directory entry of the
[0036]
FIG. 7 is an explanatory diagram showing the contents of the page table entry of the page table 180.
[0037]
As shown in FIG. 2, the
[0038]
Referring to FIG. 6, for example, the page directory entry (PDE) includes information indicating the position of the page table entry (PTE) and information (A, L, n) indicating the state of the page.
[0039]
Referring to FIG. 7, the page table entry (PTE) of the page table 180 includes, for example, a page number and other information.
[0040]
When the process is created, one
[0041]
Next, the operation of the first exemplary embodiment of the present invention will be described with reference to the drawings.
[0042]
The following operations are all performed by the OS.
[0043]
When a process is created (program is started), a
[0044]
Page specific for page directory entry Average access interval (A) 200, last update time (L) 210, and page switching frequency (n) 220 take the following values in the initial state (assuming that the page immediately after creation is included in the working set 110). Because)
[0045]
A = 0 (1a).
[0046]
L = 0 (1b).
[0047]
n = 0 (1c).
[0048]
Next, the page-out operation among the operations at the time of page fault will be described. The page-out means movement from the working
[0049]
FIG. 3 is a flowchart showing the page-out operation according to the first embodiment of this invention.
[0050]
Referring to FIG. 3, when a page out is necessary, the OS first determines a page to be paged out from the working
[0051]
A ≦ T (2).
[0052]
In the case of moving to the
[0053]
If there is no vacancy in the first standby list 140 (step S3 / No in FIG. 3), first, a movement process is performed after the vacancy is created. In order to create a free area, a page to be paged out to the
[0054]
Next, it is checked whether or not a page can be moved from the
[0055]
If there is no space in the second standby list 150 (step S6 / No in FIG. 3), a page to be paged out to the
[0056]
Next, returning to step S3, since there is a space in the first standby list 140 (step S3 / Yes in FIG. 3), the page from the working
[0057]
If A ≦ T is not satisfied (step S2 / No in FIG. 3), it is checked whether there is an empty space in the second standby list 150 (step S6 ′ in FIG. 3). If there is an empty space in the second standby list 150 (step S6 ′ / Yes in FIG. 3), the page from the working
[0058]
If there is no space in the second standby list 150 (step S6 ′ / No in FIG. 3), a page to be paged out to the
[0059]
The set
[0060]
Next, switching of pages that occurs in the working
[0061]
FIG. 4 is a flowchart showing an operation of updating statistical information in page switching.
[0062]
The OS switches to a page used by a task dispatched to the processor (one of context switches).
[0063]
Referring to FIG. 4, the OS performs statistical information initialization processing. That is, for the page used by the currently dispatched task (the page before switching), the value of the system time data (S) 160 is set to the last update time (L) 210 of the corresponding page directory entry in the
[0064]
L ← S (3).
[0065]
Next, for the context-switched page (the page after switching) Average access interval (A) 200 and the page switching frequency (n) 220 are calculated and stored in the corresponding page directory entry of the page directory 190 (step S11 in FIG. 4). The calculation is performed in this order using the following equations (4a) and (4b). T is the threshold data (T) 170 shown in FIG.
[0066]
A ← {n × A + (ST)} / (n + 1) (4a).
[0067]
n ← n + 1 (4b).
[0068]
Here, when switching for the first time, since A = 0 and n = 1, A = (S−T) / 2 and n = 2.
[0069]
After the above processing, when page switching occurs and the working
[0070]
Next, the page-in operation will be described with reference to the drawings.
[0071]
FIG. 5 is a flowchart showing the page-in operation according to the first embodiment of this invention.
[0072]
Page-in occurs when a new page is created or when a page-out page is moved to the working
[0073]
Referring to FIG. 5, first, the
[0074]
If a page to be paged in is detected in the second standby list 150 (step S15 / Yes in FIG. 5), the detected page is moved to the working set 110 (step S16 in FIG. 5). If the page to be paged in is not detected in the second standby list 150 (step S15 / No in FIG. 5), the
[0075]
Above, Average access interval (A) 200, last update time (L) 210, and page switching frequency (n) 220 are held in the PDE, but the entry PDE in the
[0076]
Next, the reduction in the number of hardware page faults will be described.
[0077]
The conventional technology is set as follows (only one standby list is set as the 0th standby list).
[0078]
vi: probability of staying in or moving from working set 110 (meaning i; 0: staying in working
[0079]
ai: probability of staying in or moving from the 0th standby list (meaning i; 0: staying in the 0th standby list, 1: moving to the working
[0080]
Σvi = 1 (0 ≦ i ≦ 1) (5a).
[0081]
Σai = 1 (0 ≦ i ≦ 2) (5b).
[0082]
Next, in the first embodiment of the present invention, the following settings are made.
[0083]
wi: Probability of staying in or moving from working set 110 (meaning i; 0: staying in working
[0084]
bi: Probability of staying in or moving from the first standby list 140 (meaning i: 0: staying in the
[0085]
ci: probability of staying in or moving from the second standby list 150 (meaning i: 0: staying in the
[0086]
Σwi = 1 (0 ≦ i ≦ 2) (6a).
[0087]
Σbi = 1 (0 ≦ i ≦ 2) (6b).
[0088]
Σci = 1 (0 ≦ i ≦ 2) (6c).
[0089]
The following equation holds.
[0090]
v0 = w0 (7a).
[0091]
v1 * a0 = (w1 * b2 + w2) * c0 (7b).
[0092]
v1 * a1 = w1 * b1 + w2 * c1 (7c).
[0093]
v1 * a2 = (w1 * b2 + w2) * c2 (7d).
[0094]
1-a0 = (1-b0) × (1-c0) (7e).
[0095]
Here, the expressions (7a), (7b), (7c), (7d), and (7e) are based on the prior art and the first embodiment of the present invention. , The probability of existing in the 0th standby list (the probability of existing in the
[0096]
From the equations (7b) and (7d), the following equation is obtained.
[0097]
a2 / c2 = a0 / c0 (8).
[0098]
When the expression (7e) is expanded, the following expression is obtained.
[0099]
a0−b0−c0 + b0 × c0 = 0 (9).
[0100]
As a result, the following equation is obtained.
[0101]
a0 / c0> 1 (10a).
[0102]
a2 / c2> 1 (10b).
[0103]
From equation (10b), it can be seen that the number of occurrences of hardware page faults is lower than in the conventional technique.
[0104]
Next, a second embodiment of the present invention will be described with reference to the drawings.
[0105]
The second embodiment of the present invention is a method including the procedure of the operation steps (FIGS. 3, 4, and 5) of the first embodiment of the present invention.
[0106]
Next, a third embodiment of the present invention will be described with reference to the drawings.
[0107]
The third embodiment of the present invention is a program that causes a computer to execute the procedure of the operation steps (FIGS. 3, 4, and 5) of the second embodiment of the present invention.
[0108]
【The invention's effect】
The effect of the present invention is that the number of times of hardware page-out to a disk accompanied by low-speed I / O processing can be improved for those that are frequently used.
[0109]
The reason for this is that the movement of the page between the first standby list and the second standby list occurs for a page selected by LRU or the like, so that the probability of a hardware page fault is relatively high for a page with a short access interval. Because it decreases.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a first embodiment of the present invention.
FIG. 2 is an explanatory diagram showing a configuration of a page table and a page directory.
FIG. 3 is a flowchart showing a page-out operation according to the first embodiment of this invention;
FIG. 4 is a flowchart showing an operation of updating statistical information in page switching.
FIG. 5 is a flowchart showing a page-in operation according to the first embodiment of this invention;
FIG. 6 is an explanatory diagram showing the contents of a page directory entry of the page directory.
FIG. 7 is an explanatory diagram showing the contents of a page table entry in the page table.
[Explanation of symbols]
110 working set
130 page file
140 First standby list
150 Second standby list
160 System time data (S)
170 Threshold data (T)
180 page table
190 page directory
200 Average access interval (A)
210 Last update time (L)
220 Number of page switching (n)
300 Set list management data
Claims (7)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002121138A JP3901002B2 (en) | 2002-04-23 | 2002-04-23 | Paging system, paging method, and paging program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002121138A JP3901002B2 (en) | 2002-04-23 | 2002-04-23 | Paging system, paging method, and paging program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003316647A JP2003316647A (en) | 2003-11-07 |
JP3901002B2 true JP3901002B2 (en) | 2007-04-04 |
Family
ID=29537168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002121138A Expired - Fee Related JP3901002B2 (en) | 2002-04-23 | 2002-04-23 | Paging system, paging method, and paging program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3901002B2 (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6910106B2 (en) * | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
US7146466B2 (en) * | 2004-03-23 | 2006-12-05 | International Business Machines | System for balancing multiple memory buffer sizes and method therefor |
US7490197B2 (en) | 2004-10-21 | 2009-02-10 | Microsoft Corporation | Using external memory devices to improve system performance |
US8914557B2 (en) | 2005-12-16 | 2014-12-16 | Microsoft Corporation | Optimizing write and wear performance for a memory |
US9032151B2 (en) | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US7953774B2 (en) | 2008-09-19 | 2011-05-31 | Microsoft Corporation | Aggregation of write traffic to a data store |
JP6439299B2 (en) | 2014-07-09 | 2018-12-19 | 株式会社バッファロー | Information processing system, network storage device, and program |
-
2002
- 2002-04-23 JP JP2002121138A patent/JP3901002B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003316647A (en) | 2003-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2856620B2 (en) | Memory management method and apparatus in computer system | |
US8966315B2 (en) | System-directed checkpointing implementation using a hypervisor layer | |
US9158699B2 (en) | Memory management techniques | |
JP5071798B2 (en) | Computer system, memory management method, and program thereof | |
US6956507B2 (en) | Method and apparatus for morphing memory compressed machines | |
TWI507870B (en) | Method and computer system for memory management on virtual machine | |
JP3490742B2 (en) | Memory management device | |
US6496882B2 (en) | Method and system for virtual memory compression in an embedded system | |
US5802571A (en) | Apparatus and method for enforcing data coherency in an information handling system having multiple hierarchical levels of cache memory | |
US20090164715A1 (en) | Protecting Against Stale Page Overlays | |
JP2004062869A (en) | Method and apparatus for selective caching of transactions in computer system | |
TWI582592B (en) | Method and device for accessing a cache memory | |
US6195107B1 (en) | Method and system for utilizing virtual memory in an embedded system | |
US10108553B2 (en) | Memory management method and device and memory controller | |
JP3901002B2 (en) | Paging system, paging method, and paging program | |
JP3701890B2 (en) | Reserving reclaimed space for compressed memory systems | |
US7395386B2 (en) | Method and apparatus for data versioning and recovery using delta content save and restore management | |
US6889296B2 (en) | Memory management method for preventing an operating system from writing into user memory space | |
EP1103898A2 (en) | Microprocessor and memory | |
JP2001290704A (en) | Device and method for controlling multiprocess | |
US8614799B2 (en) | Memory paging | |
JPH0944417A (en) | Information-processing system and its control method | |
JPH07152574A (en) | Program loading system | |
JP2000010809A (en) | Apparatus and method for data backup control | |
JP2583403B2 (en) | Backing store management method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040420 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20050307 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060913 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060919 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061030 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061114 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061127 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061225 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110112 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110112 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120112 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130112 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |