| 【発明の名称】 |
メモリ管理装置、メモリ管理方法、メモリ管理プログラム及び該プログラムを記録したコンピュータ読み取り可能な記録媒体 |
| 【発明者】 |
【氏名】久保岡 祐子
【氏名】土井 繁則
|
| 【要約】 |
【課題】Javaオブジェクトを生成するためのコピー処理によるオーバーヘッドを避け、効率的にメモリ領域を使用することができるメモリ管理方法を提供すること。
【解決手段】Javaアプリケーションで実行されるJavaオブジェクトが記憶され、Java仮想マシンによって再配置される可変アドレスメモリ領域と、他のプログラムに割り当てられた固定的なアドレスで生成されたデータが記憶される固定アドレスメモリ領域とを有するメモリにおいて、Javaアプリケーションからの要求に応じて、他のプログラムによって固定アドレスメモリ領域に生成されたデータをJavaオブジェクトとして読み出す。 |
【特許請求の範囲】
【請求項1】 オブジェクト指向型の言語で構成されるオブジェクト指向型プログラムを実行する仮想マシンプログラムによって実行される実行オブジェクトが記憶され、当該実行オブジェクトが前記仮想マシンプログラムによって再配置される可変アドレスメモリ領域と、前記オブジェクト指向型の言語以外の言語で構成される他のプログラムによって生成されたデータが記憶される固定アドレスメモリ領域とを有するメモリを管理するメモリ管理装置であって、オブジェクト指向型プログラムからの要求に応じて、前記オブジェクト指向型プログラムが前記生成されたデータを読み出すための管理情報を生成する生成手段と、前記生成手段で生成された管理情報にしたがって、前記固定アドレスメモリ領域に生成されたデータを読み出す読出手段とを備えることを特徴とするメモリ管理装置。 【請求項2】 前記メモリの固定アドレスメモリ領域にデータを受信する通信手段を更に備え、前記他のプログラムによって生成されたデータは、前記通信手段を用いて受信されたデータであり、前記生成手段は、前記通信手段を用いて受信されたデータを前記オブジェクト指向型プログラムが読み出すための管理情報を生成することを特徴とする請求項1記載のメモリ管理装置。 【請求項3】 前記オブジェクト指向型プログラムの実行処理の後、前記オブジェクト指向型プログラムからの削除要求に応じて、当該削除要求されたデータを検出する検出手段と、前記検出手段で検出されたデータが、前記可変アドレスメモリ領域または前記固定アドレスメモリ領域のいずれに記憶されているかを判定する種別判定手段と、前記検出手段で検出されたデータが前記固定アドレスメモリ領域に記憶されていると前記種別判定手段によって判定された場合、前記検出手段で検出されたデータに対する前記オブジェクト指向型プログラムからの削除要求を記憶する削除要求記憶手段と、前記削除要求記憶手段で削除要求が記憶されたデータに対する前記他のプログラムからの削除要求があるか否かを判定する削除判定手段と、前記削除要求記憶手段で削除要求が記憶されたデータに対し、前記他のプログラムからの削除要求があると前記削除判定手段で判定された場合、前記検出されたデータ及び当該データの管理情報を削除する削除手段とを更に備えることを特徴とする請求項1記載のメモリ管理装置。 【請求項4】 前記固定アドレスメモリ領域に記憶されたデータに応じて、当該データの実行オブジェクトが前記可変アドレスメモリ領域に記憶されるか否かを判定するデータ判定手段を備え、前記生成手段は、前記固定アドレスメモリ領域に記憶されたデータの実行オブジェクトが前記可変アドレスメモリ領域に記憶されないと前記データ判定手段によって判定された場合に、前記データの管理情報を生成することを特徴とする請求項1記載のメモリ管理装置。 【請求項5】 前記オブジェクト指向型プログラムはJavaで構成されていることを特徴とする請求項1から4のいずれか1項に記載のメモリ管理装置。 【請求項6】 オブジェクト指向型の言語で構成されるオブジェクト指向型プログラムを実行する仮想マシンプログラムによって実行される実行オブジェクトが記憶され、当該実行オブジェクトが前記仮想マシンプログラムによって再配置される可変アドレスメモリ領域と、前記オブジェクト指向型の言語以外の言語で構成される他のプログラムによって生成されたデータが記憶される固定アドレスメモリ領域とを有するメモリを管理するメモリ管理方法であって、オブジェクト指向型プログラムからの要求に応じて、前記オブジェクト指向型プログラムが前記生成されたデータを読み出すための管理情報を生成する生成ステップと、前記生成ステップで生成された管理情報にしたがって、前記固定アドレスメモリ領域に生成されたデータを読み出す読出ステップとを含むことを特徴とするメモリ管理方法。 【請求項7】 前記メモリの固定アドレスメモリ領域にデータを受信する通信ステップを更に含み、前記他のプログラムによって生成されたデータは、前記通信ステップで受信されたデータであり、前記生成ステップでは、前記通信ステップによって受信されたデータを前記オブジェクト指向型プログラムが読み出すための管理情報が生成されることを特徴とする請求項6記載のメモリ管理方法。 【請求項8】 前記オブジェクト指向型プログラムの実行処理の後、前記オブジェクト指向型プログラムからの削除要求に応じて、当該削除要求されたデータを検出する検出ステップと、前記検出ステップで検出されたデータが、前記可変アドレスメモリ領域または前記固定アドレスメモリ領域のいずれに記憶されているかを判定する種別判定ステップと、前記検出ステップで検出されたデータが前記固定アドレスメモリ領域に記憶されていると前記種別判定ステップによって判定された場合、前記検出ステップで検出されたデータに対する前記オブジェクト指向型プログラムからの削除要求を記憶する削除要求記憶ステップと、前記削除要求記憶ステップで削除要求が記憶されたデータに対する前記他のプログラムからの削除要求があるか否かを判定する削除判定ステップと、前記削除要求記憶ステップで削除要求が記憶されたデータに対し、前記他のプログラムからの削除要求があると前記削除判定ステップで判定された場合、前記検出されたデータ及び当該データの管理情報を削除する削除ステップとを更に含むことを特徴とする請求項6記載のメモリ管理方法。 【請求項9】 前記固定アドレスメモリ領域に記憶されたデータに応じて、当該データの実行オブジェクトが前記可変アドレスメモリ領域に記憶されるか否かを判定するデータ判定ステップを更に含み、前記生成ステップでは、前記固定アドレスメモリ領域に記憶されたデータの実行オブジェクトが前記可変アドレスメモリ領域に記憶されないと前記データ判定ステップによって判定された場合に、前記データの管理情報が生成されることを特徴とする請求項6記載のメモリ管理方法。 【請求項10】 前記オブジェクト指向型プログラムはJavaで構成されていることを特徴とする請求項6から9のいずれか1項に記載のメモリ管理方法。 【請求項11】 オブジェクト指向型の言語で構成されるオブジェクト指向型プログラムを実行する仮想マシンプログラムによって実行される実行オブジェクトが記憶され、当該実行オブジェクトが前記仮想マシンプログラムによって再配置される可変アドレスメモリ領域と、前記オブジェクト指向型の言語以外の言語で構成される他のプログラムによって生成されたデータが記憶される固定アドレスメモリ領域とを有するメモリを管理するメモリ管理プログラムであって、コンピュータに、オブジェクト指向型プログラムからの要求に応じて、前記オブジェクト指向型プログラムから前記生成されたデータを読み出すための管理情報を生成する生成ステップと、前記生成ステップで生成された管理情報にしたがって、前記固定アドレスメモリ領域に生成されたデータを読み出す読出ステップとを含むメモリ管理方法を実行させるためのメモリ管理プログラム。 【請求項12】 前記メモリ管理方法は、前記メモリの固定アドレスメモリ領域にデータを受信する通信ステップを更に含み、前記他のプログラムによって生成されたデータは、前記通信ステップで受信されたデータであり、前記生成ステップでは、前記通信ステップによって受信されたデータを前記オブジェクト指向型プログラムが読み出すための管理情報が生成されることを特徴とする請求項11記載のメモリ管理プログラム。 【請求項13】 前記メモリ管理方法は、前記オブジェクト指向型プログラムの実行処理の後、前記オブジェクト指向型プログラムからの削除要求に応じて、当該削除要求されたデータを検出する検出ステップと、前記検出ステップで検出されたデータが、前記可変アドレスメモリ領域または前記固定アドレスメモリ領域のいずれに記憶されているかを判定する種別判定ステップと、前記検出ステップで検出されたデータが前記固定アドレスメモリ領域に記憶されていると前記種別判定ステップによって判定された場合、前記検出ステップで検出されたデータに対する前記オブジェクト指向型プログラムからの削除要求を記憶する削除要求記憶ステップと、前記削除要求記憶ステップで削除要求が記憶されたデータに対する前記他のプログラムからの削除要求があるか否かを判定する削除判定ステップと、前記削除要求記憶ステップで削除要求が記憶されたデータに対し、前記他のプログラムからの削除要求があると前記削除判定ステップで判定された場合、前記検出されたデータ及び当該データの管理情報を削除する削除ステップとを更に含むことを特徴とする請求項11記載のメモリ管理プログラム。 【請求項14】 前記メモリ管理方法は、前記固定アドレスメモリ領域に記憶されたデータに応じて、当該データの実行オブジェクトが前記可変アドレスメモリ領域に記憶されるか否かを判定するデータ判定ステップを更に含み、前記生成ステップでは、前記固定アドレスメモリ領域に記憶されたデータの実行オブジェクトが前記可変アドレスメモリ領域に記憶されないと前記データ判定ステップによって判定された場合に、前記データの管理情報が生成されることを特徴とする請求項11記載のメモリ管理プログラム。 【請求項15】 前記オブジェクト指向型プログラムはJavaで構成されていることを特徴とする請求項11から14のいずれか1項に記載のメモリ管理プログラム。 【請求項16】 オブジェクト指向型の言語で構成されるオブジェクト指向型プログラムを実行する仮想マシンプログラムによって実行される実行オブジェクトが記憶され、当該実行オブジェクトが前記仮想マシンプログラムによって再配置される可変アドレスメモリ領域と、前記オブジェクト指向型の言語以外の言語で構成される他のプログラムによって生成されたデータが記憶される固定アドレスメモリ領域とを有するメモリを管理するメモリ管理プログラムであって、コンピュータに、オブジェクト指向型プログラムからの要求に応じて、前記オブジェクト指向型プログラムから前記生成されたデータを読み出すための管理情報を生成する生成ステップと、前記生成ステップで生成された管理情報にしたがって、前記固定アドレスメモリ領域に生成されたデータを読み出す読出ステップとを含むメモリ管理方法を実行させるためのメモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体。 【請求項17】 前記メモリ管理方法は、前記メモリの固定アドレスメモリ領域にデータを受信する通信ステップを更に含み、前記他のプログラムによって生成されたデータは、前記通信ステップで受信されたデータであり、前記生成ステップでは、前記通信ステップによって受信されたデータを前記オブジェクト指向型プログラムが読み出すための管理情報が生成されることを特徴とする請求項16記載のメモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体。 【請求項18】 前記メモリ管理方法は、前記オブジェクト指向型プログラムの実行処理の後、前記オブジェクト指向型プログラムからの削除要求に応じて、当該削除要求されたデータを検出する検出ステップと、前記検出ステップで検出されたデータが、前記可変アドレスメモリ領域または前記固定アドレスメモリ領域のいずれに記憶されているかを判定する種別判定ステップと、前記検出ステップで検出されたデータが前記固定アドレスメモリ領域に記憶されていると前記種別判定ステップによって判定された場合、前記検出ステップで検出されたデータに対する前記オブジェクト指向型プログラムからの削除要求を記憶する削除要求記憶ステップと、前記削除要求記憶ステップで削除要求が記憶されたデータに対する前記他のプログラムからの削除要求があるか否かを判定する削除判定ステップと、前記削除要求記憶ステップで削除要求が記憶されたデータに対し、前記他のプログラムからの削除要求があると前記削除判定ステップで判定された場合、前記検出されたデータ及び当該データの管理情報を削除する削除ステップとを更に含むことを特徴とする請求項16記載のメモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体。 【請求項19】 前記メモリ管理方法は、前記固定アドレスメモリ領域に記憶されたデータに応じて、当該データの実行オブジェクトが前記可変アドレスメモリ領域に記憶されるか否かを判定するデータ判定ステップを更に含み、前記生成ステップでは、前記固定アドレスメモリ領域に記憶されたデータの実行オブジェクトが前記可変アドレスメモリ領域に記憶されないと前記データ判定ステップによって判定された場合に、前記データの管理情報が生成されることを特徴とする請求項16記載のメモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体。 【請求項20】 前記オブジェクト指向型プログラムはJavaで構成されていることを特徴とする請求項16から19のいずれか1項に記載のメモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、デジタルコンピュータ・ソフトウェアの分野に関し、詳細には、オブジェクト指向型プログラムで実行される実行オブジェクトが記憶されるメモリを管理するメモリ管理装置、メモリ管理方法、メモリ管理プログラム及び該プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。 【0002】 【従来の技術】近年、コンピュータ技術、通信、及び放送技術の発達に伴い、画像、音声、動画像のような多様な情報メディアを提供するマルチメディアシステムが普及しつつある。このようなマルチメディアシステムとして、対話型デジタルテレビ、移動体端末、ゲーム装置などが市場に提供されている。 【0003】マルチメディアシステムにおいては、インターネット等の通信媒体を介して伝送される画像、音声及び動画像データのような大量のデータがマルチメディアシステム内のアプリケーションと結合されて、画面やスピーカなどから映像や音声としてユーザに提供される。故に、ダウンロードされる大量のデータを効率的に処理する技術がマルチメディアシステムに要求される。 【0004】画像、音声及び動画像データのような大量のデータの通信メディアからのストリーム処理の効率化を実現する手法として、近年、サン・マイクロシステムズ社のオブジェクト指向型言語であるJava(登録商標)環境が普及している。 【0005】ここで、Javaで記述されたプログラムで構成されるアプリケーション(以下、Javaアプリケーション)に関する一般的な従来の技術の一例として、Javaアプリケーションからの要求に応じて、インターネットなどの通信媒体を介して画像データがダウンロードされてJavaアプリケーションに用いられるまでの処理の流れについて説明する。 【0006】図10は、マルチメディア環境の下で、Javaアプリケーションからの要求に応じて、画像データをダウンロードして実行する一般的なメモリ管理装置の機能ブロック図である。 【0007】図10に示すメモリ管理装置は、Java言語で構成されたプログラムであるJavaアプリケーション11、Java仮想マシンプログラム(以下、JavaVM)12、ネイティブプログラム13、オペレーティングシステム(以下、OS)14、オブジェクト記憶部15とで構成されている。 【0008】Javaアプリケーション11は、Javaで記述されたソースコードを有しており、コンパイルされて低級な擬似コードである中間コード(以下、バイトコード)に変換される。JavaVM12によって、そのバイトコードがコンピュータで解釈・実行可能な機械語(以下、ネイティブコード)に変換されて実行される。JavaVM12のこの機能によって、特定のOSやプロセッサに依存することなく、いかなるプラットフォームでもJavaの実行可能な環境が実現される。 【0009】JavaVM12は、インタプリタ部12a、オブジェクト管理部12b、JNI(JNI:Java Native Interface)部12cで構成される。インタプリタ部12aは、Javaアプリケーション11から1つの命令を表すバイトコードを読み出し、その命令をネイティブコードに変換した後に実行する。オブジェクト管理部12bは、Javaアプリケーション11の実行処理で用いられるデータやソースコード(以下、Javaオブジェクト)を生成したり、生成されたJavaオブジェクトを参照したりする。 【0010】ここで、Javaオブジェクトは、Javaのクラスで定義されたバイトコードであって、Javaアプリケーション11からの要求に応じて、オブジェクト管理部12bによってオブジェクト記憶部15に生成(インスタンス)される。インスタンスされたJavaオブジェクトのみが、実行オブジェクトとして、Javaアプリケーション11による実行処理で用いられることとなる。 【0011】JNI部12cは、C言語などで記述されたネイティブコードであるネイティブプログラム13をJavaアプリケーション11の要求に応じて実行するための命令や関数の集合からなるAPI(Application Program Interface)を実現する。また、JNI部12cは、ネイティブプログラム13からの要求に応じてJavaアプリケーション11を実行させることもできる。 【0012】オブジェクト記憶部15はRAMなどで構成され、Javaオブジェクトを記憶したり生成するためのワークエリアとなる可変アドレスメモリ領域15aと、ネイティブプログラム13やOS14のワークエリアとなる固定アドレスメモリ領域15bとを備えている。 【0013】可変アドレスメモリ領域15aは、JavaVM12による、不要なJavaオブジェクトを回収する機能(以下、GC:Garbage Collection機能)で使用され、記憶されているデータのアドレスは可変制御可能となっている。このGC機能によって、使用されなくなったメモリ領域が集約されて連続した利用可能なメモリ領域が提供され、メモリを効率良く使用することが可能となる。一方、固定アドレスメモリ領域15bは、ネイティブプログラム13やOS14等のモジュールの実行処理に利用されるデータが記憶され、OS14の管理下で各プログラムにアドレスが割り当てられ、可変アドレスメモリ領域15aのようにデータの再配置は実行されない。 【0014】このように、Javaアプリケーション11の実行環境におけるメモリ管理では、JavaVM12のGC機能を利用するため、一般的に、Javaオブジェクトはメモリ上の可変アドレスメモリ領域15aに記憶され、ネイティブプログラム13やOS14が用いるデータが記憶される領域とは区分けされている。 【0015】ネイティブプログラム13は、C言語などで記述されたネイティブコードである。Javaアプリケーション11からの要求に応じて、インターネット、衛星放送、ケーブル放送などの通信媒体を介して画像データを固定アドレスメモリ領域15bにダウンロードするリアルタイム処理を可能とするモジュールでネイティブプログラム13は構成される。 【0016】続いて、ダウンロードされた画像データがJavaアプリケーション11の実行処理で用いられる場合における処理の流れを説明する。ここで、Javaアプリケーション11は、可変アドレスメモリ領域15aに記憶されたJavaオブジェクトしか参照することができないため、ダウンロードされた画像データをJavaオブジェクトとして直接参照することができない。 【0017】図10において、オブジェクト記憶部15の可変アドレスメモリ領域15aにJavaオブジェクトOBA、OBBが記憶されている。固定アドレスメモリ領域15bには、ネイティブプログラム13によってダウンロードされたダウンロードデータDAが記憶されている。図10に示す例では、JavaオブジェクトOBA、OBBのみがJavaアプリケーション11によって参照可能であり、ダウンロードデータDAは参照不可能である。 【0018】図11は、ダウンロードデータDAがJavaオブジェクトとして参照可能とされる場合のオブジェクト記憶部15の状態を示す図である。まず、Javaアプリケーション11からの要求に応じて、オブジェクト管理部12bが可変アドレスメモリ領域15aの空き領域にダウンロードデータDAに応じたメモリ領域が確保される。 【0019】次に、ネイティブプログラム13が、JNI部12cを介して、固定アドレスメモリ領域15bのダウンロードデータDAを可変アドレスメモリ領域15aにダウンロードデータDBとしてコピーする。可変メモリアドレス領域15aにコピーされたダウンロードデータDBは、Javaオブジェクトとして、最終的にJavaアプリケーション11の実行処理で用いられることとなる。 【0020】 【発明が解決しようとする課題】上述のようにネイティブプログラム13で管理される固定アドレスメモリ領域15bのデータがJavaアプリケーション11の実行処理で用いられる場合、固定アドレスメモリ領域15bから可変アドレスメモリ領域15aへのダウンロードデータDAのコピー処理が必要となっていた。そのため、コピー処理によるオーバーヘッドが発生し実行処理が遅れる恐れがある。またコピー処理の実行中、コピー先である可変アドレスメモリ領域15aとコピー元である固定アドレスメモリ領域15bとのそれぞれにダウンロードデータDAのメモリ領域が確保される必要があり、メモリ領域が効率的に使用されない場合があった。 【0021】そこで、本発明は、Javaオブジェクトを生成するためのコピー処理によるオーバーヘッドを避け、より効率的にメモリ領域を使用することができるようなメモリ管理を行うことを目的とする。 【0022】 【課題を解決するための手段】本発明では、オブジェクト指向型の言語で構成されるオブジェクト指向型プログラムを実行する仮想マシンプログラムによって実行される実行オブジェクトが記憶されるメモリが管理される。 【0023】このメモリは、実行オブジェクトが記憶され、実行オブジェクトが仮想マシンプログラムによって再配置される可変アドレスメモリ領域と、そのオブジェクト指向型の言語以外の言語で構成される他のプログラムによって生成されたデータが記憶される固定アドレスメモリ領域とを有している。 【0024】本発明がメモリ管理装置として実施される場合、メモリ管理装置には、生成手段と読出手段が備えられる。生成手段は、オブジェクト指向型プログラムからの要求に応じて、そのオブジェクト指向型プログラムがデータを読み出すための管理情報を生成する。読出手段は、生成手段で生成された管理情報にしたがって、固定アドレスメモリ領域に生成されたデータを読み出す。 【0025】また、メモリ管理装置には、メモリの固定アドレスメモリ領域にデータを受信する通信手段が備えられることがある。この場合、他のプログラムによって生成されたデータは、通信手段を用いて受信されたデータである。また、生成手段は、通信手段を用いて受信されたデータをオブジェクト指向型プログラムが読み出すための管理情報を生成する。 【0026】さらに、メモリ管理装置は、検出手段、種別判定手段、削除要求記憶手段、削除判定手段及び削除手段を備えてもよい。検出手段は、オブジェクト指向型プログラムの実行処理の後、オブジェクト指向型プログラムからの削除要求に応じて、当該削除要求されたデータを検出する。種別判定手段は、検出手段で検出されたデータが、可変アドレスメモリ領域または固定アドレスメモリ領域のいずれに記憶されているかを判定する。削除要求記憶手段は、検出手段で検出されたデータが固定アドレスメモリ領域に記憶されていると種別判定手段によって判定された場合、検出手段で検出されたデータに対するオブジェクト指向型プログラムからの削除要求を記憶する。削除判定手段は、削除要求記憶手段で削除要求が記憶されたデータに対する他のプログラムからの削除要求があるか否かを判定する。そして、削除手段は、削除要求記憶手段で削除要求が記憶されたデータに対し、他のプログラムからの削除要求があると削除判定手段で判定された場合、検出されたデータ及びその管理情報を削除する。 【0027】さらに、メモリ管理装置は、固定アドレスメモリ領域に記憶されたデータに応じて、当該データの実行オブジェクトが可変アドレスメモリ領域に記憶されるか否かを判定するデータ判定手段を備えてもよい。生成手段は、固定アドレスメモリ領域に記憶されたデータの実行オブジェクトが可変アドレスメモリ領域に記憶されないとデータ判定手段によって判定された場合に、そのデータの管理情報を生成する。 【0028】また、本発明は、メモリ管理方法として実施されることもある。このメモリ管理方法では、生成ステップ、読出ステップが行われる。生成ステップでは、オブジェクト指向型プログラムからの要求に応じて、オブジェクト指向型プログラムがデータを読み出すための管理情報が生成される。また、読出ステップでは、生成ステップで生成された管理情報にしたがって、固定アドレスメモリ領域に生成されたデータが読み出される。 【0029】また、メモリ管理方法には、メモリの固定アドレスメモリ領域にデータを受信する通信ステップが含まれることがある。この場合、他のプログラムによって生成されたデータは、通信ステップで受信されたデータである。さらに、生成ステップでは、通信ステップで受信されたデータをオブジェクト指向型プログラムが読み出すための管理情報が生成される。 【0030】また、メモリ管理方法は、検出ステップ、種別判定ステップ、削除要求記憶ステップ、削除判定ステップ、削除ステップを更に含むようにしてもよい。この場合、まず検出ステップにおいて、オブジェクト指向型プログラムの実行処理の後、オブジェクト指向型プログラムからの削除要求に応じて、当該削除要求されたデータが検出される。次に種別判定ステップにおいて、検出ステップで検出されたデータが、可変アドレスメモリ領域または固定アドレスメモリ領域のいずれに記憶されているかが判定される。削除要求記憶ステップでは、検出ステップで検出されたデータが固定アドレスメモリ領域に記憶されていると種別判定ステップによって判定された場合、検出ステップで検出されたデータに対するオブジェクト指向型プログラムからの削除要求が記憶される。さらに削除要求ステップでは、削除要求記憶ステップで削除要求が記憶されたデータに対する他のプログラムからの削除要求があるか否かが判定される。そして、削除ステップでは、削除要求記憶ステップで削除要求が記憶されたデータに対し、他のプログラムからの削除要求があると削除判定ステップで判定された場合、検出されたデータ及びその管理情報が削除される。 【0031】さらに、メモリ管理方法は、固定アドレスメモリ領域に記憶されたデータに応じて、当該データの実行オブジェクトが可変アドレスメモリ領域に記憶されるか否かを判定するデータ判定ステップを含むことがある。生成ステップでは、固定アドレスメモリ領域に記憶されたデータの実行オブジェクトが可変アドレスメモリ領域に記憶されないとデータ判定手段によって判定された場合に、そのデータの管理情報が生成される。 【0032】また、本発明は、メモリ管理プログラム又は該プログラムを記録したコンピュータ読み取り可能な記録媒体として実施されることもある。 【0033】このメモリ管理プログラムは、上述のメモリ管理方法をコンピュータに実行させるためのプログラムである。メモリ管理プログラムがコンピュータに読み込まれることにより、ソフトウェアとハードウェア資源とが協働し、固定アドレスメモリ領域に記憶されたデータの管理情報の生成、管理情報に基づくデータの読み出しが実現される。その結果、コンピュータを利用して、例えばメモリ管理装置が構築される。また、メモリ管理プログラムが読み込まれたコンピュータが動作すれば、メモリ管理方法が構築される。 【0034】メモリ管理プログラムは、例えばインターネットなどの通信媒体を介した通信によって配布、販売されることもあれば、記録媒体に記録された状態で配布、販売されることもある。 【0035】 【発明の実施の形態】以下、本発明の実施の形態について図面を参照しながら詳細に説明する。 (実施の形態1)図1は、本発明の実施の形態1に係るメモリ管理装置100の概略構成を示す機能ブロック図である。図1において、メモリ管理装置100は、例えば、Javaアプリケーション記憶部101、JavaVM102、Javaオブジェクトテーブル103、Javaオブジェクト管理情報記憶部104、オブジェクト記憶部105、ダウンロード管理部106、ネットワーク制御部107、ネットワークデバイス108、固定アドレスメモリ提供部109を備えている。 【0036】Javaアプリケーション記憶部101には、Javaアプリケーション111とクラスライブラリ112とが記憶されている。Javaアプリケーション111は、オブジェクト指向言語であるJavaで記述されたプログラムで構成される。Javaアプリケーション111のソースコードは、コンパイルされることによって、バイトコードに変換される。JavaVM102には、このバイトコードが送信される。また、クラスライブラリ112は、Javaオブジェクト内部のデータ構造をひとまとめに定義したクラスが集められたライブラリである。本実施の形態のJavaアプリケーション記憶部101はRAM(Random Access Memory)で構成されているが、ROM(Read Only Memory)、ハードディスク等で実現してもよい。 【0037】JavaVM102は、例えば、Javaインタプリタ部102a、Javaオブジェクト参照部102b、可変アドレスメモリ用Javaオブジェクト生成部(以下、GOBV部)102c、固定アドレスメモリ用Javaオブジェクト生成部102d(GOBF部)を備えている。 【0038】Javaインタプリタ部102aは、Javaアプリケーション111から1つの命令ずつ読み出して解釈実行する。なお、本メモリ管理装置100はインタプリタの実行機構を採用しているが、コンパイラ等の実行機構にも適宜変更可能である。また、Javaオブジェクト参照部102bは、Javaアプリケーション111からの要求に応じて、既に生成されたJavaオブジェクトの読み出し処理を実現する。GOBV部102c、GOBF部102dは、Javaアプリケーション111からの要求に応じて、Javaオブジェクトをオブジェクト記憶部105に生成する。 【0039】Javaオブジェクトテーブル103には、Javaオブジェクト管理情報のアドレスを示すポインタが格納される。また、Javaオブジェクト管理情報記憶部104には、Javaオブジェクト管理情報が記憶される。Javaオブジェクト管理情報は、オブジェクト記憶部105のJavaオブジェクトやそのJavaオブジェクトのクラスに関するデータを管理するための情報である。Javaオブジェクトに関する情報は、例えばオブジェクト記憶部105におけるJavaオブジェクトのアドレスを示すポインタ、データサイズである。また、クラスに関する情報は、具体的には、Javaオブジェクトの型を示すクラス名や実行コード等、アプリケーション111による実行や参照に必要な情報である。 【0040】オブジェクト記憶部105は、RAMなどで構成される。また、オブジェクト記憶部105は、Javaオブジェクトを生成するためのワークエリアとなる可変アドレスメモリ領域105aと、図示しないOSや他のアプリケーションで管理されるデータが記憶される固定アドレスメモリ105bとを備えている。 【0041】可変アドレスメモリ領域105aには、JavaVM102のGOBV部102cによってJavaオブジェクトが生成される。また、JavaVM102のGC機能で使用され、記憶されているJavaオブジェクトのアドレスは可変制御可能である。 【0042】一方、固定アドレスメモリ領域105bは、図示しないOSの管理下で各プログラムによって生成されるデータが記憶され、可変アドレスメモリ領域105aのようにJavaVM102のGC機能によってデータの再配置は実行されない。 【0043】ダウンロード管理部106は、プラットフォームに依存したネイティブコードを生成するC言語等のネイティブ言語とJava言語との両方で記述されたプログラムによって実現され、インターネット300を介して受信されるデータの固定アドレスメモリ領域105bにおけるメモリ管理を実行する。 【0044】ネットワーク制御部107は、モデムやTA(TA:Terminal Adapter)などで構成されるネットワークデバイス108を制御して、インターネット300からデータを受信する。また、ネットワーク制御部107は、リアルタイム処理が要求され、C言語などのネイティブ言語で構成されたプログラムで実現される。 【0045】固定アドレスメモリ提供部109は、Javaアプリケーション111の要求に応じてデータが受信される場合、固定アドレスメモリ領域105bの空き領域から受信されたデータを記憶するためのメモリ領域をダウンロード管理部106に提供する。 【0046】なお、図示しない中央演算処理装置(CPU)を含む制御部が、本発明のプログラムにしたがってCPU以外の各回路と協働してメモリ管理装置100で実行される制御動作を実現している。しかし、以下では、説明の便宜上、CPUが関係する制御動作を、Javaアプリケーションなどのプログラムが直接的に制御しているとものとする。 【0047】次に、メモリ管理装置100におけるJavaオブジェクト管理のデータ構成について、図面を用いて具体的に説明する。図2は、オブジェクトテーブル103、Javaオブジェクト管理情報記憶部104、オブジェクト記憶部105に記憶されるデータ構成を示す図である。 【0048】図2において、OB1はGOBV部102cによって可変アドレスメモリ領域105aに生成されたJavaオブジェクトである。また、OM1は、JavaオブジェクトOB1のJavaオブジェクト管理情報である。このJavaオブジェクト情報は、可変アドレスメモリ領域105aにおけるJavaオブジェクトOB1のアドレスを示すポインタやクラス情報を含む。P1は、Javaオブジェクト管理情報OM1のJavaオブジェクト管理情報記憶部104におけるアドレスを示すポインタである。ポインタP1、Javaオブジェクト管理情報OM1を参照することによって、Javaアプリケーション111はJavaオブジェクト参照部102bを介してJavaオブジェクトOB1を読み出して実行処理に用いることができる。 【0049】同様に、OB2はGOBV部102cによって可変アドレスメモリ領域105aに生成されたJavaオブジェクトである。OM2は、JavaオブジェクトOB2のJavaオブジェクト管理情報である。このJavaオブジェクト管理情報は、可変アドレスメモリ領域105aにおけるJavaオブジェクトOB2のアドレスを示すポインタやクラス情報を含む。P2は、Javaオブジェクト管理情報OM2のJavaオブジェクト管理情報記憶部104におけるアドレスを示すポインタである。ポインタP2、Javaオブジェクト管理情報OM2を参照することによって、Javaアプリケーション111はJavaオブジェクト参照部102bを介してJavaオブジェクトOB2を読み出して実行処理に用いることができる。 【0050】また、D1は、ダウンロード管理部106によってインターネット300から固定アドレスメモリ領域105bにダウンロードされたデータを示す。ここで、本メモリ管理装置100では、ダウンロード管理部106のようなJavaアプリケーション以外のネイティブプログラムによって固定アドレスメモリ領域105bに生成されたデータが、Javaアプリケーション111の要求に応じてJavaオブジェクトとして読み出せるようになっている。図2に示す例では、GOBF部102dによってダウンロードデータD1を読み出すためのJavaオブジェクト管理情報が生成される。これにより、インターネット300から固定アドレスメモリ領域105bに受信されたダウンロードデータD1が、可変アドレスメモリ領域105aへのコピー処理を経ずにJavaオブジェクトとして読み出せるようになる。 【0051】図3は、GOBF部102dによって、図2に示したダウンロードデータD1のJavaオブジェクト管理情報が生成された状態を示す図である。OMDは、ダウンロードデータD1の固定アドレスメモリ領域におけるアドレスを示すポインタやクラス情報を含むJavaオブジェクト管理情報である。また、PDはJavaオブジェクト管理情報OMDのJavaオブジェクト管理情報記憶部104におけるアドレスを示すポインタである。ポインタPD、Javaオブジェクト管理情報OMDを参照することによって、Javaアプリケーション111はJavaオブジェクト参照部102bを介してダウンロードデータD1をJavaオブジェクトとして読み出して実行処理に用いることが可能となる。 【0052】以下、本実施の形態に係るメモリ管理装置100において、ダウンロードデータD1がダウンロードされてからJavaオブジェクトとして読み出されるまでの処理の流れを説明する。図4は、ダウンロードデータD1の受信から、JavaオブジェクトとしてダウンロードデータD1が読み出されるまでの処理の流れを示す図である。 【0053】Javaアプリケーション111が、JavaVM102を介しダウンロード管理部106に対して、ダウンロードすべきデータの識別情報を指定して受信要求を実行する(ステップS1)。ダウンロードすべきデータの識別情報として、データの識別番号や格納場所(例えば、URL:Uniform Resource Locater)が指示される。 【0054】次に、ダウンロード管理部106が、ダウンロードされるデータの識別番号や固定アドレスメモリ領域105bで格納されるアドレスを指定して、ネットワーク制御部107に対してダウンロード要求を実行する(ステップS2)。ネットワーク制御部107は、ステップS1で指定されたインターネット300上のデータの格納場所にネットワークデバイス108を介して接続し、指定されたデータをダウンロードする。そのダウンロードされたデータはダウンロードデータD1(図2参照)として固定アドレスメモリ領域105bのステップS2で指定されたアドレスに格納される(ステップS3)。 【0055】ダウンロードデータD1のダウンロードが終了した後、ネットワーク制御部107は、ダウンロードが完了したことをダウンロード管理部106に通知する(ステップS4)。ダウンロードが完了した後、ダウンロードデータD1に基づいて、後述するJavaオブジェクト生成処理がJavaVM102によって実行される(ステップS5)。ステップS5のJavaオブジェクト生成処理によってJavaオブジェクト管理情報OMDが生成された後、ダウンロードデータD1がJavaオブジェクトとして、Javaアプリケーション111によって読み出されて実行処理に用いられる(ステップS6)。 【0056】次に、Javaオブジェクト生成処理(ステップS5)の処理の流れを説明する。図5は、Javaオブジェクト生成処理(ステップS5)の流れを示すフローチャートである。 【0057】ダウンロード管理部106は、GOBF部102dに対して、固定アドレスメモリ領域105bのダウンロードデータD1を指定して、そのダウンロードデータD1に基づくJavaオブジェクトの生成を要求する(ステップS11)。次に、ダウンロードデータD1が固定アドレスメモリ領域105bで格納されるアドレスが指定されているか否かが判定される(ステップS12)。アドレスが指定されていなければ(ステップS12;No)、固定アドレスメモリ提供部109によって、固定アドレスメモリ領域105bにおける所定容量分のメモリ領域が提供される(ステップS13)。図2の場合、既にステップS2でダウンロードデータD1のアドレスがダウンロード管理部106によって指定されているので、ステップS13の処理は実行されずにステップS14の処理に移行する。 【0058】Javaオブジェクトに変換されるダウンロードデータD1のアドレスが指定されている場合(ステップS12;Yes)、生成されるJavaオブジェクトに対応したクラス情報がクラスライブラリ112からJavaVM102を介して読み出され、Javaオブジェクト管理情報記憶部104のJavaオブジェクト管理情報OMDとして記憶される(ステップS14)。 【0059】次に、ダウンロードデータD1のアドレスを示すポインタがJavaオブジェクト管理情報OMDとして記憶されるメモリ領域がJavaオブジェクト管理情報記憶部104に確保される(ステップS15)。固定アドレスメモリ領域105bのダウンロードデータD1のアドレスを示すポインタは、確保されたメモリ領域にJavaオブジェクト管理情報OMDとして記憶される(ステップS16)。 【0060】続いて、Javaオブジェクト管理情報OMDのアドレスを示すポインタPDがJavaオブジェクトテーブル103に記憶される(ステップS17)。その後、ダウンロードデータD1はダウンロード管理部106によってJavaアプリケーション111に渡される。更に、ダウンロードデータD1は、Javaオブジェクト管理情報OMDにしたがって、Javaオブジェクト参照部102bによって読み出され、Javaアプリケーション111の実行処理で用いられる(図4のステップS6)。 【0061】このように、固定アドレスメモリ領域105bに生成されたダウンロードデータをJavaオブジェクトとして直接読み出すことが可能となるので、ダウンロードしたデータを可変アドレスメモリ領域105aへのコピー処理が不要となり、処理のオーバーヘッドがなくなってメモリ管理装置の処理負荷が軽減される。 【0062】また、コピー処理の実行中、可変アドレスメモリ領域105a、固定アドレスメモリ領域105bそれぞれに、Javaオブジェクトを生成するために2つのメモリ領域を確保する必要がなくなり、効率的にメモリ領域を使用できるようになる。音声、画像データのような大容量のデータをダウンロードしてJavaアプリケーション111で参照する際にとりわけ有効である。大容量のデータを受信する場合、コピー処理中に、可変アドレスメモリ領域105a、固定アドレスメモリ領域105bの双方に大容量のメモリ領域を確保する必要がなくなるためである。なお、ソースコードをダウンロードする際も本発明を適用可能であることは言うまでもない。 【0063】また、図4において、ダウンロードが終了した後に(ステップS3)、ダウンロードデータのJavaオブジェクト管理情報を生成して(ステップS5)、Javaアプリケーション111からダウンロードデータが直接参照されるようになっているが、リアルタイム処理の効率を更に向上させるために処理手順を変更可能である。具体的には、ダウンロードデータのダウンロードが完了せずとも、ダウンロード途中のデータを、Javaアプリケーション111から参照可能にすることができる。 【0064】例えば、図4において、Javaアプリケーション111によって、ダウンロードすべきデータの識別情報が指定された後(ステップS1)、ステップS5のJavaオブジェクト生成処理によって、Javaオブジェクト管理情報を予め生成するようにするようにすればよい。これにより、Javaアプリケーション111が要求するデータが固定アドレスメモリ領域105bへのダウンロード中であっても、ダウンロード中のデータを直接Javaオブジェクトとして読み出せるようになる。その結果、固定アドレスメモリ領域105bから可変アドレスメモリ領域105aへのコピー処理を経る従来の技術よりも、リアルタイム処理の効率を更に向上させることができる。この場合、図5のJavaオブジェクト生成処理において、固定アドレスメモリ領域105bのアドレスが指定されていないので(図5のステップS12;No)、固定アドレスメモリ提供部109によって、固定アドレスメモリ領域105bにおけるメモリ領域が提供されることになる(図5のステップS13)。 (実施の形態2)以下、本発明の実施の形態2について図面を参照しながら詳細に説明する。 【0065】本実施の形態に係るメモリ管理装置においては、実施の形態1に係るメモリ管理装置100と同様に、固定アドレスメモリ領域105bのデータが、Javaオブジェクト管理情報にしたがって読み出されるようになっている。しかも、Javaアプリケーションの実行処理が終了して、固定アドレスメモリ領域105bのデータが不要になった場合、固定アドレスメモリ領域から不要なデータが削除されるようになっている。固定アドレスメモリ領域105bの不要なデータが削除されることにより、ネイティブプログラムやOSのワークエリアとしての空きメモリ領域を有効に確保することができる。 【0066】図6は、本発明の実施の形態2に係るメモリ管理装置200の概略構成を示す機能ブロック図である。本実施の形態に係るメモリ管理装置200は、例えば、Javaアプリケーション記憶部101、JavaVM202、Javaオブジェクトテーブル103、Javaオブジェクト管理情報記憶部104、オブジェクト記憶部105、ダウンロード管理部106、ネットワーク制御部107、ネットワークデバイス108、固定アドレスメモリ提供部109を備えている。Javaアプリケーション記憶部101、Javaオブジェクトテーブル103、Javaオブジェクト管理情報記憶部104、オブジェクト記憶部105、ダウンロード管理部106、ネットワーク制御部107、ネットワークデバイス108、固定アドレスメモリ提供部109は、基本的な構成や機能は実施の形態1と同様であるので、ここでは各部の詳細な説明は省略する。 【0067】本実施の形態に係るメモリ管理装置200と実施の形態1に係るメモリ管理装置100との構成上の差異は、JavaVM202にガベージ処理部202aを更に備えていることである。 【0068】ガベージ処理部202aは、例えば、非参照オブジェクト検出部203、オブジェクト種別判定部204、可変アドレスメモリ用削除部205、固定アドレスメモリ用削除判定部206、固定アドレスメモリ用削除部207を備えている。ガベージ処理部202aは、Javaアプリケーション111やダウンロード管理部106からの要求に応じて、可変アドレスメモリ領域105aや固定アドレスメモリ領域105bに記憶されている不要なJavaオブジェクトを削除する機能を実現する。 【0069】非参照オブジェクト検出部203は、オブジェクト記憶部105に記憶されているJavaオブジェクトの中から、Javaアプリケーション111によって参照されていない不要なオブジェクトを検出する。 【0070】Javaオブジェクト種別判定部204は、非参照オブジェクト検出部203によって検出された不要なJavaオブジェクトが可変アドレスメモリ領域105a、固定アドレスメモリ領域105bのいずれに記憶されているかを判定する。 【0071】可変アドレスメモリ用削除部205は、可変アドレスメモリ領域105aに記憶されている不要なJavaオブジェクトを削除する。 【0072】固定アドレスメモリ用削除判定部206は、オブジェクト種別判定部204によって不要なJavaオブジェクトに対応するデータが固定メモリアドレス領域105bに存在すると判定されたか否か、及びダウンロード管理部106からの不要なJavaオブジェクトに対応するデータの削除要求があるか否かを判定する。 【0073】固定アドレスメモリ用削除部207は、固定アドレスメモリ用削除判定部206の判定結果に応じて固定アドレスメモリ領域105bに記憶されている不要なJavaオブジェクトに対応するデータを削除する。 【0074】以下、オブジェクト記憶部105中の不要なJavaオブジェクトを削除する処理の流れを説明する。図7は、オブジェクト記憶部105の不要なJavaオブジェクトを削除する処理の流れを示すフローチャートである。 【0075】まず、Javaアプリケーション111の実行処理が終了した後、オブジェクト記憶部105中のJavaオブジェクトへの参照が外される(ステップS21)。続いて、参照が外された不要なJavaオブジェクトを削除する要求が、Javaアプリケーション111からJavaVM202へ実行される(ステップS22)。 【0076】次に、JavaVM202の非参照オブジェクト検出部203によって、削除する要求があったJavaオブジェクトが検出される。検出されたJavaオブジェクトが、可変アドレスメモリ領域105aまたは固定メモリアドレス領域105bのいずれに属するかがJavaオブジェクト種別判別部204によって判定される(ステップS23)。検出されたJavaオブジェクトが可変アドレスメモリ領域105aに属する場合、可変アドレスメモリ用削除部205によって検出されたJavaオブジェクトが削除される。 【0077】また、削除する要求があったJavaオブジェクトが固定アドレスメモリ領域105bに記憶されたデータに基づくとステップS23で判定された場合、固定アドレスメモリ用削除判定部206によって、そのJavaオブジェクトに対応するデータを削除する要求が記憶される(ステップS24)。 【0078】その後、ステップS24でオブジェクト種別判定部204からの削除要求が記憶されたデータに対して、ダウンロード管理部106から削除要求が実行される(ステップS25)。ダウンロード管理部106からの削除要求が実行されると、固定アドレスメモリ用削除判定部206は固定アドレス用削除部207に対してステップS24で削除要求が記憶されたデータの削除要求を実行する。ダウンロード管理部106による削除要求が無ければ、固定アドレスメモリ用削除判定部206から固定アドレス用削除部207に対する削除要求は実行されない。 【0079】つまり、Javaアプリケーション111からの削除要求とダウンロード管理部106からの削除要求とが共に実行された場合のみ、固定アドレスメモリ用削除部207によって、固定アドレスメモリ領域105bの不要なデータが削除されるようになる。これにより、メモリ管理装置200内の全てのアプリケーションから参照されなくなった場合のみ不要なデータが削除されるので、アプリケーション実行時でのデータの欠落が回避でき、安全にメモリの共有化が実現される。なお、Javaアプリケーション111からの削除要求とダウンロード管理部106からの削除要求との順番が入れ替わってもよい。 【0080】次に、固定アドレスメモリ用削除部207は、削除対象のデータに対応するJavaオブジェクトテーブル103のポインタ、Javaオブジェクト管理情報記憶部104に記憶されたJavaオブジェクト管理情報を削除する(ステップS26)。 【0081】更に、固定アドレスメモリ用削除部207は、固定アドレスメモリ提供部109に、削除対象のデータが記憶された固定アドレスメモリ領域105bにおけるメモリ領域を開放させる要求を実行する(ステップS27)。削除要求の受信後、固定アドレスメモリ提供部109は、削除対象のデータを削除してメモリを開放する(ステップS28)。 【0082】以上、説明したように、メモリ管理装置200内の全てのアプリケーションから参照されなくなった場合のみ、固定アドレスメモリ領域105bの不要なデータが削除されるので、アプリケーション実行時でのデータの欠落が回避でき、安全にメモリの共有化が実現される。 (実施の形態3)上述の実施の形態1では、Javaアプリケーション111が、ネイティブプログラムによって固定アドレスメモリ領域105bに生成されたデータを読み出すために、GOBF部102dによって、そのデータの管理情報が生成された。 【0083】もっとも、ネイティブプログラムによって固定アドレスメモリ領域105bに生成されたデータ全てについて、GOBF部102dにより管理情報を生成する必要はない。固定アドレスメモリ領域105bを管理するOSや装置の仕様、機能によっては、固定アドレスメモリ領域105bにあるデータをJavaオブジェクトとして扱わない方が好ましい。 【0084】例えばネイティブプログラムによって固定アドレスメモリ領域105bに生成されるデータのサイズが小さければ、そのデータのJavaオブジェクトが可変アドレスメモリ領域105aに生成されるとしても、GC機能によるJavaオブジェクトの再配置の頻度も少なく、処理オーバーヘッドやメモリ効率の低下も発生せず、その処理によるデメリットは比較的小さい。しかしながら、固定アドレスメモリ領域105bを管理するOSがGC機能を有していない場合、固定アドレスメモリ領域105bにあるサイズの小さなデータがJavaオブジェクトとして扱われると、サイズの小さなデータは、固定アドレスメモリ領域105bにフラグメンテーションを発生させる要因となる。 【0085】また、例えば音声、画像データのような大容量のデータの場合、既述の通り、そのデータのJavaオブジェクトが可変アドレスメモリ領域105aに生成されると、オーバーヘッドやメモリ効率の低下が大きくなる。さらに、大容量のデータによって可変アドレスメモリ領域105aが圧迫されると、GC機能によるJavaオブジェクトの再配置が頻繁に発生し、システムの負荷が大きくなる。固定アドレスメモリ領域105bのサイズが小さくても、データの有効期限が短ければ、固定アドレスメモリ領域105bが圧迫されることよりも、これらのデメリットが問題になる。しかしながら、固定アドレスメモリ領域105bのサイズが小さい場合、大容量のデータの有効期限が長ければ、データのJavaオブジェクトが可変アドレスメモリ領域105aに生成される方が好ましい。 【0086】そこで、図8に示すように、この実施の形態3におけるメモリ管理装置400は、実施の形態1におけるメモリ管理装置100の構成に加え、判定部401を備えている。 【0087】判定部401は、固定アドレスメモリ領域105bに記憶されたデータに応じて、当該データのJavaオブジェクトが可変アドレスメモリ領域105aに記憶されるか否かを判定する。 【0088】判定の基準は、データのサイズ、種別、有効期限などである。これらの基準は、メモリ全体のサイズや、その内訳(可変アドレスメモリ領域105a、固定アドレスメモリ領域105bの各サイズ)、ダウンロードされるデータのサイズやデータの扱い方、固定アドレスメモリ領域を管理するOSの機能などにより定められる。 【0089】例えばデータのサイズが所定サイズ以上である場合やデータの有効期限が所定期間以上である場合、データの種別が音声、映像データなどのAVデータを表す場合には、Javaオブジェクトは可変アドレスメモリ領域105aに記憶されないと判定される。この場合、実施の形態1で説明したのと同様に、固定アドレスメモリ領域105bに記憶されたデータの管理情報が、GOBF部102dによって生成される。Javaオブジェクト参照部102bは、この管理情報にしたがって、固定アドレスメモリ領域105bに記憶されたデータをJavaオブジェクトとして読み出す。 【0090】これに対し、例えばデータのサイズが所定サイズより小さい場合やデータの有効期限が所定期間より短い場合、データの種別がAVデータでない通常のデータを表す場合には、Javaオブジェクトは可変アドレスメモリ領域105aに記憶されると判定される。この場合、従来通り、固定アドレスメモリ領域105bに記憶されたJavaオブジェクトが可変アドレスメモリ領域105aに生成されてもよい。 【0091】本実施の形態3におけるメモリ管理装置400において、ダウンロードデータD1がダウンロードされてからJavaオブジェクトとして読み出されるまでの処理の流れは、図4を用いて説明された実施の形態1の場合と基本的に変わらない。 【0092】但し、本実施の形態3におけるメモリ管理装置400では、実施の形態1の場合とステップS5におけるJavaオブジェクト生成処理が一部異なる。図9は、実施の形態3におけるJavaオブジェクト生成処理の流れを示すフローチャートである。 【0093】図9に示すように、実施の形態3におけるJavaオブジェクト生成処理の流れが、実施の形態1の場合と異なるのは、ステップS40、S41が設けられている点である。 【0094】ステップS11において、Javaオブジェクトの生成要求が行われたとき、固定アドレスメモリ領域105bに記憶されたダウンロードデータD1のサイズや種別、有効期限などが得られる。 【0095】ステップS40では、判定部401が、固定アドレスメモリ領域105bに記憶されたダウンロードデータD1のサイズや種別、有効期限などに基づいて、そのデータD1がJavaオブジェクトとして可変アドレスメモリ領域105aに記憶されるか否かを判定する。 【0096】ダウンロードデータD1がJavaオブジェクトとして可変アドレスメモリ領域105aに記憶されないと判定された場合にのみ、実施の形態1と同様に、ステップS12以降の処理が行われる。 【0097】一方、ステップS40において、ダウンロードデータD1がJavaオブジェクトとして可変アドレスメモリ領域105aに記憶されると判定された場合には、ダウンロードデータD1のJavaオブジェクトが可変アドレスメモリ領域105aに生成される(ステップS41)。なお、ステップS41の処理は、従来と同様であるので、この処理の詳細な説明は省略する。 【0098】このように、本実施の形態3では、固定アドレスメモリ領域に記憶されたデータのサイズなどに応じて、そのデータが可変アドレスメモリ領域に記憶されないと判定された場合にのみ、管理情報が生成される。固定アドレスメモリ領域を管理するOSや装置の仕様などによって判定基準が変更されれば、扱われるデータが多様であっても、固定アドレスメモリ領域を管理するOSや装置の仕様などに応じて、それらのデータを記憶する最適なメモリ領域が選択される。その結果、メモリ管理の最適化が図られる。 【0099】以上、各実施の形態において本発明を具体的に説明したが、本発明はこれらの実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で適宜変更可能であることはもちろんである。 【0100】なお、本発明に係るメモリ管理装置はインターネット300を介してダウンロードされたデータに基づいてJavaオブジェクトが生成されるようになっているが、デジタルTV、セットトップボックス、携帯電話等の移動体端末にも適用可能である。例えば、デジタルTVにおいては、デジタル放送網を介して送信されている搬送波に重畳されたデータを受信することができるデジタルTV受信装置にも本発明に係るメモリ管理装置を適用できる。デジタルTVに本発明が適用された場合、ネットワークデバイス(図1参照)をデジタル放送受信チューナで構成してデータを受信するようにすればよい。 【0101】また、本発明のプログラムは、インターネットなどの通信媒体を介して接続されるサーバからクライアントコンピュータのメモリやハードディスクドライブにダウンロードされるなどの形態で、配布、販売されることがある。この場合、クライアントコンピュータに本発明のプログラムが読み込まれることにより、そのコンピュータを利用して、本発明のメモリ管理装置やメモリ管理方法が構築される。さらに、他の機器側のメモリなどに記憶されたプログラムやデータを、通信媒体を介して使用する形態が採用されてもよい。 【0102】また、本発明のプログラムがCD−ROM、FD、DVD等の記録媒体に格納され、汎用コンピュータに対して着脱自在な形で提供される形態でもよい。これにより、本発明のプログラムが格納されたソフトウェア商品として装置と独立して容易に配布、販売することができるようになる。汎用コンピュータや汎用ゲーム装置などのハードウェアを用いてこのソフトウェアを使用することにより、これらのハードウェアで本発明が容易に実施できるようになる。 【0103】 【発明の効果】本発明によれば、オブジェクト指向型プログラムからの要求に応じて、他のプログラムによって固定アドレスメモリ領域に生成されたデータをオブジェクト指向型プログラムが読み出すための管理情報が生成されるので、従来のように、ダウンロードされたデータをオブジェクト指向型言語のプログラムで管理されるメモリ領域へのコピー処理が不要となる。また、処理のオーバーヘッドがなくなって処理負荷が軽減され、効率的にメモリ領域を使用することができるようになる。 【0104】また、Javaアプリケーションの実行処理が終了して、固定アドレスメモリ領域のデータが不要になった場合、固定アドレスメモリ領域から不要なデータが削除されるので、ネイティブプログラムやOSのワークエリアとしての空きメモリ領域を有効に確保することができる。 【0105】さらに、固定アドレスメモリ領域に記憶されたデータに応じて、そのデータが可変アドレスメモリ領域に記憶されないと判定された場合にのみ、管理情報が生成されるようにすることによって、データに応じた最適なメモリ管理が行われる。
|
| 【出願人】 |
【識別番号】000005821 【氏名又は名称】松下電器産業株式会社
|
| 【出願日】 |
平成13年12月10日(2001.12.10) |
| 【代理人】 |
【識別番号】100083172 【弁理士】 【氏名又は名称】福井 豊明
|
| 【公開番号】 |
特開2002−244851(P2002−244851A) |
| 【公開日】 |
平成14年8月30日(2002.8.30) |
| 【出願番号】 |
特願2001−375942(P2001−375942) |
|