(57)【特許請求の範囲】
【請求項１】
不揮発性の記録媒体であるＮＶメモリが有する１以上の領域のうちの１以上の領域を１つのファイルとし、当該ファイルを識別するファイル識別データと当該ファイルを構成する１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりファイルを管理するファイル管理手段と、
プログラムに従いプロセスを実行する実行手段から当該プロセスに対する領域の割り当ての要求を受け付ける受付手段と、
前記要求に応じて、前記ＮＶメモリが有する１以上の領域のうちの、前記ファイル管理手段によって管理されているいずれのファイルを構成する領域でもない領域のうちから１以上の領域をプロセスに割り当て、当該プロセスを識別するプロセス識別データと当該プロセスに割り当てた１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりプロセスに割り当てられている領域を管理する割当手段と
を備え、
前記ファイル管理手段は、前記割当手段によっていずれかの領域がプロセスに割り当てられた場合、当該割り当てられた領域を識別する領域識別データを、いずれかのファイルを識別するファイル識別データに対応付けて記憶手段に記憶させることにより、当該割り当てられた領域をファイルとして管理する
情報処理装置。
【請求項２】
不揮発性の記録媒体であるＮＶメモリが有する１以上の領域のうちの１以上の領域を１つのファイルとし、当該ファイルを識別するファイル識別データと当該ファイルを構成する１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりファイルを管理するファイル管理手段と、
プログラムに従いプロセスを実行する実行手段から当該プロセスに対する領域の割り当ての要求を受け付ける受付手段と、
前記ファイル管理手段によって管理されている或るファイルを構成する１以上の領域を識別する領域識別データを取得し、当該取得した領域識別データを未割当の領域を識別する領域識別データとして記憶手段に記憶させることにより未割当の領域を管理し、前記要求に応じて、管理している未割当の１以上の領域をプロセスに割り当て、当該プロセスを識別するプロセス識別データと当該プロセスに割り当てた１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりプロセスに割り当てられている領域を管理するとともに、当該プロセスに割り当てた領域を未割当として管理している領域から除外する割当手段と
を備える情報処理装置。
【請求項３】
前記割当手段は、前記要求に応じたプロセスへの領域の割り当てを行う前に、前記或るファイルを構成する全ての領域の領域識別データを取得し、取得した領域識別データを未割当の領域を識別する領域識別データとして記憶手段に記憶させる
請求項２に記載の情報処理装置。
【請求項４】
前記割当手段は、前記受付手段によって前記要求が受け付けられたとき、管理している未割当の領域の数量が前記要求に応じた数量に対し不足する場合、前記或るファイルを構成する１以上の領域の領域識別データのうち当該不足を補う数量の未取得の領域識別データを取得し、当該取得した領域識別データを未割当の領域を識別する領域識別データとして記憶手段に記憶させた後、前記要求に応じたプロセスに対する領域の割り当てを行う
請求項２に記載の情報処理装置。
【請求項５】
不揮発性の記録媒体であるＮＶメモリが有する１以上の領域のうちの１以上の領域を１つのファイルとし、当該ファイルを識別するファイル識別データと当該ファイルを構成する１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりファイルを管理するファイル管理手段と、
プログラムに従いプロセスを実行する実行手段から当該プロセスに対する領域の割り当ての要求を受け付ける受付手段と
を備え、
前記ファイル管理手段は、前記要求に応じて、前記ＮＶメモリが有する１以上の領域のうちの、管理しているいずれのファイルを構成する領域でもない領域のうちの１以上の領域を識別する領域識別データを、新たなファイル識別データに対応付けて記憶手段に記憶させることにより、当該１以上の領域を新たなファイルとして管理し、
前記要求に応じて、前記新たなファイルを構成する１以上の領域をプロセスに割り当て、当該プロセスを識別するプロセス識別データと当該プロセスに割り当てた１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりプロセスに割り当てられている領域を管理する割当手段を備える
情報処理装置。
【請求項６】
情報処理装置が、不揮発性の記録媒体であるＮＶメモリが有する１以上の領域のうちの１以上の領域を１つのファイルとし、当該ファイルを識別するファイル識別データと当該ファイルを構成する１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりファイルを管理するステップと、
前記情報処理装置が、プログラムに従いプロセスを実行する実行手段から当該プロセスに対する領域の割り当ての要求を受け付けるステップと、
前記情報処理装置が、前記要求に応じて、前記ＮＶメモリが有する１以上の領域のうちの、管理しているいずれのファイルを構成する領域でもない領域のうちから１以上の領域をプロセスに割り当て、当該プロセスを識別するプロセス識別データと当該プロセスに割り当てた１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりプロセスに割り当てられている領域を管理するステップと、
前記情報処理装置が、いずれかの領域をプロセスに割り当てた場合、当該割り当てた領域を識別する領域識別データを、いずれかのファイルを識別するファイル識別データに対応付けて記憶手段に記憶させることにより、当該割り当てた領域をファイルとして管理するステップと
を備える情報処理方法。
【請求項７】
情報処理装置が、不揮発性の記録媒体であるＮＶメモリが有する１以上の領域のうちの１以上の領域を１つのファイルとし、当該ファイルを識別するファイル識別データと当該ファイルを構成する１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりファイルを管理するステップと、
前記情報処理装置が、プログラムに従いプロセスを実行する実行手段から当該プロセスに対する領域の割り当ての要求を受け付けるステップと、
前記情報処理装置が、管理している或るファイルを構成する１以上の領域を識別する領域識別データを取得し、当該取得した１以上の領域識別データを未割当の領域を識別する領域識別データとして記憶手段に記憶させることにより未割当の領域を管理するステップと、
前記情報処理装置が、前記要求に応じて、管理している未割当の１以上の領域をプロセスに割り当て、当該プロセスを識別するプロセス識別データと当該プロセスに割り当てた１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりプロセスに割り当てられている領域を管理するステップと、
前記情報処理装置が、プロセスに割り当てた１以上の領域を未割当の領域として管理している領域から除外するステップと
を備える情報処理方法。
【請求項８】
情報処理装置が、不揮発性の記録媒体であるＮＶメモリが有する１以上の領域のうちの１以上の領域を１つのファイルとし、当該ファイルを識別するファイル識別データと当該ファイルを構成する１以上の領域を識別する領域識別データとを対応付けてファイル管理情報として記憶手段に記憶させることによりファイルを管理するステップと、
前記情報処理装置が、プログラムに従いプロセスを実行する実行手段から当該プロセスに対する領域の割り当ての要求を受け付けるステップと、
前記情報処理装置が、前記要求に応じて、前記ＮＶメモリが有する１以上の領域のうちの、管理しているいずれのファイルを構成する領域でもない領域のうちの１以上の領域を識別する領域識別データを、新たなファイル識別データに対応付けて記憶手段に記憶させることにより、当該１以上の領域を新たなファイルとして管理するステップと、
前記情報処理装置が、前記要求に応じて、前記新たなファイルを構成する１以上の領域をプロセスに割り当て、当該プロセスを識別するプロセス識別データと当該プロセスに割り当てた１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりプロセスに割り当てられている領域を管理するステップと
を備える情報処理方法。
【請求項９】
コンピュータに、
不揮発性の記録媒体であるＮＶメモリが有する１以上の領域のうちの１以上の領域を１つのファイルとし、当該ファイルを識別するファイル識別データと当該ファイルを構成する１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりファイルを管理する処理と、
プログラムに従いプロセスを実行する実行手段から当該プロセスに対する領域の割り当ての要求を受け付ける処理と、
前記要求に応じて、前記ＮＶメモリが有する１以上の領域のうちの、管理しているいずれのファイルを構成する領域でもない領域のうちから１以上の領域をプロセスに割り当て、当該プロセスを識別するプロセス識別データと当該プロセスに割り当てた１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりプロセスに割り当てられている領域を管理する処理と、
１以上の領域をプロセスに割り当てた場合、当該１以上の領域を識別する領域識別データを、いずれかのファイルを識別するファイル識別データに対応付けて記憶手段に記憶させることにより、当該１以上の領域をファイルとして管理する処理と
を実行させるためのプログラム。
【請求項１０】
コンピュータに、
不揮発性の記録媒体であるＮＶメモリが有する１以上の領域のうちの１以上の領域を１つのファイルとし、当該ファイルを識別するファイル識別データと当該ファイルを構成する１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりファイルを管理する処理と、
プログラムに従いプロセスを実行する実行手段から当該プロセスに対する領域の割り当ての要求を受け付ける処理と、
管理している或るファイルを構成する１以上の領域を識別する領域識別データを取得し、当該取得した１以上の領域識別データを未割当の領域を識別する領域識別データとして記憶手段に記憶させることにより未割当の領域を管理する処理と、
前記要求に応じて、管理している未割当の１以上の領域をプロセスに割り当て、当該プロセスを識別するプロセス識別データと当該プロセスに割り当てた１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりプロセスに割り当てられている領域を管理する処理と、
プロセスに割り当てた１以上の領域を未割当の領域として管理している領域から除外する処理と
を実行させるためのプログラム。
【請求項１１】
コンピュータに、
不揮発性の記録媒体であるＮＶメモリが有する１以上の領域のうちの１以上の領域を１つのファイルとし、当該ファイルを識別するファイル識別データと当該ファイルを構成する１以上の領域を識別する領域識別データとを対応付けてファイル管理情報として記憶手段に記憶させることによりファイルを管理する処理と、
プログラムに従いプロセスを実行する実行手段から当該プロセスに対する領域の割り当ての要求を受け付ける処理と、
前記要求に応じて、前記ＮＶメモリが有する１以上の領域のうちの、管理しているいずれのファイルを構成する領域でもない領域のうちの１以上の領域を識別する領域識別データを、新たなファイル識別データに対応付けて記憶手段に記憶させることにより、当該１以上の領域を新たなファイルとして管理する処理と、
前記要求に応じて、前記新たなファイルを構成する１以上の領域をプロセスに割り当て、当該プロセスを識別するプロセス識別データと当該プロセスに割り当てた１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりプロセスに割り当てられている領域を管理する処理と
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリを使用する情報処理装置等に関するものである。
【背景技術】
【０００２】
従来、ＳＳＤ（非特許文献１参照）や、ＥＥＰＲＯＭ（非特許文献２参照）などの不揮発性メモリ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ、以下、適宜、ＮＶメモリ）が開発されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“ＳＳＤとは”、［online］、IT用語辞典 e-Words、［２０１３年１月２３日検索］、インターネット［URL；http://e-words.jp/w/SSD.html］
【非特許文献２】“ＥＥＰＲＯＭとは”、［online］、IT用語辞典 e-Words、［２０１３年１月２３日検索］、インターネット［URL；http://e-words.jp/w/EEPROM.html］
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、ＮＶメモリをメインメモリとして用いる研究、およびメインメモリをストレージとして用いる研究等により、ＮＶメモリをメインメモリとして使用する領域とストレージとして使用する領域とを区別することなく、ＮＶメモリをメインメモリおよびストレージとして使用することが可能となっている。ＮＶメモリを、メインメモリおよびストレージの両方として使用することができるということは、その両方を１つに融合できることを意味する。また、当該融合により、システムの処理性能向上につながるという利点がある。しかしながら、その一方で、ファイルシステムのブロックを直接メインメモリの一部とすることには、実装面、管理面での欠点もある。これは、つまり、従来のＮＶメモリをメインメモリおよびストレージとして用いる方法では、システムの異常終了時においてファイルシステムの不整合を起こす可能性があった。
【課題を解決するための手段】
【０００７】
本発明は、不揮発性の記録媒体であるＮＶメモリが有する１以上の領域のうちの１以上の領域を１つのファイルとし、当該ファイルを識別するファイル識別データと当該ファイルを構成する１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりファイルを管理するファイル管理手段と、プログラムに従いプロセスを実行する実行手段から当該プロセスに対する領域の割り当ての要求を受け付ける受付手段と、前記要求に応じて、前記ＮＶメモリが有する１以上の領域のうちの、前記ファイル管理手段によって管理されているいずれのファイルを構成する領域でもない領域のうちから１以上の領域をプロセスに割り当て、当該プロセスを識別するプロセス識別データと当該プロセスに割り当てた１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりプロセスに割り当てられている領域を管理する割当手段とを備え、前記ファイル管理手段は、前記割当手段によっていずれかの領域がプロセスに割り当てられた場合、当該割り当てられた領域を識別する領域識別データを、いずれかのファイルを識別するファイル識別データに対応付けて記憶手段に記憶させることにより、当該割り当てられた領域をファイルとして管理する情報処理装置を第１の態様として提供する。
【０００８】
このような構成により、ＮＶメモリをメインメモリおよびストレージとして使用する場合に、システムの異常終了時におけるファイルシステムの不整合を減らすことができる。
【０００９】
また、本発明は、不揮発性の記録媒体であるＮＶメモリが有する１以上の領域のうちの１以上の領域を１つのファイルとし、当該ファイルを識別するファイル識別データと当該ファイルを構成する１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりファイルを管理するファイル管理手段と、プログラムに従いプロセスを実行する実行手段から当該プロセスに対する領域の割り当ての要求を受け付ける受付手段と、前記ファイル管理手段によって管理されている或るファイルを構成する１以上の領域を識別する領域識別データを取得し、当該取得した領域識別データを未割当の領域を識別する領域識別データとして記憶手段に記憶させることにより未割当の領域を管理し、前記要求に応じて、管理している未割当の１以上の領域をプロセスに割り当て、当該プロセスを識別するプロセス識別データと当該プロセスに割り当てた１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりプロセスに割り当てられている領域を管理するとともに、当該プロセスに割り当てた領域を未割当として管理している領域から除外する割当手段とを備える情報処理装置を第２の態様として提供する。
【００１０】
このような構成により、ＮＶメモリをメインメモリおよびストレージとして使用する場合に、システムの異常終了時におけるファイルシステムの不整合を減らすことができる。
【００１１】
また、本発明は、上記の第２の態様にかかる情報処理装置において、前記割当手段は、前記要求に応じたプロセスへの領域の割り当てを行う前に、前記或るファイルを構成する全ての領域の領域識別データを取得し、取得した領域識別データを未割当の領域を識別する領域識別データとして記憶手段に記憶させる、という構成を第３の態様として提供する。
【００１２】
このような構成により、ＮＶメモリをメインメモリおよびストレージとして使用する場合に、システムの異常終了時におけるファイルシステムの不整合を減らすことができる。
【００１３】
また、本発明は、上記の第２の態様にかかる情報処理装置において、前記割当手段は、前記受付手段によって前記要求が受け付けられたとき、管理している未割当の領域の数量が前記要求に応じた数量に対し不足する場合、前記或るファイルを構成する１以上の領域の領域識別データのうち当該不足を補う数量の未取得の領域識別データを取得し、当該取得した領域識別データを未割当の領域を識別する領域識別データとして記憶手段に記憶させた後、前記要求に応じたプロセスに対する領域の割り当てを行う、という構成を第４の態様として提供する。
【００１４】
このような構成により、ＮＶメモリをメインメモリおよびストレージとして使用する場合に、システムの異常終了時におけるファイルシステムの不整合を減らすことができる。
【００１５】
また、本発明は、不揮発性の記録媒体であるＮＶメモリが有する１以上の領域のうちの１以上の領域を１つのファイルとし、当該ファイルを識別するファイル識別データと当該ファイルを構成する１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりファイルを管理するファイル管理手段と、プログラムに従いプロセスを実行する実行手段から当該プロセスに対する領域の割り当ての要求を受け付ける受付手段とを備え、前記ファイル管理手段は、前記要求に応じて、前記ＮＶメモリが有する１以上の領域のうちの、管理しているいずれのファイルを構成する領域でもない領域のうちの１以上の領域を識別する領域識別データを、新たなファイル識別データに対応付けて記憶手段に記憶させることにより、当該１以上の領域を新たなファイルとして管理し、前記要求に応じて、前記新たなファイルを構成する１以上の領域をプロセスに割り当て、当該プロセスを識別するプロセス識別データと当該プロセスに割り当てた１以上の領域を識別する領域識別データとを対応付けて記憶手段に記憶させることによりプロセスに割り当てられている領域を管理する割当手段を備える情報処理装置を第５の態様として提供する。
【００１６】
このような構成により、ＮＶメモリをメインメモリおよびストレージとして使用する場合に、システムの異常終了時におけるファイルシステムの不整合を減らすことができる。
【発明の効果】
【００１７】
本発明による情報処理装置等によれば、ＮＶメモリをメインメモリおよびストレージとして使用する場合に、システムの異常終了時におけるファイルシステムの不整合を減らすことができる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態１における情報処理装置１のブロック図
【図２】同情報処理装置１の全体動作について説明するフローチャート
【図３】同領域の割当処理について説明するフローチャート
【図４】同領域の解放処理について説明するフローチャート
【図５】同ファイル管理情報の例を示す図
【図６】同ファイル管理情報の例を示す図
【図７】同メモリ管理情報の例を示す図
【図８】同メモリ管理情報の例を示す図
【図９】同ファイル管理情報の例を示す図
【図１０】同システムの構成例を示す図
【図１１】同関数のプロトタイプ宣言の例を示す図
【図１２】同関数の呼び出しの例を示す図
【図１３】同閾値の変更例を示す図
【図１４】同メモリ割当コストの比較の実験結果を示す図
【図１５】同ＱＥＭＵの起動コマンドの例を示す図
【図１６】同不整合報告の結果を示す図
【図１７】同ファイルシステムの整合性への影響の実験結果を示す図
【図１８】同実行命令数、キャッシュミス回数の計測結果を示す図
【図１９】上記実施の形態におけるコンピュータシステムの概観図
【図２０】上記実施の形態におけるコンピュータシステムのブロック図
【発明を実施するための形態】
【００１９】
以下、本発明による情報処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。また、本実施の形態において説明する各情報の形式、内容などは、あくまで例示であり、各情報の持つ意味を示すことができれば、形式、内容などは問わない。
【００２０】
（実施の形態１）
本実施の形態において、メインメモリとして使用する領域とストレージとして使用する領域とを区別することなく、ＮＶメモリをメインメモリおよびストレージとして使用する情報処理装置１であって、メインメモリとして使用する領域をファイルシステムにて管理する情報処理装置１について説明する。なお、ここで、ストレージとは、いわゆる２次記憶装置や、補助記憶装置と呼ばれる記憶装置のことである。また、メインメモリとは、いわゆる１次記憶装置や、主記憶装置と呼ばれる記憶装置のことである。また、「メインメモリとして使用する領域」は、「実行中のプロセスが使用する領域」と言い換えてもよい。
【００２１】
図１は、本実施の形態における情報処理装置１のブロック図である。情報処理装置１は、ＮＶメモリ１１、受付部１２、ファイルシステム部１３、メモリ管理部１４を備える。また、ファイルシステム部１３は、ファイル管理情報格納手段１３１を備える。また、メモリ管理部１４は、領域識別子格納手段１４１、未使用領域検出手段１４２、ファイル管理情報追記手段１４３、領域識別子取得手段１４４、割当手段１４５を備える。
【００２２】
また、本実施の形態における情報処理装置１が備えるファイルシステム部１３、およびメモリ管理部１４は、例えば、いわゆるＯＳや、当該ＯＳのカーネルと呼ばれるものなどである。
【００２３】
ＮＶメモリ１１は、不揮発性の記録媒体である。ＮＶメモリ１１は、例えば、ＰＣＭ（Ｐａｈｓｅ  Ｃｈａｎｇｅ  Ｍｅｍｏｒｙ、相変化メモリ）や、ＭＲＡＭ、ＲｅＭＡＭ、ＥＥＰＲＯＭ、フラッシュメモリなどである。また、ＮＶメモリ１１は、通常、不揮発性メモリであれば、その形状や種類などは、問わない。また、ＮＶメモリ１１は、例えば、バイト単位アクセスが可能な不揮発性メモリであることが好適である。
【００２４】
また、ＮＶメモリ１１は、通常、１以上の領域を有する。当該領域には、通常、プロセスが使用するデータが格納される。当該プロセスは、例えば、ジョブや、タスク、スレッドなどと呼ばれる場合もある。また、当該データは、例えば、ファイルや、ファイルの一部、変数に代入された値などである。また、領域のサイズ（容量）は、通常、予め決められている。当該サイズは、例えば、４ＫＢ（キロバイト）や、５１２Ｂ（バイト）などである。また、当該一の領域は、例えば、後述のファイルシステム部１３からは、「ブロック」として使用される。また、当該一の領域は、例えば、後述のメモリ管理部１４からは、「ページ」として使用される。つまり、当該一の領域は、通常、２以上の名称で呼ばれる。また、本実施の形態において、当該ブロックのサイズと、当該ページのサイズとは、同一である。また、当該サイズは、４ＫＢであることが好適である。
【００２５】
なお、ＮＶメモリ１１が有する１以上の各領域を、以下、適宜、「ＮＶメモリ１１の領域」、または「領域」とする。また、データが書き込まれていない領域や、データの書き込みが許可されている領域などを、以下、適宜、未使用領域とする。また、データが書き込まれている領域や、データの書き込みが許可されていない領域などを、以下、適宜、使用領域とする。
【００２６】
また、ＮＶメモリ１１は、通常、一の物理アドレス空間に配置される。当該物理アドレス空間は、通常、連続した１以上の物理アドレスを有する。また、「物理アドレス空間に配置される」とは、ＮＶメモリ１１が有する１以上の各領域と、一の物理アドレスとが対応付けられることである。つまり、当該一の領域は、一の物理アドレスにより識別される。また、当該一の領域は、例えば、論理アドレスや仮想アドレスなどにより間接的に識別されてもよい。
【００２７】
また、ＮＶメモリ１１が有する１以上の各領域は、領域識別子により識別される。領域識別子とは、当該１以上の各領域を識別する情報である。領域識別子は、例えば、物理アドレスや、論理アドレス、仮想アドレスなどである。つまり、領域識別子は、当該１以上の各領域を、直接的または間接的に識別する情報であればよい。
【００２８】
また、上記、ＮＶメモリ１１の物理アドレス空間への配置は、通常、後述のファイルシステム部１３が行う。また、当該配置は、例えば、後述のメモリ管理部１４が行ってもよい。また、当該配置は、例えば、図示しないアドレス空間配置部が行ってもよい。
【００２９】
受付部１２は、指示や情報などを受け付ける。指示は、例えば、プログラムの実行の指示や、プロセスの実行の指示、プロセスへの領域の割当の指示、ファイル操作の指示などである。また、情報は、例えば、いわゆるコマンドや、当該コマンドに与える引数などである。また、これらの指示や情報は、通常、指示や情報を出力するプログラムが出力する。
【００３０】
ファイルシステム部１３は、いわゆるファイルシステムである。当該ファイルシステムは、通常、ディスクファイルシステム（ローカルファイルシステム）である。また、当該ファイルシステムは、例えば、ＰＲＡＭＦＳ（Ｐｅｒｓｉｓｔｅｎｔ  ａｎｄ  Ｐｒｏｔｅｃｔｅｄ  ＲＡＭ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）や、Ｅｘｔ２（Ｓｅｃｏｎｄ  Ｅｘｔｅｎｄｅｄ  Ｆｉｌｅｓｙｓｔｅｍ）、ＳＣＭＦＳ（Ａ  Ｆｉｌｅ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｓｔｏｒａｇｅ  Ｃｌａｓｓ  Ｍｅｍｏｒｙ）などである。また、当該ファイルシステムは、ＸＩＰ（ｅＸｅｃｕｔｅ−Ｉｎ−Ｐｌａｃｅ）をサポートしており、ＮＶメモリ１１を対象としたファイルシステムであれば、何でもよい。つまり、ファイルシステム部１３は、ＮＶメモリ１１を、いわゆるストレージとして使用する。また、ファイルシステム部１３は、通常、ＮＶメモリ１１を１以上の領域に分割し、当該一の領域を、ブロックとして使用する。
【００３１】
また、ファイルシステム部１３は、ファイルシステムであるので、ＮＶメモリ１１に保存されている１以上のファイルを管理する。「ファイルを管理する」とは、例えば、書き込みを要求されたファイルをＮＶメモリ１１に書き込むこと、読み出しを要求されたファイルをＮＶメモリ１１から読み出すこと、削除を要求されたファイルをＮＶメモリ１１から削除すること、当該書き込みに応じて、当該書き込んだファイルを管理するための情報（以下、適宜、ファイル管理情報）をファイル管理情報格納手段１３１に蓄積すること、当該削除に応じて、当該削除したファイルに対応するファイル管理情報をファイル管理情報格納手段１３１から削除すること、ファイルが書き込まれていない領域を識別する領域識別子をファイル管理情報格納手段１３１に蓄積すること、ファイルが書き込まれている領域の識別子を要求に応じてファイル管理情報格納手段１３１から取得することなどである。また、ファイルを削除することとは、例えば、ＮＶメモリ１１からはファイルを削除せず、当該ファイルに対応するファイル管理情報を削除することや、当該ファイル管理情報にファイルが削除されたことを示すフラグを付与することなどであってもよい。
【００３２】
なお、ファイルシステム部１３は、ファイルシステムであり、ＯＳの機能である。従って、「ファイルを管理する」とは、ファイルシステムが行う処理や、ファイルシステムの機能のすべてを含むと考えてよい。また、ファイルシステムには、いわゆる仮想ファイルシステムを含むと考えてもよい。
【００３３】
ここで、ファイル管理情報とは、ファイルを管理するための情報である。ファイル管理情報は、通常、少なくとも、ファイル識別子と、領域識別子とを有する。また、一のファイル識別子は、通常、１以上の領域識別子と対応付いている。ファイル識別子は、例えば、任意の文字列や、任意の数値、いわゆるファイル名などである。また、ファイル識別子は、ファイルを識別することができれば、その形式や内容などは、問わない。
【００３４】
また、ファイル管理情報は、例えば、ファイルが作成された日時や、ファイルが更新された日時、ファイルのアクセス権（パーミッション）、ファイルを作成したユーザなどのファイルの属性を示す情報を有していてもよい。また、これらの情報は、通常、一のファイル識別子に対応付いている。
【００３５】
例えば、一のファイルをＮＶメモリ１１に書き込む場合、ファイルシステム部１３は、例えば、まず、当該一のファイルを、どの１以上の領域に書き込むのかを決定する。当該１以上の領域は、通常、未使用領域である。そして、ファイルシステム部１３は、当該一のファイルを、当該決定した領域ごとの１以上のデータに分割する。そして、ファイルシステム部１３は、当該分割した１以上のデータを、当該決定した１以上の各領域に書き込む。
【００３６】
また、例えば、一のファイルをＮＶメモリ１１に書き込んだ場合、ファイルシステム部１３は、通常、書き込んだファイルを識別するファイル識別子と、書き込み先の１以上の各領域を識別する１以上の領域識別子との対応を示すファイル管理情報を、ファイル管理情報格納手段１３１に蓄積する。当該蓄積は、通常、ファイル管理情報格納手段１３１への追記である。
【００３７】
また、例えば、一のファイルをＮＶメモリ１１から読み出す場合、ファイルシステム部１３は、まず、当該一のファイルが書き込まれている１以上の領域を識別する領域識別子を、ファイル管理情報から取得する。そして、ファイルシステム部１３は、取得した１以上の領域識別子が示す領域から、１以上に分割されたファイルのデータを取得する。
【００３８】
また、例えば、一のファイルをＮＶメモリ１１から削除する場合、ファイルシステム部１３は、まず、当該一のファイルが書き込まれている１以上の領域を識別するファイル識別子を、ファイル管理情報から取得する。そして、ファイルシステム部１３は、取得した１以上の領域識別子が示す領域から、データを消去する。なお、当該「消去」には、通常、当該ファイル管理情報を削除することも含まれる。
【００３９】
また、例えば、一のファイルをＮＶメモリ１１から削除した場合、ファイルシステム部１３は、通常、削除したファイルを識別するファイル識別子を有するファイル管理情報を、ファイル管理情報格納手段１３１から削除する。
【００４０】
また、例えば、一のファイルをＮＶメモリ１１から削除する場合、ファイルシステム部１３は、例えば、当該一のファイルを識別するファイル識別子を有するファイル管理情報を、ファイル管理情報格納手段１３１から削除することのみを行ってもよい。また、当該ファイル管理情報の削除は、例えば、当該ファイル管理情報に削除したことを示すフラグを付与することであってもよい。
【００４１】
また、ここで、「ファイルシステムの不整合」とは、ファイルシステムの整合性が保たれていない状態のことである。当該状態は、例えば、上記のファイル管理情報において、ファイル識別子が対応付いていない領域識別子を有している状態のことである。言い換えると、当該状態は、ファイル管理情報が領域識別子のみを有している状態のことである。つまり、「ファイルシステムの不整合」とは、ファイル管理情報において使用領域として管理されている領域が、どのファイルからも使用されていない状態のことである。
【００４２】
また、ファイルシステム部１３は、例えば、１以上の領域を管理するための情報であるファイル領域管理情報を保持していてもよい。「領域を管理する」とは、一の領域が未使用領域であるのか使用領域であるのかを管理することである。ファイル領域管理情報は、例えば、未使用領域を識別する１以上の領域識別子を有する。また、ファイル領域管理情報は、例えば、使用領域を識別する１以上の領域識別子を有する。また、ファイル領域管理情報は、例えば、未使用領域および使用領域を識別する１以上の領域識別子を有する。未使用領域および使用領域を識別する１以上の領域識別子を有する場合、当該１以上の各領域識別子には、通常、領域が未使用領域であるのか使用領域であるのかを示すフラグが対応付いている。また、ファイル領域管理情報は、例えば、図示しないファイル領域管理情報格納手段に格納されていてもよい。
【００４３】
例えば、ＮＶメモリ１１にファイルを書き込んだ場合、ファイルシステム部１３は、当該書き込んだ１以上の各領域を識別する１以上の領域識別子を、使用領域を識別する領域識別子として、ファイル領域管理情報格納手段に蓄積する。また、同じ領域識別子が既に格納されている場合、ファイルシステム部１３は、当該領域識別子を削除してもよいし、当該領域識別子に使用領域であることを示すフラグを付与してもよい。
【００４４】
また、例えば、ＮＶメモリ１１からファイルを削除した場合、ファイルシステム部１３は、当該削除した１以上の各領域を識別する１以上の領域識別子を、未使用領域を識別する領域識別子として、ファイル領域管理情報格納手段に蓄積する。また、同じ領域識別子が既に格納されている場合、ファイルシステム部１３は、当該領域識別子を削除してもよいし、当該領域識別子に未使用領域であることを示すフラグを付与してもよい。
【００４５】
また、ファイルを書き込む領域を決定する場合、ファイルシステム部１３は、例えば、上記のファイル領域管理情報を用いて、当該ファイルを書き込む領域を決定してもよい。当該「ファイルを書き込む領域を決定する」とは、通常、１以上の各未使用領域を識別する１以上の領域識別子を取得することである。例えば、ファイル領域管理情報が未使用領域を識別する１以上の領域識別子を有する場合、ファイルシステム部１３は、通常、書き込むファイルのサイズに合う１以上の領域識別子を、ファイル領域管理情報から取得する。また、例えば、ファイル領域管理情報が使用領域を識別する１以上の領域識別子を有する場合、ファイルシステム部１３は、通常、書き込むファイルのサイズに合う１以上の領域識別子であり、ファイル領域管理情報が有さない１以上の領域識別子を取得する。また、例えば、ファイル領域管理情報が未使用領域および使用領域を識別する１以上の領域識別子を有する場合、ファイルシステム部１３は、通常、書き込むファイルのサイズに合う１以上の領域識別子であり、未使用領域であることを示すフラグが対応付いている１以上の領域識別子を、ファイル領域管理情報から取得する。
【００４６】
なお、ファイルシステムは、公知の技術であるので、ファイルシステム部１３が行う処理や動作については、適宜、説明を省略する。
【００４７】
ファイル管理情報格納手段１３１には、１以上のファイル管理情報が格納される。当該１以上のファイル管理情報の集合を、以下、適宜、ファイル管理情報群とする。また、ファイル管理情報については、説明済みであるので、説明を省略する。
【００４８】
メモリ管理部１４は、いわゆるメモリ管理を行う。メモリ管理とは、例えば、実行中のプロセスからの要求に応じて、ＮＶメモリ１１が有する１以上の領域を確保し、当該確保した領域を当該プロセスに割り当てることや、プロセスが終了した場合に、当該プロセスに割り当てられていた１以上の領域を、未使用領域として解放することなどである。
【００４９】
「１以上の領域を確保する」とは、当該１以上の各領域を識別する１以上の領域識別子を取得することである。
【００５０】
また、実行中のプロセスは、通常、１つの仮想アドレス空間を持つ。従って、「１以上の領域を割り当てる」とは、通常、当該仮想アドレス空間が有する１以上の各仮想アドレスと、１以上の各領域識別子とを対応付けることや、当該１以上の領域識別子をプロセスに渡すことなどである。当該領域識別子は、通常、物理アドレスである。また、このとき、メモリ管理部１４は、プロセスを識別するプロセス識別子を対応付けてもよい。また、このとき、メモリ管理部１４は、当該対応付けた結果を示す情報（以下、適宜、メモリ管理情報）を、ＮＶメモリ１１に蓄積する。また、当該領域の割り当てを、以下、適宜、領域割当、メモリ割当、ブロック割当、ページ割当などとする。
【００５１】
また、「１以上の領域を解放する」とは、通常、仮想アドレスと領域識別子との対応付けを解除することである。この場合、メモリ管理部１４は、通常、当該対応付けを示すメモリ管理情報を、ＮＶメモリ１１から削除する。
【００５２】
ここで、メモリ管理情報とは、ＮＶメモリ１１の未使用領域や使用領域を管理するための情報である。また、メモリ管理情報は、通常、少なくとも、１以上の仮想アドレスと、１以上の物理アドレスとを有する。また、当該１以上の各仮想アドレスと、１以上の各物理アドレスとは、通常、１対１で対応付いている。また、当該対応付いた情報には、プロセスを識別するプロセス識別子が対応付いていてもよい。プロセス識別子は、例えば、プロセス名や、プロセスの番号などである。また、プロセス識別子は、プロセスを識別することができれば、その形式や内容などは、問わない。また、プロセス管理情報は、１以上の仮想アドレスと１以上の物理アドレスとが対応付いた情報であってもよいし、当該対応付いた情報を１以上有する情報であってもよい。
【００５３】
また、メモリ管理部１４が確保する１以上の領域は、通常、ファイルシステム部１３がファイルとして使用し得る１以上の領域である。「ファイルとして使用し得る１以上の領域」とは、ファイルが書き込まれる可能性のある１以上の領域や、ファイルが書き込まれている１以上の領域、書き込まれているデータがファイルとして扱われる可能性のある１以上の領域などである。つまり、当該１以上の領域は、１以上の未使用領域であってもよいし、１以上の使用領域であってもよい。また、メモリ管理部１４は、通常、ファイルシステム部１３を介して１以上の領域の確保を行う。「ファイルシステム部１３を介して」とは、ファイル管理情報格納手段１３１に格納されているファイル管理情報を用いて、１以上の領域を確保することである。
【００５４】
また、メモリ管理部１４は、プロセスに割り当てた領域や、未使用領域、使用領域などの管理を行う。当該「管理」とは、例えば、仮想アドレスと領域識別子との対応を示す情報を予め決められた記憶領域に蓄積することや、未使用領域を識別する１以上の領域識別子を予め決められた記憶領域に蓄積すること、使用領域を識別する１以上の領域識別子を予め決められた記憶領域に蓄積することなどである。また、当該予め決められた記憶領域とは、通常、ＮＶメモリ１１が有する領域である。
【００５５】
なお、メモリ管理は、公知の技術であるので、メモリ管理部１４が行う処理や動作については、適宜、説明を省略する。また、メモリ管理部１４は、例えば、１以上の領域の確保や、当該確保した１以上の領域のプロセスへの割り当て、割り当てた１以上の領域の解放などを、通常、後述の各手段により行う。
【００５６】
領域識別子格納手段１４１には、１以上の領域識別子が格納される。領域識別子については、説明済みであるので、説明を省略する。なお、当該領域識別子は、通常、物理アドレスである。
【００５７】
未使用領域検出手段１４２は、ＮＶメモリ１１から未使用領域を検出し、当該未使用領域を識別する１以上の領域識別子を取得する。「未使用領域を検出する」とは、未使用領域を特定することである。また、未使用領域検出手段１４２は、通常、プロセスから要求されたサイズに合う１以上の未使用領域を検出する。当該「プロセスから要求されたサイズに合う」とは、通常、当該要求されたサイズが収まることである。つまり、当該１以上の未使用領域のサイズは、通常、当該要求されたサイズ以上のサイズであり、当該要求されたサイズとの差が最小であるサイズである。また、未使用領域検出手段１４２は、通常、当該１以上の領域識別子を、ファイル管理情報を用いて取得する。当該ファイル管理情報は、ファイル管理情報格納手段１３１に格納されているファイル管理情報である。
【００５８】
例えば、未使用領域検出手段１４２は、まず、ＮＶメモリ１１が有する１以上の各領域を識別する１以上の領域識別子を取得する。当該１以上の領域識別子は、例えば、予めＮＶメモリ１１に格納されているものとする。そして、未使用領域検出手段１４２は、当該取得した１以上の領域識別子のうち、ファイル管理情報が有さない１以上の領域識別子を取得する。
【００５９】
例えば、ＮＶメモリ１１が配置された物理アドレス空間が有する物理アドレスが、「０ｘＦ００００００１」、「０ｘＦ００００００２」、「０ｘＦ００００００３」、「０ｘＦ００００００４」であるとする。また、ファイル管理情報が有する領域識別子が、物理アドレス「０ｘＦ００００００１」、「０ｘＦ００００００４」であるとする。また、ＮＶメモリ１１が有する１以上の各領域のサイズが、「４ＫＢ」であるとする。また、プロセスから要求されたサイズが、「３ＫＢ」であるとする。この様な場合、確保すべき領域の数は、１つである。従って、未使用領域検出手段１４２は、物理アドレス「０ｘＦ００００００２」、「０ｘＦ００００００３」により識別される２つの領域を未使用領域として検出する。そして、未使用領域検出手段１４２は、当該２つの物理アドレスのうちの１つを取得する。
【００６０】
なお、未使用領域検出手段１４２が取得した１以上の各領域識別子により識別される１以上の領域は、通常、領域の割り当てを要求したプロセスに割り当てられる。また、当該割り当ては、通常、後述の割当手段１４５が行う。また、当該割り当ては、未使用領域検出手段１４２が行ってもよい。
【００６１】
ファイル管理情報追記手段１４３は、ファイル管理情報格納手段１３１にファイル管理情報を追記する。「ファイル管理情報を追記する」とは、ファイル管理情報格納手段１３１にファイル管理情報を蓄積し、ファイル管理情報格納手段１３１に格納されているファイル管理情報群に、新たなレコード（ファイル管理情報）を追記することである。また、当該ファイル管理情報格納手段１３１に蓄積されるファイル管理情報は、一のファイル識別子と１以上の領域識別子とが対応付いた情報である。当該１のファイル識別子は、通常、ファイル管理情報格納手段１３１に格納されている１以上のファイル識別子のいずれかである。また、当該１以上の領域識別子は、通常、未使用領域検出手段１４２が取得した１以上の領域識別子である。
【００６２】
ファイル管理情報追記手段１４３は、例えば、以下の手順により、ファイル管理情報を追記する。
（ａ−１）未使用領域検出手段１４２が取得した１以上の領域識別子を取得する。
（ａ−２）ファイル管理情報が有する１以上のファイル識別子から、１つのファイル識別子を取得する。
（ａ−３）（ａ−１）で取得した１以上の領域識別子と、（ａ−２）で取得した１つのファイル識別子とを対応付けて、ファイル管理情報を作成する。
（ａ−４）（ａ−３）で作成したファイル管理情報を、ファイル管理情報格納手段１３１に追記する。
【００６３】
また、ファイル管理情報追記手段１４３は、例えば、以下の手順により、ファイル管理情報を追記してもよい。
（ｂ−１）未使用領域検出手段１４２が取得した１以上の領域識別子を取得する。
（ｂ−２）（ｂ−１）で取得した１以上の領域識別子を、ファイル管理情報格納手段１３１に追記する。
（ｂ−３）ファイル管理情報が有する１以上のファイル識別子から、１つのファイル識別子を取得する。
（ｂ−４）（ｂ−３）で取得した１つのファイル識別子を、（ｂ−２）で追記した１以上の領域識別子に対応付けて、ファイル管理情報格納手段１３１に追記する。
【００６４】
なお、上記の（ｂ−２）において、「領域識別子を追記する」とは、ファイル管理情報格納手段１３１に領域識別子を蓄積し、ファイル管理情報格納手段１３１に格納されているファイル管理情報群に、当該領域識別子を新たなレコードとして追記することである。
【００６５】
また、上記の（ｂ−４）において、「領域識別子に対応付けてファイル識別子を追記する」とは、ファイル管理情報格納手段１３１にファイル識別子を追記し、当該ファイル識別子を上記の（ｂ−２）で追記したレコードに含めることである。
【００６６】
また、上記の（ａ−２）、（ｂ−３）で取得する１つのファイル識別子は、通常、予め決められた方法により取得される。当該「予め決められた方法」とは、例えば、ランダムに選ぶことや、予め決められた順序で選ぶことなどである。予め決められた順序とは、例えば、ファイル識別子の昇順または降順、日時の昇順または降順などである。
【００６７】
また、ファイル管理情報追記手段１４３は、結果的に、上記の１以上の領域識別子と、上記の１つのファイル識別子とが対応付いたファイル管理情報を、ファイル管理情報格納手段１３１に蓄積することができればよく、その手順や方法などは、問わない。
【００６８】
領域識別子取得手段１４４は、ファイル管理情報格納手段１３１から、１以上の領域識別子を取得する。当該１以上の領域識別子は、ファイル管理情報格納手段１３１に格納されているファイル管理情報が有する領域識別子である。そして、領域識別子取得手段１４４は、当該取得した１以上の領域識別子を、領域識別子格納手段１４１に蓄積する。
【００６９】
また、領域識別子取得手段１４４は、通常、２つの方法のいずれかにより、１以上の領域識別子を取得する。当該２つの方法のうちの１つを、以下、適宜、事前確保とする。また、当該２つの方法のうちのもう１つを、以下、適宜、オンデマンド確保とする。
【００７０】
事前確保の場合、領域識別子取得手段１４４は、通常、予め決められたタイミングで、ファイル管理情報格納手段１３１から、すべての領域識別子を取得する。当該予め決められたタイミングとは、通常、情報処理装置１の起動の直後である。また、当該予め決められたタイミングとは、例えば、情報処理装置１の起動中や、最初にプロセスの実行の要求があった直後、最初に実行の要求があったプロセスの実行が開始された直後などであってもよい。
【００７１】
また、オンデマンド確保の場合、領域識別子取得手段１４４は、通常、実行中のプロセスから要求があるたびに、当該要求に応じて、領域識別子を取得する。また、このとき、領域識別子取得手段１４４は、通常、まず、領域識別子格納手段１４１に１以上の領域識別子が格納されているか否かを判断する。そして、格納されていない場合に、領域識別子取得手段１４４は、領域識別子を取得する。また、このとき、領域識別子取得手段１４４は、プロセスから要求されたサイズに合う１以上の領域識別子を取得する。
【００７２】
なお、領域識別子取得手段１４４が取得した１以上の各領域識別子により識別される１以上の領域は、通常、領域の割り当てを要求したプロセスに割り当てられる。また、当該割り当ては、通常、後述の割当手段１４５が行う。また、当該割り当ては、領域識別子取得手段１４４が行ってもよい。
【００７３】
割当手段１４５は、実行中のプロセスからの要求に応じて、１以上の領域を当該プロセスに割り当てる。また、割当手段１４５は、当該割り当ての結果を示すプロセス管理情報を、予め決められた記憶領域に蓄積する。当該予め決められた記憶領域とは、通常、ＮＶメモリ１１が有する領域である。
【００７４】
例えば、未使用領域検出手段１４２が１以上の領域識別子を取得した場合、割当手段１４５は、当該１以上の各領域識別子により識別される１以上の領域を、割り当てを要求したプロセスに割り当てる。当該割り当ての方法を、以下、適宜、半直接融合方式とする。半直接融合方式では、当該割り当てに加え、ファイル管理情報追記手段１４３により、未使用領域検出手段１４２が取得した１以上の領域識別子と、ファイル管理情報が有する１以上のファイル識別子のいずれかとが対応付いたファイル管理情報を、ファイル管理情報格納手段１３１に追記する。これに対し、当該１以上の領域識別子のファイル管理情報格納手段１３１への蓄積のみを行う割り当ての方法を、以下、適宜、直接融合方式とする。つまり、直接融合方式では、未使用領域検出手段１４２が取得した１以上の各領域識別子により識別される１以上の領域をプロセスに割り当て、当該１以上の領域識別子をファイル管理情報格納手段１３１に追記する。これに対し、半直接融合方式では、当該割り当てと当該追記に加え、ファイル識別子を、追記した１以上の領域識別子に対応付けてファイル管理情報格納手段１３１に追記する。
【００７５】
また、例えば、領域識別子取得手段１４４が１以上の領域識別子を取得した場合、割当手段１４５は、領域識別子取得手段１４４が取得し、領域識別子格納手段１４１に格納されている１以上の領域識別子のうちのいずれかにより識別される領域を、割り当てを要求したプロセスに割り当てる。当該割り当ての方法を、以下、適宜、間接融合方式とする。そして、割当手段１４５は、プロセスに割り当てた１以上の各領域を識別する１以上の領域識別子を、領域識別子格納手段１４１から削除する。
【００７６】
例えば、領域識別子取得手段１４４が事前確保により１以上の領域識別子を取得した場合、割当手段１４５は、領域識別子格納手段１４１に格納されている１以上の領域識別子から、プロセスが要求したサイズに合う１以上の各領域を識別する１以上の領域識別子を取得する。そして、割当手段１４５は、当該１以上の各領域識別子により識別される１以上の領域を、割り当てを要求したプロセスに割り当てる。
【００７７】
また、例えば、領域識別子取得手段１４４がオンデマンド確保により１以上の領域識別子を取得した場合、割当手段１４５は、領域識別子格納手段１４１に格納されている１以上の各領域識別子により識別される１以上の領域を、割り当てを要求したプロセスに割り当てる。
【００７８】
また、割当手段１４５は、例えば、実行中のプロセスからの要求に応じて、当該プロセスが要求したサイズと同サイズのファイルをＮＶメモリ１１に書き込むことを、ファイルシステム部１３に指示してもよい。当該「ファイルを書き込む」ことは、ファイルを作成することである。そして、割当手段１４５は、ファイルシステム部１３から、ファイルが書き込まれた領域を識別する１以上の領域識別子を受信する。そして、割当手段１４５は、当該１以上の各領域識別子により識別される１以上の領域を、割り当てを要求したプロセスに割り当てる。当該割り当ての方法を、以下、適宜、ｍｍａｐ方式とする。
【００７９】
また、メモリ管理部１４は、例えば、１以上の領域を管理するための情報であるメモリ領域管理情報を保持していてもよい。メモリ管理情報の形式や内容などは、ファイル領域管理情報と同様であるので、説明を省略する。また、メモリ領域管理情報は、図示しないメモリ領域管理情報格納手段に格納されていてもよい。
【００８０】
例えば、プロセスに１以上の領域を割り当てた場合、割当手段１４５は、当該割り当てた１以上の各領域を識別する１以上の領域識別子を、使用領域を識別する領域識別子として、メモリ領域管理情報格納手段に蓄積する。また、同じ領域識別子が既に格納されている場合、割当手段１４５は、例えば、当該領域識別子を削除してもよいし、当該領域識別子に、使用領域であることを示すフラグを対応付けてもよい。
【００８１】
また、例えば、プロセスの実行が終了した場合、割当手段１４５は、当該プロセスに割り当てていた１以上の各領域を識別する１以上の領域識別子を、未使用領域を識別する領域識別子として、メモリ領域管理情報格納手段に蓄積する。また、同じ領域識別子が既に格納されている場合、割当手段１４５は、例えば、当該識別子を削除してもよいし、当該領域識別子に、未使用領域であることを示すフラグを対応付けて蓄積してもよい。
【００８２】
また、プロセスに割り当てる領域を決定する場合、割当手段１４５は、例えば、メモリ領域管理情報を用いて、当該領域を決定してもよい。
【００８３】
なお、受付部１２における情報や指示などの入力手段は、メニュー画面によるものや、キーボードなど、何でもよい。受付部１２は、メニュー画面の制御ソフトウェアや、キーボード等の入力手段のデバイスドライバなどで実現され得る。
【００８４】
また、ファイルシステム部１３、メモリ管理部１４、未使用領域検出手段１４２、ファイル管理情報追記手段１４３、領域識別子取得手段１４４、割当手段１４５は、通常、ＭＰＵやメモリ等から実現され得る。また、ファイルシステム部１３などの処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。なお、ファイルシステム部１３などは、ハードウェア（専用回路）で実現されてもよい。
【００８５】
また、ファイル管理情報格納手段１３１、領域識別子格納手段１４１は、通常、ＮＶメモリ１１が有する１以上の領域で実現される。また、ファイル管理情報格納手段１３１などは、例えば、ＮＶメモリ１１以外の不揮発性の記録媒体や、揮発性の記録媒体で実現されてもよい。また、ファイル管理情報格納手段１３１などに所定の情報が記憶される過程は、問わない。例えば、当該所定の情報は、記録媒体や、通信回線、入力デバイスなどを介してファイル管理情報格納手段１３１などに記憶されてもよい。
【００８６】
次に、情報処理装置１の全体動作について、フローチャートを用いて説明する。図２は、情報処理装置１の全体動作を示すフローチャートである。
【００８７】
（ステップＳ２０１）ファイルシステム部１３は、ＮＶメモリ１１を物理アドレス空間に配置する。当該配置は、メモリ管理部１４が行ってもよい。
【００８８】
（ステップＳ２０２）メモリ管理部１４は、プロセスへの領域の割当方法が、間接融合方式かつ事前確保であるか否かを判断する。例えば、当該領域の割当方法を示す情報が所定の記憶領域に格納されている場合、メモリ管理部１４は、当該情報により領域の割当方法を判断する。そして、間接融合方式かつ事前確保である場合は、ステップＳ２０３に進み、そうでない場合は、ステップＳ２０５に進む。
【００８９】
（ステップＳ２０３）領域識別子取得手段１４４は、ファイル管理情報格納手段１３１に格納されているすべての領域識別子を取得する。
【００９０】
（ステップＳ２０４）領域識別子取得手段１４４は、取得した１以上の領域識別子を、領域識別子格納手段１４１に蓄積する。
【００９１】
（ステップＳ２０５）ファイルシステム部１３は、受付部１２がファイル書込指示を受け付けたか否かを判断する。ファイル書込指示とは、ファイルをＮＶメモリ１１に書き込むための指示である。また、ファイル書込指示は、通常、ファイル識別子と、ファイルを構成するデータとを有する。そして、受け付けた場合は、ステップＳ２０６に進み、そうでない場合は、ステップＳ２０９に進む。
【００９２】
（ステップＳ２０６）ファイルシステム部１３は、ファイルを書き込むための１以上の領域を確保するために、１以上の領域識別子を取得する。
【００９３】
（ステップＳ２０７）ファイルシステム部１３は、ステップＳ２０６で取得した１以上の各領域識別子が識別する１以上の領域に、ファイルを書き込む。
【００９４】
（ステップＳ２０８）ファイルシステム部１３は、ステップＳ２０６で取得した１以上の領域識別子と、ステップＳ２０７で書き込んだファイルを識別するファイル識別子とを対応付け、ファイル管理情報としてファイル管理情報格納手段１３１に蓄積する。
【００９５】
（ステップＳ２０９）ファイルシステム部１３は、受付部１２がファイル読出指示を受け付けたか否かを判断する。ファイル読出指示とは、ファイルをＮＶメモリ１１から読み出すための指示である。また、ファイル読出指示は、通常、ファイル識別子を有する。そして、受け付けた場合は、ステップＳ２１０に進み、そうでない場合は、ステップＳ２１２に進む。
【００９６】
（ステップＳ２１０）ファイルシステム部１３は、読み出すファイルが書き込まれている１以上の各領域を識別する１以上の領域識別子を、ファイル管理情報格納手段１３１から取得する。
【００９７】
（ステップＳ２１１）ファイルシステム部１３は、ステップＳ２１０で取得した１以上の各領域識別子により識別される１以上の領域から、ファイルを読み出す。
【００９８】
（ステップＳ２１２）ファイルシステム部１３は、受付部１２がファイル削除指示を受け付けたか否かを判断する。ファイル削除指示とは、ファイルをＮＶメモリ１１から削除するための指示である。また、ファイル削除指示は、通常、ファイル識別子を有する。そして、受け付けた場合は、ステップＳ２１３に進み、そうでない場合は、ステップＳ２１６に進む。
【００９９】
（ステップＳ２１３）ファイルシステム部１３は、削除するファイルが書き込まれている１以上の各領域を識別する１以上の領域識別子を、ファイル管理情報格納手段１３１から取得する。
【０１００】
（ステップＳ２１４）ファイルシステム部１３は、ステップＳ２１３で取得した１以上の各領域識別子により識別される１以上の領域から、ファイルを削除する。
【０１０１】
（ステップＳ２１５）ファイルシステム部１３は、ステップＳ２１３で取得した１以上の領域識別子を有するファイル管理情報を、ファイル管理情報格納手段１３１から削除する。
【０１０２】
（ステップＳ２１６）メモリ管理部１４は、受付部１２がプロセス実行指示を受け付けたか否かを判断する。プロセス実行指示とは、プロセスを実行するための指示である。また、プロセス実行指示は、通常、プロセス識別子を有する。そして、受け付けた場合は、ステップＳ２１７に進み、そうでない場合は、ステップＳ２０５に戻る。
【０１０３】
（ステップＳ２１７）情報処理装置１は、プロセスを実行する。
【０１０４】
（ステップＳ２１８）メモリ管理部１４は、実行中のプロセスからの要求に応じて、当該プロセスに１以上の領域を割り当てる。この処理の詳細は、図３のフローチャートを用いて説明する。
【０１０５】
（ステップＳ２１９）メモリ管理部１４は、プロセスの実行が終了したか否かを判断する。終了した場合は、ステップＳ２２０に進み、そうでない場合は、ステップＳ２１９に戻る。
【０１０６】
（ステップＳ２２０）メモリ管理部１４は、実行が終了したプロセスに割り当てられていた１以上の領域を解放する。この処理の詳細は、図４のフローチャートを用いて説明する。
【０１０７】
なお、図２のフローチャートにおいて、電源オフや処理終了の割り込みにより処理を終了してもよい。
【０１０８】
図３は、図２のフローチャートのステップＳ２１８の領域の割当処理を示すフローチャートである。
【０１０９】
（ステップＳ３０１）メモリ管理部１４は、プロセスへの領域の割当方法が、半直接融合方式であるか否かを判断する。半直接融合方式である場合は、ステップＳ３０２に進み、そうでない場合は、ステップＳ３０５に進む。
【０１１０】
（ステップＳ３０２）未使用領域検出手段１４２は、ファイル管理情報格納手段１３１に格納されているファイル管理情報を用いて、プロセスから要求されたサイズに合う１以上の未使用領域を検出し、当該１以上の各未使用領域を識別する１以上の領域識別子を取得する。
【０１１１】
（ステップＳ３０３）ファイル管理情報追記手段１４３は、ステップＳ３０２で取得した１以上の領域識別子と、ファイル管理情報が有する１以上のファイル識別子のいずれかとを対応付け、ファイル管理情報を作成する。
【０１１２】
（ステップＳ３０４）ファイル管理情報追記手段１４３は、ステップＳ３０３で作成したファイル管理情報を、ファイル管理情報格納手段１３１に追記する。
【０１１３】
（ステップＳ３０５）メモリ管理部１４は、プロセスへの領域の割当方法が、間接融合方式かつ事前確保であるか否かを判断する。間接融合方式かつ事前確保である場合は、ステップＳ３０６に進み、そうでない場合は、ステップＳ３０７に進む。
【０１１４】
（ステップＳ３０６）割当手段１４５は、領域識別子格納手段１４１から、プロセスから要求されたサイズに合う１以上の領域識別子を取得する。
【０１１５】
（ステップＳ３０７）メモリ管理部１４は、プロセスへの領域の割当方法が、間接融合方式かつオンデマンド確保であるか否かを判断する。間接融合方式かつオンデマンド確保である場合は、ステップＳ３０８に進み、そうでない場合は、ステップＳ３１２に進む。
【０１１６】
（ステップＳ３０８）領域識別子取得手段１４４は、領域識別子格納手段１４１に１以上の領域識別子が格納されているか否かを判断する。格納されている場合は、ステップＳ３１１に進み、そうでない場合は、ステップＳ３０９に進む。
【０１１７】
（ステップＳ３０９）領域識別子取得手段１４４は、ファイル管理情報格納手段１３１から、プロセスから要求されたサイズに合う１以上の領域識別子を取得する。
【０１１８】
（ステップＳ３１０）領域識別子取得手段１４４は、ステップＳ３０９で取得した１以上の領域識別子を、領域識別子格納手段１４１に蓄積する。
【０１１９】
（ステップＳ３１１）割当手段１４５は、領域識別子格納手段１４１から、プロセスから要求されたサイズに合う１以上の領域識別子を取得する。また、このとき、割当手段１４５は、当該取得した１以上の領域識別子を、領域識別子格納手段１４１から削除する。当該削除は、例えば、削除したことを示すフラグを付与することであってもよい。
【０１２０】
（ステップＳ３１２）メモリ管理部１４は、プロセスへの領域の割当方法が、ｍｍａｐ方式であるか否かを判断する。ｍｍａｐ方式である場合は、ステップＳ３１３に進み、そうでない場合は、ステップＳ３１５に進む。
【０１２１】
（ステップＳ３１３）割当手段１４５は、プロセスから要求されたサイズと同サイズのファイルを書き込むためのファイル書込指示を、ファイルシステム部１３に送信する。
【０１２２】
（ステップＳ３１４）割当手段１４５は、ファイルシステム部１３から、ファイルが書き込まれた領域を識別する１以上の領域識別子を受信する。
【０１２３】
（ステップＳ３１５）割当手段１４５は、ステップＳ３０２で取得した１以上の領域識別子、またはステップＳ３０６で取得した１以上の領域識別子、またはステップＳ３１１で取得した１以上の領域識別子、またはステップＳ３１４で受信した１以上の領域識別子を、領域の割り当てを要求したプロセスに割り当てる。また、割当手段１４５は、通常、当該割り当ての結果を示すメモリ管理情報を、図示しないメモリ管理情報格納手段に蓄積する。そして、上位処理にリターンする。
【０１２４】
図４は、図２のフローチャートのステップＳ２２０の領域の解放処理を示すフローチャートである。
【０１２５】
（ステップＳ４０１）割当手段１４５は、プロセスへの領域の割当方法が、半直接融合方式であるか否かを判断する。半直接融合方式である場合は、ステップＳ４０２に進み、そうでない場合は、ステップＳ４０４に進む。
【０１２６】
（ステップＳ４０２）割当手段１４５は、プロセスに割り当てていた１以上の各領域を識別する１以上の領域識別子を有するファイル管理情報を、ファイル管理情報格納手段１３１から削除する。
【０１２７】
（ステップＳ４０３）割当手段１４５は、プロセスに割り当てていた１以上の各領域を識別する１以上の領域識別子を有するメモリ管理情報を、図示しないメモリ管理情報格納手段から削除する。
【０１２８】
（ステップＳ４０４）割当手段１４５は、プロセスへの領域の割当方法が、間接融合方式であるか否かを判断する。間接融合方式である場合は、ステップＳ４０５に進み、そうでない場合は、ステップＳ４０８に進む。
【０１２９】
（ステップＳ４０５）割当手段１４５は、プロセスに割り当てていた１以上の各領域を識別する１以上の領域識別子を、図示しないメモリ管理情報格納手段から取得する。
【０１３０】
（ステップＳ４０６）割当手段１４５は、ステップＳ４０５で取得した１以上の領域識別子を、領域識別子格納手段１４１に蓄積する。当該削除は、例えば、削除したことを示すフラグを削除することであってもよい。
【０１３１】
（ステップＳ４０７）割当手段１４５は、ステップＳ４０５で取得した１以上の領域識別子を有するメモリ管理情報を、図示しないメモリ管理情報格納手段から削除する。
【０１３２】
（ステップＳ４０８）割当手段１４５は、プロセスへの領域の割当方法が、ｍｍａｐ方式であるか否かを判断する。ｍｍａｐ方式である場合は、ステップＳ４０９に進み、そうでない場合は、上位処理にリターンする。
【０１３３】
（ステップＳ４０９）割当手段１４５は、プロセスに割り当てていた１以上の各領域を識別する１以上の領域識別子を、図示しないメモリ管理情報格納手段から取得する。
【０１３４】
（ステップＳ４１０）割当手段１４５は、ステップＳ４０９で取得した１以上の各領域識別子により識別される１以上の領域に書き込まれているファイルを削除するためのファイル削除指示を、ファイルシステム部１３に送信する。
【０１３５】
（ステップＳ４１１）割当手段１４５は、ステップＳ４０９で取得した１以上の領域識別子を有するメモリ管理情報を、図示しないメモリ管理情報格納手段から削除する。そして、上位処理にリターンする。
【０１３６】
（具体例）
次に、情報処理装置１の動作の具体例について説明する。なお、本具体例において、ＮＶメモリ１１は、一の物理アドレス空間に配置されているものとする。また、ＮＶメモリ１１は、サイズが４ＫＢである１以上の領域を有しているものとする。
【０１３７】
（例１）
本例において、半直接融合方式による領域割当の例について説明する。なお、本例において、ファイル管理情報格納手段１３１には、図５に示す１以上のファイル管理情報が格納されているものとする。当該ファイル管理情報は、レコードを一意に特定するためのＩＤと、ファイル識別子（項目名：ファイル）と、物理アドレスとを有する。当該物理アドレスは、領域識別子である。また、図５のファイル管理情報は、例えば、物理アドレス「０ｘ０００００００１」、「０ｘ０００００００２」、「０ｘ０００００００３」のそれぞれにより識別される３つの領域に、ファイル識別子「ｆｉｌｅ０１」により識別されるファイルが書き込まれていることを示す。
【０１３８】
まず、ユーザが、情報処理装置１を操作し、任意のプログラムを実行する操作を行ったとする。すると、受付部１２は、当該プログラムをプロセスとして実行するためのプロセス実行指示を受け付ける。当該プロセス実行指示は、プロセス識別子「ｐｒｏｃ０１」を有するものとする。そして、情報処理装置１は、当該プロセス識別子により識別される上記プログラムを、プロセスとして実行する。
【０１３９】
次に、実行中のプロセスが、１０ＫＢの領域を割り当てることを要求したとする。すると、受付部１２は、領域を割り当てるための指示である領域割当指示を受け付ける。当該領域割当指示は、プロセス識別子「ｐｒｏｃ０１」と、割り当てる領域のサイズ「１０ＫＢ」を有しているものとする。
【０１４０】
次に、未使用領域検出手段１４２は、図５のファイル管理情報を用いて、サイズ「１０ＫＢ」に合う１以上の未使用領域を検出し、当該１以上の各領域を識別する１以上の物理アドレスを取得する。ＮＶメモリ１１が有する各領域のサイズは、「４ＫＢ」であるので、未使用領域検出手段１４２は、３つの物理アドレスを取得する。ここで、図５において、当該図に記載されている物理アドレス以外の物理アドレスにより識別される領域は、未使用領域であるものとする。この結果、未使用領域検出手段１４２は、「０ｘ０００００００４」、「０ｘ０００００００５」、「０ｘ０００００００６」の物理アドレスを取得したものとする。
【０１４１】
次に、ファイル管理情報追記手段１４３は、図５のファイル管理情報から、任意のファイル識別子を取得する。この結果、ファイル管理情報追記手段１４３は、図５の「ＩＤ＝００１」のファイル識別子「ｆｉｌｅ０１」を取得したものとする。このとき、ファイル管理情報追記手段１４３は、ファイル識別子を昇順にソートした際の先頭のファイル識別子を取得すると予め決められていたものとする。
【０１４２】
次に、ファイル管理情報追記手段１４３は、上記で取得した３つの物理アドレス「０ｘ０００００００４」、「０ｘ０００００００５」、「０ｘ０００００００６」と、上記で取得したファイル識別子「ｆｉｌｅ０１」を対応付け、ファイル管理情報を作成する。そして、ファイル管理情報追記手段１４３は、当該作成したファイル管理情報をファイル管理情報格納手段１３１に蓄積し、図５のファイル管理情報群に追記する。当該追記後のファイル管理情報は、図６である。図６において、「ＩＤ＝００８」から「ＩＤ＝０１０」までが、追記したファイル管理情報である。
【０１４３】
次に、割当手段１４５は、未使用領域検出手段１４２が取得した３つの物理アドレスにより識別される３つの領域を、プロセス識別子「ｐｒｏｃ０１」により識別されるプロセスに割り当てる。そして、割当手段１４５は、当該割り当ての結果を示すメモリ管理情報を、図示しないメモリ管理情報格納手段に蓄積する。当該蓄積したメモリ管理情報は、図７である。当該メモリ管理情報は、レコードを一意に特定するためのＩＤと、プロセス識別子（項目名：プロセス）と、仮想アドレスと、物理アドレスとを有する。また、当該メモリ管理情報は、プロセス識別子「ｐｒｏｃ０１」により識別されるプロセスの仮想アドレス空間が有する仮想アドレス「０ｘＦ００００００１」、「０ｘＦ００００００２」、「０ｘＦ００００００３」のそれぞれと、物理アドレス「０ｘ０００００００４」、「０ｘ０００００００５」、「０ｘ０００００００６」のそれぞれとが対応付いていることを示す。
【０１４４】
（例２）
本例において、間接融合方式による領域割当の例について説明する。なお、本例において、ファイル管理情報格納手段１３１には、図５に示すファイル管理情報が格納されているものとする。
【０１４５】
まず、事前確保の例について説明する。例１と同様に、ユーザが、情報処理装置１を操作し、任意のプログラムを実行するための操作を行ったとする。ここで、受付部１２が受け付ける指示などは、例１と同様であるので、説明を省略する。
【０１４６】
次に、領域識別子取得手段１４４は、図５のファイル管理情報が有するすべての物理アドレス（７つ）を取得する。そして、領域識別子取得手段１４４は、当該取得した７つの物理アドレスを、領域識別子格納手段１４１に蓄積する。
【０１４７】
次に、割当手段１４５は、プロセス識別子「ｐｒｏｃ０１」により識別されるプロセスが要求するサイズ「１０ＫＢ」に合う３つの物理アドレスを、領域識別子格納手段１４１から取得する。この結果、割当手段１４５は、「０ｘ００００００１１」、「０ｘ００００００１２」、「０ｘ００００００１３」の３つの物理アドレスを取得したものとする。また、割当手段１４５は、当該３つの物理アドレスを、領域識別子格納手段１４１から削除する。当該削除は、例えば、削除したことを示すフラグを付与することであってもよい。
【０１４８】
次に、割当手段１４５は、取得した３つの物理アドレスにより識別される３つの領域を、プロセス識別子「ｐｒｏｃ０１」により識別されるプロセスに割り当てる。そして、割当手段１４５は、当該割り当ての結果を示すメモリ管理情報を、図示しないメモリ管理情報格納手段に蓄積する。当該蓄積したメモリ管理情報は、図８である。当該メモリ管理情報が有する情報や、当該メモリ管理情報が示す意味などは、図７と同様であるので、説明を省略する。
【０１４９】
次に、プロセス識別子「ｐｒｏｃ０１」により識別されるプロセスの実行が終了したとする。すると、割当手段１４５は、図８のメモリ管理情報から、プロセス識別子「ｐｒｏｃ０１」に対応する物理アドレス「０ｘ００００００１１」、「０ｘ００００００１２」、「０ｘ００００００１３」を取得する。そして、割当手段１４５は、図８のメモリ管理情報を、メモリ管理情報格納手段から削除する。
【０１５０】
次に、割当手段１４５は、取得した３つの物理アドレスを、領域識別子格納手段１４１に蓄積する。当該蓄積は、例えば、削除したことを示すフラグを削除することであってもよい。
【０１５１】
次に、オンデマンド確保の例について説明する。上記と同様に、プロセス識別子「ｐｒｏｃ０１」により識別されるプロセスが実行されており、当該プロセスがサイズ「１０ＫＢ」の領域の割り当てを要求しているとする。
【０１５２】
次に、領域識別子取得手段１４４は、領域識別子格納手段１４１に１以上の領域識別子が格納されているか否かを判断する。この結果、領域識別子取得手段１４４は、１以上の領域識別子が格納されていないと判断したものとする。
【０１５３】
次に、領域識別子取得手段１４４は、プロセス識別子「ｐｒｏｃ０１」により識別されるプロセスが要求するサイズ「１０ＫＢ」に合う３つの物理アドレスを、図５のファイル管理情報から取得する。この結果、領域識別子取得手段１４４は、「０ｘ００００００１１」、「０ｘ００００００１２」、「０ｘ００００００１３」の３つの物理アドレスを取得したものとする。そして、領域識別子取得手段１４４は、当該３つの物理アドレスを、領域識別子格納手段１４１に蓄積する。
【０１５４】
次に、割当手段１４５は、領域識別子格納手段１４１に格納されている３つの物理アドレス「０ｘ００００００１１」、「０ｘ００００００１２」、「０ｘ００００００１３」を取得する。また、割当手段１４５は、当該３つの物理アドレスを、領域識別子格納手段１４１から削除する。
【０１５５】
次に、割当手段１４５は、取得した３つの物理アドレスにより識別される３つの領域を、プロセス識別子「ｐｒｏｃ０１」により識別されるプロセスに割り当てる。そして、割当手段１４５は、当該割り当ての結果を示すメモリ管理情報を、図示しないメモリ管理情報格納手段に蓄積する。当該蓄積したメモリ管理情報は、図８である。
【０１５６】
なお、プロセスの実行の終了後のメモリ管理情報の削除などの例については、上記と同様であるので、説明を省略する。
【０１５７】
（例３）
本例において、ｍｍａｐ方式による領域割当の例について説明する。なお、本例において、ファイル管理情報格納手段１３１には、図５に示すファイル管理情報が格納されているものとする。
【０１５８】
まず、例１と同様に、プロセス識別子「ｐｒｏｃ０１」により識別されるプロセスが実行されており、当該プロセスがサイズ「１０ＫＢ」の領域の割当を要求しているとする。
【０１５９】
次に、割当手段１４５は、サイズ「１０ＫＢ」のファイルをＮＶメモリ１１に書き込むためのファイル書込指示を、ファイルシステム部１３に送信する。当該ファイル書込指示は、ファイルのサイズ「１０ＫＢ」を有しているものとする。
【０１６０】
次に、受付部１２は、上記のファイル書込指示を受け付ける。そして、ファイルシステム部１３は、当該ファイル書込指示に従い、任意のファイル識別子を取得する。また、ファイルシステム部１３は、図５のファイル管理情報を用いて、ファイルのサイズ「１０ＫＢ」に合う３つの未使用領域を識別する物理アドレスを取得する。この結果、ファイルシステム部１３は、ファイル識別子「ｆｉｌｅ９９」を取得したものとする。また、ファイルシステム部１３は、「０ｘ０００００００４」、「０ｘ０００００００５」、「０ｘ０００００００６」の物理アドレスを取得したものとする。
【０１６１】
次に、ファイルシステム部１３は、取得した３つの各物理アドレスにより識別される３つの領域に、ファイルを書き込む。そして、ファイルシステム部１３は、当該書き込みの結果を示すファイル管理情報を、ファイル管理情報格納手段１３１に蓄積し、図５のファイル管理情報群に追記する。当該追記後のファイル管理情報は、図９である。当該ファイル管理情報が有する情報や、当該ファイル管理情報が示す意味などは、図５と同様であるので、説明を省略する。
【０１６２】
次に、ファイルシステム部１３は、ファイルを書き込んだ領域を識別する３つの物理アドレスを、メモリ管理部１４に送信する。
【０１６３】
次に、割当手段１４５は、３つの物理アドレス「０ｘ０００００００４」、「０ｘ０００００００５」、「０ｘ０００００００６」を受信する。そして、割当手段１４５は、当該３つの物理アドレスにより識別される３つの領域を、プロセス識別子「ｐｒｏｃ０１」により識別されるプロセスに割り当てる。そして、割当手段１４５は、当該割り当ての結果を示すメモリ管理情報を、図示しないメモリ管理情報格納手段に蓄積する。当該蓄積したメモリ管理情報は、図７である。
【０１６４】
なお、プロセスの実行の終了後のメモリ管理情報の削除などの例については、例１、例２と同様であるので、説明を省略する。
【０１６５】
（例４）
本例において、情報処理装置１の具体的な実現方法の例について説明する。なお、本例において、ＮＶメモリ１１は、単に「ＮＶメモリ」と表記するものとする。また、情報処理装置１は、Ｌｉｎｕｘ（登録商標）カーネル（以下、カーネル）であるものとする。
【０１６６】
まず、情報処理装置１を構成するシステムの構成例について説明する。当該構成例を示す図は、図１０である。図１０は、ＮＶメモリとファイルシステムが融合されたシステムを示す概念図である。ＮＶメモリが有する領域を、ストレージとして使用する領域、メインメモリとして使用する領域とに区別することなく、ＮＶメモリをストレージおよびメインメモリの両方に使用できるようにするために、情報処理装置１は、ＮＶメモリが有する領域を、ファイルシステムにより管理する。ＮＶメモリ上のファイルシステムにファイルを格納する場合は、通常と同様に、ファイルのデータを格納するためのブロックが割り当てられる。ファイルに格納されたプログラムテキストおよびデータは、ＸＩＰにより、メインメモリとして直接参照できる。それ以外に、空きメモリ領域を必要とする場合は、ファイルシステムから空きブロックを取得する。図１０のプロセスは、ファイルのテキストをＸＩＰによりマップし、ヒープに必要な領域は空きブロックを取得しマップしている。なお、空きメモリ領域、空きブロックは、共に、未使用領域のことである。
【０１６７】
次に、半直接融合方式の実現方法の例について説明する。半直接融合方式の実装には、ファイルシステムから確保したブロックへの参照を、事前に作成されたファイルに追加および削除する機能が必要となる。ファイルシステムからのブロック確保は、直接融合方式の実装を用いる。なお、直接融合方式の実現方法は、情報処理学会論文誌Ｖｏｌ．５４、Ｎｏ．３に掲載予定の論文「Ｎｏｎ−Ｖｏｌａｔｉｌｅメインメモリとファイルシステムの融合」を参照されたい。また、ブロックへの参照を追加および削除するファイルは、ユーザプログラムから指定する。そのための機能を、キャラクタ型のデバイスドライバとして実装する。
【０１６８】
また、ブロックへの参照を追加および削除するファイルの識別子を受け取るために、デバイスドライバのｉｏｃｔｌインタフェースを使用する。ｉｏｃｔｌインタフェースを実装した関数のプロトタイプ宣言は、例えば、図１１である。
【０１６９】
図１１の関数は、ファイルの識別子として、ファイルディスクリプタを受け取る。その値は、３番目の引数「ａｒｇ」で受け取る。また、当該関数は、「ｆｇｅｔ（）」を用いて、ファイルディスクリプタからｆｉｌｅ構造体を取得する。ｆｉｌｅ構造体はファイルの実体を表すため、そこからｉｎｏｄｅ番号や、ファイルを操作する関数などをたどることができる。ｉｎｏｄｅとは、ファイルシステムのデータ構造であり、公知であるので、詳細な説明を省略する。また、２番目の引数「ｃｍｄ」で、半直接融合方式、間接融合方式（事前確保またはオンデマンド確保）のいずれを用いるかを指定する。
【０１７０】
半直接融合方式は、確保したブロックのファイルシステム内でのオフセットを、参照を追加するファイル内のオフセットとし、ブロックをファイルに追加する。参照の追加および削除のための実装は、ファイルシステムの内部構造に依存するため、使用するファイルシステム（例えば、Ｅｘｔ２やＰＲＡＭＦＳ）のそれぞれに必要である。ＰＲＡＭＦＳの内部構造は単純である。従って、ＰＲＡＭＦＳに実装する場合は、ファイルのｉｎｏｄｅを直接操作する関数を実装する。また、Ｅｘｔ２の内部構造はやや複雑である。従って、Ｅｘｔ２に実装する場合は、可能な限り既存のコードを呼び出すことで、追加と削除を行う実装とする。そのため、Ｅｘｔ２への実装は、余分なブロック確保と解放を伴う冗長な実装となる。
【０１７１】
次に、間接融合方式の実現方法の例について説明する。間接融合方式の実装には、事前およびオンデマンド確保のどちらについても、ファイルに割り当てたブロックのアドレスを取得する機能、メモリ割当には未使用の空きブロックを管理する機能が必要となる。メモリ割当に使用するファイルの識別子は、半直接融合方式で実装したデバイスドライバにより受け取る。また、プロセスからの、メモリアロケータを通した、メモリ割当および解放要求のインタフェースは、直接融合方式と同じである。
【０１７２】
空きブロックの管理には、いわゆるフリーリストを用いる。空きブロックをメインメモリとして割り当てるには、ファイルに割り当てたブロックのアドレスを取得する必要がある。ファイルにブロックを割り当て、そのアドレスを取得するには、ＸＩＰをサポートするファイルシステムが提供するインタフェースである「ｇｅｔ＿ｘｉｐ＿ｍｅｍ（）」を用いる。図１２に示すコードの様に「ｇｅｔ＿ｘｉｐ＿ｍｅｍ（）」を呼び出すことで、ファイル内の「ｏｆｆｓｅｔ」に対応するブロックのカーネル内の仮想アドレスおよび物理ページ番号を、それぞれ「ｋｍｅｍ」、「ｐｆｎ」に受け取ることができる。第３引数は、ブロックを確保するか否かを指定する。図１２の様に「１」を指定するとブロックが確保され、「０」を指定するとブロックは確保されない。
【０１７３】
また、事前確保では、初期化時に、図１２の「ｏｆｆｓｅｔ」を、ファイルの先頭から最後のブロックに対応した値に変更していく。その結果、すべてのブロックが確保され、それらの仮想アドレスおよび物理ページ番号を取得することができる。そして、確保したブロックのアドレスを用いて、フリーリストを作成する。また、オンデマンド確保の場合、ファイルの先頭からブロックを割り当てていくが、フリーリストが空の場合に新たにブロックを確保する。事前確保およびオンデマンド確保のいずれにおいても、メモリ解放時には、ブロックはフリーリストに戻され、ファイルシステムに解放されない。
【０１７４】
上記のように、間接融合方式は、ファイルシステムのインタフェースを用いて実装できるため、ファイルシステムへの変更は不要であり、またファイルシステムごとの実装も不要である。
【０１７５】
次に、ｍｍａｐ方式の実現方法の例について説明する。ｍｍａｐ方式は、ファイルシステムからブロックを確保し、プロセスへのメモリ割当に使用するために、ｍｍａｐシステムコール（以下、適宜、「ｍｍａｐ」）を用いる方式である。従って、ｍｍａｐ方式を実現するために、カーネル内への新規の実装は、不要である。ｍｍａｐ方式によるメモリ割当を行うには、プログラムでメモリ割当を行う際に、ｍｍａｐシステムコールを用いるようにする。しかしながら、既存のプログラムの多くでは、メモリ割当には「ｍａｌｌｏｃ（）」が用いられている。Ｌｉｎｕｘ（登録商標）で標準的に用いられている標準Cライブラリ「ＧＮＵ  Ｌｉｂｃ」では、小さなメモリ割当にはヒープ領域が、大きなメモリ割当には「ｍｍａｐ」により確保された領域が割り当てられるようになっている。この割り当てる領域が小さいか大きいかを判断するための閾値を、図１３の様に変更することで、プログラムを修正せずに、常に「ｍｍａｐ」が用いられるようになる。
【０１７６】
（例５）
本例において、例４に示した実現方法により実現した情報処理装置１を動作させた実験結果などについて説明する。
【０１７７】
まず、メモリ割当コストの比較の実験結果について説明する。
【０１７８】
（実験環境）
ＮＶメモリをメインメモリとして持つシステムは、一般的に入手可能な状態ではない。また、アクセス遅延の差、書き込み回数の制限は考慮しないとし、ＤＲＡＭの一部をＮＶメモリとみなして実験を行った。実験には、「Ｉｎｔｅｌ  Ａｔｏｍ  Ｄ２７００  ２．１３ＧＨｚ」を用いた。ハイパースレッディング機能はＢＩＯＳで無効化し、１ＣＰＵの状態で計測した。ＤＲＡＭの一部をＮＶメモリとみなすため、８ＧＢのＤＲＡＭを搭載し、当該ＤＲＡＭの後半の４ＧＢの領域をＮＶメモリとして使用することにした。カーネルが認識するＤＲＡＭ領域を制限するために、カーネルに「ｍｅｍ＝１２８Ｍ」オプションを渡し、ＤＲＡＭとしては１２８ＭＢだけ使用する状態で実験を行った。なお、ＤＲＡＭのみの場合の実験は、上記のメインメモリの分割を行わない状態で行った。
【０１７９】
（実験結果）
メモリ割当コストを計測するため、引数で指定された容量のメモリ領域を確保し、その領域の各ページの先頭部分に対し書き込みを行うプログラムを作成し、実行した。測定結果には、メモリ割当コストのみが含まれ、解放コストは含まれない。実行したのは、ＤＲＡＭのみ、直接融合方式、半直接融合方式、間接融合方式（事前確保およびオンデマンド確保）、ｍｍａｐ方式の５つの方式の場合である。ＤＲＡＭのみの場合を除き、Ｅｘｔ２とＰＲＡＭＦＳの２つのファイルシステムで実行した。当該実行結果は、図１４である。図１４において、横軸は割当メモリサイズ（ＭＢ）、縦軸はＲＤＴＳＣ（Ｒｅａｄ  Ｔｉｍｅ  Ｓｔａｍｐ  Ｃｏｕｎｔｅｒ）により取得した値をクロック値で割ることで得た実行時間（ミリ秒）である。
【０１８０】
また、図１４の実行結果から、以下の３つのことがわかる。
（１）Ｅｘｔ２における半直接融合方式のコストが大きい
（２）ｍｍａｐ方式のコストはＥｘｔ２およびＰＲＡＭＦＳの両方で大きい
（３）最もコストが低いのは間接融合方式（事前確保）である
【０１８１】
また、図１４において、間接融合方式（事前確保）と比較して、直接融合方式、半直接融合方式、間接融合方式（オンデマンド確保）、ｍｍａｐ方式の各方式は、ＰＲＡＭＦＳでは、それぞれ２．３％、２．５％、１．２％、２７．９％、コストが大きい。一方、Ｅｘｔ２では、それぞれ５．２％、１１１．５％、３．２％、７３．６％、コストが大きい。間接融合方式（オンデマンド確保）では、より大きなメモリ割当が発生するたびに、ファイルへのブロック割当が発生する。しかしながら、一度割り当てられたブロックは、解放後はフリーリストで管理され再利用されるため、間接融合方式（オンデマンド確保）では、割当コストへの影響は小さい。半直接融合方式は、ＰＲＡＭＦＳではコストへの影響は小さく済んでいる一方で、Ｅｘｔ２のコストは大きくなっている。半直接融合方式のＥｘｔ２での実装は、余分なブロック確保と解放を伴う、冗長なものとなっているため、その影響が大きいと考えられる。ｍｍａｐ方式と他方式との最も際立った違いは、ファイルシステムからのブロック確保の方式にある。間接融合方式では、基本的にはフリーリストから１ブロック取得するだけである。一方、直接融合方式では、フリーリストが空になるたびに、ファイルシステムから複数ブロックを一括確保する。ｍｍａｐ方式では、ページ割当要求に対し、１ブロックずつファイルシステムから確保する必要がある。従って、実験結果から、ファイルシステムからのブロック確保コストの影響を受けること、一括確保の効果が大きいことがわかる。
【０１８２】
次に、ファイルシステムの整合性への影響の実験結果について説明する。
【０１８３】
（実験環境）
比較に用いるファイルシステムは、ファイルシステムの修復ツールが提供されているＥｘｔ２とする。そして、直接融合方式、半直接融合方式、間接融合方式（事前確保およびｏｎｄｅｍａｎｄ確保）、ｍｍａｐ方式の５つの方式によりメモリ割当を行った場合について比較を行う。当該比較は、メモリ確保を行うプログラムを実行し、５１２ＭＢの領域を確保した状態で強制終了させた場合について、ＯＳ再起動後にファイルシステム修復ツール（ｅ２ｆｓｃｋ）が検出するファイルシステムの不整合報告数により行う。
【０１８４】
ＮＶメモリ上のファイルシステムに対するファイルシステム修復ツールの適用は、異常終了後、再起動してからになる。それには、再起動時にＮＶメモリ領域の内容が保存されている必要があるため、再起動時にメモリが初期化されてしまう実機は使用できない。そこで、ＱＥＭＵ（http://wiki.qemu.org/Main_Page）にＮＶメインメモリのエミュレーション機能を追加したものを、評価環境として用いる。図１５に示すコマンドを実行すると、１２８ＭＢのＤＲＡＭの領域が確保され、また、ファイル「ｎｖｍｅｍｏｒｙ．ｉｍｇ」のすべてが、ＮＶメモリとして物理アドレス「０ｘ１０００００００」からの領域にマッピングされた状態で、ＱＥＭＵが起動する。
【０１８５】
また、ファイル「ｎｖｍｅｍｏｒｙ．ｉｍｇ」には、異常終了時の内容が、再起動後にも保持される。異常終了は、ＱＥＭＵのプロセスを強制終了することで、模擬する。
【０１８６】
（実験結果）
ファイルシステム修復ツール（ｅ２ｆｓｃｋ）が検出したファイルシステムの不整合報告の結果は、図１６である。図１６より、直接融合方式では、空きブロック数に異常があるという報告が、合計で６つあった。一方、残りの半直接融合方式、間接融合方式（事前確保およびｏｎｄｅｍａｎｄ確保）、ｍｍａｐ方式では、不整合の報告はなかった。直接融合方式は、ファイルシステムから直接ブロックを確保し、メインメモリへの割り当てに使用するため、どこからも参照されないが使用中のブロックができる。そのため、ファイルシステムの空きブロック数（Ｆｒｅｅ  ｂｌｏｃｋｓ  ｃｏｕｎｔ）に不整合を引き起こす。実験結果では、その空きブロック数の不整合が、ファイルシステム全体と、複数のブロックグループで異なっているという報告が出ており、直接融合方式に直接起因する不整合であると考えられる。空きブロック数の不整合は、比較的軽微な不整合ではあるが、放置すると、ファイルシステムがメモリリーク状態となってしまうため、修復する必要がある。
【０１８７】
半直接融合方式、間接融合方式（事前確保およびｏｎｄｅｍａｎｄ確保）、ｍｍａｐ方式の５つの方式は、メインメモリへの割り当てに使用するために、ファイルシステムから確保したブロックは、すべてファイルから参照される。そのため、行った実験では、不整合を引き起こすことはなかった。しかしながら、これは、どのような場合にも不整合を引き起こさないことを保証するものではない。ファイルシステムに操作を行っている途中での異常終了は、不整合を引き起こす可能性がある。しかしながら、そのような不整合は、通常のファイル操作でも起こりうるものであり、上記の５つの方式によるメモリ割当に起因して起こるわけではない。
【０１８８】
次に、ファイルシステムにおける空き領域管理方式の影響についての検証結果について説明する。
【０１８９】
上記の実験結果より、ファイルシステムからのブロック確保コストの影響が大きいことがわかる。特に、ｍｍａｐ方式では、１ブロックずつ確保するため、ファイルシステムの空き領域管理方式の影響を大きく受ける。そこで、単純な内部構造を持つＰＲＡＭＦＳを対象とし、ファイルシステムにおける空き領域管理方式を、メモリ上の操作に適した構造とすることで、ブロック確保コストを軽減し、その影響を検証する。
【０１９０】
ファイルシステムから１ブロックの確保に必要な操作は、直接融合方式および間接融合方式では、基本的にはフリーリストから要素を１つ取り出すだけである。一方、ｍｍａｐ方式では、ファイルシステムの空き領域管理方式を通してブロック確保を行う。ＰＲＡＭＦＳは、空き領域管理にビットマップを採用しているため、ビットマップの検索コストがかかる。シークに時間のかかるＨＤＤでは、ファイル内部のフラグメントの原因となるため、空きブロックをリストで管理する方式は、通常、使用されない。一方、ビットマップは、あるブロックに近い別の空きブロックを見つけやすく、内部フラグメントを抑制できるため、多くのファイルシステムで用いられている。しかしながら、シーク時間を考慮する必要のないＮＶメモリ上にファイルシステムを構築する場合、検索に時間のかかるビットマップの利点はない。
【０１９１】
また、ファイルシステムの空き領域管理方式の軽量化が、ｍｍａｐ方式でのメモリ割当コストの軽減につながることを検証するため、ＰＲＡＭＦＳの空き領域管理にリストを用いるように変更した。それにより、間接融合方式と同じコストで、ファイルシステムから１ブロックの確保が可能になる。また、ビットマップデータを置く必要がなくなるため、ファイルシステムの管理領域が小さくなり、その分をデータ領域に使用することができるようになる。
【０１９２】
また、上記と同様に、各方式でメモリ割当を行うプログラムを実行した。当該実行結果は、図１７である。図１７において、空き領域管理方式にリストを用いるように変更した結果は、「ＰＲＡＭＦＳ２」として示されている。空き領域管理方式の軽量化により、ｍｍａｐ方式によるメモリ割当コストは５８．２％減少している。一方、他方式のコストへの影響は、ほとんど見られない。
【０１９３】
また、図１７において、ｍｍａｐ方式のメモリ割当コストが大きく減少したことで、間接融合方式（事前確保）と比較しても４６．８％低く、ｍｍａｐ方式は、最もコストの低い方式となった。このような大きな減少の理由を調査するために、Ｐｅｒｆｏｒｍａｎｃｅ  Ｍｏｎｉｔｏｒｉｎｇ  Ｃｏｕｎｔｅｒ（ＰＭＣ）を用いて、実行命令数、キャッシュミスの回数を計測した。また、同じ実験をＱＥＭＵでも行い、実行命令数を計測した。当該結果は、図１８である。図１８において、ＱＥＭＵによるＴＳＣ（Ｔｉｍｅ  Ｓｔａｍｐ  Ｃｏｕｎｔｅｒ）の計測は、実行命令数を表すのに対し、ＡｔｏｍによるＴＳＣの計測は、実行時間を表す。また、図１８において、「Ｉｎｓｔｒｕｃｔｉｏｎ  Ｒｅｔｉｒｅｄ」は、実行命令数、「ＬＬＣ（Ｌａｓｔ  Ｌｅｖｅｌ  Ｃａｃｈｅ）  Ｍｉｓｓｅｓ」は、すべてのＬ２キャッシュミスの回数、「ＭＥＭ  ＬＯＡＤ  ＲＥＴＩＲＥＤ．Ｌ２  ＨＩＴ」は、Ｌ１データキャッシュをミスしＬ２キャッシュにヒットしたロード命令数、「ＭＥＭ  ＬＯＡＤ  ＲＥＴＩＲＥＤ．Ｌ２  ＭＩＳＳ」は、Ｌ２キャッシュをミスしたロード命令数である。
【０１９４】
図１８において、ＱＥＭＵにおける実行命令数と、Ａｔｏｍにおける実行命令数は、割り込みの影響があるため完全には一致しないが、近い値となっている。実行命令数では、空き領域管理方式の軽量化により、ｍｍａｐ方式のメモリ割当コストの減少は３７．５％となり、実行時間ほどの大きな減少とはなっていない。実行時間の差を広げる原因となったと考えられるのが、キャッシュミスの回数である。図１８において、「ＬＬＣ  Ｍｉｓｓｅｓ」、「ＭＥＭ  ＬＯＡＤ  ＲＥＴＩＲＥＤ．Ｌ２  ＭＩＳＳ」の両方で、大きな差が見られる。「Ａｔｏｍ  Ｄ２７００」のＬ２キャッシュは、コアあたり５１２ＫＢであり、現在のノートＰＣ用プロセッサと比較しても小さい。従って、空き領域管理方式の軽量化により、アクセスするデータの多くが、Ａｔｏｍのキャッシュにのる効果があったと考えられる。実際に、８ＭＢのＬ３キャッシュを持つ「Ｘｅｏｎ  Ｅ３−１２７０」で実験を行ったところ、メモリ割当コストの減少は２６．０％となり、キャッシュサイズが影響していることを裏付けている。
【０１９５】
以上の実験から、ＮＶメモリ上に構築するファイルシステムは、ＨＤＤとの性質の違いから、異なった内部構造を持つべき場合があり、空き領域管理方式はその１つであることがわかった。
【０１９６】
以上、本実施の形態による情報処理装置１によれば、ＮＶメモリをメインメモリおよびストレージとして使用する場合に、システムの異常終了時におけるファイルシステムの不整合を減らすことができる。
【０１９７】
なお、本実施の形態において、前述のファイル管理情報、ファイル領域管理情報、メモリ管理情報、メモリ領域管理情報は、例えば、１つの情報で表現されてもよい。当該情報を、領域管理情報とする。領域管理情報は、例えば、ＮＶメモリ１１が配置された物理アドレス空間が有するすべての物理アドレスを有する。当該１以上の各物理アドレスには、例えば、ファイル識別子や、論理アドレス、プロセス識別子、仮想アドレス、当該物理アドレスにより識別される領域が未使用領域であるか使用領域であるかを示すフラグなどが対応付いている。
【０１９８】
また、本実施の形態において、ファイル管理情報は、例えば、一のファイル識別子と、一の領域識別子と、領域の数を示す情報（以下、適宜、領域数情報）とを有する情報であってもよい。この場合、これら３つの情報は、通常、対応付いている。また、この場合、当該一の領域識別子は、通常、当該一のファイル識別子により識別されるファイルが書き込まれている先頭の領域を識別する。また、領域数情報は、通常、当該先頭の領域から連続して書き込まれている領域の数を示す。
【０１９９】
例えば、当該領域識別子が「０ｘ００００００１１」であり、領域数情報が「３」であるとする。この場合、当該ファイル管理情報は、領域識別子「０ｘ００００００１１」、「０ｘ００００００１２」、「０ｘ００００００１３」により識別される３つの領域に、ファイルが書き込まれていることを意味する。
【０２００】
また、上記の場合、ファイル管理情報は、一のファイル識別子と、一の領域識別子と、領域数情報とを有する情報を１以上有する情報であってもよい。
【０２０１】
また、本実施の形態において、メモリ管理部１４は、ファイル管理情報が有する１以上のファイル識別子のいずれかを取得するファイル識別子取得手段を備えていてもよい。この場合、ファイル識別子取得手段は、通常、ファイル管理情報が有する１以上のファイル識別子を、予め決められた方法により取得する。また、この場合、ファイル管理情報追記手段１４３は、通常、未使用領域検出手段１４２が取得した１以上の領域識別子と、ファイル識別子取得手段が取得した１つのファイル識別子とを対応付け、ファイル管理情報を作成する。
【０２０２】
また、上記各実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよいし、あるいは、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
【０２０３】
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよいし、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをＣＰＵ等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。
【０２０４】
また、上記各実施の形態における情報処理装置を実現するソフトウェアは、例えば、以下のようなプログラムである。つまり、このプログラムは、不揮発性の記録媒体であるＮＶメモリとにアクセス可能なコンピュータを、前記ＮＶメモリに保存されている１以上のファイルを管理するファイルシステム部と、実行中のプロセスからの要求に応じて、前記ファイルシステム部がファイルとして使用し得る前記ＮＶメモリの領域を確保し、当該確保した領域を当該プロセスに割り当てるメモリ管理部として機能させるためのプログラムである。
【０２０５】
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。
【０２０６】
また、上記プログラムは、サーバなどからダウンロードされることによって実行されてもよいし、所定の記録媒体（例えば、ＣＤ−ＲＯＭなどの光ディスクや磁気ディスク、半導体メモリなど）に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。
【０２０７】
また、上記プログラムを実行するコンピュータは、単数であってもよいし、複数であってもよい。つまり、集中処理を行ってもよいし、あるいは分散処理を行ってもよい。
【０２０８】
また、図１９は、前述のプログラムを実行して、前述の実施の形態の情報処理装置等を実現するコンピュータシステム９の概観図である。前述の実施の形態は、コンピュータハードウェア、およびその上で実行されるコンピュータプログラムで実現され得る。
【０２０９】
図１９において、コンピュータシステム９は、ＣＤ−ＲＯＭドライブ９０１１、ＦＤドライブ９０１２を含むコンピュータ９０１と、キーボード９０２と、マウス９０３と、モニタ９０４とを備える。
【０２１０】
図２０は、コンピュータシステム９のブロック図である。図２０において、コンピュータ９０１は、ＣＤ−ＲＯＭドライブ９０１１、ＦＤドライブ９０１２に加えて、ＭＰＵ９０１３と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ９０１４と、ＭＰＵ９０１３に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのＲＡＭ９０１５と、アプリケーションプログラム、システムプログラム、およびデータを記憶するためのハードディスク９０１６と、ＣＤ−ＲＯＭドライブ９０１１、ＦＤドライブ９０１２、ＭＰＵ９０１３等を相互に接続するバス９０１７とを備える。ここでは図示しないが、コンピュータ９０１は、さらに、ＬＡＮへの接続を提供するネットワークカードを備えていてもよい。
【０２１１】
コンピュータシステム９に、前述の実施の形態の情報処理装置等の機能を実行させるプログラムは、ＣＤ−ＲＯＭ９１０１、またはＦＤ９１０２に記憶されて、ＣＤ−ＲＯＭドライブ９０１１またはＦＤドライブ９０１２に挿入され、さらにハードディスク９０１６に転送されてもよい。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ９０１に送信され、ハードディスク９０１６に記憶されてもよい。プログラムは実行の際にＲＡＭ９０１５にロードされる。プログラムは、ＣＤ−ＲＯＭ９１０１、ＦＤ９１０２またはネットワークから直接、ロードされてもよい。
【０２１２】
プログラムは、コンピュータ９０１に、前述の実施の形態の情報処理装置等の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティープログラム等は、必ずしも含まなくてもよい。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいればよい。コンピュータシステム９がどのように動作するかは周知であり、詳細な説明は省略する。
【０２１３】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０２１４】
以上のように、本発明にかかる情報処理装置は、ＮＶメモリをメインメモリおよびストレージとして使用する場合に、システムの異常終了時におけるファイルシステムの不整合を減らすことができるという効果を有し、オペレーティングシステムの一機能等として有用である。
【符号の説明】
【０２１５】
１  情報処理装置
１１  ＮＶメモリ
１２  受付部
１３  ファイルシステム部
１４  メモリ管理部
１３１  ファイル管理情報格納手段
１４１  領域識別子格納手段
１４２  未使用領域検出手段
１４３  ファイル管理情報追記手段
１４４  領域識別子取得手段
１４５  割当手段
【図１】
0005619198.tif 000002
【図２】
0005619198.tif 000003
【図３】
0005619198.tif 000004
【図４】
0005619198.tif 000005
【図５】
0005619198.tif 000006
【図６】
0005619198.tif 000007
【図７】
0005619198.tif 000008
【図８】
0005619198.tif 000009
【図９】
0005619198.tif 000010
【図１１】
0005619198.tif 000011
【図１２】
0005619198.tif 000012
【図１３】
0005619198.tif 000013
【図１５】
0005619198.tif 000014
【図１６】
0005619198.tif 000015
【図１８】
0005619198.tif 000016
【図１９】
0005619198.tif 000017
【図２０】
0005619198.tif 000018
【図１０】
0005619198.tif 000019
【図１４】
0005619198.tif 000020
【図１７】
0005619198.tif 000021