(57)【特許請求の範囲】
【請求項１】
複数のメモリユニットのうち、ミラーリングされている前記メモリユニットの複数の組のいずれか少なくとも１組のミラーリングを解除することを決定する冗長制御手段と、
ミラーリングが解除されることが決定された前記１組のメモリユニットに含まれるデータの複製を、当該メモリユニットと異なる記憶手段に書き込むページファイル制御手段と、
ミラーリングが解除されることが決定された前記１組のメモリユニットの一方に含まれるデータを消去して、前記データが記憶されていたメモリユニットのページを解放するページ割当手段と、
を備える情報処理装置。
【請求項２】
前記ページ割当手段は、ミラーリングが解除された前記メモリユニットのページが更新される場合に、当該ページに含まれるデータを、ミラーリングされている前記メモリユニットのページに割り当てる、
請求項１に記載の情報処理装置。
【請求項３】
前記冗長制御手段は、最後に更新されてから経過した時間が最も長い前記１組のメモリユニットのミラーリングを解除することを決定する、
請求項１または２に記載の情報処理装置。
【請求項４】
前記ページ割当手段は、ミラーリングされていない前記メモリユニットが含むページに含まれるデータが最後に更新されてから経過している時間が、ミラーリングされている前記メモリユニットが含むページに含まれるデータが最後に更新されてから経過している時間よりも長いように、ページに対するデータの割当を制御する、
請求項１から３のいずれか一項に記載の情報処理装置。
【請求項５】
前記冗長制御手段に、第１のプロセッサの制御下である前記メモリユニットのうちミラーリングされている前記メモリユニットの複数の組のいずれか少なくとも１組のミラーリングを解除させ、ミラーリングが解除された前記１組のメモリユニットの片方を、第２のプロセッサの制御下にさせる、構成制御手段を、さらに備える、
請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記冗長制御手段は、
最後に更新されてから経過している時間が所定の期間を超えるデータを含むページの数が所定の値を超えた場合に、ミラーリングされている前記メモリユニットの複数の組のいずれか少なくとも１組のミラーリングを解除することを決定する、
請求項１から５のいずれか一項に記載の情報処理装置。
【請求項７】
複数のメモリユニットのうち、ミラーリングされている前記メモリユニットの組における両方の前記メモリユニットの少なくとも一部のページに含まれるデータを、ミラーリングされていない前記メモリユニットのページに移動させるページ割当手段と、
ミラーリングされていない前記メモリユニットのページに移動させたデータの複製を、前記メモリユニットと異なる記憶手段に書き込むページファイル制御手段と、
を備える情報処理装置。
【請求項８】
複数のメモリユニットのうち、ミラーリングされている前記メモリユニットの複数の組のいずれか少なくとも１組のミラーリングを解除することを決定し、
ミラーリングが解除されることが決定された前記１組のメモリユニットに含まれるデータの複製を、当該メモリユニットと異なる記憶手段に書き込み、
ミラーリングが解除されることが決定された前記１組のメモリユニットの一方に含まれるデータを消去して、前記データが記憶されていたメモリユニットのページを解放する、
情報処理方法。
【請求項９】
コンピュータに、
複数のメモリユニットのうち、ミラーリングされている前記メモリユニットの複数の組のいずれか少なくとも１組のミラーリングを解除することを決定する冗長制御処理と、
ミラーリングが解除されることが決定された前記１組のメモリユニットに含まれるデータの複製を、当該メモリユニットと異なる記憶手段に書き込むページファイル制御処理と、
ミラーリングが解除されることが決定された前記１組のメモリユニットの一方に含まれるデータを消去して、前記データが記憶されていたメモリユニットのページを解放するページ割当処理と、
を実行させるプログラム。
【請求項１０】
前記ページ割当処理は、ミラーリングが解除された前記メモリユニットのページが更新される場合に、当該ページに含まれるデータを、ミラーリングされている前記メモリユニットのページに割り当てる、
請求項９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データの冗長化を管理する技術に関する。
【背景技術】
【０００２】
サーバ等の情報処理装置の可用性を維持するために、同一のデータを別のメモリユニットに複製（ミラーリング）する、冗長化（二重化）と呼ばれる技術が知られている。メモリユニットが冗長化されていれば、そのメモリユニットに障害があった場合であっても、他のメモリユニットにミラーリングされている、障害があったメモリユニットに格納されていたデータと同一のデータを用いることで、情報処理装置は処理を継続することができる。
【０００３】
特許文献１には、ディスク装置などにおいて、メモリの使用率が所定の閾値を超えた場合に、メモリ内の冗長記憶領域を未使用領域とすることで、メモリの使用率を所定の閾値以下にする技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１９００６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示されるように冗長記憶領域を未使用領域とすると、冗長記憶領域に格納されていたデータの冗長性が失われる。このとき、冗長化が解除されたデータを保持しているメモリユニットでメモリ障害が発生すると、そのメモリユニットに格納されていたデータは失われるという問題がある。
【０００６】
本発明は、メモリユニットの冗長性を維持しつつ使用可能なメモリ容量を増加させることを可能にすることを、目的の一つとする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係る情報処理装置は、メモリユニットのうち、ミラーリングされている前記メモリユニットのいずれか少なくとも１組のミラーリングを解除することを決定する冗長制御手段と、ミラーリングが解除されることが決定された前記メモリユニットに含まれるデータの複製を、当該メモリユニットと異なる記憶領域に書き込むページファイル制御手段と、ミラーリングが解除されることが決定された前記メモリユニットの一方のページに含まれるデータを消去するページ割当手段と、を備える。
【０００８】
本発明の一態様に係る情報処理装置は、メモリユニットのうち、ミラーリングされている前記メモリユニットに含まれるデータを、ミラーリングされていない前記メモリユニットに移動させるページ割当手段と、移動させたデータの複製を、前記メモリユニットと異なる記憶領域に書き込むページファイル制御手段と、を備える。
【０００９】
本発明の一態様に係る情報処理方法は、メモリユニットのうち、ミラーリングされている前記メモリユニットのいずれか少なくとも１組のミラーリングを解除することを決定し、ミラーリングを解除することが決定されたメモリユニットに含まれるデータの複製を、当該メモリユニットと異なる記憶領域に書き込み、ミラーリングが解除されることが決定された前記メモリユニットの一方のページに含まれるデータを消去する。
【００１０】
本発明の一態様に係るプログラムは、コンピュータに、メモリユニットのうち、ミラーリングされている前記メモリユニットのいずれか少なくとも１組のミラーリングを解除することを決定する冗長制御処理と、ミラーリングが解除されることが決定された前記メモリユニットに含まれるデータの複製を、当該メモリユニットと異なる記憶領域に書き込むページファイル制御処理と、ミラーリングが解除されることが決定された前記メモリユニットの一方のページに含まれるデータを消去するページ割当処理と、を実行させる。
【発明の効果】
【００１１】
本発明によれば、メモリユニットの冗長性を維持しつつ使用可能なメモリ容量を増加させることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態に係る情報処理装置の構成を示すブロック図である。
【図２】第１の実施形態に係る情報処理装置の動作の流れを示すフローチャートである。
【図３】本発明の第２の実施形態に係る情報処理装置の構成を示すブロック図である。
【図４】第２の実施形態に係るメモリ割当制御部の、ミラーリングの解除に係る動作の流れを示すフローチャートである。
【図５】第２の実施形態における、ミラーリングの解除に係る動作の後の各ページの状態を例示するブロック図である。
【図６】第２の実施形態に係るメモリ割当制御部の、ミラーリングが解除されたメモリユニットへのページの作成に係る動作の流れを示すフローチャートである。
【図７】第２の実施形態における、ミラーリングが解除されたメモリユニットへのページの作成に係る動作の後の各ページの状態を例示するブロック図である。
【図８】第２の実施形態に係るメモリ割当制御部の、障害に対する処理に係る動作の流れを示すフローチャートである。
【図９】第２の実施形態における、障害に対する処理に係る動作の後の各ページの状態を例示するブロック図である。
【図１０】第２の実施形態に係るメモリ割当制御部の、ミラーリングが解除されたメモリユニットのページの更新に係る動作の流れを示すフローチャートである。
【図１１】第２の実施形態における、ミラーリングが解除されたメモリユニットのページの更新に係る動作の後の各ページの状態を例示するブロック図である。
【図１２】本発明の第３の実施形態に係る情報処理装置の構成を示すブロック図である。
【図１３】本発明の第４の実施形態に係る情報処理装置の構成を示すブロック図である。
【図１４】第４の実施形態に係る情報処理装置の各部の処理の流れを示すシーケンス図である。
【図１５】第４の実施形態における、メモリユニットの移動後のメモリユニットおよびデータの状態を例示するブロック図である。
【図１６】本発明の各実施形態を実現可能なコンピュータのハードウェア構成を例示的に説明する図である。
【図１７】本発明の一実施形態の主要構成を示すブロック図である。
【図１８】本発明の一実施形態の主要構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しながら、本発明の実施形態を詳細に説明する。
【００１４】
＜＜第１の実施形態＞＞
本発明の第１の実施形態について説明する。
【００１５】
＜構成＞
図１は、第１の実施形態に係る情報処理装置１１の構成を示すブロック図である。
【００１６】
本実施形態に係る情報処理装置１１は、記憶装置３０と通信可能に接続される。
【００１７】
記憶装置３０は、データを記憶する記憶領域３００を有する。記憶装置３０は、ハードディスク装置であってもよい。記憶装置３０は、フラッシュメモリ等の不揮発性ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置であってもよい。
【００１８】
情報処理装置１１は、複数のメモリユニット（図１に示す例では、メモリユニット１４１，１４２）を備える。メモリユニットは、たとえば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの、揮発性の記憶装置である。メモリユニットの記憶領域は、複数の所定のサイズの記憶領域に区切られている。この所定のサイズの記憶領域の１つ１つを「ページ」と呼ぶ。ページには、情報処理装置１１が実行するアプリケーション等で使用されるデータが、格納される。
【００１９】
以下、メモリユニット１４１のページのそれぞれを、ページ１７１と表す。メモリユニット１４２のページのそれぞれを、ページ１７２と表す。
【００２０】
情報処理装置１１において、メモリユニット１４１とメモリユニット１４２とはミラーリングされている。ミラーリングとは、双方のメモリユニットが同一のデータを有するように制御されていることである。すなわち、ミラーリングにより、ページ１７１が含むデータと、ページ１７２が含むデータとは、実質的に同一である。
【００２１】
情報処理装置１１は、冗長制御部１０１、ページファイル制御部１０２、および、ページ割当部１０３を備える。
【００２２】
冗長制御部１０１は、ミラーリングされたメモリユニット１４１，１４２のミラーリングを解除することを決定する。以下、「ミラーリングを解除する」とは、メモリユニット間のミラーリングを解除することである。冗長制御部１０１は、ミラーリングの解除を決定した場合、ページファイル制御部１０２およびページ割当部１０３を呼び出す。
【００２３】
ページファイル制御部１０２は、ミラーリングが解除されることが決定されたメモリユニット（メモリユニット１４１，１４２）のページ（ページ１７１，ページ１７２）が含むデータの複製を、記憶装置３０の記憶領域３００に作成する。たとえば、ページファイル制御部１０２は、ページ１７１が含むデータと同じデータを、記憶装置３０の記憶領域３００に格納する。
【００２４】
ページ割当部１０３は、ミラーリングが解除されることが決定されたメモリユニット１４１，１４２のページが含むデータを消去する。たとえば、ページ割当部１０３は、ページ１７２が含むデータを消去する。
【００２５】
図２に本実施形態の情報処理装置１１の動作の流れを示す。まず、冗長制御部１０１は、ミラーリングされたメモリユニット１４１，１４２のミラーリングを解除することを決定する（ステップＳ２１）。冗長制御部１０１は、ミラーリングの解除を決定した場合、ページファイル制御部１０２およびページ割当部１０３を呼び出す。ページファイル制御部１０２は、ミラーリングが解除されることが決定されたメモリユニット１４１，１４２のページ（ページ１７１またはページ１７２）が含むデータを、記憶装置３０の記憶領域３００に複製する（ステップＳ２２）。ページ割当部１０３は、ミラーリングが解除されることが決定されたメモリユニット１４１，１４２のうち一方が含むデータを消去する（ステップＳ２３）。
【００２６】
本実施形態によれば、メモリユニットの冗長性を維持しつつ使用可能なメモリ容量を増加させることができる。使用可能なメモリ容量を増加する理由は、メモリユニットのミラーリングを解除し、ミラーリングが解除されたメモリユニットの片方のページが含むデータを消去することにより、データが消去されたメモリユニットに新たに使用可能な領域が生成するからである。冗長性が維持される理由は、ミラーリングが解除されたメモリユニットのデータが、メモリユニットとは異なる記憶領域に複製されるからである。
【００２７】
＜＜主要構成＞＞
図１７に、第１の実施形態の情報処理装置１１の主要構成を備える情報処理装置１０のブロック図を示す。情報処理装置１０は、冗長制御部１０１と、ページファイル制御部１０２と、ページ割当部１０３と、を備える。
【００２８】
冗長制御部１０１は、メモリユニットのうち、ミラーリングされているメモリユニットのいずれか少なくとも１組のミラーリングを解除することを決定する。
【００２９】
ページファイル制御部１０２は、ミラーリングが解除されることが決定されたメモリユニットに含まれるデータの複製を、当該メモリユニットと異なる記憶領域に書き込む。
【００３０】
ページ割当部１０３は、ミラーリングが解除されることが決定されたメモリユニットの一方に含まれるデータを消去する。
【００３１】
本構成によれば、メモリユニットの冗長性を維持しつつ使用可能なメモリ容量を増加させることができる。
【００３２】
＜＜第２の実施形態＞＞
本発明の第２の実施形態について説明する。
【００３３】
＜構成＞
図３は、第２の実施形態に係る情報処理装置１２の構成を示すブロック図である。
【００３４】
本実施形態に係る情報処理装置１２は、ハードディスク３１と通信可能に接続される。
【００３５】
ハードディスク３１は、第１の実施形態における記憶装置３０の具体例である。ハードディスク３１は、ページファイル３１０を有する。ページファイル３１０は、ページに格納されるデータと同様のデータを記憶することができるファイルである。
【００３６】
情報処理装置１２は、複数のメモリユニット１５Ｎと、メモリ割当制御部２０と、メモリ使用量監視部１２１と、例外ハンドル部１１１とを有する。
【００３７】
図３には、複数のメモリユニット１５Ｎとして、メモリユニット１５１〜１５４が記載される。メモリユニット１５Ｎは、それぞれページを含む。メモリユニット１５Ｎは、データを、内部のページに格納する。図３で示す例では、メモリユニット１５１のページにはデータ１８１が格納されている。メモリユニット１５２にはデータ１８１’が格納されている。メモリユニット１５３およびメモリユニット１５４には、データが格納されていない。すなわち、メモリユニット１５３，１５４は、フリーな（どのページにもデータが格納されていない状態の）メモリユニットである。
【００３８】
本実施形態の説明において、メモリユニット１５１と１５２とは、ミラーリングされている。すなわち、データ１８１とデータ１８１’とは、実質的に同一である。
【００３９】
なお、ページへのデータの書き込みや、ページが含むデータの更新は、情報処理装置１２内の図示しない機能構成が行えばよい。
【００４０】
メモリユニット１５Ｎの機能は、たとえば、コンピュータのメインメモリにより提供される。この場合、一般的に、メモリユニットに格納されるページに対する処理の速度は、ハードディスク３１のページファイル３１０に格納されるページに対する処理の速度よりも速い。したがって、情報処理装置１２がページを更新する場合には、更新の対象のデータおよび冗長化されたデータがメモリユニット上に存在する方が、情報処理装置１２の処理は速く、効率的である。
【００４１】
メモリ使用量監視部１２１は、メモリの使用状況を監視する。監視により、メモリ使用量監視部１２１は、メモリ不足を検知する。メモリ不足の定義は、設計により変化しうる。メモリ不足とは、たとえば、メモリの空き容量が所定値を下回る場合である。空き容量とは、たとえば、データが格納されていない、使用可能な記憶領域の容量の総量である。メモリ不足とは、たとえば、メモリの空き容量が、新たに扱うデータのデータ量よりも少ないことである。メモリ不足とは、たとえば、使用されているメモリ容量の増加量を所定時間で割った値が、空き容量の定数倍を上回る場合である。なお、メモリ容量は、データが格納されていない、すなわち、未使用の、ページの数で表されてもよい。メモリ不足とは、たとえば、メモリの使用率が所定の閾値を超えることである。メモリの使用率は、たとえば、ＯＳが認識しているメモリ容量に対する、そのメモリ容量からＯＳやアプリケーションが新たに使用可能なメモリ容量を差し引いた値の割合である。メモリの使用率は、メモリにおける使用可能なすべてのページの数からミラーリングされているメモリユニットが含むページの総数の半分を差し引いた数に対する、使用されているページの数の割合、で算出されてもよい。
【００４２】
メモリ使用量監視部１２１は、メモリ不足を検知した場合は、メモリ割当制御部２０の冗長監視部２００に、メモリ不足を検知したことを示す通知を送信する。
【００４３】
例外ハンドル部１１１は、書き込み侵害の例外およびメモリ障害を検知する。
【００４４】
書き込み侵害の例外とは、「ページ保護」が設定されているページに対して、書き込みや更新の指示が発生することによる例外である。例外ハンドル部１１１は、たとえば、情報処理装置１２の各メモリユニットのページに対する書き込み指示を監視する。例外ハンドル部１１１は、監視において、「ページ保護」が設定されているページに対する書き込みの指示を検知する。検知した場合、例外ハンドル部１１１は、書き込み侵害の例外が発生したことを示す通知と、その書き込み指示の対象であるページを示す情報（たとえば、アドレス）を、例外監視部２０５に送信する。なお、「ページ保護」の設定は、後述するページ属性制御部２０４によって行われる。
【００４５】
メモリ障害とは、メモリユニット１５Ｎに発生する障害である。例外ハンドル部１１１は、メモリの障害を検知する他の機能構成と通信可能に接続されていてもよい。例外ハンドル部１１１は、メモリ障害を検知すると、メモリの障害が発生したことを示す通知と、その障害が発生したメモリユニットを示す情報（たとえば、識別子）とを、例外監視部２０５に送信する。
【００４６】
メモリ割当制御部２０は、冗長監視部２００、冗長制御部２０１、ページファイル制御部２０２、ページ割当部２０３、ページ属性制御部２０４、例外監視部２０５、および、メモリ管理テーブル２１０を含む。
【００４７】
冗長監視部２００は、メモリ使用量監視部１２１からメモリ不足を検知したことを示す通知を受け取ると、冗長制御部２０１に、ミラーリング解除指示を送信する。ミラーリング解除指示は、ミラーリングを解除する指示である。
【００４８】
冗長制御部２０１は、それぞれのメモリユニット１５Ｎの状態を管理する。冗長制御部２０１は、メモリユニット１５Ｎの状態の管理を、メモリ管理テーブル２１０によって行えばよい。
【００４９】
例えばメモリ管理テーブル２１０は、情報処理装置１２の各メモリユニットに関する次の情報を含んでよい。
・他のメモリユニットとミラーリングされているか否か（以下、「ミラーリング情報」と呼ぶ。「是」／「否」の２値。）
・ミラーリングされている場合、どのメモリユニットとミラーリングされているか
・データを格納しているページが有るか（以下、「ページ情報」と呼ぶ。「有」／「無」の２値。）
・格納されているデータの情報（更新日時、論理アドレス、および、その論理アドレスに割り当てられている物理アドレスもしくはページファイル３１０におけるアドレス、など。）
【００５０】
冗長制御部２０１は、メモリユニット１５Ｎに関する情報が変更される場合に、メモリ管理テーブル２１０の情報を更新する。冗長制御部２０１は、必要に応じて、メモリ管理テーブル２１０の情報を参照する。
【００５１】
また、冗長制御部２０１は、ページファイル制御部２０２、ページ割当部２０３、および、ページ属性制御部２０４に対し、行うべき処理の内容を指示する。
【００５２】
ページファイル制御部２０２は、冗長制御部２０１の指示に従って、ページファイル３１０にデータを記録する。
【００５３】
ページ割当部２０３は、メモリユニット１４１，１４２の各ページに対するデータの割当を制御する。「データの割当を制御する」とは、データと、そのデータへのアクセスにおいて使用されるページとの対応付けを、制御することである。たとえば、ページ割当手段は、そのデータに割り当てられた論理アドレスと、ページの物理アドレスとの関連づけを制御する。また、データが、そのデータに関連づけられた物理アドレスのページに存在するよう、ページにデータを書き込む。
【００５４】
ページ割当部２０３は、ページに含まれるデータを「移動させる」。「移動させる」とは、そのデータを格納するページを変更することである。具体的には、ページ割当部２０３は、そのデータに対応付けられた、ページの物理アドレスを変更する。そして、ページ割当部２０３は、データを、変更後の物理アドレスのページに書き込む。また、ページ割当部２０３は、変更前の物理アドレスページに含まれるデータを消去する。
【００５５】
ページ割当部２０３は、ミラーリングが解除されたメモリユニットの一方のデータを消去する。ページ割当部２０３は、データを消去することによってフリーになったメモリユニットの各ページを解放する。「ページを解放する」とは、ページを使用可能な状態にすることである。たとえば、ページ割当部２０３は、ページに、使用可能な論理アドレスを割り当てればよい。
【００５６】
ページ属性制御部２０４は、それぞれのページの属性の情報を制御する。ページの属性は、たとえば、そのページが「ページ保護」に設定されているか否かを示す情報を含んでもよい。たとえば、ページ属性制御部２０４は、ミラーリングされていないページに対して、「ページ保護」を設定してもよい。「ページ保護」に設定されたページは、上述の書き込み侵害の例外の検知に用いられうる。
【００５７】
例外監視部２０５は、例外ハンドル部１１１から書き込み侵害の例外の通知またはメモリ障害が発生したことを示す通知を受け取ると、冗長制御部２０１を呼び出す。なお、このとき、例外監視部２０５は、例外ハンドル部１１１から受け取った情報（たとえば、例外の種類、および、例外に係るメモリユニットを示す情報）も、冗長制御部２０１に送信する。
【００５８】
＜動作＞
第２の実施形態に係る情報処理装置１２の動作について図４、図６、図８、図１０のフローチャートを参照して詳細に説明する。
【００５９】
（ミラーリングの解除時）
ミラーリングの解除に係る情報処理装置１２の流れを、図４のフローチャートを参照しながら説明する。
【００６０】
ミラーリングの解除を行う契機は、たとえば、メモリ不足を検知したメモリ使用量監視部１２１が、冗長監視部２００にメモリ不足を検知した旨を通知したときである。
【００６１】
ステップＳ４１において、冗長監視部２００は、メモリ使用量監視部１２１からメモリ不足を検知したことを示す通知を受け取る。すると、冗長監視部２００は、冗長制御部２０１にミラーリング解除指示を送信する（ステップＳ４１）。
【００６２】
冗長制御部２０１は、冗長監視部２００からミラーリング解除指示を受信すると、メモリユニット１５Ｎのうち、ミラーリングされているメモリユニットの組を少なくとも１つ選択し、そのメモリユニットのミラーリングを解除することを決定する（ステップＳ４２）。例として、冗長制御部２０１は、メモリユニット１５１およびメモリユニット１５２の間のミラーリングを解除することを決定したとする。
【００６３】
決定されたメモリユニットのミラーリングを解除する手順は、次のステップＳ４３〜Ｓ４５の手順を含む。
【００６４】
ステップＳ４３において、メモリユニット１５１および１５２にページが記録されていた場合、ページファイル制御部２０２は、ミラーリングされていたメモリユニットに含まれるデータの複製をページファイルに作成する。具体的には、ページファイル制御部２０２は、メモリユニット１５１（または１５２）が含むすべてのページの内容の複製を、ハードディスク３１のページファイル３１０に作成する。これによりページファイル３１０に生成したデータをデータ１９１とする。なお、メモリユニット１５１および１５２がフリーのページであった場合は、ステップＳ４３の処理は省略されてよい。
【００６５】
ステップＳ４４において、ページ割当部２０３は、ミラーリングを解除したメモリユニットの片方（たとえばメモリユニット１５２）のすべてのページの内容を消去する。そして、ページ割当部２０３は、メモリユニット１５２を解放する。
【００６６】
ステップＳ４５において、冗長制御部２０１は、メモリ管理テーブル２１０における、メモリユニット１５１、１５２に関する情報を更新する。具体的には、冗長制御部２０１は、メモリユニット１５１、１５２のミラーリング情報を「否」にする。また、冗長制御部２０１は、メモリユニット１５２のページ情報を「無」にする。
【００６７】
なお、上記のステップＳ４３〜Ｓ４５の手順の順序は限定されない。ただし、ステップＳ４５（ページの内容の消去）が、ステップＳ４４（ページの複製）の後に行われれば、ページの冗長性が常に保たれるため、情報処理装置はより障害に対して強くなる。
【００６８】
なお、ページ属性制御部２０４は、メモリユニット１５１が含むページに「ページ保護」を設定してもよい。
【００６９】
以上により、メモリユニットのミラーリングの解除が完了する。
【００７０】
図５は、本実施形態においてミラーリングが解除された後の構成を例示する図である。メモリユニット１５１とメモリユニット１５２のミラーリングは解除され、ページファイル３１０にて、データ１８１と実質的に同一の新たなデータ１９１が生成している。
【００７１】
なお、ミラーリングを解除するメモリユニット１５Ｎの数は、限定されない。また、ミラーリングを解除するメモリユニット１５Ｎは、予め定められていてもよい。冗長制御部２０１は、最後に更新されてから経過した時間が最も長いメモリユニット１５Ｎを選択するように設計されてもよい。最後に更新されてから経過した時間が最も長いメモリユニット１５Ｎは、そのメモリへのアクセスの頻度が少ない可能性が高い。あるいは、冗長制御部２０１は、次に使用されるまでの時間が最も長いと見込まれるメモリユニット１５Ｎを選択するアルゴリズムを用いて、ミラーリングを解除するメモリユニット１５Ｎを選択してもよい。
【００７２】
また、ページ割当部２０３は、ミラーリングが解除されたメモリユニットのページに対するデータの割当を、データの更新日時に基づいて制御してもよい。たとえば、ページ割当部２０３は、ミラーリングされていないメモリユニット１５１が含むページに含まれるデータが最後に更新されてから経過している時間が、ミラーリングされているメモリユニット１５Ｎが含むページに含まれるデータが最後に更新されてから経過している時間よりも長いように、ページに対するデータの割当を制御してもよい。
【００７３】
（ミラーリングが解除されたメモリユニットへのページの作成時）
ミラーリングが解除され解放されたメモリユニットのページに新たにデータが作成される場合の動作について、図６のフローチャートを参照して詳細に説明する。ただし、ステップの順序は一例であり、適宜変更されてよい。
【００７４】
例として、ページ割当部２０３が新たなデータをメモリユニット１５２のページに割り当てるとする。
【００７５】
まず、ページ割当部２０３が、新たなデータをメモリユニット１５２のページに割り当てる（ステップＳ６１）。このとき、冗長制御部２０１が、たとえばメモリ管理テーブル２１０を参照することによって、新たなデータが割り当てられたページを含むメモリユニット（例においては、メモリユニット１５２）がミラーリングされていないことを、検知すればよい。
【００７６】
新たなデータが割り当てられたページを含むメモリユニット１５Ｎ（この説明の例では、メモリユニット１５２）がミラーリングされていない場合、メモリ割当制御部２０の構成要素は、それぞれ次の処理を行う。
【００７７】
ステップＳ６２において、ページファイル制御部２０２は、メモリユニット１５２に作成されたデータ１８２の複製を、ハードディスク３１のページファイル３１０に作成する。複製により生成したデータを、データ１９２とする。
【００７８】
ステップＳ６３において、冗長制御部２０１は、メモリ管理テーブル２１０を更新する。具体的には、冗長制御部２０１は、メモリ管理テーブル２１０において、メモリユニット１５２に関する「ページ情報」を「有」に変更し、データ１８２に関する情報を書き込む。
【００７９】
図７は、本実施形態においてミラーリングが解除されたメモリユニット１５２にデータ１８２が作成された後の構成を例示する図である。メモリユニット１５２に新たにデータ１８２が生成し、ページファイル３１０にて、データ１８２と実質的に同一の新たなデータ１９２が生成している。
【００８０】
（ミラーリングが解除されたメモリユニットにおける障害の発生時）
メモリ障害が発生した場合の動作について図８のフローチャートを参照して詳細に説明する。ただし、ステップの順序は一例であり、適宜変更されてよい。
【００８１】
例として、ミラーリングが解除されたメモリユニット１５２において障害が発生したとする。
【００８２】
メモリ障害が発生すると、例外ハンドル部１１１が、メモリ障害が発生したことを示す通知を例外監視部２０５に送信する。例外監視部２０５は、この通知を受け取る（ステップＳ８１）。すると、例外監視部２０５は、冗長制御部２０１を呼び出す。
【００８３】
冗長制御部２０１は、障害が発生したメモリユニット（メモリユニット１５２）と異なるメモリユニット１５Ｎの、フリーのページを選択する（ステップＳ８２）。例として、冗長制御部２０１は、メモリユニット１５３を選択する。そして、ページファイル制御部２０２は、ページファイル内の、障害が発生したメモリユニット１５２が含むデータ１８２と実質的に同一のデータであるデータ１９２を読み出す。そして、ページ割当部２０３が、冗長制御部２０１によって選択されたメモリユニット１５３に、ページファイル制御部２０２が読み出したデータ１９２を、格納する（ステップＳ８３）。メモリユニット１５３に作成されたデータをデータ１８３とする。
【００８４】
なお、この例の場合、メモリユニット１５３はミラーリングされているため、メモリユニット１５４にも、データ１８３と同じデータが生成する。メモリユニット１５４上に生成したデータをデータ１８３’とする。ページファイル制御部２０２が、データ１８３’をメモリユニット１５４に格納してもよい。
【００８５】
そして、ページ割当部２０３は、障害が発生したメモリユニット１５２に含まれるデータ１８２を消去する（ステップＳ８４）。
【００８６】
冗長制御部２０１は、メモリ管理テーブル２１０を更新する（ステップＳ８５）。
【００８７】
なお、ステップＳ８３の後、ページファイル制御部２０２は、ページファイル３１０に含まれるデータ１９２を、消去してもよい。
【００８８】
図９は、本実施形態においてミラーリングが解除されたメモリユニットに発生した障害に対する処理の後の構成を例示する図である。メモリユニット１５２におけるデータ１８２およびページファイル３１０におけるデータ１９２は消去され、データ１９２と同等のデータ１８３、１８３’が、メモリユニット１５３、１５４上に生成している。
【００８９】
なお、冗長制御部２０１は、ステップＳ８２において、ミラーリングされていないメモリユニット１５Ｎのページを選んでもよい。この場合、ページファイル制御部２０２は、ステップＳ８３の後に、ページファイル３１０におけるデータ１９２を、削除しなくてよい。
【００９０】
（ミラーリングが解除されたメモリユニットのページの更新時）
ミラーリングが解除されたメモリユニットのページが更新される場合の動作について、図１０のフローチャートを参照して詳細に説明する。
【００９１】
例として、図７で示される状態において、メモリユニット１５２のページへの書き込み侵害の例外が発生したとする。以下、書き込み侵害の例外が発生したページを、侵害を受けたページと呼ぶ。
【００９２】
まず、例外ハンドル部１１１が、書き込み侵害の例外を検知すると、例外監視部２０５に書き込み侵害の例外の通知を送信する。例外監視部２０５は、例外ハンドル部１１１からの通知を受ける（ステップＳ１０１）と、冗長制御部２０１を呼び出す。
【００９３】
冗長制御部２０１は、ミラーリングされているメモリユニット１５Ｎの、フリーのページを選択する（ステップＳ１０２）。たとえば、冗長制御部２０１は、メモリユニット１５３，１５４の中のフリーのページを選択する。
【００９４】
そして、ページ割当部２０３は、選択されたページのそれぞれに、侵害を受けたページに含まれるデータ１８２を移動させる（ステップＳ１０３）。具体的には、ページ割当部２０３は、侵害を受けたページに含まれるデータ１８２の複製を、選択されたページのそれぞれに格納する。そして、ページ割当部２０３は、侵害を受けたページ１８２に含まれるデータを消去する。また、ページ割当部２０３は、侵害を受けたページおよび選択されたページのそれぞれに関連づけられた論理アドレスを変更する。
【００９５】
メモリユニット１５３，１５４に複製されたデータを、それぞれデータ１８４，１８４’とする。
【００９６】
ページファイル制御部２０２は、ハードディスク３１のページファイル３１０内の、侵害を受けたページに含まれるデータの複製を消去する（ステップＳ１０４）。
【００９７】
冗長制御部２０１は、メモリユニット１５２，１５３，１５４に関する情報について、メモリ管理テーブル２１０を更新する（ステップＳ１０５）。具体的には、冗長制御部２０１は、メモリ管理テーブル２１０において、データ１８２，１８４，１８４’に関する情報を書き込む。
【００９８】
図１１は、本実施形態においてミラーリングが解除されたメモリユニットのページを更新する時の構成を例示する図である。メモリユニット１５２に含まれていたデータ１８２およびページファイル３１０に含まれていたデータ１９２が、データ１８４、１８４’として、メモリユニット１５３、１５４に移動している。
【００９９】
＜効果＞
本実施形態の情報処理装置によれば、第１の実施形態と同様、メモリユニットの冗長性を維持しつつ使用可能なメモリ容量を増加させることができる。第２の実施形態の構成により、該メモリユニットに障害が生じた場合でも、ページファイルに複製されていたデータを、他のメモリユニットに読み出す（ページインする）ため、ページの内容が失われない。
【０１００】
また、ミラーリングが解除されたメモリユニット上のページに書き込み指示が発生した場合、メモリ割当制御部２０は、そのページのデータを、ミラーリングされているメモリユニットのページに移動するので、情報処理装置１２はページファイル内のデータを更新しなくてよい。そのため、情報処理装置１２は、メモリユニット１５Ｎに含まれるデータに対する処理を伴う情報処理において、処理速度を保ってページに対する処理をすることができる。
【０１０１】
また、ミラーリングを解除するメモリユニットとして、最後に更新されてから経過した時間が最も長いメモリユニット１５Ｎを冗長制御部２０１が選択した場合、そのメモリユニット１５Ｎへのアクセスの頻度は少ない可能性が高い。すなわち、そのメモリユニット１５Ｎにページインされるまでの時間が長いと期待される。したがって、この場合、ページインに係る処理が少なくなるため、処理の性能の低下を抑制するという効果を奏する。
【０１０２】
ページ割当部２０３が、最後に更新されてから経過している時間が、ミラーリングされているメモリユニット１５Ｎが含むページに含まれるデータが最後に更新されてから経過している時間よりも長いデータを、ミラーリングが解除されたメモリユニットのページに割り当てる構成によっても、当該ページへのアクセスの頻度は少ない可能性が高い。この構成も、処理の性能の低下を抑制するという効果を奏する。
【０１０３】
＜＜第３の実施形態＞＞
第２の実施形態において、メモリユニットのミラーリングを解除する契機は、メモリ不足が検知された時に限らなくてもよい。本発明の第３の実施形態として、ミラーリングの解除の決定に関わる更新管理部２０６を備える情報処理装置１３を説明する。
【０１０４】
図１２は、第３の実施形態に係る情報処理装置１３の構成を示すブロック図である。情報処理装置１３のメモリ割当制御部２１は、第２の実施形態のメモリ割当制御部２０と同様の構成に加え、更新管理部２０６を備える。
【０１０５】
更新管理部２０６は、ミラーリングされたメモリユニットのページのうち、更新頻度が低いページを検出する。更新頻度が低いページとは、更新されていない状態が継続するページである。更新頻度が低いページとは、たとえば、最後に更新されてから経過した期間が所定の期間よりも長いページである。以下、「更新頻度が低いページ」は、「ミラーリングされたメモリユニットのページのうち、更新頻度が低いページ」を指す。
【０１０６】
更新管理部２０６は、更新頻度が低いページのみを含むメモリユニットを検出すると、そのメモリユニットを示す情報を、冗長制御部２０１に送信する。
【０１０７】
冗長制御部２０１は、更新頻度が低いページのみを含むメモリユニットのミラーリングを解除する決定を行う。この場合、メモリ割当制御部２１は、更新頻度が低いページのみを含むメモリユニットのミラーリングを解除する。ミラーリングを解除する処理は、第２の実施形態同様、図４のフローチャートに示されるステップＳ４３からステップＳ４５の処理である。
【０１０８】
本実施形態によれば、更新頻度が低いページのみを含むメモリユニットが検出されるたびに、ミラーリングが解除されたメモリユニットが（可用性を保ったまま）増える。これにより、メモリの使用率を安全に下げることができる。また、ミラーリングが解除されるメモリユニットは、ページの更新頻度が低いメモリユニットであるため、当該メモリユニットのページが次にページインされるまでの時間が長いと期待される。そのため、本実施形態によれば、ページファイルに記録されたページの更新に伴うページインによる、情報処理装置１３の処理の性能の低下を、抑えることができる。
【０１０９】
＜＜変形例＞＞
第３の実施形態の変形例として、メモリ割当制御部２１は次のように構成されてもよい。すなわち、更新管理部２０６は、更新されていない状態が継続するページの数と、予め設定された値とを、随時比較する。更新されていない状態が継続するページの数が設定された値を上回った場合に、冗長制御部２０１は、ミラーリングされているメモリユニットのいずれか少なくとも１組のミラーリングを解除することを決定する。ページ割当部２０３は、ミラーリングが解除されたメモリユニットの一方を解放する。ページ割当部２０３は、ミラーリングが解除されたメモリユニットの他方のページに、更新されていない状態が継続するデータを移動させる。ページ割当部２０３は、このとき、ミラーリングが解除されたメモリユニットの他方に元々含まれているデータを移動させてもよい。
【０１１０】
また別の変形例として、更新頻度が低いページが検出された場合に、ミラーリングされていないメモリユニット内のページでフリーのページが存在する場合、ページ割当部２０３が、更新頻度が低いページを、そのフリーのページに移動させてもよい。この場合、冗長制御部２０１がメモリユニットのミラーリングを解除させなくとも、使用可能な冗長化されたメモリユニットのページが増加する。
【０１１１】
＜＜主要構成＞＞
図１８に、本発明の一実施形態に係る情報処理装置９の主要構成のブロック図を示す。情報処理装置９は、ページファイル制御部２０２と、ページ割当部２０３とを備える。
【０１１２】
ページ割当部２０３は、メモリユニットのうち、ミラーリングされているメモリユニットに含まれるデータを、ミラーリングされていないメモリユニットに移動させる。
【０１１３】
ページファイル制御部２０２は、移動させたデータの複製を、メモリユニットと異なる記憶領域に書き込む。
【０１１４】
本構成によれば、メモリユニットの冗長性を維持しつつ使用可能なメモリ容量を増加させることができる。
【０１１５】
＜＜第４の実施形態＞＞
本発明の第４の実施形態について説明する。
【０１１６】
＜構成＞
図１３は、第４の実施形態に係る情報処理装置１４の構成を示すブロック図である。
【０１１７】
情報処理装置１４は、少なくとも２つの「区画１００」を含む。区画とは、情報処理のまとまりを概念的に区別したものである。たとえば、それぞれの区画１００では、異なるプロセッサ（不図示）が、そのプロセッサの制御下のメモリユニットを使用して情報処理を行う。図１３において表される区画１００は、同じ区画内にあるメモリユニットの群が、同じプロセッサによって使用される群であることを表す。
【０１１８】
図１３では、区画１００として、区画１００Ａと区画１００Ｂが示されている。各区画１００は、上述のように、メモリユニットを含む。区画１００Ａは、メモリユニット１５Ｎ（１５１，１５２を含む）を含む。メモリユニット１５１とメモリユニット１５２とは、ミラーリングされている。区画１００Ｂは、メモリユニット１６Ｎ（１６１，１６２を含む）を含む。メモリユニット１６１とメモリユニット１６２とは、ミラーリングされている。メモリユニット１５１，１５２，１６１，１６２は、それぞれ、データ１８１，１８１’，１８３，または１８３’を含む。データ１８１とデータ１８１’とは同一のデータである。データ１８３とデータ１８３’とは同一のデータである。
【０１１９】
また、情報処理装置１４は、メモリ使用量監視部１２１と、構成制御部１２２とを含む。
【０１２０】
メモリ使用量監視部１２１は、各区画１００のメモリの使用量を監視する。メモリ使用量監視部１２１は、監視により、メモリ不足が発生している区画を検知する。メモリ不足の定義は、第２の実施形態における説明と同様、様々に設定されてよい。メモリ使用量監視部１２１は、メモリ不足が発生している区画を検知した場合は、そのメモリ不足を検知したことを示す通知およびメモリ不足が発生している区画を示す情報を、構成制御部１２２に、送信する。
【０１２１】
構成制御部１２２は、各区画１００におけるメモリユニットの構成を制御する。すなわち、構成制御部１２２は、それぞれのメモリユニット１５Ｎ，１６Ｎをいずれの区画１００のプロセッサに使用させるかを決定する。
【０１２２】
構成制御部１２２は、メモリ使用量監視部１２１からメモリ不足を検知したことを示す通知を受信すると、メモリ不足が発生している区画とは異なる区画の、メモリユニットの少なくとも１つを、メモリ不足が発生している区画に移動させる。「メモリ不足が発生している区画に移動させる」とは、そのメモリユニットをメモリ不足が発生している区画のプロセッサの制御下に変更することを意味する。
【０１２３】
具体的には、構成制御部１２２は、次のようにして、メモリユニットをメモリ不足が発生している区画に移動させる。
【０１２４】
まず、構成制御部１２２は、メモリ不足が発生している区画とは異なる区画を少なくとも１つ選択する。メモリ不足が発生している区画とは異なる区画が複数ある場合、どの区画を選択するかは、所定のアルゴリズムによって決められていればよい。たとえば構成制御部１２２は、メモリユニットへのアクセスの頻度が最も少ない区画を選択してもよい。構成制御部１２２は、メモリの空き容量が最も多い区画を選択してもよい。
【０１２５】
区画を決定したら、構成制御部１２２は、メモリユニットを移動させる指示である移動指示を、選択した区画のメモリ割当制御部２１に送信する。
【０１２６】
そして、構成制御部１２２は、移動指示を送信した先のメモリ割当制御部２１から、メモリユニットの少なくとも１つを示す情報を受信する。移動指示を送信した先のメモリ割当制御部２１の動作については、後述する。
【０１２７】
そして、構成制御部１２２は、冗長制御部２０１から受け取った情報が示すメモリユニットの制御を、メモリ不足が発生している区画のプロセッサが行うよう、情報処理装置１４の設定を変更する。また、構成制御部１２２は、メモリユニットが組み込まれたことを示す通知である組み込み通知を、移動先の区画のメモリ割当制御部２１に送信する。構成制御部１２２は、組み込み通知に、その区画に組み込まれるメモリユニットの情報（たとえば、アドレス等）を含めてもよい。
【０１２８】
以上の処理によって、構成制御部１２２は、メモリ不足が発生している区画とは異なる区画のメモリユニットの少なくとも１つをメモリ不足が発生している区画に移動させる。
【０１２９】
区画１００はそれぞれ、例外ハンドル部１１１と、メモリ割当制御部２１とを含む。
【０１３０】
本実施形態の例外ハンドル部１１１は、第２の実施形態の例外ハンドル部１１１の機能と同等の機能を有する。
【０１３１】
本実施形態のメモリ割当制御部２１は、第３の実施形態のメモリ割当制御部２１と同等の機能を有する。また、メモリ割当制御部２１の制御構造は、第３の実施形態のメモリ割当制御部２１の制御構造と同様でよい。
【０１３２】
すなわち、各区画１００のメモリ割当制御部２１は、たとえば、冗長監視部２００と、冗長制御部２０１と、ページ割当部２０３と、ページファイル制御部２０２と、ページ属性制御部２０４と、例外監視部２０５と、更新管理部２０６と、メモリ管理テーブル２１０とを含む。メモリ割当制御部２１の構成要素のそれぞれは、第２の実施形態における同じ符号の構成要素と同等の機能を有する。
【０１３３】
メモリ割当制御部２１は、それぞれ、ハードディスク３１と通信可能に接続される。ハードディスク３１は、ページファイル３１０を備える。区画１００Ａが含むメモリ割当制御部２１に接続されるハードディスク３１をハードディスク３１Ａ、区画１００Ｂが含むメモリ割当制御部２１に接続されるハードディスク３１をハードディスク３１Ｂとする。ハードディスク３１Ａが含むページファイルはページファイル３１０Ａ、ハードディスク３１Ｂが含むページファイルはページファイル３１０Ｂである。
【０１３４】
冗長監視部２００は、構成制御部１２２から、移動指示または組み込み通知を受け取ると、冗長制御部２０１を呼び出す。冗長監視部２００は、構成制御部１２２から受け取った移動指示または組み込み通知を、そのまま冗長制御部２０１に送信してもよい。
【０１３５】
冗長制御部２０１は、構成制御部１２２から移動指示を受けると、ミラーリングされているメモリユニットの１つ以上のミラーリングを解除する。そして、冗長制御部２０１は、ミラーリングが解除されたメモリユニットの一方を示す情報（たとえば、アドレス）を、構成制御部１２２に送信する。
【０１３６】
冗長制御部２０１は、構成制御部１２２から組み込み通知を受けると、この組み込み通知が示すメモリユニットの情報を更新する。
【０１３７】
＜動作＞
第４の実施形態に係る情報処理装置１４の動作について説明する。
【０１３８】
以下、区画１００Ａに含まれる構成要素の符号にはＡを付し、区画１００Ｂに含まれる構成要素の符号にはＢを付して区別する。
【０１３９】
メモリ使用量監視部１２１が区画１００Ａのメモリ不足を検知したとする。その場合の、情報処理装置１４の各部の動作の流れを、図１４のシーケンス図を参照しながら説明する。
【０１４０】
まず、メモリ使用量監視部１２１は、メモリ不足を検知したことを示す通知およびメモリ不足が発生している区画を示す情報を構成制御部１２２に送信する（ステップＳ１３１）。
【０１４１】
構成制御部１２２は、メモリ使用量監視部１２１からの通知および情報を受け取ると、受け取った情報が示す区画とは異なる区画を少なくとも１つ選択する（ステップＳ１３２）。例として、構成制御部１２２は、区画１００Ｂを選択したとする。
【０１４２】
構成制御部１２２は、選択した区画１００Ｂに対し、移動指示を送信する（ステップＳ１３３）。
【０１４３】
移動指示は、区画１００Ｂにて、冗長監視部２００Ｂによって受信される。すると、冗長監視部２００Ｂは、冗長制御部２０１Ｂを呼び出す。
【０１４４】
冗長制御部２０１Ｂは、メモリユニットを解除する処理を行う（ステップＳ１３４）。この処理は、第２の実施形態で説明されたステップＳ４３〜Ｓ４５と同様である。本説明の例では、メモリユニット１６１，１６２のミラーリングが解除されたとする。これによって、メモリユニット１６２に含まれるデータは消去される。また、ページファイル制御部２０２Ｂによって、ページファイル３１０に、データ１８３の複製であるデータ１９３が作成される。
【０１４５】
次に、冗長制御部２０１Ｂは、ミラーリングが解除されたメモリユニットの片方を選択する。この時、冗長制御部２０１Ｂは、ページの内容が消去された（またはフリーの）メモリユニット（この例ではメモリユニット１６２）を選択する。冗長制御部２０１は、構成制御部１２２に対して、選択したメモリユニット１６２を示す情報を送信する（ステップＳ１３５）。
【０１４６】
冗長制御部２０１Ｂはこのとき、メモリ管理テーブル２１０Ｂの情報を更新してもよい。たとえば、冗長制御部２０１Ｂは、メモリユニット１６２が区画１００Ｂのものではないことを示す情報をメモリ管理テーブル２１０Ｂに書き込んでもよい。または、冗長制御部２０１Ｂは、メモリユニット１６２に関する情報を削除してもよい。
【０１４７】
構成制御部１２２は、受け取った情報に基づき、メモリユニット１６２を区画１００Ａに移動させる（ステップＳ１３６）。
【０１４８】
続いて、構成制御部１２２は、区画１００Ａに対し、組み込み通知を送信する（ステップＳ１３７）。
【０１４９】
区画１００Ａにおいて、冗長監視部２００Ａが、構成制御部１２２から組み込み通知を受け取る。すると、冗長監視部２００Ａは、冗長制御部２０１Ａを呼び出す。
【０１５０】
冗長制御部２０１Ａは、組み込み通知に従って、メモリ管理テーブル２１０Ａの情報を更新する（ステップＳ１３８）。たとえば、冗長制御部２０１は、メモリユニット１６２が区画１００Ａのものであることを示す情報をメモリ管理テーブル２１０Ａに書き込んでもよい。または、冗長制御部２０１は、メモリユニット１６２に関する情報を生成してもよい。
【０１５１】
以上により、メモリユニットの移動が完了する。図１５は、本実施形態におけるメモリユニットの移動後のメモリユニットおよびデータの状態を例示するブロック図である。メモリユニット１６１とミラーリングされていたメモリユニット１６２は区画１００Ａに移動し、ページファイル３１０にて、ページ１８３と実質的に同一の新たなページ１９３が生成している。
【０１５２】
区画１００Ｂにおいては、ミラーリングされていたメモリユニットの片方が移動するため、格納できるデータの量は減少しない。一方、区画１００Ａにおいては、新たなメモリユニットが追加されるため、格納できるデータの量は増える。
【０１５３】
各区画１００における、ミラーリングが解除されたメモリユニットの障害の発生時、ページの作成時および更新時の動作は、第２の実施形態で説明された動作と同様でよい。
【０１５４】
また、更新部２０６Ａは、組み込まれたメモリユニット１６２のページに、更新頻度の低いデータを移動させてもよい。
【０１５５】
＜効果＞
本実施形態によれば、メモリユニットの冗長性を維持しつつ使用可能なメモリ容量を増加させることができる。その理由は、メモリが不足した区画とは異なる区画からフリーのメモリユニットを組み込むからである。また、本実施形態によれば、メモリが不足した区画は必ずしも該区画内のメモリユニットのミラーリングを解除しなくとも、メモリの使用率を低減することができる。
【０１５６】
以上、各実施形態で説明した事項は、本発明の趣旨を逸脱しない限り、実現可能な範囲で組み合わされてよい。
【０１５７】
以上で説明した本発明の各実施形態において、各装置の各構成要素は、機能単位のブロックを示している。各装置の各構成要素の一部または全部は、例えば図１６に示すようなコンピュータ１６００とプログラムとの可能な組み合わせにより実現される。コンピュータ１６００は、一例として、以下のような構成を含む。
・ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１６０１
・ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１６０２
・ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１６０３
・ＲＡＭ１６０３にロードされるプログラム１６０４Ａおよび記憶情報１６０４Ｂ
・プログラム１６０４Ａおよび記憶情報１６０４Ｂを格納する記憶装置１６０５
・記録媒体１６０６の読み書きを行うドライブ装置１６０７
・通信ネットワーク１６０９と接続する通信インタフェース１６０８
・データの入出力を行う入出力インタフェース１６１０
・各構成要素を接続するバス１６１１
【０１５８】
各実施形態における各装置の各構成要素は、これらの機能を実現するプログラム１６０４ＡをＣＰＵ１６０１がＲＡＭ１６０３にロードして実行することで実現される。各装置の各構成要素の機能を実現するプログラム１６０４Ａは、例えば、予め記憶装置１６０５やＲＯＭ１６０２に格納されており、必要に応じてＣＰＵ１６０１が読み出す。なお、プログラム１６０４Ａは、通信ネットワーク１６０９を介してＣＰＵ１６０１に供給されてもよいし、予め記録媒体１６０６に格納されており、ドライブ装置１６０７が当該プログラムを読み出してＣＰＵ１６０１に供給してもよい。
【０１５９】
各装置の実現方法には、様々な変形例がある。例えば、各装置は、構成要素毎にそれぞれ別個のコンピュータ１６００とプログラムとの可能な組み合わせにより実現されてもよい。また、各装置が備える複数の構成要素が、一つのコンピュータ１６００とプログラムとの可能な組み合わせにより実現されてもよい。
【０１６０】
また、各装置の各構成要素の一部または全部は、その他の汎用または専用の回路、コンピュータ等やこれらの組み合わせによって実現される。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。
【０１６１】
各装置の各構成要素の一部または全部が複数のコンピュータや回路等により実現される場合には、複数のコンピュータや回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、コンピュータや回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【０１６２】
本願発明は以上に説明した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１６３】
上記実施形態の一部または全部は以下の付記のようにも記載され得るが、以下には限られない。
【０１６４】
＜＜付記＞＞
［付記１］
メモリユニットのうち、ミラーリングされている前記メモリユニットのいずれか少なくとも１組のミラーリングを解除することを決定する冗長制御手段と、
ミラーリングが解除されることが決定された前記メモリユニットに含まれるデータの複製を、当該メモリユニットと異なる記憶領域に書き込むページファイル制御手段と、
ミラーリングが解除されることが決定された前記メモリユニットの一方に含まれるデータを消去するページ割当手段と、
を備える情報処理装置。
［付記２］
前記ページ割当手段は、ミラーリングが解除された前記メモリユニットのページが更新される場合に、当該ページに含まれるデータを、ミラーリングされている前記メモリユニットのページに割り当てる、
付記１に記載の情報処理装置。
［付記３］
前記冗長制御手段は、最後に更新されてから経過した時間が最も長い前記メモリユニットのミラーリングを解除することを決定する、
付記１または２に記載の情報処理装置。
［付記４］
前記ページ割当手段は、ミラーリングされていない前記メモリユニットが含むページに含まれるデータが最後に更新されてから経過している時間が、ミラーリングされている前記メモリユニットが含むページに含まれるデータが最後に更新されてから経過している時間よりも長いように、ページに対するデータの割当を制御する、
付記１から３のいずれか一項に記載の情報処理装置。
［付記５］
前記冗長制御手段に、第１のプロセッサの制御下である前記メモリユニットのうちミラーリングされている前記メモリユニットのいずれか少なくとも１組のミラーリングを解除させ、ミラーリングが解除された前記メモリユニットの片方を、第２のプロセッサの制御下にさせる、構成制御手段を、をさらに備える、
付記１から４のいずれか一項に記載の情報処理装置。
［付記６］
前記冗長制御手段は、
最後に更新されてから経過している時間が所定の期間を超えるデータを含むページの数が所定の値を超えた場合に、ミラーリングされている前記メモリユニットのいずれか少なくとも１組のミラーリングを解除することを決定する、
付記１から５のいずれか一項に記載の情報処理装置。
［付記７］
メモリユニットのうち、ミラーリングされている前記メモリユニットに含まれるデータを、ミラーリングされていない前記メモリユニットに移動させるページ割当手段と、
移動させたデータの複製を、前記メモリユニットと異なる記憶領域に書き込むページファイル制御手段と、
を備える情報処理装置。
［付記８］
メモリユニットのうち、ミラーリングされている前記メモリユニットのいずれか少なくとも１組のミラーリングを解除することを決定し、
ミラーリングが解除されることが決定された前記メモリユニットに含まれるデータの複製を、当該メモリユニットと異なる記憶領域に書き込み、
ミラーリングが解除されることが決定された前記メモリユニットの一方に含まれるデータを消去する、
情報処理方法。
［付記９］
ミラーリングが解除された前記メモリユニットのページが更新される場合に、当該ページに含まれるデータを、ミラーリングされている前記メモリユニットのページに割り当てる、
付記８に記載の情報処理方法。
［付記１０］
最後に更新されてから経過した時間が最も長い前記メモリユニットのミラーリングを解除することを決定する、
付記８または９に記載の情報処理方法。
［付記１１］
ミラーリングされていない前記メモリユニットが含むページに含まれるデータが最後に更新されてから経過している時間が、ミラーリングされている前記メモリユニットが含むページに含まれるデータが最後に更新されてから経過している時間よりも長いように、ページに対するデータの割当を制御する、
付記８から１０のいずれか一項に記載の情報処理方法。
［付記１２］
第１のプロセッサの制御下である前記メモリユニットのうちミラーリングされている前記メモリユニットのいずれか少なくとも１組のミラーリングを解除し、ミラーリングが解除された前記メモリユニットの片方を、第２のプロセッサの制御下にさせる、
付記８から１１のいずれか一項に記載の情報処理方法。
［付記１３］
最後に更新されてから経過している時間が所定の期間を超えるデータを含むページの数が所定の値を超えた場合に、ミラーリングされている前記メモリユニットのいずれか少なくとも１組のミラーリングを解除することを決定する、
付記８から１２のいずれか一項に記載の情報処理方法。
［付記１４］
メモリユニットのうち、ミラーリングされている前記メモリユニットに含まれるデータを、ミラーリングされていない前記メモリユニットに移動させるページ割当手段と、
移動させたデータの複製を、前記メモリユニットと異なる記憶領域に書き込むページファイル制御手段と、
を備える情報処理方法。
［付記１５］
コンピュータに、
メモリユニットのうち、ミラーリングされている前記メモリユニットのいずれか少なくとも１組のミラーリングを解除することを決定する冗長制御処理と、
ミラーリングが解除されることが決定された前記メモリユニットに含まれるデータの複製を、当該メモリユニットと異なる記憶領域に書き込むページファイル制御処理と、
ミラーリングが解除されることが決定された前記メモリユニットの一方に含まれるデータを消去するページ割当処理と、
を実行させるプログラム。
［付記１６］
前記ページ割当処理は、ミラーリングが解除された前記メモリユニットのページが更新される場合に、当該ページに含まれるデータを、ミラーリングされている前記メモリユニットのページに割り当てる、
付記１５に記載のプログラム。
［付記１７］
前記冗長制御処理は、最後に更新されてから経過した時間が最も長い前記メモリユニットのミラーリングを解除することを決定する、
付記１５または１６に記載のプログラム。
［付記１８］
前記ページ割当処理は、ミラーリングされていない前記メモリユニットが含むページに含まれるデータが最後に更新されてから経過している時間が、ミラーリングされている前記メモリユニットが含むページに含まれるデータが最後に更新されてから経過している時間よりも長いように、ページに対するデータの割当を制御する、
付記１５から１７のいずれか一項に記載のプログラム。
［付記１９］
前記冗長制御処理に、第１のプロセッサの制御下である前記メモリユニットのうちミラーリングされている前記メモリユニットのいずれか少なくとも１組のミラーリングを解除させ、ミラーリングが解除された前記メモリユニットの片方を、第２のプロセッサの制御下にさせる、構成制御処理を、コンピュータにさらに実行させる、
付記１５から１８のいずれか一項に記載のプログラム。
［付記２０］
前記冗長制御処理は、
最後に更新されてから経過している時間が所定の期間を超えるデータを含むページの数が所定の値を超えた場合に、ミラーリングされている前記メモリユニットのいずれか少なくとも１組のミラーリングを解除することを決定する、
付記１５から１９のいずれか一項に記載のプログラム。
［付記２１］
コンピュータに、
メモリユニットのうち、ミラーリングされている前記メモリユニットに含まれるデータを、ミラーリングされていない前記メモリユニットに移動させるページ割当処理と、
移動させたデータの複製を、前記メモリユニットと異なる記憶領域に書き込むページファイル制御処理と、
を実行させるプログラム。
【符号の説明】
【０１６５】
９〜１４    情報処理装置
２０、２１    メモリ割当制御部
３０    記憶領域
３１    ハードディスク
１００、１００Ａ、１００Ｂ    区画
１０１    冗長制御部
１０２    ページファイル制御部
１０３    ページ割当部
１１１    例外ハンドル部
１２１    メモリ使用量監視部
１４１〜１４２、１５１〜１５４、１５Ｎ、１６１〜１６２、１６Ｎ    メモリユニット
１７１、１７２    ページ
１８１〜１８４、１９１〜１９３    データ
２００    冗長監視部
２０１    冗長制御部
２０２    ページファイル制御部
２０３    ページ割当部
２０４    ページ属性制御部
２０５    例外監視部
２０６    更新管理部
２１０    メモリ管理テーブル
３００、３１０    ページファイル
【図１】
0006707951.tif 000002
【図２】
0006707951.tif 000003
【図３】
0006707951.tif 000004
【図４】
0006707951.tif 000005
【図５】
0006707951.tif 000006
【図６】
0006707951.tif 000007
【図７】
0006707951.tif 000008
【図８】
0006707951.tif 000009
【図９】
0006707951.tif 000010
【図１０】
0006707951.tif 000011
【図１１】
0006707951.tif 000012
【図１２】
0006707951.tif 000013
【図１３】
0006707951.tif 000014
【図１４】
0006707951.tif 000015
【図１５】
0006707951.tif 000016
【図１６】
0006707951.tif 000017
【図１７】
0006707951.tif 000018
【図１８】
0006707951.tif 000019