JP2014041420A - 差分圧縮装置、コンピュータ、メモリ管理方法、および、プログラム - Google Patents

差分圧縮装置、コンピュータ、メモリ管理方法、および、プログラム Download PDF

Info

Publication number
JP2014041420A
JP2014041420A JP2012182397A JP2012182397A JP2014041420A JP 2014041420 A JP2014041420 A JP 2014041420A JP 2012182397 A JP2012182397 A JP 2012182397A JP 2012182397 A JP2012182397 A JP 2012182397A JP 2014041420 A JP2014041420 A JP 2014041420A
Authority
JP
Japan
Prior art keywords
page
conversion table
compression
data
differential
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
JP2012182397A
Other languages
English (en)
Inventor
Yoshikazu Watanabe
義和 渡邊
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 JP2012182397A priority Critical patent/JP2014041420A/ja
Publication of JP2014041420A publication Critical patent/JP2014041420A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】物理メモリ使用量の低減率を向上させる。
【解決手段】差分圧縮装置は、ページ、または、ページ変換テーブルを圧縮対象データとして決定する差分圧縮制御部と、圧縮対象ページが属するプロセスの親プロセスのページ(または、ページ変換テーブル)、または、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ、実行頻度が少ないプロセスのページ(または、ページ変換テーブル)、または、メモリアクセス頻度が少ないプロセスのページ(または、ページ変換テーブル)を比較元データとして決定し、決定された圧縮対象データと比較元データとから、圧縮対象データのページ、または、ページ変換テーブルの内容を差分圧縮し、差分データを作成する差分圧縮処理部とを含む。
【選択図】 図1

Description

