(57)【要約】【課題】操作性が向上する。【解決手段】メモリ部２はデータを記憶するためのデータ記憶領域２ａと、起動されたプログラムを読み込むためのプログラム実行領域２ｂとが割り当てられており、メモリリソース制御部４は、プログラムの起動時に、データ記憶領域２ａからデータを退避させて、プログラム実行領域２ｂを拡張することができる。これにより、プログラム実行領域２ｂのメモリ容量に関わらず、プログラムを正常に起動でき、操作性が向上する。【選択図】図１
2012032896.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行して情報処理を行う情報処理装置において、
データを記憶するためのデータ記憶領域と、起動されたプログラムを読み込むためのプログラム実行領域とが割り当てられたメモリ部と、
前記プログラムの起動時に、前記データ記憶領域から前記データを退避させて、前記プログラム実行領域を拡張するメモリリソース制御部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記プログラムの起動に必要なメモリ容量が前記プログラム実行領域のメモリ容量を超えている、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記メモリリソース制御部によって前記データ記憶領域から退避した前記データが移動される外部記憶装置が接続されている、
ことを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記メモリリソース制御部は、前記プログラムの終了後、退避させた前記データを前記データ記憶領域に戻し、前記プログラム実行領域を縮小する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記データ記憶領域から退避に必要なメモリ容量が前記データのデータ数の組み合わせが複数ある場合には、前記データ数が少なくなるように、前記データを退避する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項６】
プログラムを実行して情報処理を行う情報処理装置のメモリ容量制御方法において、
プログラムの起動時に、データを記憶するためのデータ記憶領域と、起動された前記プログラムを読み込むためのプログラム実行領域とが割り当てられたメモリ部の前記データ記憶領域から前記データを退避させて、前記プログラム実行領域を拡張する、
ことを特徴とするメモリ容量制御方法。
【請求項７】
プログラムを実行して情報処理を行う情報処理装置のメモリ容量制御プログラムにおいて、
コンピュータに、
プログラムの起動時に、データを記憶するためのデータ記憶領域と、起動された前記プログラムを読み込むためのプログラム実行領域とが割り当てられたメモリ部の前記データ記憶領域から前記データを退避させて、前記プログラム実行領域を拡張させる、
処理を実行させることを特徴とするメモリ容量制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、メモリ容量制御方法及びメモリ容量制御プログラムに関する。
【背景技術】
【０００２】
情報処理装置では、メモリ資源を有効に利用するために、例えば、下記の方法が利用されている。
図８は、メモリをデータ記憶領域とプログラム実行領域とに分割調整するための画面を表す図である。
【０００３】
図８には、例えば、メモリ部（ＲＡＭ）を記憶装置のデータ記憶領域とプログラム実行領域に分割調整するためのシステムのプロパティのウィンドウ５００を表している。
ウィンドウ５００では、メモリ容量表示領域５１０で、メモリ容量調整領域５１１（斜線領域）内でスライダ５１２を図８中左右方向に手動で移動させることができる。これにより、記憶装置の容量をデータ記憶領域とプログラム記憶領域とに自由に分割して割り当てることができる。
【０００４】
例えば、スライダ５１２をメモリ容量調整領域５１１内の図８に示す位置に移動させた場合、表示領域５１３ａ，５１４ａにそれぞれ表示されているように、データ記憶領域に３０６８４ＫＢが、プログラム記憶領域に４８０００ＫＢがそれぞれ割り当てられている。さらに、この場合、表示領域５１３ｂ，５１４ｂにそれぞれ表示されているように、データ記憶領域中の２５０６０ＫＢが、プログラム記憶領域中の２１０４８ＫＢがそれぞれ使用されている。
【０００５】
また、情報処理装置では、メモリ資源を有効に利用するために、この他にも様々な方法が利用されている。例えば、パーティションに対応した記憶容量、書込み時間の少なくとも一方を関連付けたテーブルに基づいて、データの記憶先のパーティションを判定する方法（例えば、特許文献１参照）がある。別の方法としては、タスクからサイズを指定したメモリ獲得要求に対して、タスクから指定されたサイズ以上でかつＣＰＵ（Central Processing Unit）のキャッシュラインサイズを単位サイズとして調整した使用可能領域をもつメモリブロックを割り当てる方法（例えば、特許文献２参照）もある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１４６８０８号公報
【特許文献２】特開２００１−１５４８６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、上記のように予め手動でメモリ容量を分割する方法には、次のような問題点があった。
あるプログラムを実行する際に、当該プログラムの実行に必要なメモリ容量が、予め割り当てていたプログラム記憶領域の容量を超える場合には、当該プログラムを実行することができない。この場合には、当該プログラムの実行前に、プログラム記憶領域を拡張するような割り当てを再び手動で行う必要があり煩雑な動作が生じてしまう。
【０００８】
さらに、このような理由によりプログラム記憶領域を拡張する際に、データ記憶領域に記憶されているデータのために拡張できない場合がある。この場合には、データ記憶領域に記憶されているデータを別の記憶媒体等に退避し、または、削除する必要があり、煩雑な動作が生じてしまう。
【０００９】
本発明はこのような点に鑑みてされたものであり、起動するプログラムに応じてメモリの割り当てを自動的に調整することができる情報処理装置、メモリ容量制御方法及びメモリ容量制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、プログラムを実行して情報処理を行う情報処理装置において、データを記憶するためのデータ記憶領域と、起動されたプログラムを読み込むためのプログラム実行領域とが割り当てられたメモリ部と、前記プログラムの起動時に、前記データ記憶領域から前記データを退避させて、前記プログラム実行領域を拡張するメモリリソース制御部と、を有する情報処理装置が提供される。
【００１１】
また、上記目的を達成するために上記の情報処理装置と同様のメモリ容量制御方法及び同様の処理をコンピュータに実行させるメモリ容量制御プログラムが提供される。
【発明の効果】
【００１２】
上記の情報処理装置、メモリ容量制御方法及びメモリ容量制御プログラムによれば、操作性が向上する。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態に係る情報処理装置の構成を示す図である。
【図２】第２の実施の形態に係る情報処理装置のハードウェア構成例を示す図である。
【図３】第２の実施の形態に係る情報処理装置が備える機能を示すブロック図である。
【図４】第２の実施の形態に係る情報処理装置が備えるプログラム管理データの具体例を示す図である。
【図５】第２の実施の形態に係る情報処理装置が備えるメモリリソース制御部が含む機能を示すブロック図である。
【図６】第２の実施の形態に係る情報処理装置でプログラムを起動するための処理手順を示すフローチャートである。
【図７】第２の実施の形態に係る情報処理装置でプログラムを終了するための処理手順を示すフローチャートである。
【図８】メモリをデータ記憶領域とプログラム実行領域とに分割調整するための画面を表す図である。
【発明を実施するための形態】
【００１４】
以下、実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態に係る情報処理装置の構成を示す図である。
【００１５】
情報処理装置１は、プログラムの起動に必要なメモリ容量が、メモリ部２に予め割り当てられたプログラム実行領域２ｂのメモリ容量を超えている場合に、メモリ部２においてプログラム実行領域２ｂを拡張するものである。
【００１６】
このような情報処理装置１は、データを記憶するためのデータ記憶領域２ａと起動したプログラムを読み込むためのプログラム実行領域２ｂとが予め割り当てられたメモリ部２を有する。なお、メモリ部２のメモリ容量内でデータ記憶領域２ａとプログラム実行領域２ｂとを自由に割り当てることができる。したがって、メモリ部２のメモリ容量は、データ記憶領域２ａとプログラム実行領域２ｂとのメモリ容量の和と常に等しい。また、情報処理装置１は、データ記憶領域２ａに記憶されたプログラムデータ（図示を省略）をプログラム実行領域２ｂに読み込ませてプログラムを実行するプログラム実行部３を有する。さらに、情報処理装置１は、プログラムの起動に必要なメモリ容量がプログラム実行領域２ｂのメモリ容量を超えている場合に、メモリ部２においてプログラム実行領域２ｂを拡張するメモリリソース制御部４を有する。なお、メモリリソース制御部４は、プログラムの起動に必要なメモリ容量に応じて、データ記憶領域２ａの記憶データ２ａ１を外部記憶装置５に移動することができる。そして、情報処理装置１には、例えば、ＳＤメモリカード、外付けハードディスク等の外部記憶装置５が接続されている。
【００１７】
次に、情報処理装置１におけるプログラムの起動時の処理について説明する。
まず、情報処理装置１のメモリ部２に対して、データ記憶領域２ａとプログラム実行領域２ｂとを予め任意に割り当てておく。データ記憶領域２ａには予めプログラムデータ等の様々なデータが記憶されている。なお、図１中では、それらの総称として記憶データ２ａ１が記載されている。
【００１８】
次いで、情報処理装置１でプログラムを起動する。メモリリソース制御部４は、当該プログラムを起動するために必要なメモリ容量と、プログラム実行領域２ｂのメモリ容量とを比較する。当該比較結果において、当該プログラムを起動するために必要なメモリ容量がプログラム実行領域２ｂのメモリ容量以下の場合には、起動された当該プログラムがプログラム実行領域２ｂに読み込まれ、プログラム実行部３で実行される。
【００１９】
一方、当該プログラムを起動するために必要なメモリ容量が、プログラム実行領域２ｂのメモリ容量を超える場合には、メモリリソース制御部４は、当該プログラムの起動に必要なメモリ容量に応じて、メモリ部２においてプログラム実行領域２ｂを拡張すると共に、データ記憶領域２ａを縮小する。
【００２０】
また、当該プログラムを起動するために必要なメモリ容量が、プログラム実行領域２ｂのメモリ容量を超えている場合に、さらに、データ記憶領域２ａに記憶データ２ａ１が記憶されているために、プログラム実行領域２ｂのメモリ容量を拡張できない場合には、メモリリソース制御部４が、データ記憶領域２ａから記憶データ２ａ１を外部記憶装置５に移動させ、プログラム実行領域２ｂを拡張すると共に、データ記憶領域２ａを縮小する。
【００２１】
このようにしてプログラム実行領域２ｂが拡張されることにより、プログラム実行領域２ｂに読み込まれた当該プログラムがプログラム実行部３によって正常に実行されるようになる。
【００２２】
したがって、このような情報処理装置１では、プログラムを起動させた際に、当該プログラムの起動に必要なメモリ容量がプログラム実行領域２ｂのメモリ容量を超えている場合に、メモリリソース制御部４は、必要に応じてデータ記憶領域２ａに記憶されている記憶データ２ａ１を外部記憶装置５に移動させて、プログラム実行領域２ｂを拡張することができる。これにより、プログラム実行領域２ｂの割り当てを手動で行わずに、当該プログラムを正常に起動させて実行することが可能となり、操作性が向上する。
【００２３】
［第２の実施の形態］
次に、上記情報処理装置をより具体的に説明する。
図２は、第２の実施の形態に係る情報処理装置のハードウェア構成例を示す図である。なお、図２（Ａ）は情報処理装置１００の正面図を、図２（Ｂ）は情報処理装置１００に内蔵されているハードウェア構成例をそれぞれ表している。
【００２４】
情報処理装置１００は、図２（Ａ）に示されるように、例えば、携帯型の所定の処理を実行することが可能な情報端末であって、表示部１０１と、操作部１０２とを備えている。
【００２５】
表示部１０１は、情報処理装置１００の後述するＣＰＵ１００ａからの命令にしたがって画像を表示させるモニタである。表示部１０１としては、例えば、液晶モニタ等が用いられる。
【００２６】
操作部１０２は、情報処理装置１００が備える所定の機能がそれぞれ対応付けられており、操作部１０２に対する操作入力に応じて情報処理装置１００に当該機能の処理を実行させることができる。
【００２７】
なお、情報処理装置１００は、後述するように、ＳＤメモリカード１０３が自由に挿抜可能なカードスロットが側部に形成されている。
さらに、情報処理装置１００には、図２（Ｂ）に示されるように、ＣＰＵ１００ａ、メモリ部１１０、外部接続部１００ｂ、グラフィック処理部１００ｃ及び入力インタフェース１００ｄが互いにバス１００ｅで接続されて内蔵されている。
【００２８】
ＣＰＵ１００ａは、メモリ部１１０の記憶媒体に記憶された各種プログラムを実行することにより、この情報処理装置１００全体を統括的に制御する。
メモリ部１１０は、ＲＡＭであって、ＣＰＵ１００ａに実行させるＯＳ（Operating System）並びにプログラムの少なくとも一部が一時的に格納される。メモリ部１１０には、ＣＰＵ１００ａによる処理に必要な各種データが格納される。また、ＣＰＵ１００ａによる処理に必要なプログラムが起動されると、当該プログラムが読み込まれる。
【００２９】
外部接続部１００ｂは、カードスロットに挿入されたＳＤメモリカード１０３に対して、ＣＰＵ１００ａの要求に応じて、データの書き込み、読み取りを行う。
グラフィック処理部１００ｃには、表示手段である、図２（Ａ）の表示部１０１が接続されている。このグラフィック処理部１００ｃは、ＣＰＵ１００ａからの命令にしたがって、表示部１０１の画面上に画像を表示させる。
【００３０】
入力インタフェース１００ｄには、図２（Ａ）の操作部１０２が接続されている。入力インタフェース１００ｄは、操作部１０２からの信号を、バス１００ｅを介してＣＰＵ１００ａに送信する。
【００３１】
なお、このような携帯型の情報処理装置１００の場合に限らず、上記のようなハードウェア構成を有する、デスクトップ型、ノート型の所謂、パーソナルコンピュータ、携帯電話、ＰＤＡ（Personal Digital Assistant）等の情報処理装置であっても構わない。
【００３２】
次いで、情報処理装置１００が備える制御機能について説明する。
図３は、第２の実施の形態に係る情報処理装置が備える機能を示すブロック図である。
情報処理装置１００は、プログラムの起動に必要なメモリ容量が、メモリ部１１０に予め割り当てられたプログラム実行領域１１２のメモリ容量を超えている場合に、メモリ部１１０においてプログラム実行領域１１２を拡張して、当該プログラムを起動し実行するものである。
【００３３】
このような情報処理装置１００は、メモリ部１１０と、メモリリソース制御部１２０と、プログラム実行部１３０と、データ書込読取部１４０とを具備する。
メモリ部１１０は、データを記憶するデータ記憶領域１１１と、プログラムが読み込まれて起動されるプログラム実行領域１１２とに予め割り当てられている。データ記憶領域１１１には、当該情報処理装置１００で実行されるプログラムデータ１１１ａと、プログラム管理データ１１１ｂと、各種データの記憶データ１１１ｃとが記憶されている。
【００３４】
ここで、プログラム管理データ１１１ｂの具体例について説明する。
図４は、第２の実施の形態に係る情報処理装置が備えるプログラム管理データの具体例を示す図である。なお、プログラム管理データ１１１ｂは、プログラム情報テーブル１１１ｂ１とデータ情報テーブル１１１ｂ２とを具備しており、図４（Ａ）はプログラム情報テーブル１１１ｂ１を、図４（Ｂ）はデータ情報テーブル１１１ｂ２をそれぞれ表す。
【００３５】
プログラム情報テーブル１１１ｂ１は、データ記憶領域１１１に記憶されているプログラムに関する情報を表しており、図４（Ａ）に示されるように、各プログラムには、「プログラムＩＤ」と、各プログラムの起動時に必要なメモリ容量（「起動時メモリ容量」）とがそれぞれ対応付けられている。例えば、「プログラム名」の“Program02.exe”のプログラムには「プログラムＩＤ」として“２”が、“Program02.exe”の起動時に必要な「起動時メモリ容量」の“２０００”がそれぞれ対応付けられている。
【００３６】
データ情報テーブル１１１ｂ２は、データ記憶領域１１１に記憶されているデータに関する情報を表している。例えば、図４（Ｂ）に示される各データは、上記の２つのプログラム（“Program01.exe”、“Program02.exe”）をそれぞれ構成するものである。各データには、構成するプログラムの「プログラムＩＤ」と、当該データの容量を表す「サイズ」と、「移動トリガＩＤ」と、「移動先」と、「移動状態」とがそれぞれ対応付けられている。なお、「移動トリガＩＤ」とは、データ記憶領域１１１からＳＤメモリカード１０３等の情報処理装置１００に外付けされている外部記憶装置に移動されている場合には“１”が付加される。一方、移動されておらず、データ記憶領域１１１内に記憶されている場合には「移動トリガＩＤ」として何も付加されない。また、「移動先」とは当該データが移動されている場合、その移動されている場所が記録される。「移動状態」とは、「移動先」に移動されている場合には“済”が、データ記憶領域１１１内に保持されている場合には“未”がそれぞれ付加される。例えば、「データ名」の“Data01＿002.txt”は、「プログラムＩＤ」が“１”のプログラム“Program01.exe”を構成しており、「サイズ」は“２００”で、データ記憶領域１１１内に保持されている。また、「データ名」の“Data02＿004.txt”は、「プログラムＩＤ」が“２”のプログラム“Program02.exe”を構成しており、「サイズ」は“８００”であり、「移動先」の“\SD\Data02＿004.txt”（ＳＤメモリカード１０３内）に移動されている状態にある。
【００３７】
図３に戻り、メモリリソース制御部１２０は、プログラムの起動時に必要なメモリ容量に応じて、データ記憶領域１１１内のプログラムデータ１１１ａ並びに記憶データ１１１ｃをデータ書込読取部１４０にＳＤメモリカード１０３に書き込ませ、プログラム実行領域１１２を拡張する。なお、この時、メモリ部１１０では、プログラム実行領域１１２が拡張されることで、データ記憶領域１１１は縮小する。また、メモリリソース制御部１２０は、後述するデータ書込読取部１４０が読み取ったＳＤメモリカード１０３からのデータをデータ記憶領域１１１内の元の位置に移動して、プログラム実行領域１１２を縮小する。なお、この時には、メモリ部１１０では、プログラム実行領域１１２が縮小されることで、データ記憶領域１１１は拡張する。なお、メモリリソース制御部１２０の詳細な機能については後述する。
【００３８】
プログラム実行部１３０は、メモリ部１１０のデータ記憶領域１１１に記憶されているプログラムデータ１１１ａが起動されると、プログラム実行領域１１２に読み込ませて、当該プログラムを実行する。
【００３９】
データ書込読取部１４０は、メモリリソース制御部１２０からの要求に応じて、データをＳＤメモリカード１０３に書き込み、また、ＳＤメモリカード１０３からデータを読み取ってメモリリソース制御部１２０に移動する。
【００４０】
さらに、メモリリソース制御部１２０の詳細について説明する。
図５は、第２の実施の形態に係る情報処理装置が備えるメモリリソース制御部が含む機能を示すブロック図である。
【００４１】
プログラム実行領域１１２の拡張並びにデータ記憶領域１１１に記憶されているデータを移動するメモリリソース制御部１２０は、取得部１２１と、比較部１２２と、算出部１２３と、判定部１２４と、データ移動部１２５と、メモリ容量制御部１２６と、更新部１２７と、移動トリガＩＤ特定部１２８とを有する。
【００４２】
取得部１２１は、プログラムが起動されると、プログラム管理データ１１１ｂのプログラム情報テーブル１１１ｂ１を参照して、当該プログラムに対応する起動時メモリ容量を取得する。また、取得部１２１は、実行していたプログラムが終了すると、プログラム管理データ１１１ｂのプログラム情報テーブル１１１ｂ１を参照して、終了する当該プログラムのプログラムＩＤを取得する。
【００４３】
比較部１２２は、取得部１２１で取得したプログラムの起動時メモリ容量と、プログラム実行領域１１２のメモリ容量とを比較する。なお、比較部１２２は、ＯＳに問い合わせすることでプログラム実行領域１１２の現状のメモリ容量を取得する。
【００４４】
算出部１２３は、比較部１２２の比較結果に応じて、当該プログラムを起動するためにプログラム実行領域１１２のメモリ容量の不足分を算出する。
判定部１２４は、データ記憶領域１１１に、算出部１２３で算出された当該不足分以上の空きメモリ容量が存在するか否かを判別する。
【００４５】
データ移動部１２５は、当該プログラムの起動時には、判定部１２４でデータ記憶領域１１１に算出部１２３で算出された不足分以上の空きメモリ容量が無いと判別された場合に、データ書込読取部１４０に、データ記憶領域１１１内のデータをデータ書込読取部１４０にＳＤメモリカード１０３に書き込むように書き込み要求を送信する。また、データ移動部１２５は、実行していたプログラムの終了時には、データ書込読取部１４０に、ＳＤメモリカード１０３から所定のデータを読み取らせて、当該データをデータ記憶領域１１１の元の位置に書き込む。
【００４６】
メモリ容量制御部１２６は、当該プログラムの起動時には、データ移動部１２５によりデータ記憶領域１１１からデータが移動されると、メモリ部１１０のプログラム実行領域１１２を拡張する。なお、プログラム実行領域１１２が拡張されると、プログラム実行部１３０が、プログラム実行領域１１２に当該プログラムを読み込ませて、当該プログラムを実行する。また、メモリ容量制御部１２６は、実行していたプログラムの終了時には、プログラム実行領域１１２を縮小する。
【００４７】
更新部１２７は、当該プログラムの起動時には、データ記憶領域１１１から移動されたデータについて、プログラム管理データ１１１ｂのデータ情報テーブル１１１ｂ２を更新する。また、更新部１２７は、プログラムの終了時には、データ記憶領域１１１に移動したデータについて、プログラム管理データ１１１ｂのデータ情報テーブル１１１ｂ２を更新する。
【００４８】
移動トリガＩＤ特定部１２８は、実行していたプログラムの終了時に、プログラム管理データ１１１ｂのデータ情報テーブル１１１ｂ２を参照して、取得部１２１が取得した終了するプログラムのプログラムＩＤに対応するデータのうち移動トリガＩＤが付加されているものを特定する。
【００４９】
次に、このような各機能を有する情報処理装置１００におけるメモリ部１１０のメモリ容量の制御を実行するための処理手順について説明する。
まず、プログラムを起動する場合について説明する。
【００５０】
図６は、第２の実施の形態に係る情報処理装置でプログラムを起動するための処理手順を示すフローチャートである。
まず、情報処理装置１００のメモリ部１１０に対して、データ記憶領域１１１とプログラム実行領域１１２とを予め割り当てておく。データ記憶領域１１１には、図３に示されるように、プログラムデータ１１１ａ、プログラム管理データ１１１ｂ及び記憶データ１１１ｃが記憶されている。
【００５１】
［ステップＳ１１］取得部１２１は、プログラムが起動されると、プログラム管理データ１１１ｂのプログラム情報テーブル１１１ｂ１を参照して、当該プログラムの起動時メモリ容量を取得する。
【００５２】
［ステップＳ１２］比較部１２２は、ステップＳ１１で取得したプログラムの起動時メモリ容量と、プログラム実行領域１１２のメモリ容量とを比較する。次の処理は、当該プログラムを起動するために、プログラム実行領域１１２のメモリ容量が不足していれば（起動時メモリ容量＞プログラム実行領域１１２のメモリ容量）、ステップＳ１３に進められる。プログラム実行領域１１２のメモリ容量が不足していなければ（起動時メモリ容量≦プログラム実行領域１１２のメモリ容量）、ステップＳ１７に進められる。
【００５３】
［ステップＳ１３］算出部１２３は、当該プログラムを起動するためにプログラム実行領域１１２のメモリ容量の不足分を算出する。
［ステップＳ１４］判定部１２４は、データ記憶領域１１１に、少なくとも、ステップＳ１３で算出されたプログラム実行領域１１２のメモリ容量の不足分の空きメモリ容量が存在するか否かを判別する。次の処理は、データ記憶領域１１１に空きメモリ容量が存在しない場合にはステップＳ１５に進められ、存在する場合にはステップＳ１６に進められる。
【００５４】
［ステップＳ１５］データ移動部１２５は、データ書込読取部１４０に、データ記憶領域１１１内のデータをＳＤメモリカード１０３に書き込ませて移動させる。
なお、データ移動部１２５が、データ記憶領域１１１から退避に必要なメモリ容量を構成するデータの組み合わせが複数ある場合には、できる限り、データ数が少なくなるようにすることで、効率よく移動することができる。例えば、図４（Ｂ）のデータ情報テーブル１１１ｂ２から「サイズ」が“３００”分のデータを移動する場合には、“Data01＿001.txt”（「サイズ」：“１００”）と“Data01＿002.txt”（「サイズ」：“２００”）とを合わせて移動するよりも、“Data01＿003.txt”（「サイズ」：“３００”）を移動するようにする。
【００５５】
［ステップＳ１６］メモリ容量制御部１２６は、起動したプログラムに必要なメモリ容量以上になるように、プログラム実行領域１１２を拡張する。
［ステップＳ１７］プログラム実行部１３０は、当該プログラムをプログラム実行領域１１２に読み込ませて、実行する。
【００５６】
次いで、プログラムを終了する場合について説明する。
なお、以下では、プログラムの起動時に、データ記憶領域１１１のデータをＳＤメモリカード１０３に移動させて、プログラム実行領域１１２を拡張しておいたときの、当該プログラムを終了させる場合を例に挙げて説明する。
【００５７】
図７は、第２の実施の形態に係る情報処理装置でプログラムを終了するための処理手順を示すフローチャートである。
［ステップＳ２１］取得部１２１は、プログラムが終了すると、プログラム管理データ１１１ｂのプログラム情報テーブル１１１ｂ１を参照して、終了した当該プログラムのプログラムＩＤを取得する。
【００５８】
［ステップＳ２２］移動トリガＩＤ特定部１２８は、プログラム管理データ１１１ｂのデータ情報テーブル１１１ｂ２を参照して、移動トリガＩＤの有無を判別する。次の処理は、移動トリガＩＤが有る場合にはステップＳ２３に進められる。また、次の処理は、移動トリガＩＤが無い、即ち、ＳＤメモリカード１０３に移動しているデータが無い場合には処理が終了する。
【００５９】
［ステップＳ２３］メモリ容量制御部１２６は、移動トリガＩＤが対応付けられているデータのサイズを合計して、少なくとも、データ記憶領域１１１を当該合計サイズ分拡張する。
【００６０】
［ステップＳ２４］データ移動部１２５は、ステップＳ２２で判別された移動トリガＩＤが対応付けられているプログラムＩＤのいずれかを選択する。
［ステップＳ２５］データ移動部１２５は、ステップＳ２４で選択したプログラムＩＤが対応付けられているデータをＳＤメモリカード１０３からデータ記憶領域１１１の元の位置に移動させる。なお、更新部１２７は、データ移動部１２５による移動が終了すると、プログラム管理データ１１１ｂのデータ情報テーブル１１１ｂ２の「移動トリガＩＤ」及び「移動先」をクリアして、「移動状態」を“未”に書き換えるような更新処理を行う。
【００６１】
［ステップＳ２６］データ移動部１２５は、プログラム管理データ１１１ｂのデータ情報テーブル１１１ｂ２を参照して、移動トリガＩＤが対応付けられているプログラムＩＤについて、既にステップＳ２４で選択したプログラムＩＤ以外の有無を判別する。次の処理は、プログラムＩＤが残っていればステップＳ２４に進められ、残っていなければ処理が終了する。
【００６２】
次に、上記処理フローに基づいて、情報処理装置１００の動作について具体的に説明する。
まず、プログラムを起動する場合について説明する。
【００６３】
初期設定として、メモリ部１１０においてデータ記憶領域１１１とプログラム実行領域１１２とを予め割り当てて、データ記憶領域１１１にはプログラムデータ１１１ａ、プログラム管理データ１１１ｂ及び記憶データ１１１ｃを記憶させておく。なお、データ記憶領域１１１には、図４（Ｂ）に示されるデータが記憶されている。
【００６４】
このような情報処理装置１００においてプログラム“Program01.exe”を実行すると、取得部１２１は、プログラム管理データ１１１ｂのプログラム情報テーブル１１１ｂ１（図４（Ａ））を参照して、当該プログラムの起動時メモリ容量“１０００”を取得する（ステップＳ１１）。
【００６５】
次いで、比較部１２２は、プログラム“Program01.exe”の起動時メモリ容量“１０００”と、プログラム実行領域１１２のメモリ容量（例えば、ここでは、“２００”とする）とを比較して（ステップＳ１２）、算出部１２３は、当該プログラムを起動するためにプログラム実行領域１１２のメモリ容量の不足分“８００”を算出する（ステップＳ１３）。
【００６６】
次いで、データ移動部１２５は、データ書込読取部１４０に、データ記憶領域１１１内のデータ“Data02＿004.txt”をＳＤメモリカード１０３に移動させて（ステップＳ１５）、メモリ容量制御部１２６は、メモリ容量“２００”のプログラム実行領域１１２をさらにメモリ容量“８００”分拡張する（ステップＳ１６）。
【００６７】
なお、データ移動部１２５によりデータ記憶領域１１１内のデータ“Data02＿004.txt”をＳＤメモリカード１０３に移動させた際、更新部１２７は、プログラム管理データ１１１ｂのデータ情報テーブル１１１ｂ２のデータ“Data02＿004.txt”の「移動トリガＩＤ」、「移動先」及び「移動状態」の情報を図４（Ｂ）に示されるように更新する。
【００６８】
以上により、プログラム実行部１３０は、起動時メモリ容量が“１０００”のプログラム“Program01.exe”をプログラム実行領域１１２に読み込ませて、実行することができる。
【００６９】
次に、プログラムを終了する場合について説明する。
プログラム“Program01.exe”を終了すると、取得部１２１は、プログラム管理データ１１１ｂのプログラム情報テーブル１１１ｂ１を参照して、終了するプログラム“Program01.exe”のプログラムＩＤ“１”を取得する（ステップＳ２１）。
【００７０】
次いで、メモリ容量制御部１２６は、少なくとも、データ記憶領域１１１において、移動トリガＩＤが対応付けられているデータ“Data02＿004.txt”のサイズ“８００”分を拡張する（ステップＳ２２，Ｓ２３）。
【００７１】
データ移動部１２５は、データ“Data02＿004.txt”をＳＤメモリカード１０３からデータ記憶領域１１１の元の位置に移動して、更新部１２７が“Data02＿004.txt”の「移動トリガＩＤ」及び「移動先」をクリアして、「移動状態」を“未”に書き換える（ステップＳ２４，Ｓ２５）。
【００７２】
このように、情報処理装置１００では、プログラムを起動させた際に、当該プログラムの起動に必要なメモリ容量がプログラム実行領域１１２のメモリ容量を超えている場合に、メモリリソース制御部１２０は、必要に応じてデータ記憶領域１１１に記憶されている記憶データ１１１ｃをＳＤメモリカード１０３に移動させて、プログラム実行領域１１２を拡張するようにした。また、情報処理装置１００では、メモリリソース制御部１２０が当該プログラムの終了後にＳＤメモリカード１０３に移動させたデータを自動的にデータ記憶領域１１１の元の位置に戻すようにした。これにより、プログラム実行領域１１２の割り当てを手動で行わずに、当該プログラムを正常に起動させて実行することが可能となり、プログラムの終了後、プログラムの実行前のメモリ部１１０と同じ状態に自動で戻すことができるようになり、操作性が向上する。
【００７３】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、情報処理装置１，１００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等がある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷ等がある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）等がある。
【００７４】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００７５】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００７６】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）等の電子回路で実現することもできる。
【符号の説明】
【００７７】
１，１００  情報処理装置
２，１１０  メモリ部
２ａ，１１１  データ記憶領域
２ａ１，１１１ｃ  記憶データ
２ｂ，１１２  プログラム実行領域
３，１３０  プログラム実行部
４，１２０  メモリリソース制御部
５  外部記憶装置
１００ａ  ＣＰＵ
１００ｂ  外部接続部
１００ｃ  グラフィック処理部
１００ｄ  入力インタフェース
１００ｅ  バス
１０１  表示部
１０２  操作部
１０３  ＳＤメモリカード
１１１ａ  プログラムデータ
１１１ｂ  プログラム管理データ
１１１ｂ１  プログラム情報テーブル
１１１ｂ２  データ情報テーブル
１２１  取得部
１２２  比較部
１２３  算出部
１２４  判定部
１２５  データ移動部
１２６  メモリ容量制御部
１２７  更新部
１２８  移動トリガＩＤ特定部
１４０  データ書込読取部
【図１】
2012032896.tif 000003
【図２】
2012032896.tif 000004
【図３】
2012032896.tif 000005
【図４】
2012032896.tif 000006
【図５】
2012032896.tif 000007
【図６】
2012032896.tif 000008
【図７】
2012032896.tif 000009
【図８】
2012032896.tif 000010