説明

情報処理装置、メモリ容量制御方法及びメモリ容量制御プログラム

【課題】操作性が向上する。
【解決手段】メモリ部2はデータを記憶するためのデータ記憶領域2aと、起動されたプログラムを読み込むためのプログラム実行領域2bとが割り当てられており、メモリリソース制御部4は、プログラムの起動時に、データ記憶領域2aからデータを退避させて、プログラム実行領域2bを拡張することができる。これにより、プログラム実行領域2bのメモリ容量に関わらず、プログラムを正常に起動でき、操作性が向上する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、メモリ容量制御方法及びメモリ容量制御プログラムに関する。
【背景技術】
【0002】
情報処理装置では、メモリ資源を有効に利用するために、例えば、下記の方法が利用されている。
図8は、メモリをデータ記憶領域とプログラム実行領域とに分割調整するための画面を表す図である。
【0003】
図8には、例えば、メモリ部(RAM)を記憶装置のデータ記憶領域とプログラム実行領域に分割調整するためのシステムのプロパティのウィンドウ500を表している。
ウィンドウ500では、メモリ容量表示領域510で、メモリ容量調整領域511(斜線領域)内でスライダ512を図8中左右方向に手動で移動させることができる。これにより、記憶装置の容量をデータ記憶領域とプログラム記憶領域とに自由に分割して割り当てることができる。
【0004】
例えば、スライダ512をメモリ容量調整領域511内の図8に示す位置に移動させた場合、表示領域513a,514aにそれぞれ表示されているように、データ記憶領域に30684KBが、プログラム記憶領域に48000KBがそれぞれ割り当てられている。さらに、この場合、表示領域513b,514bにそれぞれ表示されているように、データ記憶領域中の25060KBが、プログラム記憶領域中の21048KBがそれぞれ使用されている。
【0005】
また、情報処理装置では、メモリ資源を有効に利用するために、この他にも様々な方法が利用されている。例えば、パーティションに対応した記憶容量、書込み時間の少なくとも一方を関連付けたテーブルに基づいて、データの記憶先のパーティションを判定する方法(例えば、特許文献1参照)がある。別の方法としては、タスクからサイズを指定したメモリ獲得要求に対して、タスクから指定されたサイズ以上でかつCPU(Central Processing Unit)のキャッシュラインサイズを単位サイズとして調整した使用可能領域をもつメモリブロックを割り当てる方法(例えば、特許文献2参照)もある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−146808号公報
【特許文献2】特開2001−154860号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、上記のように予め手動でメモリ容量を分割する方法には、次のような問題点があった。
あるプログラムを実行する際に、当該プログラムの実行に必要なメモリ容量が、予め割り当てていたプログラム記憶領域の容量を超える場合には、当該プログラムを実行することができない。この場合には、当該プログラムの実行前に、プログラム記憶領域を拡張するような割り当てを再び手動で行う必要があり煩雑な動作が生じてしまう。
【0008】
さらに、このような理由によりプログラム記憶領域を拡張する際に、データ記憶領域に記憶されているデータのために拡張できない場合がある。この場合には、データ記憶領域に記憶されているデータを別の記憶媒体等に退避し、または、削除する必要があり、煩雑な動作が生じてしまう。
【0009】
本発明はこのような点に鑑みてされたものであり、起動するプログラムに応じてメモリの割り当てを自動的に調整することができる情報処理装置、メモリ容量制御方法及びメモリ容量制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するために、プログラムを実行して情報処理を行う情報処理装置において、データを記憶するためのデータ記憶領域と、起動されたプログラムを読み込むためのプログラム実行領域とが割り当てられたメモリ部と、前記プログラムの起動時に、前記データ記憶領域から前記データを退避させて、前記プログラム実行領域を拡張するメモリリソース制御部と、を有する情報処理装置が提供される。
【0011】
また、上記目的を達成するために上記の情報処理装置と同様のメモリ容量制御方法及び同様の処理をコンピュータに実行させるメモリ容量制御プログラムが提供される。
【発明の効果】
【0012】
上記の情報処理装置、メモリ容量制御方法及びメモリ容量制御プログラムによれば、操作性が向上する。
【図面の簡単な説明】
【0013】
【図1】第1の実施の形態に係る情報処理装置の構成を示す図である。
【図2】第2の実施の形態に係る情報処理装置のハードウェア構成例を示す図である。
【図3】第2の実施の形態に係る情報処理装置が備える機能を示すブロック図である。
【図4】第2の実施の形態に係る情報処理装置が備えるプログラム管理データの具体例を示す図である。
【図5】第2の実施の形態に係る情報処理装置が備えるメモリリソース制御部が含む機能を示すブロック図である。
【図6】第2の実施の形態に係る情報処理装置でプログラムを起動するための処理手順を示すフローチャートである。
【図7】第2の実施の形態に係る情報処理装置でプログラムを終了するための処理手順を示すフローチャートである。
【図8】メモリをデータ記憶領域とプログラム実行領域とに分割調整するための画面を表す図である。
【発明を実施するための形態】
【0014】
以下、実施の形態について図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態に係る情報処理装置の構成を示す図である。
【0015】
情報処理装置1は、プログラムの起動に必要なメモリ容量が、メモリ部2に予め割り当てられたプログラム実行領域2bのメモリ容量を超えている場合に、メモリ部2においてプログラム実行領域2bを拡張するものである。
【0016】
このような情報処理装置1は、データを記憶するためのデータ記憶領域2aと起動したプログラムを読み込むためのプログラム実行領域2bとが予め割り当てられたメモリ部2を有する。なお、メモリ部2のメモリ容量内でデータ記憶領域2aとプログラム実行領域2bとを自由に割り当てることができる。したがって、メモリ部2のメモリ容量は、データ記憶領域2aとプログラム実行領域2bとのメモリ容量の和と常に等しい。また、情報処理装置1は、データ記憶領域2aに記憶されたプログラムデータ(図示を省略)をプログラム実行領域2bに読み込ませてプログラムを実行するプログラム実行部3を有する。さらに、情報処理装置1は、プログラムの起動に必要なメモリ容量がプログラム実行領域2bのメモリ容量を超えている場合に、メモリ部2においてプログラム実行領域2bを拡張するメモリリソース制御部4を有する。なお、メモリリソース制御部4は、プログラムの起動に必要なメモリ容量に応じて、データ記憶領域2aの記憶データ2a1を外部記憶装置5に移動することができる。そして、情報処理装置1には、例えば、SDメモリカード、外付けハードディスク等の外部記憶装置5が接続されている。
【0017】
次に、情報処理装置1におけるプログラムの起動時の処理について説明する。
まず、情報処理装置1のメモリ部2に対して、データ記憶領域2aとプログラム実行領域2bとを予め任意に割り当てておく。データ記憶領域2aには予めプログラムデータ等の様々なデータが記憶されている。なお、図1中では、それらの総称として記憶データ2a1が記載されている。
【0018】
次いで、情報処理装置1でプログラムを起動する。メモリリソース制御部4は、当該プログラムを起動するために必要なメモリ容量と、プログラム実行領域2bのメモリ容量とを比較する。当該比較結果において、当該プログラムを起動するために必要なメモリ容量がプログラム実行領域2bのメモリ容量以下の場合には、起動された当該プログラムがプログラム実行領域2bに読み込まれ、プログラム実行部3で実行される。
【0019】
一方、当該プログラムを起動するために必要なメモリ容量が、プログラム実行領域2bのメモリ容量を超える場合には、メモリリソース制御部4は、当該プログラムの起動に必要なメモリ容量に応じて、メモリ部2においてプログラム実行領域2bを拡張すると共に、データ記憶領域2aを縮小する。
【0020】
また、当該プログラムを起動するために必要なメモリ容量が、プログラム実行領域2bのメモリ容量を超えている場合に、さらに、データ記憶領域2aに記憶データ2a1が記憶されているために、プログラム実行領域2bのメモリ容量を拡張できない場合には、メモリリソース制御部4が、データ記憶領域2aから記憶データ2a1を外部記憶装置5に移動させ、プログラム実行領域2bを拡張すると共に、データ記憶領域2aを縮小する。
【0021】
このようにしてプログラム実行領域2bが拡張されることにより、プログラム実行領域2bに読み込まれた当該プログラムがプログラム実行部3によって正常に実行されるようになる。
【0022】
したがって、このような情報処理装置1では、プログラムを起動させた際に、当該プログラムの起動に必要なメモリ容量がプログラム実行領域2bのメモリ容量を超えている場合に、メモリリソース制御部4は、必要に応じてデータ記憶領域2aに記憶されている記憶データ2a1を外部記憶装置5に移動させて、プログラム実行領域2bを拡張することができる。これにより、プログラム実行領域2bの割り当てを手動で行わずに、当該プログラムを正常に起動させて実行することが可能となり、操作性が向上する。
【0023】
[第2の実施の形態]
次に、上記情報処理装置をより具体的に説明する。
図2は、第2の実施の形態に係る情報処理装置のハードウェア構成例を示す図である。なお、図2(A)は情報処理装置100の正面図を、図2(B)は情報処理装置100に内蔵されているハードウェア構成例をそれぞれ表している。
【0024】
情報処理装置100は、図2(A)に示されるように、例えば、携帯型の所定の処理を実行することが可能な情報端末であって、表示部101と、操作部102とを備えている。
【0025】
表示部101は、情報処理装置100の後述するCPU100aからの命令にしたがって画像を表示させるモニタである。表示部101としては、例えば、液晶モニタ等が用いられる。
【0026】
操作部102は、情報処理装置100が備える所定の機能がそれぞれ対応付けられており、操作部102に対する操作入力に応じて情報処理装置100に当該機能の処理を実行させることができる。
【0027】
なお、情報処理装置100は、後述するように、SDメモリカード103が自由に挿抜可能なカードスロットが側部に形成されている。
さらに、情報処理装置100には、図2(B)に示されるように、CPU100a、メモリ部110、外部接続部100b、グラフィック処理部100c及び入力インタフェース100dが互いにバス100eで接続されて内蔵されている。
【0028】
CPU100aは、メモリ部110の記憶媒体に記憶された各種プログラムを実行することにより、この情報処理装置100全体を統括的に制御する。
メモリ部110は、RAMであって、CPU100aに実行させるOS(Operating System)並びにプログラムの少なくとも一部が一時的に格納される。メモリ部110には、CPU100aによる処理に必要な各種データが格納される。また、CPU100aによる処理に必要なプログラムが起動されると、当該プログラムが読み込まれる。
【0029】
外部接続部100bは、カードスロットに挿入されたSDメモリカード103に対して、CPU100aの要求に応じて、データの書き込み、読み取りを行う。
グラフィック処理部100cには、表示手段である、図2(A)の表示部101が接続されている。このグラフィック処理部100cは、CPU100aからの命令にしたがって、表示部101の画面上に画像を表示させる。
【0030】
入力インタフェース100dには、図2(A)の操作部102が接続されている。入力インタフェース100dは、操作部102からの信号を、バス100eを介してCPU100aに送信する。
【0031】
なお、このような携帯型の情報処理装置100の場合に限らず、上記のようなハードウェア構成を有する、デスクトップ型、ノート型の所謂、パーソナルコンピュータ、携帯電話、PDA(Personal Digital Assistant)等の情報処理装置であっても構わない。
【0032】
次いで、情報処理装置100が備える制御機能について説明する。
図3は、第2の実施の形態に係る情報処理装置が備える機能を示すブロック図である。
情報処理装置100は、プログラムの起動に必要なメモリ容量が、メモリ部110に予め割り当てられたプログラム実行領域112のメモリ容量を超えている場合に、メモリ部110においてプログラム実行領域112を拡張して、当該プログラムを起動し実行するものである。
【0033】
このような情報処理装置100は、メモリ部110と、メモリリソース制御部120と、プログラム実行部130と、データ書込読取部140とを具備する。
メモリ部110は、データを記憶するデータ記憶領域111と、プログラムが読み込まれて起動されるプログラム実行領域112とに予め割り当てられている。データ記憶領域111には、当該情報処理装置100で実行されるプログラムデータ111aと、プログラム管理データ111bと、各種データの記憶データ111cとが記憶されている。
【0034】
ここで、プログラム管理データ111bの具体例について説明する。
図4は、第2の実施の形態に係る情報処理装置が備えるプログラム管理データの具体例を示す図である。なお、プログラム管理データ111bは、プログラム情報テーブル111b1とデータ情報テーブル111b2とを具備しており、図4(A)はプログラム情報テーブル111b1を、図4(B)はデータ情報テーブル111b2をそれぞれ表す。
【0035】
プログラム情報テーブル111b1は、データ記憶領域111に記憶されているプログラムに関する情報を表しており、図4(A)に示されるように、各プログラムには、「プログラムID」と、各プログラムの起動時に必要なメモリ容量(「起動時メモリ容量」)とがそれぞれ対応付けられている。例えば、「プログラム名」の“Program02.exe”のプログラムには「プログラムID」として“2”が、“Program02.exe”の起動時に必要な「起動時メモリ容量」の“2000”がそれぞれ対応付けられている。
【0036】
データ情報テーブル111b2は、データ記憶領域111に記憶されているデータに関する情報を表している。例えば、図4(B)に示される各データは、上記の2つのプログラム(“Program01.exe”、“Program02.exe”)をそれぞれ構成するものである。各データには、構成するプログラムの「プログラムID」と、当該データの容量を表す「サイズ」と、「移動トリガID」と、「移動先」と、「移動状態」とがそれぞれ対応付けられている。なお、「移動トリガID」とは、データ記憶領域111からSDメモリカード103等の情報処理装置100に外付けされている外部記憶装置に移動されている場合には“1”が付加される。一方、移動されておらず、データ記憶領域111内に記憶されている場合には「移動トリガID」として何も付加されない。また、「移動先」とは当該データが移動されている場合、その移動されている場所が記録される。「移動状態」とは、「移動先」に移動されている場合には“済”が、データ記憶領域111内に保持されている場合には“未”がそれぞれ付加される。例えば、「データ名」の“Data01_002.txt”は、「プログラムID」が“1”のプログラム“Program01.exe”を構成しており、「サイズ」は“200”で、データ記憶領域111内に保持されている。また、「データ名」の“Data02_004.txt”は、「プログラムID」が“2”のプログラム“Program02.exe”を構成しており、「サイズ」は“800”であり、「移動先」の“\SD\Data02_004.txt”(SDメモリカード103内)に移動されている状態にある。
【0037】
図3に戻り、メモリリソース制御部120は、プログラムの起動時に必要なメモリ容量に応じて、データ記憶領域111内のプログラムデータ111a並びに記憶データ111cをデータ書込読取部140にSDメモリカード103に書き込ませ、プログラム実行領域112を拡張する。なお、この時、メモリ部110では、プログラム実行領域112が拡張されることで、データ記憶領域111は縮小する。また、メモリリソース制御部120は、後述するデータ書込読取部140が読み取ったSDメモリカード103からのデータをデータ記憶領域111内の元の位置に移動して、プログラム実行領域112を縮小する。なお、この時には、メモリ部110では、プログラム実行領域112が縮小されることで、データ記憶領域111は拡張する。なお、メモリリソース制御部120の詳細な機能については後述する。
【0038】
プログラム実行部130は、メモリ部110のデータ記憶領域111に記憶されているプログラムデータ111aが起動されると、プログラム実行領域112に読み込ませて、当該プログラムを実行する。
【0039】
データ書込読取部140は、メモリリソース制御部120からの要求に応じて、データをSDメモリカード103に書き込み、また、SDメモリカード103からデータを読み取ってメモリリソース制御部120に移動する。
【0040】
さらに、メモリリソース制御部120の詳細について説明する。
図5は、第2の実施の形態に係る情報処理装置が備えるメモリリソース制御部が含む機能を示すブロック図である。
【0041】
プログラム実行領域112の拡張並びにデータ記憶領域111に記憶されているデータを移動するメモリリソース制御部120は、取得部121と、比較部122と、算出部123と、判定部124と、データ移動部125と、メモリ容量制御部126と、更新部127と、移動トリガID特定部128とを有する。
【0042】
取得部121は、プログラムが起動されると、プログラム管理データ111bのプログラム情報テーブル111b1を参照して、当該プログラムに対応する起動時メモリ容量を取得する。また、取得部121は、実行していたプログラムが終了すると、プログラム管理データ111bのプログラム情報テーブル111b1を参照して、終了する当該プログラムのプログラムIDを取得する。
【0043】
比較部122は、取得部121で取得したプログラムの起動時メモリ容量と、プログラム実行領域112のメモリ容量とを比較する。なお、比較部122は、OSに問い合わせすることでプログラム実行領域112の現状のメモリ容量を取得する。
【0044】
算出部123は、比較部122の比較結果に応じて、当該プログラムを起動するためにプログラム実行領域112のメモリ容量の不足分を算出する。
判定部124は、データ記憶領域111に、算出部123で算出された当該不足分以上の空きメモリ容量が存在するか否かを判別する。
【0045】
データ移動部125は、当該プログラムの起動時には、判定部124でデータ記憶領域111に算出部123で算出された不足分以上の空きメモリ容量が無いと判別された場合に、データ書込読取部140に、データ記憶領域111内のデータをデータ書込読取部140にSDメモリカード103に書き込むように書き込み要求を送信する。また、データ移動部125は、実行していたプログラムの終了時には、データ書込読取部140に、SDメモリカード103から所定のデータを読み取らせて、当該データをデータ記憶領域111の元の位置に書き込む。
【0046】
メモリ容量制御部126は、当該プログラムの起動時には、データ移動部125によりデータ記憶領域111からデータが移動されると、メモリ部110のプログラム実行領域112を拡張する。なお、プログラム実行領域112が拡張されると、プログラム実行部130が、プログラム実行領域112に当該プログラムを読み込ませて、当該プログラムを実行する。また、メモリ容量制御部126は、実行していたプログラムの終了時には、プログラム実行領域112を縮小する。
【0047】
更新部127は、当該プログラムの起動時には、データ記憶領域111から移動されたデータについて、プログラム管理データ111bのデータ情報テーブル111b2を更新する。また、更新部127は、プログラムの終了時には、データ記憶領域111に移動したデータについて、プログラム管理データ111bのデータ情報テーブル111b2を更新する。
【0048】
移動トリガID特定部128は、実行していたプログラムの終了時に、プログラム管理データ111bのデータ情報テーブル111b2を参照して、取得部121が取得した終了するプログラムのプログラムIDに対応するデータのうち移動トリガIDが付加されているものを特定する。
【0049】
次に、このような各機能を有する情報処理装置100におけるメモリ部110のメモリ容量の制御を実行するための処理手順について説明する。
まず、プログラムを起動する場合について説明する。
【0050】
図6は、第2の実施の形態に係る情報処理装置でプログラムを起動するための処理手順を示すフローチャートである。
まず、情報処理装置100のメモリ部110に対して、データ記憶領域111とプログラム実行領域112とを予め割り当てておく。データ記憶領域111には、図3に示されるように、プログラムデータ111a、プログラム管理データ111b及び記憶データ111cが記憶されている。
【0051】
[ステップS11]取得部121は、プログラムが起動されると、プログラム管理データ111bのプログラム情報テーブル111b1を参照して、当該プログラムの起動時メモリ容量を取得する。
【0052】
[ステップS12]比較部122は、ステップS11で取得したプログラムの起動時メモリ容量と、プログラム実行領域112のメモリ容量とを比較する。次の処理は、当該プログラムを起動するために、プログラム実行領域112のメモリ容量が不足していれば(起動時メモリ容量>プログラム実行領域112のメモリ容量)、ステップS13に進められる。プログラム実行領域112のメモリ容量が不足していなければ(起動時メモリ容量≦プログラム実行領域112のメモリ容量)、ステップS17に進められる。
【0053】
[ステップS13]算出部123は、当該プログラムを起動するためにプログラム実行領域112のメモリ容量の不足分を算出する。
[ステップS14]判定部124は、データ記憶領域111に、少なくとも、ステップS13で算出されたプログラム実行領域112のメモリ容量の不足分の空きメモリ容量が存在するか否かを判別する。次の処理は、データ記憶領域111に空きメモリ容量が存在しない場合にはステップS15に進められ、存在する場合にはステップS16に進められる。
【0054】
[ステップS15]データ移動部125は、データ書込読取部140に、データ記憶領域111内のデータをSDメモリカード103に書き込ませて移動させる。
なお、データ移動部125が、データ記憶領域111から退避に必要なメモリ容量を構成するデータの組み合わせが複数ある場合には、できる限り、データ数が少なくなるようにすることで、効率よく移動することができる。例えば、図4(B)のデータ情報テーブル111b2から「サイズ」が“300”分のデータを移動する場合には、“Data01_001.txt”(「サイズ」:“100”)と“Data01_002.txt”(「サイズ」:“200”)とを合わせて移動するよりも、“Data01_003.txt”(「サイズ」:“300”)を移動するようにする。
【0055】
[ステップS16]メモリ容量制御部126は、起動したプログラムに必要なメモリ容量以上になるように、プログラム実行領域112を拡張する。
[ステップS17]プログラム実行部130は、当該プログラムをプログラム実行領域112に読み込ませて、実行する。
【0056】
次いで、プログラムを終了する場合について説明する。
なお、以下では、プログラムの起動時に、データ記憶領域111のデータをSDメモリカード103に移動させて、プログラム実行領域112を拡張しておいたときの、当該プログラムを終了させる場合を例に挙げて説明する。
【0057】
図7は、第2の実施の形態に係る情報処理装置でプログラムを終了するための処理手順を示すフローチャートである。
[ステップS21]取得部121は、プログラムが終了すると、プログラム管理データ111bのプログラム情報テーブル111b1を参照して、終了した当該プログラムのプログラムIDを取得する。
【0058】
[ステップS22]移動トリガID特定部128は、プログラム管理データ111bのデータ情報テーブル111b2を参照して、移動トリガIDの有無を判別する。次の処理は、移動トリガIDが有る場合にはステップS23に進められる。また、次の処理は、移動トリガIDが無い、即ち、SDメモリカード103に移動しているデータが無い場合には処理が終了する。
【0059】
[ステップS23]メモリ容量制御部126は、移動トリガIDが対応付けられているデータのサイズを合計して、少なくとも、データ記憶領域111を当該合計サイズ分拡張する。
【0060】
[ステップS24]データ移動部125は、ステップS22で判別された移動トリガIDが対応付けられているプログラムIDのいずれかを選択する。
[ステップS25]データ移動部125は、ステップS24で選択したプログラムIDが対応付けられているデータをSDメモリカード103からデータ記憶領域111の元の位置に移動させる。なお、更新部127は、データ移動部125による移動が終了すると、プログラム管理データ111bのデータ情報テーブル111b2の「移動トリガID」及び「移動先」をクリアして、「移動状態」を“未”に書き換えるような更新処理を行う。
【0061】
[ステップS26]データ移動部125は、プログラム管理データ111bのデータ情報テーブル111b2を参照して、移動トリガIDが対応付けられているプログラムIDについて、既にステップS24で選択したプログラムID以外の有無を判別する。次の処理は、プログラムIDが残っていればステップS24に進められ、残っていなければ処理が終了する。
【0062】
次に、上記処理フローに基づいて、情報処理装置100の動作について具体的に説明する。
まず、プログラムを起動する場合について説明する。
【0063】
初期設定として、メモリ部110においてデータ記憶領域111とプログラム実行領域112とを予め割り当てて、データ記憶領域111にはプログラムデータ111a、プログラム管理データ111b及び記憶データ111cを記憶させておく。なお、データ記憶領域111には、図4(B)に示されるデータが記憶されている。
【0064】
このような情報処理装置100においてプログラム“Program01.exe”を実行すると、取得部121は、プログラム管理データ111bのプログラム情報テーブル111b1(図4(A))を参照して、当該プログラムの起動時メモリ容量“1000”を取得する(ステップS11)。
【0065】
次いで、比較部122は、プログラム“Program01.exe”の起動時メモリ容量“1000”と、プログラム実行領域112のメモリ容量(例えば、ここでは、“200”とする)とを比較して(ステップS12)、算出部123は、当該プログラムを起動するためにプログラム実行領域112のメモリ容量の不足分“800”を算出する(ステップS13)。
【0066】
次いで、データ移動部125は、データ書込読取部140に、データ記憶領域111内のデータ“Data02_004.txt”をSDメモリカード103に移動させて(ステップS15)、メモリ容量制御部126は、メモリ容量“200”のプログラム実行領域112をさらにメモリ容量“800”分拡張する(ステップS16)。
【0067】
なお、データ移動部125によりデータ記憶領域111内のデータ“Data02_004.txt”をSDメモリカード103に移動させた際、更新部127は、プログラム管理データ111bのデータ情報テーブル111b2のデータ“Data02_004.txt”の「移動トリガID」、「移動先」及び「移動状態」の情報を図4(B)に示されるように更新する。
【0068】
以上により、プログラム実行部130は、起動時メモリ容量が“1000”のプログラム“Program01.exe”をプログラム実行領域112に読み込ませて、実行することができる。
【0069】
次に、プログラムを終了する場合について説明する。
プログラム“Program01.exe”を終了すると、取得部121は、プログラム管理データ111bのプログラム情報テーブル111b1を参照して、終了するプログラム“Program01.exe”のプログラムID“1”を取得する(ステップS21)。
【0070】
次いで、メモリ容量制御部126は、少なくとも、データ記憶領域111において、移動トリガIDが対応付けられているデータ“Data02_004.txt”のサイズ“800”分を拡張する(ステップS22,S23)。
【0071】
データ移動部125は、データ“Data02_004.txt”をSDメモリカード103からデータ記憶領域111の元の位置に移動して、更新部127が“Data02_004.txt”の「移動トリガID」及び「移動先」をクリアして、「移動状態」を“未”に書き換える(ステップS24,S25)。
【0072】
このように、情報処理装置100では、プログラムを起動させた際に、当該プログラムの起動に必要なメモリ容量がプログラム実行領域112のメモリ容量を超えている場合に、メモリリソース制御部120は、必要に応じてデータ記憶領域111に記憶されている記憶データ111cをSDメモリカード103に移動させて、プログラム実行領域112を拡張するようにした。また、情報処理装置100では、メモリリソース制御部120が当該プログラムの終了後にSDメモリカード103に移動させたデータを自動的にデータ記憶領域111の元の位置に戻すようにした。これにより、プログラム実行領域112の割り当てを手動で行わずに、当該プログラムを正常に起動させて実行することが可能となり、プログラムの終了後、プログラムの実行前のメモリ部110と同じ状態に自動で戻すことができるようになり、操作性が向上する。
【0073】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、情報処理装置1,100が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープ等がある。光ディスクには、DVD、DVD−RAM、CD−ROM/RW等がある。光磁気記録媒体には、MO(Magneto-Optical disk)等がある。
【0074】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0075】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0076】
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)等の電子回路で実現することもできる。
【符号の説明】
【0077】
1,100 情報処理装置
2,110 メモリ部
2a,111 データ記憶領域
2a1,111c 記憶データ
2b,112 プログラム実行領域
3,130 プログラム実行部
4,120 メモリリソース制御部
5 外部記憶装置
100a CPU
100b 外部接続部
100c グラフィック処理部
100d 入力インタフェース
100e バス
101 表示部
102 操作部
103 SDメモリカード
111a プログラムデータ
111b プログラム管理データ
111b1 プログラム情報テーブル
111b2 データ情報テーブル
121 取得部
122 比較部
123 算出部
124 判定部
125 データ移動部
126 メモリ容量制御部
127 更新部
128 移動トリガID特定部
140 データ書込読取部

