(57)【要約】【課題】一時的な空き領域を確保できないような、資源制約の厳しい組込み装置においても、メモリダンプを実現する。【解決手段】組込み装置１の障害発生時において、破壊ファイル選択部６が、破壊可能なファイルのリスト５とヒント情報４を参照して、二次記憶装置７に記憶されているファイル８の中から、メインメモリ２に記憶されているデータの退避による上書きによって消去される破壊ファイルを選択し、メモリダンプ部３が、破壊ファイル選択部６により選択された破壊ファイルに上書きしてメインメモリ２のデータを二次記憶装置７に書き込み、メモリダンプ出力部１０が上書き後の二次記憶装置７のファイルをメモリダンプ１２として出力し、破壊されたファイルを示すリスト１３を出力し、ファイル復旧部１１がファイルの元データ１４を入力し、破壊されたファイルのリスト１３をもとにファイル８の復旧を行う。【選択図】図１
2007323380.tif 000002
【特許請求の範囲】
【請求項１】
メモリ装置と二次記憶装置とを管理し、前記メモリ装置に記憶されているメモリ記憶データを前記メモリ装置から退避させるメモリ管理装置であって、
前記二次記憶装置に記憶されているデータの中から、前記メモリ記憶データの退避による上書きによって消去される上書き消去対象データを選択する上書き消去対象データ選択部と、
前記上書き消去対象データ選択部により選択された上書き消去対象データに上書きして前記メモリ記憶データを前記二次記憶装置に書き込むメモリ記憶データ書き込み部とを有することを特徴とするメモリ管理装置。
【請求項２】
前記メモリ記憶データ書き込み部は、
前記上書き消去対象データ選択部に前記メモリ記憶データのデータサイズを通知し、
前記上書き消去対象データ選択部は、
前記メモリ記憶データ書き込み部より前記メモリ記憶データのデータサイズを通知された場合に、前記上書き消去対象データとして選択可能な複数の上書き消去候補データと各々の上書き消去候補データのデータサイズとが示された上書き消去候補データリストを参照し、上書き消去候補データリストに示された複数の上書き消去候補データの中から前記メモリ記憶データのデータサイズ以上の上書き消去候補データであって最もデータサイズが小さい上書き消去候補データを前記上書き消去対象データとして選択することを特徴とする請求項１に記載のメモリ管理装置。
【請求項３】
前記メインメモリと前記二次記憶装置は、所定の情報処理装置内に配置されており、
前記メモリ記憶データ書き込み部は、
前記情報処理装置において障害が発生した場合に、発生した障害の障害重要度を前記上書き消去対象データ選択部に通知し、
前記上書き消去対象データ選択部は、
前記メモリ記憶データ書き込み部より障害重要度を通知された場合に、前記上書き消去対象データとして選択可能な複数の上書き消去候補データと各々の上書き消去候補データに対応する障害重要度とが示された上書き消去候補データリストを参照し、上書き消去候補データリストに示された複数の上書き消去候補データの中から前記メモリ記憶データ書き込み部より通知された障害重要度に対応する上書き消去候補データを前記上書き消去対象データとして選択することを特徴とする請求項１に記載のメモリ管理装置。
【請求項４】
前記上書き消去対象データ選択部は、
データサイズが大きい上書き消去候補データほど高い障害重要度が設定されている上書き消去候補データリストを参照し、前記メモリ記憶データ書き込み部より通知された障害重要度が高いほどデータサイズが大きい上書き消去候補データを選択することを特徴とする請求項３に記載のメモリ管理装置。
【請求項５】
前記メモリ記憶データ書き込み部は、
前記二次記憶装置のファイルシステム管理情報を参照して、前記上書き消去対象データ選択部により選択された上書き消去対象データが記憶されている記憶領域を特定し、前記二次記憶装置のファイルシステム管理情報を書き換えることなく、特定した記憶領域に前記メモリ記憶データを書き込むことを特徴とする請求項１に記載のメモリ管理装置。
【請求項６】
前記メモリ記憶データ書き込み部は、
前記メモリ記憶データを圧縮して前記二次記憶装置に書き込むことを特徴とする請求項１に記載のメモリ管理装置。
【請求項７】
前記メモリ記憶データ書き込み部は、
前記上書き消去対象データ選択部により選択された上書き消去対象データが記憶されている記憶領域の先頭領域に前記メモリ記憶データが上書きされていることを示す管理ヘッダ情報を書き込み、前記管理ヘッダ情報に後続して前記メモリ記憶データを書き込むことを特徴とする請求項１に記載のメモリ管理装置。
【請求項８】
前記メモリ記憶データ書き込み部は、
前記上書き消去対象データ選択部により選択された上書き消去対象データへの上書きでは前記メモリ記憶データの全てを書き込むことができず、前記メモリ記憶データの一部が残余した場合に、前記上書き消去対象データ選択部に前記メモリ記憶データの残余部分を上書きするための上書き消去対象データの選択を要求し、前記上書き消去対象データ選択部により新たに選択された上書き消去対象データに上書きして前記メモリ記憶データの残余部分を書き込むことを特徴とする請求項１に記載のメモリ管理装置。
【請求項９】
前記メモリ記憶データ書き込み部は、
前記上書き消去対象データ選択部により新たに選択された上書き消去対象データが記憶されている記憶領域の先頭領域に前記メモリ記憶データが上書きされていることを示す管理ヘッダ情報を書き込み、前記管理ヘッダ情報の書き込み領域に後続する領域から前記メモリ記憶データの残余部分を書き込むことを特徴とする請求項８に記載のメモリ管理装置。
【請求項１０】
前記メモリ記憶データ書き込み部は、
前記メモリ記憶データのデータサイズ、前記メモリ記憶データが複数の記憶領域に分散して書き込まれる場合に分散して書き込まれた部分データの連結のための連番、及びチェックサムコードの少なくともいずれかが含まれる管理ヘッダ情報を書き込むことを特徴とする請求項７又は９に記載のメモリ管理装置。
【請求項１１】
前記メモリ管理装置は、更に、
前記メモリ記憶データ書き込み部によりメモリ記憶データが前記二次記憶装置に書き込まれた後に、前記上書き消去対象データ選択部が前記上書き消去対象データとして選択可能な複数の上書き消去候補データが示された上書き消去候補データリストを参照し、各々の上書き消去候補データの記憶領域を特定するとともに各々の上書き消去候補データの記憶領域を解析し、各々の上書き消去候補データの記憶領域に前記管理ヘッダ情報が書き込まれているか否かを判断し、前記管理ヘッダ情報が書き込まれている場合に前記管理ヘッダ情報に後続して書き込まれているメモリ記憶データを抽出し、抽出したメモリ記憶データを出力するメモリ記憶データ出力部を有することを特徴とする請求項７又は９に記載のメモリ管理装置。
【請求項１２】
前記メモリ記憶データ出力部は、
各々の上書き消去候補データの記憶領域を解析した結果、前記管理ヘッダ情報が書き込まれている記憶領域が存在する場合に、前記管理ヘッダ情報が書き込まれている記憶領域に記憶されていた上書き消去候補データを上書き消去済みデータとして示す上書き消去済みデータリストを生成し、生成した上書き消去済みデータリストを出力することを特徴とする請求項１１に記載のメモリ管理装置。
【請求項１３】
前記メモリ管理装置は、更に、
前記メモリ記憶データ出力部により出力された上書き消去済みデータリストに示されている上書き消去済みデータと同一内容の復元データを、前記上書き消去済みデータが記憶されていた記憶領域に書き込むデータ復旧部を有することを特徴とする請求項１２に記載のメモリ管理装置。
【請求項１４】
メモリ装置と二次記憶装置とを管理し、前記メモリ装置に記憶されているメモリ記憶データを前記メモリ装置から退避させるメモリ管理方法であって、
前記二次記憶装置に記憶されているデータの中から、前記メモリ記憶データの退避による上書きによって消去される上書き消去対象データを選択する上書き消去対象データ選択ステップと、
前記上書き消去対象データ選択ステップにより選択された上書き消去対象データに上書きして前記メモリ記憶データを前記二次記憶装置に書き込むメモリ記憶データ書き込みステップとを有することを特徴とするメモリ管理方法。
【請求項１５】
メモリ装置と二次記憶装置とを管理するコンピュータに、前記メモリ装置に記憶されているメモリ記憶データを前記メモリ装置から退避させるメモリ管理を実行させるプログラムであって、
前記二次記憶装置に記憶されているデータの中から、前記メモリ記憶データの退避による上書きによって消去される上書き消去対象データを選択する上書き消去対象データ選択処理と、
前記上書き消去対象データ選択処理により選択された上書き消去対象データに上書きして前記メモリ記憶データを前記二次記憶装置に書き込むメモリ記憶データ書き込み処理とをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、例えば、組込み装置におけるメモリ情報保存技術に関する。
【背景技術】
【０００２】
コンピューターシステムにおいて、障害発生時にそのメモリの内容を二次記憶装置にダンプして保存しておき、障害のデバッグに活用する手法が一般的に行われている。
これを、二次記憶装置容量の限られた機器に適用する場合に、メモリダンプ取得のための領域を十分に確保することが難しい。
そこで、特許文献１のように、他の用途で使用されている領域のうちで空いている部分を、メモリダンプやログといったデバッグ用途で使用する領域を兼用することで、資源の有効活用を図る技術がある。
また、特許文献２のように、取得するメモリ領域を優先度に従って間引くことにより、限られた記憶領域に有効な情報を含むメモリダンプを出来る限り多く残そうとする方式が開示されている。
【特許文献１】特開昭６２−２１１７４７号公報
【特許文献２】特開平３−１４７１４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１では、仮想記憶で使用しているメモリ領域を一時的に待避するための連続領域であるスワップ領域のうち再起動時には使用されない部分、つまり一時的に空いているとみなすことができる部分を、メモリダンプの保存先として兼用することで、資源の有効活用を図っている。しかしながら、特許文献１の方式は、一時的な空き領域を確保できないような、資源制約の厳しい組込み装置に適用することはできない。
【０００４】
また、特許文献２は、取得するメモリ領域に優先度を割り当て、その優先度の高いメモリ領域から順に保存していくことで、限られた容量のメモリダンプの中に、出来る限り有用な情報を残そうとするものである。これは、保存元の情報を絞り込むことによって調整する技術であるが、保存先の領域が十分に確保できない場合に、障害の種類によっては解析に必要な重要な情報を取得できない可能性がある。
【０００５】
本発明は、上記のような問題を解決することを主な目的としており、メモリダンプのような実動作に使用されないデバッグ目的の機能のために空き領域を確保できない、資源制約の厳しい組込み機器などにおいて、他の用途で使用されているファイルの中から、後から復旧可能なものを一時的に破壊することにより、メモリダンプを保存するための領域を、障害発生時点において積極的に作り出し、メモリダンプを保存することを主な目的としている。
【課題を解決するための手段】
【０００６】
本発明に係るメモリ管理装置は、
メモリ装置と二次記憶装置とを管理し、前記メモリ装置に記憶されているメモリ記憶データを前記メモリ装置から退避させるメモリ管理装置であって、
前記二次記憶装置に記憶されているデータの中から、前記メモリ記憶データの退避による上書きによって消去される上書き消去対象データを選択する上書き消去対象データ選択部と、
前記上書き消去対象データ選択部により選択された上書き消去対象データに上書きして前記メモリ記憶データを前記二次記憶装置に書き込むメモリ記憶データ書き込み部とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、二次記憶装置に記憶されているデータを上書き消去対象データとして選択し、選択した上書き消去対象データに上書きしてメモリ記憶データを二次記憶装置に書き込むため、二次記憶装置の容量が非常に限られており、メモリダンプのための領域を確保するのが難しい場合においても、柔軟にメモリダンプのための領域を確保することが可能となり、メモリダンプによる解析を可能とする。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１はこの発明の実施の形態１におけるメモリダンプ保存方式を備える組込み装置１（情報処理装置）の構成図である。
図１において、メインメモリ２（メモリ装置）は、ソフトウェアの実行時状態を保持する。
メモリダンプ部３は、メインメモリ２の内容を二次記憶装置７に書き出す。メモリダンプ部３は、後述する破壊ファイル選択部６により選択された破壊ファイル（上書き消去対象データ）に上書きしてメインメモリ２に記憶されているデータ（メモリ記憶データ）を二次記憶装置７に書き込む。メモリダンプ部３は、メモリ記憶データ書き込み部の例である。
ヒント情報４は、メモリダンプのサイズや障害の種類を含む情報である。
破壊可能なファイルのリスト５は、メモリダンプ時にメインメモリ２のデータの上書きにより破壊されてもよい破壊可能なファイルを示す。
破壊可能なファイルのリスト５は、破壊ファイル（上書き消去対象データ）として選択可能な複数の破壊可能なファイル（上書き消去候補データ）と各々の破壊可能なファイルのデータサイズ等が示されたリストであり、上書き消去候補データリストの例である。
破壊ファイル選択部６は、ヒント情報４をもとに破壊可能なファイルのリスト５から破壊の対象となる破壊ファイルを選択する。破壊ファイル選択部６は、二次記憶装置７に記憶されているファイル８の中から、メインメモリ２に記憶されているデータ（メモリ記憶データ）の退避による上書きによって消去される破壊ファイル（上書き消去対象データ）を選択する。破壊ファイル選択部６は、上書き消去対象データ選択部の例である。
【０００９】
二次記憶装置７は、ファイル８とファイルシステム管理情報９を格納している。
ファイル８は、二次記憶装置７上にあるファイル群であり、破壊可能なファイルが含まれる。
ファイルシステム管理情報９は、ファイル８が二次記憶装置７上でどのセクタを使用して構成されているかを管理している情報である。
【００１０】
メモリダンプ出力部１０は、破壊されたファイルからメモリダンプ１２と破壊されたファイルのリスト１３を組込み装置１の外部に取り出す。メモリダンプ出力部１０は、破壊可能なファイルのリスト５を参照し、各々の破壊可能なファイル（上書き消去候補データ）の記憶領域を特定するとともに各々の破壊可能なファイルの記憶領域を解析し、各々の破壊可能なファイルの記憶領域に後述する管理ヘッダ情報が書き込まれているか否かを判断し、管理ヘッダ情報が書き込まれている場合に管理ヘッダ情報に後続して書き込まれているデータ（メモリ記憶データ）を抽出し、抽出したデータ（メモリ記憶データ）をメモリダンプ１２として出力する。また、メモリダンプ出力部１０は、各々の破壊可能なファイルの記憶領域を解析した結果、管理ヘッダ情報が書き込まれている記憶領域が存在する場合に、管理ヘッダ情報が書き込まれている記憶領域に記憶されていた破壊可能なファイルを破壊されたファイル（上書き消去済みデータ）として示す破壊されたファイルのリスト１３（上書き消去済みデータリスト）を生成し、生成した破壊されたファイルのリスト１３を出力する。メモリダンプ出力部１０は、メモリ記憶データ出力部の例である。
ファイル復旧部１１は、破壊されたファイルのリスト１３をもとに破壊されたファイルの元データ１４を組込み装置１に入力して破壊されたファイルを復旧する。ファイル復旧部１１は、メモリダンプ出力部１０により出力された破壊されたファイルのリスト１３に示されている破壊されたファイルと同一内容のファイルの元データ１４（復元データ）を、破壊されたファイルが記憶されていた元の記憶領域に書き込む。ファイル復旧部１１は、データ復旧部の例である。
【００１１】
また、図１の構成において、メモリダンプ部３、破壊ファイル選択部６、メモリダンプ出力部１０、ファイル復旧部１１がメモリ管理装置１００を構成し、ヒント情報４、破壊可能なファイルのリスト５を用いてメモリダンプのための二次記憶装置７の格納領域が決定される。
【００１２】
ここで、破壊可能なファイルというのは、例えば、組込み装置１の初期状態から二次記憶装置上に存在しているファイルのうち、組込み装置の正常稼働中に書き換えられることがなく、かつ組込み装置外部から元データを与えることで復旧することが可能なもののことを言う。例えば、画像や動画のプリインストールデータなどが該当する。
そして、破壊可能なファイルのリスト５にこれら破壊可能なファイルが示される。
破壊可能なファイルのリスト５は、例えば、図６のような構成をとる。図６においては、ファイル名に対して、そのファイルのデータサイズと、後述する障害重要度と、そのファイルのパスが示される。
なお、障害重要度は必ずしも必要ではなく、最低限、データサイズとパスが示されていればよい。
【００１３】
一時的な空き領域を確保できないような、資源制約の厳しい組込み装置１においてメモリダンプを実現するために、図１に示す各要素は、次のように動作する。
ソフトウェアの障害が発生すると、例外ハンドラ等によってソフトウェアのメインメモリ上での実行を停止した後、メモリダンプ部３が起動される。
メモリダンプ部３は、メモリダンプの保存先領域を獲得するために、破壊ファイル選択部６に対しヒント情報４とともに問い合わせる。
そして、破壊ファイル選択部６は、破壊可能なファイルのリスト５とヒント情報４をもとに、適宜二次記憶装置７上のファイルのパスを返却する。メモリダンプ部３は、得られたパスに基づいて、破壊可能なファイルの内容を、メインメモリ２の内容で上書きする。
【００１４】
メモリダンプ出力部１０は、破壊可能なファイルのリスト５をもとに、二次記憶装置７にある破壊されたファイルを識別し、メモリダンプ１２と破壊されたファイルのリスト１３を組込み装置１の外部に取り出す。このとき、破壊されたファイルそのものを組込み装置の外部に取り出した後、そこからメモリダンプを抽出、および結合してもよく、もしくは組込み装置１内でメモリダンプの抽出、および結合を行った結果を取り出してもよい。また、取り出す手段としては、組込み装置が備える外部インタフェースを利用する。例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などの有線通信、近距離無線や赤外線などの無線通信、挿抜可能な外部メモリ装置などが考えられるが、実施形態によりこの限りではなく、その手段は問わない。
メモリダンプ１２を組込み装置１の外部に取り出した後、組込み装置１の外部にあるファイルの元データ１４を使い、ファイル復旧部１１によって破壊されたファイルが元の内容に復旧される。
【００１５】
図７は、本実施の形態に示す組込み装置１のハードウェア資源の一例を示す図である。
図７において、組込み装置１は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、二次記憶装置９２０と接続され、これらのハードウェアデバイスを制御する。更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）と接続していてもよい。また、二次記憶装置９２０としては、磁気ディスク装置、光ディスク装置、メモリカード読み書き装置などの記憶装置が考えられる。
メインメモリ２の例としてＲＡＭ９１４が考えられる。ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、二次記憶装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード９１５、キーボード９０２、ＦＤＤ９０４などは、入力部、入力装置の一例である。
また、通信ボード９１５、表示装置９０１などは、出力部、出力装置の一例である。
【００１６】
例えば、通信ボード９１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）などのネットワークに接続されていてもよい。
二次記憶装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００１７】
上記プログラム群９２３には、本実施の形態の説明において「〜部」、「〜手段」として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」、「〜の評価結果」等として説明される情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、以下で説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００１８】
また、本実施の形態の説明において「〜部」、「〜手段」として説明しているものは、「〜回路」、「〜装置」、「〜機器」、「手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」、「〜手段」として説明しているものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、本実施の形態の「〜部」、「〜手段」としてコンピュータを機能させるものである。あるいは、本実施の形態の「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。
【００１９】
このように、本実施の形態に示す組込み装置１は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」、「〜手段」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【００２０】
次に、本実施の形態に係る動作（メモリ管理方法）の詳細を説明する。
【００２１】
先ず、メモリダンプ部３の動作（メモリ記憶データ書き込みステップ）について、図２を用いて説明する。
メモリダンプ部３は、実施の形態１の組込み装置１において、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）などによって障害が検出された際に、実行が開始される。
メモリダンプ部３は、最初に破壊ファイル選択部６を呼び出し、二次記憶装置７上にある上書きが可能なファイルのパスを得る（Ｓ１）。破壊ファイル選択部６を呼び出す際には、障害の種類、実行モード、保存するメインメモリの領域サイズなどをヒント情報４として与える。
そして、メモリダンプ部３は、破壊ファイル選択部６から得られた結果を確認し（Ｓ２）、上書き可能なファイルのパスが得られなければ（ＮＯの場合）終了する。
上書き可能なファイルのパスが得られた場合（ＹＥＳの場合）には、そのパスについて二次記憶装置７内部で管理しているファイルシステム管理情報９を調べ、ファイルの実体が格納されているセクタ（記憶領域）を特定する。そしてその先頭セクタ（先頭領域）を、管理ヘッダ情報で上書きする（Ｓ３）。
管理ヘッダ情報の中には、識別コード、状態フラグ、含まれるメモリダンプのデータサイズ、メモリダンプの順番、チェックサムコードを設ける。
識別コードは、後でファイルのこの部分を見たときに、このファイルがメモリダンプで上書きされていることをわかるようにするための、一意なデータパターンである。
状態フラグは、ファイルが上書き中か、上書きが完了しているかどうかを識別するためのデータである。
含まれるメモリダンプのデータサイズは、このファイルの上書きによってメモリダンプが記録されたバイト数の結果を保持する。
メモリダンプの順番は、メモリダンプのサイズが大きくて、複数のファイルに渡る場合に、その順序を記録しておくものである。すなわち、複数の記憶領域に分散して書き込まれる場合に分散して書き込まれた部分データの連結のための連番である。
チェックサムコードは、管理ヘッダ情報のデータの正当性を検証するための計算結果である。ステップＳ３では、状態フラグを上書き中とした管理ヘッダ情報を書き込む。
【００２２】
次に、管理ヘッダ情報を書き込んだ後、メモリダンプ部３は、そこに続くファイルの領域に、メインメモリの内容を順次書き込んでいく（Ｓ４）。このとき、限られた領域内に出来る限り多くの情報を記録するために、メインメモリの内容の冗長な部分を圧縮して書き込む。
そして、必要なメモリ内容を全て書き込み終えた場合は（Ｓ５）、メモリダンプ部３は、上書き完了の状態フラグと、含まれるメモリダンプのデータサイズ、メモリダンプの順番、およびチェックサムコードを管理ヘッダ情報に書き込み（Ｓ８）、終了する。
また、必要なメモリ内容を全て書き込む前にファイルの領域の末尾に到達してしまった場合にも同様に上書き完了の状態フラグと、含まれるメモリダンプのデータサイズ、メモリダンプの順番、およびチェックサムコードを管理ヘッダ情報に書き込むが（Ｓ７）、メモリ内容の残余部分を書き込むための領域を得るために、ステップＳ１に戻り再度破壊ファイル選択部６に問い合わせる。以降、全てのメモリ内容の書き込みを完了するか、上書きが可能なファイルパスが得られなくなるまで、上記処理を繰り返す。
【００２３】
次に、破壊ファイル選択部６の動作（上書き消去対象データ選択ステップ）について、図３を用いて説明する。
破壊ファイル選択部６は、メモリダンプ部３からの問合せに応じて実行を開始する。
そして、メモリダンプ部３から渡されるヒント情報４をもとに、破壊可能なファイルのリスト５の中から、１つのファイルのパスを選び出す（Ｓ１０１）。破壊可能なファイルのリスト５には、ファイルのパスに加え、ヒント情報を活用するために必要な付加情報（データサイズや障害重要度など）も組で記録しておく。
ここで、ヒント情報４として何も渡されなければ、破壊ファイル選択部６はリストの最初から順番にファイルが選択する。
ヒント情報４として書き込みたいデータのサイズが渡された場合には、破壊ファイル選択部６はリストに含まれる全てのファイルを調べ、その中からデータを保存するのに必要十分なファイルサイズを持つものを選択する。もし必要十分なファイルサイズを持つファイルがない場合には、ファイルサイズが最も大きいものを選択する。これは、破壊するファイルの数を最小に抑えることで、ダンプデータ取得後の破壊されたファイルの復旧を容易にすることや、もしくは必要以上に大きなファイルを破壊しないことで、ダンプデータを組込み装置１外部に取り出すための時間を短縮するためである。
また、ヒント情報４として、障害の重要度を与える場合について述べる。
障害の重要度とは、システムが障害を検出した際に、その障害の種別に応じて割り当てるレベル値で、ＣＰＵ例外などシステムにとって致命的なものであったり、障害の影響が広範囲にわたるものが高く設定される。ここでは、重度：３、中度：２、軽度：１のように割り当てる。そして、破壊可能なファイルのリスト５にも、障害の重要度に応じて、ファイルの付加情報として重要度を大：３、中：２、小：１のように割り当てておく。破壊ファイル選択部６では、ヒント情報の障害の重要度と、破壊可能なファイルのリスト５におけるファイルの付加情報の重要度とを比較し、軽度の障害であれば重要度が小のファイル、重度の障害であれば重要度が大〜小のファイルの中から適宜選択する。このようにすることで、重大な障害の場合には多くの情報を収集し、軽度の障害の場合には必要最小限の情報を収集するといった運用が可能となる。
【００２４】
上記により選択されたファイルのパスは、破壊可能なファイルのリスト５から外され、問合せのあったメモリダンプ部３に返却される（Ｓ１０２）。もし、ルールの条件に適合するファイルがリストからなくなった場合には、破壊ファイル選択部６は、エラーまたは空のパスなどによって、上書き可能なファイルが見つからなかったことを、メモリダンプ部３に伝える。
【００２５】
次に、メモリダンプ出力部１０の動作について、図４を用いて説明する。
メモリダンプ出力部１０は、メモリダンプ部３によるメモリダンプの保存が完了した後、再起動によって組込み装置１が正常な動作状態に復帰した後、人為的な操作によって実行を開始する。
メモリダンプ出力部１０は、最初に破壊可能なファイルのリスト５を読み込み、そして得られたファイルリストからファイルを１つ取り出し（Ｓ２０１）、更に、ファイルシステム管理情報９も参照してそのファイルに対応する二次記憶装置７のセクタ（記憶領域）を特定し、特定したセクタ（記憶領域）を解析し、そのファイルの中身を参照して先頭部分が管理ヘッダ情報であるか検査する（Ｓ２０２）。このとき、管理ヘッダ情報に埋め込まれた特定パターンのデータ（識別コード）、およびチェックサムが管理ヘッダ情報として想定するデータ構造と合致すれば、対象ファイルはメモリダンプで中身が破壊されているということが識別される（Ｓ２０３）。
ステップＳ２０３でＹＥＳと判断され、破壊されていると識別されたファイルは、破壊されたファイルのリスト１３に追加される（Ｓ２０４）。その際、管理ヘッダ情報に含まれるメモリダンプの順番を参照し、ソートが行われる。
１つのファイルの検査が完了すると、まだ検査が行われていないファイルが残っていないか、ファイルリストを調べる（Ｓ２０５）。まだ検査していないファイルが残っているのであればステップＳ２０１に戻り、次のファイルを取り出して検査する処理を繰り返す。
全てのファイルに対し検査を終えているのであれば、破壊されたファイルのリストの順番でファイルに上書きされたメモリダンプ１２を切り出し、組込み装置１が備えるなんらかの外部インタフェースに出力する（Ｓ２０６）。このとき、併せて破壊されたファイルのリスト１３も出力しておく。
外部インタフェースとしては、例えば、シリアルやＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、Ｅｔｈｅｒｎｅｔ（登録商標）、無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＩｒＤＡ、外部メモリカードなどが挙げられるが、この限りではなく、組込み装置１の形態に応じて様々な手段が用いられる。このようにして組込み装置の外部に取り出されたメモリダンプを、障害解析のために利用する。
【００２６】
本実施の形態では、メモリダンプ出力部１０が複数のファイルに渡って記録されたメモリダンプを結合しながら出力しているが、この結合処理を組込み装置１外部で実現してもよい。
例えば、組込み装置１の外部にファイルそのままの形で取り出し、そして取り出されたファイル群に対し、結合用プログラムを用いて単一ファイルのメモリダンプを生成してもよい。または、これに相当する処理を、メモリダンプの解析ツールが備えていてもよい。
【００２７】
次に、ファイル復旧部１１の動作について、図５を用いて説明する。
ファイル復旧部１１は、外部インタフェースからのデータ入力要求、または組込み装置１の利用者による人為的な操作によって実行を開始する。
ファイル復旧部１１は、破壊されたファイルのリスト１３をもとに破壊されたファイルの元データ１４が入力される（Ｓ３０１）と、ファイルシステム管理情報９を参照して、組込み装置１内の二次記憶装置７にある、破壊されたファイルが格納されていたセクタのデータを上書きして、破壊されたファイルを二次記憶装置７上の元の記憶領域に復帰させ、元の状態に復旧する（Ｓ３０２）。これを、破壊された全てのファイルに対して実行する。
【００２８】
（ａ）このように、本実施の形態に係るメモリ情報保存方式は、メモリダンプを保存するための専用の領域を用意することなく、一時的に破壊可能なファイルの領域を使うことで、破壊可能なファイルの合計サイズまでのメモリダンプを保存できる。
（ｂ）また、破壊可能なファイルのリストと、ヒント情報を参照し、どのファイルを破壊するのか選択する破壊ファイル選択手段を備える。ヒント情報とは、メモリダンプのサイズや発生した障害の種類など、破壊するファイルを決定する上で参考とすべき情報である。
（ｃ）そして、本実施の形態に係るメモリ情報保存方式は、障害発生時に、破壊ファイル選択手段に問い合わせた結果をもとに、二次記憶上にある指定されたファイルを上書きすることによって、メモリの内容を保存するメモリダンプ手段を備える。
（ｄ）また、本実施の形態に係るメモリ情報保存方式は、メモリダンプ手段によって上書きされたファイルを識別し、そのファイルに記録されたメモリダンプを組込み装置の外部に取り出すためのメモリダンプ出力手段を備える。
（ｅ）また、本実施の形態に係るメモリ情報保存方式は、装置の外部に保管されている、メモリダンプ手段によって上書きされたファイルの元ファイルを、組込み装置内部に入力し元の内容に書き戻すファイル復旧手段を備える。
【００２９】
（ａ）また、本実施の形態に係るメモリ情報保存方式において、メモリダンプ手段は、ダンプするメモリの内容が、破壊ファイル選択手段から得られたファイルに納まりきらなかった場合には、再度破壊ファイル選択手段に問い合わせることによって、次に破壊するファイルを得る。これを繰り返すことによって必要なメモリの内容を順次保存する。
（ｂ）そして、本実施の形態に係るメモリ情報保存方式では、破壊するファイルの先頭に管理ヘッダ情報の領域を設けることにより、上書きされていることを認識可能にする。管理ヘッダ情報には、上書きされたことを識別するための特定のパターンを持ったデータ構造の他、複数ファイルに分割保存されたメモリダンプの順番、含まれるメモリダンプのサイズ等が記録される。
（ｃ）また、本実施の形態に係るメモリ情報保存方式のメモリダンプ出力手段は、管理ヘッダ情報を参照することにより、破壊されたファイルを識別する。
【００３０】
また、本実施の形態に係るメモリ情報保存方式では、メモリダンプ手段が破壊可能なファイルを上書きする際に、メモリの内容を圧縮することによって、破壊されるファイルの数を最小にする。
【００３１】
（ａ）また、本実施の形態に係るメモリ情報保存方式では、メモリダンプ手段が破壊ファイル選択手段に問い合わせる際に、ヒント情報として保存したいサイズを渡すことによって、破壊可能なファイルのリストの中から最適なサイズのファイルが、破壊ファイル選択手段によって選択される。
（ｂ）そして、最適なサイズのファイルとは、保存したいサイズのデータを格納可能な破壊可能ファイルがあればその中で最小のサイズのもの、なければその中で最大のサイズのものである。
【００３２】
（ａ）また、本実施の形態に係るメモリ情報保存方式では、メモリダンプ手段が破壊ファイル選択手段に問い合わせる際に、ヒント情報として障害の重要度を渡すことによって、破壊ファイル選択手段は障害の重要度に応じて、破壊可能なファイルのリストから所定の重要度以下のファイルを選択する。
（ｂ）更に、破壊可能なファイルのリストには、ファイル毎に重要度が割り振られる。
（ｃ）そして、重要度の高い障害が発生したときは、重要度の低い障害に比べて多くのメモリ情報を保存することができる。
【００３３】
（ａ）また、本実施の形態に係るメモリ情報保存方式では、メモリダンプ手段がファイルを上書きする際に、二次記憶装置のファイルシステム管理情報を参照してファイルの内容を格納しているセクタを特定し、そのセクタを直接上書きすることにより、ファイルシステム管理情報を書き換えることなくメモリダンプを保存する。
（ｂ）そして、保存されたメモリダンプは、ファイルシステムから後刻ファイルとして取り出し可能である。
（ｃ）また、ファイルサーバーやディスクドライバなどの、ファイルシステムに関わる部分で発生した障害も解析可能とする効果がある。
【００３４】
本実施の形態に係るメモリ管理装置の効果としては、二次記憶装置の容量が非常に限られており、メモリダンプのための専用領域を確保するのが難しい組込み装置においても、必要に応じて柔軟に保存領域を確保することが可能となる。
組込み装置は一般的に、ソフトウェアの内部状態の視覚化が難しいため、メモリダンプによる解析は非常に有効なデバッグ手法であるが、その適用範囲を拡大できる点において、本実施の形態は有効である。
【００３５】
また、ヒント情報に応じてメモリダンプの領域を調整することにより、障害の重要度に応じてメモリダンプの取得量を変更可能とした。これは、外部インタフェースを介してメモリダンプを組込み装置の外部に取り出す際に転送時間がかかる場合において、重度障害発生時のデータは時間がかかってでもできるだけ多くの情報を確実に入手したいが、軽度障害の場合は必要最小限のデータ量に絞り込むことによって運用効率を上げたい、というトレードオフを実現できる点において有効である。
つまり、本実施の形態では、障害の重要度に応じて保存先の領域サイズを調整することにより、必要に応じて、解析範囲を広げることを目的にメモリダンプを多く残すことを可能にしている。これにより、重要度の高い障害の場合には広い範囲の情報解析を可能とし、軽度の障害であれば必要最小限のメモリダンプを残すのみにとどめることで、保存されたメモリダンプの組込み装置外部への取出しや復旧の手間を軽減するという運用を可能にする。
【００３６】
なお、以上の説明では、メインメモリ２のデータを二次記憶装置７に格納する際の動作を説明したが、ＲＯＭやフラッシュメモリ等の他の記憶装置のデータを二次記憶装置７に格納する場合にも本実施の形態に示した手法を用いることができる。
【００３７】
また、以上の説明では、組込み装置１においてメモリダンプを行う際の動作を説明したが、本実施の形態に示した手法は他の種類の情報処理装置でも適用可能である。
【００３８】
以上、本実施の形態では、メモリ装置と二次記憶装置とを管理し、メモリ装置に記憶されているメモリ記憶データをメモリ装置から退避させるメモリ管理装置であって、上書き消去対象データ選択部が、二次記憶装置に記憶されているデータの中から、メモリ記憶データの退避による上書きによって消去される上書き消去対象データを選択し、メモリ記憶データ書き込み部が、上書き消去対象データ選択部により選択された上書き消去対象データに上書きしてメモリ記憶データを二次記憶装置に書き込むことを説明した。
【００３９】
そして、メモリ記憶データ書き込み部は、上書き消去対象データ選択部にメモリ記憶データのデータサイズを通知し、上書き消去対象データ選択部は、メモリ記憶データ書き込み部よりメモリ記憶データのデータサイズを通知された場合に、上書き消去対象データとして選択可能な複数の上書き消去候補データと各々の上書き消去候補データのデータサイズとが示された上書き消去候補データリストを参照し、上書き消去候補データリストに示された複数の上書き消去候補データの中からメモリ記憶データのデータサイズ以上の上書き消去候補データであって最もデータサイズが小さい上書き消去候補データを上書き消去対象データとして選択することを説明した。
【００４０】
また、メインメモリと二次記憶装置は、所定の情報処理装置内に配置されており、メモリ記憶データ書き込み部は、情報処理装置において障害が発生した場合に、発生した障害の障害重要度を上書き消去対象データ選択部に通知し、上書き消去対象データ選択部は、メモリ記憶データ書き込み部より障害重要度を通知された場合に、上書き消去対象データとして選択可能な複数の上書き消去候補データと各々の上書き消去候補データに対応する障害重要度とが示された上書き消去候補データリストを参照し、上書き消去候補データリストに示された複数の上書き消去候補データの中からメモリ記憶データ書き込み部より通知された障害重要度に対応する上書き消去候補データを上書き消去対象データとして選択することを説明した。
【００４１】
また、上書き消去対象データ選択部は、データサイズが大きい上書き消去候補データほど高い障害重要度が設定されている上書き消去候補データリストを参照し、メモリ記憶データ書き込み部より通知された障害重要度が高いほどデータサイズが大きい上書き消去候補データを選択することを説明した。
【００４２】
また、メモリ記憶データ書き込み部は、二次記憶装置のファイルシステム管理情報を参照して、上書き消去対象データ選択部により選択された上書き消去対象データが記憶されている記憶領域を特定し、二次記憶装置のファイルシステム管理情報を書き換えることなく、特定した記憶領域にメモリ記憶データを書き込むことを説明した。
【００４３】
また、メモリ記憶データ書き込み部が、メモリ記憶データを圧縮して二次記憶装置に書き込むことを説明した。
【００４４】
メモリ記憶データ書き込み部が、上書き消去対象データ選択部により選択された上書き消去対象データが記憶されている記憶領域の先頭領域にメモリ記憶データが上書きされていることを示す管理ヘッダ情報を書き込み、管理ヘッダ情報に後続してメモリ記憶データを書き込むことを説明した。
【００４５】
メモリ記憶データ書き込み部が、上書き消去対象データ選択部により選択された上書き消去対象データへの上書きではメモリ記憶データの全てを書き込むことができず、メモリ記憶データの一部が残余した場合に、上書き消去対象データ選択部にメモリ記憶データの残余部分を上書きするための上書き消去対象データの選択を要求し、上書き消去対象データ選択部により新たに選択された上書き消去対象データに上書きしてメモリ記憶データの残余部分を書き込むことを説明した。
【００４６】
メモリ記憶データ書き込み部が、上書き消去対象データ選択部により新たに選択された上書き消去対象データが記憶されている記憶領域の先頭領域にメモリ記憶データが上書きされていることを示す管理ヘッダ情報を書き込み、管理ヘッダ情報の書き込み領域に後続する領域からメモリ記憶データの残余部分を書き込むことを説明した。
【００４７】
メモリ記憶データ書き込み部が、メモリ記憶データのデータサイズ、メモリ記憶データが複数の記憶領域に分散して書き込まれる場合に分散して書き込まれた部分データの連結のための連番、及びチェックサムコードの少なくともいずれかが含まれる管理ヘッダ情報を書き込むことを説明した。
【００４８】
メモリ記憶データ出力部が、メモリ記憶データ書き込み部によりメモリ記憶データが二次記憶装置に書き込まれた後に、上書き消去対象データ選択部が上書き消去対象データとして選択可能な複数の上書き消去候補データが示された上書き消去候補データリストを参照し、各々の上書き消去候補データの記憶領域を特定するとともに各々の上書き消去候補データの記憶領域を解析し、各々の上書き消去候補データの記憶領域に管理ヘッダ情報が書き込まれているか否かを判断し、管理ヘッダ情報が書き込まれている場合に管理ヘッダ情報に後続して書き込まれているメモリ記憶データを抽出し、抽出したメモリ記憶データを出力することを説明した。
【００４９】
また、メモリ記憶データ出力部が、各々の上書き消去候補データの記憶領域を解析した結果、管理ヘッダ情報が書き込まれている記憶領域が存在する場合に、管理ヘッダ情報が書き込まれている記憶領域に記憶されていた上書き消去候補データを上書き消去済みデータとして示す上書き消去済みデータリストを生成し、生成した上書き消去済みデータリストを出力することを説明した。
【００５０】
データ復旧部が、メモリ記憶データ出力部により出力された上書き消去済みデータリストに示されている上書き消去済みデータと同一内容の復元データを、上書き消去済みデータが記憶されていた記憶領域に書き込むことを説明した。
【図面の簡単な説明】
【００５１】
【図１】実施の形態１に係る組込み装置の構成例を示す図。
【図２】実施の形態１に係るメモリダンプ部の動作例を示すフローチャート図。
【図３】実施の形態１に係る破壊ファイル選択部の動作例を示すフローチャート図。
【図４】実施の形態１に係るメモリダンプ出力部の動作例を示すフローチャート図。
【図５】実施の形態１に係るファイル復旧部の動作例を示すフローチャート図。
【図６】実施の形態１に係る破壊可能なファイルのリストの例を示す図。
【図７】実施の形態１に係る組込み装置のハードウェア構成例を示す図。
【符号の説明】
【００５２】
１  組込み装置、２  メインメモリ、３  メモリダンプ部、４  ヒント情報、５  破壊可能なファイルのリスト、６  破壊ファイル選択部、７  二次記憶装置、８  ファイル、９  ファイルシステム管理情報、１０  メモリダンプ出力部、１１  ファイル復旧部、１２  メモリダンプ、１３  破壊されたファイルのリスト、１４  ファイルの元データ、１００  メモリ管理装置。
【図１】
2007323380.tif 000003
【図２】
2007323380.tif 000004
【図３】
2007323380.tif 000005
【図４】
2007323380.tif 000006
【図５】
2007323380.tif 000007
【図６】
2007323380.tif 000008
【図７】
2007323380.tif 000009