Trends and challenges in operating systems—from parallel computing to cloud computing

Over many decades, advances in computer system design and processor manufacturing have resulted in an ever‐increasing per‐chip transistor count, which, in combination with increased clock frequencies, has led to a tremendous increase in single‐thread performance in desktop and server CPUs. The trend to higher integration in processor manufacturing will continue for the next couple of years. However, the increased transistor count leads to additional compute cores within a CPU, rather than to an increased single‐thread performance. Programming and utilizing these future CPUs impose a number of problems commonly referred to as the multicore challenge. These trends primarily affect server computers, whereas on client systems, a break‐even between users' willingness to pay for compute power and today's CPU implementation seems to be reached. In this paper, we argue that the full exploitation of many‐core architectures on the server demands better support by the operating system. This relates to the support of new application programming models, the seamless integration of internal and external services, security, as well as on monitoring and (self‐adaptive) management of such server environments. Within this paper, we discuss three major trends that will drive the adoption of server operating systems to modern many‐core hardware: dynamic parallelism, dynamic partitioning, and dynamic provisioning. Copyright © 2011 John Wiley & Sons, Ltd.

[1]  D. Burger,et al.  Memory Bandwidth Limitations of Future Microprocessors , 1996, 23rd Annual International Symposium on Computer Architecture (ISCA'96).

[2]  Samuel Williams,et al.  The Landscape of Parallel Computing Research: A View from Berkeley , 2006 .

[3]  Jennifer M. Schopf,et al.  Current Activities in the Scheduling and Resource Management Area of the Global Grid Forum , 2002, JSSPP.

[4]  Claudio Gutierrez,et al.  Survey of graph database models , 2008, CSUR.

[5]  Rohit Chandra,et al.  Parallel programming in openMP , 2000 .

[6]  Sebastian Burckhardt,et al.  The design of a task parallel library , 2009, OOPSLA.

[7]  Suprio Ray,et al.  Cypress : A Scheduling Infrastructure for a Many-Core Hypervisor , 2008 .

[8]  Dean M. Tullsen,et al.  Simultaneous multithreading: a platform for next-generation processors , 1997, IEEE Micro.

[9]  Yan Solihin,et al.  QoS policies and architecture for cache/memory in CMP platforms , 2007, SIGMETRICS '07.

[10]  James Reinders,et al.  Intel® threading building blocks , 2008 .

[11]  Krisztián Flautner,et al.  Evolution of thread-level parallelism in desktop applications , 2010, ISCA.

[12]  Randy H. Katz,et al.  Above the Clouds: A Berkeley View of Cloud Computing , 2009 .

[13]  M. Rasit Eskicioglu,et al.  A comprehensive bibliography of distributed shared memory , 1996, OPSR.

[14]  Andreas Polze,et al.  NTrace: Function Boundary Tracing for Windows on IA-32 , 2009, 2009 16th Working Conference on Reverse Engineering.

[15]  Mark D. Hill,et al.  Amdahl's Law in the Multicore Era , 2008, Computer.

[16]  Christine Morin,et al.  OpenMosix, OpenSSI and Kerrighed: a comparative study , 2005, CCGrid 2005. IEEE International Symposium on Cluster Computing and the Grid, 2005..

[17]  Bu-Sung Lee,et al.  Towards Achieving Accountability, Auditability and Trust in Cloud Computing , 2011, ACC.

[18]  Aaftab Munshi,et al.  The OpenCL specification , 2009, 2009 IEEE Hot Chips 21 Symposium (HCS).

[19]  Bill Nitzberg,et al.  Distributed shared memory: a survey of issues and algorithms , 1991, Computer.

[20]  Richard McDougall Extreme Software Scaling , 2005, ACM Queue.

[21]  Chris Rose,et al.  A Break in the Clouds: Towards a Cloud Definition , 2011 .

[22]  Andreas Polze,et al.  Joint Forces: From Multithreaded Programming to GPU Computing , 2011, IEEE Software.

[23]  Dean M. Tullsen,et al.  Simultaneous multithreading: Maximizing on-chip parallelism , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[24]  Julie A. McCann,et al.  A survey of autonomic computing—degrees, models, and applications , 2008, CSUR.

[25]  Adrian Schüpbach,et al.  The multikernel: a new OS architecture for scalable multicore systems , 2009, SOSP '09.

[26]  Michael Le,et al.  ReHype: enabling VM survival across hypervisor failures , 2011, VEE '11.

[27]  Tal Garfinkel,et al.  When Virtual Is Harder than Real: Security Challenges in Virtual Machine Based Computing Environments , 2005, HotOS.

[28]  Tal Garfinkel,et al.  Virtual machine monitors: current technology and future trends , 2005, Computer.

[29]  Yong Zhao,et al.  Cloud Computing and Grid Computing 360-Degree Compared , 2008, GCE 2008.

[30]  Santosh G. Abraham,et al.  Chip multithreading: opportunities and challenges , 2005, 11th International Symposium on High-Performance Computer Architecture.

[31]  James R. Larus,et al.  Software and the Concurrency Revolution , 2005, ACM Queue.

[32]  Derek Chiou,et al.  Single-Threaded vs. Multithreaded: Where Should We Focus? , 2007, IEEE Micro.