An Overview of the Amoeba Distributed Operating System

Slides:



Advertisements
Similar presentations
Distributed Processing, Client/Server and Clusters
Advertisements

COURSE: COMPUTER PLATFORMS
Dr. Kalpakis CMSC 621, Advanced Operating Systems. Fall 2003 URL: Distributed System Architectures.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
An Overview of the Amoeba Distributed Operating System Mallikarjuna Reddy Srinivas Vadlamani University of California Irvine.
Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.
Amoeba Distributed Operating System James Schultz CPSC 550 Spring 2007.
PRASHANTHI NARAYAN NETTEM.
Hardware/Software Concepts Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology.
DISTRIBUTED COMPUTING
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
The Amoeba Distributed Operating System Presented by Peter Hebden ICS 243F, Spring 2002.
Ch4: Distributed Systems Architectures. Typically, system with several interconnected computers that do not share clock or memory. Motivation: tie together.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Lecture 3: Sun: 16/4/1435 Distributed Computing Technologies and Middleware Lecturer/ Kawther Abas CS- 492 : Distributed system.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Types of Operating Systems
INFORMATION SYSTEM-SOFTWARE Topic: OPERATING SYSTEM CONCEPTS.
Chapter 2 Introduction to Systems Architecture. Chapter goals Discuss the development of automated computing Describe the general capabilities of a computer.
1 Multiple Processors, A Network, An OS, and Middleware Chapter Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.
Types of Operating Systems 1 Computer Engineering Department Distributed Systems Course Assoc. Prof. Dr. Ahmet Sayar Kocaeli University - Fall 2015.
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.
Distributed Systems Unit – 1 Concepts of DS By :- Maulik V. Dhamecha Maulik V. Dhamecha (M.Tech.)
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
Distributed Systems Architectures. Topics covered l Client-server architectures l Distributed object architectures l Inter-organisational computing.
Auburn University COMP8330/7330/7336 Advanced Parallel and Distributed Computing Parallel Hardware Dr. Xiao Qin Auburn.
Distributed Operating Systems Spring 2004
Motivation, Terminology, Layered systems (and other random stuff)
Chapter 1: Introduction
Chapter 1: Introduction
Distributed Operating Systems
Chapter 1: Introduction
Chapter 1: Introduction
File System Implementation
Grid Computing.
Distributed web based systems
CSC 480 Software Engineering
Chapter 1: Introduction
Chapter 1: Introduction
Introduction to client/server architecture
#01 Client/Server Computing
Chapter 1: Introduction
Chapter 1: Introduction
Chapter 16: Distributed System Structures
Ch > 28.4.
Advanced Operating Systems
Basic Computer Networks Configurations
Chapter 17: Database System Architectures
Outline Midterm results summary Distributed file systems – continued
Multiple Processor Systems
CLUSTER COMPUTING.
The Amoeba Distributed Operating System
Chapter 1: Introduction
Chapter 2: Operating-System Structures
Subject Name: Operating System Concepts Subject Number:
Multiple Processor and Distributed Systems
Chapter 1: Introduction
Chapter 1: Introduction
Chapter 15: File System Internals
Chapter 1: Introduction
LO2 – Understand Computer Software
Introduction To Distributed Systems
Database System Architectures
Chapter 1: Introduction
Chapter 2: Operating-System Structures
Chapter 1: Introduction
Chapter 1: Introduction
#01 Client/Server Computing
Presentation transcript:

An Overview of the Amoeba Distributed Operating System Mallikarjuna Reddy Srinivas Vadlamani University of California Irvine

Outline Introduction What is Amoeba? Design goals Architecture Communication primitives Resource management Priority Mechanism Summary Acknowledgements

Motivation for Distributed Systems Fall in microprocessor prices during early 80’s Mainframes set-up expensive Search for efficient and economical substitutes Goals Distributed Resource Management High Availability Simplicity Parallelism Transparency scalability fast file system Due to advances in integrated circuit technology in the early 80s, prices of microprocessors fell. With mainframe set-ups extremely expensive, people started searching for alternatives that could be efficient and economical. This led to development of the area of distributed systems.

Design Goals of Amoeba Distribution: connecting together many machines Transparency: collection of computers acting like a single system Parallelism: allowing individual jobs to use multiple CPUs Example: the traveling salesman problem Fault Tolerance Boot Service Performance: achieving all of the above in an efficient manner We have already seen the first two – distribution and transparency – and are fairly obvious. Parallelism is allowing a task to be executed by dividing it among multiple CPUs and then merging the results. A typical example could be the classic TSP. If we have tens or even thousands of CPUs at our disposal, then we can break the problem into pieces and have them executed by all the CPUs in parallel, and later merge the results from all of them. The performance goal is to achieve all the other goals in an efficient and economical manner.