本発明は、差分圧縮装置、コンピュータ、メモリ管理方法、および、プログラムに関する。
仮想記憶機能を持つ情報処理装置の主記憶(物理メモリ)の内容を圧縮する技術の一例が、特許文献1に記載されている。特許文献1においては、セグメント管理情報内の共有ライブラリ識別情報、セグメント識別情報、および、ページ識別情報が同じページのグループを抽出し、そのグループのページに対して、圧縮を実施している。
特開2007−304911号公報
特許文献1記載の技術では、同一グループでも、ページの内容の差が小さいという確証はなく、ページの内容が大きく異なる場合があり、圧縮率が高くなく、物理メモリ使用量の低減率が低いという課題があった。
本発明の目的は、上記課題を解決した差分圧縮装置、コンピュータ、メモリ管理方法、および、プログラムを提供することである。
本発明の差分圧縮装置は、ページ、または、ページ変換テーブルを圧縮対象データとして決定する差分圧縮制御部と、
圧縮対象データがページであれば、圧縮対象ページが属するプロセスの親プロセスのページ、または、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ、実行頻度が少ないプロセスのページ、または、メモリアクセス頻度が少ないプロセスのページを比較元データとして決定し、圧縮対象データがページ変換テーブルであれば、圧縮対象ページ変換テーブルが属するプロセスの親プロセスのページ変換テーブル、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ変換テーブル、実行頻度が少ないプロセスのページ変換テーブル、または、メモリアクセス頻度が少ないプロセスのページ変換テーブルを比較元データとして決定する比較元決定部と、
決定された圧縮対象データと比較元データとから、圧縮対象データのページ、または、ページ変換テーブルの内容を差分圧縮し、差分データを作成する差分圧縮処理部と、
を含む。
本発明のメモリ管理方法は、ページ、または、ページ変換テーブルを圧縮対象データとして決定する手順と、
圧縮対象データがページであれば、圧縮対象ページが属するプロセスの親プロセスのページ、または、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ、実行頻度が少ないプロセスのページ、または、メモリアクセス頻度が少ないプロセスのページを比較元データとして決定し、圧縮対象データがページ変換テーブルであれば、圧縮対象ページ変換テーブルが属するプロセスの親プロセスのページ変換テーブル、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ変換テーブル、実行頻度が少ないプロセスのページ変換テーブル、または、メモリアクセス頻度が少ないプロセスのページ変換テーブルを比較元データとして決定する手順と、
決定された圧縮対象データと比較元データとから、圧縮対象データのページ、または、ページ変換テーブルの内容を差分圧縮し、差分データを作成する手順と、
を含む。
本発明のプログラムは、ページ、または、ページ変換テーブルを圧縮対象データとして決定する手順と、
圧縮対象データがページであれば、圧縮対象ページが属するプロセスの親プロセスのページ、または、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ、実行頻度が少ないプロセスのページ、または、メモリアクセス頻度が少ないプロセスのページを比較元データとして決定し、圧縮対象データがページ変換テーブルであれば、圧縮対象ページ変換テーブルが属するプロセスの親プロセスのページ変換テーブル、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ変換テーブル、実行頻度が少ないプロセスのページ変換テーブル、または、メモリアクセス頻度が少ないプロセスのページ変換テーブルを比較元データとして決定する手順と、
決定された圧縮対象データと比較元データとから、圧縮対象データのページ、または、ページ変換テーブルの内容を差分圧縮し、差分データを作成する手順と、
をコンピュータに実行させる。
本発明によれば、物理メモリ使用量の低減率を高くできる。
本発明の第1の実施の形態の構成を示すブロック図である。 本発明の第1の実施の形態の動作を示すフローチャートである。 本発明の第2の実施の形態のコンピュータの構成を示すブロック図である。 本発明の第2の実施の形態の差分圧縮装置の構成を示すブロック図である。 本発明の第2の実施の形態の動作を示すフローチャートである。 本発明の第2の実施の形態の動作を示すフローチャートである。 本発明の第2の実施の形態の動作を示すフローチャートである。 本発明の第2の実施の形態の動作を示すフローチャートである。 本発明の第2の実施の形態の動作を示すフローチャートである。 本発明の第2の実施の形態の動作を示すフローチャートである。 差分圧縮の方式の一例を示す説明図である。 差分復元の方式の一例を示す説明図である。 本発明の第3の実施の形態の動作を示すフローチャートである。 本発明の第3の実施の形態の動作を示すフローチャートである。
次に、本発明の第1の実施の形態について図面を参照して詳細に説明する。
図1は、第1の実施の形態の構成を示すブロック図である。図1を参照すると、第1の実施の形態の差分圧縮装置110は、差分圧縮制御部112、差分圧縮処理部113、および、比較元決定部115を含む。差分圧縮装置110は、ハードウェアとして実現可能である。また、コンピュータを、比較元決定部115、差分圧縮制御部112、および差分圧縮制御部113として機能させるプログラムが実現可能である。さらに、そのプログラムは、記録媒体に記録可能である。
差分圧縮装置110は、仮想記憶機能(仮想アドレス空間内の仮想アドレスに物理アドレスが対応づけられている)の物理ページを処理する。
また、差分圧縮装置110は、コピーオンライト方式が採用されたシステム内で動作可能である。コピーオンライト方式は、仮想メモリのコピーに際し、コピーに伴う物理メモリの割り当てを、仮想メモリへの書き込みが発生するまで遅延させる方式である。この場合、仮想メモリへの書き込みが発生するまでの間、仮想メモリに対応する物理メモリはコピー元およびコピー先で共有される。したがって、コピーオンライト方式を用いることで物理メモリ使用量を削減することが可能となる。コピーオンライト方式は、プロセスの複製に伴う仮想メモリ空間のコピーに対して、特に有効である。
次に、第1の実施の形態の動作について図面を参照して説明する。
図2は、第1の実施の形態の動作を示すフローチャートである。図2を参照すると、差分圧縮制御部112は、物理ページに対し差分圧縮を適用することで物理メモリ使用量が低減されるように制御する。具体的には、差分圧縮制御部112は、差分圧縮の対象とすべきメモリ領域(ページ、または、ページ変換テーブル)を圧縮対象データとして決定する(ステップS011)。
差分圧縮制御部112がページを選択した場合、比較元決定部115は、ページを圧縮する際、圧縮対象ページが属するプロセスの親プロセスのページ、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ、実行頻度が少ないプロセスのページ、または、メモリアクセス頻度が少ないプロセスのページを比較元データとして決定する(ステップS012)。
差分圧縮制御部112がページ変換テーブルを選択した場合、比較元決定部115は、ページ変換テーブルを圧縮する際、圧縮対象ページ変換テーブルが属するプロセスの親プロセスのページ変換テーブル、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ変換テーブル、実行頻度が少ないプロセスのページ変換テーブル、または、メモリアクセス頻度が少ないプロセスのページ変換テーブルを比較元データとして決定する(ステップS012)。
次に、差分圧縮処理部113は、差分圧縮制御部112により決定された圧縮対象データと比較元決定部115により決定された比較元データとから一方のページ(または、ページ変換テーブル)の内容を差分圧縮し、差分データ(差分圧縮の情報)を作成する(ステップS013)。
差分圧縮処理部113は、決定された2つのページ(または、ページ変換テーブル)、すなわち、圧縮対象データの内容と比較元データの内容を比較し、その差分データ(差分圧縮の情報)を作成する。
次に、差分圧縮制御部112は、差分圧縮処理部113により作成された差分データ(差分圧縮の情報)を記録する(ステップS014)。
圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセス群を抽出する際、比較元決定部115は必要となる情報をオペレーティングシステムプログラム内のプロセスおよびメモリを管理するプログラム(図示しない)から取得して利用してよい。また、別の例として、比較元決定部115は、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセス群を、特定のプロセスの配下のプロセス群として抽出してもよい。なお、この方法は当該プロセス群に圧縮対象ページが属するプロセスが含まれる場合のみ有効である。特定のプロセスの一例として、たとえば、AndroidプラットフォームにおけるZygoteプロセスが挙げられる。ZygoteプロセスはAndroidプラットフォーム内の仮想マシンで実行されるアプリケーション群の共通の親プロセスである。
また、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセス群の中から比較元のプロセスを決定する場合、比較元決定部115は、あらかじめ指定された条件(プロセス名等)を基に当該プロセス群の中から比較元データを選択してもよい。
Zygoteプロセスの配下のプロセスの一例として、システムヘルスチェックを行うプロセスが挙げられる。システムヘルスチェックを行うプロセスは、プロセスツリー上において、継続的に存在しかつ実行頻度は少ない(CPU使用時間が少ない、メモリアクセス頻度が少ない)。
また、比較元決定部115は、実行頻度の少ないプロセスを比較元として選択してもよい。これは、たとえば、プロセスの使用CPU時間、起床回数・頻度等に関する閾値を比較元決定部115に持たせ、閾値の条件を満たすプロセスを比較元として選択することで実現できる。
さらに、比較元決定部115は、比較元ページの対象となるメモリ領域およびページ(または、ページ変換テーブル)へのアクセス頻度が少ないプロセスを比較元として選択してもよい。たとえば、比較元決定部115が、各メモリ領域、もしくは、ページ(または、ページ変換テーブル)についてのアクセス頻度と事前に決定した閾値とを比較して比較元とするか否かを決定することで実現できる。
次に、第1の実施の形態の効果について説明する。
まず、圧縮対象ページ(または、ページ変換テーブル)の属するプロセスの親プロセスのページ(または、ページ変換テーブル)が、比較元データとして決定される場合(第1の場合)の効果について説明する。ある同じライブラリのある同じデータ領域(メモリ領域)を処理する場合について説明する。
プロセスに関し、あるプロセスとしてのプロセスB、プロセスBの親プロセスであるプロセスA、プロセスBの親プロセス以外のプロセスであるプロセスCとする。また、プロセスBの決定された圧縮対象ページ(または、ページ変換テーブル)をページBとし、プロセスAのページ(または、ページ変換テーブル)をページAとし、プロセスCのページ(または、ページ変換テーブル)をページCとする。以上のように、ページ(または、ページ変換テーブル)をページと略して説明する。
プロセスCは、当該ライブラリ・データ領域をページCに読み込み、リード・ライトアクセスをする(たとえば、初期化)。また、プロセスAは当該ライブラリ・データ領域をページAに読み込み、リード・ライトアクセスをする(たとえば、初期化)。次に、プロセスAは、プロセスBを作成する。
プロセスBが当該ライブラリ・データ領域にライトアクセス(アクセスZ)すると、ページAがコピーオンライトされ、ページBが割り当てられる。このとき、ページAとページBとの差分(X)はアクセスZによる変更のみである。
一方、ページBとページCとの差分(Y)は、プロセスCによる初期化に伴う変更、プロセスAによる初期化に伴う変更、プロセスBによるアクセスZの合算となる。よって、X<Yとなる。
したがって、圧縮対象ページ(または、ページ変換テーブル)の属するプロセスの親プロセスのページ(または、ページ変換テーブル)を比較元データとして決定することにより、差分データが小さくなり、圧縮率が向上し、物理メモリ使用量の低減率が高くなる。
次に、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ(または、ページ変換テーブル)が、比較元データとして決定される場合(第2の場合)の効果について説明する。
、この場合、比較元のプロセスのページ(または、ページ変換テーブル)と圧縮対象ページ(または、ページ変換テーブル)とが同一の内容を多く含むので、上記第1の場合と同様の理由で、差分データが小さくなり、圧縮率が向上し、物理メモリ使用量の低減率が高くなる。
次に、実行頻度が少ないプロセスのページ(または、ページ変換テーブル)が、比較元データとして決定される場合(第3の場合)の効果について説明する。
実行頻度が少ないプロセスのページ(または、ページ変換テーブル)を優先的に比較元として選択することで、比較元ページへのライトアクセス頻度が減少する。したがって、比較元ページ(または、ページ変換テーブル)に対するコピーオンライト処理実行回数が削減され、当該処理に伴うCPU時間消費やメモリ使用量を低減することが可能となる。
次に、メモリアクセスが少ないプロセスのページ(または、ページ変換テーブル)が、比較元データとして決定される場合(第4の場合)の効果について説明する。
メモリアクセスが少ないプロセスのページ(または、ページ変換テーブル)を優先的に比較元として選択することで、比較元ページへのライトアクセス頻度が減少する。したがって、比較元ページ(または、ページ変換テーブル)に対するコピーオンライト処理実行回数が削減され、当該処理に伴うCPU時間消費やメモリ使用量を低減することが可能となる。
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。
図3は、第2の実施の形態の構成を示すブロック図である。図3を参照すると、第2の実施の形態のコンピュータ100は、CPU101(Central Processing Unit)、物理メモリ102、バス103、二次記憶装置104、および、IO装置105を含む。これらの構成要素の数、接続関係等は一例であり、図3の構成に限定されない。
CPU101は、プログラムを実行する中央演算処理装置である。CPU101は、仮想記憶機能を備えている。物理メモリ102は、情報を記憶する装置であり、たとえば、主記憶装置である。物理メモリ102に記憶された情報へのアクセスには物理メモリアドレスが使用される。なお、物理メモリ102が記憶する情報とは、たとえば、CPU101に実行されるプログラムや、CPU101により使用されるデータである。
バス103は、接続されたブロック間での情報のやり取りを実現する通信路である。二次記憶装置104は、物理メモリ102に対する補助的な記憶装置であり、大容量であったり永続的な情報記憶が可能であったりする。二次記憶装置104の一例としては、ハードディスクドライブやフラッシュメモリが挙げられる。
IO装置105(Input Output装置)は、ユーザや他との装置との間のインタフェースを提供する入出力装置である。IO装置105の一例としては、キーボード、マウス、タッチパネル、表示装置、ネットワークインタフェース装置等が挙げられる。
コンピュータ100は、オペレーティングシステムプログラム、および、ユーザプログラム(いずれも図示しない)のすべて、もしくは、一部を物理メモリ102に記憶させ、それらをCPU101に実行させることで、所望の動作を行う。それらのプログラムは、たとえば、二次記憶装置104に記録されており、必要に応じて物理メモリ102に読み込まれてもよい。
差分圧縮装置110は、CPU101のハードウェア機能の一部として実現可能である。また、差分圧縮装置110の機能を、CPU101に実現させるプログラムが可能である。
第2の実施の形態の差分圧縮装置110は、第1の実施の形態の差分圧縮装置110の一例であり、ページを圧縮する。図4は、第2の実施の形態の差分圧縮装置110の構成を示すブロック図である。
図4を参照すると、差分圧縮装置110は、仮想メモリ管理部111、差分圧縮制御部112、差分圧縮処理部113、物理メモリ管理部114、および、比較元決定部115を含む。
差分圧縮制御部112、差分圧縮処理部113、および、比較元決定部115は、それぞれ、第1の実施の形態の差分圧縮制御部112、差分圧縮処理部113、および、比較元決定部115である。
仮想メモリ管理部111は、仮想アドレス空間の管理を行う。仮想メモリ管理部111は、仮想アドレス空間内のアドレス(仮想アドレス)と物理アドレスとを変換するためのページ変換テーブルを仮想アドレス空間毎に作成し管理する。
仮想メモリ管理部111は、メモリ領域やページ(または、ページ変換テーブル)に対するプログラムからのアクセス頻度を計測してもよい。
ページ変換テーブルは、たとえば、CPU101のMMU(Memory Management Unit)によって使用される。また、仮想メモリ管理部111は各仮想アドレス空間内での仮想メモリの割り当て管理を行う。仮想メモリ管理部111は、割り当て管理の一機能としてファイルマップ機能を有する。
ファイルマップ機能は、たとえば二次記憶装置104内に記憶されているファイルのすべてもしくは一部を仮想アドレス空間にマップし、プログラムによる仮想アドレスを用いたファイルへのアクセスを可能とする。
同一のファイルに対するファイルマップで使用される物理ページは複数の仮想アドレス空間で共有されてもよい。仮想メモリ管理部111は、たとえば、仮想メモリ空間のコピーやファイルマップのようなメモリ管理処理において、コピーオンライト方式を使用する。
差分圧縮制御部112は、物理ページに対し差分圧縮を適用することで物理メモリ使用量が低減されるように制御する。具体的には、差分圧縮制御部112は、2つの仮想アドレス空間における仮想メモリの利用状況を基に、差分圧縮の対象とすべきメモリ領域(ページ群)を抽出・決定し、差分圧縮処理部113を利用して当該メモリ領域を圧縮する。
また、差分圧縮制御部112は、圧縮されたメモリ領域へのプログラムによるアクセスを監視し、アクセスが発生した場合に、当該メモリ領域の内容を復元する。さらに、差分圧縮制御部112は、比較元となったページ(比較元ページ)へのプログラムによるライトアクセスを監視し、ライトアクセスが発生した場合に当該ページをコピーする。
差分圧縮制御部112は、これらの処理に必要な情報を記録し管理する。差分圧縮制御部112は、たとえば、当該情報を物理メモリ102内に記録する。
差分圧縮処理部113は、2つのページの内容を比較し、その差分データを作成することで一方のページの内容を圧縮する。また、差分圧縮処理部113は、比較元となったページ(比較元ページ)と差分データとから、圧縮されたページを復元する。
物理メモリ管理部114は、物理メモリ102の割り当て管理を行う。物理メモリ管理部114は、物理ページの割り当て要求を受けると、未使用の物理ページを選択して割り当てて使用状態として記録し、解放要求を受けると、対象の物理ページを未使用状態として記録する。また、物理メモリ管理部114は、情報要求を受けると、物理ページの使用状況(空き物理ページ数等)を返す。
比較元決定部115は、ページを圧縮する際、圧縮対象ページが属するプロセスの親プロセスのページ、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ、実行頻度が少ないプロセスのページ、もしくは、メモリアクセス頻度が少ないプロセスのページを比較元データとして決定する。
次に、第2の実施の形態の動作について図面を参照して説明する。
まず、コンピュータ100が差分圧縮を行うことで物理メモリ使用量を低減する際の動作(以下、本処理と記す)について、図5を参照して説明する。図5は、第2の実施の形態の動作を示すフローチャートである。
なお、本処理は、たとえば、仮想メモリ管理部111が、空き物理メモリ量を監視しておき、その値が閾値以下となった場合に開始してよい。また、本処理の実行に際し、差分圧縮制御部112は、実行中のプロセスそれぞれについて、「本処理で処理済か未処理か」の記録を保持する。本処理開始時、すべての実行中のプロセスは「本処理で未処理」と記録される。
なお、差分圧縮制御部112は、実行中のプロセスの一覧や各プロセスの情報を、コンピュータ100で動作するオペレーティングシステムプログラム内のプロセスを管理するプログラム(図示しない)から取得し使用することが可能である。このことは、以降の説明においても同様である。
図5を参照すると、差分圧縮制御部112は、実行中のプロセスのうち、「本処理で未処理」のプロセスが存在するかどうかを確認し(ステップS101)、未処理のプロセスが存在しなければ(ステップS101/N)、動作を終了する。未処理のプロセスが存在すると(ステップS101/Y)、差分圧縮制御部112は、未処理のプロセスのうち一つを圧縮対象として決定する(ステップS102)。
ここで選択された処理対象のプロセスをプロセスBと表すこととする。また、差分圧縮制御部112は、プロセスBについて、「本処理で処理済」と記録する。
比較元決定部115は、プロセスBのページを圧縮するための比較元を決定する(ステップS103)。比較元決定部115は、プロセスBの親プロセスを比較元として決定する。ここで選択した比較元をプロセスAと表すこととする。
差分圧縮制御部112は、比較元プロセスの決定が成功したかどうか確認し(ステップS104)、決定に失敗した場合には(ステップS104/N)、ステップS101へ移行する。なお、プロセスBに親プロセスが存在しない場合、本ステップの処理は失敗である。
決定に成功すると(ステップS104/Y)、差分圧縮制御部112は、プロセスAおよびプロセスBの仮想メモリ(仮想アドレス空間)の比較処理および差分圧縮処理を実施する(ステップS105)。
ステップS105における動作(以下、本処理と記す)について、図6を参照して詳細に説明する。図6は、第2の実施の形態の動作を示すフローチャートである。
なお、本処理の実行に際し、差分圧縮制御部112は、プロセスAの仮想アドレス空間内のメモリ領域それぞれについて、「本処理で処理済か未処理か」の記録を保持する。本処理開始時、すべてのメモリ領域は「本処理で未処理」と記録される。ここで、メモリ領域とは、たとえば、ヒープ、スタック、ファイルへのマップ等の仮想アドレス空間内で割り当てられている各領域を意味する。
図6を参照すると、差分圧縮制御部112は、プロセスAの仮想アドレス空間(仮想アドレス空間A)内に、「本処理で未処理」のメモリ領域があるかどうかを確認し(ステップS111)する。未処理のメモリ領域が無ければ(ステップS111/N)、差分圧縮制御部112は、動作を終了する。
未処理のメモリ領域があると(ステップS111/Y)、差分圧縮制御部112は、未処理のメモリ領域のうち一つを処理対象として決定する(ステップS112)。ここで決定された処理対象の一つ目のメモリ領域をメモリ領域Aと表すこととする。また、差分圧縮制御部112は当該メモリ領域Aについて、「本処理で処理済」と記録する。
差分圧縮制御部112は、プロセスBの仮想アドレス空間(仮想アドレス空間B)内にメモリ領域Aと同じ種類のメモリ領域(メモリ領域B)が存在するかどうか確認し(ステップS113)、存在しなければ(ステップS113/N)、ステップS111に移行する。
ここで、メモリ領域が同じ種類であるとは、たとえば、メモリ領域A、Bが、両方とも種類がヒープであるとか、メモリ領域A、Bが、両方とも種類がスタックであるとかである。また、たとえば、種類がファイルへのマップであれば、同じファイルへのマップであり、かつ、ファイル内のオフセットやアクセス許可情報が同じであるメモリ領域を意味する。その際、メモリ領域の仮想アドレス空間内での位置(開始仮想アドレス)は異なっていてもよい。
差分圧縮制御部112は、メモリ領域Aとメモリ領域Bとの比較処理を実施する(ステップS114)。
ステップS114における動作(以下、本処理と記す)について、図7を参照して詳細に説明する。図7は、第2の実施の形態の動作を示すフローチャートである。差分圧縮制御部112は、図7に示す処理をメモリ領域A内のページ毎に行う。ここで、処理対象のメモリ領域A内のページをページAと表す。また、メモリ領域B内でページAと同じオフセット位置にあるページをページBと表す。本処理において、ページBは、ページAを比較元とした差分圧縮処理の対象となる。
図7を参照すると、差分圧縮制御部112は、ページAおよびページBについて対応する物理ページが存在するかどうか確認し(ステップS121)、存在しない場合(ステップS121/N)、処理を終了する。
対応する物理ページが存在しない場合とは、たとえば、当該ページがスワップアウトされている状態であったり、ファイルマップされているが、当該ページへのアクセスが一回も行われておらずデータのメモリへの読み込みが行われていない状態であったりする。
また、ページAが差分圧縮済みであった場合、ページAを復元してページBの比較元ページとして使用してもよいし、ページAに対する比較元ページをページBの比較元ページとしてよい。後者の場合、ページAに対する比較元ページを以降ページAで指し示すものとする。
ページA、および、ページBについて、対応する物理ページが存在する場合(ステップS121/Y)、差分圧縮制御部112は、ページAとページBとが、同じ物理ページを共有しているかどうか確認する(ステップS122)。同じ物理ページを共有している場合(ステップS122/Y)、差分圧縮制御部112は、処理を終了する。
たとえば、コピーオンライト発生前は、ページAとページBとは、対応する物理ページを共有しており、コピーオンライト発生後は、ページAとページBとは、対応する物理ページを共有していないという状況がありえる。
同じ物理ページを共有していない場合(ステップS122/N)、差分圧縮制御部112は、差分圧縮処理部113を利用して、ページAを比較元としたページBの差分圧縮処理を実施する(ステップS123)。
次に、差分圧縮制御部112は、ステップS123で作成された差分圧縮の情報(差分データ)を記録する(ステップS124)。なお、本ステップは、差分圧縮処理部113による差分圧縮処理が成功した場合のみ行われる。
差分圧縮制御部112により記録される差分圧縮の情報の一例としては、差分圧縮されたページ(ページB)が属する仮想アドレス空間(仮想アドレス空間B)の識別子、当該ページの識別子(たとえば、当該仮想アドレス空間内でのオフセット)、比較元ページ(ページA)が属する仮想アドレス空間(仮想アドレス空間A)の識別子、当該比較元ページの識別子、作成された差分データ等が挙げられる。
次に、ステップS123における差分圧縮処理部113による差分圧縮処理について、図8を参照して詳細に説明する。図8は、第2の実施の形態の動作を示すフローチャートである。
図8を参照すると、差分圧縮処理部113は、ページAを比較元としてページBから差分データを作成し、ページBを差分圧縮する(ステップS131)。差分圧縮の方式について図11を参照して説明する。図11は、差分圧縮の方式の一例を示す説明図である。
図11を参照すると、ページAおよびページB内の各バイトについて値を比較し、値に違いがある領域を抽出する。ここでは、0オリジンの3バイト目、および、9〜11バイト目が、ページAとページBとで異なっているため、差分圧縮処理部113は、これらの2領域を抽出する。次に、差分圧縮処理部113は、各領域を開始オフセット位置、データ長、および、ページBでの値を用いて表し、差分データ(差分圧縮の情報)を作成する。
なお、差分圧縮処理部113は、ページAとページBとの差分が大きく、差分圧縮により得られる効果がない、もしくは、少ないと判断した場合には、圧縮失敗として処理を途中終了してよい。圧縮効果有無の判断は、たとえば、ページAとページBとで異なるバイトの数に関する閾値を持っておき、差分データ量がその閾値を超えた場合には圧縮効果なしと判断してよい。
差分圧縮処理部113は、ステップS131において圧縮に失敗した場合(ステップS132/N)、処理を終了する。
差分圧縮処理部113は、圧縮に成功した場合(ステップS132/Y)、仮想アドレス空間B内でのページBへのリード・ライトアクセスを禁止する(ステップS133)。これは、たとえば、仮想アドレス空間B用のページ変換テーブルにおいてページBに対応するページテーブルエントリに当該アクセス禁止のフラグを設定することで実現できる。
また、差分圧縮処理部113は、仮想アドレス空間A内でのページAへのライトアクセスを禁止する(ステップS134)。そして、差分圧縮処理部113は、ページBの物理ページを解放する(ステップS135)。
次に、差分圧縮されたページ(ページB)へのアクセスが発生した際の動作について、図9を参照して説明する。図9は、第2の実施の形態の動作を示すフローチャートである。なお、この動作は、たとえば、リードおよびライトアクセスが禁止されたページへのメモリアクセスに伴う例外発生を契機として開始されてよい。
図9を参照すると、差分圧縮制御部112は、アクセス先のページが差分圧縮されているかどうかを確認し(ステップS141)、差分圧縮されていなければ(ステップS141/N)、処理を終了する。アクセス先のページが差分圧縮されていれば(ステップS141/Y)、差分圧縮制御部112は、差分圧縮処理部113に復元を要求する。
本ステップにおける確認には、たとえば、ステップS123で記録された差分圧縮の情報を用いてよい。
復元を要求された差分圧縮処理部113は、ページB用の物理ページを割り当てる(ステップS142)。差分圧縮処理部113は、ページAの内容と、ページB用の差分データとから、ページBの内容をステップS142で割り当てた物理ページに復元する(ステップS143)。
差分圧縮されたページの復元の方式を、図12を参照して説明する。図12は、図11の差分圧縮に対応する差分復元の方式の一例を示す説明図である。
図12を参照すると、差分圧縮処理部113は、差分データが存在しない領域については比較元ページ(ページA)の値を使用し、差分データが存在する領域については差分データ内に含まれる値を使用して、差分圧縮される前のページBの内容を復元する。
次に、差分圧縮処理部113は、仮想アドレス空間B内でのページBへのリードおよびライトアクセスを許可し、対応する物理ページとしてステップS142で割り当てた物理ページを設定する(ステップS144)。これは、たとえば、仮想アドレス空間B用のページ変換テーブルにおいてページBに対応するページテーブルエントリに当該アクセス許可のフラグを設定し、当該物理ページのアドレスを登録することで実現できる。
次に、差分圧縮の比較元となったページ(ページA)へのライトアクセスが発生した際の動作について、図10を参照して説明する。図10は、第2の実施の形態の動作を示すフローチャートである。なお、この動作は、たとえば、ライトアクセスが禁止されたページへのライトメモリアクセスに伴う例外発生を契機として開始されてよい。
図10を参照すると、差分圧縮制御部112は、アクセス先のページが差分圧縮の比較元ページであるかどうかを確認し(ステップS151)、比較元ページでなければ(ステップS151/N)、処理を終了する。本ステップにおける確認には、たとえば、ステップS123で記録された差分圧縮の情報を用いてよい。
アクセス先のページが差分圧縮の比較元ページであると(ステップS151/Y)、差分圧縮制御部112は、ページAの内容をコピーするための物理ページを割り当てる(ステップS152)。次に、差分圧縮制御部112は、ページAの内容をステップS152で割り当てた物理ページへコピーする(ステップS153)。
次に、差分圧縮制御部112は、ページAが比較元ページとなっている差分圧縮されたページ(ページB)の比較元ページをステップS152で割り当てた物理ページに変更する(ステップS154)。次に、差分圧縮制御部112は、仮想アドレス空間A内でのページAへのライトアクセスを許可する(ステップS155)。
以上においては、比較元決定部115は、ページを圧縮する際、圧縮対象ページが属するプロセスの親プロセスのページを比較元データとして決定した。しかし、比較元決定部115は、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ、実行頻度が少ないプロセスのページ、または、メモリアクセス頻度が少ないプロセスのページを比較元データとして決定してもよい。
なお、上記では、実行中のプロセスすべてを、圧縮対象として処理を行う場合について説明したが、これに限定されるものではない。他の例として、差分圧縮対象のプロセス(プロセスB)を実行頻度が少ないプロセスに限定して処理を行ってもよい。
これは、たとえば、プロセスの使用CPU時間、起床回数・頻度、等に関する閾値を差分圧縮制御部112に持たせ、各プロセスについてのそれらの値と閾値とを比較して当該プロセスを処理対象に含めるか否かを判断することで実現できる。なお、プロセスの使用CPU時間、起床回数・頻度、等の情報は、コンピュータ100で動作するオペレーティングシステムプログラム内のプロセスを管理するプログラム(図示しない)において取得したり計算したりしてよい。
また、上記では、仮想アドレス空間Aと仮想アドレス空間Bとで共通の種類であったり共通のオフセットであったりするすべてメモリ領域およびページを圧縮対象として処理を行う場合について説明したが、これに限定されるものではない。他の例として、差分圧縮対象のメモリ領域およびページをアクセス頻度が少ないものに限定して処理を行ってよい。
これは、たとえば、仮想メモリ管理部111が、メモリ領域やページに対するプログラムからのアクセス頻度を計測し、差分圧縮制御部112が、各メモリ領域、または、ページについてのアクセス頻度と閾値とを比較して処理対象に含めるか否かを判断することで実現できる。仮想メモリ管理部111によるアクセス頻度の計測には、たとえば、LRU(Last Recently Used)やクロックのような、一般的なページ置換アルゴリズムが可能である。
次に、第2の実施の形態の効果について説明する。
第2の実施の形態は、第1の実施の形態の差分圧縮装置110を含むので、第1の実施の形態と同一の効果を持つ。
さらに、詳細に説明する。第2の実施の形態において、コンピュータ100は、2つのページの内容を比較し、一方を比較元ページとして他方を差分圧縮し、圧縮されたページに対応する物理ページを解放する。また、コンピュータ100は、圧縮されたページ、および、比較元ページに対して処理が必要なアクセスが発生した場合、圧縮されたページを復元したり比較元ページをコピーしたりする。
これにより、圧縮されたページへのアクセスが存在しない間、当該ページが必要とする物理メモリ量は1ページ分のメモリサイズから差分データおよび管理用の情報のサイズに減ることとなる。したがって、第2の実施の形態によるコンピュータ100は、物理メモリ使用量を低減することが可能となる。
その効果は、1ページのうちの少量のデータ変更に伴ってコピーオンライトにより割り当てられたページに対して特に有効である。また、当該ページを使用しているプロセスの実行頻度が低い場合はさらに有効となる。
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。
第2の実施の形態がページそのものを対象として差分圧縮を実施したのに対し、第3の実施の形態は、仮想アドレス空間と物理ページとの対応関係を保持するページ変換テーブルを対象として差分圧縮を行う。
第3の実施の形態の基本的な構成は、図3および図4を参照して説明した第2の実施の形態の構成と同一である。したがって、第3の実施の形態の差分圧縮装置110は、第1の実施の形態の差分圧縮装置110の一例であり、ページ変換テーブルを対象として差分圧縮を行う。
以下、第3の実施の形態の動作について、第2の実施の形態と異なる点を中心に説明する。
図5を参照すると、第3の実施の形態における差分圧縮制御部112は、プロセスAおよびプロセスBのページ変換テーブル群の比較処理および差分圧縮処理を実施する(ステップS105)。
ステップS105における動作(本処理)について、図13を参照して説明する。図13は、第3の実施の形態の動作を示すフローチャートである。なお、本処理の実行に際し、差分圧縮制御部112は、プロセスAのページ変換テーブルそれぞれについて、「本処理で処理済か未処理か」の記録を保持する。本処理開始時、すべてのページ変換テーブルは「本処理で未処理」と記録される。
図13を参照すると、差分圧縮制御部112は、プロセスAの仮想アドレス空間(仮想アドレス空間A)用の「本処理で未処理」のページ変換テーブルがあるかどうかを確認する(ステップS211)。 「本処理で未処理」のページ変換テーブルが無ければ(ステップS211/N)、差分圧縮制御部112は、動作を終了する。
「本処理で未処理」のページ変換テーブルがあれば(ステップS211/Y)、差分圧縮制御部112は、「本処理で未処理」のページ変換テーブルのうち一つを処理対象として決定する(ステップS212)。ここで、決定した処理対象の一つのページ変換テーブルをページ変換テーブルAと表すこととする。
なお、ページ変換テーブルが階層構造となっている場合、差分圧縮制御部112は、より下位のページ変換テーブルを優先して選択する。また、差分圧縮制御部112は当該ページ変換テーブルについて、「本処理で処理済」と記録する。
次に、差分圧縮制御部112は、プロセスBの仮想アドレス空間(仮想アドレス空間B)用のページ変換テーブルAと同じ仮想アドレス領域用のページ変換テーブル(ページ変換テーブルB)があるかどうか確認する(ステップS213)。同じ仮想アドレス領域用のページ変換テーブルが無ければ(ステップS213/N)、差分圧縮制御部112は、ステップS211に移行する。ページ変換テーブルAとページ変換テーブルBは、各ページ変換テーブルで管理される仮想アドレスレンジ(開始仮想アドレスおよび終了仮想アドレス)が同一である場合に、同じ仮想アドレス領域用であるとみなされる。たとえば、プロセス1のあるページ変換テーブル1が仮想アドレス空間1の0x10000〜0x2ffffのアドレスレンジに関するページ変換情報を保持しており、プロセス2のあるページ変換テーブル2が仮想アドレス空間2の0x10000〜0x2ffffのアドレスレンジに関するページ変換情報を保持している場合、ページ変換テーブル1とページ変換テーブル2とは同じ仮想アドレス領域用である。
同じ仮想アドレス領域用のページ変換テーブルがあれば(ステップS213/Y)、差分圧縮制御部112は、差分圧縮処理部113を利用して、ページ変換テーブルAを比較元としたページ変換テーブルBの差分圧縮処理を実施する(ステップS214)。
次に、差分圧縮制御部112は、ステップS214で作成された差分圧縮の情報を記録する(ステップS215)。なお、ステップS215は、差分圧縮処理部113による差分圧縮処理が成功した場合のみ実施される。
差分圧縮制御部112によって記録される差分圧縮の情報の一例としては、差分圧縮されたページ変換テーブル(ページ変換テーブルB)が属する仮想アドレス空間(仮想アドレス空間B)の識別子、当該ページ変換テーブルの識別子(たとえば当該仮想アドレス空間内でのオフセット)、比較元ページ変換テーブル(ページ変換テーブルA)が属する仮想アドレス空間(仮想アドレス空間A)の識別子、当該比較元ページ変換テーブルの識別子、作成された差分データが挙げられる。
次に、ステップS214において行われる差分圧縮処理部113による差分圧縮処理について、図14を参照して説明する。図14は、第3の実施の形態の動作を示すフローチャートである。
図14を参照すると、差分圧縮処理部113は、ページ変換テーブルAを比較元としてページ変換テーブルBから差分データを作成し、ページ変換テーブルBを差分圧縮する(ステップS221)。差分圧縮の方式には、図11を参照して説明した第2の実施の形態と同様の方式を用いてよい。
差分圧縮処理部113は、圧縮に失敗した場合(ステップS222/N)、その処理を終了する。圧縮に成功した場合(ステップS222/Y)、差分圧縮処理部113は、仮想アドレス空間B内でのページ変換テーブルBの登録を削除する(ステップS223)。
これは、たとえば、ページ変換テーブルBが2段目以降のページ変換テーブルである場合、一つ上位のページ変換テーブルにおけるページ変換テーブルBへの参照を削除したり、アクセスを禁止したりすることで実現できる。また、ページ変換テーブルBが最上位のページ変換テーブルである場合には、仮想アドレス空間Bの最上位ページ変換テーブルとしてすべてのページ変換参照を禁止するダミーのページ変換テーブルBを登録することで実現できる。
次に、差分圧縮処理部113は、ページ変換テーブルBが使用していた物理ページを解放する(ステップS224)。
差分圧縮されたページ変換テーブル(ページ変換テーブルB)へのアクセスが発生した際の動作は、図9を参照して説明した差分圧縮されたページ(ページB)へのアクセスが発生した際の動作と同様である。その際、ページAをページ変換テーブルAに、ページBをページ変換テーブルBに置き換えて処理を行う。
なお、第3の実施の形態において、この動作は、たとえば、ページ変換テーブルが登録されていない仮想アドレス領域へのメモリアクセスに伴う例外発生を契機として開始されてもよい。また、この動作は、オペレーティングシステムプログラムが当該ページ変換テーブルの参照や変更を必要とした場合を契機として開始されてもよい。
差分圧縮の比較元となったページ変換テーブル(ページ変換テーブルA)へのライトアクセスが発生した際の動作は、図10を参照して説明した比較元となったページ(ページA)へのライトアクセスが発生した際の動作と同様である。その際、ページAをページ変換テーブルAに、ページBをページ変換テーブルBに置き換えて処理を行う。
なお、第3の実施の形態において、この動作は、オペレーティングシステムプログラムが当該ページ変換テーブルの変更を必要とした場合を契機として開始されてもよい。
次に、第3の実施の形態の効果について説明する。
第3の実施の形態は、第1の実施の形態の差分圧縮装置110を含むので、第1の実施の形態と同一の効果を持つ。
さらに、詳細に説明する。第3の実施の形態において、コンピュータ100は、ページ変換テーブルを対象として差分圧縮を行う。これにより、圧縮されたページ変換テーブルで表される仮想アドレス領域へのアクセスが存在しない間、当該ページ変換テーブルが必要とする物理メモリ量は1ページ分のメモリサイズから差分データおよび管理用の情報のサイズに減ることとなる。したがって、第3の実施の形態によるコンピュータ100は物理メモリ使用量を低減することが可能となる。
上記の実施の形態の一部、または、全部は、以下の付記のようにも記載されうるが、以下には限られない。
[付記1]
ページ、または、ページ変換テーブルを圧縮対象データとして決定する差分圧縮制御部と、
圧縮対象データがページであれば、圧縮対象ページが属するプロセスの親プロセスのページ、または、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ、実行頻度が少ないプロセスのページ、または、メモリアクセス頻度が少ないプロセスのページを比較元データとして決定し、圧縮対象データがページ変換テーブルであれば、圧縮対象ページ変換テーブルが属するプロセスの親プロセスのページ変換テーブル、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ変換テーブル、実行頻度が少ないプロセスのページ変換テーブル、または、メモリアクセス頻度が少ないプロセスのページ変換テーブルを比較元データとして決定する比較元決定部と、
決定された圧縮対象データと比較元データとから、圧縮対象データのページ、または、ページ変換テーブルの内容を差分圧縮し、差分データを作成する差分圧縮処理部と、
を含むことを特徴とする差分圧縮装置。
[付記2]
実行頻度の少ないプロセスのページ、または、ページ変換テーブルを圧縮対象データとして決定する前記差分圧縮制御部を含むことを特徴とする付記1の差分圧縮装置。
[付記3]
メモリアクセス頻度の少ないプロセスのページ、または、ページ変換テーブルを圧縮対象データとして決定する前記差分圧縮制御部を含むことを特徴とする付記1の差分圧縮装置。
[付記4]
仮想アドレス空間内の仮想アドレスと物理アドレスとを変換するためのページ変換テーブルを仮想アドレス空間毎に作成する仮想メモリ管理部と、
物理ページの割り当て要求を受けると、未使用の物理ページを選択して割り当てて使用状態として記録し、解放要求を受けると、対象の物理ページを未使用状態として記録する物理メモリ管理部と、
圧縮されたページ、または、ページ変換テーブルへアクセスが発生した場合に、そのページ、または、ページ変換テーブルの内容を復元する前記差分圧縮制御部と、
を含むことを特徴とする付記1、2、または、3の差分圧縮装置。
[付記5]
比較元となったページ、または、ページ変換テーブルへライトアクセスが発生した場合にそのページ、または、ページ変換テーブルをコピーする前記差分圧縮制御部を含むことを特徴とする付記1、2、3、または、4の差分圧縮装置。
[付記6]
付記1、2、3、4、または、5の前記差分圧縮装置を含むことを特徴とするコンピュータ。
[付記7]
ページ、または、ページ変換テーブルを圧縮対象データとして決定する手順と、
圧縮対象データがページであれば、圧縮対象ページが属するプロセスの親プロセスのページ、または、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ、実行頻度が少ないプロセスのページ、または、メモリアクセス頻度が少ないプロセスのページを比較元データとして決定し、圧縮対象データがページ変換テーブルであれば、圧縮対象ページ変換テーブルが属するプロセスの親プロセスのページ変換テーブル、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ変換テーブル、実行頻度が少ないプロセスのページ変換テーブル、または、メモリアクセス頻度が少ないプロセスのページ変換テーブルを比較元データとして決定する手順と、
決定された圧縮対象データと比較元データとから、圧縮対象データのページ、または、ページ変換テーブルの内容を差分圧縮し、差分データを作成する手順と、
を含むことを特徴とするメモリ管理方法。
[付記8]
実行頻度の少ないプロセスのページ、または、ページ変換テーブルを圧縮対象データとして決定する手順を含むことを特徴とする付記7のメモリ管理方法。
[付記9]
メモリアクセス頻度の少ないプロセスのページ、または、ページ変換テーブルを圧縮対象データとして決定する手順を含むことを特徴とする付記7のメモリ管理方法。
[付記10]
仮想アドレス空間内の仮想アドレスと物理アドレスとを変換するためのページ変換テーブルを仮想アドレス空間毎に作成する仮想メモリ管理部と、
物理ページの割り当て要求を受けると、未使用の物理ページを選択して割り当てて使用状態として記録し、解放要求を受けると、対象の物理ページを未使用状態として記録する物理メモリ管理部と、
圧縮されたページ、または、ページ変換テーブルへアクセスが発生した場合に、そのページ、または、ページ変換テーブルの内容を復元する前記差分圧縮制御部と、
を含むことを特徴とする付記7、8、または、9のメモリ管理方法。
[付記11]
比較元となったページ、または、ページ変換テーブルへライトアクセスが発生した場合にそのページ、または、ページ変換テーブルをコピーする前記差分圧縮制御部を含むことを特徴とする付記7、8、9、または、10のメモリ管理方法。
[付記12]
ページ、または、ページ変換テーブルを圧縮対象データとして決定する手順と、
圧縮対象データがページであれば、圧縮対象ページが属するプロセスの親プロセスのページ、または、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ、実行頻度が少ないプロセスのページ、または、メモリアクセス頻度が少ないプロセスのページを比較元データとして決定し、圧縮対象データがページ変換テーブルであれば、圧縮対象ページ変換テーブルが属するプロセスの親プロセスのページ変換テーブル、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ変換テーブル、実行頻度が少ないプロセスのページ変換テーブル、または、メモリアクセス頻度が少ないプロセスのページ変換テーブルを比較元データとして決定する手順と、
決定された圧縮対象データと比較元データとから、圧縮対象データのページ、または、ページ変換テーブルの内容を差分圧縮し、差分データを作成する手順と、
をコンピュータに実行させることを特徴とするプログラム。
[付記13]
実行頻度の少ないプロセスのページ、または、ページ変換テーブルを圧縮対象データとして決定する手順を含むことを特徴とする付記12のプログラム。
[付記14]
メモリアクセス頻度の少ないプロセスのページ、または、ページ変換テーブルを圧縮対象データとして決定する手順を含むことを特徴とする付記12のプログラム。
[付記15]
仮想アドレス空間内の仮想アドレスと物理アドレスとを変換するためのページ変換テーブルを仮想アドレス空間毎に作成する仮想メモリ管理部と、
物理ページの割り当て要求を受けると、未使用の物理ページを選択して割り当てて使用状態として記録し、解放要求を受けると、対象の物理ページを未使用状態として記録する物理メモリ管理部と、
圧縮されたページ、または、ページ変換テーブルへアクセスが発生した場合に、そのページ、または、ページ変換テーブルの内容を復元する前記差分圧縮制御部と、
を含むことを特徴とする付記12、13、または、14のプログラム。
[付記16]
比較元となったページ、または、ページ変換テーブルへライトアクセスが発生した場合にそのページ、または、ページ変換テーブルをコピーする前記差分圧縮制御部を含むことを特徴とする付記12、13、14、または、15のプログラム。
100 コンピュータ
101 CPU
102 物理メモリ
103 バス
104 二次記憶装置
105 IO装置
110 差分圧縮装置
111 仮想メモリ管理部
112 差分圧縮制御部
113 差分圧縮処理部
114 物理メモリ管理部
115 比較元決定部

