JP2008234668A - メモリ管理装置、メモリ管理方法、メモリ管理プログラム及び該プログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents

メモリ管理装置、メモリ管理方法、メモリ管理プログラム及び該プログラムを記録したコンピュータ読み取り可能な記録媒体 Download PDF

Info

Publication number
JP2008234668A
JP2008234668A JP2008089067A JP2008089067A JP2008234668A JP 2008234668 A JP2008234668 A JP 2008234668A JP 2008089067 A JP2008089067 A JP 2008089067A JP 2008089067 A JP2008089067 A JP 2008089067A JP 2008234668 A JP2008234668 A JP 2008234668A
Authority
JP
Japan
Prior art keywords
memory area
data
address memory
java
image data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008089067A
Other languages
English (en)
Other versions
JP4295805B2 (ja
Inventor
Yuko Imanishi
祐子 今西
Shigenori Doi
繁則 土井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2008089067A priority Critical patent/JP4295805B2/ja
Publication of JP2008234668A publication Critical patent/JP2008234668A/ja
Application granted granted Critical
Publication of JP4295805B2 publication Critical patent/JP4295805B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

【課題】Javaオブジェクトを生成するためのコピー処理によるオーバーヘッドを避け、効率的にメモリ領域を使用することができるメモリ管理方法を提供すること。
【解決手段】Javaアプリケーションで実行されるJavaオブジェクトが記憶され、Java仮想マシンによって再配置される可変アドレスメモリ領域と、他のプログラムに割り当てられた固定的なアドレスで生成されたデータが記憶される固定アドレスメモリ領域とを有するメモリにおいて、Javaアプリケーションからの要求に応じて、他のプログラムによって固定アドレスメモリ領域に生成されたデータをJavaオブジェクトとして読み出す。
【選択図】図1

Description

本発明は、デジタルコンピュータ・ソフトウェアの分野に関し、詳細には、オブジェクト指向型プログラムで実行される実行オブジェクトが記憶されるメモリを管理するメモリ管理装置、メモリ管理方法、メモリ管理プログラム及び該プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
近年、コンピュータ技術、通信、及び放送技術の発達に伴い、画像、音声、動画像のような多様な情報メディアを提供するマルチメディアシステムが普及しつつある。このようなマルチメディアシステムとして、対話型デジタルテレビ、移動体端末、ゲーム装置などが市場に提供されている。
マルチメディアシステムにおいては、インターネット等の通信媒体を介して伝送される画像、音声及び動画像データのような大量のデータがマルチメディアシステム内のアプリケーションと結合されて、画面やスピーカなどから映像や音声としてユーザに提供される。故に、ダウンロードされる大量のデータを効率的に処理する技術がマルチメディアシステムに要求される。
画像、音声及び動画像データのような大量のデータの通信メディアからのストリーム処理の効率化を実現する手法として、近年、サン・マイクロシステムズ社のオブジェクト指向型言語であるJava(登録商標)環境が普及している。
ここで、Javaで記述されたプログラムで構成されるアプリケーション(以下、Javaアプリケーション)に関する一般的な従来の技術の一例として、Javaアプリケーションからの要求に応じて、インターネットなどの通信媒体を介して画像データがダウンロードされてJavaアプリケーションに用いられるまでの処理の流れについて説明する。
図10は、マルチメディア環境の下で、Javaアプリケーションからの要求に応じて、画像データをダウンロードして実行する一般的なメモリ管理装置の機能ブロック図である。
図10に示すメモリ管理装置は、Java言語で構成されたプログラムであるJavaアプリケーション11、Java仮想マシンプログラム(以下、JavaVM)12、ネイティブプログラム13、オペレーティングシステム(以下、OS)14、オブジェクト記憶部15とで構成されている。
Javaアプリケーション11は、Javaで記述されたソースコードを有しており、コンパイルされて低級な擬似コードである中間コード(以下、バイトコード)に変換される。JavaVM12によって、そのバイトコードがコンピュータで解釈・実行可能な機械語(以下、ネイティブコード)に変換されて実行される。JavaVM12のこの機能によって、特定のOSやプロセッサに依存することなく、いかなるプラットフォームでもJavaの実行可能な環境が実現される。
JavaVM12は、インタプリタ部12a、オブジェクト管理部12b、JNI(JNI:Java Native Interface)部12cで構成される。インタプリタ部12aは、Javaアプリケーション11から1つの命令を表すバイトコードを読み出し、その命令をネイティブコードに変換した後に実行する。オブジェクト管理部12bは、Javaアプリケーション11の実行処理で用いられるデータやソースコード(以下、Javaオブジェクト)を生成したり、生成されたJavaオブジェクトを参照したりする。
ここで、Javaオブジェクトは、Javaのクラスで定義されたバイトコードであって、Javaアプリケーション11からの要求に応じて、オブジェクト管理部12bによってオブジェクト記憶部15に生成(インスタンス)される。インスタンスされたJavaオブジェクトのみが、実行オブジェクトとして、Javaアプリケーション11による実行処理で用いられることとなる。
JNI部12cは、C言語などで記述されたネイティブコードであるネイティブプログラム13をJavaアプリケーション11の要求に応じて実行するための命令や関数の集合からなるAPI(Application Program Interface)を実現する。また、JNI部12cは、ネイティブプログラム13からの要求に応じてJavaアプリケーション11を実行させることもできる。
オブジェクト記憶部15はRAMなどで構成され、Javaオブジェクトを記憶したり生成するためのワークエリアとなる可変アドレスメモリ領域15aと、ネイティブプログラム13やOS14のワークエリアとなる固定アドレスメモリ領域15bとを備えている。
可変アドレスメモリ領域15aは、JavaVM12による、不要なJavaオブジェクトを回収する機能(以下、GC:Garbage Collection機能)で使用され、記憶されているデータのアドレスは可変制御可能となっている。このGC機能によって、使用されなくなったメモリ領域が集約されて連続した利用可能なメモリ領域が提供され、メモリを効率良く使用することが可能となる。一方、固定アドレスメモリ領域15bは、ネイティブプログラム13やOS14等のモジュールの実行処理に利用されるデータが記憶され、OS14の管理下で各プログラムにアドレスが割り当てられ、可変アドレスメモリ領域15aのようにデータの再配置は実行されない。
このように、Javaアプリケーション11の実行環境におけるメモリ管理では、JavaVM12のGC機能を利用するため、一般的に、Javaオブジェクトはメモリ上の可変アドレスメモリ領域15aに記憶され、ネイティブプログラム13やOS14が用いるデータが記憶される領域とは区分けされている。
ネイティブプログラム13は、C言語などで記述されたネイティブコードである。Javaアプリケーション11からの要求に応じて、インターネット、衛星放送、ケーブル放送などの通信媒体を介して画像データを固定アドレスメモリ領域15bにダウンロードするリアルタイム処理を可能とするモジュールでネイティブプログラム13は構成される。
続いて、ダウンロードされた画像データがJavaアプリケーション11の実行処理で用いられる場合における処理の流れを説明する。ここで、Javaアプリケーション11は、可変アドレスメモリ領域15aに記憶されたJavaオブジェクトしか参照することができないため、ダウンロードされた画像データをJavaオブジェクトとして直接参照することができない。
図10において、オブジェクト記憶部15の可変アドレスメモリ領域15aにJavaオブジェクトOBA、OBBが記憶されている。固定アドレスメモリ領域15bには、ネイティブプログラム13によってダウンロードされたダウンロードデータDAが記憶されている。図10に示す例では、JavaオブジェクトOBA、OBBのみがJavaアプリケーション11によって参照可能であり、ダウンロードデータDAは参照不可能である。
図11は、ダウンロードデータDAがJavaオブジェクトとして参照可能とされる場合のオブジェクト記憶部15の状態を示す図である。まず、Javaアプリケーション11からの要求に応じて、オブジェクト管理部12bが可変アドレスメモリ領域15aの空き領域にダウンロードデータDAに応じたメモリ領域が確保される。
次に、ネイティブプログラム13が、JNI部12cを介して、固定アドレスメモリ領域15bのダウンロードデータDAを可変アドレスメモリ領域15aにダウンロードデータDBとしてコピーする。可変メモリアドレス領域15aにコピーされたダウンロードデータDBは、Javaオブジェクトとして、最終的にJavaアプリケーション11の実行処理で用いられることとなる。
上述のようにネイティブプログラム13で管理される固定アドレスメモリ領域15bのデータがJavaアプリケーション11の実行処理で用いられる場合、固定アドレスメモリ領域15bから可変アドレスメモリ領域15aへのダウンロードデータDAのコピー処理が必要となっていた。そのため、コピー処理によるオーバーヘッドが発生し実行処理が遅れる恐れがある。またコピー処理の実行中、コピー先である可変アドレスメモリ領域15aとコピー元である固定アドレスメモリ領域15bとのそれぞれにダウンロードデータDAのメモリ領域が確保される必要があり、メモリ領域が効率的に使用されない場合があった。
そこで、本発明は、Javaオブジェクトを生成するためのコピー処理によるオーバーヘッドを避け、より効率的にメモリ領域を使用することができるようなメモリ管理を行うことを目的とする。
本発明では、オブジェクト指向型の言語で構成されるオブジェクト指向型プログラムを実行する仮想マシンプログラムによって実行される実行オブジェクトが記憶されるメモリが管理される。
このメモリは、実行オブジェクトが記憶され、実行オブジェクトが仮想マシンプログラムによって再配置される可変アドレスメモリ領域と、そのオブジェクト指向型の言語以外の言語で構成される他のプログラムによって生成されたデータが記憶される固定アドレスメモリ領域とを有している。
本発明がメモリ管理装置として実施される場合、メモリ管理装置には、生成手段と読出手段が備えられる。生成手段は、オブジェクト指向型プログラムからの要求に応じて、そのオブジェクト指向型プログラムがデータを読み出すための管理情報を生成する。読出手段は、生成手段で生成された管理情報にしたがって、固定アドレスメモリ領域に生成されたデータを読み出す。
また、メモリ管理装置には、メモリの固定アドレスメモリ領域にデータを受信する通信手段が備えられることがある。この場合、他のプログラムによって生成されたデータは、通信手段を用いて受信されたデータである。また、生成手段は、通信手段を用いて受信されたデータをオブジェクト指向型プログラムが読み出すための管理情報を生成する。
さらに、メモリ管理装置は、検出手段、種別判定手段、削除要求記憶手段、削除判定手段及び削除手段を備えてもよい。検出手段は、オブジェクト指向型プログラムの実行処理の後、オブジェクト指向型プログラムからの削除要求に応じて、当該削除要求されたデータを検出する。種別判定手段は、検出手段で検出されたデータが、可変アドレスメモリ領域または固定アドレスメモリ領域のいずれに記憶されているかを判定する。削除要求記憶手段は、検出手段で検出されたデータが固定アドレスメモリ領域に記憶されていると種別判定手段によって判定された場合、検出手段で検出されたデータに対するオブジェクト指向型プログラムからの削除要求を記憶する。削除判定手段は、削除要求記憶手段で削除要求が記憶されたデータに対する他のプログラムからの削除要求があるか否かを判定する。そして、削除手段は、削除要求記憶手段で削除要求が記憶されたデータに対し、他のプログラムからの削除要求があると削除判定手段で判定された場合、検出されたデータ及びその管理情報を削除する。
さらに、メモリ管理装置は、固定アドレスメモリ領域に記憶されたデータに応じて、当該データの実行オブジェクトが可変アドレスメモリ領域に記憶されるか否かを判定するデータ判定手段を備えてもよい。生成手段は、固定アドレスメモリ領域に記憶されたデータの実行オブジェクトが可変アドレスメモリ領域に記憶されないとデータ判定手段によって判定された場合に、そのデータの管理情報を生成する。
また、本発明は、メモリ管理方法として実施されることもある。このメモリ管理方法では、生成ステップ、読出ステップが行われる。生成ステップでは、オブジェクト指向型プログラムからの要求に応じて、オブジェクト指向型プログラムがデータを読み出すための管理情報が生成される。また、読出ステップでは、生成ステップで生成された管理情報にしたがって、固定アドレスメモリ領域に生成されたデータが読み出される。
また、メモリ管理方法には、メモリの固定アドレスメモリ領域にデータを受信する通信ステップが含まれることがある。この場合、他のプログラムによって生成されたデータは、通信ステップで受信されたデータである。さらに、生成ステップでは、通信ステップで受信されたデータをオブジェクト指向型プログラムが読み出すための管理情報が生成される。
また、メモリ管理方法は、検出ステップ、種別判定ステップ、削除要求記憶ステップ、削除判定ステップ、削除ステップを更に含むようにしてもよい。この場合、まず検出ステップにおいて、オブジェクト指向型プログラムの実行処理の後、オブジェクト指向型プログラムからの削除要求に応じて、当該削除要求されたデータが検出される。次に種別判定ステップにおいて、検出ステップで検出されたデータが、可変アドレスメモリ領域または固定アドレスメモリ領域のいずれに記憶されているかが判定される。削除要求記憶ステップでは、検出ステップで検出されたデータが固定アドレスメモリ領域に記憶されていると種別判定ステップによって判定された場合、検出ステップで検出されたデータに対するオブジェクト指向型プログラムからの削除要求が記憶される。さらに削除要求ステップでは、削除要求記憶ステップで削除要求が記憶されたデータに対する他のプログラムからの削除要求があるか否かが判定される。そして、削除ステップでは、削除要求記憶ステップで削除要求が記憶されたデータに対し、他のプログラムからの削除要求があると削除判定ステップで判定された場合、検出されたデータ及びその管理情報が削除される。
さらに、メモリ管理方法は、固定アドレスメモリ領域に記憶されたデータに応じて、当該データの実行オブジェクトが可変アドレスメモリ領域に記憶されるか否かを判定するデータ判定ステップを含むことがある。生成ステップでは、固定アドレスメモリ領域に記憶されたデータの実行オブジェクトが可変アドレスメモリ領域に記憶されないとデータ判定手段によって判定された場合に、そのデータの管理情報が生成される。
また、本発明は、メモリ管理プログラム又は該プログラムを記録したコンピュータ読み取り可能な記録媒体として実施されることもある。
このメモリ管理プログラムは、上述のメモリ管理方法をコンピュータに実行させるためのプログラムである。メモリ管理プログラムがコンピュータに読み込まれることにより、ソフトウェアとハードウェア資源とが協働し、固定アドレスメモリ領域に記憶されたデータの管理情報の生成、管理情報に基づくデータの読み出しが実現される。その結果、コンピュータを利用して、例えばメモリ管理装置が構築される。また、メモリ管理プログラムが読み込まれたコンピュータが動作すれば、メモリ管理方法が構築される。
メモリ管理プログラムは、例えばインターネットなどの通信媒体を介した通信によって配布、販売されることもあれば、記録媒体に記録された状態で配布、販売されることもある。
本発明によれば、オブジェクト指向型プログラムからの要求に応じて、他のプログラムによって固定アドレスメモリ領域に生成されたデータをオブジェクト指向型プログラムが読み出すための管理情報が生成されるので、従来のように、ダウンロードされたデータをオブジェクト指向型言語のプログラムで管理されるメモリ領域へのコピー処理が不要となる。また、処理のオーバーヘッドがなくなって処理負荷が軽減され、効率的にメモリ領域を使用することができるようになる。
また、Javaアプリケーションの実行処理が終了して、固定アドレスメモリ領域のデータが不要になった場合、固定アドレスメモリ領域から不要なデータが削除されるので、ネイティブプログラムやOSのワークエリアとしての空きメモリ領域を有効に確保することができる。
さらに、固定アドレスメモリ領域に記憶されたデータに応じて、そのデータが可変アドレスメモリ領域に記憶されないと判定された場合にのみ、管理情報が生成されるようにすることによって、データに応じた最適なメモリ管理が行われる。
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
(実施の形態1)
図1は、本発明の実施の形態1に係るメモリ管理装置100の概略構成を示す機能ブロック図である。図1において、メモリ管理装置100は、例えば、Javaアプリケーション記憶部101、JavaVM102、Javaオブジェクトテーブル103、Javaオブジェクト管理情報記憶部104、オブジェクト記憶部105、ダウンロード管理部106、ネットワーク制御部107、ネットワークデバイス108、固定アドレスメモリ提供部109を備えている。
Javaアプリケーション記憶部101には、Javaアプリケーション111とクラスライブラリ112とが記憶されている。Javaアプリケーション111は、オブジェクト指向言語であるJavaで記述されたプログラムで構成される。Javaアプリケーション111のソースコードは、コンパイルされることによって、バイトコードに変換される。JavaVM102には、このバイトコードが送信される。また、クラスライブラリ112は、Javaオブジェクト内部のデータ構造をひとまとめに定義したクラスが集められたライブラリである。本実施の形態のJavaアプリケーション記憶部101はRAM(Random Access Memory)で構成されているが、ROM(Read Only Memory)、ハードディスク等で実現してもよい。
JavaVM102は、例えば、Javaインタプリタ部102a、Javaオブジェクト参照部102b、可変アドレスメモリ用Javaオブジェクト生成部(以下、GOBV部)102c、固定アドレスメモリ用Javaオブジェクト生成部102d(GOBF部)を備えている。
Javaインタプリタ部102aは、Javaアプリケーション111から1つの命令ずつ読み出して解釈実行する。なお、本メモリ管理装置100はインタプリタの実行機構を採用しているが、コンパイラ等の実行機構にも適宜変更可能である。また、Javaオブジェクト参照部102bは、Javaアプリケーション111からの要求に応じて、既に生成されたJavaオブジェクトの読み出し処理を実現する。GOBV部102c、GOBF部102dは、Javaアプリケーション111からの要求に応じて、Javaオブジェクトをオブジェクト記憶部105に生成する。
Javaオブジェクトテーブル103には、Javaオブジェクト管理情報のアドレスを示すポインタが格納される。また、Javaオブジェクト管理情報記憶部104には、Javaオブジェクト管理情報が記憶される。Javaオブジェクト管理情報は、オブジェクト記憶部105のJavaオブジェクトやそのJavaオブジェクトのクラスに関するデータを管理するための情報である。Javaオブジェクトに関する情報は、例えばオブジェクト記憶部105におけるJavaオブジェクトのアドレスを示すポインタ、データサイズである。また、クラスに関する情報は、具体的には、Javaオブジェクトの型を示すクラス名や実行コード等、アプリケーション111による実行や参照に必要な情報である。
オブジェクト記憶部105は、RAMなどで構成される。また、オブジェクト記憶部105は、Javaオブジェクトを生成するためのワークエリアとなる可変アドレスメモリ領域105aと、図示しないOSや他のアプリケーションで管理されるデータが記憶される固定アドレスメモリ105bとを備えている。
可変アドレスメモリ領域105aには、JavaVM102のGOBV部102cによってJavaオブジェクトが生成される。また、JavaVM102のGC機能で使用され、記憶されているJavaオブジェクトのアドレスは可変制御可能である。
一方、固定アドレスメモリ領域105bは、図示しないOSの管理下で各プログラムによって生成されるデータが記憶され、可変アドレスメモリ領域105aのようにJavaVM102のGC機能によってデータの再配置は実行されない。
ダウンロード管理部106は、プラットフォームに依存したネイティブコードを生成するC言語等のネイティブ言語とJava言語との両方で記述されたプログラムによって実現され、インターネット300を介して受信されるデータの固定アドレスメモリ領域105bにおけるメモリ管理を実行する。
ネットワーク制御部107は、モデムやTA(TA:Terminal Adapter)などで構成されるネットワークデバイス108を制御して、インターネット300からデータを受信する。また、ネットワーク制御部107は、リアルタイム処理が要求され、C言語などのネイティブ言語で構成されたプログラムで実現される。
固定アドレスメモリ提供部109は、Javaアプリケーション111の要求に応じてデータが受信される場合、固定アドレスメモリ領域105bの空き領域から受信されたデータを記憶するためのメモリ領域をダウンロード管理部106に提供する。
なお、図示しない中央演算処理装置(CPU)を含む制御部が、本発明のプログラムにしたがってCPU以外の各回路と協働してメモリ管理装置100で実行される制御動作を実現している。しかし、以下では、説明の便宜上、CPUが関係する制御動作を、Javaアプリケーションなどのプログラムが直接的に制御しているとものとする。
次に、メモリ管理装置100におけるJavaオブジェクト管理のデータ構成について、図面を用いて具体的に説明する。図2は、オブジェクトテーブル103、Javaオブジェクト管理情報記憶部104、オブジェクト記憶部105に記憶されるデータ構成を示す図である。
図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を読み出して実行処理に用いることができる。
同様に、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を読み出して実行処理に用いることができる。
また、D1は、ダウンロード管理部106によってインターネット300から固定アドレスメモリ領域105bにダウンロードされたデータを示す。ここで、本メモリ管理装置100では、ダウンロード管理部106のようなJavaアプリケーション以外のネイティブプログラムによって固定アドレスメモリ領域105bに生成されたデータが、Javaアプリケーション111の要求に応じてJavaオブジェクトとして読み出せるようになっている。図2に示す例では、GOBF部102dによってダウンロードデータD1を読み出すためのJavaオブジェクト管理情報が生成される。これにより、インターネット300から固定アドレスメモリ領域105bに受信されたダウンロードデータD1が、可変アドレスメモリ領域105aへのコピー処理を経ずにJavaオブジェクトとして読み出せるようになる。
図3は、GOBF部102dによって、図2に示したダウンロードデータD1のJavaオブジェクト管理情報が生成された状態を示す図である。OMDは、ダウンロードデータD1の固定アドレスメモリ領域におけるアドレスを示すポインタやクラス情報を含むJavaオブジェクト管理情報である。また、PDはJavaオブジェクト管理情報OMDのJavaオブジェクト管理情報記憶部104におけるアドレスを示すポインタである。ポインタPD、Javaオブジェクト管理情報OMDを参照することによって、Javaアプリケーション111はJavaオブジェクト参照部102bを介してダウンロードデータD1をJavaオブジェクトとして読み出して実行処理に用いることが可能となる。
以下、本実施の形態に係るメモリ管理装置100において、ダウンロードデータD1がダウンロードされてからJavaオブジェクトとして読み出されるまでの処理の流れを説明する。図4は、ダウンロードデータD1の受信から、JavaオブジェクトとしてダウンロードデータD1が読み出されるまでの処理の流れを示す図である。
Javaアプリケーション111が、JavaVM102を介しダウンロード管理部106に対して、ダウンロードすべきデータの識別情報を指定して受信要求を実行する(ステップS1)。ダウンロードすべきデータの識別情報として、データの識別番号や格納場所(例えば、URL:Uniform Resource Locater)が指示される。
次に、ダウンロード管理部106が、ダウンロードされるデータの識別番号や固定アドレスメモリ領域105bで格納されるアドレスを指定して、ネットワーク制御部107に対してダウンロード要求を実行する(ステップS2)。ネットワーク制御部107は、ステップS1で指定されたインターネット300上のデータの格納場所にネットワークデバイス108を介して接続し、指定されたデータをダウンロードする。そのダウンロードされたデータはダウンロードデータD1(図2参照)として固定アドレスメモリ領域105bのステップS2で指定されたアドレスに格納される(ステップS3)。
ダウンロードデータD1のダウンロードが終了した後、ネットワーク制御部107は、ダウンロードが完了したことをダウンロード管理部106に通知する(ステップS4)。ダウンロードが完了した後、ダウンロードデータD1に基づいて、後述するJavaオブジェクト生成処理がJavaVM102によって実行される(ステップS5)。ステップS5のJavaオブジェクト生成処理によってJavaオブジェクト管理情報OMDが生成された後、ダウンロードデータD1がJavaオブジェクトとして、Javaアプリケーション111によって読み出されて実行処理に用いられる(ステップS6)。
次に、Javaオブジェクト生成処理(ステップS5)の処理の流れを説明する。図5は、Javaオブジェクト生成処理(ステップS5)の流れを示すフローチャートである。
ダウンロード管理部106は、GOBF部102dに対して、固定アドレスメモリ領域105bのダウンロードデータD1を指定して、そのダウンロードデータD1に基づくJavaオブジェクトの生成を要求する(ステップS11)。次に、ダウンロードデータD1が固定アドレスメモリ領域105bで格納されるアドレスが指定されているか否かが判定される(ステップS12)。アドレスが指定されていなければ(ステップS12;No)、固定アドレスメモリ提供部109によって、固定アドレスメモリ領域105bにおける所定容量分のメモリ領域が提供される(ステップS13)。図2の場合、既にステップS2でダウンロードデータD1のアドレスがダウンロード管理部106によって指定されているので、ステップS13の処理は実行されずにステップS14の処理に移行する。
Javaオブジェクトに変換されるダウンロードデータD1のアドレスが指定されている場合(ステップS12;Yes)、生成されるJavaオブジェクトに対応したクラス情報がクラスライブラリ112からJavaVM102を介して読み出され、Javaオブジェクト管理情報記憶部104のJavaオブジェクト管理情報OMDとして記憶される(ステップS14)。
次に、ダウンロードデータD1のアドレスを示すポインタがJavaオブジェクト管理情報OMDとして記憶されるメモリ領域がJavaオブジェクト管理情報記憶部104に確保される(ステップS15)。固定アドレスメモリ領域105bのダウンロードデータD1のアドレスを示すポインタは、確保されたメモリ領域にJavaオブジェクト管理情報OMDとして記憶される(ステップS16)。
続いて、Javaオブジェクト管理情報OMDのアドレスを示すポインタPDがJavaオブジェクトテーブル103に記憶される(ステップS17)。その後、ダウンロードデータD1はダウンロード管理部106によってJavaアプリケーション111に渡される。更に、ダウンロードデータD1は、Javaオブジェクト管理情報OMDにしたがって、Javaオブジェクト参照部102bによって読み出され、Javaアプリケーション111の実行処理で用いられる(図4のステップS6)。
このように、固定アドレスメモリ領域105bに生成されたダウンロードデータをJavaオブジェクトとして直接読み出すことが可能となるので、ダウンロードしたデータを可変アドレスメモリ領域105aへのコピー処理が不要となり、処理のオーバーヘッドがなくなってメモリ管理装置の処理負荷が軽減される。
また、コピー処理の実行中、可変アドレスメモリ領域105a、固定アドレスメモリ領域105bそれぞれに、Javaオブジェクトを生成するために2つのメモリ領域を確保する必要がなくなり、効率的にメモリ領域を使用できるようになる。音声、画像データのような大容量のデータをダウンロードしてJavaアプリケーション111で参照する際にとりわけ有効である。大容量のデータを受信する場合、コピー処理中に、可変アドレスメモリ領域105a、固定アドレスメモリ領域105bの双方に大容量のメモリ領域を確保する必要がなくなるためである。なお、ソースコードをダウンロードする際も本発明を適用可能であることは言うまでもない。
また、図4において、ダウンロードが終了した後に(ステップS3)、ダウンロードデータのJavaオブジェクト管理情報を生成して(ステップS5)、Javaアプリケーション111からダウンロードデータが直接参照されるようになっているが、リアルタイム処理の効率を更に向上させるために処理手順を変更可能である。具体的には、ダウンロードデータのダウンロードが完了せずとも、ダウンロード途中のデータを、Javaアプリケーション111から参照可能にすることができる。
例えば、図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について図面を参照しながら詳細に説明する。
本実施の形態に係るメモリ管理装置においては、実施の形態1に係るメモリ管理装置100と同様に、固定アドレスメモリ領域105bのデータが、Javaオブジェクト管理情報にしたがって読み出されるようになっている。しかも、Javaアプリケーションの実行処理が終了して、固定アドレスメモリ領域105bのデータが不要になった場合、固定アドレスメモリ領域から不要なデータが削除されるようになっている。固定アドレスメモリ領域105bの不要なデータが削除されることにより、ネイティブプログラムやOSのワークエリアとしての空きメモリ領域を有効に確保することができる。
図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と同様であるので、ここでは各部の詳細な説明は省略する。
本実施の形態に係るメモリ管理装置200と実施の形態1に係るメモリ管理装置100との構成上の差異は、JavaVM202にガベージ処理部202aを更に備えていることである。
ガベージ処理部202aは、例えば、非参照オブジェクト検出部203、オブジェクト種別判定部204、可変アドレスメモリ用削除部205、固定アドレスメモリ用削除判定部206、固定アドレスメモリ用削除部207を備えている。ガベージ処理部202aは、Javaアプリケーション111やダウンロード管理部106からの要求に応じて、可変アドレスメモリ領域105aや固定アドレスメモリ領域105bに記憶されている不要なJavaオブジェクトを削除する機能を実現する。
非参照オブジェクト検出部203は、オブジェクト記憶部105に記憶されているJavaオブジェクトの中から、Javaアプリケーション111によって参照されていない不要なオブジェクトを検出する。
Javaオブジェクト種別判定部204は、非参照オブジェクト検出部203によって検出された不要なJavaオブジェクトが可変アドレスメモリ領域105a、固定アドレスメモリ領域105bのいずれに記憶されているかを判定する。
可変アドレスメモリ用削除部205は、可変アドレスメモリ領域105aに記憶されている不要なJavaオブジェクトを削除する。
固定アドレスメモリ用削除判定部206は、オブジェクト種別判定部204によって不要なJavaオブジェクトに対応するデータが固定メモリアドレス領域105bに存在すると判定されたか否か、及びダウンロード管理部106からの不要なJavaオブジェクトに対応するデータの削除要求があるか否かを判定する。
固定アドレスメモリ用削除部207は、固定アドレスメモリ用削除判定部206の判定結果に応じて固定アドレスメモリ領域105bに記憶されている不要なJavaオブジェクトに対応するデータを削除する。
以下、オブジェクト記憶部105中の不要なJavaオブジェクトを削除する処理の流れを説明する。図7は、オブジェクト記憶部105の不要なJavaオブジェクトを削除する処理の流れを示すフローチャートである。
まず、Javaアプリケーション111の実行処理が終了した後、オブジェクト記憶部105中のJavaオブジェクトへの参照が外される(ステップS21)。続いて、参照が外された不要なJavaオブジェクトを削除する要求が、Javaアプリケーション111からJavaVM202へ実行される(ステップS22)。
次に、JavaVM202の非参照オブジェクト検出部203によって、削除する要求があったJavaオブジェクトが検出される。検出されたJavaオブジェクトが、可変アドレスメモリ領域105aまたは固定メモリアドレス領域105bのいずれに属するかがJavaオブジェクト種別判別部204によって判定される(ステップS23)。検出されたJavaオブジェクトが可変アドレスメモリ領域105aに属する場合、可変アドレスメモリ用削除部205によって検出されたJavaオブジェクトが削除される。
また、削除する要求があったJavaオブジェクトが固定アドレスメモリ領域105bに記憶されたデータに基づくとステップS23で判定された場合、固定アドレスメモリ用削除判定部206によって、そのJavaオブジェクトに対応するデータを削除する要求が記憶される(ステップS24)。
その後、ステップS24でオブジェクト種別判定部204からの削除要求が記憶されたデータに対して、ダウンロード管理部106から削除要求が実行される(ステップS25)。ダウンロード管理部106からの削除要求が実行されると、固定アドレスメモリ用削除判定部206は固定アドレス用削除部207に対してステップS24で削除要求が記憶されたデータの削除要求を実行する。ダウンロード管理部106による削除要求が無ければ、固定アドレスメモリ用削除判定部206から固定アドレス用削除部207に対する削除要求は実行されない。
つまり、Javaアプリケーション111からの削除要求とダウンロード管理部106からの削除要求とが共に実行された場合のみ、固定アドレスメモリ用削除部207によって、固定アドレスメモリ領域105bの不要なデータが削除されるようになる。これにより、メモリ管理装置200内の全てのアプリケーションから参照されなくなった場合のみ不要なデータが削除されるので、アプリケーション実行時でのデータの欠落が回避でき、安全にメモリの共有化が実現される。なお、Javaアプリケーション111からの削除要求とダウンロード管理部106からの削除要求との順番が入れ替わってもよい。
次に、固定アドレスメモリ用削除部207は、削除対象のデータに対応するJavaオブジェクトテーブル103のポインタ、Javaオブジェクト管理情報記憶部104に記憶されたJavaオブジェクト管理情報を削除する(ステップS26)。
更に、固定アドレスメモリ用削除部207は、固定アドレスメモリ提供部109に、削除対象のデータが記憶された固定アドレスメモリ領域105bにおけるメモリ領域を開放させる要求を実行する(ステップS27)。削除要求の受信後、固定アドレスメモリ提供部109は、削除対象のデータを削除してメモリを開放する(ステップS28)。
以上、説明したように、メモリ管理装置200内の全てのアプリケーションから参照されなくなった場合のみ、固定アドレスメモリ領域105bの不要なデータが削除されるので、アプリケーション実行時でのデータの欠落が回避でき、安全にメモリの共有化が実現される。
(実施の形態3)
上述の実施の形態1では、Javaアプリケーション111が、ネイティブプログラムによって固定アドレスメモリ領域105bに生成されたデータを読み出すために、GOBF部102dによって、そのデータの管理情報が生成された。
もっとも、ネイティブプログラムによって固定アドレスメモリ領域105bに生成されたデータ全てについて、GOBF部102dにより管理情報を生成する必要はない。固定アドレスメモリ領域105bを管理するOSや装置の仕様、機能によっては、固定アドレスメモリ領域105bにあるデータをJavaオブジェクトとして扱わない方が好ましい。
例えばネイティブプログラムによって固定アドレスメモリ領域105bに生成されるデータのサイズが小さければ、そのデータのJavaオブジェクトが可変アドレスメモリ領域105aに生成されるとしても、GC機能によるJavaオブジェクトの再配置の頻度も少なく、処理オーバーヘッドやメモリ効率の低下も発生せず、その処理によるデメリットは比較的小さい。しかしながら、固定アドレスメモリ領域105bを管理するOSがGC機能を有していない場合、固定アドレスメモリ領域105bにあるサイズの小さなデータがJavaオブジェクトとして扱われると、サイズの小さなデータは、固定アドレスメモリ領域105bにフラグメンテーションを発生させる要因となる。
また、例えば音声、画像データのような大容量のデータの場合、既述の通り、そのデータのJavaオブジェクトが可変アドレスメモリ領域105aに生成されると、オーバーヘッドやメモリ効率の低下が大きくなる。さらに、大容量のデータによって可変アドレスメモリ領域105aが圧迫されると、GC機能によるJavaオブジェクトの再配置が頻繁に発生し、システムの負荷が大きくなる。固定アドレスメモリ領域105bのサイズが小さくても、データの有効期限が短ければ、固定アドレスメモリ領域105bが圧迫されることよりも、これらのデメリットが問題になる。しかしながら、固定アドレスメモリ領域105bのサイズが小さい場合、大容量のデータの有効期限が長ければ、データのJavaオブジェクトが可変アドレスメモリ領域105aに生成される方が好ましい。
そこで、図8に示すように、この実施の形態3におけるメモリ管理装置400は、実施の形態1におけるメモリ管理装置100の構成に加え、判定部401を備えている。
判定部401は、固定アドレスメモリ領域105bに記憶されたデータに応じて、当該データのJavaオブジェクトが可変アドレスメモリ領域105aに記憶されるか否かを判定する。
判定の基準は、データのサイズ、種別、有効期限などである。これらの基準は、メモリ全体のサイズや、その内訳(可変アドレスメモリ領域105a、固定アドレスメモリ領域105bの各サイズ)、ダウンロードされるデータのサイズやデータの扱い方、固定アドレスメモリ領域を管理するOSの機能などにより定められる。
例えばデータのサイズが所定サイズ以上である場合やデータの有効期限が所定期間以上である場合、データの種別が音声、映像データなどのAVデータを表す場合には、Javaオブジェクトは可変アドレスメモリ領域105aに記憶されないと判定される。この場合、実施の形態1で説明したのと同様に、固定アドレスメモリ領域105bに記憶されたデータの管理情報が、GOBF部102dによって生成される。Javaオブジェクト参照部102bは、この管理情報にしたがって、固定アドレスメモリ領域105bに記憶されたデータをJavaオブジェクトとして読み出す。
これに対し、例えばデータのサイズが所定サイズより小さい場合やデータの有効期限が所定期間より短い場合、データの種別がAVデータでない通常のデータを表す場合には、Javaオブジェクトは可変アドレスメモリ領域105aに記憶されると判定される。この場合、従来通り、固定アドレスメモリ領域105bに記憶されたJavaオブジェクトが可変アドレスメモリ領域105aに生成されてもよい。
本実施の形態3におけるメモリ管理装置400において、ダウンロードデータD1がダウンロードされてからJavaオブジェクトとして読み出されるまでの処理の流れは、図4を用いて説明された実施の形態1の場合と基本的に変わらない。
但し、本実施の形態3におけるメモリ管理装置400では、実施の形態1の場合とステップS5におけるJavaオブジェクト生成処理が一部異なる。図9は、実施の形態3におけるJavaオブジェクト生成処理の流れを示すフローチャートである。
図9に示すように、実施の形態3におけるJavaオブジェクト生成処理の流れが、実施の形態1の場合と異なるのは、ステップS40、S41が設けられている点である。
ステップS11において、Javaオブジェクトの生成要求が行われたとき、固定アドレスメモリ領域105bに記憶されたダウンロードデータD1のサイズや種別、有効期限などが得られる。
ステップS40では、判定部401が、固定アドレスメモリ領域105bに記憶されたダウンロードデータD1のサイズや種別、有効期限などに基づいて、そのデータD1がJavaオブジェクトとして可変アドレスメモリ領域105aに記憶されるか否かを判定する。
ダウンロードデータD1がJavaオブジェクトとして可変アドレスメモリ領域105aに記憶されないと判定された場合にのみ、実施の形態1と同様に、ステップS12以降の処理が行われる。
一方、ステップS40において、ダウンロードデータD1がJavaオブジェクトとして可変アドレスメモリ領域105aに記憶されると判定された場合には、ダウンロードデータD1のJavaオブジェクトが可変アドレスメモリ領域105aに生成される(ステップS41)。なお、ステップS41の処理は、従来と同様であるので、この処理の詳細な説明は省略する。
このように、本実施の形態3では、固定アドレスメモリ領域に記憶されたデータのサイズなどに応じて、そのデータが可変アドレスメモリ領域に記憶されないと判定された場合にのみ、管理情報が生成される。固定アドレスメモリ領域を管理するOSや装置の仕様などによって判定基準が変更されれば、扱われるデータが多様であっても、固定アドレスメモリ領域を管理するOSや装置の仕様などに応じて、それらのデータを記憶する最適なメモリ領域が選択される。その結果、メモリ管理の最適化が図られる。
以上、各実施の形態において本発明を具体的に説明したが、本発明はこれらの実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で適宜変更可能であることはもちろんである。
なお、本発明に係るメモリ管理装置はインターネット300を介してダウンロードされたデータに基づいてJavaオブジェクトが生成されるようになっているが、デジタルTV、セットトップボックス、携帯電話等の移動体端末にも適用可能である。例えば、デジタルTVにおいては、デジタル放送網を介して送信されている搬送波に重畳されたデータを受信することができるデジタルTV受信装置にも本発明に係るメモリ管理装置を適用できる。デジタルTVに本発明が適用された場合、ネットワークデバイス(図1参照)をデジタル放送受信チューナで構成してデータを受信するようにすればよい。
また、本発明のプログラムは、インターネットなどの通信媒体を介して接続されるサーバからクライアントコンピュータのメモリやハードディスクドライブにダウンロードされるなどの形態で、配布、販売されることがある。この場合、クライアントコンピュータに本発明のプログラムが読み込まれることにより、そのコンピュータを利用して、本発明のメモリ管理装置やメモリ管理方法が構築される。さらに、他の機器側のメモリなどに記憶されたプログラムやデータを、通信媒体を介して使用する形態が採用されてもよい。
また、本発明のプログラムがCD−ROM、FD、DVD等の記録媒体に格納され、汎用コンピュータに対して着脱自在な形で提供される形態でもよい。これにより、本発明のプログラムが格納されたソフトウェア商品として装置と独立して容易に配布、販売することができるようになる。汎用コンピュータや汎用ゲーム装置などのハードウェアを用いてこのソフトウェアを使用することにより、これらのハードウェアで本発明が容易に実施できるようになる。
本発明の実施の形態1に係るメモリ管理装置の概略構成を示す機能ブロック図 同実施の形態に係るオブジェクトテーブル、オブジェクト管理情報記憶部、オブジェクト記憶部に記憶されるデータ構成を示す図 同実施の形態に係るダウンロードデータのJavaオブジェクト管理情報が生成された状態を示す図 同実施の形態に係る、ダウンロードデータの受信から、Javaオブジェクトとしてダウンロードデータが読み出されるまでの処理の流れを示す図 実施の形態1におけるJavaオブジェクト生成処理の流れを表すフローチャート 本発明の実施の形態2に係るメモリ管理装置の概略構成を示す機能ブロック図 同実施の形態に係るオブジェクト記憶部中の不要なJavaオブジェクトを削除する処理の流れのフローチャート 本発明の実施の形態3に係るメモリ管理装置の概略構成を示す機能ブロック図 実施の形態3におけるJavaオブジェクト生成処理の流れを表すフローチャート 従来の技術における、画像データをダウンロードして実行する一般的なメモリ管理装置の機能ブロック図 ダウンロードデータがJavaオブジェクトとして参照可能とされる場合のオブジェクト記憶部の状態を示す図
符号の説明
100 メモリ管理装置
101 Javaアプリケーション記憶部
102 JavaVM
103 Javaオブジェクトテーブル
104 Javaオブジェクト管理情報記憶部
105 オブジェクト記憶部
105a 可変アドレスメモリ領域
105b 固定アドレスメモリ領域
106 ダウンロード管理部
107 ネットワーク制御部
108 ネットワークデバイス
109 固定アドレスメモリ提供部
401 判定部

Claims (5)

  1. オブジェクト指向型プログラムの実行のための仮想マシンプログラムをプロセッサが実行することにより実現される仮想マシンと、
    前記オブジェクト指向型プログラムとは異なるプログラムであって、プロセッサにより直接実行可能な他のプログラムを当該プロセッサが実行することにより実現され、通信媒体を介して画像データをダウンロードするダウンロード管理部と、
    前記オブジェクト指向型プログラムの実行の際に用いられるオブジェクトが配置され、当該オブジェクトの格納位置を前記仮想マシンにより変更できるようにした可変アドレスメモリ領域、及び前記プロセッサにて直接実行される他のプログラムにより管理される画像データであって、前記ダウンロード管理部によりダウンロードされた画像データが配置され、当該画像データの格納位置を前記仮想マシンにより直接変更できないようにした固定アドレスメモリ領域を有するメモリと、
    前記仮想マシンが前記可変アドレスメモリ領域のオブジェクトにアクセスするために利用する第1のオブジェクト管理情報および前記仮想マシンが前記固定アドレス領域の画像データをオブジェクトとして読み出すために利用する第2のオブジェクト管理情報を記憶するオブジェクト管理情報記憶部と
    を備え、
    前記仮想マシンが、
    前記可変アドレスメモリ領域に前記オブジェクトを生成すると共に、予め内部のデータ構造を定義したクラス情報を含んだクラスライブラリを用いて当該オブジェクトに対応するクラス情報および前記オブジェクトの格納位置に関連する情報を含む第1のオブジェクト管理情報を生成し、前記オブジェクトに対する前記第1のオブジェクト管理情報を前記オブジェクト管理情報記憶部に記録する第1の生成部と、
    前記仮想マシンからのダウンロード要求を受け、前記ダウンロード管理部が前記固定アドレスメモリ領域に画像データをダウンロードする場合、前記ダウンロード管理部からの生成要求に従って、前記クラスライブラリに含まれるクラス情報であって、当該画像データに対応するクラス情報および前記画像データの格納位置に関連する情報を含む前記第2のオブジェクト管理情報を生成すると共に、前記画像データに対する前記第2のオブジェクト管理情報を前記オブジェクト管理情報記憶部に記録する第2の生成部と
    を有することを特徴とするメモリ管理装置において、
    前記仮想マシンが、
    前記ダウンロードされた画像データのサイズがしきい値以上の場合に、当該画像データを前記可変アドレスメモリ領域にコピーしないと判定する判定部を更に有し、
    前記ダウンロード管理部から前記ダウンロードされた画像データに対する前記第2のオブジェクト管理情報の生成要求があった場合、前記判定部は当該画像データを前記可変アドレスメモリ領域にコピーしないかどうかを判定し、前記判定部により前記ダウンロードされた画像データを前記可変アドレスメモリ領域にコピーしないと判定された場合に、前記第2の生成部は、前記ダウンロードされた画像データに対する前記第2のオブジェクト管理情報を生成すると共に、該第2のオブジェクト管理情報を前記オブジェクト管理情報記憶部に記録することを特徴とするメモリ管理装置。
  2. 前記第1のオブジェクト管理情報に含まれるオブジェクトの格納位置に関連する情報は前記可変アドレスメモリ領域におけるオブジェクトのアドレスを示すポインタであり、
    前記第2のオブジェクト管理情報に含まれる前記画像データの格納位置に関連する情報は前記固定アドレスメモリ領域における前記画像データのアドレスを示すポインタである請求項1記載のメモリ管理装置。
  3. 前記判定部は、前記ダウンロードされた画像データのサイズがしきい値より小さい場合に、当該画像データを前記可変アドレスメモリ領域にコピーすると判定することを特徴とする請求項1記載のメモリ管理装置。
  4. 前記仮想マシンおよび前記ダウンロード管理部から前記固定アドレスメモリ領域にダウンロードされた画像データの削除要求がある場合、前記削除要求に対応する前記固定アドレスメモリ領域にダウンロードされた画像データを削除すると共に、当該画像データに対応する第2のオブジェクト管理情報を前記オブジェクト管理情報記憶部から削除する削除部をさらに有することを特徴とする請求項1記載のメモリ管理装置。
  5. 前記オブジェクト指向型プログラムはJava(登録商標)言語で記述されていることを特徴とする請求項1記載のメモリ管理装置。
JP2008089067A 2000-12-11 2008-03-31 メモリ管理装置、メモリ管理方法、メモリ管理プログラム及び該プログラムを記録したコンピュータ読み取り可能な記録媒体 Expired - Lifetime JP4295805B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008089067A JP4295805B2 (ja) 2000-12-11 2008-03-31 メモリ管理装置、メモリ管理方法、メモリ管理プログラム及び該プログラムを記録したコンピュータ読み取り可能な記録媒体

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000375632 2000-12-11
JP2008089067A JP4295805B2 (ja) 2000-12-11 2008-03-31 メモリ管理装置、メモリ管理方法、メモリ管理プログラム及び該プログラムを記録したコンピュータ読み取り可能な記録媒体

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2001375942A Division JP4132803B2 (ja) 2000-12-11 2001-12-10 メモリ管理装置、及びメモリ管理方法

Publications (2)

Publication Number Publication Date
JP2008234668A true JP2008234668A (ja) 2008-10-02
JP4295805B2 JP4295805B2 (ja) 2009-07-15

Family

ID=18844617

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008089067A Expired - Lifetime JP4295805B2 (ja) 2000-12-11 2008-03-31 メモリ管理装置、メモリ管理方法、メモリ管理プログラム及び該プログラムを記録したコンピュータ読み取り可能な記録媒体

Country Status (4)

Country Link
US (1) US6934821B2 (ja)
EP (2) EP1213649B1 (ja)
JP (1) JP4295805B2 (ja)
DE (2) DE60100932T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100959100B1 (ko) 2008-04-25 2010-05-26 삼성에스디에스 주식회사 BACnet오브젝트를 관리하는 장치 및 방법
JP2015503799A (ja) * 2011-12-29 2015-02-02 オラクル・インターナショナル・コーポレイション 埋込まれたプロセス通信のための仮想チャネル

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6865738B2 (en) * 2002-10-08 2005-03-08 Sun Microsystems, Inc. Method and apparatus for managing independent asynchronous I/O operations within a virtual machine
US7523169B1 (en) * 2003-02-28 2009-04-21 Verizon Data Services Llc Method and system for mapping network data for network database access
US7526515B2 (en) * 2004-01-21 2009-04-28 International Business Machines Corporation Method and system for a grid-enabled virtual machine with movable objects
WO2008017204A1 (en) * 2006-08-01 2008-02-14 Intel Corporation Heap manager for a multitasking virtual machine
WO2014044403A2 (en) * 2012-09-24 2014-03-27 Giesecke & Devrient Gmbh A security module and a method for optimum memory utilization
KR101703984B1 (ko) * 2014-07-18 2017-02-09 주식회사 큐램 메모리 처리 방법, 및 메모리 처리 시스템

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5212778A (en) * 1988-05-27 1993-05-18 Massachusetts Institute Of Technology Message-driven processor in a concurrent computer
WO1995018569A1 (en) * 1994-01-07 1995-07-13 Keravision, Inc. System for inserting material into corneal stroma
US5956509A (en) * 1995-08-18 1999-09-21 Microsoft Corporation System and method for performing remote requests with an on-line service network
US5978894A (en) * 1995-11-27 1999-11-02 Hitachi, Ltd. Method of interprocessor data transfer using a network, virtual addresses and paging, a buffer, flags, data transfer status information and user accessible storage areas in main memory
US6026474A (en) * 1996-11-22 2000-02-15 Mangosoft Corporation Shared client-side web caching using globally addressable memory
US5873105A (en) * 1997-06-26 1999-02-16 Sun Microsystems, Inc. Bounded-pause time garbage collection system and method including write barrier associated with a source instance of a partially relocated object
US6209003B1 (en) * 1998-04-15 2001-03-27 Inktomi Corporation Garbage collection in an object cache
US6266754B1 (en) * 1998-05-29 2001-07-24 Texas Instruments Incorporated Secure computing device including operating system stored in non-relocatable page of memory
US20020108025A1 (en) * 1998-10-21 2002-08-08 Nicholas Shaylor Memory management unit for java environment computers
JP3548777B2 (ja) 1998-10-28 2004-07-28 オムロン株式会社 コントロール制御装置
US6366921B1 (en) * 1999-02-09 2002-04-02 International Business Machines Corporation System and method for data manipulation in a dynamic object-based format
US6629113B1 (en) * 1999-06-30 2003-09-30 International Business Machines Corporation Method and system for dynamically adjustable and configurable garbage collector
US6817011B1 (en) * 1999-12-14 2004-11-09 International Business Machines Corporation Memory allocation profiling to discover high frequency allocators
US6738977B1 (en) * 2000-05-31 2004-05-18 International Business Machines Corporation Class sharing between multiple virtual machines
US6865657B1 (en) * 2000-06-02 2005-03-08 Sun Microsystems, Inc. Garbage collector for a virtual heap
US6862674B2 (en) * 2002-06-06 2005-03-01 Sun Microsystems Methods and apparatus for performing a memory management technique

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100959100B1 (ko) 2008-04-25 2010-05-26 삼성에스디에스 주식회사 BACnet오브젝트를 관리하는 장치 및 방법
JP2015503799A (ja) * 2011-12-29 2015-02-02 オラクル・インターナショナル・コーポレイション 埋込まれたプロセス通信のための仮想チャネル

Also Published As

Publication number Publication date
US6934821B2 (en) 2005-08-23
DE60100932D1 (de) 2003-11-13
DE60114667D1 (de) 2005-12-08
JP4295805B2 (ja) 2009-07-15
DE60114667T2 (de) 2006-07-06
US20020095556A1 (en) 2002-07-18
DE60100932T2 (de) 2004-08-12
EP1213649A1 (en) 2002-06-12
EP1213649B1 (en) 2003-10-08
EP1359505B1 (en) 2005-11-02
EP1359505A1 (en) 2003-11-05

Similar Documents

Publication Publication Date Title
JP4295805B2 (ja) メモリ管理装置、メモリ管理方法、メモリ管理プログラム及び該プログラムを記録したコンピュータ読み取り可能な記録媒体
RU2501176C2 (ru) Медиапроцессор для организации мультимедийных данных
JP5292473B2 (ja) 即時的にデータをチャンクにすることを用いたファイル入出力スケジューリング
EP1194838B1 (en) Methods and apparatus for implementing individual class loaders
US20110154333A1 (en) Machine system, information processing apparatus, method of operating virtual machine, and program
CA2373036A1 (en) Methods and apparatus for managing an application according to an application lifecycle
JP2006031480A (ja) 情報処理システム及び情報処理方法、並びにコンピュータプログラム
EP1557757A2 (en) System and method for inducing asynchronous behavioral changes in a managed application process
EP1378822A1 (en) Data processing system and data processing method, information processing device and information processing method, and storage medium
JPH10320248A (ja) 実行時ルックアップ及び読出し専用アクセス用バイナリイメージへファイルを埋込むための装置及びその方法
US11467734B2 (en) Managing swap area in memory using multiple compression algorithms
US20030161468A1 (en) Storage device and system
CN114501134A (zh) 一种iOS跨页面视频播放方法、装置、设备及存储介质
CA3200330A1 (en) Systems and methods for virtual gpu-cpu memory orchestration
US20040168163A1 (en) System and method for shortening class loading process in Java program
US7028287B2 (en) Method and apparatus for facilitating compact object headers
JP4132803B2 (ja) メモリ管理装置、及びメモリ管理方法
JP4792100B2 (ja) ファイル共有システム
JP4504756B2 (ja) Java(登録商標名)実行環境におけるメモリ管理方法及びメモリ管理プログラム
JP2007094871A (ja) メモリ管理装置及びメモリ管理方法
JP4589095B2 (ja) プログラム実行装置及びプログラム実行方法及びデータ領域管理プログラム
JP3347501B2 (ja) 記録再生処理装置、記録処理装置、再生処理装置、記録再生処理方法、記録処理方法および再生処理方法
JPH0756639B2 (ja) 画像用仮想記憶管理方法
JPS63121929A (ja) スタツク処理方式
JPH04199429A (ja) プロセス管理装置

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090318

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090410

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120417

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130417

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130417

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140417

Year of fee payment: 5