スケジューラアクティベーションは、オペレーティングシステムのプロセススケジューラに実装されると、カーネルレベルのスレッド機能とユーザーレベルのスレッドの柔軟性およびパフォーマンスを両立させるスレッド処理メカニズムです。このメカニズムは、N個のアプリケーションスレッドをM個のカーネルエンティティ、すなわち「仮想プロセッサ」にマッピングする、いわゆる「N:M」戦略を採用しています。これは、カーネルレベル(「1:1」)とユーザーレベル(「N:1」)のスレッド処理の中間的なアプローチです。一般的に、「N:M」スレッドシステムは、カーネルとユーザー空間の両方のコード変更が必要となるため、カーネルスレッドやユーザースレッドよりも実装が複雑になります。
スケジューラのアクティベーションは、Anderson、Bershad、Lazowska、LevyによってScheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism (1991) で提案されました。[ 1 ]このサポートは、 Nathan Williams によってNetBSDカーネルに実装されましたが[ 2 ]、その後 1:1 スレッド化に置き換えられました。[ 3 ] [ 4 ] FreeBSD には、Kernel Scheduled Entitiesと呼ばれる同様のスレッド化実装がありましたが、これも 1:1 スレッド化に置き換えられています。スケジューラのアクティベーションは、Vincent Danjean によってLinux カーネルのパッチとしてLinux Activations としても実装され、ユーザー レベルの部分は Marcel スレッド ライブラリで行われました。