APRIL-JUNE 1997 (Vol. 5, No. 2) pp. 14-15
1063-6552/97/$31.00 © 1997 IEEE
Published by the IEEE Computer Society
Published by the IEEE Computer Society
Guest Editors' Introduction: Multiprocessor operating systems — harnessing the power
PDFs Require Adobe Acrobat
Operating systems constitute the lowest level of the software interface to the underlying hardware, forming the chief software component of the computational abstraction presented to application programs. Changes in computer architecture, buses, devices, and interconnection networks engender corresponding changes in operating systems. The past decade has seen a fundamental shift in computing infrastructure, from centralized mainframe computing to distributed and multiprocessor systems; operating system development has reflected this trend.
Research in the late 1980s gave rise to several distributed operating systems for clusters, including Sprite, the V System, MOS, and Locus. The next major advent was the microkernel, as represented by V, Plan 9, Amoeba, and QNX, which restructured the operating system into a minimalist kernel with traditional operating system services provided by user-level servers. The microkernel architecture mapped well to multiprocessor systems, as the local kernel could be tailored to balance the tradeoffs of efficiency and richness of service. This led to the development of operating systems for distributed memory supercomputers, such as OSF/1 AD and Puma on the Intel Paragon, and AIX on the IBM SP-2.
Underlying all of these operating systems is a common set of issues; what distinguishes each system is its treatment of these issues. Three of these important issues in operating system design are interprocess communication, concurrency management and system structure, and fault tolerance. IPC provides the fundamental mechanism for sharing data between tasks; in high-performance computing environments, it is essential that IPC provide low-latency, high-bandwidth communication to application programmers, and that the IPC mechanisms be flexible enough to handle different styles of interaction. Concurrency management and system structure determine an operating system's ability to use the parallelism inherent in the underlying hardware. Proper fault management is crucial in systems with large numbers of processors, as the odds of failure of some component in such a system approaches unity.
Each of these issues gives rise to an accompanying design space, and the choice of points within that design space defines the functionality of an individual operating system. For example, fault tolerance can be handled through replication, checkpointing, message logging, or some combination of these and other methods. Fault tolerance in the Legion metacomputing system is based on a combination of logging and replication, while one of the articles in this special issue proposes a method based on checkpointing and vector timestamps.
The five articles in this special issue cover a wide range of important topics for multiprocessor operating systems. Two focus on IPC, two focus on operating system structure, and the final one describes fault-tolerance support for distributed systems.
- In "Vote for Peace: Implementation and Performance of a Parallel Operating System," Jörg Cordsen, Thomas Garnatz, Anne Gerischer, Marco Dimas Gubitoso, Ute Haack, Michael Sander, and Wolfgang Schröder-Preikschat describe the development of the Peace parallel operating system family and an efficient virtual shared memory subsystem called Vote. They demonstrate that on a message-passing supercomputer, one can achieve high performance with software-only distributed shared memory.
- "Models for Asynchronous Message Handling," by Koen Langendoen, Raoul Bhoedjang, and Henri Bal, describes flexible message-handling facilities that are suitable for use in both parallel and distributed systems. They compare three different message handling strategies, representing choices in the design space with trade-offs between performance and expressiveness in message handling.
- Dejan Alan Langerman, David L. Black, Michelle Dominijanni, Randall W. Dean, and Steven Sears describe the ramifications of operating system structure, IPC, and concurrency handling, in "Concurrency: A Case Study in Remote Tasking and Distributed IPC in Mach." They compare the performance benefits of optimizations at varying operating system levels, using distributed IPC as implemented in the Mach microkernel as the basis for their analysis.
- In "Complete Process Recovery: Using Vector Time to Handle Multiple Failures in Distributed Systems," Golden G. Richard III and Mukesh Singhal describe a vector-clock-based checkpointing algorithm to support fault tolerance in distributed systems. They pay special attention to proper checkpointing of the network layer, and present a lightweight rollback technique with low message complexity.
- "Fast Messages: Efficient, Portable Communication for Workstation Clusters and MPPs," by Scott Pakin, Vijay Karamcheti, and Andrew A. Chien, describes a low-latency, message-passing mechanism that is well-suited to both workstation clusters and to distributed-memory supercomputers such as the Cray T3D. Fast Messages delivers a substantial portion of the underlying communication fabric's bandwidth, and also supplies important features such as reliable delivery.
While these five articles explore some research areas for multiprocessor operating systems, there are many additional issues, including real-time processing, multimedia support, security, and heterogeneous processing. To help us explore these topics, we extended an invitation for an interview to Jack Stankovic. Jack has worked in real-time operating systems for many years, and has recently shifted his research focus to multimedia support and a combination of operating system research issues that have traditionally been examined in isolation. Our interview with Jack appears on pages 84-85.
We wish to thank Michael Quinn, Gul Agha, Dick Price, and the rest of the IEEE Concurrency Editorial Board and publication staff for making this issue possible. We look forward to what the next decade will bring in multiprocessor computing, and are excited at the continued prospects for work on high-performance multiprocessor systems.
Steve Chapin is a research assistant professor in the Computer Science Department at the University of Virginia. He received his PhD in computer science from Purdue, having worked extensively on the XINU project and doing his dissertation work in the area of distributed scheduling for heterogeneous systems. He is currently working on resource management within the Legion metacomputing system, as well as researching secure execution environments for distributed systems and heterogeneous operating systems. Contact him at the Dept. of Computer Science, Univ. of Virginia, Charlottesville, VA 22903-2442; email@example.com; http://www.cs.virginia.edu/~chapin/.
Arthur B. (Barney) Maccabe is currently an associate professor in the computer science department at the University of New Mexico. He received his PhD in information and computer sciences from the Georgia Institute of Technology. His research interests include language design, compiler construction, distributed processing systems, computer security, and operating systems for massively parallel systems. He was involved in the design and implementation of the Sunmos and Puma/Cougar operating systems used on the Intel Paragon and Teraflop systems. Contact him at the Dept. of Computer Science, Univ. of New Mexico, Albuquerque, NM 87131-1386; firstname.lastname@example.org; http://www.cs.unm.edu/~maccabe/.