language-icon Old Web
English
Sign In

Scheduler activations

Scheduler activations are a threading mechanism that, when implemented in an operating system's process scheduler, provide kernel-level thread functionality with user-level thread flexibility and performance. This mechanism uses a so-called 'N:M' strategy that maps some N number of application threads onto some M number of kernel entities, or 'virtual processors.' This is a compromise between kernel-level ('1:1') and user-level ('N:1') threading. In general, 'N:M' threading systems are more complex to implement than either kernel or user threads, because both changes to kernel and user-space code are required. Scheduler activations are a threading mechanism that, when implemented in an operating system's process scheduler, provide kernel-level thread functionality with user-level thread flexibility and performance. This mechanism uses a so-called 'N:M' strategy that maps some N number of application threads onto some M number of kernel entities, or 'virtual processors.' This is a compromise between kernel-level ('1:1') and user-level ('N:1') threading. In general, 'N:M' threading systems are more complex to implement than either kernel or user threads, because both changes to kernel and user-space code are required. Scheduler activations were proposed by Anderson, Bershad, Lazowska, and Levy in Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism in 1991. Support was implemented in the NetBSD kernel by Nathan Williams but has since been abandoned in favor of 1:1 threading. FreeBSD had a similar threading implementation called Kernel Scheduled Entities which is also being retired in favor of 1:1 threading. Scheduler activations were also implemented as a patch for the Linux kernel by Vincent Danjean: Linux Activations, the user-level part being done in the Marcel thread library.

[ "Rate-monotonic scheduling" ]
Parent Topic
Child Topic
    No Parent Topic