JP2013120549A - 電子計算機、メモリ管理方法、およびメモリ管理プログラム - Google Patents

電子計算機、メモリ管理方法、およびメモリ管理プログラム Download PDF

Info

Publication number
JP2013120549A
JP2013120549A JP2011269179A JP2011269179A JP2013120549A JP 2013120549 A JP2013120549 A JP 2013120549A JP 2011269179 A JP2011269179 A JP 2011269179A JP 2011269179 A JP2011269179 A JP 2011269179A JP 2013120549 A JP2013120549 A JP 2013120549A
Authority
JP
Japan
Prior art keywords
data
storage device
unit
swap
primary storage
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.)
Pending
Application number
JP2011269179A
Other languages
English (en)
Inventor
Junichi Yoshida
順一 吉田
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.)
Panasonic Corp
Original Assignee
Panasonic 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 Panasonic Corp filed Critical Panasonic Corp
Priority to JP2011269179A priority Critical patent/JP2013120549A/ja
Publication of JP2013120549A publication Critical patent/JP2013120549A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】効率的なメモリ管理を行うことが可能な電子計算機等を提供する。
【解決手段】第1のデータを主記憶装置200へ格納するための格納要求時に、主記憶装置200の残容量が不足している場合、主記憶装置200により記憶されたデータのうち、主記憶装置200から外部記憶装置300へスワップアウトされ、外部記憶装置300から主記憶装置200へスワップインされ、かつ、その後に主記憶装置200において改変されていないデータである未改変データを抽出する未改変情報抽出部102と、抽出された未改変データのうち、主記憶装置200から破棄される第2のデータを決定する出力対象決定部103と、決定された第2のデータを主記憶装置200から破棄するスワップアウト処理部105と、を備える。
【選択図】図1

Description

