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.[1] Support was implemented in the NetBSD kernel by Nathan Williams[2] but has since been abandoned in favor of 1:1 threading.[3] 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. Anderson, Thomas E.; Bershad, Brian N.; Lazowska, Edward D.; Levy, Henry M. (September 1991). "Scheduler activations: Effective kernel support for the user-level management of parallelism". Proceedings of the thirteenth ACM symposium on Operating systems principles. pp. 95–109. doi:10.1145/121132.121151. ISBN 0897914473. S2CID 264864317.
  2. An Implementation of Scheduler Activations on the NetBSD Operating System
  3. Significant changes from NetBSD 4.0 to 5.0


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.