The Amoeba Distributed Operating System Presented by Peter Hebden ICS 243F, Spring 2002.

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

Threads, SMP, and Microkernels
Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
Amoeba -- Introduction
An Overview of the Amoeba Distributed Operating System Mallikarjuna Reddy Srinivas Vadlamani University of California Irvine.
Study of Hurricane and Tornado Operating Systems By Shubhanan Bakre.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
Computer Systems/Operating Systems - Class 8
Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.
Distributed Processing, Client/Server, and Clusters
Amoeba Distributed Operating System James Schultz CPSC 550 Spring 2007.
Case Study: Distributed OS Distributed Systems, Lecture # 17.
CS 550 Amoeba-A Distributed Operation System by Saie M Mulay.
Yousuf Surmust Instructor: Marius Soneru Course: CS550 Fall 2001
CMPT 300: Final Review Chapters 8 – Memory Management: Ch. 8, 9 Address spaces Logical (virtual): generated by the CPU Physical: seen by the memory.
Common System Components
Operating Systems CS208. What is Operating System? It is a program. It is the first piece of software to run after the system boots. It coordinates the.
1 I/O Management in Representative Operating Systems.
PRASHANTHI NARAYAN NETTEM.
Amoeba Distributed Operating System Ken Baggett CPSC 550 Spring 2006.
NFS. The Sun Network File System (NFS) An implementation and a specification of a software system for accessing remote files across LANs. The implementation.
DISTRIBUTED COMPUTING
CS533 Concepts of Operating Systems Class 9 Lightweight Remote Procedure Call (LRPC) Rizal Arryadi.
Chapter 51 Threads Chapter 5. 2 Process Characteristics  Concept of Process has two facets.  A Process is: A Unit of resource ownership:  a virtual.
Computer System Architectures Computer System Software
Chapter 4 Threads, SMP, and Microkernels Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
Amoeba - A Distributed System for the 1990s Group A6 Abdul Aziz Habib Ammari Pearl Thomas Vamsi Krishna.
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
Chapter 4 Storage Management (Memory Management).
Chapter 2 Operating System Overview
Processes and Threads Processes have two characteristics: – Resource ownership - process includes a virtual address space to hold the process image – Scheduling/execution.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
Processes Introduction to Operating Systems: Module 3.
Amoeba – A Distributed Operating System for the 1990s
1 Threads, SMP, and Microkernels Chapter Multithreading Operating system supports multiple threads of execution within a single process MS-DOS.
Applications Use as a Program development environment-it has a partial UNIX emulation library. Most of the common library calls like open, write, close,
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young MACH: A New Kernel Foundation for UNIX Development Presenter: Wei-Lwun.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Module 3: Operating-System Structures System Components Operating System Services.
MINIX Presented by: Clinton Morse, Joseph Paetz, Theresa Sullivan, and Angela Volk.
Background Computer System Architectures Computer System Software.
Threads, SMP, and Microkernels Chapter 4. Processes and Threads Operating systems use processes for two purposes - Resource allocation and resource ownership.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
System Models Advanced Operating Systems Nael Abu-halaweh.
Amoeba Objectives: to the user system should look like a single computer The computing power is located in a processor pool containing a number of CPU’s,
AMOEBA study of distributed system
Introduction to Operating Systems Concepts
Module 3: Operating-System Structures
Chorus Distributed OS - Goals
File System Implementation
Threads, SMP, and Microkernels
Chapter 3: Operating-System Structures
The Amoeba Distributed Operating System
Lecture 4- Threads, SMP, and Microkernels
Amoeba -- Introduction
Multithreaded Programming
Chapter 2: Operating-System Structures
An Overview of the Amoeba Distributed Operating System
Introduction Separate application from different supplier run on different operating systems need some higher level of coupling Application often evolve.
Chapter 15: File System Internals
System calls….. C-program->POSIX call
Database System Architectures
Chapter 2: Operating-System Structures
Presentation transcript:

