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,
-
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.
-
"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.
-
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.