ネットワークを介して他の情報処理装置に接続可能な情報処理装置であって、第1メモリと、不揮発性の第2メモリと、仮想アドレス空間の少なくとも一部の仮想アドレスと前記第1メモリの物理アドレスとの対応関係を管理する変換情報を参照して、前記第1メモリにアクセスする制御部と、を備え、前記仮想アドレス空間には、前記他の情報処理装置に格納されたデータも割り当てられ、前記制御部は、アクセス対象データが前記他の情報処理装置に格納され、前記アクセス対象データに対応する仮想アドレスが前記変換情報に登録されていないことによりページフォールトが発生した場合、前記他の情報処理装置に格納された前記アクセス対象データを前記第1メモリに格納するとともに、前記アクセス対象データに対応する仮想アドレスと前記第1メモリの物理アドレスの対応関係を前記変換情報に登録する、ことを特徴する情報処理装置。前記制御部は、前記アクセス対象データが前記第2メモリに格納され、前記アクセス対象データに対応する仮想アドレスが前記変換情報に登録されていないことによりページフォールトが発生した場合、前記第2メモリに格納された前記アクセス対象データを前記第1メモリに格納するとともに、前記アクセス対象データに対応する仮想アドレスと前記第1メモリの物理アドレスの対応関係を前記変換情報に登録することを特徴とする情報処理装置。前記制御部は、前記アクセス対象データに対応する仮想アドレスと前記第1メモリの物理アドレスの対応関係を前記変換情報に登録した際、前記他の情報処理装置に格納されている変換情報における前記アクセス対象データに対応するエントリを無効化する、ことを特徴とする請求項1に記載の情報処理装置。前記制御部は、前記第2メモリが保持するデータが前記他の情報処理装置に格納されているデータからコピーされたデータであるか否かを示すマスタ情報を管理し、所定のタイミングで、前記第1メモリに格納されているデータを自情報処理装置の第2メモリのみに、または自情報処理装置の第2メモリおよび前記他の情報処理装置の両方に退避させ、前記退避の際に、自情報処理装置の第2メモリのみに退避させるか、または自情報処理装置の第2メモリおよび前記他の情報処理装置の両方に退避させるかを、前記マスタ情報に基づいて決定する、ことを特徴とする請求項1に記載の情報処理装置。CPUをさらに備え、前記第2メモリは、前記CPUにかかるリソース情報を保持し、前記仮想アドレス空間は、前記リソース情報および前記他の情報処理装置にかかるリソース情報が割り当てられており、前記制御部は、スレッドの実行開始時に、前記自他の情報処理装置にかかるリソース情報を参照して前記自情報処理装置のCPUよりも効率よく前記スレッドを実行可能なCPUを求め、前記求めたCPUに前記スレッドを実行させる、ことを特徴とする請求項1に記載の情報処理装置。前記第2メモリは、NAND型のフラッシュメモリである、ことを特徴とする請求項1に記載の情報処理装置。本発明の一つの実施形態は、ネットワーク透過な単一レベル記憶を実現する情報処理装置を提供することを目的とする。本発明の一つの実施形態によれば、ネットワークを介して他の情報処理装置に接続可能な情報処理装置は、第1メモリと、不揮発性の第2メモリと、仮想アドレス空間の少なくとも一部の仮想アドレスと前記第1メモリの物理アドレスとの対応関係を管理する変換情報を参照して、前記第1メモリにアクセスする制御部と、を備える。前記仮想アドレス空間には、前記他の情報処理装置に格納されたデータも割り当てられる。前記制御部は、アクセス対象データが前記他の情報処理装置に格納され、前記アクセス対象データに対応する仮想アドレスが前記変換情報に登録されていないことによりページフォールトが発生した場合、前記他の情報処理装置に格納された前記アクセス対象データを前記第1メモリに格納するとともに、前記アクセス対象データに対応する仮想アドレスと前記第1メモリの物理アドレスの対応関係を前記変換情報に登録する。以下に添付図面を参照して、実施形態にかかる情報処理装置を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。第1の実施形態図1は、本発明の第1の実施形態の情報処理装置が使用される様子を説明する図である。本発明の第1の実施形態の情報処理装置1a~1dは、本図に示すように、例えばインターネットなどのネットワーク2に接続されて情報処理システムを構成する。情報処理装置1a~1dは、情報処理システム内で仮想アドレス空間を共有しており、情報処理装置1a~1dが備えるストレージに保持しているデータやプログラム以降、単にデータは、夫々この仮想アドレス空間上の領域が排他的に割り当てられる。なお、仮想アドレス空間上の領域に割り当てられたデータのことをセグメントと表現することもある。図2は、情報処理装置1a~1dが共有する仮想アドレス空間の概念を説明する図である。図示するように、仮想アドレス空間100には、情報処理装置1aが記憶装置内に保持するプログラムAおよびデータBと、情報処理装置1bが記憶装置内に保持するプログラムCとが夫々セグメントとして割り当てられている。プログラムAおよびCは、夫々スレッドが使用できるコードにより構成されている。例えば、情報処理装置1aだけでなく情報処理装置1b~1dは、プログラムAが割り当てられているアドレスをロードすることによってプログラムAにかかるスレッドを実行することができる。また、情報処理装置1b~1dは、データBが割り当てられているアドレスをロードすることによってデータBを読み出すことができる。また、情報処理装置1a~1dは仮想アドレスを指定してデータをストアすることができる。本発明の第1の実施形態の情報処理装置1a~1dはコンピュータ上で後述するオペレーティングシステムOSプログラム41を実行することによって実現される。本発明の第1の実施形態の情報処理装置1a~1dは、サーバ、コンピュータ端末、組み込み機器の別を問わずどのようなコンピュータであっても実現可能である。図3は、情報処理装置1a~1dの構成例を説明する図である。本発明の第1の実施形態を実現するための情報処理装置1a~1dの構成は同一であるので、ここでは情報処理装置1a~1dの代表として情報処理装置1aの構成を説明する。図3に示すように、情報処理装置1aは、CPU10、DRAM第1メモリ20、ネットワークインタフェースI/F30、およびNANDメモリ第2メモリ40を具備する。CPU10、DRAM20、ネットワークI/F30、およびNANDメモリ40はバスで接続されている。ネットワークI/F30は、ネットワーク2を介して他の情報処理装置1b~1dと通信を行うための通信インタフェースである。なお、以降、情報処理装置1aを基準とした場合において、情報処理装置1aをローカル、他の情報処理装置1b~1dをリモートと表現することがある。NANDメモリ40は、ローカルが主体となってロード/ストアするデータを記憶するストレージである。また、NANDメモリ40には、リモートのデータのキャッシュが格納される。NANDメモリ40は、ページと呼ばれる単位サイズ毎に読み出し/書き込みが実行され、ページよりも大きいブロックと呼ばれる単位サイズ毎にデータの消去が実行される。DRAM20の少なくとも一部は、CPU10がNANDメモリ40にアクセスする際のキャッシュメモリとして使用される。DRAM20上のデータは、単位サイズ毎に管理され、当該管理の単位もページと呼ばれる。以降、NANDメモリ40の読み出し/書き込みの単位を第1ページ、DRAM20の管理単位を第2ページと表記して区別する。第1ページと第2ページとは同一のサイズであってもよいし異なるサイズであってもよい。ここでは、第1ページは第2ページの2倍のサイズを有するものとする。図4は、DRAM20、ローカルのNANDメモリ40、およびリモートのNANDメモリ40の間のデータの対応関係を説明する図である。図示するように、ローカルのNANDメモリ40には、ローカルが主体となってロード/ストアする第1ページ単位のデータ301が格納されている。また、リモートのNANDメモリ40には、当該リモートが主体となってロード/ストアする第1ページ単位のデータ401が格納されており、当該データ401は、ローカルのNANDメモリ40にもデータ302としてキャッシュされている。即ち、データ302は、データ401をコピーしたものである。そして、データ301は2つの第2ページ単位のデータに分割されてデータ201、202としてDRAM20上にキャッシュされており、データ201、202は仮想アドレス空間100上の領域101、102に夫々割り当てられている。また、NANDメモリ40にキャッシュされているデータ302は、2つの第2ページ単位のデータに分割されてデータ203、204としてDRAM20上にキャッシュされており、データ203、204は仮想アドレス空間100上の領域103、104に夫々割り当てられている。DRAM20上にキャッシュされたデータ201、202の仮想アドレス空間100上の領域への割り当ては、後述するページテーブルを介して行われる。なお、図4における仮想アドレス空間100上に割り当てられた領域101~104が、図2におけるセグメント又はセグメントの一部に相当する。また、図2に示すように、仮想アドレス空間100には、複数の情報処理装置1a~1dが備えるストレージに保持しているデータが割り当てられている。このため、他の情報処理装置例えば、情報処理装置1dが仮想アドレス空間100上に割り当てた領域105、106について、情報処理装置1aがページテーブルを介して情報処理装置1aのDRAM20と対応付けしていない場合には、仮想アドレス空間100上の領域105、106はDRAM20に対応付けられていないこととなる。このような場合、情報処理装置1aが仮想アドレス空間上の領域105、106に対応する仮想アドレスにより、領域105、106にアクセスすると、ページフォールトが発生する。CPU10は、OSプログラム41を実行することによって、制御部として機能する。即ち、OSプログラム41の制御の下で、CPU10は、仮想アドレスを使用してNANDメモリ40上のデータを識別するとともに、DRAM20をキャッシュメモリとして使用してNANDメモリ40上のデータにアクセスすることができる。CPU10は、ページフォールトの発生をトリガとしてDRAM20へのキャッシュを実行する。即ち、CPU10は、目的のデータを指定する仮想アドレスに当該目的のデータが存在しない場合に、ローカルのNANDメモリ40から当該目的のデータを読み出して、読み出したデータをDRAM20に格納する。CPU10は、ローカルのNANDメモリ40に前記目的のデータが格納されていない場合には、リモートのNANDメモリ40から前記目的のデータを読み出して、読み出した目的のデータをDRAM20に格納する。ここで、一般的な情報処理装置においては、メインメモリ、ローカルのストレージ、ネットワークの向こう側のストレージの夫々に対するアクセス方法が異なる。例えば、メインメモリ上のデータにはプログラム上で名前が付けられ、その名前でアクセスすることが可能である。また、ローカルのストレージにはデータの一塊としてファイルが存在し、read/writeというアクセス方式によってアクセスされる。ネットワークの向こう側のストレージにはHTTPやFTPなどのプロトコルでアクセスされる。これに対し、本発明の第1の実施形態によれば、情報処理装置1a~1dの夫々は仮想アドレス空間上でロード/ストアすることによってDRAM20およびローカルのNANDメモリ40へのアクセスのみならずリモートのNANDメモリ40へのアクセスを行うことができるので、アクセス先のデータがDRAM20、ローカルのNANDメモリ40、およびリモートのNANDメモリ40のうちの何れに存在するかを意識せずにプログラミングを行うことができるようになる。即ち、ネットワーク透過な単一レベル記憶を実現することができる。なお、NANDメモリ40に格納されているデータのうち、おおもとのデータをマスタデータということとする。即ち、NANDメモリ40には、マスタデータと、リモートのNANDメモリ40に格納されているマスタデータのキャッシュデータ即ちリモートのNANDメモリ40に格納されているマスタデータからコピーされたデータが格納されることになる。図4においては、データ301およびデータ401がマスタデータに該当する。また、本発明の第1の実施形態によれば、マスタデータには夫々排他的に仮想アドレスが割り当てられる。情報処理装置1a~1d間で仮想アドレスの排他性を確保する手法は特定の手法に限定されない。例えば、仮想アドレスの一部例えば上位ビットとして情報処理装置1a~1dのIPアドレスを使用することによって仮想アドレスの排他性を確保するようにしてもよい。また、仮想アドレスを排他的に生成する専用のスレッドを情報処理装置1a~1dのうちの何れかで動作させるようにしてもよい。また、仮想アドレスを排他的に生成する専用のハードウェアをネットワーク2に接続しておくようにしてもよい。NANDメモリ40は、OSプログラム41、アドレス管理情報42、ファイル管理情報43およびサーチルール情報44を保持する。これらのデータの一部もしくは全部を、マスタデータとしてローカルのNANDメモリ40に保持させてもよいし、これらのデータの一部もしくは全部のマスタデータをリモートのNANDメモリ40に保持させて、ローカルのNANDメモリ40に当該マスタデータをキャッシュするようにしてもよい。OSプログラム41は、CPU10を本発明の実施形態の制御部として機能させるためのコンピュータプログラムである。アドレス管理情報42は、各記憶装置間のアドレスの対応関係を管理する情報である。図5は、アドレス管理情報42の構成を説明する図である。図示するように、アドレス管理情報42は、仮想アドレスとDRAM20上の物理アドレスとの対応関係を記述したページテーブル421と、仮想アドレスとローカルのNANDメモリ40の物理アドレスとの対応関係を記述した第1アドレス変換テーブル422と、ローカルのNANDメモリ40とリモートのNANDメモリ40の物理アドレスとの対応関係を記述した第2アドレス変換テーブル423を具備する。図6は、ページテーブル421のデータ構成例を説明する図である。ページテーブル421が参照される際には、変換対象の仮想アドレスは、MSBMostSignificantBitから仮想ページアドレスとページ内オフセットとに分割される。ここでのページは第2ページである。ページテーブル421を構成する夫々のエントリは、DRAM20の物理ページアドレスが記述されるフィールド4211と、データが有効であるか否かを示す有効ビットが格納されるフィールド4212と、ストア処理が許可されているか否かを示す書込可ビットが格納されるフィールド4213と、DRAM20上で書き込みが行われたか否かを示す書込済ビットが格納されるフィールド4214とを備えており、仮想ページアドレスをインデックスとして配列されている。変換対象の仮想アドレスに含まれる仮想ページアドレスをインデックスとする物理ページアドレスにページ内オフセットをマージすると、前記変換対象の仮想アドレスに対応するDRAM20の物理アドレスが得られる。図7は、第1アドレス変換テーブル422のデータ構成例を説明する図である。第1アドレス変換テーブル422が参照される際には、変換対象の仮想アドレスは、MSBから仮想ページアドレスとページ内オフセットとに分割される。ここでのページとは第1ページである。第1アドレス変換テーブル422を構成する夫々のエントリは、ローカルのNANDメモリ40の物理ページアドレスが記述されるフィールド4221と、データが有効であることを示す有効ビットが格納されるフィールド4222とを備えており、仮想ページアドレスをインデックスとして配列されている。変換対象の仮想アドレスに含まれる仮想ページアドレスをインデックスとする物理ページアドレスにページ内オフセットをマージすると、前記変換対象の仮想アドレスに対応する、ローカルのNANDメモリ40の物理アドレスが得られる。図8は、第2アドレス変換テーブル423のデータ構成例を説明する図である。第2アドレス変換テーブル423が参照される際には、ローカルのNANDメモリ40における変換対象の物理アドレスは、MSBから物理ページアドレスとページ内オフセットとに分割される。ここでのページとは第1ページである。第2アドレス変換テーブル423を構成する夫々のエントリは、リモートのNANDメモリ40の物理ページアドレスが記述されるフィールド4231と、データが有効であることを示す有効ビットが格納されるフィールド4232とを備えており、ローカルのNANDメモリ40の物理ページアドレスをインデックスとして配列されている。ローカルのNANDメモリ40における変換対象の物理アドレスに含まれる物理ページアドレスをインデックスとするリモートのNANDメモリ40の物理ページアドレスにページ内オフセットをマージすると、ローカルのNANDメモリ40の物理アドレスに対応する、リモートのNANDメモリ40の物理アドレスが得られる。なお、ページテーブル421、第1アドレス変換テーブル422、第2アドレス変換テーブル423は、夫々一段のテーブルで構成されるものとして説明したが、各情報のテーブルを複数段のテーブルにより構成するようにしてもよい。図9に、2段のテーブルにより構成する場合の第1アドレス変換テーブル422のデータ構成例を示す。図示するように、第1アドレス変換テーブル422は、テーブル4223とテーブル4224とに分割されて構成されており、この第1アドレス変換テーブル422が参照される際には変換対象の仮想アドレスが3つのビット列第1~第3ビット列に分割される。テーブル4223は、第1ビット列をインデックスとして参照される。テーブル4223の参照により得られたビット列と第2ビット列とはマージされる。そして、テーブル4224は、前記テーブル4223から得られたビット列と第2ビット列とがマージされて生成されたビット列をインデックスとして参照される。テーブル4224の参照により得られたビット列は第3ビット列とマージされて、ローカルのNANDメモリ40の物理アドレスが得られる。なお、本図では有効ビットを格納するフィールド4222の図示を省略したが、仮想ページアドレスを第1ビット列と第2ビット列に分割する場合にはフィールド4222をテーブル4223に持たせるようにし、ページ内オフセットを第2ビット列と第3ビット列とに分割する場合にはフィールド4222をテーブル4224に持たせるようにするとよい。また、例えばページテーブル421のデータ構成例の説明においては、仮想アドレスからローカルのNANDメモリ40の物理アドレスへの片方向の変換が可能なテーブルの例を示したが、仮想アドレスとローカルのNANDメモリ40の物理アドレスとの間で双方向の変換が可能に構成されるものとする。同様に、第1アドレス変換テーブル422および第2アドレス変換テーブル423は、双方向の変換が可能に構成される。ファイル管理情報43は、ファイルの属性を管理する情報である。ファイル管理情報43により管理される属性には、割り当てられた仮想アドレス、サイズ、アクセスコントロールリストACL、更新時刻、immビット、マスタビットマスタ情報などが存在する。ここで、immビットとは、複数のリモートからの同時アクセスがある場合にある変更がただちに他のアクセス内容にも反映されるか否かを規定する情報であり、マスタビットは、ローカルのNANDメモリ40に格納されている対象のファイルがマスタデータであるか否かを示す情報である。ファイル管理情報43は、ディレクトリ毎にメタデータとしてNANDメモリ40に保持される。図10-1は、ディレクトリ構成の一例を示す図であり、図10-2は、図10-1に示すディレクトリ構成例に対応するファイル管理情報43のデータ構成例を示す図である。図10-1に示すディレクトリ構成によれば、ディレクトリ501の下にファイル502、ファイル503およびサブディレクトリ504が存在する。ディレクトリ501にかかるファイル管理情報43は、図10-2に示すように、メインテーブル431とディレクトリ501に属する要素ファイル502、ファイル503、サブディレクトリ504毎のACLを記述したACLテーブル432とを備えている。ファイルファイル502、503に対するACLテーブル432には、ユーザ毎に読み出し許可ビットr、書き込み許可ビットw、および実行許可ビットxが設定される。ディレクトリ501に属するディレクトリサブディレクトリ504に対するACLテーブル432には、検索許可ビットs、追加許可ビットa、および削除許可ビットdが設定される。メインテーブル431は、ディレクトリ501に属する要素の夫々について、仮想アドレス、サイズ、ACLテーブル432の格納位置を示すポインタ、更新時刻time、immビット、およびマスタビットが記述されるエントリが登録されて構成されている。なお、以降、マスタビットが1のファイルはマスタデータであることを示し、immビットが1のファイルは複数のリモートからの同時アクセスが禁止されているファイルであることを示すものとする。図11は、サーチルール情報44のデータ構成例を説明する図である。図示するように、サーチルール情報44には、パスここでは一例として絶対パス毎に参照先の仮想アドレスが登録されて構成されている。サーチルール情報44への仮想アドレスの登録の手法は特に限定されない。次に、本発明の第1の実施形態の情報処理装置1a~1dの動作を説明する。ここでは代表として情報処理装置1aの動作を説明する。図12は、セグメントが最初に参照されたときのOSプログラム41に基づく情報処理装置1aの動作を説明するフローチャートである。以降、動作の主体をCPU10として説明し、特に断りがない場合はOSプログラム41による制御の下で動作が行われるものとする。なお、セグメントの参照自体を実行させるプログラムはOSプログラム41だけに限定されない。セグメントの最初の参照は、パスを用いて行われる。CPU10は、最初にセグメントの参照を行う際、サーチルール情報44に基づいて、参照のためのパスに対応する仮想アドレスを求めるステップS1。なお、参照に用いられたパスが相対パスであった場合には、CPU10は、OSプログラム41の機能により絶対パスを求めて、当該求めた絶対パスを用いてサーチルール情報44を検索するようにしてよい。そして、CPU10は、ページテーブル421のうちの前記求めた仮想アドレスに対応するエントリのフィールド4221に、DRAM20の物理ページアドレスをセットするステップS2。フィールド4221にセットする物理ページアドレスを求める方法は特に限定されない。そして、CPU10は、同じエントリのフィールド4212、4213、4214に夫々有効ビット、書込可ビット、書込済ビットをセットするステップS3。ここでは、有効ビットとして有効でない旨を示す0がセットされ、書込済ビットとして書き込み済みでない旨を示す0がセットされる。書込可ビットは、ACLテーブル432の書き込み許可ビットwの値とimmビットの値に基づいて値がセットされる。例えば、書き込み許可ビットwが書き込み禁止の旨を示す0であるか、またはimmビットが同時アクセスの際に変更がたたちに反映する旨を示す1である場合には、書込可ビットとして、書き込みを禁止する旨の0がセットされる。そして、CPU10は、最初のページにアクセスを行いステップS4、動作を終了する。図13は、ページフォールトが発生した際の情報処理装置1aの動作を説明するフローチャートである。ページフォールトは、ページテーブル421上で、ロード/ストアを行った際に目的のデータを指定する仮想ページアドレスの有効ビットの値が0である場合には他には書込み禁止部に書込んだ場合にも発生する。ページフォールトが発生すると、CPU10は、ローカルのNANDメモリ40に目的のデータが存在するか否かを判定するステップS11。ローカルのNANDメモリ40に目的のデータが存在するか否かは、第1アドレス変換テーブル422上の対応するエントリに設定されている有効ビットの値により判定することができる。ローカルのNANDメモリ40に目的のデータが存在しない場合ステップS11、No、CPU10は、リモートのNANDメモリ40に目的のデータが存在するか否かを判定するステップS12。リモートのNANDメモリ40に目的のデータが存在するか否かは、第2アドレス変換テーブル423に設定されている有効ビットの値により判定することができる。リモートのNANDメモリ40に目的のデータが存在しない場合ステップS12、No、CPU10はエラー処理を実行するステップS13。なお、エラー処理はどのような処理であってもよい。リモートのNANDメモリ40に目的のデータが存在する場合ステップS12、Yes、CPU10は、リモートのNANDメモリ40に格納されている目的のデータをローカルのNANDメモリ40に格納するステップS14。ローカルのNANDメモリ40に目的のデータが存在する場合ステップS11、Yes、またはステップS14の処理の後、CPU10は、ページテーブル421の対応するエントリの有効ビットに1を、書込済ビットに0を夫々セットするステップS15。そして、CPU10は、DRAM20における前記エントリのフィールド4211に記述されている物理アドレスに、前記ローカルのNANDメモリ40に格納した目的のデータを読み込んでステップS16、動作を終了する。図14は、情報処理装置1aがDRAM20上で上書きしたセグメントをNANDメモリ40に退避させる動作を説明するフローチャートである。セグメントの退避は、例えば電源オフ時や、DRAM20が溢れたときなどに発生する。セグメントの退避時には、CPU10は、まず、ローカルのNANDメモリ40に退避対象のデータを追記するステップS21。そして、CPU10は、ローカルの第1アドレス変換テーブル422を更新するステップS22。具体的には、CPU10は、ローカルの第1アドレス変換テーブル422における対応するエントリのフィールド4221に格納されている物理ページアドレスを追記先の物理ページアドレスで更新するとともに、当該エントリの有効ビットの値を1にセットする。そして、CPU10は、リモートのファイル管理情報43を参照して、追記前の対象のデータのファイルのマスタビットの値が1であるか否かを判定するステップS23。リモートのファイル管理情報43の該当するマスタビットの値が1である場合ステップS23、Yes、CPU10は、ローカルのNANDメモリ40に追記したデータをリモートのNANDメモリ40に追記するステップS24。そして、CPU10は、リモートの第2アドレス変換テーブル423を更新するステップS25。具体的には、CPU10は、リモートの第2アドレス変換テーブル423における退避前のデータにかかるエントリの有効ビットに0をセットし、退避により追記されたデータにかかるエントリを生成して、当該生成したエントリの有効ビットに1をセットする。一方、リモートのファイル管理情報43の該当するマスタビットの値が0である場合ステップS23、No、CPU10は、リモートの第2アドレス変換テーブル422における退避前のデータにかかるエントリの有効ビットに0をセットするステップS26。ステップS25またはステップS26の処理の後、CPU10は、ローカルのページテーブル421における対応するエントリの書込済ビットに1をセットしステップS27、動作を終了する。immビットの値が1となっているファイル、即ち複数のリモートからの同時アクセスの際に変更がただちに反映されるべきファイルに対して最初の書き込みを行った際には、CPU10は次の動作を実行する。図15は、同時アクセスの際に変更がただちに反映されるべきファイルに最初に書き込みを行なった場合の情報処理装置1aの動作を説明するフローチャートである。まず、CPU10は、ローカルのページテーブル421における書き込み先のデータにかかるエントリの書込済ビットおよび書込可ビットに1をセットするステップS31。そして、CPU10は、ローカルの第1アドレス変換テーブル422における書き込み先のデータにかかるエントリの有効ビットに0をセットしステップS32、リモートの第1アドレス変換テーブル422における書き込み先のデータにかかるエントリの有効ビットに0をセットするステップS33。そして、CPU10は、リモートのページテーブル421における書き込み先のデータにかかるエントリの有効ビットを0としステップS34、動作を終了する。この動作は最新のデータが情報処理装置1aのDRAM20にのみ存在することを示し、かつ情報処理装置1aがアクセスする際にはDRAM20のみをアクセスすることによってアクセスの高速化を実現するためのものである。このように、情報処理装置1aは、immビットの値が1となっているファイルに書き込みを行うと、情報処理装置1b~1dのページテーブル421における前記ファイルに対応するエントリを無効化、即ち情報処理装置1b~1dのDRAM20上の対応するファイルを無効化する。この状態で、情報処理装置1bが同じファイルに書き込みを行う際には、情報処理装置1bにてページフォールトが発生する。すると、情報処理装置1bは、図13にて説明した動作と図15にて説明した動作とを実行し、情報処理装置1aのDRAM20にキャッシュされているファイルが無効となる。このように、immビットが1となっているファイルに書込まれた直後には情報処理装置1a~1dのうちの複数が同時にDRAM20に有効なデータとしてキャッシュしていないので、同時アクセスの際に変更をただちに反映されるとともに最後に変更した情報処理装置1aからは高速にアクセスすることができる。なお一旦書込まれた後に読み出す場合には、次の書込みが発生するまではそれぞれの情報処理装置においてキャッシュすることが可能である。以上述べたように、本発明の第1の実施形態によれば、情報処理装置1aは、DRAM20と、不揮発性のストレージとしてのNANDメモリ40と、OSプログラム41による制御に基づいて制御部として機能して、NANDメモリ40にアクセスする際にDRAM20をキャッシュメモリとして使用するCPU10と、を備え、制御部としてのCPU10は、ローカルおよびリモートがNANDメモリ40に保持するデータの夫々を仮想アドレスを用いて識別し、目的のデータに仮想アドレスを用いてアクセスした際にページフォールトが発生したとき、ローカルおよびリモートのNANDメモリ40を検索し、目的のデータがローカルにある場合にはローカルのNANDメモリ40から、目的のデータがリモートにある場合にはリモートのNANDメモリ40から、目的のデータを読み出して、読み出した目的のデータをDRAM20にキャッシュさせる、ように構成したので、アクセス先のデータがDRAM20、ローカルのNANDメモリ40、およびリモートのNANDメモリ40のうちの何れに存在するかを意識せずにプログラミングを行うことができるようになる。即ち、ネットワーク透過な単一レベル記憶を実現することができる。また、制御部としてのCPU10は、目的のデータがリモートのNANDメモリ40にある場合には、リモートから読み出した目的のデータをローカルのNANDメモリ40にキャッシュさせる、ように構成したので、ローカルでは、ネットワーク2が急に切断されても、NANDメモリ40にキャッシュされているリモートのデータを使用して作業を続行することができるようになる。また、制御部としてのCPU10は、目的のデータをDRAM20にキャッシュさせた際、ページテーブル421における該当するエントリを有効化し、DRAM20にキャッシュされている目的のデータに最初の書き込みを行った際、リモートのページテーブル421における該当するエントリを無効化する、ように構成したので、複数の情報処理装置からの1つのデータに対する同時アクセスする場合に変更をただちに反映することができるようになる。また、制御部としてのCPU10は、NANDメモリ40が保持するデータがマスタデータであるか否かを示すマスタ情報を管理し、DRAM20にキャッシュされているデータを退避させる際に、退避対象のデータをローカルのNANDメモリ40に退避させるか、またはローカルおよびリモートのNANDメモリ40の両方に退避させるかを、マスタ情報に基づいて決定する、ように構成した。なお、以上の説明においては、制御部としてのCPU10は、リモートのNANDメモリ40に格納されているマスタデータにアクセスする際には、ローカルのNANDメモリ40に前記マスタデータのキャッシュを格納するものとして説明したが、当該マスタデータのキャッシュをローカルのNANDメモリ40に格納しないようにしてもよい。また、マスタデータのキャッシュをローカルのNANDメモリ40に置くか否かを示す属性情報をファイル管理情報43に保持させ、CPU10は、当該属性情報に基づいてNANDメモリ40に対象のデータをキャッシュさせるか否かを決定するように構成してもよい。第2の実施形態第2の実施形態においては、情報処理装置は、ローカルのCPUよりも効率よくスレッドを実行できるCPUを具備するリモートがある場合には、当該リモートのCPUに前記スレッドを実行させるようにする。第2の実施形態の夫々の情報処理装置は、CPUのリソース情報を仮想アドレス空間に置いておき、仮想アドレス空間に置かれたCPU毎のリソース情報を参照することによって、ローカルのCPUとリモートのCPUとの内から最も効率よくスレッドを実行できるCPUを求める。図16は、第2の実施形態の情報処理装置の構成を説明する図である。なお、第2の実施形態の情報処理装置は、第1の実施形態と同一のハードウェア構成のコンピュータにより実現される。したがって、ハードウェア構成要素には第1の実施形態と同一の符号を付すこととする。また、第1の実施形態と同じソフトウェア構成要素には第1の実施形態と同一の符号を付して重複する説明を省略する。図16に示すように、情報処理装置1aは、CPU10、DRAM20、ネットワークI/F30、およびNANDメモリ40を備えている。NANDメモリ40は、スケジューラプログラム46を具備するOSプログラム45と、アドレス管理情報42と、ファイル管理情報43と、サーチルール情報44と、リソース情報47とを備えている。スケジューラプログラム46は、ローカルにてCPU10が新規にスレッドを実行する際に、ローカルおよびリモートのCPU10のうち、最も効率よく当該新規のスレッドを実行することができるCPU10を求め、求めたCPU10に当該新規のスレッドを実行させる。なお、ここでは、最も効率がよいとは、一例として、当該新規のスレッドの実行結果をローカルの情報処理装置が得るまでの時間が最も早いことをいうこととする。リソース情報47は、MIPS値や実行スレッド数など、CPU10の実行性能の判断材料となる情報が記述されている。リソース情報47は、スケジューラプログラム46によって逐次更新される。図17は、リソース情報47が仮想アドレス空間に割り当てられている様子を説明する図である。図示するように、夫々のCPU10にかかるリソース情報47は、夫々仮想アドレス空間100に割り当てられており、ローカルのCPU10は、スケジューラプログラム46に基づいて、自CPU10にかかるリソース情報47のみならずリモートのCPU10にかかるリソース情報47を参照することができるようになっている。図18は、新規のスレッドを実行する際の第2の実施形態の情報処理装置1aの動作を説明するフローチャートである。まず、CPU10は、ネットワーク2に接続されている情報処理装置1a~1dが具備する全てのCPU10にかかるリソース情報47を参照してステップS41、参照した夫々のリソース情報47に基づいて、実行対象のスレッドを実行したときの実行時間をCPU10毎に算出するステップS42。CPU10毎の実行時間は例えば次のようにして求めることができる。MIPS値を、実行中のスレッド数に1を加算した値で除算する。そして、当該除算により得られた値に、実行対象のスレッドの実行に必要なセグメントのサイズをネットワーク速度で除した値を加算すると、結果が得られるまでにかかるトータルの実行時間が得られる。ステップS42に続いて、CPU10は、最も実行時間が短いCPU10に、前記実行対象のスレッドを実行させステップS43、動作が終了となる。なお、リモートのCPU10にスレッドを実行させる手法は特定の手法に限定されない。例えば、ローカルのCPU10は、リモートのCPU10のスレッドキューに対象のスレッドをエンキューするようにしてもよい。また、ローカルのCPU10は、リモートのCPU10にリクエストを発行して前記実行対象のスレッドを実行させるようにしてもよい。また、ローカルのCPU10は、実行時間が最も短いCPU10にスレッドを実行させることとしたが、ローカルのCPU10よりも実行時間が短い任意のCPU10にスレッドを実行させるようにしてもよい。また、情報処理装置1aは、CPU10を複数備えていてもよい。その場合には、リソース情報47は、情報処理装置1aが備えるCPU10毎に用意される。このように、本発明の第2の実施形態によると、ローカルのNANDメモリ40はローカルのCPU10にかかるリソース情報47を保持し、制御部としてのCPU10は、新規にスレッドを実行する際、ローカルおよびリモートのCPU10にかかるリソース情報47を仮想アドレスを使用して読み出して、前記読み出したリソース情報47に基づいてローカルのCPU10よりも効率よく前記スレッドを実行可能なCPU10を求め、前記求めたCPU10に前記スレッドを実行させる、ように構成したので、スレッドを効率よく実行することが可能となる。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。