COMP30052 Distributed Operating Systems Chapter 1: Introduction

Chris Kirkham

February 1, 2007

Books

There is currently no single text book that covers all the topics in COMP30052.

Andrew S. Tanenbaum and M van Steen, Distributed Systems Principles and Paradigms, • Prentice Hall 2002. Covers about 70% of the course, omitting some material.

Andrew S. Tanenbaum , Modern Operating Systems, 2nd edition, Prentice Hall, 2001. • Covers most of the remaining topics, about 25% of the course.

Andrew S. Tanenbaum, Distributed Operating Systems, Prentice Hall 1995. This was • previously the main course textbook but is now rather dated, i.e. lacking material on newer systems. All the relevant material is now in one or other of the books listed above. Tanenbaum’s books have lots of problems at the end of each chapter which you should try to solve. Some of Tanenbaum’s material is available at http://www.prenhall.com/tanenbaum/

Jean Bacon and Tim Harris, Operating Systems: Concurrent and Distributed Software • Design, Addison Wesley 2003. Brings together operating system and database concerns in a single text. Gentle introduction to client-server and distributed systems. This book is useful but it lacks detail on some topics.

Bovet and Cesati, Understanding the Linux kernel, O’Reilly 2001. Quite a readable • description with a lot of technical detail. Useful reference.

Silberschatz, Galvin and Cagne, Operating System Concepts, 7th Edn Wiley 2005. Cov- • ers major sections of the course in reasonable depth but it is not the main text because it is weaker on distributed systems. It has a “with Java” version (2007). The previous edition (6th) is almost as good; it has an “XP update edition” which merely has one extra chapter on Windows XP. It also has a “with Java” version (2004).

George Coulouris et al, Distributed Systems: Concepts and Design, 4th Edn, Addison • Wesley 2005. Comprehensive view of distributed systems concentrating on communica- tion and middleware with relatively little on the Operating System, is an alternative to Tanenbaum, Distributed Systems.

1 William Stallings, Operating Systems: Internals and Design Principles, 4th Edition, • Prentice Hall 2001. Up to date alternative treatment of some topics.

Course content

We assume COMP20051 (which was CS2051 when you did it). If you are unsure of this read up one of the 2nd year textbooks or the course notes. Our emphasis on networked systems means that the course relates to many others but we try to avoid direct overlap and will miss out sections of Tanenbaum that are obvious duplication. These include:

COMP20081 for issues directly concerned with networking, • COMP30082 for network security, • COMP30112 for concurrency, • COMP20312 and COMP30311 for database aspects • The main topics we will cover are:

Structure of operating systems; monolithic kernels and microkernels; • Networked and distributed systems; client server model; • Process placement and interaction; Inter process communication and remote procedure • call;

Processes and threads, threaded servers and kernels; • Resource management issues: deadlock, distributed deadlock; • Resource management issues: distributed coordination and synchronisation, reaching • agreement; reliability in distributed systems;

Filesystems: scaleability, reliability, performance, distribution; NFS and CODA models • of distribution;

The fileserver: transaction based models; NTFS and filesystems; • Protection regimes, access lists and capabilities; security and authentication. • Windows 2000/XP • Middleware in distributed systems, distributed objects, CORBA, DCOM. •

2 What is an operating system?

An operating system provides an environment in which users can execute programs. This encompasses a wide variety of functionality.

Single user: the simple CP/M, MS-DOS are obsolete and replaced by Microsoft Win- • dows 95 etc.

UNIX, conceptually simple multi-user (but considerably extended over 30 years: e.g. • memory management, distributed inter-process communication).

Manufacturers systems, ICL VME, DEC VMS, IBM VM/CMS. Comprehensive facili- • ties, emphasis on security and reliability. Supporting large networks, databases and mul- tiple processors. Originally closed systems but increasingly required to interface with other Open systems.

Newer commercial systems: Sun Solaris 2, Windows NT/2000/XP. Emphasis on Open • systems, user interface and on networking.

Free versions of UNIX: Linux. • Other developments: Object-orientation, networking and client-server, middleware: OSF/1 • and DCE. Common Object Request Broker Architecture (CORBA), DCOM, .NET

Note the size of some large systems, 5000 man years to develop IBM OS360. (Fred Brooks: The Mythical Man Month). Transaction processing with 15,000 terminals. The Linux 2.0 kernel (1996) had 470,000 lines of source code. About 5% of this is in the true kernel of processor and memory management. 377,000 lines are in device drivers, 50,000 in the 13 file systems, 13,500 in the VFS layer, and 25,000 in network software. Linux 1.2 (1995) was 270,000 lines. Linux 2.2 (1999) about 2 million lines and Linux 2.4 (2002) 4 million. The true kernel remains very small. Most of the expansion is due to supporting new processor architectures, more filesystems and many more new devices. X windows adds another 1.5 million. Linux is small compared with Windows 2000 which was said to have 30m lines of source (including the Win32 GUI).

Conventional operating system problems

Asynchronous and unpredictable events. Clock interrupts, peripheral interrupts, au- • tonomous peripherals, communications and increasingly multiprocessor and networked configurations.

Unknown configurations of the target system. Considerable progress has been made with • dynamic loading of device drivers, automatic detection of hardware devices and ‘plug- and-play’ techniques.

Continuous modification. Fault fixing, improvement in performance and facilities with- • out disturbing existing user programs. 6 or 12 month upgrade cycle. Still a major prob- lem.

3 Networking and distribution

Tanenbaum defines a Network Operating System as a system in which each machine has a considerable degree of autonomy but cooperates with other such systems on the network. In recent years the use of networked operating systems has increased. These have flexible network filestore arrangements and support various middleware systems: Java RMI, CORBA, DCOM. With these systems the middleware emphasis has moved towards Distributed Objects more than simple RPC. Tanenbaum defines a Distributed Operating System as a system that creates the illusion that a network of computers operates as a single integrated system rather than a collection of distinct machines. This is sometimes called a Single system image or a Virtual uniprocessor. Much less progress has been made on this type of system and many would doubt whether it is even a desirable objective. Nevertheless it is useful to observe the extent to which present day networked systems achieve the transparency illusion of a true distributed system.

How to pass this course

Attend the lectures • Read the textbooks • Attempt some problems, both in the books and in past papers. •

4