複数の仮想マシンが動作する情報処理装置が実行するメモリ縮退方法であって、第一の仮想マシンに割り当てられたメモリ領域における故障の検出に応じ、前記故障に係る仮想物理アドレスに対応する物理アドレス又はメモリモジュールのアドレス情報を記憶部に記憶し、前記第一の仮想マシン上で動作するオペレーティングシステムが前記故障の検出に応じて再起動される前に、前記第一の仮想マシンに関する仮想物理アドレスと物理アドレスとの対応関係を変更し、前記記憶部に記憶された物理アドレス又はメモリモジュールのアドレス情報に対応する仮想物理アドレスを、前記オペレーティングシステムの使用対象から除外する処理を実行するメモリ縮退方法。前記第一の仮想マシンに割り当てられたメモリ領域における故障の検出に応じ、前記第一の仮想マシンのオペレーティングシステムが、前記故障に係る仮想物理アドレスに対応する物理アドレス又はメモリモジュールのアドレス情報を記憶部に記憶し、前記第一の仮想マシン上で動作するオペレーティングシステムが前記故障の検出に応じて再起動される前に、ハイパーバイザが前記第一の仮想マシンに関する仮想物理アドレスと物理アドレスとの対応関係を変更し、再起動された前記オペレーティングシステムが、前記記憶部に記憶された物理アドレス又はメモリモジュールのアドレス情報に対応する仮想物理アドレスを使用対象から除外する処理を実行する請求項1記載のメモリ縮退方法。前記対応関係を変更する処理は、前記故障の検出前に前記第一の仮想マシンに割り当てられていた物理アドレスについて、仮想物理アドレスとの対応関係を変更する請求項1又は2記載のメモリ縮退方法。前記対応関係を変更する処理は、前記故障に係る物理アドレスが、前記オペレーティングシステムのカーネル空間に割り当てられる仮想物理アドレスに対応付けられないように、前記故障の検出前に前記第一の仮想マシンに割り当てられていた物理アドレスについて、仮想物理アドレスとの対応関係を変更する請求項3記載のメモリ縮退方法。複数の仮想マシンが動作する情報処理装置であって、第一の仮想マシンに割り当てられたメモリ領域における故障の検出に応じ、前記故障に係る仮想物理アドレスに対応する物理アドレス又はメモリモジュールのアドレス情報を記憶する記憶部と、前記第一の仮想マシン上で動作するオペレーティングシステムが前記故障の検出に応じて再起動される前に、前記第一の仮想マシンに関する仮想物理アドレスと物理アドレスとの対応関係を変更する変更部と、前記記憶部に記憶された物理アドレス又はメモリモジュールのアドレス情報に対応する仮想物理アドレスを、前記オペレーティングシステムの使用対象から除外する除外部とを有する情報処理装置。前記変更部は、前記故障の検出前に前記第一の仮想マシンに割り当てられていた物理アドレスについて、仮想物理アドレスとの対応関係を変更する請求項5記載の情報処理装置。前記変更部は、前記故障に係る物理アドレスが、前記オペレーティングシステムのカーネル空間に割り当てられる仮想物理アドレスに対応付けられないように、前記故障の検出前に前記第一の仮想マシンに割り当てられていた物理アドレスについて、仮想物理アドレスとの対応関係を変更する請求項6記載の情報処理装置。しかしながら、特許文献1に記載された技術のように、仮想マシンにメモリを割り当てる単位でメモリの縮退が行われると、メモリの縮退の単位サイズは、仮想マシンへのメモリの割り当ての単位に依存してしまう。メモリの縮退の単位とは、メモリの故障によって縮退されるメモリ領域のサイズをいう。図4は、メモリの縮退の単位が仮想マシンへのメモリの割り当ての単位に依存する状態を示す図である。1は、VM2上のカーネル空間においてメモリエラーが発生した状態を示す。2は、ハイパーバイザによってメモリの縮退が行われている状態を示す。メモリの縮退の単位は、仮想マシンへのメモリの割り当て単位であるため、図4の例では、VM2に割り当てられた領域が縮退されてしまう。したがって、仮想マシンに割り当てるメモリの単位が大きい場合、メモリの縮退の単位が大きくなり、正常なメモリを無駄にしてしまうことになる。このような事態を避けるために、仮想マシンに割り当てるメモリの単位を小さくすると、メモリの搭載量が大きくなればなるほど、上記における分割単位が増加し、ハイパーバイザが管理するメモリ故障情報が肥大化してしまうことになる。また、仮想マシンに割り当てるメモリの単位を可変長にすると、ハイパーバイザの制御内容が複雑になるという問題が有る。上記の通り、従来の技術では、大規模な仮想化環境に対応するのは困難である。そこで、一側面では、メモリ故障によるOSのパニックの繰り返しの防止を仮想化環境の大規模化に対応可能な仕組みで実現することのできるメモリ縮退方法及び情報処理装置の提供を目的とする。一つの案では、複数の仮想マシンが動作する情報処理装置が実行するメモリ縮退方法であって、第一の仮想マシンに割り当てられたメモリ領域における故障の検出に応じ、前記故障に係る仮想物理アドレスに対応する物理アドレス又はメモリモジュールのアドレス情報を記憶部に記憶し、前記第一の仮想マシン上で動作するオペレーティングシステムが前記故障の検出に応じて再起動される前に、前記第一の仮想マシンに関する仮想物理アドレスと物理アドレスとの対応関係を変更し、前記記憶部に記憶された物理アドレス又はメモリモジュールのアドレス情報に対応する仮想物理アドレスを、前記オペレーティングシステムの使用対象から除外する処理を実行する。一態様によれば、メモリ故障によるOSのパニックの繰り返しの防止を仮想化環境の大規模化に対応可能な仕組みで実現することができる。以下、図面に基づいて本発明の実施の形態を説明する。図5は、本発明の実施の形態における情報処理装置のハードウェア構成例を示す図である。図5において、情報処理装置10は、CPU104a、104b、及び104c等の複数のCPU104を有する。後述されるように、各CPU104は、各仮想マシンに割り当てられる。なお、情報処理装置10は、必ずしも複数のCPU104を備えていなくてもよい。例えば、一つのマルチコアプロセッサによって、複数のCPU104が代替されてもよい。この場合、各プロセッサコアが、各仮想マシンに割り当てられればよい。情報処理装置10は、更に、ドライブ装置100、補助記憶装置102、主記憶装置103、及びインタフェース装置105等を有する。CPU104とこれらのハードウェアとは、バスBによって接続されている。情報処理装置10での処理を実現するプログラムは、記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。主記憶装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。なお、主記憶装置103は、以下においてメモリとも呼ばれる。CPU104は、主記憶装置103に格納されたプログラムに従って情報処理装置10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。なお、記録媒体101の一例としては、CD-ROM、DVDディスク、又はUSBメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置102の一例としては、HDDHardDiskDrive又はフラッシュメモリ等が挙げられる。記録媒体101及び補助記憶装置102のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。図6は、本発明の実施の形態の情報処理装置の機能構成例を示す図である。図6において、情報処理装置10は、ハイパーバイザ11、及びVM12a~12cの複数の仮想マシンVirtualMachineを有する。ハイパーバイザ11及びVM12は、情報処理装置10にインストールされたプログラム仮想化プログラムがCPU104に実行させる処理によって実現される。ハイパーバイザ11は、情報処理装置10を仮想化し、複数のOS13オペレーティングシステム:OperatingSystemの並列実行を可能とする。ハイパーバイザ11は、ソフトウェアによって実現される仮想的なコンピュータVM12を作り出し、VM12上でOS13を動作させる。なお、ハイパーバイザ11は、仮想マシンモニタVMMVirtualMachineMonitorとも呼ばれる。図6に示されるように、各VM12には、CPU104及びOSディスク120が割り当てられている。また、各VM12上では、OS13が動作する。OSディスク120は、それぞれ、補助記憶装置102における一部の記憶領域である。各VM12には、補助記憶装置102において相互に重複しない記憶領域が、OSディスク120a、120b、又は120cとして割り当てられる。但し、補助記憶装置102が複数存在し、OSディスク120と補助記憶装置102とが一対一に対応付けられてもよい。各VM12に割り当てられたCPU104は、VA/RA変換テーブル141、RA/PA変換テーブル142、及びエラー通知部143等を含む。各VM12は、当該VM12に割り当てられたCPU104のみを使用可能であり、他のVM12に割り当てられたCPU104は使用することはできない。一方、ハイパーバイザ11は、全てのCPU104を使用することができる。VA/RA変換テーブル141は、仮想アドレスVirtualAddress:以下、VAという。から仮想物理アドレスRealAddress:以下RAという。に変換するための情報変換情報を記憶する。例えば、VA/RA変換テーブル141は、VAとRAとの対応情報を変換情報として記憶する。各CPU104は、VA/RA変換テーブル141に記憶されていないVAへのアクセスは出来ない。また、VA/RA変換テーブル141は、OS13からアクセス可能である。なお、RAは、OS13にとっての又はOS13から見た場合の物理アドレスに相当するアドレスである。但し、実際の物理アドレスではなく、ハイパーバイザ11によって仮想的に作り出されている物理アドレスである。RA/PA変換テーブル142は、RAから物理アドレスPhysicalAddress:以下PAという。に変換するための情報変換情報を記憶する。例えば、RA/PA変換テーブル142は、RAとPAとの対応情報を変換情報として記憶する。各CPU104は、RA/PA変換テーブル142に記憶されていないRAへのアクセスは出来ない。ハイパーバイザ11は、各CPU104のRA/PA変換テーブル142にアクセス可能であるが、各OS13は、RA/PA変換テーブル142にアクセスすることは出来ない。なお、VA/RA変換テーブル141及びRA/PA変換テーブル142は、例えば、CPU104内のレジスタを用いて実現可能である。エラー通知部143は、CPU104によるメモリアクセスに応じてメモリの故障が検出された場合、アクセスされたアドレスRAを、OS13及びVM起動制御部114に通知する。各VM12のOSディスク120は、メモリの縮退が行われた場合に、メモリ縮退情報の記憶手段として利用される。メモリ縮退情報とは、メモリの故障位置を示す情報である。本実施の形態において、主記憶装置103を構成するメモリモジュールは、DIMMDualInlineMemoryModuleであるとする。故障位置を有するDIMMの識別情報DIMM番号と、当該DIMMにおいて、故障位置に対応するアドレスのオフセット値DIMMアドレスとが、メモリ縮退情報として記憶される。なお、各OS13は、当該OS13が動作する仮想マシンに割り当てられたOSディスク120にのみアクセス可能であり、他の仮想マシンに割り当てられたOSディスク120にはアクセスすることは出来ない。各OS13は、メモリ管理テーブル131、メモリ縮退制御部132、及びメモリアクセス制御部133等を有する。メモリ管理テーブル131は、ページ単位で、使用状況を示す情報を記憶する。ページとは、仮想記憶のページング方式におけるメモリの分割単位である。すなわち、メモリ管理テーブル131は、OS13において縮退制御可能なメモリの最小単位ごとに、使用状況を記憶する。なお、メモリ管理テーブル131は、主記憶装置103が実現するメモリ領域のうち、当該VM12に割り当てられたメモリ領域を用いて実現可能である。メモリ縮退制御部132は、メモリ縮退情報DIMM番号及びDIMMアドレスをOSディスク120に記憶する。メモリ縮退制御部132は、また、OSディスク120内のメモリ縮退情報を参照して、メモリ管理テーブル131に使用不可能となったRAを記録する。メモリアクセス制御部133は、新たに仮想メモリ領域を獲得する際に、獲得した仮想メモリ領域のVAと、当該VAに対して割り当てる仮想物理メモリ領域のRAとの対応情報をVA/RA変換テーブル141に記録する。VAに対して割り当てる仮想物理メモリ領域の決定の際には、メモリ管理テーブル131が参照され、使用可能な仮想物理メモリ領域が割り当ての対象とされる。したがって、使用不可能な仮想物理メモリ領域のRAがVA/RA変換テーブル141に記録されることはない。一般的に、CPU104上のVA/RA変換テーブル141のサイズにはハードウェア的に限界があるため、VA/RA変換テーブル141は、OS13によっても別途管理されることが多い。その場合、CPU104上のVA/RA変換テーブル141はOS13によって管理されるVA/RA変換テーブル141の一部となる。CPU104は、必要となるマッピング情報をOS13のVA/RA変換テーブル141から自動的に読み込む。ハイパーバイザ11は、構成情報記憶部111、メモリマップ制御部112、メモリ情報変換部113、及びVM起動制御部114等を含む。なお、本実施の形態において、各VM12の構成要素の参照番号の末尾には、当該VM12の参照番号の末尾のアルファベットa~cが付与される。例えば、VM12bの構成要素の参照番号の末尾には、bが付与される。構成情報記憶部111は、RAとPAとの対応情報であるメモリ割当情報と、PAとDIMM番号及びDIMMアドレスとのの対応情報であるメモリ実装情報とを記憶する。メモリ割当情報は、VM12ごとに記憶される。構成情報記憶部111は、例えば、主記憶装置103を用いて実現可能である。メモリマップ制御部112は、メモリ割当情報を参照して、VM12が使用するRAと、VM12に割り当てるPAとの変換情報を、各VM12に割り当てられるそれぞれのCPU104のRA/PA変換テーブル142に登録する。メモリ情報変換部113は、メモリ実装情報とRA/PA変換テーブル142とを参照して、RAとDIMM番号及びDIMMアドレスとについて、双方向の変換を行う。VM起動制御部114は、VM12の起動制御を行う。VM起動制御部114は、また、エラー通知部143からメモリエラーの通知があった場合は、VM12を起動する前に、RA/PA変換テーブル142の変更をメモリマップ制御部112に指示する。RA/PA変換テーブル142の変更とは、RAとPAとの対応関係の変更をいう。続いて、本実施の形態の情報処理装置10における仮想化環境のメモリマッピングについて説明する。すなわち、VA、RA、PA、並びにDIMM番号及びDIMMアドレスの関係について説明する。図7は、本実施の形態の仮想化環境のメモリマッピングの一例を説明するための図である。VAとRAとのマッピング対応付けについては、VM12ごとにVA/RA変換テーブル141によって管理される。各VM12上のOS13が、メモリ管理テーブル131に基づいてVAからRAへの変換情報を生成し、当該変換情報をCPU104のVA/RA変換テーブル141に記録する。VAからRAへの変換情報がVA/RA変換テーブル141に記録されると、CPU104は、与えられたVAからRAを求めることができるようになる。RAとPAとのマッピングについては、VM12ごとにRA/PA変換テーブル142によって管理される。ハイパーバイザ11のメモリマップ制御部112が、メモリ割当情報に基づいてRAからPAへの変換情報を生成し、当該変換情報をCPU104のRA/PA変換テーブル142に記録する。RAからPAへの変換情報がRA/PA変換テーブル142に記録されると、CPU104は、VA/RA変換テーブル141に基づいて求められたRAに関して、PAを求めることができるようになる。CPU104は、求められたPAを使用してメモリへのアクセスを行う。なお、ハイパーバイザ11もPAを使用してメモリにアクセスすることができる。ハイパーバイザ11の場合、CPU104内の各変換テーブルによる制限はなく、全てのアドレスPAにアクセス可能である。すなわち、ハイパーバイザ11は、いずれのVM12に割り当てられたアドレスにもアクセス可能である。PAとDIMM番号及びDIMMアドレスとのマッピングは、通常、ハードウェア仕様によって決定される一意な関係にある。例えば、非図示のメモリコントローラに、当該マッピングがロジックとして組み込まれている。当該ロジックは、メモリ実装情報として、構成情報記憶部111にも記憶される。なお、本実施の形態では、PAとDIMM番号及びDIMMアドレスとの対応が可変である場合についても考慮している。したがって、PAとDIMM番号及びDIMMアドレスとのマッピングについても言及されている。以上の三つのマッピングにより、CPU104は与えられたVAからPAにアクセスすることができる。PAに対応するメモリモジュールへのアクセスは、非図時のメモリコントローラによって行われる。以下、情報処理装置10が実行する処理手順について説明する。図8は、情報処理装置が実行する処理の概要の一例を説明するための図である。例えば、VM12bにおいて、メモリの故障が検知されるとS101、VM12b上で動作するOS13bは、故障したメモリアドレスRAの通知をCPU104bより受けるS102。続いて、OS13bは、通知されたRAに対応するDIMM番号及びDIMMアドレスを取得するS103。続いて、OS13bは、当該DIMM番号及びDIMMアドレスを、メモリ縮退情報としてOSディスク120bに記憶するS104。続いて、OS13bは、パニックし、VM12bの再起動をハイパーバイザ11に要求するS105。ハイパーバイザ11は、再起動要求に応じ、OS13bがメモリの故障が原因でパニックしたことを認識するS111。続いて、ハイパーバイザ11は、再起動対象のVM12bに関するメモリの割り当てPAとRAとのマッピングを変更するS112。すなわち、VM12bに関して、メモリ割当情報とRA/PA変換テーブル142bとが変更される。この際、OS13bのカーネル空間が割り当てられるRAには、メモリの故障位置に係るPAが対応付けられないように、メモリ割当情報及びRA/PA変換テーブル142bが変更される。続いて、ハイパーバイザ11は、VM12bを再起動させるS113。続いて、VM12bの再起動に伴って、OS13bが再起動するS121。この際、OS13bのカーネル空間に割り当てられたPAは、故障位置を含まない可能性が高いため、OS13bは、正常に再起動される可能性が高い。続いて、再起動されたOS13bは、OSディスク120bからメモリ縮退情報を読み込むS122。続いて、OS13bは、当該メモリ縮退情報が示すDIMM番号及びDIMMアドレスに対応するRAを取得するS123。続いて、OS13bは、当該RAを、使用可能なメモリ領域から除去するS124。その結果、以降の処理において、同じ故障位置に基づくメモリエラーの発生は抑止される。続いて、情報処理装置10が実行する処理手順を更に詳しく説明する。図9は、情報処理装置が実行する処理手順の一例を説明するためのシーケンス図である。また、図10は、情報処理装置が実行する処理手順の説明を補足するための図である。例えば、CPU104bが、OS13bの命令コードに指定されたVAに対応するPAにアクセスした結果、メモリ故障を検出すると、エラー通知部143bは、メモリエラーの発生を、OS13bのメモリアクセス制御部133bと、ハイパーバイザ11のVM起動制御部114とに通知するS201、S202。当該通知には、アクセス対象とされたVAに対応するRAが指定される。当該RAは、VA/RA変換テーブル141に基づいて求められる。続いて、メモリアクセス制御部133bは、通知されたRAをメモリ縮退制御部132bに通知するS203。メモリ縮退制御部132bは、通知されたRAに関して、DIMM番号及びDIMMアドレスへの変換を、ハイパーバイザ11のメモリ情報変換部113に要求するS204。メモリ情報変換部113は、当該RAをDIMM番号及びDIMMアドレスに変換し、変換結果をメモリ縮退制御部132bに応答するS205。なお、RAからDIMM番号及びDIMMアドレスへの変換は、構成情報記憶部111が記憶する、メモリ割当情報及びメモリ実装情報を用いて行われる。すなわち、RAとPAとの対応情報であるメモリ割当情報を用いて、RAからPAへの変換が行われる。続いて、PAとDIMM番号及びDIMMアドレスとの対応情報であるメモリ実装情報を用いて、PAからDIMM番号及びDIMMアドレスへの変換が行われる。続いて、メモリ縮退制御部132bは、DIMM番号及びDIMMアドレスを、メモリ縮退情報としてOSディスク120bに記憶するS206。以上までの状態が、図10の1に示されている。図10の1では、VM12b上で動作するOS13bのカーネル空間においてメモリ故障が検出され、当該故障位置に対応するDIMM番号及びDIMMアドレスが、OSディスク120bに記憶される様子が示されている。続いて、OS13bがパニックする。パニック処理において、OS13bのメモリ縮退制御部132bは、ハイパーバイザ11のVM起動制御部114に対して、VM12bの再起動を要求するS207。VM起動制御部114は、ステップS204におけるエラー通知部143bからのメモリエラーの発生通知の後の再起動要求であることに基づいて、OS13bがメモリ故障が原因でパニックしたことを認識する。そこで、VM起動制御部114は、RA/PA変換テーブル142bの変更をメモリマップ制御部112に要求するS208。メモリマップ制御部112は、要求に応じ、VM12bに関して、RAとPAとの対応関係メモリマッピングの変更処理を実行するS209。その結果、メモリ割当情報及びRA/PA変換テーブル142bの内容が書き換えられ、OS13bのカーネル空間に割り当てられるRAには、メモリの故障位置に係るPAが対応付けられないように、メモリ割当情報及びRA/PA変換テーブル142bが変更される。ステップS209における状態が、図10の2に示されている。図10の2では、OS13bのカーネル空間に割り当てられていた物理メモリ領域と、ユーザ空間に割り当てられていた物理メモリ領域とが入れ替えられている様子が示されている。その結果、故障位置に対応するRAは、移動する。なお、VM12b以外のVM12a及びVM12cに関しては、正常に動作が継続している。続いて、VM起動制御部114は、VM12bの再起動に伴い、CPU104bのVA/RA変換テーブル141bをクリアするS210。続いて、VM起動制御部114は、VM12bを再起動させるS211。VM12bの再起動に伴って、OS13bも再起動するS212。この際、OS13bのカーネル空間に割り当てられるRAに対応するPAは、故障位置を含まないため、OS13bは、正常に再起動する。OS13bが再起動すると、メモリ縮退制御部132bは、OSディスク120bにメモリ縮退情報として記憶されているDIMM番号及びDIMMアドレスを読み込むS213。続いて、メモリ縮退制御部132bは、当該DIMM番号及びDIMMアドレスについて、RAへの変換をメモリ情報変換部113に要求するS214。メモリ情報変換部113は、メモリ実装情報及びメモリ割当情報に基づいて、当該DIMM番号及びDIMMアドレスをRAに変換するS215。具体的には、メモリ実装情報に基づいて、当該DIMM番号及びDIMMアドレスがPAに変換される。当該PAは、メモリ割当情報に基づいてRAに変換される。続いて、メモリ情報変換部113は、変換結果としてのRAを、メモリ縮退制御部132bに応答するS216。続いて、メモリ縮退制御部132は、メモリ管理テーブル131bを更新し、当該RAを含むメモリ領域を使用対象から除去するS217。図11は、メモリ管理テーブルの構成例を示す図である。図11において、メモリ管理テーブル131bは、ページ番号ごとに、使用状況を示す値を記憶する。ページ番号とRAの関係は一意である。例えば、OS13bで縮退制御可能な最小メモリサイズが8Kバイトの場合、RAを右に13ビットシフトした値がページ番号となる。RAを右に13ビットシフトした値とは、RAを8Kバイト単位で丸めた値である。したがって、ページ番号は、8Kバイト単位のRAの領域を示す。使用状況には、0、1、又2が記録される。0は、未使用であることを示す。1は、使用中であることを示す。2は、使用不可能であることを示す。したがって、ステップS217において、メモリ縮退制御部132は、使用対象から除去すべきRAを右に13ビットシフトした値と一致するページ番号に対して、2を記録する。例えば、図11では、ページ番号1000に対して2が記録されている。したがって、RA=8192000bytes~8200191bytesの範囲の一部又は全部においてメモリが故障した状態が示されている。このように、OS13によって縮退が行われる場合、縮退の単位を、例えばページ単位に限定することができる。図11の例では、縮退の単位を8Kバイトとすることができる。その結果、正常であるにも拘わらず使用対象とされないメモリ領域を小さくすることができる。なお、ステップS213~S217に対応するのが、図10の3である。図10の3では、メモリ縮退情報としてもDIMM番号及びDIMMアドレスが読み込まれ、ハイパーバイザ11によって当該DIMM番号及びDIMMアドレスがRAに変換される様子が示されている。更に、当該RAを含むページP1が、縮退されている様子が示されている。続いて、メモリ領域の獲得要求が発生した場合に情報処理装置10が実行する処理について説明する。メモリ領域の獲得要求は、OS13b内において発生してもよいし、OS13b上で動作するプログラム例えば、アプリケーションプログラムにおいて発生してもよい。図12は、メモリ領域の獲得要求に応じて実行される処理手順の一例を説明するためのフローチャートである。メモリ領域の獲得要求が発生するとS221、メモリアクセス制御部133bは、獲得要求に指定されたサイズ分の仮想メモリ領域を確保するS222。続いて、メモリアクセス制御部133bは、メモリ管理テーブル131bを参照して、使用可能なページ番号を検索するS223。すなわち、メモリ管理テーブル131bにおいて、使用状況の値が0であるページ番号が検索される。続いて、メモリアクセス制御部133bは、検索されたページ番号のうち、獲得要求に応じたサイズ分のページに対応するページ番号の使用状況に対して1を記録するS224。続いて、メモリアクセス制御部133bは、ステップS222において確保された仮想メモリ領域のVAと、ステップS224において使用中とされたページ番号に係るRAとの対応情報を、CPU104bのVA/RA変換テーブル141bに登録するS225。このように、使用状況が2であるRAは、VA/RA変換テーブル141bに登録されない。また、OS13bはVA以外を用いてメモリアクセスをすることはない。換言すれば、OS13bは、RAを用いてメモリアクセスをすることはない。その結果、使用状況の値が2とされたメモリ領域、すなわち、故障位置を含むメモリ領域は、縮退される。続いて、図9のステップS209の詳細について説明する。図13、図14、及び図15は、メモリマッピングの変更処理の第一の例を説明するための図である。なお、ここでは、カーネル空間が、高いアドレスから配置されるアーキテクチャを前提とする。カーネル空間が低いアドレスから配置されるアーキテクチャの場合は、以下において説明するマッピング変更処理のアドレスの高低を逆にすればよい。図13に示されるように、第一の例におけるRA/PA変換テーブル142bの各エントリは、RA、サイズ、及びPAオフセット等の項目を有する。各エントリのRAに対応するPAは、RAPAオフセットにより求まる。すなわち、RAから始まるサイズ分の仮想物理メモリ領域は、RAPAオフセットから始まるサイズ分の物理メモリ領域にマッピングされていることを示す。以下、仮想物理メモリ領域をRA領域といい、物理メモリ領域をPA領域という。図13の状態では、RA=PAのマッピングが、A0~256Mバイト=a1~1.25Gバイト、B256~512Mバイト=b1.25~1.5Gバイト、C512~1024Mバイト=c1.5~2Gバイト、D1024~1280Mバイト=d2.5~2.75Gバイトとなっている。また、A、B、C、Dの順で、低いRAから高いRAに並んでいる。この状態において、PA領域d内でメモリ故障が検出され、OS13bの起動に失敗したとする。なお、RA領域Dは、カーネル空間に割り当てられるRA領域であるとする。1まず、メモリマップ制御部112は、RA/PA変換テーブル142bにおいて、RAが最も高いアドレスのエントリを探し出す。ここでは、Dのエントリが見つかる。2続いて、メモリマップ制御部112は、Dのエントリとサイズの値が同じであるエントリをRA/PA変換テーブル142bより抽出する。すなわち、サイズの値が256Mバイトであるエントリが抽出される。ここではAのエントリ及びBのエントリが抽出される。3続いて、メモリマップ制御部112は、1おいて見つけたDのエントリのPAが、2で抽出したエントリの中で、最も低いRAにマッピングされるように、エントリA、B、及びDのPAオフセットを順次変更する。A及びBのエントリの中で、RAの値が低いのはAのエントリである。したがって、A=a、B=b、D=dであったマッピングが、A=d、B=a、D=bへと変更される。すなわち、マッピングがローテーションする。なお、Cのエントリは、Dのエントリとサイズが異なるため、マッピングの変更の対象とはされない。このようなマッピングのローテーションが行われた後の状態を示すのが、図14である。図14において、カーネル空間に割り当てられるRA領域Dに対応するPA領域bは、メモリ故障の発生箇所ではない。したがって、OS13bは、正常に起動できる可能性が高い。仮に、OS13bの起動中に、PA領域bにおいても故障が検出された場合、OS13bは、再度パニックし、もう一度再起動を実行することになる。この場合、上記1、2、及び3の処理が再度繰り返される。具体的には、A=d、B=a、D=bであったマッピングが、A=b、B=d、D=aへとローテーションされる。このようなマッピングのローテーションが行われた後の状態を示すのが、図15である。図15において、カーネル空間に割り当てられるRA領域Dに対応するPA領域aは、メモリ故障の発生箇所ではない。したがって、OS13bは、正常に起動できる可能性が高い。OS13bの起動に成功すると、メモリ縮退制御部132bによって、メモリの故障部分が縮退される。この際、RA/PA変換テーブル142のエントリの単位で縮退が行われるのではなく、OS13bにおいて縮退制御可能なメモリの最小単位の領域が縮退される。仮に、図15の状態で、PA領域aにメモリの故障が検出された場合は、更に、同様の処理が繰り返される。図13~図15では、同一サイズのRA領域は、A、B、及びDの三つしかないため、無限ループする可能性が危惧される。しかし、実際的には、RA/PA変換テーブル142bのエントリ数は十分に多く、OS13bの起動に必要なカーネル空間のメモリ領域は十分に小さいため、無限ループの可能性は低い。但し、無限ループを抑止するために、再起動の連続失敗回数の最大値を定義し、当該最大値に達した場合は、VM12bの起動を抑止するようにしてもよい。なお、図13~図15において明らかなように、メモリマップ制御部112bは、既にメモリ故障の検出前にVM12bに割り当て済みのPA領域に関して、RAとのマッピングを入れ替える。換言すれば、例えば、いずれのVM12に対しても割り当てられていないPA領域を新たにVM12bに対して割り当てるのではなく、既存のマッピングに関して変更が行われる。そうすることにより、縮退の単位が、RA/PA変換テーブル142のエントリの単位PA領域dに関しては256Mバイトに依存するのを回避することができる。すなわち、例えば、図13の状態において、RA領域Dを、新たなPA領域にマッピングしたとすると、256Mバイト分のPA領域dは、使用されないメモリ領域となってしまう。一方、本実施の形態のように、既存のマッピングに関して変更が行われれば、PA領域dの使用は継続される。その結果、PA領域dのうち、OS13bの縮退制御可能なメモリの最小単位の領域例えば、8Kバイトに、縮退する範囲を限定ことができる。メモリマッピングの変更処理は、以下のように実行されてもよい。図16、図17、及び図18は、メモリマッピングの変更処理の第二例を説明するための図である。ここでも、カーネル空間が、高いアドレスから配置されるアーキテクチャを前提とする。カーネル空間が低いアドレスから配置されるアーキテクチャの場合は、以下において説明するマッピング変更処理のアドレスの高低を逆にすればよい。図16に示されるように、第二の例におけるRA/PA変換テーブル142bの各エントリは、PA、サイズ、RAオフセット、及び状態等の項目を有する。各エントリのRAは、PARAオフセットにより求まる。すなわち、PARAオフセットから始まるサイズ分のRA領域は、PAから始まるサイズ分のPA領域にマッピングされていることを示す。また、状態には、ok又はfailedのいずれかが記録される。okは通常の状態を示す。failedは過去に故障した位置を含むことを示す。図16の状態では、RA=PAのマッピングが、A0~256Mバイト=a1~1.25Gバイト、B256~512Mバイト=b1.25~1.5Gバイト、C512~1024Mバイト=c1.5~2Gバイト、D1024~1280Mバイト=d2.5~2.75Gバイトとなっている。この状態において、PA領域d内でメモリ故障が検出され、OS13bの起動に失敗したとする。なお、RA領域Dは、カーネル空間に割り当てられるRA領域であるとする。1まず、メモリマップ制御部112は、エラー通知部143bから通知されたRAが含まれるエントリをRA/PA変換テーブル142bより探し出す。ここでは、dのエントリが見つかるため、メモリマップ制御部112は、dのエントリの状態をfailedに変更する。2続いて、メモリマップ制御部112は、dのエントリとサイズの値が同じであるエントリであって、かつ、状態の値がokであるエントリをRA/PA変換テーブル142より抽出する。ここでは、aのエントリ及びbのエントリが抽出される。3続いて、メモリマップ制御部112は、2において抽出したエントリの中でRAが最も低いエントリを抽出する。ここでは、aのエントリが抽出される。4続いて、メモリマップ制御部112は、PA領域dに対応するRA領域Dと、PA領域aに対応するRA領域Aとが入れ替わるように、a及びdのエントリのRAオフセットを変更する。ここでは、A=a、D=dが、A=d、D=aへと変更される。このようにマッピングが変更された状態を示すのが図17である。図17において、カーネル空間に割り当てられるRA領域Dに対応するPA領域aは、メモリ故障の発生箇所ではない。したがって、OS13bは、正常に起動できる可能性が高い。仮に、OS13bの再起動中に、PA領域aにおいても故障が検出された場合、OS13bは、再度パニックし、もう一度再起動を実行することになる。この場合、上記1、2、3、及び4の処理が再度繰り返される。今度は2においてa及びdのエントリの状態がfailedであることから、bのエントリのみが抽出される。4においてdに対応するRAと、bに対応するRAとが入れ替えられる。すなわち、B=b、D=aであったマッピングが、B=a、D=bへと変更される。このようなマッピングの変更が行われた後の状態を示すのが、図18である。図18において、カーネル空間に割り当てられるRA領域Dに対応するP領域bは、メモリ故障の発生箇所ではない。したがって、OS13bは、正常に起動できる可能性が高い。OS13bの起動に成功すると、メモリ縮退制御部132bによって、メモリの故障部分が縮退される。この際、RA/PA変換テーブル142のエントリの単位で縮退が行われるのではなく、OS13bにおいて縮退制御可能なメモリの最小単位の領域が縮退される。このように、第二の例においても、メモリマップ制御部112bは、既にそのVM12bに割り当て済みのPA領域に関して、RAとのマッピングを入れ替える。したがって、縮退の単位が、RA/PA変換テーブル142のエントリの単位PA領域dに関しては256Mバイトに依存するのを回避することができる。なお、OS13は、VA及びRAに関与し、PAには関与しない。したがって、RAとPAとのマッピングの変更によって、OS13に動作に問題が発生する可能性は低い。なお、本実施の形態では、VM12bにおいてメモリ故障が検出された例を示したが、他のVM12においてメモリ故障が検出された場合も、当該他のVM12に関して同様の処理が実行されればよい。また、本実施の形態では、メモリ縮退情報として、DIMM番号及びDIMMアドレスを記憶する例を示した。但し、一般的に、DIMM番号及びDIMMアドレスとPAとの関係は、固定的である場合が多い。また、当該関係が可変であったとしても、運用時においては、実質的に固定的である場合が多い。したがって、DIMM番号及びDIMMアドレスの代わりに、PAが記憶されてもよい。要するに、RAとPAとのマッピングの変更に影響しないアドレス情報が、メモリ縮退情報として記憶されればよい。また、SIMMSingleInlineMemoryModule等、DIMM以外のメモリモジュールが使用される場合、当該メモリモジュールに適合した方法で、故障位置が特定されてもよい。上述したように、本実施の形態によれば、大規模な仮想化環境においても適用可能な仕組みで、メモリ故障によるOS13のパニックの繰り返しを防止することができる。すなわち、メモリの故障位置に対応するPAは、OS13のカーネル空間に割り当てられないように、RAとPAとのマッピングが変更される。その結果、メモリエラーの発生に応じて実行されるOS13のパニックの繰り返しを防止することができる。この際、再起動の対象は、メモリ故障が検出されたVM12に限定される。すなわち、情報処理装置10自体を再起動させる必要はない。また、メモリの縮退は、VM12上のOS13によって行われる。また、ハイパーバイザ11は、RA/PA変換テーブル142のマッピングを変更すればよく、メモリの縮退には直接的には関与しない。したがって、VM12の増加に伴って、メモリの縮退のためにハイパーバイザ11が管理すべき情報が増加する可能性は低い。よって、大規模な仮想化環境であっても、メモリの縮退のために、ハイパーバイザ11の管理情報が大規模になったり、ハイパーバイザ11の制御が複雑になったりする可能性は低い。また、OS13によってメモリの縮退が行われることにより、OS13において縮退制御可能なメモリの最小単位でメモリを縮退させることができる。したがって、正常なメモリ領域を有効活用することができる。また、OS13は、故障位置をRAによって記憶するのではなく、物理的なアドレス情報であるDIMM番号及びDIMMアドレスによって記憶する。したがって、RAとPAとのマッピングがハイパーバイザ11によって変更されたとしても、縮退すべきRAを正しく把握することができる。以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形変更が可能である。