Scheduler activations

Scheduler activations とはマルチスレッドを実現するための機構で、オペレーティングシステムのプロセススケジューラに実装され、カーネルレベルスレッドの機能とユーザーレベルスレッドの柔軟性・性能を提供することができる。Scheduler activations は N 個のアプリケーションスレッドを M 個のカーネルスレッド（あるいは仮想プロセッサ）に割り当てるいわゆる "N:M" モデルを用いる。これは、カーネルレベルのマルチスレッド(1:1)とユーザーレベルのマルチスレッド(N:1)の中間的な方法である。一般的にはN:Mのマルチスレッド機構は、カーネル空間とユーザー空間両方のコードに変更が必要なため、カーネルスレッドやユーザースレッドより実装が複雑である。

Scheduler activations は 1999年に Anderson、Bershad、Lazowska、Levy により提唱されたScheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism。Nathan Williams によってNetBSD のカーネルに実装されたAn Implementation of Scheduler Activations on the NetBSD Operating System が、NetBSD は現在 1:1 スレッドモデルに移行しているSignificant changes from NetBSD 4.0 to 5.0。FreeBSD もKernel Scheduled Entitiesと呼ばれる類似のマルチスレッド実装を採用していたが、現在では 1:1 モデルに移行している。また Vincent Danjean により Linux カーネルにもパッチとして実装されたことがありLinux Activations、その際ユーザーレベルの部分はMarcel thread library によって実現された。

 参考文献 

Category:スレッド (コンピュータ)