Scheduler activations

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

  1. An Implementation of Scheduler Activations on the NetBSD Operating System
  2. Significant changes from NetBSD 4.0 to 5.0
This article is issued from Wikipedia - version of the Saturday, September 14, 2013. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.