本発明は、電子計算機、メモリ管理方法、およびメモリ管理プログラムに関する。
仮想記憶方式は、メモリ管理技法の一種であり、例えば、マルチタスクオペレーティングシステムが不連続なメモリ領域をソフトウェア(プロセスなど)から見て連続になるように見せかけるものである。また、仮想記憶方式は、コンピュータ上に実装されている主記憶装置よりも大きな記憶領域を仮想的に提供する仕組みを提供する。仮想記憶の仕組みを利用することで、メモリ空間の一部をハードディスク装置等の大容量の外部記憶装置に待避でき、実装メモリ量以上のメモリ空間が利用できるようになる。
したがって、仮想記憶方式は、論理アドレス空間を主記憶装置のアドレス空間の容量よりも大きく設定しておき、適宜、主記憶にデータをロードしてマッピングするメモリ管理方式の一種であるということができる。
また、仮想記憶方式は、スワップ機能と結びついて論じられる。スワップ機能とは、ハードディスク等の補助記憶装置を利用して使用可能なメモリ容量を増大するために、OS(オペレーティングシステム)が有する機能である。
スワップ機能には、スワップアウト機能及びスワップイン機能がある。スワップアウト機能は、メモリ容量を確保するために、当面の間不要と推測されるデータを主記憶装置から補助記憶装置へ書き出す機能である。スワップイン機能は、補助記憶装置に書き出されたデータを主記憶装置へ書き戻す機能である。
スワップ機能の一例として、主記憶装置と外部記憶装置とが同一データを保持している場合には、スワップアウトの後にスワップインされたデータであって、スワップイン以降改変されていないデータについては、再度のスワップアウトを行わない技術が知られている(例えば、特許文献1参照)。これにより、書き出し回数を低減させることができる。
また、他の一例として、プロセスを複数のセグメントに分割・結合して、スワップアウト、スワップインを行うスワップアウト制御装置が知られている(例えば、特許文献2参照)。この装置は、スワップアウト候補を選択する場合に、複数の条件に基づいて、セグメントの選択を行うものである。
特開2009−20776号公報 特表平5−508043号公報
スワップアウト機能を有する計算機では、主記憶装置の残容量が不足した場合に、主記憶装置が格納しているデータを外部記憶装置へ書き出し、必要があれば外部記憶装置から主記憶装置へ書き戻す。このような計算機が動作を継続する場合、一度書き出したデータが主記憶装置へ再度書き戻された後、再度書き出す可能性がある。この場合、再度の書き出しは不要であり、不要な処理が発生してしまう。
特許文献1の技術では、主記憶装置の残容量が極めて小さい場合(枯渇した場合)に、主記憶装置から削除するデータをどのように選択するか考慮されていない。したがって、書き出しが不要なデータが主記憶装置上に存在しているにも関わらず、書き出しが必要なデータを候補としてしまい、外部記憶装置への書き出し量が不要に増加する可能性がある。
特許文献2の技術においても、主記憶装置に格納されているデータが、書き出し必要なデータであるか書き出し不要なデータであるかが考慮されていないため、書き出しが必要なデータを候補としてしまい、外部記憶装置への書き出し量が不要に増加する可能性がある。
また、主記憶装置から外部記憶装置への不要な書き出しが多数回反復することで、外部記憶装置の耐久性にも影響を与えかねない。
本発明は、上記事情に鑑みてなされたものであって、効率的なメモリ管理を行うことが可能な電子計算機、メモリ管理方法、およびメモリ管理プログラムを提供することを目的とする。
本発明の電子計算機は、第1のデータを一次記憶装置へ格納するための格納要求時に、前記一次記憶装置の残容量が不足している場合、前記一次記憶装置により記憶されたデータのうち、前記一次記憶装置から二次記憶装置へスワップアウトされ、前記二次記憶装置から前記一次記憶装置へスワップインされ、かつ、その後に前記一次記憶装置において改変されていないデータである未改変データを抽出するデータ抽出部と、前記データ抽出部により抽出された前記未改変データのうち、前記一次記憶装置から破棄される第2のデータを決定する破棄データ決定部と、前記破棄データ決定部により決定された前記第2のデータを前記一次記憶装置から破棄するデータ破棄部と、を備える。
この構成によれば、一度退避(スワップアウト)して復旧(スワップイン)し、かつ未改変のデータを優先して破棄することで、二次記憶装置への書き出し量を減少させ、書き出しによる速度性能劣化や二次記憶装置の寿命短縮を防止することができる。このように、効率的なメモリ管理を行うことが可能である。
また、本発明のメモリ管理方法は、電子計算機におけるメモリ管理方法であって、第1のデータを一次記憶装置へ格納するための格納要求時に、前記一次記憶装置の残容量が不足している場合、前記一次記憶装置により記憶されたデータのうち、前記一次記憶装置から二次記憶装置へスワップアウトされ、前記二次記憶装置から前記一次記憶装置へスワップインされ、かつ、その後に前記一次記憶装置において改変されていないデータである未改変データを抽出するステップと、前記抽出された前記未改変データのうち、前記一次記憶装置から破棄される第2のデータを決定するステップと、前記決定された前記第2のデータを前記一次記憶装置から破棄するデータ破棄部と、を有する。
この方法によれば、一度退避(スワップアウト)して復旧(スワップイン)し、かつ未改変のデータを優先して破棄することで、二次記憶装置への書き出し量を減少させ、書き出しによる速度性能劣化や二次記憶装置の寿命短縮を防止することができる。このように、効率的なメモリ管理を行うことが可能である。
また、本発明のメモリ管理プログラムは、上記のメモリ管理方法の各ステップをコンピュータに実行させるプログラムである。
このプログラムによれば、一度退避(スワップアウト)して復旧(スワップイン)し、かつ未改変のデータを優先して破棄することで、二次記憶装置への書き出し量を減少させ、書き出しによる速度性能劣化や二次記憶装置の寿命短縮を防止することができる。このように、効率的なメモリ管理を行うことが可能である。
本発明によれば、効率的なメモリ管理を行うことが可能である。
本発明の実施形態にかかる電子計算機の構成例を示すブロック図 本発明の実施形態にかかるメモリ管理の一例を説明するための図 本発明の実施形態にかかる電子計算機のスワップアウト時の動作例を示すフローチャート 本発明の実施形態にかかる電子計算機のスワップイン時の動作例を示すフローチャート
以下、本発明の実施形態について、図面を参照して説明する。
(第1の実施形態)
図1は、本発明の実施形態にかかる電子計算機の構成例を示すブロック図である。図1に示した電子計算機100は、スワップアウト指示部101、未改変情報抽出部102、出力対象決定部103、出力対象記憶部104、スワップアウト処理部105、データ出力部106、MMU(Memory Mamagement Unit:メモリ管理ユニット)107、メモリ管理部108、差分情報記憶部109、二次記憶管理情報記憶部110、スワップイン処理部111、およびデータ入力部112を有して構成される。
スワップアウト指示部101は、スワップアウト処理を開始するための要求であるスワップアウト指示を出力する。例えば、メモリ使用要求の発生時に、主記憶装置200の残容量がこのメモリ使用要求の要求量を満たしていない場合に、スワップアウト指示を出力する。
未改変情報抽出部102は、外部記憶装置300に退避された(書き出された)データのうち、主記憶装置200に呼び戻され(書き戻され)、かつ未改変のデータを抽出する。例えば、未改変情報抽出部102は、第1のデータを主記憶装置200へ格納するための格納要求時に、主記憶装置200の残容量が不足している場合、主記憶装置200により記憶されたデータのうち、主記憶装置200から外部記憶装置300へスワップアウトされ、外部記憶装置300から主記憶装置200へスワップインされ、かつ、その後に主記憶装置200において改変されていないデータである未改変データを抽出するデータ抽出部としての機能を有する。
具体的には、未改変情報抽出部102は、二次記憶管理情報記憶部110に記憶された二次記憶管理情報を参照して、一度退避されたことがあるデータがあるか否かを検索する。二次記憶管理情報に含まれる所定のアドレスにおいてデータが格納されている場合には、その所定のアドレスにおいて一度退避されたことがあることを意味する。
また、未改変情報抽出部102は、差分情報記憶部109に記憶された差分情報を参照して、呼び戻されたデータであって改変されていないデータがあるか否かを検索する。差分情報記憶部109に含まれる所定のアドレスにおける差分情報が、主記憶装置200と外部記憶装置300とで差分がないことを示す場合には、その所定のアドレスにおいてデータが呼び戻され、改変されていないことを意味する。未改変情報抽出部102は、上記検索の結果を未改変情報として出力対象決定部103へ出力する。
出力対象決定部103は、メモリ使用要求に応じて空けるべきメモリ領域の容量を確保すべく、どの領域をあけるか、どの程度の容量空けるか、どのデータを退避または破棄させるか、等を決定する。このとき、出力対象決定部103は、未改変情報抽出部102からの未改変情報を参照する。そして、出力対象決定部103は、この決定の結果の情報を出力対象記憶部104に登録する。
また、出力対象決定部103は、出力対象のデータが単に破棄すべきデータであるか、スワップアウトすべきデータであるかを判定する。未改変情報に、一度外部記憶装置300に退避され、主記憶装置200に呼び戻され、かつ未改変のデータの情報が含まれる場合、この出力対象のデータは単に破棄すべきデータである。一方、これ以外のデータ、例えば、外部記憶装置300に退避されていないデータ、主記憶装置200へ呼び戻された後に改変されたデータである場合、この出力対象のデータは、スワップアウトすべきデータである。この判定結果は、スワップアウト処理部105およびデータ出力部106へ送られる。
このように、出力対象決定部103は、未改変情報抽出部102により抽出された未改変データのうち、主記憶装置200から破棄される第2のデータを決定する破棄データ決定部としての機能を有する。
出力対象記憶部104は、出力対象のデータ(破棄対象のデータまたはスワップ対象のデータ)の情報を記憶する。この情報には、データの内容、データが主記憶装置200において格納されたアドレスの情報などが含まれる。
スワップアウト処理部105は、スワップアウトが必要なときに、スワップアウトによるデータ書き出しを行うようデータ出力部106へ指示する。これにより、空き領域の拡張を図る。スワップアウト処理部105は、主記憶装置200における必要な空き領域が確保されるまで、この動作を続ける。
また、スワップアウト処理部105は、データ出力部106にスワップアウト対象のデータの転送を命じる。また、スワップアウト処理部105は、データ出力部106に破棄対象のデータの破棄を命じる。
また、スワップアウト処理部105は、破棄されるまたはスワップアウトされる結果として、破棄後またはスワップアウト後の差分情報を差分情報記憶部109に登録する。
このように、スワップアウト処理部105は、出力対象決定部103により決定された第2のデータを主記憶装置200から破棄するデータ破棄部としての機能を有する。
データ出力部106は、外部記憶装置300へ退避後、主記憶装置200へ呼び戻され、改変されていないデータを破棄する。これにより、空き領域が確保される。
また、データ出力部106は、このデータ破棄のみではメモリ使用要求に応じて確保すべきメモリ領域の容量が不足している場合、主記憶装置200に記憶されたデータのうち、破棄すべきデータ以外のデータをスワップアウト対象のデータとして選択するよう、出力対象決定部103へ通知する。そして、出力対象決定部103は、出力対象決定部103により決定されたスワップアウト対象のデータを退避(スワップアウト)する。これにより、さらなる空き領域の確保を図る。
MMU107は、メモリ使用要求を受けて動作を開始する。そして、主記憶装置200に対して書き込み要求が発生していることを検知し、メモリ管理部108へ通知する。
メモリ管理部108は、OSのメモリ管理機能を実現するものであり、例えばMMU107が所定のプログラムを実行することにより実現される。メモリ管理部108は、主記憶装置200および外部記憶装置300の具体的なアドレスおよびそのアドレスの領域に格納されたデータの情報を管理している。例えば、メモリ管理部108は、アドレス情報に基づいて、MMUからの書き換え指示がどの領域(アドレス領域)への書き換えをしようとしているかを認識する。また、書き換えによる変化の情報を管理し、この変化情報を用いて、主記憶装置200と外部記憶装置300との間の同じアドレス位置における情報の差分の情報を認識する。
また、メモリ管理部108は、この差分情報を差分情報記憶部109に書き込む。なお、差分情報には、主記憶装置200および外部記憶装置300のアドレス領域毎に、格納されたそれぞれのデータの情報や、これらのデータの差分についての情報が含まれる。差分情報は、スワップイン、スワップアウト等が発生して主記憶装置200または外部記憶装置300に格納されているデータが変更される度に更新される。
スワップイン処理部111は、図示しないCPUにより実行されるミドルウェアやアプリケーションが必要とするデータが主記憶装置200に格納されていない場合に、外部記憶装置300からデータを転送する(読み込む)よう、データ入力部112へ通知する。このとき、スワップイン処理部111は、差分情報記憶部109に格納された差分情報を参照する。
データ入力部112は、スワップイン処理部111からの指示に応じて、外部記憶装置300からスワップイン対象のデータを復旧(スワップイン)する。
なお、外部記憶装置300に転送すべきデータが格納されているか否かについては、二次記憶管理情報記憶部110を参照することで確認できる。二次記憶管理情報には、二次記憶装置としての外部記憶装置300のアドレス領域毎に格納されたデータの情報が含まれる。二次記憶管理情報は、スワップアウト等が発生して外部記憶装置300に格納されているデータが変更される度に更新される。
なお、スワップアウト指示部101、未改変情報抽出部102、出力対象決定部103、スワップアウト処理部105、スワップイン処理部111は、電子計算機100内のROMに格納されたメモリ管理プログラムを、CPUが実行することによって機能として実現される。これらは、ハードウェア(論理回路)で実現されてもよい。
また、図1に示すように、電子計算機100には、主記憶装置200および外部記憶装置300が接続される。主記憶装置200および外部記憶装置300は、電子計算機100に含まれるようにしてもよい。
主記憶装置200は、例えばSDRAM(Synchronous Dynamic Random Access Memory)で構成できる。主記憶装置200は一次記憶装置の一例である。
また、外部記憶装置300は、例えばSSD(Solid State Drive)やNAND型フラッシュメモリ等で構成される。外部記憶装置300は二次記憶装置の一例である。
次に、電子計算機100のメモリ管理方式の一例について説明する。
本実施形態では、メモリ管理方式として、仮想記憶方式を採用する。メモリ管理部108は、物理メモリ上の領域と仮想メモリ上の領域の対応付け(マッピング)を行い、MMU107と呼ばれる専用のハードウェアを用いて相互のアドレスの変換を行う。物理メモリ空間でのアドレスを物理アドレス、仮想メモリ空間でのアドレスを論理アドレスと呼ぶ。
OS上で動作するソフトウェア(例えばOSのプロセスなどのプログラムの一種)には、仮想メモリ領域が割り当てられ、OSを介してメモリにアクセスする。このメモリには、主記憶装置200および外部記憶装置300が含まれる。これにより、物理メモリ上で細切れの領域を集めて一つの大きな仮想メモリ領域を確保することが可能であり、また、プログラムの側で物理メモリを管理する必要がなくなる。
また、ハードディスクなどの外部記憶装置300に専用の領域を設け、仮想アドレスを割り当てることにより、仮想メモリ空間を物理メモリ空間より大きく取ることができる。この専用の領域は、スワップファイル、スワップ領域、スワップパーティションなどと呼ばれる。外部記憶装置300上の領域に実際にアクセスするには、物理メモリ上にその内容を読み込まなければならない。そのため、物理メモリの中で現在使われているプログラムをスワッピング処理によって入れ替える。
このように、電子計算機100は、仮想記憶方式を採用することで、運用時の物理メモリ空間のサイズを仮想的に増やすことができる。
図2は、電子計算機100によるメモリ管理の一例を説明するための図である。
図2に示すように、アプリケーションやミドルウェア等によるRAM確保要求(メモリ使用要求の1つ)が発生すると、MMU107およびメモリ管理部108は、メモリ管理機能を起動する。斜線を施されたデータAが、主記憶装置200から外部記憶装置300へ一度書き出され、さらに外部記憶装置300から主記憶装置200へ書き戻され、その後において主記憶装置200において未改変であるために、破棄対象となるデータである。外部記憶装置300に格納されていないデータBやデータCではなく、データAを破棄の対象とするので、スワップアウトの処理が不要となる。これにより、ソフトウェアの負担軽減が可能であり、外部記憶装置300側の負担も減少する。また、外部記憶装置300における性能劣化(保持性能等)や寿命短縮(消去が不完全となるなどの現象が生じる等)が抑えられることになる。よって、外部記憶装置300の信頼性が向上する。
このように、電子計算機100は、スワップアウト実施時、一度退避済み(スワップアウト済み)かつ未改変のデータを優先して破棄する。これにより、外部記憶装置300への書き出し量を低減させ、書き出しによる速度低下、外部記憶装置300の寿命短縮を防止できる。
次に、電子計算機100のスワップアウト時の動作例について説明する。
図3は、電子計算機100のスワップアウト時の動作例を示すフローチャートである。なお、ここでは、MMU107の設定が書き込み許可の状態であることを想定している。なお、図3の説明においては、簡単のためスワップアウト処理部105がデータの破棄やスワップアウトを行うと記載している箇所があるが、実際にはデータ出力部106が行う。
ステップS1では、スワップアウト指示部101は、メモリ管理部108と協働して、スワップアウトの指示を行う。そして、ステップS2に進む。
ステップS2では、未改変情報抽出部102は、主記憶装置200が記憶しているデータにおいて、一度退避したデータがあるか否かを判定する。つまり、外部記憶装置300に格納されたデータがあるか否かを判定する。一度退避したデータが主記憶装置200内に存在しない場合には、ステップS9に進む。
ステップS3では、未改変情報抽出部102は、一度退避されたと判定されたデータ(退避済みデータ)全体を対象として、退避済みデータ毎にステップS4〜S6の処理を実行する。
ステップS4では、未改変情報抽出部102は、対象の退避済みデータが未改変であるかを判定する。
ステップS5では、ステップS4にて未改変データであったときには、未改変情報抽出部102は、その未改変データおよび未改変データに関する情報を未改変データリストに追加する。一方、未改変データでないときには、退避済データのうちの他のデータについて同様の確認を行うべく、ステップS4に戻る。なお、未改変データリストは、スワップアウト対象となるデータの情報を保持するリストであり、例えば出力対象記憶部104に記憶されている。
ステップS6では、出力対象決定部103は、メモリ使用要求を満たすサイズ分(空けたいサイズ分)の候補(破棄候補)が揃っているか否かを判定する。
ステップS8では、ステップS6の要求を満たす候補が揃っている場合には、出力対象決定部103は、未改変データリストに登録されたデータを破棄対象のデータに設定する。そして、ステップS9に進む。
一方、ステップS7では、ステップS6の要求を満たす候補が揃っていない場合、エンド処理によってサブルーチンを終了する。
ステップS9では、出力対象決定部103は、メモリ使用要求を満たすサイズ分(空けたいサイズ分)の候補(破棄候補)が揃っているか否かを判定する。
ステップS10では、ステップS9にて候補(破棄候補およびスワップアウト候補)が揃っている場合には、出力対象決定部103は、主記憶装置200に格納された上記候補以外の他のデータから退避候補(スワップアウト候補)をさらに決定する。そして、ステップS11に進む。
ステップS11では、出力対象決定部103は、決定された退避候補をスワップアウト対象のデータに設定する。そして、ステップS12に進む。
ステップS12では、スワップアウト処理部105は、破棄またはスワップアウト対象のデータの全体を対象として、破棄またはスワップアウト対象のデータ毎に、以下の処理(ステップS13〜S16の処理)を繰り返し実行する。
ステップS13では、スワップアウト処理部105は、処理対象の破棄またはスワップアウト対象のデータが、未改変データであるか否かを判定する。
ステップS14では、ステップS13にて未改変データであると判定された場合、スワップアウト処理部105は、主記憶装置200に格納された破棄対象となっている処理対象のデータを破棄する。そして、ステップS16に進む。
一方、ステップS15では、ステップS13にて未改変データであると判定されなかった場合、スワップアウト処理部105は、主記憶装置200の空き容量や必要な解放量等を検討する。そして、スワップアウト処理部105は、主記憶装置200に格納されたスワップアウト対象となっている処理対象のデータを破棄するとともに、外部記憶装置300への処理対象のデータの書き出し(スワップアウト)を行う。これにより、メモリの空き空間が増大する。そして、ステップS16に進む。
ステップS16では、スワップアウト処理部105は、二次記憶管理情報記憶部110に記憶された二次記憶管理情報や差分情報記憶部109に記憶された差分情報の更新等を適宜実行する。これにより、主記憶装置200において必要なメモリ空間が確保され、必要なデータ量分格納できる空きスペースが確保される。このスペースに、新たなデータが転送等されることになる。
ステップS17では、エンド処理を行い、サブルーチンを終了する。
このようなスワップアウト時の動作によれば、一度退避して復旧し、かつ未改変である未改変データについてはスワップアウトすることなく破棄のみ行うことができる。したがって、スワップアウトの際のデータの主記憶装置200からの読み出し、データの転送、外部記憶装置300への書き込みが減少する。これに伴い、アドレスマッピングや動的再配置の負荷が減少する。また、データ転送等を行うソフトウェア等の負荷も減少する。また、外部記憶装置300における書き込みの減少は、その書き込みに伴うデータ消去の回数の減少にもつながり、外部記憶装置300の負担も軽減される。
次に、電子計算機100のスワップイン時の動作例について説明する。
図4は、電子計算機100のスワップイン時の動作例を示すフローチャートである。
電子計算機100は、ページフォルトが発生したことを契機として図4の処理を開始する。ページフォルトとは、MMU107がスワップイン動作をするときに生じるエラー全般を指す。なお、後述する書き込みフォルトは、書き込み禁止のフラグが立っているアドレス領域へ書き込みを試みたときに生じる書き込みエラーであり、ページフォルトの1つである。
例えば、書き込み禁止領域への書き込み等の指示によって、ページフォルトが発生する。ステップS21では、MMU107が、このページフォルトを検知して、通常のサブルーチンを脱して例外ルーチン(図4のステップS22以降の処理)に入る。
ステップS22では、メモリ管理部108は、ページフォルトが発生した領域が、主記憶装置200においてスワップアウトされた領域(スワップアウト済領域)であるか否かを判定する。スワップアウト済み領域とは、任意のデータがスワップアウトされ、その後データが書き込まれていない領域である。
ステップS23では、スワップアウト済み領域である場合には、スワップイン処理部111は、このスワップアウト済み領域へのスワップインを指示する。そして、ステップS24へ進む。
ステップS24では、スワップイン処理部111は、上記のスワップアウト済み領域へ、外部記憶装置300からスワップイン対象のデータを主記憶装置200へ読み込む。そして、ステップS25へ進む。
ステップS25では、スワップイン処理部111は、スワップインの内容に基づいて、二次記憶管理情報記憶部110が保持する二次記憶管理情報を更新する。そして、ステップS26へ進む。
ステップS26では、スワップイン処理部111は、スワップインの内容に基づいて、差分情報記憶部109が保持する差分情報を更新する。そして、ステップS27へ進む。
ステップS27では、スワップイン処理部111は、MMU107の設定を書き込み禁止とする。具体的には、スワップイン処理部111は、MMU107の設定として、スワップイン対象のデータが書き戻された領域を書き込み禁止の領域としてフラグを立てる。
一方、ステップS28では、ステップS22においてページフォルトが発生した領域がスワップアウト済み領域でない場合には、メモリ管理部108は、そのページフォルトが書き込みフォルトであるか否かを判定する。
ステップS29では、ページフォルトが書き込みフォルトであった場合には、スワップイン処理部111は、ページフォルトが発生した領域が、過去にスワップアウトした領域であるか否かを判定する。過去にスワップアウトした領域とは、任意のデータがスワップアウトされ、その後任意のデータが書き込まれている領域である。
ステップS30では、ページフォルトが発生した領域が過去にスワップした領域であった場合、スワップイン処理部111は、MMU107の設定を書き込み許可に変更する。具体的には、スワップイン処理部111は、MMU107の設定として、任意のデータが書き戻されている領域を書き込み許可の領域としてフラグを削除する。そして、スワップイン処理部111は、この領域に対して書き込み要求のあったデータの書き込み等を行う。
ステップS31では、スワップイン処理部111は、差分情報記憶部109が保持する差分情報を適宜更新する。
一方、ステップS32では、ステップS28においてページフォルトが書き込みフォルトでなかった場合、または、ステップS29においてページフォルトが発生した領域が過去にスワップした領域ではなかった場合、メモリ管理部108は、通常の例外処理を実施する。通常の例外処理とは、一般的なページフォルト発生時の例外処理である。例えば、メモリ管理部108は、実際に主記憶装置200内の所定の領域を割り当てるなどの処理を行う。
このようなスワップイン時の動作によれば、主記憶装置200へのスワップイン処理や既に格納されたデータの改変を適切に行うことができる。
このように、本実施形態の電子計算機100によれば、一度退避(スワップアウト)して復旧(スワップイン)し、かつ未改変のデータを優先して破棄することで、二次記憶装置への書き出し量を減少させ、書き出しによる速度性能劣化や二次記憶装置の寿命短縮を防止することができる。このように、効率的なメモリ管理を行うことが可能である。
また、データ破棄部としてのスワップアウト処理部105が、主記憶装置200への格納要求に対応する主記憶装置200の容量を確保するよう、第2のデータを決定してもよい。
これにより、第1のデータを格納するために必要十分な量の主記憶装置200のメモリ空間を確保することができる。
また、データ抽出部としての未改変情報抽出部102が、データ破棄部としてのスワップアウト処理部105により第2のデータが破棄された後に、主記憶装置200の残容量が不足している場合、主記憶装置200により記憶されたデータのうち、未改変データ以外の第3のデータを抽出し、スワップアウト処理部105が、抽出された第3のデータを主記憶装置200から外部記憶装置300へスワップアウトするとともに、第3のデータを主記憶装置200から破棄してもよい。
これにより、空き容量がデータの破棄だけでは満足できないときであっても、スワップアウトによるデータ書き出しによって、主記憶装置200の空き領域を確保できる。また、スワップアウトされるデータのアドレスを破棄されるデータの近傍とすれば、まとまった空き領域を確保することもできる。
また、データ抽出部としての未改変情報抽出部102が、主記憶装置200および外部記憶装置300における同一アドレスに記憶された各データの差分の情報である差分情報と、外部記憶装置300に格納されたデータの情報である二次記憶管理情報と、に基づいて、未改変データを抽出してもよい。これにより、簡単にかつ確実に未改変データを抽出することができる。
なお、本発明は、上記実施形態の構成に限られるものではなく、特許請求の範囲で示した機能、または本実施形態の構成が持つ機能が達成できる構成であればどのようなものであっても適用可能である。
また、本発明は、上記実施形態の機能を実現するメモリ管理プログラムを、ネットワークあるいは各種記憶媒体を介して電子計算機100に供給し、この電子計算機100内のコンピュータが読み出して実行するメモリ管理プログラムも適用範囲である。
本発明は、効率的なメモリ管理を行うことが可能な電子計算機、メモリ管理方法、メモリ管理プログラム等に有用である。
100 電子計算機
101 スワップアウト指示部
102 未改変情報抽出部
103 出力対象決定部
104 出力対象記憶部
105 スワップアウト処理部
106 データ出力部
107 MMU
108 メモリ管理部
109 差分情報記憶部
110 二次記憶管理情報記憶部
111 スワップイン処理部
112 データ入力部
200 主記憶装置
300 外部記憶装置