Claims (10)

  1. ページ、または、ページ変換テーブルを圧縮対象データとして決定する差分圧縮制御部と、
    圧縮対象データがページであれば、圧縮対象ページが属するプロセスの親プロセスのページ、または、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ、実行頻度が少ないプロセスのページ、または、メモリアクセス頻度が少ないプロセスのページを比較元データとして決定し、圧縮対象データがページ変換テーブルであれば、圧縮対象ページ変換テーブルが属するプロセスの親プロセスのページ変換テーブル、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ変換テーブル、実行頻度が少ないプロセスのページ変換テーブル、または、メモリアクセス頻度が少ないプロセスのページ変換テーブルを比較元データとして決定する比較元決定部と、
    決定された圧縮対象データと比較元データとから、圧縮対象データのページ、または、ページ変換テーブルの内容を差分圧縮し、差分データを作成する差分圧縮処理部と、
    を含むことを特徴とする差分圧縮装置。
  2. 実行頻度の少ないプロセスのページ、または、ページ変換テーブルを圧縮対象データとして決定する前記差分圧縮制御部を含むことを特徴とする請求項1の差分圧縮装置。
  3. メモリアクセス頻度の少ないプロセスのページ、または、ページ変換テーブルを圧縮対象データとして決定する前記差分圧縮制御部を含むことを特徴とする請求項1の差分圧縮装置。
  4. 仮想アドレス空間内の仮想アドレスと物理アドレスとを変換するためのページ変換テーブルを仮想アドレス空間毎に作成する仮想メモリ管理部と、
    物理ページの割り当て要求を受けると、未使用の物理ページを選択して割り当てて使用状態として記録し、解放要求を受けると、対象の物理ページを未使用状態として記録する物理メモリ管理部と、
    圧縮されたページ、または、ページ変換テーブルへアクセスが発生した場合に、そのページ、または、ページ変換テーブルの内容を復元する前記差分圧縮制御部と、
    を含むことを特徴とする請求項1、2、または、3の差分圧縮装置。
  5. 比較元となったページ、または、ページ変換テーブルへライトアクセスが発生した場合にそのページ、または、ページ変換テーブルをコピーする前記差分圧縮制御部を含むことを特徴とする請求項1、2、3、または、4の差分圧縮装置。
  6. 請求項1、2、3、4、または、5の前記差分圧縮装置を含むことを特徴とするコンピュータ。
  7. ページ、または、ページ変換テーブルを圧縮対象データとして決定する手順と、
    圧縮対象データがページであれば、圧縮対象ページが属するプロセスの親プロセスのページ、または、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ、実行頻度が少ないプロセスのページ、または、メモリアクセス頻度が少ないプロセスのページを比較元データとして決定し、圧縮対象データがページ変換テーブルであれば、圧縮対象ページ変換テーブルが属するプロセスの親プロセスのページ変換テーブル、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ変換テーブル、実行頻度が少ないプロセスのページ変換テーブル、または、メモリアクセス頻度が少ないプロセスのページ変換テーブルを比較元データとして決定する手順と、
    決定された圧縮対象データと比較元データとから、圧縮対象データのページ、または、ページ変換テーブルの内容を差分圧縮し、差分データを作成する手順と、
    を含むことを特徴とするメモリ管理方法。
  8. 実行頻度の少ないプロセスのページ、または、ページ変換テーブルを圧縮対象データとして決定する手順を含むことを特徴とする請求項7のメモリ管理方法。
  9. メモリアクセス頻度の少ないプロセスのページ、または、ページ変換テーブルを圧縮対象データとして決定する手順を含むことを特徴とする請求項7のメモリ管理方法。
  10. ページ、または、ページ変換テーブルを圧縮対象データとして決定する手順と、
    圧縮対象データがページであれば、圧縮対象ページが属するプロセスの親プロセスのページ、または、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ、実行頻度が少ないプロセスのページ、または、メモリアクセス頻度が少ないプロセスのページを比較元データとして決定し、圧縮対象データがページ変換テーブルであれば、圧縮対象ページ変換テーブルが属するプロセスの親プロセスのページ変換テーブル、圧縮対象ページが属するプロセスと起動プログラムイメージを共有するプロセスのページ変換テーブル、実行頻度が少ないプロセスのページ変換テーブル、または、メモリアクセス頻度が少ないプロセスのページ変換テーブルを比較元データとして決定する手順と、
    決定された圧縮対象データと比較元データとから、圧縮対象データのページ、または、ページ変換テーブルの内容を差分圧縮し、差分データを作成する手順と、
    をコンピュータに実行させることを特徴とするプログラム。
