Non-intrusive Coscheduling for General Purpose Operating Systems

  • Jan H. Schönherr
  • Bianca Lutz
  • Jan Richling
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7303)


Coscheduling, invented originally on early parallel computer systems 30 years ago, provided the possibility to improve the resource utilization of these systems substantially by coordinating the execution of processes across multiple processors in time. Almost forgotten in the multicore era, recent research addressing certain problems on multicore systems, such as performance of virtual machines, contention of processor resources, or dynamic energy budget distribution, concludes that coscheduling is a viable solution.

In this paper, we do not focus on a specific problem or application of coscheduling, but on coscheduling itself. We present a coscheduling design that is able to cover most of the identified use cases on multicore systems and can be seamlessly integrated into currently used general purpose operating systems. We have applied this design to the Linux kernel and show that this approach allows a non-intrusive solution that fulfills the promises of coscheduling and is able to achieve a similar performance as a specialized commercial solution.


Virtual Machine Task Group Processor Core Multicore System Baseline Experiment 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Ousterhout, J.: Scheduling techniques for concurrent systems. In: Proceedings of the 3rd International Conference on Distributed Computing Systems (ICDCS 1982), pp. 22–30. IEEE Computer Society, Los Alamitos (1982)Google Scholar
  2. 2.
    Feitelson, D.G., Rudolph, L.: Distributed hierarchical control for parallel processing. Computer 23(5), 65–77 (1990)CrossRefGoogle Scholar
  3. 3.
    Mattson, T.G., Sanders, B.A., Massingill, B.L.: Patterns for parallel programming. Addison-Wesley (2004)Google Scholar
  4. 4.
    Feitelson, D.G., Rudolph, L.: Gang scheduling performance benefits for fine-grain synchronization. Journal of Parallel and Distributed Computing 16, 306–318 (1992)zbMATHCrossRefGoogle Scholar
  5. 5.
    Kim, D., et al.: Physical experimentation with prefetching helper threads on Intel’s hyper-threaded processors. In: Proceedings of the International Symposium on Code Generation and Optimization (CGO 2004), pp. 27–38. IEEE Computer Society, Los Alamitos (2004)Google Scholar
  6. 6.
    Bulpin, J.R.: Operating system support for simultaneous multithreaded processors. University of Cambridge, Computer Laboratory, Cambridge, UK, Tech. Rep. UCAM-CL-TR-619 (February 2005)Google Scholar
  7. 7.
    Datta, K., et al.: Stencil computation optimization and auto-tuning on state-of-the-art multicore architectures. In: Proceedings of the 2008 ACM/IEEE Conference on Supercomputing (SC 2008). IEEE, Piscataway (2008)Google Scholar
  8. 8.
    Merkel, A., Stoess, J., Bellosa, F.: Resource-conscious scheduling for energy efficiency on multicore processors. In: Proceedings of the 5th European Conference on Computer Systems (EuroSys 2010), pp. 153–166. ACM Press, New York (2010)CrossRefGoogle Scholar
  9. 9.
    Schönherr, J.H., Richling, J., Werner, M., Mühl, G.: A scheduling approach for efficient utilization of hardware-driven frequency scaling. In: Workshop Proceedings of the 23rd International Conference on Architecture of Computing Systems (ARCS 2010), pp. 367–376. VDE Verlag, Berlin (2010)Google Scholar
  10. 10.
    Franke, H., Pattnaik, P., Rudolph, L.: Gang scheduling for highly efficient, distributed multiprocessor systems. In: Proceedings of the 6th Symposium on the Frontiers of Massively Parallel Computation (FRONTIERS 1996), pp. 4–12. IEEE Computer Society, Los Alamitos (1996)CrossRefGoogle Scholar
  11. 11.
    Arpaci-Dusseau, A.C.: Implicit coscheduling: coordinated scheduling with implicit information in distributed systems. ACM Transactions on Computer Systems 19(3), 283–331 (2001)CrossRefGoogle Scholar
  12. 12.
    VMware, Inc., VMware vSphere: The CPU Scheduler in VMware ESX 4.1, white paper (2010)Google Scholar
  13. 13.
    Giani, D., Vaddagiri, S., Zijlstra, P.: The Linux scheduler, today and looking forward. UpTimes 2008(2), 41–52 (2008)Google Scholar
  14. 14.
    Jin, H., Frumkin, M., Yan, J.: The OpenMP implementation of NAS parallel benchmarks and its performance. NASA Ames Research Center, Moffett Field, CA, USA, Tech. Rep. NAS-99-011 (October 1999)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Jan H. Schönherr
    • 1
  • Bianca Lutz
    • 1
  • Jan Richling
    • 1
  1. 1.Communication and Operating Systems GroupTechnische Universität BerlinGermany

Personalised recommendations