"データを記憶するための記憶装置を用いる情報処理装置であって、前記記憶装置よりも高速にアクセス可能なメモリと、前記メモリにおいて複数の記憶領域を論理的に設け、前記記憶領域に他の前記記憶領域を冗長記憶領域として割り当て、前記冗長記憶領域にデータのコピーを格納することが可能なメモリ管理部とを備え、前記メモリ管理部は、前記メモリの使用率が所定の閾値を超えた場合には、前記冗長記憶領域の割り当てられた1または複数の前記記憶領域について、前記メモリの使用率が前記所定の閾値以下になるまで、各前記冗長記憶領域を段階的に未使用領域とする、情報処理装置。前記メモリ管理部は、前記冗長記憶領域の割り当てられた1または複数の前記記憶領域を、前記記憶領域に異常が発生した場合における影響度に応じて複数のレベルに分類し、前記レベルに従って未使用領域とする前記冗長記憶領域を選択する、請求項1に記載の情報処理装置。前記複数のレベルは、未使用状態の記憶領域、または記憶領域のデータのコピーが前記記憶装置に格納されている記憶領域を示す第1レベルと、アプリケーションが使用中の記憶領域であって、前記アプリケーションにおいてリトライが可能なプロセスが使用する記憶領域を示す第2レベルと、アプリケーションが使用中の記憶領域であって、前記アプリケーションにおいてリトライが不可能なプロセスが使用する記憶領域を示す第3レベルと、オペレーティングシステムが使用中の記憶領域を示す第4レベルとを含む、請求項2に記載の情報処理装置。前記メモリ管理部は、前記メモリにおける複数の記憶領域の中で使用状態が遷移する対象記憶領域が、前記記憶装置に前記対象記憶領域のデータのコピーが格納される第1の使用状態へ遷移するか前記記憶装置に前記対象記憶領域のデータのコピーが格納されない第2の使用状態へ遷移するかに基づいて、前記対象記憶領域に他の前記記憶領域を冗長記憶領域として割り当てて前記対象記憶領域のデータのコピーを格納するか否かを決定する、請求項1から3のいずれかに記載の情報処理装置。前記情報処理装置は、さらに、アプリケーション単位または仮想アドレス空間の範囲の単位で、前記記憶領域に冗長記憶領域を割り当てるか否かの指示をユーザから受け付けるための冗長化有無受け付け部を備える、請求項1から4のいずれかに記載の情報処理装置。データを記憶するための記憶装置を用い、前記記憶装置よりも高速にアクセス可能なメモリを備える情報処理装置におけるメモリ管理方法であって、前記メモリにおいて複数の記憶領域を論理的に設けるステップと、前記記憶領域に他の前記記憶領域を冗長記憶領域として割り当て、前記冗長記憶領域にデータのコピーを格納するステップと、前記メモリの使用率が所定の閾値を超えた場合には、前記冗長記憶領域の割り当てられた1または複数の前記記憶領域について、前記メモリの使用率が前記所定の閾値以下になるまで、各前記冗長記憶領域を段階的に未使用領域とするステップとを含む、メモリ管理方法。データを記憶するための記憶装置を用い、前記記憶装置よりも高速にアクセス可能なメモリを備える情報処理装置におけるメモリ管理プログラムであって、コンピュータに、前記メモリにおいて複数の記憶領域を論理的に設けるステップと、前記記憶領域に他の前記記憶領域を冗長記憶領域として割り当て、前記冗長記憶領域にデータのコピーを格納するステップと、前記メモリの使用率が所定の閾値を超えた場合には、前記冗長記憶領域の割り当てられた1または複数の前記記憶領域について、前記メモリの使用率が前記所定の閾値以下になるまで、各前記冗長記憶領域を段階的に未使用領域とするステップとを実行させる、メモリ管理プログラム。ところで、一般に既存のOSが提供するメモリ管理機構は、様々なワークロードにおけるメモリ割り当ての要求に柔軟に対処するために、高度にチューニングされている。このため、記憶領域の冗長化を行なうと、このような柔軟性を維持することができなくなる場合がある。たとえば、大きなサイズの記憶領域を動的に割り当てる際に、物理メモリのサイズを超えたサイズのメモリを割り当てようとしたり、メモリの使用状況が予測不可能になったりする可能性がある。このような問題を解決するために、たとえば、特許文献5特開2009-199478号公報には、以下のような技術が開示されている。すなわち、OSは、現在使用しているメモリ使用率が、計算機に格納してあるメモリ使用率の閾値を超えたことを検出したとき、F/Wファームウェアサービスルーチンコールを用いて、メモリ構成変更指示をF/Wに通報する。F/Wは、メモリ構成変更指示をOSから受けると、計算機に格納してある管理情報にアクセスし、自動メモリミラーリング制御機能の情報を受信する。自動メモリミラーリング制御機能が無効であるとき、F/Wは何も行なわず、OSに正常値を返す。自動メモリミラーリング制御機能の設定が有効の場合、F/Wは、メモリ構成がミラーリング状態であった場合には、メモリミラーリングを解除する領域のチェックを行なう。そして、ミッションクリティカルな用途で使用されているメモリ領域ならば、ミラーリングを解除しない。このような特許文献5に記載の技術を超えて、記憶領域の冗長化およびシステムの安定化の両立を図る技術が望まれる。この発明は、上述の課題を解決するためになされたもので、その目的は、記憶領域の冗長化およびシステムの安定化の両立を図ることが可能な情報処理装置、メモリ管理方法、およびメモリ管理プログラムを提供することである。上記課題を解決するために、この発明のある局面に係わる情報処理装置は、データを記憶するための記憶装置を用いる情報処理装置であって、上記記憶装置よりも高速にアクセス可能なメモリと、上記メモリにおいて複数の記憶領域を論理的に設け、上記記憶領域に他の上記記憶領域を冗長記憶領域として割り当て、上記冗長記憶領域にデータのコピーを格納することが可能なメモリ管理部とを備え、上記メモリ管理部は、上記メモリの使用率が所定の閾値を超えた場合には、上記冗長記憶領域の割り当てられた1または複数の上記記憶領域について、上記メモリの使用率が上記所定の閾値以下になるまで、各上記冗長記憶領域を段階的に未使用領域とする。上記課題を解決するために、この発明のある局面に係わるメモリ管理方法は、データを記憶するための記憶装置を用い、上記記憶装置よりも高速にアクセス可能なメモリを備える情報処理装置におけるメモリ管理方法であって、上記メモリにおいて複数の記憶領域を論理的に設けるステップと、上記記憶領域に他の上記記憶領域を冗長記憶領域として割り当て、上記冗長記憶領域にデータのコピーを格納するステップと、上記メモリの使用率が所定の閾値を超えた場合には、上記冗長記憶領域の割り当てられた1または複数の上記記憶領域について、上記メモリの使用率が上記所定の閾値以下になるまで、各上記冗長記憶領域を段階的に未使用領域とするステップとを含む。上記課題を解決するために、この発明のある局面に係わるメモリ管理プログラムは、データを記憶するための記憶装置を用い、上記記憶装置よりも高速にアクセス可能なメモリを備える情報処理装置におけるメモリ管理プログラムであって、コンピュータに、上記メモリにおいて複数の記憶領域を論理的に設けるステップと、上記記憶領域に他の上記記憶領域を冗長記憶領域として割り当て、上記冗長記憶領域にデータのコピーを格納するステップと、上記メモリの使用率が所定の閾値を超えた場合には、上記冗長記憶領域の割り当てられた1または複数の上記記憶領域について、上記メモリの使用率が上記所定の閾値以下になるまで、各上記冗長記憶領域を段階的に未使用領域とするステップとを実行させる。本発明によれば、記憶領域の冗長化およびシステムの安定化の両立を図ることができる。以下、本発明の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。[装置構成]本発明の実施の形態に係る情報処理装置は、典型的には、汎用的なアーキテクチャを有するコンピュータを基本構造としており、あらかじめインストールされたプログラムを実行することで、後述するような各種機能を提供する。一般的に、このようなプログラムは、フレキシブルディスクFlexibleDiskおよびCD-ROMCompactDiskReadOnlyMemoryなどの記録媒体に格納されて、あるいはネットワークなどを介して流通する。このような汎用的なコンピュータを利用する場合には、本発明の実施の形態に係る機能を提供するためのアプリケーションに加えて、コンピュータの基本的な機能を提供するためのOSOperatingSystemがインストールされていてもよい。この場合には、本発明の実施の形態に係るプログラムは、OSの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の順序および/またはタイミングで呼出して処理を実行するものであってもよい。すなわち、本発明の実施の形態に係るプログラム自体は、上記のようなモジュールを含んでおらず、OSと協働して処理が実行される場合もある。したがって、本発明の実施の形態に係るプログラムとしては、上記のようなモジュールを含まない形態であってもよい。さらに、本発明の実施の形態に係るプログラムは、OS等の他のプログラムの一部に組み込まれて提供されるものであってもよい。この場合でも、本発明の実施の形態に係るプログラム自体は、上記のような組み込み先の他のプログラムが有するモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本発明の実施の形態に係るプログラムとしては、このような他のプログラムに組み込まれた形態であってもよい。なお、代替的に、プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。図1は、本発明の実施の形態に係る情報処理装置の概略構成図である。図1を参照して、情報処理装置201は、携帯情報端末、パーソナルコンピュータおよびサーバ等の情報処理装置であり、演算処理部であるCPUCentralProcessingUnit101と、メインメモリ102およびハードディスク103と、入力インタフェース104と、表示コントローラ105と、データリーダ/ライタ106と、通信インタフェース107とを備える。これらの各部は、バス121を介して互いにデータ通信可能に接続される。CPU101は、ハードディスク103に格納されたプログラムコードをメインメモリ102に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ102は、典型的には、DRAMDynamicRandomAccessMemoryなどの揮発性の記憶装置であり、ハードディスク103から読み出されたプログラムに加えて、各種の演算処理結果を示すデータなどを保持する。また、ハードディスク103は不揮発性の磁気記憶装置であり、CPU101で実行されるプログラムに加えて、各種設定値などが格納される。このハードディスク103にインストールされるプログラムは、後述するように、記録媒体111に格納された状態で流通する。なお、ハードディスク103に加えて、あるいはハードディスク103に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。入力インタフェース104は、CPU101とキーボード108、マウス109および図示しないタッチパネルなどの入力部との間のデータ伝送を仲介する。すなわち、入力インタフェース104は、ユーザが入力部を操作することで与えられる操作指令などの外部からの入力を受け付ける。表示コントローラ105は、表示部の典型例であるディスプレイ110と接続され、ディスプレイ110での表示を制御する。すなわち、表示コントローラ105は、CPU101による画像処理の結果などをユーザに対して表示する。ディスプレイ110は、たとえばLCDLiquidCrystalDisplayまたはCRTCathodeRayTubeである。データリーダ/ライタ106は、CPU101と記録媒体111の間のデータ伝送を仲介する。すなわち、記録媒体111は、情報処理装置201で実行されるプログラムなどが格納された状態で流通し、データリーダ/ライタ106は、この記録媒体111からプログラムを読み出す。また、データリーダ/ライタ106は、CPU101の内部指令に応答して、情報処理装置201における処理結果などを記録媒体111へ書き込む。なお、記録媒体111は、たとえば、CFCompactFlashおよびSDSecureDigitalなどの汎用的な半導体記憶デバイス、フレキシブルディスクFlexibleDiskなどの磁気記憶媒体、またはCD-ROMCompactDiskReadOnlyMemoryなどの光学記憶媒体である。通信インタフェース107は、CPU101とパーソナルコンピュータおよびサーバ装置などの間のデータ伝送を仲介する。通信インタフェース107は、典型的には、イーサネット登録商標またはUSBUniversalSerialBusの通信機能を有する。なお、記録媒体111に格納されたプログラムを情報処理装置201にインストールする形態に代えて、通信インタフェース107を介して配信サーバなどからダウンロードしたプログラムを情報処理装置201にインストールしてもよい。また、情報処理装置201には、必要に応じてプリンタなどの他の出力装置が接続されてもよい。[制御構造]次に、情報処理装置201における各種機能を提供するための制御構造について説明する。図2は、本発明の実施の形態に係る情報処理装置が提供する制御構造を示すブロック図である。図2に示す情報処理装置201の各ブロックは、ハードディスク103に格納されたプログラムコードなどをメインメモリ102に展開して、CPU101に実行させることで提供される。なお、図2に示すモジュールの一部もしくは全部がハードウェアに実装されているファームウェアによって提供される場合もある。あるいは、図2に示す制御構造の一部もしくは全部を専用ハードウェアおよび/または配線回路によって実現してもよい。図2を参照して、情報処理装置201は、その制御構造として、メモリ管理部151と、冗長化有無受付部154とを備える。メモリ管理部151は、キャッシュ領域管理部152と、冗長領域管理部153とを含む。この制御構造は、たとえばOSの機能の一部として提供される。メモリ管理部151は、メインメモリ102を管理する。より詳細には、キャッシュ領域管理部152は、メインメモリ102に対する読み書き、割り当ておよび解放等の処理を制御する。キャッシュ領域管理部152は、メインメモリ102に対する読み書き、割り当ておよび解放等の処理を契機として、冗長化の要不要を判定する処理を行ない、当該判定結果に基づいて、冗長領域管理部153に対して冗長化開始処理および冗長化終了処理を要求するC11。冗長領域管理部153は、キャッシュ領域管理部152からの要求C11に応じて冗長化のオンオフを実行し、冗長領域の情報を管理する。物理メモリであるメインメモリ102は、ハードディスク103よりも高速にアクセス可能である。メインメモリ102は、論理的に設けられた連続する複数の記憶領域を有する。すなわち、メモリ管理部151は、メインメモリ102において複数のページを論理的に設ける。OSは、この記憶領域を単位としてメインメモリ102を管理する。この単位をページと呼ぶ。ページ管理データ201~206は、メインメモリ102上の固定サイズ領域301~306をそれぞれ管理するためのデータである。各ページ管理データは、ページが未使用フリーであることを示すフリーフラグと、ページがキャッシュ領域管理部152に繋がれていることを示すキャッシュフラグと、キャッシュがハードディスク103などのストレージにバックアップを持たないことを示すダーティフラグと、ページが冗長ページであることを示す冗長化フラグとを含む。図3は、フラグとページ状態の関係を示す図である。図3の一番右の列は、ページを冗長化する必要の有無を示している。図3を参照して、ページが未使用ページである場合には、当該ページを冗長化する必要は無く、フリーフラグがオンに設定され、キャッシュフラグは無効であり、ダーティフラグは無効である。また、ページがクリーンページ、すなわちアプリケーションが使用し、かつハードディスク103にデータのコピーが存在する場合には、当該ページを冗長化する必要は無く、フリーフラグがオフに設定され、キャッシュフラグがオンに設定され、ダーティフラグがオフに設定される。また、ページがダーティページ、すなわちアプリケーションが使用し、かつハードディスク103にデータのコピーが存在しない場合には、当該ページを冗長化する必要が有り、フリーフラグがオフに設定され、キャッシュフラグがオンに設定され、ダーティフラグがオンに設定される。また、ページがOS使用ページ、すなわちOSが使用し、かつハードディスク103にデータのコピーが存在しない場合には、当該ページを冗長化する必要が有り、フリーフラグがオフに設定され、キャッシュフラグがオフに設定され、ダーティフラグは無効である。本発明の実施の形態では、ダーティページおよびOS使用ページに対してのみ冗長化を行ない、他のページに対しては冗長化を行なわない。その理由は、ダーティページおよびOS使用ページは、他の場所にデータのコピーを持たないので、冗長化しなければエラー発生時にデータを修復することができないからである。[動作]次に、本発明の実施の形態に係る情報処理装置の動作について図面を用いて説明する。本発明の実施の形態では、情報処理装置201を動作させることによって、本発明の実施の形態に係るメモリ管理方法が実施される。よって、本発明の実施の形態に係るメモリ管理方法の説明は、以下の情報処理装置201の動作説明に代える。なお、以下の説明においては、適宜図2を参照する。図4は、図3に示す4種類のページ状態間の遷移を示す図である。図4を参照して、アプリケーションがハードディスク103からデータファイルを読み出して未使用ページ501に当該データファイルを格納すると、未使用ページ501はクリーンページ502に遷移するTR51。アプリケーションがクリーンページ502を解放すると、クリーンページ502は未使用ページ501に遷移するTR52。また、アプリケーションがクリーンページ502にデータを書き込むと、クリーンページ502はダーティページ503に遷移するTR53。アプリケーションがメインメモリ102とハードディスク103との同期をとると、ダーティページ503はクリーンページ502に遷移するTR54。また、アプリケーションが未使用ページ501を動的ページとして割り当てると、未使用ページ501はダーティページ503に遷移するTR55。アプリケーションがダーティページ503を解放すると、ダーティページ503は未使用ページ501に遷移するTR56。また、OSが未使用ページ501を自身の作業用として割り当てると、未使用ページ501はOS使用ページ504に遷移するTR57。OSがOS使用ページ504を解放すると、OS使用ページ504は未使用ページ501に遷移するTR58。図5は、本発明の実施の形態に係る情報処理装置がメモリ管理処理を行なう際の動作手順を示すフローチャートである。図5を参照して、メモリ管理部151は、ページ状態すなわちページの使用状態の遷移が指示されるまで待機しS10でNO、使用状態の遷移が指示されるとS10でYES、当該遷移が冗長化の不要な使用状態から冗長化の必要な使用状態への遷移である場合にはS12でYES、冗長化開始処理を行ないS14、その後、次の使用状態の遷移が指示されるまで待機するS10。また、メモリ管理部151は、当該遷移が冗長化の必要な使用状態から冗長化の不要な使用状態への遷移である場合にはS12でNO、S16でYES、冗長化終了処理を行ないS18、その後、次の使用状態の遷移が指示されるまで待機するS10。また、メモリ管理部151は、当該ページの冗長化の必要性が変わらない場合にはS12でNO、S16でNO、次の使用状態の遷移が指示されるまで待機するS10。具体的には、使用状態の遷移が指示されたページ以下、対象ページと称する。が、冗長化が不要な未使用ページ501またはクリーンページ502から、冗長化が必要なダーティページ503またはOS使用ページ504へ遷移するときTR53、TR55、TR57、キャッシュ領域管理部152は、冗長領域管理部153へ冗長化開始指示を送ることにより、冗長化開始処理を行なう。冗長領域管理部153は、キャッシュ領域管理部152から冗長化開始指示を受けて、冗長化開始指示の示す対象ページを冗長化する。一方、対象ページが冗長化の必要なページ状態から不要なページ状態へ遷移するときTR54、TR56、TR58、キャッシュ領域管理部152は、冗長領域管理部153へ冗長化終了指示を送ることにより、冗長化終了処理を行なう。冗長領域管理部153は、キャッシュ領域管理部152から冗長化終了指示を受けて、冗長化終了指示の示す対象ページを非冗長化する。次に、本発明の実施の形態に係る情報処理装置の冗長化開始処理および冗長化終了処理について説明する。ここでは、図2に示す一例を参照しながら説明する。図6は、本発明の実施の形態に係る情報処理装置が冗長化開始処理を行なう際の動作手順を示すフローチャートである。図6を参照して、キャッシュ領域管理部152は、冗長化の不要な使用状態から必要な使用状態へ遷移するページ固定サイズ領域303,305を冗長領域管理部153に関連付けるS601、図2のC14,C16。ページ303,305を管理するためにそれぞれページ管理データ203,205が用いられる。次に、キャッシュ領域管理部152は、ページ303,305に対してそれぞれページ304,306を冗長ページとして割り当てるS602。次に、キャッシュ領域管理部152は、冗長ページ304,306を冗長領域管理部153に関連付けるS603、図2のC15,C17。冗長ページ304,306を管理するためにそれぞれページ管理データ204,206が用いられる。次に、キャッシュ領域管理部152は、冗長領域管理部153に冗長化開始を要求するS604。次に、冗長領域管理部153は、ページ管理データ204,206の冗長化フラグをオンに設定するS605。次に、OSまたはアプリケーションにより、ページ303,305の使用状態の遷移処理が実行されるS606、図4のTR53,TR55,TR57。図7は、本発明の実施の形態に係る情報処理装置が冗長化終了処理を行なう際の動作手順を示すフローチャートである。図7を参照して、OSまたはアプリケーションにより、ページ303,305を冗長化の必要な使用状態から不要な使用状態へ遷移する処理が実行されるS611、図4のTR54,TR56,TR58。次に、冗長領域管理部153は、ページ管理データ204,206の冗長化フラグをオフに設定するS612。次に、キャッシュ領域管理部152は、冗長領域管理部153に冗長化終了を要求するS613。次に、キャッシュ領域管理部152は、冗長ページ304,306と冗長領域管理部153との関連を消去するS614、図2のC15,C17。次に、キャッシュ領域管理部152は、冗長ページ304,306を解放して未使用ページとするS615。次に、キャッシュ領域管理部152は、ページ303,305と冗長領域管理部153との関連を消去するS616、図2のC14,C16。ステップS601~S605およびステップS612~S616の処理により、効率の良い冗長化が可能となる。また、上記ステップS604およびS613の処理の詳細は、メモリ二重化の実装内容に依存する。メモリ二重化の手段として、たとえば特許文献1に記載されている二重化手段を用いた場合には、ステップS604およびS613の処理は二重化のオンオフを制御するためのステータスレジスタに値を書き込む処理に相当する。このような二重化手段により二重化をオンにした場合、CPU101およびメインメモリ102間のデータ転送は、二重化されたページの両方に対して同期的に行なわれる。要約すれば、メモリ管理部151は、冗長化の不要な使用状態から冗長化の必要な使用状態へ対象ページが遷移する場合には、対象ページに他のページを冗長ページとして割り当てて対象ページのデータのコピーを格納し、冗長化の必要な使用状態から冗長化の不要な使用状態へ対象ページが遷移する場合には、対象ページに対する冗長ページの割り当てを解除する。また、メモリ管理部151は、対象ページが冗長化の不要な使用状態から冗長化の必要な使用状態へ遷移する前に対象ページに対する冗長ページの割り当てを行ない、対象ページが冗長化の必要な使用状態から冗長化の不要な使用状態へ遷移した後に対象ページに対する冗長ページの割り当ての解除を行なう。すなわち、冗長化開始処理では、ページ遷移処理S606を行なう前に冗長化のための処理S601~S605を行なう。一方、冗長化終了処理では、ページ遷移処理S611の後に冗長化のための処理S612~S616を行なう。このような方法により、ページ状態の遷移途中でメモリエラーが発生した場合でも、エラーからの復旧が可能となる。次に、メモリエラー発生時のデータ復旧処理について説明する。図8は、本発明の実施の形態に係る情報処理装置がデータ復旧処理を行なう際の動作手順を示すフローチャートである。要約すれば、メモリ管理部151は、冗長ページが割り当てられた対象ページにおいてエラーが発生した場合には、対象ページの使用を停止して対応の冗長ページを対象ページとして新たに設定する。そして、メモリ管理部151は、メインメモリ102における複数のページのうち、エラーの発生した対象ページおよび新たに設定した対象ページ以外のページを新たに冗長ページとして割り当てる。そして、メモリ管理部151は、新たに割り当てられた冗長ページに、新たに設定された対象ページのデータのコピーを格納する。図8を参照して、データ復旧処理は、メモリエラー発生時に情報処理装置201におけるハードウェアが発行するマシンチェック割り込みS701を発端として、エラーの発生したエラーページの閉じ込め処理S702を行った後に行なわれる。ここで、エラーページの閉じ込め処理とは、エラーページにハードウェアエラーが起こったことを示すフラグをオンに設定する処理である。この処理以降、当該エラーページへのアクセスは拒否される。データ復旧処理S703~S709では、エラーページの種類図3に示した4種類に応じて、以下のように処理の分岐がなされる。エラーページが未使用ページの場合には、エラーによりデータが失われないため、エラーページの閉じ込め処理を行なうだけで、安全に処理を継続することができるS709。エラーページがクリーンページの場合、メインメモリ102において冗長化はされていないが、ハードディスク103等のストレージにデータのコピーが存在する。このため、メモリ管理部151は、ハードディスク103からコピーデータを読み出し、新しく割り当てたページに格納するS704。これにより、データの整合性が保たれ、安全に処理を継続することができるS709。エラーページがダーティページまたはOS使用ページの場合、まず、メモリ管理部151は、冗長領域管理部153に冗長ページの位置を問い合わせるS705。次に、メモリ管理部151は、エラーページの管理データを冗長ページの管理データにコピーするS706。さらに、ユーザ空間のアプリケーションをすべて検査し、エラーページへの参照をすべて冗長ページへの参照に切り替えるS707。最後に、メモリ管理部151は、冗長ページに対して改めて冗長化を行ないS708、フェイルオーバー処理を完了する。これらの処理により、データの整合性を保ちつつエラーを無害化できるため、安全に処理を継続することができるS709。ステップS705~S708の処理により、メモリ冗長化によるデータ復旧が可能となる。ここで、本発明の実施の形態に係る情報処理装置では、メモリエラー発生時にデータ修復が可能か否かに基づいて冗長化の有無を判断するOSのメモリ冗長化機能に加えて、以下の2つの機能Aおよび機能Bが実装される。すなわち、アプリケーション単位、あるいは仮想アドレス空間の範囲単位で、ユーザからのメモリ冗長化の有無の指示を受け付ける機能Aと、エラー発生時の影響度に基づいてページを分類し、メモリ使用率を監視して、メモリ使用率が閾値を超えた場合に、当該影響度の小さいページから段階的にメモリ冗長化を解除する機能Bとが実装される。まず、ユーザからの冗長化有無の指示を受け付ける機能Aについて説明する。冗長化有無受付部154は、アプリケーション単位または仮想アドレス空間の範囲の単位で、各ページに冗長ページを割り当てるか否かの指示をユーザから受け付ける。具体的な実現方法としては、たとえば、プロセスの管理データあるいは仮想アドレス空間の管理データに、冗長化の有無を指定するための冗長化有無フラグを設け、ユーザ空間から当該フラグのオンオフを設定可能にする。図9は、本発明の実施の形態に係る情報処理装置がメモリ管理処理を行なう際の動作手順の他の例を示すフローチャートである。図9を参照して、メモリ管理部151は、ページ状態すなわちページの使用状態の遷移が指示されるまで待機しS10でNO、使用状態の遷移が指示されるとS10でYES、当該遷移が冗長化の不要な使用状態から冗長化の必要な使用状態への遷移である場合にはS12でYES、冗長化有無フラグをチェックする。そして、メモリ管理部151は、冗長化有無フラグがオンされている場合にはS19でYES、冗長化開始処理を行ないS14、その後、次の使用状態の遷移が指示されるまで待機するS10。一方、メモリ管理部151は、冗長化有無フラグがオフされている場合にはS19でNO、冗長化開始処理を行なわず、次の使用状態の遷移が指示されるまで待機するS10。また、メモリ管理部151は、当該遷移が冗長化の必要な使用状態から冗長化の不要な使用状態への遷移である場合にはS12でNO、S16でYES、冗長化終了処理を行ないS18、その後、次の使用状態の遷移が指示されるまで待機するS10。また、メモリ管理部151は、当該ページの冗長化の必要性が変わらない場合にはS12でNO、S16でNO、次の使用状態の遷移が指示されるまで待機するS10。次に、メモリ使用率に基づく自律的な冗長化解除処理を行なう機能Bについて説明する。メモリ管理部151は、メインメモリ102の使用率が所定の閾値を超えた場合には、冗長ページの割り当てられた1または複数のページについて、メインメモリ102の使用率が所定の閾値以下になるまで、各冗長ページを段階的に未使用領域とする。たとえば、メモリ管理部151は、冗長ページの割り当てられた1または複数のページを、ページに異常が発生した場合における影響度に応じて複数のレベルに分類し、レベルに従って未使用領域とする冗長ページを選択する。具体的には、キャッシュ領域管理部152は、メモリ使用率を管理するために、全ページ数カウンタおよび使用中ページ数カウンタを有する。使用中ページ数カウンタのカウント値は、クリーンページ、ダーティページ、OS使用ページ、および冗長ページの合計を示す。また、キャッシュ領域管理ユニット102は、全ページ数カウンタのカウント値に対する使用中ページ数カウンタのカウント値の比率をメモリ使用率として算出する。冗長領域管理部153は、メモリエラー発生時のインパクトすなわち影響度を各ページに付与する。この影響度は、冗長化を行なわない仮定の下でメモリエラーが発生した場合に、情報処理装置201の提供するシステムがメモリエラーによって受ける影響の大きさにより複数の段階に分けられる。たとえば、情報処理装置201では、未使用状態のページ、またはページのデータのコピーがハードディスク103に格納されているページを示すレベル1と、アプリケーションが使用中のページであって、アプリケーションにおいてリトライが可能なプロセスが使用するページを示すレベル2と、アプリケーションが使用中のページであって、アプリケーションにおいてリトライが不可能なプロセスが使用するページを示すレベル3と、オペレーティングシステムが使用中のページを示すレベル4とが設けられる。より具体的には、各レベルを以下のように定義する。レベル0:影響なし未使用ページおよびクリーンページは、冗長化を行なわなくてもメモリエラーから復旧可能である。そこで、これらのページを、メモリエラーに対して影響なしであると定義する。レベル1:リトライ可能アプリケーションの部分的な処理を担うプロセスの中には、処理が失敗してもリトライできるものがある。このようなプロセスが使用するページにおいてメモリエラーが発生した場合には、当該プロセスの親プロセスの段階から処理をリトライし、当該プロセスを再起動することにより処理を継続できる。このようなプロセスが使用するページを、メモリエラーに対してリトライ可能なページであると定義する。レベル2:アプリケーションダウンアプリケーションの中核となるプロセスが使用するページにおいてメモリエラーが発生した場合には、当該アプリケーションに関わるすべてのプロセスがエラーの影響を受ける。このため、システム全体のダウンは避けることができるものの、当該アプリケーション全体の再起動が必要である。このようなプロセスが使用するページを、メモリエラーに対してアプリケーションダウンなページであると定義する。レベル3:システムダウンOSが使用するページにおいてメモリエラーが発生した場合には、システム全体がエラーの影響を受けるため、システムの再起動が必要である。このようなページを、メモリエラーに対してシステムダウンなページであると定義する。冗長領域管理部153は、上記4つのレベルのうち、レベル1~レベル3に相当するページを管理するために、各レベルに対応するリトライ可能ページリスト411、アプリケーションダウンページリスト412およびシステムダウンページリスト413を設け、冗長化が行なわれているページを、該当するレベルのリストに繋げる。図10は、本発明の実施の形態に係る情報処理装置が冗長化解除処理を行なう際の動作手順を定めたフローチャートである。このフローチャートが示すメモリ冗長化解除ロジックは、たとえばカーネルスレッドを用いて実現することができる。図10を参照して、メモリ管理部151が提供するメモリ冗長化解除ロジックは、普段はスリープしておりS21、一定時間が経過するたびに起床してS22、所定の処理S23~S27を行ない、再びスリープ状態に戻る、というサイクルを繰り返す。メモリ冗長化解除ロジックは、起床時の処理として、まず、メモリ使用率があらかじめ設定された閾値を超えるか否かをチェックするS23。次に、メモリ冗長化解除ロジックは、メモリ使用率が閾値を超える場合にはS23でYES、リトライ可能ページリスト411に1つ以上のページが繋がれているか否かをチェックするS24。次に、メモリ冗長化解除ロジックは、リトライ可能ページリスト411にページが繋がれている場合にはS24でYES、リトライ可能ページリスト411の先頭にあるページの冗長化を解除するS27。一方、メモリ冗長化解除ロジックは、リトライ可能ページリスト411にページが繋がれていない場合にはS24でNO、アプリケーションダウンページリスト412に1つ以上のページが繋がれているか否かをチェックするS25。次に、メモリ冗長化解除ロジックは、アプリケーションダウンページリスト412にページが繋がれている場合にはS25でYES、アプリケーションダウンページリスト412の先頭にあるページの冗長化を解除するS27。一方、メモリ冗長化解除ロジックは、アプリケーションダウンページリスト412にページが繋がれていない場合にはS25でNO、システムダウンページリスト413に1つ以上のページが繋がれているか否かをチェックするS26。次に、メモリ冗長化解除ロジックは、システムダウンページリスト413にページが繋がれている場合にはS26でYES、システムダウンページリスト413の先頭にあるページの冗長化を解除するS27。一方、メモリ冗長化解除ロジックは、システムダウンページリスト413にページが繋がれていない場合にはS26でNO、起床時の処理を終了し、スリープ状態へ戻るS21。また、メモリ冗長化解除ロジックは、リトライ可能ページリスト411、アプリケーションダウンページリスト412およびシステムダウンページリスト413のいずれかのリストにおいてページの冗長化解除処理が行なわれた場合にはS27、再びメモリ使用率のチェックを行ないS23、冗長化解除処理を継続する。このように、メモリ使用率が閾値を超えたときにメモリ冗長化を解除することにより、メインメモリ102の空き領域を確保し、メモリ枯渇を予防することができる。そして、メモリエラー発生時の影響度が小さいページから順番に冗長化を解除していくことにより、メモリエラー発生時の影響を小さく抑えるとともに、メモリ使用効率を高めることができる。ところで、記憶領域の冗長化を行なうと、メモリ管理のチューニングを壊してしまい、柔軟性を維持することができなくなる場合がある、という問題点があった。そして、特許文献5に記載の技術を超えて、記憶領域の冗長化およびシステムの安定化の両立を図る技術が望まれている。これに対して、本発明の実施の形態に係る情報処理装置201では、メモリ管理部151は、メインメモリ102において複数のページを論理的に設け、各ページに他のページを冗長ページとして割り当て、冗長ページにデータのコピーを格納することが可能である。そして、メモリ管理部151は、メインメモリ102の使用率が所定の閾値を超えた場合には、冗長ページの割り当てられた1または複数のページについて、メインメモリ102の使用率が所定の閾値以下になるまで、各冗長ページを段階的に未使用領域とする。すなわち、メモリ使用率を監視して、メモリ高負荷時に冗長記憶領域を減らすフィードバックをかけることにより、メモリ冗長化を段階的に解除し、冗長化の程度を抑える。このような構成により、記憶領域の冗長化を最大限に行ないながら、システムの安定化を図ることができる。すなわち、本発明の実施の形態に係る情報処理装置における各構成要素のうち、メインメモリ102およびメモリ管理部151からなる最小構成により、記憶領域の冗長化およびシステムの安定化の両立を図る、という本発明の目的を達成することが可能となる。また、本発明の実施の形態に係る情報処理装置では、メモリ管理部151は、冗長ページの割り当てられた1または複数のページを、ページに異常が発生した場合における影響度に応じて複数のレベルに分類し、各レベルに従って未使用領域とする冗長ページを選択する。すなわち、メモリ冗長化を解除する際に、記憶領域においてエラーが発生した時のインパクトが小さいものから順番に解除していき、冗長化を段階的に解除する。このように、ある記憶領域にエラーが発生したときの影響を考慮して冗長化の有無の判断を行なうことにより、メモリエラー対策のためのメモリ冗長化の範囲を適切に制限することができ、メモリの高可用性および高い使用効率を両立させることができる。また、本発明の実施の形態に係る情報処理装置では、複数のレベルは、未使用状態のページ、またはページのデータのコピーがハードディスク103に格納されているページを示すレベル1と、アプリケーションが使用中のページであって、アプリケーションにおいてリトライが可能なプロセスが使用するページを示すレベル2と、アプリケーションが使用中のページであって、アプリケーションにおいてリトライが不可能なプロセスが使用するページを示すレベル3と、オペレーティングシステムが使用中のページを示すレベル4とを含む。このような構成により、各記憶領域をエラー発生時の影響度に応じて適切にレベル分けし、記憶領域の適切な冗長化およびシステムのさらなる安定化を図ることができる。ところで、OSOperatingSystemおよびアプリケーション等のプログラムが使用する内部変数等の内部データの重要度は時々刻々と変化する場合が多い。しかしながら、特許文献1に記載の技術では、データの重要度の具体的な判定基準、すなわち冗長化の必要性を判断するための具体的な基準が与えられていないため、上記のような重要度の変化するデータについて効率の良い冗長化を実現することが困難である。また、特許文献2に記載の技術では、単にディスクキャッシュメモリの内容をディスクに格納するだけであるため、上記のような重要度の変化するデータを冗長化することには適していない。また、特許文献3および特許文献4に記載のエラーの閉じ込め機能では、エラーが発生したメモリ位置にあるデータを、ストレージから読み出すなどの方法で修復できる場合にはシステムを正常に継続できる。その一方で、当該データを修復できない場合にはシステムを正常に継続することができず、アプリケーションあるいはシステムがダウンしてしまう、という問題点があった。これに対して、本発明の実施の形態に係る情報処理装置では、メモリ管理部151は、メインメモリ102における複数のページの中で使用状態が遷移する対象ページが、ハードディスク103に対象ページのデータのコピーが格納される第1の使用状態へ遷移するかハードディスク103に対象ページのデータのコピーが格納されない第2の使用状態へ遷移するかに基づいて、対象ページに他のページを冗長ページとして割り当て、対象ページのデータのコピーを格納するか否かを決定する。このような構成により、データの重要度の具体的な判定基準、すなわち冗長化の必要性を判断するための具体的な基準に従って、OS等がプログラムの状態すなわちページの状態に応じて冗長化を行なうか否かを自律的に決定することができる。したがって、重要度の変化するデータについて効率の良い冗長化を実現することが可能となる。すなわち、本発明の実施の形態に係る情報処理装置では、メモリ上でハードウェアのエラーが発生したときに、特許文献1~5に記載の技術等の従来の方法よりも効率良く高可用性を実現することが可能となる。すなわち、エラーにより失われたデータを修復する手段がない場合のみ、データの冗長化を行なう。これにより、従来の方法ではデータを復旧できなかった場合でも、冗長化領域へフェイルオーバーすることにより、システムを正常に継続させることができる。さらに、冗長化のために用いるメモリ領域を小さく抑えることができるため、メモリの使用効率を高めることができる。このような効果を実現するためには、メモリ上の各データについて、従来の方法でデータを修復できるか否かを判断し、修復不可能なメモリ領域のみ部分的に冗長化する必要がある。本発明の実施の形態では、一例として、OSのメモリ管理機能に対して、動的に冗長化のオンオフを切り替えるための仕組みを追加することにより、上記効果を実現する。また、本発明の実施の形態に係る情報処理装置は、メモリ冗長化の範囲を動的に変更するメモリ管理機能を実現しており、メモリ冗長化の範囲を、メモリエラーに対するデータの修復可能性に応じて動的に制御する。言い換えれば、エラー発生時のデータの修復可能性に基づいてメモリ冗長化の範囲を判断し、メモリ冗長化の範囲を動的に制御する。ここで、ウェブサーバまたはファイルサーバとの間で大きなサイズのデータをやり取りする場合には、メモリエラーに対してメモリ冗長化で対処するよりも、単にメモリエラーの発生したプロセスを再起動し、リトライすることで対処した方がよい場合がある。これに対して、本発明の実施の形態に係る情報処理装置では、冗長化有無受付部154は、アプリケーション単位または仮想アドレス空間の範囲の単位で、各ページに冗長ページを割り当てるか否かの指示をユーザから受け付ける。これにより、ユーザアプリケーション単位でメモリ冗長化の有無を指定することができる。すなわち、システム側で決定される条件に基づくメモリ冗長化の制御手段に加えて、ユーザのアプリケーションで決定できる条件に基づくメモリ冗長化の制御手段を提供することができるため、利用者のニーズに合ったメモリ管理を実現することができる。なお、本発明の実施の形態では、情報処理装置201がハードディスク103を備える構成であるとしたが、これに限定するものではなく、情報処理装置201の外部にハードディスク103が設けられる構成であってもよい。上記実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記説明ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。上記実施の形態の一部または全部は以下の付記のようにも記載されうるが、本発明の範囲は、以下の付記に限定されるものではない。[付記1]データを記憶するための記憶装置を用いる情報処理装置であって、前記記憶装置よりも高速にアクセス可能なメモリと、前記メモリにおいて複数の記憶領域を論理的に設け、前記記憶領域に他の前記記憶領域を冗長記憶領域として割り当て、前記冗長記憶領域にデータのコピーを格納することが可能なメモリ管理部とを備え、前記メモリ管理部は、前記メモリの使用率が所定の閾値を超えた場合には、前記冗長記憶領域の割り当てられた1または複数の前記記憶領域について、前記メモリの使用率が前記所定の閾値以下になるまで、各前記冗長記憶領域を段階的に未使用領域とする、情報処理装置。[付記2]前記メモリ管理部は、前記冗長記憶領域の割り当てられた1または複数の前記記憶領域を、前記記憶領域に異常が発生した場合における影響度に応じて複数のレベルに分類し、前記レベルに従って未使用領域とする前記冗長記憶領域を選択する、付記1に記載の情報処理装置。[付記3]前記複数のレベルは、未使用状態の記憶領域、または記憶領域のデータのコピーが前記記憶装置に格納されている記憶領域を示す第1レベルと、アプリケーションが使用中の記憶領域であって、前記アプリケーションにおいてリトライが可能なプロセスが使用する記憶領域を示す第2レベルと、アプリケーションが使用中の記憶領域であって、前記アプリケーションにおいてリトライが不可能なプロセスが使用する記憶領域を示す第3レベルと、オペレーティングシステムが使用中の記憶領域を示す第4レベルとを含む、付記2に記載の情報処理装置。[付記4]前記メモリ管理部は、前記メモリにおける複数の記憶領域の中で使用状態が遷移する対象記憶領域が、前記記憶装置に前記対象記憶領域のデータのコピーが格納される第1の使用状態へ遷移するか前記記憶装置に前記対象記憶領域のデータのコピーが格納されない第2の使用状態へ遷移するかに基づいて、前記対象記憶領域に他の前記記憶領域を冗長記憶領域として割り当てて前記対象記憶領域のデータのコピーを格納するか否かを決定する、付記1から3のいずれかに記載の情報処理装置。[付記5]前記情報処理装置は、さらに、アプリケーション単位または仮想アドレス空間の範囲の単位で、前記記憶領域に冗長記憶領域を割り当てるか否かの指示をユーザから受け付けるための冗長化有無受け付け部を備える、付記1から4のいずれかに記載の情報処理装置。[付記6]データを記憶するための記憶装置を用い、前記記憶装置よりも高速にアクセス可能なメモリを備える情報処理装置におけるメモリ管理方法であって、前記メモリにおいて複数の記憶領域を論理的に設けるステップと、前記記憶領域に他の前記記憶領域を冗長記憶領域として割り当て、前記冗長記憶領域にデータのコピーを格納するステップと、前記メモリの使用率が所定の閾値を超えた場合には、前記冗長記憶領域の割り当てられた1または複数の前記記憶領域について、前記メモリの使用率が前記所定の閾値以下になるまで、各前記冗長記憶領域を段階的に未使用領域とするステップとを含む、メモリ管理方法。[付記7]前記冗長記憶領域を未使用領域とするステップにおいては、前記冗長記憶領域の割り当てられた1または複数の前記記憶領域を、前記記憶領域に異常が発生した場合における影響度に応じて複数のレベルに分類し、前記レベルに従って未使用領域とする前記冗長記憶領域を選択する、付記6に記載のメモリ管理方法。[付記8]前記複数のレベルは、未使用状態の記憶領域、または記憶領域のデータのコピーが前記記憶装置に格納されている記憶領域を示す第1レベルと、アプリケーションが使用中の記憶領域であって、前記アプリケーションにおいてリトライが可能なプロセスが使用する記憶領域を示す第2レベルと、アプリケーションが使用中の記憶領域であって、前記アプリケーションにおいてリトライが不可能なプロセスが使用する記憶領域を示す第3レベルと、オペレーティングシステムが使用中の記憶領域を示す第4レベルとを含む、付記7に記載のメモリ管理方法。[付記9]前記メモリ管理方法は、さらに、前記メモリにおける複数の記憶領域の中で使用状態が遷移する対象記憶領域が、前記記憶装置に前記対象記憶領域のデータのコピーが格納される第1の使用状態へ遷移するか前記記憶装置に前記対象記憶領域のデータのコピーが格納されない第2の使用状態へ遷移するかに基づいて、前記対象記憶領域に他の前記記憶領域を冗長記憶領域として割り当てて前記対象記憶領域のデータのコピーを格納するか否かを決定するステップを含む、付記6から8のいずれかに記載のメモリ管理方法。[付記10]前記メモリ管理方法は、さらに、アプリケーション単位または仮想アドレス空間の範囲の単位で、前記記憶領域に冗長記憶領域を割り当てるか否かの指示をユーザから受け付けるステップを含む、付記6から9のいずれかに記載のメモリ管理方法。[付記11]データを記憶するための記憶装置を用い、前記記憶装置よりも高速にアクセス可能なメモリを備える情報処理装置におけるメモリ管理プログラムであって、コンピュータに、前記メモリにおいて複数の記憶領域を論理的に設けるステップと、前記記憶領域に他の前記記憶領域を冗長記憶領域として割り当て、前記冗長記憶領域にデータのコピーを格納するステップと、前記メモリの使用率が所定の閾値を超えた場合には、前記冗長記憶領域の割り当てられた1または複数の前記記憶領域について、前記メモリの使用率が前記所定の閾値以下になるまで、各前記冗長記憶領域を段階的に未使用領域とするステップとを実行させる、メモリ管理プログラム。[付記12]前記冗長記憶領域を未使用領域とするステップにおいては、前記冗長記憶領域の割り当てられた1または複数の前記記憶領域を、前記記憶領域に異常が発生した場合における影響度に応じて複数のレベルに分類し、前記レベルに従って未使用領域とする前記冗長記憶領域を選択する、付記11に記載のメモリ管理プログラム。[付記13]前記複数のレベルは、未使用状態の記憶領域、または記憶領域のデータのコピーが前記記憶装置に格納されている記憶領域を示す第1レベルと、アプリケーションが使用中の記憶領域であって、前記アプリケーションにおいてリトライが可能なプロセスが使用する記憶領域を示す第2レベルと、アプリケーションが使用中の記憶領域であって、前記アプリケーションにおいてリトライが不可能なプロセスが使用する記憶領域を示す第3レベルと、オペレーティングシステムが使用中の記憶領域を示す第4レベルとを実行させる、付記12に記載のメモリ管理プログラム。[付記14]前記メモリ管理プログラムは、さらに、コンピュータに、前記メモリにおける複数の記憶領域の中で使用状態が遷移する対象記憶領域が、前記記憶装置に前記対象記憶領域のデータのコピーが格納される第1の使用状態へ遷移するか前記記憶装置に前記対象記憶領域のデータのコピーが格納されない第2の使用状態へ遷移するかに基づいて、前記対象記憶領域に他の前記記憶領域を冗長記憶領域として割り当てて前記対象記憶領域のデータのコピーを格納するか否かを決定するステップを実行させる、付記11から13のいずれかに記載のメモリ管理プログラム。[付記15]前記メモリ管理プログラムは、さらに、コンピュータに、アプリケーション単位または仮想アドレス空間の範囲の単位で、前記記憶領域に冗長記憶領域を割り当てるか否かの指示をユーザから受け付けるステップを実行させる、付記11から14のいずれかに記載のメモリ管理プログラム。"