Claims (6)

  1. 第1のデータを一次記憶装置へ格納するための格納要求時に、前記一次記憶装置の残容量が不足している場合、前記一次記憶装置により記憶されたデータのうち、前記一次記憶装置から二次記憶装置へスワップアウトされ、前記二次記憶装置から前記一次記憶装置へスワップインされ、かつ、その後に前記一次記憶装置において改変されていないデータである未改変データを抽出するデータ抽出部と、
    前記データ抽出部により抽出された前記未改変データのうち、前記一次記憶装置から破棄される第2のデータを決定する破棄データ決定部と、
    前記破棄データ決定部により決定された前記第2のデータを前記一次記憶装置から破棄するデータ破棄部と、
    を備える電子計算機。
  2. 請求項1に記載の電子計算機であって、
    前記破棄データ決定部は、前記格納要求に対応する前記一次記憶装置の容量を確保するよう、前記第2のデータを決定する電子計算機。
  3. 請求項1または2に記載の電子計算機であって、更に、
    スワップアウト処理部を備え、
    前記データ抽出部は、前記データ破棄部により前記第2のデータが破棄された後に、前記一次記憶装置の残容量が不足している場合、前記一時記憶装置により記憶されたデータのうち、前記未改変データ以外の第3のデータを抽出し、
    前記スワップアウト処理部は、前記データ抽出部により抽出された前記第3のデータを前記一次記憶装置から前記二次記憶装置へスワップアウトし、
    前記データ破棄部は、前記第3のデータを前記一次記憶装置から破棄する電子計算機。
  4. 請求項1ないし3のいずれか1項に記載の電子計算機であって、
    前記データ抽出部は、前記一次記憶装置および前記二次記憶装置における同一アドレスに記憶された各データの差分の情報である差分情報と、前記二次記憶装置に格納されたデータの情報である二次記憶管理情報と、に基づいて、前記未改変データを抽出する電子計算機。
  5. 電子計算機におけるメモリ管理方法であって、
    第1のデータを一次記憶装置へ格納するための格納要求時に、前記一次記憶装置の残容量が不足している場合、前記一次記憶装置により記憶されたデータのうち、前記一次記憶装置から二次記憶装置へスワップアウトされ、前記二次記憶装置から前記一次記憶装置へスワップインされ、かつ、その後に前記一次記憶装置において改変されていないデータである未改変データを抽出するステップと、
    前記抽出された前記未改変データのうち、前記一次記憶装置から破棄される第2のデータを決定するステップと、
    前記決定された前記第2のデータを前記一次記憶装置から破棄するデータ破棄部と、
    を有するメモリ管理方法。
  6. 請求項5に記載のメモリ管理方法の各ステップをコンピュータに実行させるメモリ管理プログラム。
