Активации планировщика — это механизм потоков , который при реализации в планировщике процессов операционной системы обеспечивает функциональность потоков на уровне ядра с гибкостью и производительностью потоков на уровне пользователя. Этот механизм использует так называемую стратегию «N:M», которая отображает некоторое количество потоков приложения N на некоторое количество M сущностей ядра, или «виртуальных процессоров». Это компромисс между потоками на уровне ядра («1:1») и на уровне пользователя («N:1»). В целом, системы потоков «N:M» сложнее в реализации, чем потоки ядра или пользователя, поскольку требуются как изменения в коде ядра, так и в коде пользовательского пространства.
Активации планировщика были предложены Андерсоном, Бершадом, Лазовской и Леви в книге Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism в 1991 году. [1] Поддержка была реализована в ядре NetBSD Натаном Уильямсом [2], но с тех пор от нее отказались в пользу потоков 1:1. [3] У FreeBSD была похожая реализация потоков, называемая Kernel Scheduled Entities, которая также отменяется в пользу потоков 1:1. Активации планировщика также были реализованы в качестве патча для ядра Linux Винсентом Данжаном: Linux Activations, часть на уровне пользователя была реализована в библиотеке потоков Marcel.