JDK 1.1 開発ガイド (Solaris 編)

Java 仮想マシン (JVM)

JVM (Java Virtual Machine) は、1 つの命令セットを持ち、メモリーを使用する抽象的な演算マシンです。仮想マシンは、しばしばプログラミング言語の実装に使用されます。JVM は、Java プログラミング言語の基礎となるものです。異なるプラットフォーム間で Java プログラムの移植が可能なこと、 コンパイル後のコードサイズが小さいということは、JVM によって実現されます。

Solaris JVM は、Java アプリケーションの実行に使用されます。Java コンパイラ javac はバイトコードを生成し、そのコードを .class ファイルに書き込みます。JVM はこれらのバイトコードを解釈し、そのバイトコードはどの JVM 実装でも実行することができます。このようにして、異なるプラットフォーム間での Java の移植性が実現されます。図 1-2 および図 1-3 はそれぞれ、従来のコンパイル時環境と、Java が提供する移植可能な新しいコンパイル時環境を表しています。

図 1-2 従来のコンパイル時環境

Graphic

図 1-3 移植可能な新しい Java コンパイル時環境

Graphic

マルチスレッド JVM

Java プログラミング言語では、マルチスレッドプログラムがサポートされる必要があります (第 2 章「マルチスレッド 」 を参照)。Java インタプリタはすべてマルチスレッドプログラミング環境を提供しますが、Java インタプリタの多くは、シングルプロセッサによるマルチスレッド処理しかサポートしないため、一度に実行される Java プログラムスレッド数は 1 つだけです。

Solaris JVM インタプリタは、Solaris のマルチスレッド機能を使用することによって、マルチプロセッサシステムを最大限に活用します。マルチプロセッサシステムでは、1 つのプロセスの複数のスレッドが複数の CPU で同時に実行されるようにスケジューリングできます。Solaris の JVM 上でマルチスレッド Java プログラムを実行すると、他のプラットフォームの JVM で同じプログラムを実行したときに比べて、大幅に並列性が向上します。