マルチスレッドカーネルは、マルチスレッドの完全な実装の基礎となるものです。Solaris オペレーティングシステムで使用されているようなマルチスレッドカーネルでは、各カーネルスレッドはカーネルのアドレス空間内の 1 つの制御の流れです。カーネルスレッドは完全にプリエンプティブであり、システムで使用できるリアルタイムクラスなど任意のスケジューリングクラスを使用して、スケジューリングすることができます。あらゆる実行エンティティは、カーネルスレッドを使用して作成されます。カーネルスレッドは、カーネル内で完全にプリエンプティブな、リアルタイムの「核」とみなすことができます。
カーネルスレッドは、スレッドやプロセスが別の処理が完了するのを待っていたために優先順位どおりに実行されなくなるのを防ぐためのプロトコルをサポートする、同期プリミティブを使用します。これにより、アプリケーションは意図したとおりに動作するようになります。カーネルスレッドはまた、NFS デーモン、ページアウトデーモン、割り込み、などのカーネルレベルのタスクが非同期に動作することを可能にして、並列処理性および全体のスループットを向上させます。
マルチスレッドカーネルは、一般的な JVM 実装などのマルチスレッドアプリケーションアーキテクチャの作成に欠かせないものです。マルチスレッドカーネルには、次の特徴があります。
マルチプロセッサの最高のパフォーマンスが得られるように、完全に対称型です。
複数のカーネルスレッドを使用して、マルチプロセッサマシン上での並列処理を可能にします。演算、ネットワーキング、表示、入出力などの処理を並列に実行することによって、ハードウェアサブシステムがより有効に活用されるようになります。
従来のアプリケーション (単一スレッドアプリケーション) もそのままマルチスレッドカーネル上で実行できます。
完全にプリエンプティブであり、リアルタイムの応答を実現します。