Scheduler Activations on BSD: Sharing Thread Management Between Kernel and Application
Christopher Small, Margo Seltzer · Digital Access to Scholarship at Harvard (DASH) (Harvard University) · 1995
There are two commonly used thread models: kernel level threads and user level threads. Kernel level threads suffer from the cost of frequent user-kernel domain crossings and fixed kernel scheduling priorities. User level threads are not integrated with the kernel, blocking all threads whenever one thread is blocked. The Scheduler Activations model, proposed by Anderson et al. [ANDE91], combines kernel CPU allocation decisions with application control over thread scheduling. This paper discusses the performance characteristics of an implementation of Scheduler Activations for a uniprocessor BSD system, and proposes an analytic model for determining the class of applications that benefit from its use. Our implementation required fewer than two hundred lines of kernel code and provides an order of magnitude performance improvement over process-level facilities. 1 Introduction Processes are heavy-weight and, normally, do not share resources. Both communication and switching between proce...