The Amoeba Distributed Operating System Presented by Peter Hebden ICS 243F, Spring 2002

2 Introduction (1) Amoeba 5.0 is a a general purpose distributed operating system. The researchers were motivated by the declining cost of CPU chips. They saw the challenge of designing and implementing software to manage the growing availability of computing power in a convenient way. Their basic idea: users should not be aware of the number or location of processors, file servers, or other resources. The complete system should appear to be a single computer.

3 At the Free University in Amsterdam, Amoeba ran on a collection of 80 single-board SPARC computers connected by an Ethernet, forming a powerful processor pool. [Amoeba 1996 ] This equipment is pictured next. It is used for research in distributed and parallel operating systems, runtime systems, languages, and applications. Introduction (2)

4 Processor Pool of 80 single-board SPARC computers.

5 Design Goals (1) The four basic design goals of Amoeba were: 1. Distribution: Connecting together many machines so that multiple independent users can work on different projects. The machines need not be of the same type, and may be spread around a building on a LAN. 2. Parallelism: Allowing individual jobs to use multiple CPUs easily. For example, a branch and bound problem, such as the TSP, would be able to use tens or hundreds of CPUs. Or, one user playing chess where the CPUs evaluate different parts of the game tree.

6 3. Transparency: Having the collection of computers act like a single system. So, the user should not log into a specific machine, but into the system as a whole. 4. Performance: Achieving all of the above in an efficient manner. The basic communication mechanism should be optimized to allow messages to be sent and received with a minimum of delay. Also, large blocks of data should be moved from machine to machine at high bandwidth. Design Goals (2)

7 Architectural Models Three basic models for distributed systems: [Coulouris 1988] 1. Workstation/Server: majority as of Processor pool: users just have terminals. 3. Integrated: heterogeneous network of machines that may perform both the role of server and the role of application processor. Amoeba is an example of a hybrid system that combines characteristics of the first two models. Highly interactive or graphical programs may be run on workstations, and other programs may be run on the processor pool.

8 The Amoeba System Architecture Four basic components: 1. Each user has a workstation running X Windows (X11R6). 2. Pool of processors which are dynamically allocated to users as required. 3. Specialized servers: file, directory, database, etc. 4. These components were connected to each other by a fast LAN, and to the wide area network by a gateway.

9

10 Microkernel and Server Architecture Microkernel Architecture: every machine runs a small, identical piece of software called the kernel. The kernel supports: 1. Process, communication, and object primitives. 2. Raw device I/O, and memory management. Server Architecture: User space server processes are built on top of the kernel. Modular design: 1. For example, the file server is isolated from the kernel. 2. Users may implement a specialized file server.

11 Threads Each process has its own address space, but may contain multiple threads of control. Each thread logically has its own registers, program counter, and stack. Each thread shares code and global data with all other threads in the process. For example, the file server utilizes threads. Threads are managed and scheduled by the microkernel. Both user and kernel processes are structured as collections of threads communicating by RPCs.

12

13 Remote Procedure Calls Threads within a single process communicate via shared memory. Threads located in different processes use RPCs. All interprocess communication in Amoeba is based on RPCs. A client thread sends a message to a server thread, then blocks until the server thread replies. The details of RPCs are hidden by stubs. The Amoeba Interface Language automatically generates stub procedures.

14

15 Great effort was made to optimize performance of RPCs between a client and server running as user processes on different machines. 1.1 msec from client RPC initiation until reply is received and client unblocks.

16 Group Communication One-to-Many Communication: A single server may need to send a message to a group of cooperating servers when a data structure is updated. Amoeba provides a facility for reliable, totally-ordered group communication. All receivers are guaranteed to get all group messages in exactly the same order.

