JDK 1.1 開発ガイド (Solaris 編)

マルチスレッドカーネル

マルチスレッドカーネルは、マルチスレッドの完全な実装の基礎となるものです。Solaris オペレーティングシステムで使用されているようなマルチスレッドカーネルでは、各カーネルスレッドはカーネルのアドレス空間内の 1 つの制御の流れです。カーネルスレッドは完全にプリエンプティブであり、システムで使用できるリアルタイムクラスなど任意のスケジューリングクラスを使用して、スケジューリングすることができます。あらゆる実行エンティティは、カーネルスレッドを使用して作成されます。カーネルスレッドは、カーネル内で完全にプリエンプティブな、リアルタイムの「核」とみなすことができます。

カーネルスレッドは、スレッドやプロセスが別の処理が完了するのを待っていたために優先順位どおりに実行されなくなるのを防ぐためのプロトコルをサポートする、同期プリミティブを使用します。これにより、アプリケーションは意図したとおりに動作するようになります。カーネルスレッドはまた、NFS デーモン、ページアウトデーモン、割り込み、などのカーネルレベルのタスクが非同期に動作することを可能にして、並列処理性および全体のスループットを向上させます。

マルチスレッドカーネルは、一般的な JVM 実装などのマルチスレッドアプリケーションアーキテクチャの作成に欠かせないものです。マルチスレッドカーネルには、次の特徴があります。