Architecture Workstations Used by users to access the system Limited processing power but not “dumb” Pool Processors Heavy duty computation Dynamically allocated to user tasks Can be multicomputers or multiprocessors Specialized Servers Example: File or Directory servers Gateway Connects Amoeba to a WAN Converts data between FLIP and TCP/IP The Amoeba architecture has 4 components. Workstations are used by the users to access the system, and they have some processing capability although limited. This is to allow execution of tasks with a high expected response time – like graphical input/output. Then there is a pool processors, which is a group of computers that actually do all the heavy duty computation. They are not owned by any user, and are only dynamically allocated to the user’s tasks. Examples of Specialized servers are file servers and directory servers. Lastly, we have a gateway that connects the Amoeba system to a WAN. As we shall later see, Amoeba uses a FLIP protocol for internal communication. So, for getting connected to a WAN, which normally uses TCP/IP, we need a gateway that can do the protocol conversion. We will talk about FLIP soon.

Architecture contd... WAN This is a graphical representation of the Amoeba system: We have the pool processors, all interconnected with Amoeba running on them. Now, we have the individual users accessing the system from workstations. The pool processors are abstracted so that the users think they are working on a uniprocessor, which is how transparency is achieved. Here we have a specialized server, which could be a file server. Here again, the user does not know, where and how his file data is handled by the system. Now, we have another specialized server, and this could be a directory server. Finally, here is the gateway that connects the Amoeba system to the WAN. It does FLIP to TCP/IP and back data conversion.

Communication Primitives Remote procedure call based FLIP protocol for communication: Fast Local Internet Protocol Advantage: increased performance over TCP/IP Disadvantage: need a gateway to connect the LAN to a WAN Amoeba Interface Language (AIL) Generates stubs Handles marshalling/unmarshalling of parameters Preserves transparency of the system The communication is RPC based; the client generates a request, marshals the parameters and sends them across to the server; the sever unmarshalls the data, processes the request, and sends back the results to the client. They use the FLIP, which stands for Fast Local Internet Protocol. The advantage of this protocol is its enhanced performance in terms of speed over TCP. However, the disadvantage is that now we have to use a gateway to connect the system to a WAN. To preserve transparency, the system uses the Amoeba Interface Language which is similar to the compilers that we have for RPC. The AIL does stuff like generating stubs, handling marshalling and unmarshalling of parameters, and lets the user not worry about such communication details.

Resource Management Computation done by processor pools Resource Manager on each node Tracks and controls resources on its node Dedicated Process Server Tracks which processors are free Allocates tasks to a group of processors Preserves transparency Allocation process is unknown to the user User has no control over allocation As was seen in the previous slides, computation is done by pool processors. The way resource allocation is done is by having a resource manager at each node that tracks and controls resources on that node, and having a centralized dedicated process server that tracks which processors are free, so tasks could be allocated to them. Again, transparency is preserved by not letting the user be aware of the resource mechanism.

Priority Mechanism A Bank Server Analogy with a monetary bank Regulates access to shared resources Example of a shared resource is processing power of CPUs On initiation each process gets some number of tokens Can be thought of as “virtual money” held by the process To gain access to shared resources, process has to expend money At any given moment, the “richest” process gets access to the shared resource Amoeba has a priority mechanism, where it has a designated bank server that regulates access to shared resources like processing power of CPUs utilized by a user’s process. The bank server is analogous to a monetary bank. Each time a process starts, it is given some virtual money, which it uses to gain access to shared services. At any given amount, the process with the most virtual money is given access to the shared process. The mechanism is much more elaborate than could be described here. This is only a very brief description of the mechanism.

Summary Architectural Features Transparent distributed computing using a large number of processors Support for parallel computing Micro-kernel architecture High performance communication using RPC and FLIP Weaknesses Not compatible with UNIX Virtual memory not supported (for performance reasons) Performs poorly when there is insufficient memory No NFS support

Acknowledgements Andrew S. Tanenbaum et al The Amoeba Distributed Operating System – A Status Report Apan Qasem, CS Dept, Florida State University An Introduction to the Amoeba Distributed Operating System Yasir Ali An Overview of the Amoeba Distributed Operating System Kingsley Cheung, Gernot Heiser, School of Computer Science and Engineering, University of NSW, Sydney, Australia A Resource Management Framework for Priority-Based Physical Memory Allocation