CS262A Reading Summary 19

Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism

T. E. Anderson et al
Summary by Feng Zhou
10/17/2002

3 key features,
  1. The fundamental idea behind this paper seems to be the correct partition of functionality in the implementation of thread scheduler between the kernel and user level. The authurs argue that kernel thread in inherently a bad idea, which is valid(at least for parallel computing applications). However user-level threads, although having good performance, suffer from bad behavior in time of multiprogramming and blocking I/O. So actually this work is a trade-off between the two schemes.
  2. "Scheduler Activation" is introduced as a context of execution provided by the kernel for user-level threads. They are always equivallent to the number of physical processors. And each schuduler activation maps to one fixed processor. With the help of scheduler activations, the kernel can provide notification and important information to the user-level scheduler. Thus it can implement same functionalities as kernel threads. However, most scheduling are done in user land, so raw performance is similar to user thread. The final result is it can potentially performs better than user-level thread because it does not have problem dealing with multiprogramming and blocking I/O.
  3. One observation: in highly paralle scientific computing applications, the illusion of infinite processors is often useless, just like VM as an an illusion of infinite memory is useless to database systems. These applications actually want to assign threads statically to processors and avoid overhead of relocation. Thus providing a mechanism for the application to control the physical assignment of thread to processor may be desirable.

1 flaws:

One of the assumptions of this paper is there are often more processors than degree of multiprogramming. In this situation, processors can be semi-statically assigned to address spaces and get good performance. If that assumption is not true, there will be a lot of processor relocation of threads, which is pretty expensive. From this point and others, we can see that this scheduler is suitable for scientific computing on a multi-processor system. However, thread itself has been proven to be very useful on uni-processors and in interactive environments.