Las activaciones de programadores son un mecanismo de subprocesamiento que, cuando se implementa en el programador de procesos de un sistema operativo , proporciona funcionalidad de subproceso a nivel de núcleo con flexibilidad y rendimiento de subproceso a nivel de usuario. Este mecanismo utiliza una estrategia denominada "N:M" que asigna una cantidad N de subprocesos de aplicación a una cantidad M de entidades del núcleo o "procesadores virtuales". Se trata de un compromiso entre el subprocesamiento a nivel de núcleo ("1:1") y el subprocesamiento a nivel de usuario ("N:1"). En general, los sistemas de subprocesamiento "N:M" son más complejos de implementar que los subprocesos del núcleo o del usuario, porque se requieren cambios tanto en el código del núcleo como en el del espacio de usuario.
Las activaciones del planificador fueron propuestas por Anderson, Bershad, Lazowska y Levy en Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism en 1991. [1] El soporte fue implementado en el kernel NetBSD por Nathan Williams [2] pero desde entonces ha sido abandonado a favor de subprocesos 1:1. [3] FreeBSD tenía una implementación de subprocesos similar llamada Kernel Scheduled Entities que también está siendo retirada a favor de subprocesos 1:1. Las activaciones del planificador también fueron implementadas como un parche para el kernel Linux por Vincent Danjean: Linux Activations, la parte a nivel de usuario se realiza en la biblioteca de subprocesos Marcel.