JUICE は、Sun Microsystems の仕様に従ってCで記述されたJava ME実験的Java 仮想マシンです。リアルタイム Java 用に設計された Juice JVM は、NUXI オペレーティング システムで実行するために特別に開発されました。Juice の最も重要な機能は、ヒープ メモリの構造、オブジェクト割り当てポリシー、および使用されるガベージ コレクターに関連しています。
ヒープメモリ
Juice では、利用可能なヒープ メモリはすべて、あらかじめ固定されたサイズの「チャンク」で共有されます。使用されるメモリ単位は「d-word」(「double-word」の略) です。チャンクの実際のデフォルト サイズは 64 d-word に固定されています。空きメモリ チャンクはリンク リストに編成され、Java オブジェクトが占有するチャンクは、UNIX ファイル システムの表現に似た階層構造で相互に接続されます。
リアルタイムオブジェクト割り当てポリシー
Juice のオブジェクト割り当てポリシーは、ヒープ メモリを表すために使用される構造に厳密に関連しています。この構造により、オブジェクト自体のサイズにのみ依存する時間で Java オブジェクトを割り当て (および割り当て解除) することが可能になります (予測可能性)。
従量課金型ガベージコレクター
提案されたガベージ コレクターは、新しいオブジェクトを割り当てる必要がある場合にのみメモリの再利用を実行する、コピーしないトレース コレクターに基づいています。ガベージ コレクターの名前は、コレクターの実行に無駄に費やされる時間という点で、ミューテーターが支払うコストが、割り当てるオブジェクトのサイズに比例するためです。
著者
ガベージ コレクター、ヒープ メモリ管理: Corrado Santoro、Roberto Aloi
その他:コラド・サントロ
参考文献
- A. Corsaro、C. Santoro。JVM オブジェクト操作の最適化による WCET 予測可能性の向上、2004 年の最悪ケース実行時間に関する第 4 回国際ワークショップで発表された記事。
- A. Corsaro、C. Santoro。インタープリタ型 JVM 用の C++ ネイティブ インターフェイス。第 1 回国際 JTRES ワークショップ (JTRES'03)。LNCS 2889、Springer、2003 年。
- R. Aloi. リアルタイム Java でのメモリ管理とガベージ コレクション (イタリア語) [ permanent dead link ]、コンピュータ エンジニアリング論文 (イタリア、カターニア大学)、2005 年。
