JP4504756B2 - Memory management method and memory management program in Java (registered trademark) execution environment - Google Patents

Memory management method and memory management program in Java (registered trademark) execution environment Download PDF

Info

Publication number
JP4504756B2
JP4504756B2 JP2004217858A JP2004217858A JP4504756B2 JP 4504756 B2 JP4504756 B2 JP 4504756B2 JP 2004217858 A JP2004217858 A JP 2004217858A JP 2004217858 A JP2004217858 A JP 2004217858A JP 4504756 B2 JP4504756 B2 JP 4504756B2
Authority
JP
Japan
Prior art keywords
java
registered trademark
type
memory management
memory
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.)
Expired - Fee Related
Application number
JP2004217858A
Other languages
Japanese (ja)
Other versions
JP2006039878A (en
Inventor
哲之 小林
Original Assignee
株式会社アプリックス
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 株式会社アプリックス filed Critical 株式会社アプリックス
Priority to JP2004217858A priority Critical patent/JP4504756B2/en
Publication of JP2006039878A publication Critical patent/JP2006039878A/en
Application granted granted Critical
Publication of JP4504756B2 publication Critical patent/JP4504756B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、Java(登録商標名)実行環境におけるメモリ管理方法及びメモリ管理プログラムに関するものである。 The present invention relates to a memory management method and a memory management program in a Java ( registered trademark ) execution environment.

Sun Microsystems社によって開発されたJava(登録商標名)技術は、特にインターネットの世界を中心に発展し、その後、サーバサイドJava(登録商標名)やアプリケーションソフトウェアの開発に利用され、最近では、携帯電話にも利用されている。携帯電話で利用されるJava(登録商標名)プログラムでは、音声、静止画、動画などのマルチメディアデータを取り扱うことが多い。特に昨今では、通信速度の高速化や表示画面の高精細化に伴ってこれらのマルチメディアデータのサイズは急激に増加する傾向にある。 The Java ( registered trademark ) technology developed by Sun Microsystems Co., Ltd. has been developed mainly in the world of the Internet, and then used for the development of server-side Java ( registered trademark ) and application software. It is also used. Java ( registered trademark ) programs used in mobile phones often handle multimedia data such as audio, still images, and moving images. Especially in recent years, the size of these multimedia data tends to increase rapidly as the communication speed increases and the display screen becomes higher in definition.

このようなマルチメディアデータを再生したり加工する場合、Java(登録商標名)実行環境から独立した外部のネイティブプログラムによってこの処理が行われるのが一般的である。したがってこの場合、Java(登録商標名)実行環境とネイティブプログラムとの間のデータの連携動作が必要になる。ここでネイティブプログラムの例としては、音声や動画などの再生用プログラムとしてのデコーダ、記録用プログラムとしてのエンコーダさらには、通信用プロトコルスタックがある。 When such multimedia data is played back or processed, this processing is generally performed by an external native program that is independent of the Java ( registered trademark ) execution environment. Therefore, in this case, a data link operation between the Java ( registered trademark ) execution environment and the native program is required. Here, examples of the native program include a decoder as a reproduction program for audio and moving images, an encoder as a recording program, and a communication protocol stack.

Java(登録商標名)実行環境が備えるメモリ管理機構は、Java(登録商標名)オブジェクトを効率良く扱えるように設計されており、使用されなくなったメモリを回収するためのガーベジコレクションの機能や、メモリのフラグメンテーションを防ぐためにコンパクションの機構を備えている。 The memory management mechanism provided in the Java ( registered trade name ) execution environment is designed to handle Java ( registered trade name ) objects efficiently, and has a garbage collection function for collecting memory that is no longer used, It has a compaction mechanism to prevent fragmentation.

しかし、このようなメモリ管理機構で管理されているJava(登録商標名)オブジェクトの中には、他のJava(登録商標名)オブジェクトと同様に管理することができないものが存在する場合がある。 However, some Java ( registered trademark ) objects managed by such a memory management mechanism may not be managed in the same manner as other Java ( registered trademark ) objects.

例えば、Java(登録商標名)実行環境とは非同期に動作するネイティブプログラムにより処理されるJava(登録商標名)オブジェクトがある場合、処理の途中でメモリ管理機構によるコンパクションが行なわれると、コンパクションにより処理中のデータが移動してネイティブプログラムから読み出せなくなってしまうという問題が生じる。 For example, when there is a Java ( registered trademark ) object processed by a native program that operates asynchronously with the Java ( registered trademark ) execution environment, if compaction is performed by the memory management mechanism in the middle of processing, processing is performed by compaction. There is a problem that the data inside moves and cannot be read from the native program.

このような問題に対処するために、Java(登録商標名)プログラムが扱っているデータをネイティブプログラムにより処理する場合には、当該データを、Java(登録商標名)プログラム用に割り当てられたヒープ領域とは別に確保したメモリ領域にコピーしてから、ネイティブプログラムによる処理を行う方法がある。 In order to deal with such a problem, when data handled by a Java ( registered trademark ) program is processed by a native program, the heap area allocated for the Java ( registered trademark ) program is used. There is a method of performing processing by a native program after copying to a secured memory area.

上記の方法では、さらに、ネイティブプログラムがデータを更新した後に、当該ネイティブプログラムからJava(登録商標名)プログラムに処理を戻す場合には、データの整合性をとるために、ネイティブプログラムが更新したデータをヒープ領域にコピーして書き戻すことを行っている。 In the above method, when the native program updates the data and then returns the processing from the native program to the Java ( registered trademark ) program, the data updated by the native program in order to ensure data consistency. Is copied to the heap area and written back.

このように、Java(登録商標名)プログラムが利用するヒープ領域と、ネイティブプログラムが利用する別のメモリ領域との間でデータをコピーする処理が発生すると、システムのメモリ容量が多量に消費されるとともに、コピーに要する時間だけ処理が遅延するという問題が発生する。特に、メモリサイズの大きい音声や動画のデータを扱う場合には、メモリ容量の消費はきわめて大きなものとなり、処理の遅延も顕著なものとなる。 As described above, when a process of copying data occurs between the heap area used by the Java ( registered trademark ) program and another memory area used by the native program, a large amount of memory capacity of the system is consumed. At the same time, there arises a problem that processing is delayed by the time required for copying. In particular, when handling audio or moving image data having a large memory size, the memory capacity is extremely large, and the processing delay becomes significant.

本発明は、このような課題に着目してなされたものであり、その目的とするところは、Java(登録商標名)実行環境で利用されるメモリ管理機構およびメモリ管理プログラムであって、特性の異なるデータであっても効率よく管理することができ、特にネイティブプログラムとの間で効率の良いデータの連携を行うことができるメモリ管理機構およびメモリ管理プログラムを提供することにある。 The present invention has been made paying attention to such a problem, and an object of the present invention is a memory management mechanism and a memory management program used in a Java ( registered trademark ) execution environment. An object of the present invention is to provide a memory management mechanism and a memory management program capable of efficiently managing even different data, and particularly capable of efficiently linking data with a native program.

上記の目的を達成するために、本発明者は研究を重ねた結果、ネイティブプログラムから利用される頻度がJava(登録商標名)オブジェクトのデータ型によって相違すること、特にbyte[]のJava(登録商標名)オブジェクトがネイティブプログラムから利用される頻度が高いことを見出した。 In order to achieve the above object, the present inventor has conducted research, and the frequency used from the native program differs depending on the data type of the Java ( registered trademark ) object, in particular, Java [ registered by byte []. It was found that the frequency of using the ( trade name ) object is high from the native program.

本発明は、上記知見に鑑みてなされたものであって、第1の発明にかかるメモリ管理方法は、Java(登録商標名)実行環境におけるメモリ管理方法であって、Java(登録商標名)オブジェクトをヒープ領域にアロケートする要求が発生したときに、データ型によって、前記Java(登録商標名)オブジェクトを前記第1のタイプのJava(登録商標名)オブジェクトと、前記第2のタイプのJava(登録商標名)オブジェクトに分類するオブジェクト分類ステップと、前記第1のタイプのJava(登録商標名)オブジェクトがアロケートされる第1のメモリ領域に空きがない場合にはこの第1のメモリ領域に対して第1のコンパクション処理を実行し、前記第2のタイプのJava(登録商標名)オブジェクトがアロケートされる第2のメモリ領域に空きがない場合にはこの第2のメモリ領域に対して、前記第1のコンパクション処理とは異なる第2のコンパクション処理を実行するコンパクション実行ステップと、前記第1のコンパクション処理により空きが発生した前記第1のメモリ領域に前記第1のタイプのJava(登録商標名)オブジェクトをアロケートするとともに、前記第2のコンパクション処理により空きが発生した前記第2のメモリ領域に前記第2のタイプのJava(登録商標名)オブジェクトをアロケートするオブジェクトアロケーションステップと、を具備する。 The present invention has been made in view of the above knowledge, and the memory management method according to the first invention is a memory management method in a Java ( registered trademark ) execution environment, and is a Java ( registered trademark ) object. When a request for allocating to the heap area occurs, depending on the data type, the Java ( registered trademark ) object is replaced with the first type Java ( registered trademark ) object and the second type Java (registered). (Trademark name) object classification step, and when there is no free space in the first memory area to which the first type Java ( registered trade name ) object is allocated, the first memory area perform first compaction processing, the second type of Java (registered trademark) objects allocated A compaction execution step for executing a second compaction process different from the first compaction process for the second memory area when there is no free space in the second memory area; and the first compaction The first type Java ( registered trademark ) object is allocated to the first memory area that has been freed by processing, and the second memory area has been freed by the second compaction process. an object allocation step of allocating a second type of Java (registered trademark) objects, comprising a.

また、第2の発明は、第1の発明にかかるメモリ管理方法において、前記第2のメモリ領域には、所定のマークが付与されたJava(登録商標名)オブジェクトがアロケートされており、前記第2のコンパクション処理では、前記マークが付与されたJava(登録商標名)オブジェクトに対するコンパクション処理を行わない。 According to a second invention, in the memory management method according to the first invention, a Java ( registered trademark ) object to which a predetermined mark is assigned is allocated in the second memory area. In the compaction process 2, the compaction process is not performed on the Java ( registered trademark ) object to which the mark is added .

また、第3の発明は、第2の発明にかかるメモリ管理方法において、ネイティブプログラムから利用されるJava(登録商標名)オブジェクトに所定のマークを付与する。 According to a third aspect, in the memory management method according to the second aspect, a predetermined mark is assigned to a Java ( registered trademark ) object used from a native program.

また、第4の発明は、第1から第3のいずれか1つの発明にかかるメモリ管理方法において、前記第2のタイプのJava(登録商標名)オブジェクトは、byteの1次元配列のデータ型をもつ。 According to a fourth aspect of the present invention, in the memory management method according to any one of the first to third aspects, the second type Java ( registered trademark ) object has a data type of a one-dimensional array of bytes. Have.

また、第5の発明は、第1から第4のいずれか1つの発明にかかるメモリ管理方法において、前記byteの1次元配列をもつJava(登録商標名)オブジェクトは、音声データ、画像データあるいは通信データである。 The fifth invention is the memory management method according to any one of the first to fourth inventions, wherein the Java ( registered trademark ) object having a one-dimensional array of bytes is audio data, image data or communication. It is data.

また、第6の発明にかかるメモリ管理プログラムは、ネイティブプログラムとの間でデータの連携を行うJava(登録商標名)実行環境におけるメモリ管理プログラムであって、処理手段に、Java(登録商標名)オブジェクトをヒープ領域にアロケートする要求が発生したときに、前記ネイティブプログラムにより利用される頻度に応じて、前記Java(登録商標名)オブジェクトを第1のタイプのJava(登録商標名)オブジェクトと、第2のタイプのJava(登録商標名)オブジェクトに分類するオブジェクト分類処理と、前記第1のタイプのJava(登録商標名)オブジェクトがアロケートされる第1のメモリ領域に空きがない場合にはこの第1のメモリ領域に対して第1のコンパクション処理を実行し、前記第2のタイプのJava(登録商標名)オブジェクトがアロケートされる第2のメモリ領域に空きがない場合にはこの第2のメモリ領域に対して、前記第1のコンパクション処理とは異なる第2のコンパクション処理を実行するコンパクション処理と、前記第1のコンパクション処理により空きが発生した前記第1のメモリ領域に前記第1のタイプのJava(登録商標名)オブジェクトをアロケートするとともに、前記第2のコンパクション処理により空きが発生した前記第2のメモリ領域に前記第2のタイプのJava(登録商標名)オブジェクトをアロケートするオブジェクトアロケーション処理と、を実行させる。 A memory management program according to a sixth aspect of the present invention is a memory management program in a Java ( registered trademark ) execution environment for linking data with a native program, and the processing means includes a Java ( registered trademark ). When a request for allocating an object to the heap area occurs, the Java ( registered trademark ) object is replaced with a first type Java ( registered trademark ) object according to the frequency used by the native program. Object classification processing for classifying into two types of Java ( registered trademark ) objects, and the first memory area to which the first type of Java ( registered trademark ) objects are allocated is empty. A first compaction process is performed on one memory area, and the second tag If there is no space in the second memory area flops Java (registered trademark) objects are allocated to this second memory area, a second compaction processing different from the first compaction processing The compaction process to be executed and the first type Java ( registered trademark ) object are allocated to the first memory area where a space is generated by the first compaction process, and the space is generated by the second compaction process. And an object allocation process for allocating the second type Java ( registered trademark ) object in the second memory area where the occurrence of the error occurs.

また、第7の発明は、第6の発明にかかるメモリ管理プログラムにおいて、前記第2のメモリ領域には、所定のマークが付与されたJava(登録商標名)オブジェクトがアロケートされており、前記第2のコンパクション処理では、前記マークが付与されたJava(登録商標名)オブジェクトに対するコンパクション処理を行わない。 According to a seventh invention, in the memory management program according to the sixth invention, a Java ( registered trademark ) object to which a predetermined mark is given is allocated in the second memory area. In the compaction process 2, the compaction process is not performed on the Java ( registered trademark ) object to which the mark is added .

また、第8の発明は、第7の発明にかかるメモリ管理プログラムにおいて、ネイティブプログラムから利用されるJava(登録商標名)オブジェクトに所定のマークを付与する。 In addition, according to an eighth aspect, in the memory management program according to the seventh aspect, a predetermined mark is assigned to a Java ( registered trademark ) object used from a native program.

また、第9の発明は、第7または第8の発明にかかるメモリ管理プログラムにおいて、前記第2のタイプのJava(登録商標名)オブジェクトは、byteの1次元配列のデータ型をもつ。 According to a ninth invention, in the memory management program according to the seventh or eighth invention, the second type Java ( registered trademark ) object has a data type of a one-dimensional array of bytes.

また、第10の発明は、第6から第9のいずれか1つの発明にかかるメモリ管理プログラムにおいて、前記byteの1次元配列をもつJava(登録商標名)オブジェクトは、音声データ、画像データあるいは通信データである。 The tenth invention is the memory management program according to any one of the sixth to ninth inventions, wherein the Java ( registered trademark ) object having a one-dimensional array of bytes is audio data, image data or communication data. It is data.

本発明によれば、Java(登録商標名)オブジェクトのデータ型に応じて、互いに異なるコンパクション処理が施されるメモリ領域を使い分けることができるので、オブジェクトのデータ型に応じて異なるコンパクション処理を適用することができ、これにより利用される形態や性質が異なるオブジェクトが存在しても、効率よくメモリ管理を行うことが可能である。 According to the present invention, different compaction processes can be used depending on the data type of the Java ( registered trademark ) object, so that different compaction processes are applied depending on the data type of the object. Therefore, even if there are objects having different forms and properties, memory management can be performed efficiently.

本発明は、特にネイティブプログラムによって利用される頻度が高いデータ型のJava(登録商標名)オブジェクトとそれ以外のオブジェクトとで、互いに異なるコンパクション処理が施されるメモリ領域を使い分ける場合に適用することが好適である。この場合には、ネイティブプログラムによって利用されるJava(登録商標名)オブジェクトについてはコンパクション処理を行わないようにすることで、コンパクション処理時のオブジェクト移動に対処するためのメモリ領域の確保やコピー動作が不要になり、Java(登録商標名)プログラムとネイティブプログラムとのデータ連携を極めて効率良く行うことが可能になる。 The present invention is particularly applicable to the case where a data type Java ( registered trademark ) object frequently used by a native program and other objects are used in different memory areas to be subjected to different compaction processes. Is preferred. In this case, the Java ( registered trademark ) object used by the native program is not subjected to the compaction process, so that a memory area can be secured and a copy operation can be performed to cope with the object movement during the compaction process. This eliminates the need for data linkage between the Java ( registered trademark ) program and the native program, and enables extremely efficient data linkage.

まず、本実施形態の概略を説明する。Java(登録商標名)実行環境において、多くのJava(登録商標名)オブジェクトはJava(登録商標名)プログラムのみから利用されるものであり、ネイティブプログラムとの間でデータの連携を行う場合に、当該ネイティブプログラムにより利用されるJava(登録商標名)オブジェクトはごく一部である。ここで、ネイティブプログラムで利用されるJava(登録商標名)オブジェクトについてはコンパクション処理によるアドレスの移動に対処する必要があるものの、その他のJava(登録商標名)オブジェクトについてはそのような対処を必要としない。したがって、それらを区別して管理することで効率の良いメモリ運用を実現することが可能である。 First, an outline of the present embodiment will be described. In the Java ( registered trademark name ) execution environment, many Java ( registered trademark name ) objects are used only by Java ( registered trademark name ) programs, and when data is linked with native programs, Only a few Java ( registered trademark ) objects are used by the native program. Here, for Java ( registered trademark ) objects used in native programs, it is necessary to cope with address movement by compaction processing, but for other Java ( registered trademark ) objects, such a countermeasure is required. do not do. Therefore, efficient memory operation can be realized by distinguishing and managing them.

本発明者がJava(登録商標名)と連携するネイティブプログラムを注意深く観察した結果、ネイティブプログラムによって利用されるJava(登録商標名)オブジェクトは、殆どの場合にデータ型としてbyteの1次元配列をもつことがわかった。byteの1次元配列をもつJava(登録商標名)オブジェクト(byte[]オブジェクト)の具体例としては、音声データや画像(動画を含む)データといったマルチメディアデータ、通信データなどが挙げられる。 The present inventors have Java (registered trademark) and a result of careful observation native program that work, Java utilized by native program (registered trademark) object has a one-dimensional array of byte as the data type in most cases I understood it. Specific examples of Java ( registered trademark ) objects (byte [] objects) having a one-dimensional array of bytes include multimedia data such as audio data and image (including moving image) data, communication data, and the like.

そこで本実施形態では、通常のJava(登録商標名)オブジェクトは第1のタイプのJava(登録商標名)オブジェクト、byte[]オブジェクトは第2のタイプのJava(登録商標名)オブジェクトとして分類し、第1のタイプのJava(登録商標名)オブジェクトはヒープ領域内の第1の領域に格納し、第2のタイプのJava(登録商標名)オブジェクトはヒープ領域内の第2の領域に格納するようにする。そして、第2の領域内のbyte[]オブジェクトのうち、ネイティブプログラムにより利用されるJava(登録商標名)オブジェクトについては、ネイティブプログラムとのデータ連携の間コンパクション処理時の移動を禁止する所定のマークを付与する。ここでは移動させないJava(登録商標名)オブジェクトについてはマークビットをON状態にセットすることによりロックする。ロックされたJava(登録商標名)オブジェクトは後述のようにコンパクション処理の対象外となり移動されることはない。ネイティブプログラムとのデータ連携が終了した後は、マークビットがOFF状態とされて、ロックが解除される。 Therefore, in the present embodiment, a normal Java ( registered trademark ) object is classified as a first type Java ( registered trademark ) object, and a byte [] object is classified as a second type Java ( registered trademark ) object. The first type Java ( registered trade name ) object is stored in the first area in the heap area, and the second type Java ( registered trade name ) object is stored in the second area in the heap area. To. Among the byte [] objects in the second area, a Java ( registered trademark ) object used by the native program is a predetermined mark that prohibits movement during compaction processing during data linkage with the native program. Is granted. Here, Java ( registered trademark ) objects that are not moved are locked by setting the mark bit to the ON state. The locked Java ( registered trademark ) object is not subjected to compaction processing as described later, and is not moved. After the data linkage with the native program is completed, the mark bit is turned off and the lock is released.

なお、コンパクション処理時の移動を許可するか禁止するかを区別する方法として、所定のマークをJava(登録商標名)オブジェクトにそれぞれ付与するのでなく、Java(登録商標名)オブジェクトごとに移動の許可あるいは禁止の情報を書き込んだ管理テーブルを用いるようにしても良い。 As a method to distinguish whether to permit or inhibit movement during the compaction process, instead of granting each a predetermined mark on Java (registered trademark) objects, authorization Navigate by Java (registered trademark) objects Alternatively, a management table in which prohibition information is written may be used.

新たなJava(登録商標名)オブジェクトをヒープ領域にアロケートする要求が発生したときに、アロケートするために十分なメモリ領域が存在しない場合には、使用されなくなったメモリを回収するためのガーベジコレクション処理や、細かく分断された使用中メモリ領域をまとめて連続したメモリ領域にするコンパクション処理を行うことになるが、この場合、第1のタイプのJava(登録商標名)オブジェクトが格納されている第1の領域ではコンパクション処理によってすべてのオブジェクトが移動され、フラグメンテーションの発生が防止される。一方、第2のタイプのJava(登録商標名)オブジェクトが格納された第2の領域に対するコンパクション処理ではこれとは異なるコンパクション処理が実行される。すなわち、ここでのコンパクション処理は、マークビットがON状態にセットされてロックされているオブジェクトについては移動させず、それ以外のオブジェクトのみを移動させることで行われる。 When a request for allocating a new Java ( registered trademark ) object to the heap area occurs, if there is not enough memory area to allocate, garbage collection processing for collecting memory that is no longer used Alternatively, the compaction processing is performed so that the memory areas in use that are finely divided are combined into a continuous memory area. In this case, the first type Java ( registered trademark ) object in which the first type is stored is stored. In this area, all objects are moved by the compaction process, and fragmentation is prevented from occurring. On the other hand, in the compaction process for the second area in which the second type Java ( registered trademark ) object is stored, a different compaction process is executed. That is, the compaction processing here is performed by moving only the other objects without moving the objects that are locked with the mark bit set to the ON state.

そして、上記コンパクション処理により空きが発生した第1のメモリ領域に第1のタイプのJava(登録商標名)オブジェクトがアロケートされ、上記コンパクション処理により空きが発生した第2のメモリ領域に第2のタイプのJava(登録商標名)オブジェクトがアロケートされる。 Then, a first type Java ( registered trademark ) object is allocated in the first memory area where a space is generated by the compaction process, and a second type is stored in the second memory area where a space is generated by the compaction process. Java ( registered trademark ) objects are allocated.

このように本実施形態においては、ネイティブプログラムにより利用される頻度の高いbyte[]オブジェクトは第2のメモリ領域に配置され、さらにネイティブプログラムにより実際に利用されている間は当該オブジェクトのマークビットがON状態にセットされる。そして、第2のメモリ領域に対するコンパクション処理は、マークビットがON状態のオブジェクトを移動させないので、ネイティブプログラムにより利用されているオブジェクトがコンパクション処理により移動されることはない。したがって、コンパクション処理によるオブジェクト移動に対応するために新たなメモリ領域をヒープ領域外に確保してコピーする動作が不要になり、これによってネイティブプログラムとのデータ連携を効率良く行うことが可能になる。この場合、byte[]オブジェクト以外のオブジェクトについては通常のコンパクション処理が行われるので、従来のJava(登録商標名)実行環境におけるメモリ管理と同様のメモリ管理が可能である。 As described above, in this embodiment, the byte [] object that is frequently used by the native program is arranged in the second memory area, and the mark bit of the object is set while the object is actually used by the native program. Set to ON state. The compaction process for the second memory area does not move the object whose mark bit is in the ON state. Therefore, the object used by the native program is not moved by the compaction process. Therefore, an operation for securing and copying a new memory area outside the heap area in order to cope with object movement by compaction processing becomes unnecessary, thereby enabling efficient data linkage with the native program. In this case, normal compaction processing is performed for objects other than the byte [] object, so that memory management similar to memory management in the conventional Java ( registered trademark ) execution environment is possible.

第2のメモリ領域に適用されるメモリ管理(特にコンパクション処理)はJava(登録商標名)オブジェクトがロックされているか否かの判断を伴うためオーバーヘッドを伴うが、第1のメモリ領域には従来通りのメモリ管理が適用されるため、その影響は小さく抑えることができる。 Memory management (particularly compaction processing) applied to the second memory area involves an overhead because it involves determining whether or not the Java ( registered trademark ) object is locked. Since the memory management is applied, the influence can be reduced.

また、ネイティブプログラムから利用されるJava(登録商標名)オブジェクトは、特にマルチメディアデータであると容量が大きい場合が多く、このようなJava(登録商標名)オブジェクトがJava(登録商標名)実行環境の利用するヒープ領域全体に分散してロックされるとフラグメンテーションの発生が問題となる。しかし、本実施形態では、ネイティブから利用されるJava(登録商標名)オブジェクトは主として第2のメモリ領域に配置されるので、フラグメンテーションが発生したとしてもその影響は第2のメモリ領域に限定されたものとすることができる。 In addition, Java ( registered trademark name ) objects used from native programs often have a large capacity especially in the case of multimedia data, and such Java ( registered trademark name ) objects have a Java ( registered trademark name ) execution environment. Generation of fragmentation becomes a problem when distributed and locked over the entire heap area. However, in this embodiment, the Java ( registered trademark ) object used from the native is mainly arranged in the second memory area, so even if fragmentation occurs, the influence is limited to the second memory area. Can be.

なお、byte[]オブジェクト以外のオブジェクトをネイティブプログラムから利用する場合には、そのようなオブジェクトは第1のメモリ領域に配置されているため、従来と同様にヒープ領域外部にコピーする必要があるが、その頻度は極めて低いので問題はない。   Note that when an object other than the byte [] object is used from a native program, such an object must be copied to the outside of the heap area as in the conventional case because it is located in the first memory area. Because the frequency is very low, there is no problem.

また、通常のJava(登録商標名)オブジェクトと、ネイティブプログラムと連携するJava(登録商標名)オブジェクトとでは、サイズや生存期間の傾向が異なるので、ネイティブプログラムと連携する頻度が高いデータと低いデータとを分離して管理することでメモリ管理の効率も向上する。 In addition, since normal Java ( registered trademark name ) objects and Java ( registered trademark name ) objects that link with native programs have different sizes and lifetime trends, data that is frequently linked with native programs and data that is low The efficiency of memory management is also improved.

さらに、Java(登録商標名)言語仕様に対して新たな拡張を加えたわけではないので、Java(登録商標名)実行環境側だけの修正で済み、既存のプログラムを修正する必要がない等、既存のプログラムとの親和性を維持することができる。 In addition, since there is no new extension to the Java ( registered trademark name ) language specification, it is only necessary to modify the Java ( registered trademark ) execution environment, and there is no need to modify existing programs. Affinity with other programs can be maintained.

以下、図面を参照して本発明の実施形態を詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

図1は、本発明を実施するためのハードウェア構成の説明図であり、ここでは、本実施形態のJava(登録商標名)実行環境を搭載した組み込み機器(例えば携帯電話)のハードウェア構成を示している。図1において、メモリ11は種々のプログラムやデータを格納する部分である。入出力部13はユーザインタフェースとなる部分であり、入力キー、マイク、スピーカなどで構成される。表示部12は種々のメニューや動作状況等の情報を表示する部分である。CPU10は、装置各部の動作を制御する部分である。本実施形態で用いられるJava(登録商標名)オブジェクト分類機能、メモリ領域コンパクション機能、Java(登録商標名)オブジェクトアロケーション機能は、CPU10がメモリ11に格納された各種のプログラムを読み出して実行したときに仮想的に構築されるようになっている。 FIG. 1 is an explanatory diagram of a hardware configuration for carrying out the present invention. Here, the hardware configuration of an embedded device (for example, a mobile phone) equipped with the Java ( registered trademark ) execution environment of this embodiment is shown. Show. In FIG. 1, a memory 11 is a part for storing various programs and data. The input / output unit 13 serves as a user interface and includes input keys, a microphone, a speaker, and the like. The display unit 12 is a part for displaying information such as various menus and operation statuses. The CPU 10 is a part that controls the operation of each part of the apparatus. The Java ( registered trademark ) object classification function, the memory area compaction function, and the Java ( registered trademark ) object allocation function used in this embodiment are executed when the CPU 10 reads and executes various programs stored in the memory 11. Virtually constructed.

図2は、本発明を実施するためのソフトウェア構成の説明図である。図2に示すように、プラットフォーム(OS及びハードウェア)23上には、Java(登録商標名)実行環境としてVM(Virtual Machine)24、クラスライブラリ22、Java(登録商標名)アプリケーション20が搭載されている。VM24は、Java(登録商標名)バイトコードが格納されたクラスファイルをネイティブコードに変換しながら実行するプログラムである。 FIG. 2 is an explanatory diagram of a software configuration for carrying out the present invention. As shown in FIG. 2, a VM (Virtual Machine) 24, a class library 22, and a Java ( registered trademark ) application 20 are mounted on the platform (OS and hardware) 23 as a Java ( registered trademark ) execution environment. ing. The VM 24 is a program that is executed while converting a class file in which Java ( registered trademark ) bytecode is stored into native code.

なお、VM24は、Java(登録商標名)ヒープ領域25を有し、ここでは図3に示すように、通常のJava(登録商標名)オブジェクトがアロケートされる第1の領域25−1と、byte[]オブジェクトがアロケートされる第2の領域25−2とが設けられている。さらに、Java(登録商標名)実行環境とデータの連携(リード・ライト)を行うネイティブプログラムアプリケーション1(26)、2(27)が搭載されている。 The VM 24 has a Java ( registered trademark name ) heap area 25. As shown in FIG. 3, the VM 24 has a first area 25-1 to which a normal Java ( registered trademark name ) object is allocated, and a byte. [] A second area 25-2 where an object is allocated is provided. Furthermore, native program applications 1 (26) and 2 (27) for performing data linkage (read / write) with the Java ( registered trademark ) execution environment are installed.

図4は、Java(登録商標名)オブジェクトを本実施形態の方法によりアロケートする手順を示すフローチャートである。 FIG. 4 is a flowchart showing a procedure for allocating a Java ( registered trademark ) object by the method of this embodiment.

Java(登録商標名)オブジェクトをヒープ領域にアロケートする要求が発生したとき、CPU10は、当該Java(登録商標名)オブジェクトのデータ型がbyte[]であるか否かを判断し(ステップS1)、NOの場合、すなわち通常のJava(登録商標名)オブジェクトである場合にはJava(登録商標名)ヒープ領域25の第1の領域25−1に空きがあるか否かを判断する(ステップS2)。ここでの判断がYESの場合には第1の領域25−1に当該Java(登録商標名)オブジェクトをアロケートし(ステップS5)、その後、終了する。 When a request for allocating a Java ( registered trademark name ) object to the heap area occurs, the CPU 10 determines whether or not the data type of the Java ( registered trademark name ) object is byte [] (step S1). In the case of NO, that is, in the case of a normal Java ( registered trademark name ) object, it is determined whether or not there is an empty space in the first area 25-1 of the Java ( registered trademark ) heap area 25 (step S2). . If the determination here is YES, the Java ( registered trademark ) object is allocated to the first area 25-1 (step S5), and then the process ends.

また、ステップS2の判断がNOの場合には、第1、第2の領域25−1,25−2に対してガーベジコレクションを実行して使用されていない領域を開放するとともに、第1の領域25−1内の使用中のJava(登録商標名)オブジェクトを移動させるコンパクション処理を実行する(ステップS3)。次に、上記のガーベジコレクションとコンパクション処理により第1の領域25−1に空きが生成されたか否かを判断し(ステップS4)、YESの場合には第1の領域25−1にJava(登録商標名)オブジェクトをアロケートし(ステップS5)、その後、終了する。一方、ステップS4の判断がNOの場合には空き領域なしのエラーメッセージを表示して(ステップS6)、終了する。 If the determination in step S2 is NO, garbage collection is performed on the first and second areas 25-1 and 25-2 to release unused areas, and the first area A compaction process for moving the Java ( registered trade name ) object in use in 25-1 is executed (step S3). Next, it is determined whether or not an empty space has been generated in the first area 25-1 by the above garbage collection and compaction processing (step S4). If YES, Java ( registered) is registered in the first area 25-1. (Trade name ) object is allocated (step S5), and then the process ends. On the other hand, if the determination in step S4 is NO, an error message indicating no free space is displayed (step S6), and the process ends.

一方、ステップS1の判断がYESの場合には、Java(登録商標名)ヒープ領域25の第2の領域25−2に空きがあるか否かを判断する(ステップS7)。ここでの判断がYESの場合には第2の領域25−2に当該Java(登録商標名)オブジェクトをアロケートし(ステップS10)、その後、終了する。 On the other hand, if the determination in step S1 is YES, it is determined whether or not there is an empty space in the second area 25-2 of the Java ( registered trademark ) heap area 25 (step S7). If the determination here is YES, the Java ( registered trademark ) object is allocated to the second area 25-2 (step S10), and then the process ends.

また、ステップS7の判断がNOの場合には、第1、第2の領域25−1,25−2に対してガーベジコレクションを実行して使用されていない領域を開放するとともに、第2の領域25−2内の、ロックされていない使用中のJava(登録商標名)オブジェクトのみを移動させるコンパクション処理を実行する(ステップS8)。次に、上記のガーベジコレクションとコンパクション処理により第2の領域25−2に空きが生成されたか否かを判断し(ステップS9)、YESの場合には第2の領域25−2にJava(登録商標名)オブジェクトをアロケートし(ステップS10)、その後、終了する。一方、ステップS9の判断がNOの場合には空き領域なしのエラーメッセージを表示して(ステップS6)、終了する。 When the determination in step S7 is NO, garbage collection is performed on the first and second areas 25-1 and 25-2 to release unused areas, and the second area A compaction process for moving only the unlocked Java ( registered trademark ) object in 25-2 is executed (step S8). Next, it is determined whether or not an empty space is generated in the second area 25-2 by the garbage collection and compaction process (step S9). If YES, Java ( registered ) is stored in the second area 25-2. (Trade name ) object is allocated (step S10), and then the process ends. On the other hand, if the determination in step S9 is NO, an error message indicating no free space is displayed (step S6), and the process ends.

なお、本発明は、上記実施の形態に限らず種々変形が可能である。例えば、Java(登録商標名)の後継となる言語系が新たに提案された場合であっても、当該言語系が実行環境によるガーベジコレクションやコンパクションといったメモリ管理を想定したものであれば、本発明のメモリ管理方法およびメモリ管理プログラムを上記実施の形態と同様に適用することが可能である。また、ガーベジコレクションやコンパクションの方法にも制限はなく、適用可能な方法を適宜使用することができる。また、そのガーベジコレクションやコンパクションを行うタイミングも上記実施の形態に限られるものではなく、Java(登録商標名)オブジェクトをアロケートする要求発生のタイミングとは非同期にこれらを行うようにしてもよい。 The present invention is not limited to the above embodiment, and various modifications can be made. For example, even if a language system that succeeds Java ( registered trademark ) is newly proposed, if the language system assumes memory management such as garbage collection and compaction by the execution environment, the present invention This memory management method and memory management program can be applied in the same manner as in the above embodiment. Moreover, there is no restriction | limiting in the method of garbage collection or compaction, The applicable method can be used suitably. Further, the timing of performing garbage collection and compaction is not limited to the above embodiment, and these may be performed asynchronously with the timing of request generation for allocating a Java ( registered trademark ) object.

本発明を実施するためのハードウェア構成の説明図である。It is explanatory drawing of the hardware constitutions for implementing this invention. 本発明を実施するためのソフトウェア構成の説明図である。It is explanatory drawing of the software structure for implementing this invention. Java(登録商標名)オブジェクトをアロケートするための2つの領域を示す図である。It is a figure which shows two area | regions for allocating a Java ( trademark name ) object. Java(登録商標名)オブジェクトを本実施形態の方法によりアロケートする手順を示すフローチャートである。It is a flowchart which shows the procedure which allocates a Java ( trademark name ) object by the method of this embodiment.

10…CPU、11…メモリ、12…表示部、13…入出力部、20…Java(登録商標名)アプリケーション、21…AMS、22…クラスライブラリ、23…プラットフォーム、24…VM、25…Java(登録商標名)ヒープ領域、25−1…第1の領域、25−2…第2の領域、26…ネイティブアプリケーション1、27…ネイティブアプリケーション2。 DESCRIPTION OF SYMBOLS 10 ... CPU, 11 ... Memory, 12 ... Display unit, 13 ... Input / output unit, 20 ... Java ( registered trademark ) application, 21 ... AMS, 22 ... Class library, 23 ... Platform, 24 ... VM, 25 ... Java ( (Registered trademark name ) heap area, 25-1... First area, 25-2... Second area, 26.

Claims (10)

Java(登録商標名)実行環境におけるメモリ管理方法であって、
Java(登録商標名)オブジェクトをヒープ領域にアロケートする要求が発生したときに、データ型によって、前記Java(登録商標名)オブジェクトを第1のタイプのJava(登録商標名)オブジェクトと、第2のタイプのJava(登録商標名)オブジェクトに分類するオブジェクト分類ステップと、
前記第1のタイプのJava(登録商標名)オブジェクトがアロケートされる第1のメモリ領域に空きがない場合にはこの第1のメモリ領域に対して第1のコンパクション処理を実行し、前記第2のタイプのJava(登録商標名)オブジェクトがアロケートされる第2のメモリ領域に空きがない場合にはこの第2のメモリ領域に対して、前記第1のコンパクション処理とは異なる第2のコンパクション処理を実行するコンパクション実行ステップと、
前記第1のコンパクション処理により空きが発生した前記第1のメモリ領域に前記第1のタイプのJava(登録商標名)オブジェクトをアロケートするとともに、前記第2のコンパクション処理により空きが発生した前記第2のメモリ領域に前記第2のタイプのJava(登録商標名)オブジェクトをアロケートするオブジェクトアロケーションステップと、
を具備することを特徴とするメモリ管理方法。
A memory management method in a Java ( registered trademark ) execution environment,
When a request for allocating a Java ( registered trademark name ) object to a heap area occurs, the Java ( registered trademark name ) object is changed to a first type Java object ( registered trademark name ) and a second type according to the data type. An object classification step for classifying into a type of Java ( registered trademark ) object;
If there is no free space in the first memory area to which the first type Java ( registered trademark ) object is allocated, the first compaction process is executed on the first memory area, and the second If there is no free space in the second memory area to which the Java ( registered trademark ) object of this type is allocated, a second compaction process different from the first compaction process is applied to the second memory area. A compaction execution step for executing
The first type Java ( registered trademark ) object is allocated to the first memory area where a space is generated by the first compaction process, and the second space is generated by the second compaction process. an object allocation step of allocating the memory area the second type of Java (registered trademark) objects,
A memory management method.
前記第2のメモリ領域には、所定のマークが付与されたJava(登録商標名)オブジェクトがアロケートされており、前記第2のコンパクション処理では、前記マークが付与されたJava(登録商標名)オブジェクトに対するコンパクション処理を行わないことを特徴とする請求項1に記載のメモリ管理方法。 Wherein the second memory area, Java predetermined mark is assigned (registered trademark) objects and is allocated, the second compaction process, Java (registered trademark) in which the mark is assigned object The memory management method according to claim 1, wherein compaction processing is not performed on the memory. ネイティブプログラムから利用されるJava(登録商標名)オブジェクトに所定のマークを付与することを特徴とする請求項2に記載のメモリ管理方法。 3. The memory management method according to claim 2, wherein a predetermined mark is assigned to a Java ( registered trademark ) object used from a native program. 前記第2のタイプのJava(登録商標名)オブジェクトは、byteの1次元配列のデータ型をもつことを特徴とする請求項1から3のいずれか1項に記載のメモリ管理方法。 4. The memory management method according to claim 1, wherein the second type Java ( registered trademark ) object has a data type of a one-dimensional array of bytes. 前記byteの1次元配列をもつJava(登録商標名)オブジェクトは、音声データ、画像データあるいは通信データであることを特徴とする請求項1から4のいずれか1項に記載のメモリ管理方法。 5. The memory management method according to claim 1, wherein the Java ( registered trademark ) object having a one-dimensional array of bytes is audio data, image data, or communication data. 6. ネイティブプログラムとの間でデータの連携を行うJava(登録商標名)実行環境におけるメモリ管理プログラムであって、
処理手段に、
Java(登録商標名)オブジェクトをヒープ領域にアロケートする要求が発生したときに、データ型によって、前記Java(登録商標名)オブジェクトを第1のタイプのJava(登録商標名)オブジェクトと、第2のタイプのJava(登録商標名)オブジェクトに分類するオブジェクト分類処理と、
前記第1のタイプのJava(登録商標名)オブジェクトがアロケートされる第1のメモリ領域に空きがない場合にはこの第1のメモリ領域に対して第1のコンパクション処理を実行し、前記第2のタイプのJava(登録商標名)オブジェクトがアロケートされる第2のメモリ領域に空きがない場合にはこの第2のメモリ領域に対して、前記第1のコンパクション処理とは異なる第2のコンパクション処理を実行するコンパクション処理と、
前記第1のコンパクション処理により空きが発生した前記第1のメモリ領域に前記第1のタイプのJava(登録商標名)オブジェクトをアロケートするとともに、前記第2のコンパクション処理により空きが発生した前記第2のメモリ領域に前記第2のタイプのJava(登録商標名)オブジェクトをアロケートするオブジェクトアロケーション処理と、
を実行させることを特徴とするメモリ管理プログラム。
A memory management program in a Java ( registered trademark ) execution environment that performs data linkage with a native program,
In processing means,
When a request for allocating a Java ( registered trademark name ) object to a heap area occurs, the Java ( registered trademark name ) object is changed to a first type Java object ( registered trademark name ) and a second type according to the data type. Object classification processing for classifying into Java ( registered trademark ) objects of the type;
If there is no free space in the first memory area to which the first type Java ( registered trademark ) object is allocated, a first compaction process is executed on the first memory area, and the second If there is no free space in the second memory area to which the Java ( registered trademark ) object of this type is allocated, a second compaction process different from the first compaction process is performed for the second memory area. A compaction process to execute
The first type Java ( registered trademark ) object is allocated to the first memory area where a space is generated by the first compaction process, and the second space is generated by the second compaction process. Object allocation processing for allocating the second type Java ( registered trademark ) object in a memory area of
A memory management program.
前記第2のメモリ領域には、所定のマークが付与されたJava(登録商標名)オブジェクトがアロケートされており、前記第2のコンパクション処理では、前記マークが付与されたJava(登録商標名)オブジェクトに対するコンパクション処理を行わないことを特徴とする請求項6に記載のメモリ管理プログラム。 Wherein the second memory area, Java predetermined mark is assigned (registered trademark) objects and is allocated, the second compaction process, Java (registered trademark) in which the mark is assigned object The memory management program according to claim 6, wherein compaction processing is not performed on the memory. ネイティブプログラムから利用されるJava(登録商標名)オブジェクトに所定のマークを付与することを特徴とする請求項7に記載のメモリ管理プログラム。 The memory management program according to claim 7, wherein a predetermined mark is assigned to a Java ( registered trademark ) object used from a native program. 前記第2のタイプのJava(登録商標名)オブジェクトは、byteの1次元配列のデータ型をもつことを特徴とする請求項6から8のいずれか1項に記載のメモリ管理プログラム。 The memory management program according to any one of claims 6 to 8, wherein the second type Java ( registered trademark ) object has a data type of a one-dimensional array of bytes. 前記byteの1次元配列をもつJava(登録商標名)オブジェクトは、音声データ、画像データあるいは通信データであることを特徴とする請求項6から9のいずれか1項に記載のメモリ管理プログラム。 10. The memory management program according to claim 6, wherein the Java ( registered trademark ) object having a one-dimensional array of bytes is audio data, image data, or communication data.
JP2004217858A 2004-07-26 2004-07-26 Memory management method and memory management program in Java (registered trademark) execution environment Expired - Fee Related JP4504756B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004217858A JP4504756B2 (en) 2004-07-26 2004-07-26 Memory management method and memory management program in Java (registered trademark) execution environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004217858A JP4504756B2 (en) 2004-07-26 2004-07-26 Memory management method and memory management program in Java (registered trademark) execution environment

Publications (2)

Publication Number Publication Date
JP2006039878A JP2006039878A (en) 2006-02-09
JP4504756B2 true JP4504756B2 (en) 2010-07-14

Family

ID=35904823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004217858A Expired - Fee Related JP4504756B2 (en) 2004-07-26 2004-07-26 Memory management method and memory management program in Java (registered trademark) execution environment

Country Status (1)

Country Link
JP (1) JP4504756B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4773143B2 (en) * 2005-06-24 2011-09-14 三菱電機株式会社 Storage management device and computer program
JP4769946B2 (en) * 2007-02-05 2011-09-07 国立大学法人京都大学 MEMORY MANAGEMENT METHOD, MEMORY MANAGEMENT DEVICE, AND RECORDING MEDIUM CONTAINING MEMORY MANAGEMENT PROGRAM
JP5381624B2 (en) * 2009-11-04 2014-01-08 富士通株式会社 Program and apparatus having memory management function
JP5684633B2 (en) * 2011-04-05 2015-03-18 日本電信電話株式会社 Memory management device, memory management method, and memory management program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61262949A (en) * 1985-05-17 1986-11-20 Fujitsu Ltd Control system for memory capacity
JPH0218637A (en) * 1988-07-06 1990-01-22 Nec Software Ltd Memory control method
JPH0695954A (en) * 1992-06-15 1994-04-08 Microsoft Corp Computer system for conservative stack and generational heap-garbage collection and method thereof
JP2002278828A (en) * 2001-03-21 2002-09-27 Sony Corp Garbage collection performing method, computer program, program storage medium and information processor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61262949A (en) * 1985-05-17 1986-11-20 Fujitsu Ltd Control system for memory capacity
JPH0218637A (en) * 1988-07-06 1990-01-22 Nec Software Ltd Memory control method
JPH0695954A (en) * 1992-06-15 1994-04-08 Microsoft Corp Computer system for conservative stack and generational heap-garbage collection and method thereof
JP2002278828A (en) * 2001-03-21 2002-09-27 Sony Corp Garbage collection performing method, computer program, program storage medium and information processor

Also Published As

Publication number Publication date
JP2006039878A (en) 2006-02-09

Similar Documents

Publication Publication Date Title
US6757890B1 (en) Methods and apparatus for enabling local Java object allocation and collection
US7203941B2 (en) Associating a native resource with an application
US6820101B2 (en) Methods and apparatus for optimizing garbage collection using separate heaps of memory for storing local objects and non-local objects
US7281248B2 (en) Virtualized and realized user interface controls
JP5236367B2 (en) Shared Java JAR file
JP2014059906A (en) Method and apparatus for implementing individual class loader
JPH113269A (en) System and method for assisting accurate garbage collection by separating contents of stack into sub-stacks
JP4376181B2 (en) Program execution processing terminal device
CN110291508B (en) Garbage collector
US20020194210A1 (en) Method for using non-temporal stores to improve garbage collection algorithm
JP4295805B2 (en) MEMORY MANAGEMENT DEVICE, MEMORY MANAGEMENT METHOD, MEMORY MANAGEMENT PROGRAM, AND COMPUTER-READABLE RECORDING MEDIUM CONTAINING THE PROGRAM
JP2009020696A (en) Information proceing apparatus and system
JP4504756B2 (en) Memory management method and memory management program in Java (registered trademark) execution environment
US20100077163A1 (en) Memory Management Method, Memory Management Apparatus, and Recording Medium Recording the Memory Management Program
JP5709903B2 (en) METHOD, SYSTEM, COMPUTER PROGRAM, RECORDING MEDIUM, DATA STORAGE MEDIUM STORING DATA COLLECTION, AND CALL DATA RECORDING SYSTEM FOR COMPRESSING DATA RECORD AND PROCESSING COMPRESSED DATA RECORD
JP2007226784A (en) Calling method of in-lined method, and java virtual machine using it
JP6245028B2 (en) Execution control method, execution control program, and execution control apparatus
CN109923527B (en) Variable type builder
JP2007094871A (en) Memory management device and memory management method
JP4589095B2 (en) Program execution device, program execution method, and data area management program
RU2805768C2 (en) Reducing dependence on synchronization in garbage collection tag
JPH11232103A (en) Program link system and method search system
JP2011133919A (en) Method and program for recording object generation site
JPH11134202A (en) Task switching device
CN115827550A (en) Data processing method and related device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061020

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100323

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: 20100413

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: 20100423

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: 20130430

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140430

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees