(57)【要約】【課題】    メモリ高負荷時におけるＯＳのオーバヘッドを小さくすることのできるメモリ管理装置を提供する。【解決手段】  プログラム毎に該プログラムが補助記憶装置に退避することのできる非常駐プログラムとして使用されるか、補助記憶装置に退避することのできない常駐プログラムとして使用されるかを表す管理情報を管理するプログラム管理テーブル１１５と、前記管理情報に基づき常駐プログラムとして使用するプログラムを主メモリの常駐プログラム格納領域に格納する常駐メモリ確保手段１３０と、前記管理情報に基づき非常駐プログラムとして使用するプログラムを主メモリの非常駐プログラム格納領域に格納する非常駐メモリ確保手段１４０と、非常駐プログラムの格納領域を管理する非常駐メモリ管理テーブル１８０と、  非常駐メモリ管理テーブルが管理する非常駐プログラムの格納領域に対してページング処理またはスワッピング処理を施す手段１８５，１９０を備えた。【選択図】  図１
2005190444.tif 000002
【特許請求の範囲】
【請求項１】
プログラム毎に該プログラムが補助記憶装置に退避することのできる非常駐プログラムとして使用されるか、補助記憶装置に退避することのできない常駐プログラムとして使用されるかを表す管理情報を管理するプログラム管理テーブルと、
前記管理情報に基づき常駐プログラムとして使用するプログラムを主メモリの常駐プログラム格納領域に格納する常駐メモリ確保手段と、
前記管理情報に基づき非常駐プログラムとして使用するプログラムを主メモリの非常駐プログラム格納領域に格納する非常駐メモリ確保手段と、
非常駐プログラムの格納領域を管理する非常駐メモリ管理テーブルと、
非常駐メモリ管理テーブルが管理する非常駐プログラムの格納領域に対してページング処理またはスワッピング処理を施す手段を備えたことを特徴とするメモリ管理装置。
【請求項２】
請求項１記載のメモリ管理装置において、常駐プログラムとして使用することを表す管理情報及び非常駐プログラムとして使用することを表す管理情報をそれぞれ変更する変更手段を備えたことを特徴とするメモリ管理装置。
【請求項３】
請求項１記載のメモリ管理装置において、常駐プログラムとして使用するプログラムは前記主メモリの物理アドレスの一方端側から格納し、非常駐プログラムとして使用するプログラムは前記主メモリの物理アドレスの他方端側から格納することを特徴とするメモリ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ管理装置に係り、特に仮想記憶方式のＯＳで動作する計算機のメモリ管理装置に関する。
【背景技術】
【０００２】
計算機はその処理用のプログラムを実行するためには、該プログラムを主メモリ装置上に配置しなければならない。しかし、主メモリ装置の容量には限度があるため、全てのプログラムを主メモリ装置上に配置することはできない。
【０００３】
そこで、考え出されたのが仮想メモリ方式である。仮想メモリ方式は、主メモリ装置が満杯で他のプログラムを配置できないとき、主メモリ装置上の現在必要のない（使用していない）プログラムを一時的に補助記憶装置に待避させ、主メモリ装置に空き領域を作り出す。そして、待避したプログラムを実行するときは、主メモリ装置上の必要のないプログラムを補助記憶装置に待避し、前記待避されていたプログラムを主メモリ装置上に戻して実行する。
【０００４】
このように仮想記憶方式では、主メモリ装置と補助記憶装置間でプログラムを移動しながら実行するため、プログラムの移動を行うＯＳ処理にオーバヘッドをもたらし、これによりプログラムの実行が遅延する。
【０００５】
プログラムの実行遅延を発生させない方式としては、主メモリ装置上にプログラムを常駐させる（補助記憶装置へ待避しない）方式が知られている。また、プログラム単位ではなくページ単位に参照頻度が低いプログラムを補助記憶装置へ待避するページング方式が知られている（例えば、特許文献１参照）。
【特許文献１】特開５−２７４２２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
仮想記憶方式では、主メモリ装置の空き領域が少なくなると、まずページ単位に補助記憶装置へ待避するページング方式で空き領域を作り、それでも解決しない場合にプログラム単位で補助記憶装置へ待避して大きな空き領域を作る。
【０００７】
ページング方式では、主メモリ装置を走査して参照頻度が低いメモリページを探す。しかし、主メモリ装置上には常駐プログラムと非常駐プログラムが分離されずに混在している場合、ページング方式では効率良くメモリ装置の空き領域を作り出すことができない。このため、プログラム単位で補助記憶装置に待避することにより空き領域を作り出すことになる。
【０００８】
プログラム単位で補助記憶装置へ待避する方式では、一度に大きな空き領域を作り出すことができる。しかし、待避したプログラムを再実行するときには、補助記憶装置から主メモリ装置に再配置することが必要であり、この処理によるオーバヘッドが大きくなる。すなわち、計算機において、補助記憶装置への待避と主メモリ装置への再配置を繰り返す場合にはトータルのスループットが低下する（スラッシング状態）ことになる。
【０００９】
本発明は、これらの問題点に鑑みてなされたもので、主メモリ高負荷時におけるＯＳのオーバヘッドを小さくすることのできるメモリ管理装置を提供する。
【課題を解決するための手段】
【００１０】
本発明は上記課題を解決するため、次のような手段を採用した。
【００１１】
プログラム毎に該プログラムが補助記憶装置に退避することのできる非常駐プログラムとして使用されるか、補助記憶装置に退避することのできない常駐プログラムとして使用されるかを表す管理情報を管理するプログラム管理テーブルと、前記管理情報に基づき常駐プログラムとして使用するプログラムを主メモリの常駐プログラム格納領域に格納する常駐メモリ確保手段と、前記管理情報に基づき非常駐プログラムとして使用するプログラムを主メモリの非常駐プログラム格納領域に格納する非常駐メモリ確保手段と、非常駐プログラムの格納領域を管理する非常駐メモリ管理テーブルと、非常駐メモリ管理テーブルが管理する非常駐プログラムの格納領域に対してページング処理またはスワッピング処理を施す手段を備えた。
【発明の効果】
【００１２】
本発明は、以上の構成を備えるため、メモリ高負荷時におけるＯＳのオーバヘッドを小さくすることのできるメモリ管理装置を提供することができる。
【発明を実施するための最良の形態】
【００１３】
以下、最良の実施形態を添付図面を参照しながら説明する。
【００１４】
図１は、本実施形態にかかる計算機のメモリ管理装置を説明する図である。この装置は、主メモリ装置（１００）、プログラムを格納したハードディスク装置等の補助記憶装置（１０１）、主メモリ装置上のプログラムの待避先となるスワップ装置等の補助記憶装置（１０２）を備える。なお、補助記憶装置（１０２）はハードディスク装置（１０１）等で構成することができる。
【００１５】
また、このメモリ管理装置は、補助記憶装置（１０１）に格納されているプログラムを主メモリ装置（１００）に配置するプログラムロード手段（１１０）、ＯＳがプログラムロード手段（１１０）によりプログラム毎に作成し、プログラム固有の情報を格納するプログラム管理テーブル（１１５）、プログラム管理テーブル（１１５）内にある当該プログラムが常駐プログラムか非常駐プログラムかを示す常駐フラグ（１２０）、プログラムロード手段（１１０）により読み込んだプログラムが常駐プログラムか非常駐プログラムかを判断する常駐／非常駐判別手段（１２５）、プログラムロード手段（１１０）からの空きメモリ要求に対して物理メモリ空間アドレスが小さい方から確保していく常駐メモリ確保手段（１３０）、プログラムロード手段（１１０）からの空きメモリ要求に対して物理メモリ空間アドレスが大きい方から確保していく非常駐メモリ確保手段（１４０）、常駐プログラムを非常駐プログラムに変更する非常駐化手段（１５０）と、非常駐化プログラムを常駐プログラムに変更する常駐化手段（１６０）、及び既に主メモリ装置（１００）に配置されているプログラムを常駐フラグの指定に従って配置し直すプログラムリロード手段（１７０）を備える。
【００１６】
また、例えば、メモリ高負荷時に、主メモリ装置（１００）の非常駐プログラムが配置されている空間の範囲（アドレス）を保持する非常駐メモリ領域管理テーブル（１８０）を備える。非常駐メモリ領域管理テーブル（１８０）には、配置された非常駐プログラムの先頭アドレスを示す非常駐メモリ先頭アドレス（１８１）及び配置された非常駐プログラムの最終アドレスを示す非常駐メモリ最終アドレス（１８２）を格納する。
【００１７】
また、前記非常駐メモリ領域管理テーブル（１８０）で示される物理アドレス空間における使用頻度が低いページをスワップ装置（１０３）に退避させるするページング手段（１８５）と、メモリ高負荷時に実行頻度が低い非常駐プログラムをスワップ装置（１０２）に待避させるスワップ手段（１９０）を有している。
【００１８】
なお、スワップ装置（１０３）に待避されたページはプログラムロード手段（１１０）により主メモリ装置（１００）への再配置を行い、スワップ装置（１０３）に待避されたプログラムはスワップ手段（１９０）により主メモリ装置（１００）に再配置を行う。
【００１９】
図２は、常駐プログラムをメモリ装置に配置する処理を説明する図である。常駐プログラムＡ（２００）は補助記憶装置（１０１）に格納されており、このプログラムＡは起動要求に応じてプログラムロード手段（１１０）を介して主メモリ装置（１００）に配置される。このとき、常駐／非常駐判別手段（１２５）はプログラムＡが常駐プログラムか非常駐プログラムかを判断する。
【００２０】
この判断は、プログラム毎にＯＳが作成するプログラム管理テーブル（１１５）の常駐フラグ（１２０）がＯＮであるかＯＦＦであるかにより行う。常駐プログラム（常駐フラグ（１２０）がＯＮ）であると判断したときは、常駐メモリ確保手段（１３０）を介して、常駐プログラム用のメモリ空間にプログラムＡを配置する。常駐メモリ確保手段（１３０）は、空きメモリを物理メモリ空間アドレスの小さい方から割当てて行く。
【００２１】
図３は、非常駐プログラムをメモリ装置に配置する処理を説明する図である。非常駐プログラムＢ（３００）は補助記憶装置（１０１）に格納されており、起動要求に応じてプログラムロード手段（１１０）を介して主メモリ装置（１００）に配置される。このとき、常駐／非常駐判別手段（１２５）はプログラムＢが常駐プログラムか非常駐プログラムかを判断する。
【００２２】
この判断は、プログラム毎にＯＳが作成するプログラム管理テーブル（１１５）の常駐フラグ（１２０）がＯＮであるか、ＯＦＦであるかにより行う。非常駐プログラム（常駐フラグ（１２０）がＯＦＦ）であると判断したときは、非常駐メモリ確保手段（１４０）を介して、非常駐プログラム用のメモリ空間にプログラムＢを配置する。非常駐メモリ確保手段（１４０）は、空きメモリを物理メモリ空間アドレスの大きい方から割当てる。そして、割当てた非常駐領域を非常駐メモリ領域管理テーブル（１８０）に反映する。
【００２３】
図４は、常駐プログラムを非常駐化する処理を説明する図である。
【００２４】
まず、非常駐化手段（１５０）により、常駐プログラムＣ（４００）を管理するプログラム管理テーブル（１１５）内の常駐フラグ（１２０）をＯＦＦに変更し、次いで、プログラムリロード手段（１７０）を用いて常駐プログラムを非常駐領域へ再配置する。
【００２５】
このとき、プログラムリロード手段（１７０）は、非常駐メモリ確保手段（１４０）を用いて非常駐領域における空きメモリの有無を判断し（ステップＳ１）、空きメモリがある場合は、該空きメモリに前記常駐プログラムＣ（４００）を格納する。空きメモリが無い場合はスワップ手段（１９０）によりスワップ装置（１０２）の空きの有無を判断し（ステップＳ２）、空きがある場合はスワップ装置（１０２）に待避格納する。ステップ２において、スワップ装置（１０２）にも空きが無い場合は、前記常駐プログラムＣのリロードをプログラムリロード要求リスト（４１０）へ登録し、次のスワップ手段（１９０）の実行時（実行により非常駐領域あるいはスワップ装置に空きメモリが生じた場合）にプログラムリロード手段（１７０）を用いて前記常駐プログラムＣを非常駐領域に再配置する。そして、非常駐領域の変更を非常駐メモリ領域管理テーブル（１８０）に反映する。
【００２６】
図５は、非常駐プログラムを常駐化する処理を説明する図である。
【００２７】
まず、常駐化手段（１６０）により非常駐プログラムＤ（５００）を管理するプログラム管理テーブル（１１５）の常駐フラグ（１２０）をＯＮに変更し、プログラムリロード手段（１７０）を用いて非常駐プログラムを常駐領域に再配置する。
【００２８】
このとき、プログラムリロード手段（１７０）は、常駐メモリ確保手段（１３０）を用いて常駐領域における空きメモリの有無を判断し（ステップＳ１）、空きメモリがある場合は該空きメモリに非常駐プログラムＤ（５００）を格納する。空きメモリが無い場合は非常駐プログラムＤのリロードをプログラムリロード要求リスト（４１０）に登録し、次のスワップ手段（１９０）の実行時にプログラムリロード手段（１７０）を用いて非常駐プログラムＤを常駐領域に再配置する。そして、非常駐領域の変更を非常駐メモリ領域管理テーブル（１８０）に反映する。
【００２９】
図６は、メモリ高負荷時におけるページング動作を説明する図である。
【００３０】
主メモリに空き領域が不足してくると、空き領域の所定の閾値でページング手段（１８５）が処理を開始する。まず、ページング手段（１８５）は、非常駐メモリ領域管理テーブル（１８０）に格納された非常駐メモリ最終アドレス（１８２）から非常駐メモリ先頭アドレス（１８１）の方向に向かって走査し、参照の少ないメモリページを検出し、検出したページのデータをスワップ装置（１０３）に待避して、空き領域を作成する。この場合、前記走査する領域には常駐プログラムは配置されていないので、待避可能なメモリページを効率よく検出することができる。すなわち、常駐プログラム及び非常駐プログラムを主メモリ上に混在することなく分離して配置するので短時間で多くの空きメモリを作り出すことができる。なお、以上の説明ではページ単位で退避を行うページングを前提に説明したが、プログラム単位で退避を行うスワッピングの場合にも同様に適用できる。
【００３１】
以上説明したように、本実施形態によれば、仮想記憶方式のオペレーティングシステムで稼働する計算機において、常駐プログラムと非常駐プログラムを主メモリ装置上に分離して配置することにより、ページングあるいはスワッピングを効率的に実行させ、オペレーティングシステムのオーバヘッドを低減して、システムのトータルスループットを向上することができる。
【図面の簡単な説明】
【００３２】
【図１】実施形態にかかる計算機のメモリ管理装置を説明する図である。
【図２】常駐プログラムをメモリ装置に配置する処理を説明する図である。
【図３】非常駐プログラムをメモリ装置に配置する処理を説明する図である。
【図４】常駐プログラムを非常駐化する処理を説明する図である。
【図５】非常駐プログラムを常駐化する処理を説明する図である。
【図６】メモリ高負荷時におけるページング動作を説明する図である。
【符号の説明】
【００３３】
１００  主メモリ装置
１０１  補助記憶装置（ハードディスク装置）
１０２  補助記憶装置（スワップ装置）
１１０  プログラムロード手段
１１５  プログラム管理テーブル
１２０  常駐フラグ
１２５  常駐／非常駐判別手段
１３０  常駐メモリ確保手段
１４０  非常駐メモリ確保手段
１５０  常駐プログラムの非常駐化手段
１６０  非常駐プログラムの常駐化手段
１７０  プログラムリロード手段
１８０  非常駐メモリ領域管理テーブル
１８１  非常駐メモリ先頭アドレス
１８２  非常駐メモリ最終アドレス
１８５  ページング手段
１９０  スワップ手段
２００  常駐プログラムＡ
３００  非常駐プログラムＢ
４００  非常駐化される常駐プログラムＣ
４１０  プログラムリロード要求リスト
５００  常駐化される非常駐プログラムＤ
【図１】
2005190444.tif 000003
【図２】
2005190444.tif 000004
【図３】
2005190444.tif 000005
【図４】
2005190444.tif 000006
【図５】
2005190444.tif 000007
【図６】
2005190444.tif 000008