(57)【要約】【課題】プログラム実行中のマイグレーション処理を無くすること。【解決手段】資源管理部と，メモリ管理部と，ページ管理テーブルから構成されるメモリ管理装置であって，資源管理部は，マイグレートチェック処理を行う実ページ参照監視部と，マイグレートインターバル時間登録部と，マイグレーション処理の実行要否を判断するマイグレート制御部を有し，メモリ管理部は，資源管理部のマイグレート制御部がマイグレーション処理を必要と判断したら，仮想ページを低位アドレスの実ページから高位アドレスの実ページへ移動するマイグレーションを実行するマイグレート部を有し，ページ管理テーブルは，実ページ管理テーブルＰＦＴ及び仮想ページ管理テーブルＰＧＴから構成され，実ページ管理テーブルＰＦＴには，マイグレートインターバル時間と，マイグレーション処理の実行要否で参照するしきい値が格納される。【選択図】  図２
2004206257.tif 000002
【特許請求の範囲】
【請求項１】
資源管理部と，メモリ管理部と，ページ管理テーブルから構成されるメモリ管理装置であって，
資源管理部は，ページングの対象となる仮想ページを監視しマイグレートチェック処理を行う実ページ参照監視部と，マイグレーションするインターバル時間を設定するマイグレートインターバル時間登録部と，マイグレーション処理の実行要否を判断するマイグレート制御部を有し，
メモリ管理部は，資源管理部のマイグレート制御部がマイグレーション処理を必要と判断したら，仮想ページを低位アドレスの実ページから高位アドレスの実ページへ移動するマイグレーションを実行するマイグレート部と，仮想ページを実ページに固定処理する実ページ固定処理部と，仮想ページの実ページ固定から解除処理する実ページ固定解除処理部を有し，
ページ管理テーブルは，実ページ管理テーブルＰＦＴ及び仮想ページ管理テーブルＰＧＴから構成され，実ページ管理テーブルＰＦＴには，使用実ページリストと，マイグレートインターバル時間と，マイグレーション処理の実行要否で参照するしきい値が格納される，
ことを特徴とするメモリ管理装置。
【請求項２】
請求項１に記載されたメモリ管理装置において，
実ページ管理テーブルＰＦＴに，更に，マイグレートページ数上限値とマイグレートカウンタを格納することを特徴とするメモリ管理装置。
【請求項３】
請求項１又は請求項２に記載されたメモリ管理装置において，
使用実ページリストに接続されるＰＦＴＥには，実ページ参照頻度カウンタと，実ページ固定履歴フラグと，実ページ固定履歴チェックフラグと，実ページ固定頻度カウンタと，実ページ固定解除後動作回数カウンタが格納されることを特徴とするメモリ管理装置。
【請求項４】
請求項１又は請求項２又は請求項３に記載されたメモリ管理装置において，
マイグレーション処理の実行要否で参照するしきい値として，実ページ固定回数しきい値，解除後動作回数しきい値，の何れか又は双方を採用することを特徴とするメモリ管理装置。
【請求項５】
コンピュータプログラムを記憶した記憶媒体であって，
コンピュータプログラムが，実ページ参照フラグをチェックして，実ページの参照が有れば実ページ参照頻度カウンタを１加算するステップと，当該仮想ページがページング可能か判断するステップと，実ページ固定履歴フラグＦ１が『有り』か否かを判断するステップと，実ページ固定履歴フラグが『有り』と判断した時は，マイグレートチェック処理を実行するステップを有する実ページ参照監視処理（１）プログラムであることを特徴とするプログラムを記憶した記憶媒体。
【請求項６】
請求項５に記載されたコンピュータプログラムを記憶した記憶媒体において，
マイグレートチェック処理は，実ページ固定履歴フラグを『有り』から『無し』に書き換えるステップと実ページ固定履歴チェックフラグを『未』から『済み』に書き換えるステップか，又は，実ページ固定履歴フラグを『有り』から『無し』に書き換えるステップと実ページ固定頻度カウンタに１を加算するステップ，の何れかを有する実ページ参照監視処理（１）プログラムであることを特徴とするプログラムを記憶した記憶媒体。
【請求項７】
コンピュータプログラムを記憶した記憶媒体であって，
コンピュータプログラムが，実ページ参照フラグをチェックして，実ページの参照が有れば実ページ参照頻度カウンタを１加算するステップと，当該仮想ページがページング可能か判断するステップと，実ページ固定履歴フラグＦ１を『有り』から『無し』に書き換えるステップと，実ページ固定解除後動作回数カウンタＣ４に１を加算するステップを有する実ページ参照監視処理（２）プログラムであることを特徴とするプログラムを記憶した記憶媒体。
【請求項８】
コンピュータプログラムを記憶した記憶媒体であって，
コンピュータプログラムが，使用実ページリスト１を選択するステップと，高位アドレスの記憶領域に空きが在るかを判断するステップと，選択した使用実ページリスト１中からマイグレーションの実行の要否判定処理の対象となるＰＦＴＥを選択するステップと，選択したＰＦＴＥの有無をチェックするステップと，マイグレーション実行要否判定処理を行うステップと，マイグレート部でマイグレーションを実行するステップと，マイグレートカウンタに１を足すステップと，マイグレートカウンタがマイグレートページ数上限値を超えているかを判断するステップと，現在チェックしているリストが使用実ページリスト１であるかを判断するステップと，使用実ページリスト２を選択するステップを有するマイグレーション処理プログラムであることを特徴とするプログラムを記憶した記憶媒体。
【請求項９】
請求項８に記載されたコンピュータプログラムを記憶した記憶媒体において，
マイグレーション実行要否判定処理は，実ページ固定履歴フラグが『無し』かを判断するステップと，実ページ固定履歴チェックフラグが『済み』かを判断するステップと，実ページ固定履歴チェックフラグを『済み』から『未』に書き換えるステップを有するマイグレーション処理プログラムであることを特徴とするプログラムを記憶した記憶媒体。
【請求項１０】
請求項８に記載されたコンピュータプログラムを記憶した記憶媒体において，
マイグレーション実行要否判定処理は，実ページ固定履歴フラグが『無し』かを判断するステップと，実ページ固定頻度カウンタが実ページ固定回数しきい値未満であるかを判断するステップと，実ページ固定頻度カウンタの値をクリアするステップを有するマイグレーション処理プログラムであることを特徴とするプログラムを記憶した記憶媒体。
【請求項１１】
請求項８に記載されたコンピュータプログラムを記憶した記憶媒体において，
マイグレーション実行要否判定処理は，実ページ固定履歴フラグが『無し』かを判断するステップと，実ページ固定解除後動作回数カウンタが解除後動作回数しきい値を超えているかを判断するステップと，実ページ固定解除後動作回数カウンタの値をクリアするステップを有するマイグレーション処理プログラムであることを特徴とするプログラムを記憶した記憶媒体。
【請求項１２】
請求項８に記載されたコンピュータプログラムを記憶した記憶媒体において，
マイグレーション実行要否判定処理は，実ページ固定履歴フラグが『無し』かを判断するステップと，実ページ固定履歴チェックフラグが『済み』かを判断するステップと，当該実ページに対応する仮想ページのＰＧＴＥを取得するステップと，マイグレート禁止フラグが『ＯＦＦ』かを判断するステップと，実ページ固定履歴チェックフラグを『済み』から『未』に書き換えるステップと，マイグレート禁止フラグを『ＯＦＦ』から『ＯＮ』に書き換えるステップを有するマイグレーション処理プログラムであることを特徴とするプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はオペレーティングシステムのメモリ管理装置に関し，特に仮想記憶方式による低位アドレスの実ページのマイグレーション処理に好適なメモリ管理装置に関する。
【０００２】
なお，本明細書でいう「マイグレーション」とは，低位アドレスの実ページ記憶領域に在る実ページを高位アドレスの実ページ記憶領域へ移動することであり，低位アドレスの実ページ記憶領域に空きを作る記憶域管理をいう。
【０００３】
【従来の技術】
従来から，使用可能なアドレス空間（仮想メモリ空間）をユーザにそのまま開放して使用可能とし，物理メモリ領域（メインメモリ）との差をメモリ管理の手法で解決する方法として，ページング式メモリ管理方式が知られている（例えば，特許文献１参照）。このページング式メモリ管理方式では，同公報に記載のように，物理メモリ領域からページ除去の必要性が生じた時点で仮想ページをページアウトして，実ページに空きをつくっていた。
【０００４】
【特許文献１】
特開平６−８９２２１号公報
【０００５】
【発明が解決しようとする課題】
ところで，その従来技術は，仮想ページのスワッピング或いはページングの際にデータセットへの入出力が発生し，ＣＰＵの性能低下の面で配慮がなされていないという課題があった。又，スワップアウトやページアウトはページ除去の必要性が生じて始めて行われるものであり，スワッピングやページングが発生すると，プログラム実行がスワッピングもしくはページング完了まで待たされ，プログラム実行時間が増加するという課題もあった。
【０００６】
本発明は，上記課題に鑑みて為されたものであり，プログラム実行中のマイグレーション処理を無くすることを目的とする。更に，マイグレーションした仮想ページが再度，低位アドレスの実ページへ割り当て直された場合の，無駄なマイグレーションを少なくすることを目的とする。
【０００７】
【課題を解決するための手段】
請求項１の記載に係る発明は，
資源管理部と，メモリ管理部と，ページ管理テーブルから構成されるメモリ管理装置であって，
資源管理部は，ページングの対象となる仮想ページを監視しマイグレートチェック処理を行う実ページ参照監視部と，マイグレーションするインターバル時間を設定するマイグレートインターバル時間登録部と，マイグレーション処理の実行要否を判断するマイグレート制御部を有し，
メモリ管理部は，資源管理部のマイグレート制御部がマイグレーション処理を必要と判断したら，仮想ページを低位アドレスの実ページから高位アドレスの実ページへ移動するマイグレーションを実行するマイグレート部と，仮想ページを実ページに固定処理する実ページ固定処理部と，仮想ページの実ページ固定から解除処理する実ページ固定解除処理部を有し，
ページ管理テーブルは，実ページ管理テーブルＰＦＴ及び仮想ページ管理テーブルＰＧＴから構成され，実ページ管理テーブルＰＦＴには，使用実ページリストと，マイグレートインターバル時間と，マイグレーション処理の実行要否で参照するしきい値が格納される，
ことを特徴とする。
【０００８】
請求項２の記載に係る発明は，
請求項１に記載されたメモリ管理装置において，
実ページ管理テーブルＰＦＴに，更に，マイグレートページ数上限値とマイグレートカウンタを格納することを特徴とする。
【０００９】
請求項３の記載に係る発明は，
請求項１又は請求項２に記載されたメモリ管理装置において，
使用実ページリストに接続されるＰＦＴＥには，実ページ参照頻度カウンタと，実ページ固定履歴フラグと，実ページ固定履歴チェックフラグと，実ページ固定頻度カウンタと，実ページ固定解除後動作回数カウンタが格納されることを特徴とする。
【００１０】
請求項４の記載に係る発明は，
請求項１又は請求項２又は請求項３に記載されたメモリ管理装置において，
マイグレーション処理の実行要否で参照するしきい値として，実ページ固定回数しきい値，解除後動作回数しきい値，の何れか又は双方を採用することを特徴とする。
【００１１】
請求項５の記載に係る発明は，
コンピュータプログラムを記憶した記憶媒体であって，
コンピュータプログラムが，実ページ参照フラグをチェックして，実ページの参照が有れば実ページ参照頻度カウンタを１加算するステップと，当該仮想ページがページング可能か判断するステップと，実ページ固定履歴フラグＦ１が『有り』か否かを判断するステップと，実ページ固定履歴フラグが『有り』
と判断した時は，マイグレートチェック処理を実行するステップを有する実ページ参照監視処理（１）プログラムであることを特徴とする。
【００１２】
請求項６の記載に係る発明は，
請求項５に記載されたコンピュータプログラムを記憶した記憶媒体において，マイグレートチェック処理は，実ページ固定履歴フラグを『有り』から『無し』に書き換えるステップと実ページ固定履歴チェックフラグを『未』から『済み』に書き換えるステップか，又は，実ページ固定履歴フラグを『有り』から『無し』に書き換えるステップと実ページ固定頻度カウンタに１を加算するステップ，の何れかを有する実ページ参照監視処理（１）プログラムであることを特徴とする。
【００１３】
請求項７の記載に係る発明は，
コンピュータプログラムを記憶した記憶媒体であって，
コンピュータプログラムが，実ページ参照フラグをチェックして，実ページの参照が有れば実ページ参照頻度カウンタを１加算するステップと，当該仮想ページがページング可能か判断するステップと，実ページ固定履歴フラグＦ１を『無し』に書き換えるステップと，実ページ固定解除後動作回数カウンタＣ４に１を加算するステップを有する実ページ参照監視処理（２）プログラムであることを特徴とするプログラムを記憶した記憶媒体。
【００１４】
請求項８の記載に係る発明は，
コンピュータプログラムを記憶した記憶媒体であって，
コンピュータプログラムが，使用実ページリスト１を選択するステップと，高位アドレスの記憶領域に空きが在るかを判断するステップと，選択した使用実ページリスト１中からマイグレーションの実行の要否判定処理の対象となるＰＦＴＥを選択するステップと，選択したＰＦＴＥの有無をチェックするステップと，マイグレーション実行要否判定処理を行うステップと，マイグレート部でマイグレーションを実行するステップと，マイグレートカウンタに１を足すステップと，マイグレートカウンタがマイグレートページ数上限値を超えているかを判断するステップと，現在チェックしているリストが使用実ページリスト１であるかを判断するステップと，使用実ページリスト２を選択するステップを有するマイグレーション処理プログラムであることを特徴とする。
【００１５】
請求項９の記載に係る発明は，
請求項８に記載されたコンピュータプログラムを記憶した記憶媒体において，マイグレーション実行要否判定処理は，実ページ固定履歴フラグが『無し』かを判断するステップと，実ページ固定履歴チェックフラグが『済み』かを判断するステップと，実ページ固定履歴チェックフラグを『済み』から『未』に書き換えるステップを有するマイグレーション処理プログラムであることを特徴とする。
【００１６】
請求項１０の記載に係る発明は，
請求項８に記載されたコンピュータプログラムを記憶した記憶媒体において，マイグレーション実行要否判定処理は，実ページ固定履歴フラグが『無し』かを判断するステップと，実ページ固定頻度カウンタが実ページ固定回数しきい値未満であるかを判断するステップと，実ページ固定頻度カウンタの値をクリアするステップを有するマイグレーション処理プログラムであることを特徴とする。
【００１７】
請求項１１の記載に係る発明は，
請求項８に記載されたコンピュータプログラムを記憶した記憶媒体において，マイグレーション実行要否判定処理は，実ページ固定履歴フラグが『無し』かを判断するステップと，実ページ固定解除後動作回数カウンタが解除後動作回数しきい値を超えているかを判断するステップと，実ページ固定解除後動作回数カウンタの値をクリアするステップを有するマイグレーション処理プログラムであることを特徴とする。
【００１８】
請求項１２の記載に係る発明は，
請求項８に記載されたコンピュータプログラムを記憶した記憶媒体において，マイグレーション実行要否判定処理は，実ページ固定履歴フラグが『無し』かを判断するステップと，実ページ固定履歴チェックフラグが『済み』かを判断するステップと，当該実ページに対応する仮想ページのＰＧＴＥを取得するステップと，マイグレート禁止フラグが『ＯＦＦ』かを判断するステップと，実ページ固定履歴チェックフラグを『済み』から『未』に書き換えるステップと，マイグレート禁止フラグを『ＯＦＦ』から『ＯＮ』に書き換えるステップを有するマイグレーション処理プログラムであることを特徴とする。
【００１９】
【発明の実施の形態】
本発明のメモリ管理装置を説明する前に，図１を用いて本発明のマイグレーションの概念を説明する。
【００２０】
図１において，実ページ記憶領域であるメインメモリ（主記憶装置）１０は，実ページ記憶領域を管理する単位である実ページ１１と，実ページ１１の管理テーブルであるＰＦＴ２４１から構成されている。ここで，実ページ１１は，仮想記憶方式における仮想ページ２１の実ページ記憶領域の割り当て領域である。実ページ１１を管理するＰＦＴ２４１の情報として，実ページ番号，固定履歴及び履歴チェック等がある。更に，仮想記憶方式では，仮想ページ記憶領域である仮想記憶空間２０は，仮想ページ記憶領域の管理単位である仮想ページ２１と，それら仮想ページ２１の管理テーブルであるＰＧＴ２４２から構成されている。ここで，仮想ページ２１は，ユーザプログラムが参照・更新可能な領域である。仮想ページ２１を管理するＰＧＴ２４２の情報として，仮想ページ番号とマイグレート禁止フラグがある。
【００２１】
なお，現在のオペレーティングシステムＯＳは，命令アドレス・オペランドアドレスを６４ビットでアドレシングするハードウェア機構において，ユーザプログラムの６４ビットアドレシング動作を保証した，６４ビットアドレシングをサポートしているが，プログラム互換性を保障するため２４／３１ビットアドレシングもサポートしており，プログラムがアクセスする記憶域は１６ＭＢのアドレス境界１４，２ＧＢのアドレス境界１５がある。この場合，アドレシングが１６／３２ビットでも同様のアドレス境界が発生する。
【００２２】
図１に示す例では，１６ＭＢのアドレス境界１４より低位アドレスの実ページである実ページ番号が１の「実ページ１」が仮想ページに割り当てられた状態であり，実ページ１１の管理情報であるＰＦＴ２４１から「実ページ１」の固定履歴が『無し』であり且つ履歴チェックが『済み』であるので，当該仮想ページのマイグレーションが可能と判断する。同様に，実ページ番号が３の「実ページ３」及び実ページ番号が５６８の「実ページ５６８」も，固定履歴が『無し』であり且つ履歴チェックが『済み』であるので，当該仮想ページのマイグレーションは可能である。それに対して，実ページ番号が２の「実ページ２」は固定履歴が『有り』であるので（しかも履歴チェックが『未』であるので），当該仮想ページのマイグレーションは出来ない。（当該仮想ページに割り当てられた実ページ１１の固定履歴が『有り』の状態か又は履歴チェックが『未』である場合は，当該仮想ページはマイグレーションの対象とならない）
マイグレーションは既述したように，高速な実ページ間の移動であり，ファイル入出力を伴うページングとは異なる。図１に示す例では，１６ＭＢのアドレス境界１４より低位アドレスの「実ページ１」を割り当てられた仮想ページが，１６ＭＢのアドレス境界１４より高位アドレスの実ページ（Ｘ位置）へ移動することを示している。又，１６ＭＢのアドレス境界１４より低位アドレスの「実ページ３」に割り当てられた仮想ページが，２ＧＢのアドレス境界１５より高位アドレスの実ページ（Ｙ位置）に移動することも可能である。更に，１６ＭＢのアドレス境界１４より高位アドレスの「実ページ５６８」に割り当てられた仮想ページ３２が２ＧＢのアドレス境界１５０より高位アドレスの実ページ（Ｚ位置）に移動することも可能である。
【００２３】
それに対して，図１に示す例では，「実ページ０」に割り当てられた仮想ページは履歴チェックが『未』であるため，又「実ページ２」に割り当てられた仮想ページは固定履歴が『有り』である（履歴チェックが『未』でもある）ため，何れもマイグレーションの対象にならない。
【００２４】
又，マイグレーションした仮想ページは，マイグレート禁止フラグを『ＯＮ』にすることで，高位アドレスの実ページへマイグレートした後に低位アドレスの実ページへ再配置された場合に，再度，失敗する可能性の高い高位アドレスへのマイグレーションを抑止することが可能である。
【００２５】
以下，本発明のメモリ管理装置を，図２〜図１６を用いて説明する。図２はコンピュータシステムの構成を，図３は本発明のメモリ管理装置２１０の構成を，図４は実ページ管理テーブルＰＦＴ２４１の構成を，図５はＰＦＴＥの構成を，図６はＰＧＴＥの構成を，図７はマイグレーション後の図４に対応するＰＦＴ２４１の一部を，図８は実ページ参照監視部２２１の実ページ参照監視処理（１）のフローチャートを，図９はマイグレートチェック処理Ｓ８０４の実施例のフローチャートを，図１０はマイグレートチェック処理Ｓ８０４の他の実施例のフローチャートを，図１１は実ページ参照監視部２２１の実ページ参照監視処理（２）のフローチャートを，図１２はマイグレート制御部２２５のマイグレーション処理のフローチャートを，図１３はマイグレーション実行要否判定処理Ｓ２０５の実施例のフローチャートを，図１４はマイグレーション実行要否判定処理Ｓ２０５の他の実施例のフローチャートを，図１５はマイグレーション実行要否判定処理Ｓ２０５の他の実施例のフローチャートを，図１６は図１３のマイグレートション実行要否判断処理Ｓ２０５の変形例のフローチャートを，それぞれ示す図である。
【００２６】
図２において，本発明のメモリ管理装置２１０は，資源管理部２２０と，メモリ管理部２３０と，及びページ管理テーブル２４０から構成される。メモリ管理装置２１０は，メインメモリ（主記憶装置）２００に置かれており，メインメモリ２００は，ＣＰＵ１００，外部記憶装置３００と共にコンピュータシステムを構成している。
【００２７】
本発明のメモリ管理装置２１０の資源管理部２２０，メモリ管理部２３０，及びページ管理テーブル２４０の構成を図３に示す。
【００２８】
図３において，資源管理部２２０は，ページング及びマイグレーションの実行可否を判断するプログラムから成り，ページングの対象となる仮想ページを監視しマイグレートチェック処理を行う実ページ参照監視部２２１と，監視するインターバル時間を設定する実ページ参照監視インターバル時間登録部２２２と，外部記憶装置３００に格納されたパラメタを解析するパラメタ解析部２２３と，マイグレーションするインターバル時間を設定するマイグレートインターバル時間登録部２２４と，マイグレーションの実行要否を判断するマイグレート制御部２２５から構成される。
【００２９】
実ページ参照監視部２２１は，実ページ参照監視インターバル時間登録部２２２により登録されているインターバル時間を契機に，定期的に動作し，実ページの参照頻度をチェックする。その詳細は，図８〜図１１で後述する。
【００３０】
マイグレートインターバル時間登録部２２４は，コンピュータユーザが，マイグレートインターバル時間３０１を外部記憶装置３００に格納する際に動作するものである。マイグレートインターバル時間３０１は，コンピュータにマイグレーションを定期的に行わせる時間である。
【００３１】
マイグレート制御部２２５は，マイグレートインターバル時間３０１毎に定期的に動作し，実ページのマイグレーション処理の要否の判断を行う。その詳細は，図１２以降で後述する。
【００３２】
メモリ管理部２３０は，マイグレーションを実行するプログラムから成り，資源管理部２２０のマイグレート制御部２２５がマイグレーション処理を必要と判断したら，仮想ページを低位アドレスの実ページから高位アドレスの実ページへ移動するマイグレーションを実行するマイグレート部２３１と，仮想ページを実ページに固定処理する実ページ固定処理部２３２と，仮想ページの実ページ固定から解除処理する実ページ固定解除処理部２３３から構成される。実ページ固定解除処理部２３３は，仮想ページの実ページ固定から解除処理するステップと，実ページ固定解除後動作回数カウンタＣ４をクリアするステップを有するプログラムから構成される。
【００３３】
なお，外部記憶装置３００には，コンピュータユーザのマイグレーションに関する入力パラメタである，マイグレートインターバル時間３０１，マイグレートページ数上限値３０２，実ページ固定回数しきい値３０３，解除後動作回数しきい値３０４を格納しておく。この入力パラメタを変更可能とすることにより，コンピュータのマイグレーションを柔軟にしている。
【００３４】
ページ管理テーブル２４０は，実ページ管理テーブルＰＦＴ２４１と，仮想ページ管理テーブルＰＧＴ２４２から構成される。図４にＰＦＴ２４１の構成を示す。
【００３５】
図４において，ＰＦＴ２４１は，使用実ページリスト１と，使用実ページリスト２と，使用実ページリスト３と，マイグレートインターバル時間３０１と，マイグレートページ数上限値３０２と，実ページ固定回数しきい値３０３と，解除後動作回数しきい値３０４と，マイグレートカウンタＣ１から構成される。
【００３６】
使用実ページリスト１には，実ページ記憶領域の１６ＭＢより低位アドレスに区分される実ページに対応した，ＰＦＴ２４１のエントリであるＰＦＴＥが接続される。使用実ページリスト２には，１６ＭＢより高位アドレスで２ＧＢより低位アドレスに区分される実ページに対応したＰＦＴＥが接続される。使用実ページリスト３には，２ＧＢより高位アドレスに区分される実ページに対応したＰＦＴＥが接続される。
【００３７】
マイグレートインターバル時間３０１，マイグレートページ数上限値３０２，実ページ固定回数しきい値３０３，及び解除後動作回数しきい値３０４は，外部記憶装置３００に格納されている入力パラメタをパラメタ解析部２２３で解析した結果であり，マイグレート制御部２２５が動作中に参照する領域である。
【００３８】
マイグレートインターバル時間３０１はマイグレート制御部２２５を動作させる間隔であり，マイグレートインターバル時間登録部２２４が時間登録する際に使用する。実施例では入力パラメタに３秒を指定しており，３秒間隔でマイグレート制御部２２５を動作をさせる。前記マイグレートインターバル時間３０１が短くなるほど，マイグレーションの頻度が上がることで偏在が軽減され，低位アドレスの実ページ記憶領域に空きができ易くなる。
【００３９】
マイグレートページ数上限値３０２は，マイグレート制御部２２５の１回の動作でマイグレーションする仮想ページ数の上限値である。マイグレーションが多数の仮想ページに行われる場合，その処理の間はＣＰＵがマイグレーションにより占有される。これは，そうしたマイグレーション処理により，ユーザプログラムが長時間待たされることを避けるためのものである。実施例ではマイグレーションした仮想ページ数が６００を超えると，マイグレーション処理を終了させる。
【００４０】
実ページ固定回数しきい値３０３は，仮想ページが実ページに固定された回数の上限値であり，マイグレーションの実行の要否を判断する際に参照するしきい値である。マイグレーションに係るＣＰＵ負荷を調整するためのものである。実ページ固定回数しきい値３０３が大きいほど，１回のマイグレーションで対象となる仮想ページ数は増大する。本実施例ではマイグレートしきい値が５であり，実ページの固定回数が５回未満の仮想ページを対象にマイグレーションを行う。これは，実ページの固定回数が多いと言うことは，マイグレーションを行っても，その仮想ページが低位アドレスの実ページ記憶領域に引き戻される回数が多く，マイグレーションを行う効果が小さいからである。
【００４１】
解除後動作回数しきい値３０４は，実ページ固定解除処理部２３３によって実ページの固定が解除されてから，マイグレート制御部２２５が動作した回数の下限値であり，マイグレーションの実行の要否を判断する際に参照するしきい値である。
【００４２】
マイグレートカウンタＣ１は，マイグレーションした仮想ページ数をカウントするカウンタである。
【００４３】
図５は，図４で示した各ＰＦＴＥの詳細な構成を示す。
【００４４】
図５において，ＰＦＴ２４１のエントリであるＰＦＴＥは，当該ＰＦＴＥが管理する実ページを割り当てられた仮想ページ番号と，仮想ページの属するアドレス空間番号と，仮想ページのアクセス頻度を示す実ページ参照頻度カウンタＣ２と，仮想ページの実ページ固定履歴を示す実ページ固定履歴フラグＦ１と，実ページ参照監視部２２１が仮想ページの実ページ固定をチェックした状態を表す実ページ固定履歴チェックフラグＦ２と，仮想ページの実ページ固定頻度を表す実ページ固定頻度カウンタＣ３と，実ページ固定解除処理部２３３が動作し実ページを解除してからマイグレート制御部２２５が動作した回数（仮想ページの実ページ固定を解除してから経過した時間）を表す実ページ固定解除後動作回数カウンタＣ４から構成される。
【００４５】
図５に示した例では，当該ＰＦＴＥが管理する実ページを割り当てられたアドレス空間番号５の仮想ページ番号４５０に関する状態を示している。当該仮想ページの参照頻度は，ＰＦＴＥの管理する実ページに割り当たってから４回であり，仮想ページの実ページ固定が行われており（Ｆ１が『有り』である），実ページ参照監視部２２１が仮想ページの実ページ固定をチェックした状態であり（Ｆ２が『済み』である），仮想ページの実ページ固定回数が１３回であり，実ページ解除後のマイグレート制御部２２５の動作回数が３回であることを示している。
【００４６】
図６は，ＰＧＴ２４２のエントリであるＰＧＴＥの構成を示す。
【００４７】
図６において，ＰＧＴＥは，仮想ページに対応する実ページアドレスと，マイグレーションした後に低位アドレスの実ページ記憶領域へ再配置された仮想ページが，再度，マイグレーションされないよう制御するためのマイグレート禁止フラグから構成される。図６に示した例では，マイグレート禁止フラグがＯＮであるため，当該ＰＧＴＥが管理する仮想ページに対するマイグレーションは禁止される。
【００４８】
図７は，図４で示したＰＦＴ２４１のＰＦＴＥのリスト状態が，マイグレーションにより遷移した後のＰＦＴ２４１のＰＦＴＥのリスト状態を示す。図７に示した例では，仮想ページが上位アドレスの実ページ記憶領域へマイグレーションされたことで，実ページ記憶領域の１６ＭＢより低位アドレスに区分される実ページに対応した使用実ページリスト１からＰＦＴＥが２つ，又，１６ＭＢより高位アドレスで２ＧＢより低位アドレスに区分される実ページに対応した使用実ページリスト２からＰＦＴＥが１つ外されている。そして，前記２つの内の１つのＰＦＴＥが，１６ＭＢより高位アドレスで２ＧＢより低位アドレスに区分される実ページに対応した使用実ページリスト２へ，その他の２つのＰＦＴＥが，２ＧＢより高位アドレスに区分される実ページに対応した使用実ページリスト３へ，それぞれ接続されている。
【００４９】
図８は，図３の実ページ参照監視部２２１の実ページ参照監視処理（１）のフローチャートを，図１１は実ページ参照監視処理（２）のフローチャートを，それぞれ示す図である。
【００５０】
図８において，実ページ参照監視部２２１は，その実ページ参照監視処理（１）プログラムが，実ページ参照監視インターバル時間登録部２２２に登録されている時間毎に起動する。先ず，実ページ参照フラグをチェックすることにより，実ページの参照の有無をチェックし，実ページの参照が有れば，実ページ参照頻度カウンタＣ２を１加算する（ステップＳ８０１）。次に，当該仮想ページがページング可能か判断する（ステップＳ８０２）。ページングが不可能と判断された時は，マイグレートチェック処理を行うこと無しに実ページ参照監視処理（１）を終了する。ステップＳ８０２でページングが可能と判断された時は，実ページ固定履歴フラグＦ１が『有り』か否かを判断する（ステップＳ８０３）。実ページ固定履歴フラグＦ１が『無し』と判断した時は，マイグレートチェック処理を行うこと無しに実ページ参照監視処理（１）を終了する。ステップＳ８０３において，実ページ固定履歴フラグＦ１が『有り』と判断した時は，マイグレートチェック処理を実行して（ステップＳ８０４）から，実ページ参照監視処理（１）を終了する。
【００５１】
実ページ参照監視処理（１）には，そのマイグレートチェック処理が図９，図１０に示すものの２種類のタイプがあり，図１２に示す本発明のマイグレーション処理のマイグレーションの実行の要否判定処理の２種類のタイプ（後述する図１３，図１４）と対を為している。
【００５２】
第１のタイプは，そのマイグレートチェック処理が図９に示すように，実ページ固定履歴フラグＦ１を『有り』から『無し』に書き換える（ステップＳ９０１）と共に，実ページ固定履歴チェックフラグＦ２を『未』から『済み』に書き換える（ステップＳ９０２）。このように書き換えることにより，マイグレーションを可能にするものである。
【００５３】
第１のタイプは，図１３に示すタイプのマイグレーションの実行の要否判定処理と連携するものである。
【００５４】
第２のタイプは，そのマイグレートチェック処理が図１０に示すように，実ページ固定履歴フラグＦ１を『有り』から『無し』に書き換える（ステップＳ１００１）と共に，実ページ固定頻度カウンタＣ３に１を加算する（ステップＳ１００２）。このように，実ページ固定頻度を条件にすることにより，マイグレーションを可能にするものである。
【００５５】
実ページ固定頻度が低い場合は，当該仮想ページがメインメモリの低位アドレスの記憶領域にあまり固定されないので，マイグレーションする効果は高い。これに対して，実ページ固定頻度が高い場合は，当該仮想ページがメインメモリの低位アドレスの記憶領域に頻繁に固定されるため，マイグレーションしても低位アドレスの記憶領域に戻されるので，マイグレーションする効果が薄れる。第２のタイプは，これを考慮したものである。
【００５６】
第２のタイプは，図１４に示すタイプのマイグレーションの実行の要否判定処理と連携して，マイグレート回数しきい値３０５の設定を変更することにより，マイグレーションの実行要否に係わる判定処理が柔軟に出来る効果がある。
【００５７】
図１１は実ページ参照監視処理（２）のフローチャートを示す図である。
【００５８】
図１１において，実ページ参照監視部２２１は，その実ページ参照監視処理（２）プログラムが，実ページ参照監視インターバル時間登録部２２２に登録されている時間毎に起動する。先ず，実ページ参照フラグをチェックすることにより，実ページの参照の有無をチェックし，実ページの参照が有れば，実ページ参照頻度カウンタＣ２を１加算する（ステップＳ１１０１）。次に，当該仮想ページがページング可能か判断する（ステップＳ１１０２）。ページングが不可能と判断された時は，マイグレートチェック処理を行うこと無しに実ページ参照監視処理（２）を終了する。ステップＳ１１２でページングが可能と判断された時は，実ページ固定履歴フラグＦ１を『有り』から『無し』に書き換える（ステップＳ１１０３）と共に，実ページ固定解除後動作回数カウンタＣ４に１を加算して（ステップ１１０４）から，実ページ参照監視処理（２）を終了する。
【００５９】
図１１に示す実ページ参照監視処理（２）は，図８と図９からなる前記第１のタイプ，図８と図１０からなる前記第２のタイプに対して，第３のタイプとなるものであり，実ページ固定解除後動作回数を条件にすることにより，マイグレーションを可能にするものである。
【００６０】
第３のタイプは，図１５に示すタイプのマイグレーションの実行の要否判定処理と連携して，解除後動作回数しきい値の設定を変更することにより，マイグレーションの実行要否に係わる判定処理が柔軟に出来る効果がある。
【００６１】
これら実ページ参照監視処理の第１〜第３のタイプは，ユーザが予め選択し設定する。
【００６２】
図１２は，図３のマイグレート制御部２２５のマイグレーション処理のフローチャートを示す図である。
【００６３】
図１２において，マイグレート制御部２２５は，実ページ管理テーブルＰＦＴ２４１に記憶されているマイグレートインターバル時間３０１（例えば，３秒）を契機として起動する。先ず，実ページ管理テーブルＰＦＴ２４１に記憶されている使用実ページリスト１を選択する（ステップＳ１２０１）。次に，メインメモリの高位アドレスの記憶領域に実ページを格納するための空きスペースが有るか無いかを判断する（ステップＳ１２０２）。高位アドレスの記憶領域に空きスペースが無いと判断した場合は，このマイグレーション処理を終了する。ステップＳ１２０２で高位アドレスの記憶領域に空きスペースが有ると判断した場合は，選択した使用実ページリスト１中からマイグレーションの実行の要否判定処理の対象となるＰＦＴＥを選択し（ステップＳ１２０３），選択したＰＦＴＥの有無をチェックする（ステップＳ１２０４）。
【００６４】
ＰＦＴＥが有ると判断した場合は，図１３，図１４，図１５に示す３種類のタイプのマイグレーションの実行の要否判定処理を行う。この３種類のタイプは，前述したように，図８〜図１１に示した本発明の実ページ参照監視処理（１）（２）の３種類のタイプ（図８と図９，図８と図１０，図１１）と対を為している。この対を為す３種類のタイプは，前述したように，ユーザが予め選択し設定する。
【００６５】
第１のタイプは，図１３に示すように，実ページ固定履歴フラグＦ１が『無し』か否かを判断する（ステップＳ１３０１）と共に，実ページ固定履歴チェックフラグＦ２が『済み』か否かを判断し（ステップＳ１３０２），両ステップが共に「はい」と判断した場合は，実ページ固定履歴チェックフラグＦ２を『済み』から『未』に書き換えて（ステップＳ１３０３），マイグレーションの実行の要否判定処理を終了し，図１２のステップＳ１２０６へ進む。両ステップの何れかが「いいえ」と判断した場合は，ステップＳ１２０２に戻って別のＰＦＴＥについてステップＳ１２０２以降の処理を繰り返す。このようにして，マイグレーションの実行の要否を判定するものである。
【００６６】
第１のタイプによれば，マイグレーションの実行の要否判定処理が実ページ固定履歴チェックフラグＦ２をマイグレート実施の要否判断として参照することによって，ユーザが意識せずにマイグレーション処理をコンピュータシステムに適用出来る。
【００６７】
第２のタイプは，図１４に示すように，始めに，実ページ固定履歴フラグＦ１が『無し』か否かを判断し（ステップＳ１４０１），次に，実ページ固定頻度カウンタＣ３が実ページ固定回数しきい値３０３（例えば，５回）未満であるか否かを判断する（ステップＳ１４０２）。両ステップが共に「はい」と判断した場合は，実ページ固定頻度カウンタＣ３の値をクリアして（ステップＳ１４０３）から，マイグレーションの実行の要否判定処理を終了し，図１２のステップＳ１２０６へ進む。両ステップの何れかが「いいえ」と判断した場合は，ステップＳ１２０２に戻って別のＰＦＴＥについてステップＳ１２０２以降の処理を繰り返す。このようにして，マイグレーションの実行の要否を判定するものである。
【００６８】
第２のタイプによれば，マイグレーションの実行の要否判定処理が実ページ固定頻度カウンタＣ３をマイグレート実施の要否判断として参照することによって，ユーザが入力パラメタの実ページ固定回数しきい値３０３を変更することで，システム負荷に応じた柔軟なマイグレーション処理をコンピュータシステムに適用出来る。
【００６９】
第３のタイプは，図１５に示すように，始めに，実ページ固定履歴フラグＦ１が『無し』か否かを判断し（ステップＳ１５０１），次に，実ページ固定解除後動作回数カウンタＣ４が解除後動作回数しきい値３０４（例えば，３回）を超えているか否かを判断する（ステップＳ１５０２）。両ステップが共に「はい」と判断した場合は，実ページ固定解除後動作回数カウンタＣ４の値をクリアして（ステップＳ１５０３）から，マイグレーションの実行の要否判定処理を終了し，図１２のステップＳ１２０６へ進む。両ステップの何れかが「いいえ」と判断した場合は，ステップＳ１２０２に戻って別のＰＦＴＥについてステップＳ１２０２以降の処理を繰り返す。このようにして，マイグレーションの実行の要否を判定するものである。
【００７０】
第３のタイプによれば，マイグレーションの実行の要否判定処理が実ページ固定解除後動作回数カウンタＣ４をマイグレート実施の要否判断として参照することによって，ユーザが入力パラメタの解除後動作回数しきい値３０４を変更することで，システム負荷に応じた柔軟なマイグレーション処理をコンピュータシステムに適用出来る。
【００７１】
マイグレーションの実行の要否判定処理を終了し，図１２のステップＳ１２０６へ進んだ後は，マイグレーションが可能であるので，マイグレート部２３１でマイグレーションを実行する。次いで，マイグレートカウンタＣ１に１を足し（ステップＳ１２０７），マイグレートカウンタＣ１がマイグレートページ数上限値３０２（例えば，６００ページ）を超えているか否かを判断する（ステップＳ１２０８）。マイグレートカウンタＣ１がマイグレートページ数上限値３０２以下であれば，次のＰＦＴＥを選択する。マイグレートカウンタＣ１がマイグレートページ数上限値３０２を超えた場合は，マイグレーション処理を終了する。ステップＳ１２０４でＰＦＴＥが無いと判断した時は，現在チェックしているリストが使用実ページリスト１であるかを判断する（ステップＳ１２０９）。使用実ページリスト１でないと判断した場合は，マイグレーション処理を終了する。ステップＳ１２０９で使用実ページリスト１であると判断した場合は，使用実ページリスト２を選択した（ステップＳ１２１０）後，ステップＳ１２０２に戻ってステップＳ１２０２以降の処理を繰り返す。
【００７２】
図１６は，図１３に示したマイグレーションの実行の要否判定処理の第１のタイプの変形例であり，マイグレーションの実行の要否判定に仮想ページのマイグレーションの有無を追加したものである。始めに，実ページ固定履歴フラグＦ１が『無し』か否かを判断する（ステップＳ１６０１）と共に，実ページ固定履歴チェックフラグＦ２が『済み』か否かを判断し（ステップＳ１６０２），両ステップが共に「はい」と判断した場合は，当該実ページに対応する仮想ページのＰＧＴＥを取得した（ステップＳ１６０３）後，マイグレート禁止フラグＦ３が『ＯＦＦ』か否かを判断する（ステップＳ１６０４）。マイグレート禁止フラグＦ３が『ＯＦＦ』と判断した場合は，実ページ固定履歴チェックフラグＦ２を『済み』から『未』に書き換え（ステップＳ１６０５），続いて，マイグレーションした仮想ページであることを識別するためのマイグレート禁止フラグＦ３を『ＯＦＦ』から『ＯＮ』に書き換えた（ステップＳ１６０６）後に，マイグレーションの実行の要否判定処理を終了し，図１２のステップＳ１２０６へ進む。ステップＳ１６０１，Ｓ１６０２，Ｓ１６０４の何れかが「いいえ」と判断した場合は，ステップＳ１２０２に戻って別のＰＦＴＥについてステップＳ１２０２以降の処理を繰り返す。マイグレート禁止フラグＦ３を『ＯＦＦ』から『ＯＮ』に書き換える（ステップＳ１６０６）ことで，以降，当該仮想ページのマイグレーションは抑止される。
【００７３】
第１のタイプの変形例によれば，マイグレート制御部がマイグレート禁止フラグＦ３を更新・参照することによって，１度マイグレーション処理した仮想ページをマイグレーション処理しなくすることにより，マイグレート制御部が不必要なマイグレーション処理を行えなく出来る。
【００７４】
【発明の効果】
以上述べたように，本発明によれば，マイグレーションを定期的に行うことで，プログラム実行中のマイグレーション処理を無くするという効果がある。又，マイグレーションした仮想ページが再度低位アドレスの実ページへ割り当て直された場合に，無駄なマイグレーションを少なくするという効果がある。
【図面の簡単な説明】
【図１】本発明のマイグレーションの概念を示す図である。
【図２】コンピュータシステムの構成を示す図である。
【図３】本発明のメモリ管理装置２１０の構成を示す図である。
【図４】実ページ管理テーブルＰＦＴ２４１の構成を示す図である。
【図５】ＰＦＴＥの構成を示す図である。
【図６】ＰＧＴＥの構成を示す図である。
【図７】マイグレーション後の図４に相当するＰＦＴ２４１の一部を示す図である。
【図８】実ページ参照監視部２２１の実ページ参照監視処理（１）のフローチャートを示す図である。
【図９】マイグレートチェック処理Ｓ８０４の実施例のフローチャートを示す図である。
【図１０】マイグレートチェック処理Ｓ８０４の他の実施例のフローチャートを示す図である。
【図１１】実ページ参照監視部２２１の実ページ参照監視処理（２）のフローチャートを示す図である。
【図１２】マイグレート制御部２２５のマイグレーション処理のフローチャートを示す図である。
【図１３】マイグレーション実行要否判定処理Ｓ１２０５の実施例のフローチャートを示す図である。
【図１４】マイグレーション実行要否判定処理Ｓ１２０５の他の実施例のフローチャートを示す図である。
【図１５】マイグレーション実行要否判定処理Ｓ１２０５の他の実施例のフローチャートを示す図である。
【図１６】図１３のマイグレートション実行要否判断処理Ｓ１２０５の変形例のフローチャートを示す図である。
【符号の説明】
１０  実ページ記憶領域
１１  実ページ
１４  １６ＭＢのアドレス境界
１５  ２ＧＢのアドレス境界
２０  仮想記憶空間
２１  仮想ページ
１００  ＣＰＵ
２００  メインメモリ
２１０  メモリ管理装置
２２０  資源管理部
２２１  実ページ参照監視部
２２２  実ページ参照監視インターバル時間登録部
２２３  パラメタ解析部
２２４  マイグレートインターバル時間登録部
２２５  マイグレート制御部
２３０  メモリ管理部
２３１  マイグレート部
２３２  実ページ固定処理部
２３３  実ページ固定解除処理部
２４０  ページ管理テーブル
２４１  実ページ管理テーブルＰＦＴ
２４２  仮想ページ管理テーブルＰＧＴ
３００  外部記憶装置
３０１  マイグレートインターバル時間
３０２  マイグレートページ数上限値
３０３  実ページ固定回数しきい値
３０４  解除後動作回数しきい値
Ｃ１  マイグレートカウンタ
Ｃ２  実ページ参照頻度カウンタ
Ｃ３  実ページ固定頻度カウンタ
Ｃ４  実ページ固定解除後動作回数カウンタ
Ｆ１  実ページ固定履歴フラグ
Ｆ２  実ページ固定履歴チェックフラグ
Ｆ３  マイグレート禁止フラグ
【図１】
2004206257.tif 000003
【図２】
2004206257.tif 000004
【図３】
2004206257.tif 000005
【図４】
2004206257.tif 000006
【図５】
2004206257.tif 000007
【図６】
2004206257.tif 000008
【図７】
2004206257.tif 000009
【図８】
2004206257.tif 000010
【図９】
2004206257.tif 000011
【図１０】
2004206257.tif 000012
【図１１】
2004206257.tif 000013
【図１２】
2004206257.tif 000014
【図１３】
2004206257.tif 000015
【図１４】
2004206257.tif 000016
【図１５】
2004206257.tif 000017
【図１６】
2004206257.tif 000018