JP2011269179A 2011-12-08 2011-12-08 電子計算機、メモリ管理方法、およびメモリ管理プログラム Pending JP2013120549A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011269179A JP2013120549A (ja) 2011-12-08 2011-12-08 電子計算機、メモリ管理方法、およびメモリ管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011269179A JP2013120549A (ja) 2011-12-08 2011-12-08 電子計算機、メモリ管理方法、およびメモリ管理プログラム

Publications (1)

Publication Number Publication Date
JP2013120549A true JP2013120549A (ja) 2013-06-17

Family

ID=48773152

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011269179A Pending JP2013120549A (ja) 2011-12-08 2011-12-08 電子計算機、メモリ管理方法、およびメモリ管理プログラム

Country Status (1)

Country Link
JP (1) JP2013120549A (ja)

Similar Documents

Publication Publication Date Title
US10552337B2 (en) Memory management and device
KR101713051B1 (ko) 하이브리드 메모리 시스템, 및 그 관리 방법
US10545862B2 (en) Memory system and method for controlling nonvolatile memory
JP5071798B2 (ja) 計算機システム,メモリ管理方法,およびそのプログラム
JP4902501B2 (ja) 電力制御方法、計算機システム、及びプログラム
US11301331B2 (en) Storage device and operating method of storage device
KR102434170B1 (ko) 하이브리드 메모리 시스템
KR20100081880A (ko) 비휘발성 메모리와, 이의 페이지 동적할당장치 및 페이지 매핑장치와, 이의 페이지 동적할당방법 및 페이지 매핑방법
JP2013137771A (ja) データ利用についてのマウント時間の調停
JP2008090657A (ja) ストレージシステム及び制御方法
JP2012252576A (ja) 情報処理装置、起動方法およびプログラム
US11119657B2 (en) Dynamic access in flash system
KR20080017292A (ko) 내장 시스템들을 위한 저장 아키텍쳐
US8583890B2 (en) Disposition instructions for extended access commands
US20190324868A1 (en) Backup portion of persistent memory
KR101392062B1 (ko) 고속 컴퓨터 시스템 파워 온 및 파워 오프 방법
CN115617542A (zh) 内存交换方法、装置、计算机设备及存储介质
KR102443593B1 (ko) 하이브리드 메모리 시스템
KR101463536B1 (ko) 메모리 관리 장치, 방법 및 시스템
JP2000305818A (ja) チップカードのメモリ断片化解消(デフラグ)
US20140289486A1 (en) Information processing apparatus, information processing method, and recording medium
JP5334048B2 (ja) メモリ装置および計算機
KR102076248B1 (ko) 선택 지연 가비지 컬렉션 방법 및 이를 이용한 메모리 시스템
JP2013120549A (ja) 電子計算機、メモリ管理方法、およびメモリ管理プログラム
JP2010026969A (ja) データ処理装置