<<

CLASSIC OPERATING SYSTEMS

From Batch Processing To Distributed Systems Springer Science+Business Media, LLC CLASSIC OPERATING SYSTEMS

From Batch Processing To Distributed Systems

Selected by

, Springer Per Brinch Hansen Center for Science and Technology Syracuse, NY 13244 USA [email protected]

Library of Congress Cataloging-in-Publication Data Brinch Hansen, Per, 1938- Classic operating systems: from batch processing to distributed systems/Per Brinch Hansen. p. em. Includes bibliographical references. 1. Operating systems (Computers) I. Title. QA76 .76.063 B7425 2000 004' .3-dc21 00-045036

Printed on acid-free paper.

Ada is a trademark of the Government. CDC 6600 is a trademark of Control Data Corporation. Chorus is a trademark of Chorus Systernes. CP/M is a trademark of Digital Re­ search. Domain is a trademark of Apollo, Inc. Ethernet is a trademark of Xerox Corporation. IBM , IBM 701 , IBM 709, and IBM 7090 are trademarks of IBM. Java and NFS are trademarks of Sun Microsystems, Inc. Locus is a trademark of Locus Computing Corporation. Mach is a trademark of Carnegie-Mellon University. Macintosh is a trademark licensed to Apple Computer, Inc. PDP-ll is a trademark of Digital Equipment Corporation. is a trademark of X/Open Company, Ltd.

© 2001 SpringerScience+Business MediaNew York Originallypublishedby Springer-Verlag New York in 2001. Softcoverreprintof the hardcover Ist edition 2001

All rights reserved. This work may not be translated or copied in whole or in part without the written permission of the publisher SpringerScience+Business Media, LLC, except for brief excerpts in connection with reviews or scholarly analysis. Use in connection with any form of information storage and retrieval, electronic adaption, computer software, or by similar or dissimilar methodology now known or hereafter developed is forbidden. The use of general descriptive names , trade names , trademarks, etc ., in this publication, even if the former are not especially identified, is not to be taken as a sign that such names, as understood by the Trade Marks and Merchandise Marks Act , may accordingly be used freely by anyone.

Production managed by Frank McGuckin; manufacturing supervised by Erica Bresler. Camera-ready copy prepared from the author's lffi'IEjX 2c: files.

9 8 7 6 5 4 3 2 1

ISBN 978-1-4419-2881-8 ISBN 978-1-4757-3510-9 (eBook) DOI 10.1007/978-1-4757-3510-9 FOR MILENA PREFACE

In operating systems courses you learn useful principles, but very little about the difficult art of software design. So I decided to go back to the masters who made the major discoveries in operating systems and put some of their best papers together in a book and call it Classic Operating Systems: From Batch Processing to Distributed Systems. Well, here is that book. The papers illustrate the major breakthroughs in technology from the 1950s to the 1990s. All of them are written by the pioneers who designed these systems. I have added an introduction that summarizes the papers and puts them in perspective. The book is for professional programmers and students of electrical en­ gineering and . I assume you are familiar with operating system principles. From this book you will learn something else: How do operating system designers think? I hope you will enjoy reading these classic papers as much as I did. I thank the copyright owners for permission to reprint these papers.A footnote on the title page of each paper gives full credit to the publication in which the work first appeared, including the name of the copyright holder.

PER BRINCH HANSEN Syracuse University

VB CONTENTS

Th e Evolution of Operating Systems 1 Per Brinch Hansen (2000) PART I OPEN SHOP 1 The IBM 701 Compu ter at the General Motors Research Laboratories 37 George F. Ryckman (1983) PART II BATCH PROCESSING 2 The BKS System for the Philco-2000 43 Richard . Smith (1961) PART III MULTIPROGRAMMING 3 The Atlas Sup ervisor 49 Tom Kilburn, R. Bru ce Payne and David J . Howarth (1961) 4 Operating System for the B5000 78 Clark Oliphint (1964) 5 Description of a High Capacity, Fast Turnaround University Computing Center 88 William . Lynch (1966) 6 Th e Egdon System for the KDF9 102 David Burns, E. Neville Hawkins, D. Robin Judd and J ohn L. Venn (1966) PART IV TIMESHARING 7 An Experimental Time-Sharing System 117 Fernando Corbato, Marj orie Merwin-Daggett and Robert C. Daley (1962) 8 A General-Purpose for Secondary Storage 138 Robert C. Daley and Peter G. Neumann (1965) 9 File Integrity in a Disc-Based Multi-Access System 167 A.G. Fras er (1972) 10 Th e Unix Tim e-Sharing Sys tem 195 Dennis M. Ritchie and Ken Thompson (1974) PART V CONC URRENT PROGRAMMING 11 Th e Stru cture of the THE Multiprogramming System 223 Edsger W. Dijkstra (1968)

IX x CONTENTS

12 4000 Software: Multiprogramming System 237 Per Brinch Hansen (1969) 13 The Design of the Venus Operating System 282 Barbara H. Liskov (1972) 14 A Large Based Operating System 295 Seren Lauesen (1975) 15 The Solo Operating System: A Program 324 Per Brinch Hansen (1976) 16 The Solo Operating System: Processes, Monitors and Classes 337 Per Brinch Hansen (1976) PART PERSONAL COMPUTING 17 OS6-An Experimental Operating System for a Small Computer: Input/Output and Filing System 387 Joe E. Stoy and Christopher Strachey (1972) 18 An Open Operating System for a Single-User Machine 414 Butler W. Lampson and Robert F. Sproull (1979) 19 Pilot: An Operating System for a Personal Computer 433 David D. Redell, Yogen K. Dalal, Thomas R. Horsley, Hugh C. Lauer, William C. Lynch, Paul R. McJones, Hal G. Murray and Stephen C. Purcell (1980) 20 The Star User Interface: An Overview 460 David C. Smith, Charles Irby, Ralph Kimball and Eric Harslem (1982) PART VII DISTRIBUTED SYSTEMS 21 WFS: A Simple Shared File System for a Distributed Environment 493 Daniel Swinehart, Gene McDaniel and David R. Boggs (1979) 22 The Design of a Reliable Mechanism 511 Santosh Shrivastava and Fabio Panzieri (1982) 23 The Newcastle Connection or of the World Unite! 528 David R. Brownbridge, Lindsay F. Marshall and Brian Randell (1982) 24 Experiences with the Amoeba Distributed Operating System 550 Andrew S. Tanenbaum, Robbert van Renesse, Hans van Staveren, Gregory J. Sharp, Sape J. Mullender, Jack Jansen and Guido van Rossum (1990)

Bibliography 587