17 Objects and Capabilities (1) All services and communication are built around them. Object: an abstract data type. Each object is managed by a server process to which RPCs can be sent. Each RPC specifies the object to be used, operation to be performed, and parameters passed. During object creation, the server constructs a 128 bit value called a “capability” and returns it to the caller.

bit Capability The structure of a capability: 1. Server Port identifies the server process that manages the object. 2. Object field is used by the server to identify the specific object in question. 3. Rights field shows which of the allowed operations the holder of a capability may perform. 4. Check Field is used for validating the capability.

19 Subsequent operations on the object require the user to send its capability to the server to both specify the object and prove that the user has permission to manipulate the object. Capabilities are protected cryptographically. A new capability has all rights bits on, and this owner capability is returned to the client. This client may create a restricted capability by passing its capability and a bit mask for the new rights to the server. All objects in the entire system are protected using this scheme. Objects and Capabilities (2)

20 Given a collection of memory segments, a process p1 can go to the process server and ask for a process p2 to be constructed from them.

21 Memory Management When a process is executing, all of its segments are in memory. No swapping or paging. Amoeba can only run programs that fit in physical memory. Advantage: simplicity and high performance.

22 Software Outside the Kernel (1) Most of the traditional operating system services are implemented as server processes. Objects and capabilities provide the unifying theme. Bullet File Server: 1. Files are immutable. 2. Files are stored contiguously on disk. 3. Caches whole files contiguously in core. 4. Usually, when a user program requests a file, the Bullet server will send the entire file in a single RPC (using a single disk operation). 5. Does not handle naming. Just reads and writes files according to their capabilities.

23

24 Software Outside the Kernel (2) Directory Server: 1. File management and naming are separated. 2. The Bullet server manages files, but not naming. 3. A directory server maps ascii strings onto capabilities. 4. Directories contain (string, capability) pairs. 5. Directories are not immutable. 6. Operations for managing replicated files in a consistent way are provided.

25 One row for each filename. One column for each protection domain: user, group, others.

26 Software Outside the Kernel (3) Additional software outside the kernel includes: 1. Compilers: C, Pascal, Modula 2, BASIC, and Fortran. 2. Orca for parallel programming. 3. Utilities modeled after UNIX commands. 4. UNIX emulation. 5. TCP/IP for Internet access. 6. X Windows. 7. Driver for linking into a SunOS UNIX kernel. 8. Boot server: provides a degree of fault tolerance. a) Polls server processes. b) If no reply, allocates new pool processor where a new copy is started.

27 Conclusions: 4.0 After more than eight years of development and use, the researchers assessed Amoeba. [Tanenbaum 1990] Among the things done right were: 1. Basing the system on objects. 2. Using a single uniform mechanism (capabilities) for naming and protecting objects in a location independent way. 3. Designing a new, very fast file system. Among the things done wrong were: 1. Not allowing preemption of threads. 2. Initially building a window system instead of using X Windows. 3. Not having multicast from the outset.

28 Conclusions: 5.0 In a Status Report [Tanenbaum 1991], the researchers concluded: 1. Amoeba has demonstrated that it is possible to build a efficient, high performance distributed operating system. 2. The microkernel architecture allows the system to evolve as needed. 3. Objects and capabilities provide a unifying theme. 4. Amoeba is a work in progress.

29 [Coulouris 1988] Coulouris, George F., Dollimore, Jean: Distributed Systems: Concepts and Design, 1988 [Tanenbaum 1990] Tanenbaum, A.S., Renesse, R. van, Staveren, H. van., Sharp, G.J., Mullender, S.J., Jansen, A.J., and Rossum, G. van: "Experiences with the Amoeba Distributed Operating System," Commun. ACM, vol. 33, pp , Dec [Tanebaum 1991] Tanenbaum, A.S., Kaashoek, M.F., Renesse, R. van, and Bal, H.: "The Amoeba Distributed Operating System-A Status Report," Computer Communications, vol. 14, pp , July/August [Amoeba 1996] The Amoeba Distributed Operating System, References