JP2012182397A 2012-08-21 2012-08-21 差分圧縮装置、コンピュータ、メモリ管理方法、および、プログラム Pending JP2014041420A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012182397A JP2014041420A (ja) 2012-08-21 2012-08-21 差分圧縮装置、コンピュータ、メモリ管理方法、および、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012182397A JP2014041420A (ja) 2012-08-21 2012-08-21 差分圧縮装置、コンピュータ、メモリ管理方法、および、プログラム

Publications (1)

Publication Number Publication Date
JP2014041420A true JP2014041420A (ja) 2014-03-06

Family

ID=50393648

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012182397A Pending JP2014041420A (ja) 2012-08-21 2012-08-21 差分圧縮装置、コンピュータ、メモリ管理方法、および、プログラム

Country Status (1)

Country Link
JP (1) JP2014041420A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108885582A (zh) * 2016-04-07 2018-11-23 国际商业机器公司 存储器池结构的多租户存储器服务

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108885582A (zh) * 2016-04-07 2018-11-23 国际商业机器公司 存储器池结构的多租户存储器服务
GB2557125B (en) * 2016-04-07 2022-01-05 Ibm Multi-Tenant memory service for memory pool architectures

Similar Documents

Publication Publication Date Title
US8473462B1 (en) Change tracking for shared disks
US7472252B2 (en) Merging identical memory pages
US7392357B2 (en) Snapshot format conversion method and apparatus
US20190129971A1 (en) Storage system and method of controlling storage system
US20120222052A1 (en) Peer-to-peer transcendent memory
US9081692B2 (en) Information processing apparatus and method thereof
WO2015195936A1 (en) Range-based data deduplication
KR20080097196A (ko) Fat 볼륨 상의 개별적인 파일들은 압축하고, 그 외의 파일들은 비압축 상태로 유지하기 위한 컴퓨터 구현 방법, 시스템 및 컴퓨터 판독 가능 매체
US11995318B2 (en) Deallocated block determination
JP2009266210A (ja) データ保護のための方法、装置および記憶デバイス
CN110413694A (zh) 元数据管理方法及相关装置
CN114207571B (zh) 计算装置及其操作方法
JP2007272885A (ja) 代替ページのプールを使用してdma書込みページ障害をコンピュータにより管理するための方法、装置、及びコンピュータ・プログラム
US10664193B2 (en) Storage system for improved efficiency of parity generation and minimized processor load
US20110060884A1 (en) Systems and methods for collapsing a derivative version of a primary storage volume
US20120047108A1 (en) Point-in-time (pit) based thin reclamation support for systems with a storage usage map api
CN104965835A (zh) 一种分布式文件系统的文件读写方法及装置
Arani et al. An extended approach for efficient data storage in cloud computing environment
US9665582B2 (en) Software, systems, and methods for enhanced replication within virtual machine environments
JP2014041420A (ja) 差分圧縮装置、コンピュータ、メモリ管理方法、および、プログラム
CN111435302B (zh) 一种应用程序的处理方法及装置
US9471409B2 (en) Processing of PDSE extended sharing violations among sysplexes with a shared DASD
CN111435299A (zh) 一种应用程序的处理方法及装置
KR101608623B1 (ko) 전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법
US20220244979A1 (en) System and method of vm recovery on s3 compatible object storage