JP3901002B2 - Paging system, paging method, and paging program - Google Patents

Paging system, paging method, and paging program Download PDF

Info

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
Application number
JP2002121138A
Other languages
Japanese (ja)
Other versions
JP2003316647A (en
Inventor
晃弘 坂野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2002121138A priority Critical patent/JP3901002B2/en
Publication of JP2003316647A publication Critical patent/JP2003316647A/en
Application granted granted Critical
Publication of JP3901002B2 publication Critical patent/JP3901002B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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 Chapter 7 of Microsoft Official Manual David A. Solomon, Mark E. Russinovich / Translated by Tama Software Limited Company ISBN4-89100-191-7 Nikkei BP Soft Press Issued April 2, 2001 " It is described (especially after section 7.5).
[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 set 110 provided in a memory area of a computer operated by an OS, a first standby list 140 corresponding to the working set 110, and a second standby list. 150, system time data (S) 160, threshold data (T) 170, page table 180, page directory 190, page file 130 provided in an external storage device such as a hard disk, and set / list management data 300 It consists of.
[0029]
The working set 110 stores pages including instructions, data, etc. used by the process.
[0030]
The working set 110, the first standby list 140, the second standby list 150, and the page file 130 are configured to arrange pages. Further, the system time data (S) 160 is data that satisfies the requirements of the time information, and the threshold data (T) 170 is data that can be compared and calculated with the system time data (S) 160 (both are system data). Need to be single). Here, the system time data (S) 160 may be the total time from the start or the current time.
[0031]
FIG. 2 is an explanatory diagram showing the configuration of a page table 180 and a page directory 190 for managing pages.
[0032]
Referring to FIG. 2, the page table 180 includes a plurality of page table entries (PTE), and the page directory 190 includes a plurality of page directory entries.
[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 page directory 190 and the page table 180 will be described with reference to the drawings.
[0035]
FIG. 6 is an explanatory diagram showing the contents of the page directory entry of the page directory 190.
[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 page directory 190 is an array of page directory entries (PDEs) indicating the position of the page table entry of the page table 180.
[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 page directory 190 and one page table 180 corresponding to each process are created. The page directory entry (PDE) of the created page directory 190 has information on the position of the process-specific page table entry (PTE) or system shared page table entry (PTE). This system shared page table 180 exists in advance and can be shared by each process.
[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 page directory 190 is created (each page directory entry has a one-to-one correspondence with a page or page table 180 table entry, whereas the entire page directory 190 Corresponds to the process one-to-one). The page directory entry of the page directory 190 and the page table entry of the page table 180 are added when a page is created. Pages are assigned to the working set 110 when they are created.
[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 set 110 to the first standby list 140, movement from the first standby list 140 to the second standby list 150, and movement from the second standby list 150 to the page file 130. .
[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 set 110 using an algorithm such as LRU (step S1 in FIG. 3). Next, for pages that are determined to be paged out Average access interval (A) 200 and system threshold data (T) 170 are compared (step S2 in FIG. 3), and the following expression is evaluated. If it is correct (step S2 / Yes in FIG. 3), the first standby list 140 is entered. If the movement is not correct (step S2 / No in FIG. 3), the process proceeds to the process of moving to the second standby list 150.
[0051]
A ≦ T (2).
[0052]
In the case of moving to the first standby list 140, first, it is checked whether or not the page to be moved can be moved, that is, whether or not there is an empty space in the first standby list 140 (step S3 in FIG. 3). If there is a space in the first standby list 140 (step S3 / Yes in FIG. 3), the page from the working set 110 is moved to the first standby list 140 (step S5 in FIG. 3).
[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 second standby list 150 by LRU or the like is determined from the inside of the first standby list 140 (step S4 in FIG. 3).
[0054]
Next, it is checked whether or not a page can be moved from the first standby list 140 to the second standby list 150, that is, whether or not there is an empty space in the second standby list 150 (step S6 in FIG. 3). If there is a space in the second standby list 150 (step S6 / Yes in FIG. 3), the page from the first standby list 140 is moved to the second standby list 150 (step S9 in FIG. 3).
[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 page file 130 by LRU or the like is determined from the inside of the second standby list 150 to create a free space. Then, the determined page is moved to the page file 130 (step S8 in FIG. 3). Next, the process returns to step S6 again, and since there is a space in the second standby list 150 (step S6 / Yes in FIG. 3), the page from the first standby list 140 is moved to the second standby list 150 (FIG. 3). Step S9).
[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 set 110 is moved to the first standby list 140 (step S5 in FIG. 3).
[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 set 110 is moved to the second standby list 150 (step S9 ′ in FIG. 3).
[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 page file 130 by LRU or the like from the inside of the second standby list 150 in order to create a free space. Determination is made (step S7 'in FIG. 3), and the determined page is moved to the page file 130 (step S8' in FIG. 3). Next, returning to step S10 again, since there is a space in the second standby list 150 (step S10 / Yes in FIG. 3), the page from the working set 110 is moved to the second standby list 150 (step S9 in FIG. 3). ').
[0059]
The set list management data 300 manages which pages are stored in the working set 110, the first standby list 140, and the second standby list 150, and whether there is a free space. For example, in the set list management data 300, the page numbers (numbers uniquely assigned to identify pages) stored in the working set 110, the first standby list 140, and the second standby list 150 are stored. Hold. The OS can determine whether there is a free space by referring to the set list management data 300. Further, as described above, the replacement can be managed by applying the LRU.
[0060]
Next, switching of pages that occurs in the working set 110 when creating a new page regardless of whether or not a page fault has occurred will be described.
[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 page directory 190. Store (step S10 in FIG. 4). Hereinafter, an arrow (←) represents substitution. S is the system time data (S) 160 shown in FIG.
[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 set 110 has no space, a page fault occurs and page-out / page-in processing is performed. It is checked whether the working set 110 has a vacancy (step S12 in FIG. 4). If there is a vacancy (step S12 / Yes in FIG. 4), a page-in process described later is performed. If there is no vacancy (step S12 / No in FIG. 4), the page-out process shown in FIG. 3 is performed from step S1, and then the process returns to step S12 and the working set 110 is vacant (step S12 / Yes in FIG. 4). ), And proceeds to a page-in process described later.
[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 set 110, and is an operation that triggers a page fault. In the case of moving an existing page to the working set 110, it is searched whether there are pages to be moved to the working set 110 in the order of the first standby list 140, the second standby list 150, and the page file 130.
[0073]
Referring to FIG. 5, first, the first standby list 140 is searched (step S13 in FIG. 5). If a page to be paged in is detected in the first standby list 140 (step S13 / Yes in FIG. 5), the detected page is moved to the working set 110 (step S14 in FIG. 5). If the page to be paged in is not detected in the first standby list 140 (step S13 / No in FIG. 5), the second standby list 150 is searched (step S15 in FIG. 5).
[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 page file 130 is searched, and the page to be paged in is moved from the page file 130 to the working set 110. (FIG. 5, step S17). Here, it is impossible in principle that the page file 130 is not detected.
[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 page directory 190 and the entry PTE in the page table 180 have a one-to-one correspondence. It can also be held in the PTE of the page table 180.
[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 set 110, 1: moving to 0th standby list).
[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 set 110, 2: page out to the page file 130).
[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 set 110, 1: moving to first standby list 140, 2: moving to second standby list 150).
[0084]
bi: Probability of staying in or moving from the first standby list 140 (meaning i: 0: staying in the first standby list 140, 1: moving to the working set 110, 2: moving to the second standby list 150) .
[0085]
ci: probability of staying in or moving from the second standby list 150 (meaning i: 0: staying in the second standby list 150, 1: moving to the working set 110, 2: page out to the page file 130).
[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 first standby list 140 + the second standby list 150), and the probability of existing in the page file 130 are derived from being equal. However, the probability existing in the 0th standby list is the sum of the probability existing in the first standby list 140 and the probability existing in the second standby list 150.
[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)

ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルとを有することを特徴とするページングシステム。  A working set on a main storage device for storing a page, a page to be paged out from the working set, a first standby list on a main memory for storing a page to be paged in to the working set, the working set, the first A page that is paged out from the standby list, a second standby list that stores pages that are paged in to the working set, a page that is paged out from the second standby list, and an external that stores pages that are paged in to the working set A paging system comprising a page file on a storage device. ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルと、前記ワーキングセットからページアウトされるページの平均アクセス間隔が事前に設定した閾値以下でなければ、前記第2スタンバイリストへページアウトし、閾値以下であれば、前記第1スタンバイリストへページアウトする処理を行うオペレーティングシステムとを有することを特徴とするページングシステム。A working set on a main storage device for storing a page, a page to be paged out from the working set, a first standby list on a main memory for storing a page to be paged in to the working set, the working set, the first A page that is paged out from the standby list, a second standby list that stores pages that are paged in to the working set, a page that is paged out from the second standby list, and an external that stores pages that are paged in to the working set If the average access interval between the page file on the storage device and the page to be paged out from the working set is not less than a preset threshold value, page out to the second standby list. Go to 1 standby list Paging system characterized by having an operating system that performs processing for Jiauto. ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルと、前記ワーキングセットからページアウトされるページの平均アクセス間隔が事前に設定した閾値以下でなければ、前記第2スタンバイリストに空きがあれば、前記第2スタンバイリストへページアウトし、空きがなければ、前記第2スタンバイリストからページを前記ページファイルへページアウトし、その後、前記ワーキングセットからのページを前記第2スタンバイリストへページアウトし、閾値以下であれば、前記第1スタンバイリストに空きがあれば、前記第1スタンバイリストへページアウトし、前記第1スタンバイリストに空きがなければ、前記第2スタンバイリストに空きがあれば、前記第1スタンバイリストからのページを前記第2スタンバイリストへページアウトし、空きがなければ、前記第2スタンバイリストからページを前記ページファイルへページアウトし、その後、前記第1スタンバイリストからのページを前記第2スタンバイリストへページアウトし、その後、前記ワーキングセットからのページを前記第1スタンバイリストへページアウトする処理を行うオペレーティングシステムとを有することを特徴とするページングシステム。A working set on a main storage device for storing a page, a page to be paged out from the working set, a first standby list on a main memory for storing a page to be paged in to the working set, the working set, the first A page that is paged out from the standby list, a second standby list that stores pages that are paged in to the working set, a page that is paged out from the second standby list, and an external that stores pages that are paged in to the working set If the average access interval between the page file on the storage device and the page that is paged out from the working set is not less than or equal to a preset threshold value, if there is a space in the second standby list, the page to the second standby list Out and empty If it is, the page from the second standby list is paged out to the page file, and then the page from the working set is paged out to the second standby list. If there is space, page out to the first standby list. If there is no space in the first standby list, if there is space in the second standby list, a page from the first standby list is transferred to the second standby list. Page out to the 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 first standby list to the second standby list, and Pages from the working set are transferred to the first standby Paging system characterized by having an operating system that performs processing for the page out to and. ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルとを利用し、前記ワーキングセットからページアウトされるページの平均アクセス間隔が事前に設定した閾値以下でなければ、前記第2スタンバイリストへページアウトし、閾値以下であれば、前記第1スタンバイリストへページアウトする手順を含むことを特徴とするページング方法。A working set on a main storage device for storing a page, a page to be paged out from the working set, a first standby list on a main memory for storing a page to be paged in to the working set, the working set, the first A page that is paged out from the standby list, a second standby list that stores pages that are paged in to the working set, a page that is paged out from the second standby list, and an external that stores pages that are paged in to the working set If the average access interval of pages to be paged out from the working set is not less than a preset threshold value, the page is paged out to the second standby list, and if it is less than the threshold value. , The first standby Paging method, characterized in that it comprises the steps to page out to the door. ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルとを利用し、前記ワーキングセットからページアウトされるページの平均アクセス間隔が事前に設定した閾値以下でなければ、前記第2スタンバイリストに空きがあれば、前記第2スタンバイリストへページアウトし、空きがなければ、前記第2スタンバイリストからページを前記ページファイルへページアウトし、その後、前記ワーキングセットからのページを前記第2スタンバイリストへページアウトし、閾値以下であれば、前記第1スタンバイリストに空きがあれば、前記第1スタンバイリストへページアウトし、前記第1スタンバイリストに空きがなければ、前記第2スタンバイリストに空きがあれば、前記第1スタンバイリストからのページを前記第2スタンバイリストへページアウトし、空きがなければ、前記第2スタンバイリストからページを前記ページファイルへページアウトし、その後、前記第1スタンバイリストからのページを前記第2スタンバイリストへページアウトし、その後、前記ワーキングセットからのページを前記第1スタンバイリストへページアウトする手順を含むことを特徴とするページング方法。A working set on a main storage device for storing a page, a page to be paged out from the working set, a first standby list on a main memory for storing a page to be paged in to the working set, the working set, the first A page that is paged out from the standby list, a second standby list that stores pages that are paged in to the working set, a page that is paged out from the second standby list, and an external that stores pages that are paged in to the working set If the average access interval of pages paged out from the working set is not less than or equal to a preset threshold value using the page file on the storage device, the second standby list is free if the second standby list is empty. Page out to the list If there is no free page, the page from the second standby list is paged out to the page file, and then the page from the working set is paged out to the second standby list. If there is a vacancy in the list, page out to the first standby list, and if there is no vacancy in the first standby list, if there is a vacancy in the second standby list, a page from the first standby list is transferred to the first standby 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 out the page from the first standby list to the second standby list; Thereafter, pages from the working set are displayed on the first stack. Paging method, characterized in that it comprises the steps to page out to by list. ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルとを利用し、前記ワーキングセットからページアウトされるページの平均アクセス間隔が事前に設定した閾値以下でなければ、前記第2スタンバイリストへページアウトし、閾値以下であれば、前記第1スタンバイリストへページアウトする手順をコンピュータに実行させることを特徴とするページングプログラム。A working set on a main storage device for storing a page, a page to be paged out from the working set, a first standby list on a main memory for storing a page to be paged in to the working set, the working set, the first A page that is paged out from the standby list, a second standby list that stores pages that are paged in to the working set, a page that is paged out from the second standby list, and an external that stores pages that are paged in to the working set If the average access interval of pages to be paged out from the working set is not less than a preset threshold value, the page is paged out to the second standby list, and if it is less than the threshold value. , The first standby Paging program characterized by executing the steps of the page out to preparative the computer. ページを格納する主記憶装置上のワーキングセットと、前記ワーキングセットからページアウトするページ、前記ワーキングセットにページインするページを格納する主記憶上の第1スタンバイリストと、前記ワーキングセット、前記第1スタンバイリストからページアウトするページ、前記ワーキングセットにページインするページを格納する第2スタンバイリストと、前記第2スタンバイリストからページアウトされるページ、前記ワーキングセットにページインされるページを格納する外部記憶装置上のページファイルとを利用し、前記ワーキングセットからページアウトされるページの平均アクセス間隔が事前に設定した閾値以下でなければ、前記第2スタンバイリストに空きがあれば、前記第2スタンバイリストへページアウトし、空きがなければ、前記第2スタンバイリストからページを前記ページファイルへページアウトし、その後、前記ワーキングセットからのページを前記第2スタンバイリストへページアウトし、閾値以下であれば、前記第1スタンバイリストに空きがあれば、前記第1スタンバイリストへページアウトし、前記第1スタンバイリストに空きがなければ、前記第2スタンバイリストに空きがあれば、前記第1スタンバイリストからのページを前記第2スタンバイリストへページアウトし、空きがなければ、前記第2スタンバイリストからページを前記ページファイルへページアウトし、その後、前記第1スタンバイリストからのページを前記第2スタンバイリストへページアウトし、その後、前記ワーキングセットからのページを前記第1スタンバイリストへページアウトする手順をコンピュータに実行させることを特徴とするページングプログラム。A working set on a main storage device for storing a page, a page to be paged out from the working set, a first standby list on a main memory for storing a page to be paged in to the working set, the working set, the first A page that is paged out from the standby list, a second standby list that stores pages that are paged in to the working set, a page that is paged out from the second standby list, and an external that stores pages that are paged in to the working set If the average access interval of pages paged out from the working set is not less than or equal to a preset threshold value using the page file on the storage device, the second standby list is free if the second standby list is empty. Page out to the list If there is no free page, the page from the second standby list is paged out to the page file, and then the page from the working set is paged out to the second standby list. If there is a vacancy in the list, page out to the first standby list, and if there is no vacancy in the first standby list, if there is a vacancy in the second standby list, a page from the first standby list is transferred to the first standby 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 out the page from the first standby list to the second standby list; Thereafter, pages from the working set are displayed on the first stack. Paging program, characterized in that to perform the procedure for page out to by the list on the computer.
JP2002121138A 2002-04-23 2002-04-23 Paging system, paging method, and paging program Expired - Fee Related JP3901002B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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