【特許請求の範囲】
【請求項1】
プログラムを実行して情報処理を行う情報処理装置において、
データを記憶するためのデータ記憶領域と、起動されたプログラムを読み込むためのプログラム実行領域とが割り当てられたメモリ部と、
前記プログラムの起動時に、前記データ記憶領域から前記データを退避させて、前記プログラム実行領域を拡張するメモリリソース制御部と、
を有することを特徴とする情報処理装置。
【請求項2】
前記プログラムの起動に必要なメモリ容量が前記プログラム実行領域のメモリ容量を超えている、
ことを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記メモリリソース制御部によって前記データ記憶領域から退避した前記データが移動される外部記憶装置が接続されている、
ことを特徴とする請求項1記載の情報処理装置。
【請求項4】
前記メモリリソース制御部は、前記プログラムの終了後、退避させた前記データを前記データ記憶領域に戻し、前記プログラム実行領域を縮小する、
ことを特徴とする請求項1記載の情報処理装置。
【請求項5】
前記データ記憶領域から退避に必要なメモリ容量が前記データのデータ数の組み合わせが複数ある場合には、前記データ数が少なくなるように、前記データを退避する、
ことを特徴とする請求項1記載の情報処理装置。
【請求項6】
プログラムを実行して情報処理を行う情報処理装置のメモリ容量制御方法において、
プログラムの起動時に、データを記憶するためのデータ記憶領域と、起動された前記プログラムを読み込むためのプログラム実行領域とが割り当てられたメモリ部の前記データ記憶領域から前記データを退避させて、前記プログラム実行領域を拡張する、
ことを特徴とするメモリ容量制御方法。
【請求項7】
プログラムを実行して情報処理を行う情報処理装置のメモリ容量制御プログラムにおいて、
コンピュータに、
プログラムの起動時に、データを記憶するためのデータ記憶領域と、起動された前記プログラムを読み込むためのプログラム実行領域とが割り当てられたメモリ部の前記データ記憶領域から前記データを退避させて、前記プログラム実行領域を拡張させる、
処理を実行させることを特徴とするメモリ容量制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−32896(P2012−32896A)
【公開日】平成24年2月16日(2012.2.16)
【国際特許分類】
【出願番号】特願2010−169913(P2010−169913)
【出願日】平成22年7月29日(2010.7.29)
【出願人】(000237639)富士通フロンテック株式会社 (667)
【Fターム(参考)】