Review of Scheduler Activations

From: Honghai Liu (liu789_at_hotmail.com)
Date: Mon Jan 26 2004 - 00:39:39 PST

  • Next message: Green, Gregory P: "Scheduler Activations: Effective Kernel Support for the User-Level"

    Reviewer: Honghai Liu

    The paper invented a new mechanism "Scheduler Activations" which greatly improves the performance in user-level thread system through keeping threads application at user-level (with performance of an order of procedure calls) and simultaneously making the most accurate decision on scheduling (via a unique relationship between user-level thread system and kernel level).

     

    The thread is not a new idea, and can be implemented in either user-level and kernel level. While user level thread has the best performance in terms of context switching between threads, the kernel level thread can enjoy the scheduling service provided at kernel even though the cost of thread switching is much more highly than user-level threads.

     

    A third approach was to have user-level threads running on top of many kernel threads with one-to-one or many-to-many mapping. It appears to be working, however, the scheduling decision is solely made by kernel, which has no clear idea of what's going on at user-level. Even though it might work nicely in some scenarios (e.g. a thread is blocking on I/O while there are other threads in the process ready), it can still make poor decision on scheduling.

     

    The best approach, which the Scheduler Activations is based on, is that there should be a partnership relationship between user-level and kernel-level, i.e. both user-level and kernel level can have their role in making scheduling decision on which thread can run on which processors. Schedule Activation layer plays an unique role and provide an important abstraction between two levels, in general, it let the kernel makes the decision on assigning processors, while let user-level threads management makes decision on which threads to assign or quit.

     

    It was also amazing to see with Schedule Activation can work around so many challenges. For example, critical sections with little effect on performance by using copying of critical section with special assembler label support in Schedule Activation.

     

    I still remember that when I used thread in user-level, in many manuals, it is warned that special attention should be taken when calling I/O. I hope that Schedule Activation can gain more acceptances, and thread programming manual would be less restrictive in the future.


  • Next message: Green, Gregory P: "Scheduler Activations: Effective Kernel Support for the User-Level"

    This archive was generated by hypermail 2.1.6 : Mon Jan 26 2004 - 00:39:51 PST