Scheduler activations

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Widr (talk | contribs) at 13:07, 14 September 2013 (Reverted edits by 117.211.90.50 (talk) to last version by Addbot). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Scheduler Activations is a threading mechanism that, when implemented in an operating system's process scheduler, provides 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 was proposed by Anderson, Bershad, Lazowska, and Levy in Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism in 1991. It was implemented in the NetBSD kernel by Nathan Williams[1] but has since been abandoned in favor of 1:1 threading.[2] 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.

References