Amoeba1

22
AMOEBA study of distributed system Prepared By: ChiragShah(30652) Pritesh Vora(30667) Guided By:

description

 

Transcript of Amoeba1

Page 1: Amoeba1

AMOEBAstudy of distributed system

Prepared By:ChiragShah(30652)Pritesh Vora(30667)

Guided By:

Page 2: Amoeba1

It is distributed operating system which collects a huge variety of single machines connected over a network to one ,huge computer.

It is developed at Vrije University in amsterdamby Andrew S. Tannenbum.

AMOEBA system will connect the multiple AMOEBA systems in different sites into single coherent system.

This goal is obtained by using objects and their capabilities in uniform ways

what is Amoeba?

Page 3: Amoeba1

Developed at the Vrije Universiteit Amsterdam, Netherlands. Chief designer: Andrew S. Tanenbaum

Other developers were Frans Kaashock, Sape J. Mullender, Robbert van Renesse, Leendert van Doorn,  Kees Verstoep and many, many more. First proto release in 1983 (V1.0), last official release 1996 (V5.3) Supports multiple architectures: 68k, i80386, SPARC

History

Page 4: Amoeba1

A. Transparency:

B. Distribution:

C. Parallelism:

D. Small kernel aprroach:

E. Performance:

Design Goals

Page 5: Amoeba1

System ArchitectureIt implements universal distributed client-server model.Whole system need only three functions to work:1. Transaction call from a

client2. thegetRequest3. PutReply functions on

server side.

Page 6: Amoeba1

It consists of four principle components:

1. File servers:

2. Workstations:

3. Pool processors:

4. Gateways:

System Architecture

Page 7: Amoeba1

NetworkingCurrently Amoeba has only drivers for Ethernet,but other network drivers are under consideration.

Amoeba do not set upper limit for no. of computers but in some cases it is limited by n/w bandwidth or topology.

Page 8: Amoeba1

HeterogeneityAmoeba is reasonably portable and has run on five

architectures.

It is currently available on following architectures.

1. The motorola MC680x0 family

2. The intel 80386 family

3. Members of SPARC family

Processor pool may contain processors more than one

type of architecture.

Configurations supported:

Pool,specilazied server,workstation

Page 9: Amoeba1

AMOEBA KERNEL FEATUREAMOEBA kernel has some major features over commonly used

other os kernels.

1. High performance server client communication:

Remote procedure call:

Interprocess procedure call:

2.Kernel administration:

Remote rebooting of kernels:

Remote status report:

Page 10: Amoeba1

AMOEBA’s object concept & capabilitiesAMOEBA is organized as a collection of objects:each with some operations that process can perform on it.There are many object classes like files,directories,memorysegments,processes etc. When an object is created, the server returns a Capability.  capability is used to address and protect the object.

Page 11: Amoeba1

Process ManagementA process is an object in Amoeba. Information about the processes in Amoeba are contained in capabilities and in a data structure called a process descriptor.

Amoeba supports a simple thread model. When a process starts up, it has at least one thread. The number of threads is dynamic.

Three methods are provided for thread synchronization:Mutexes,Semaphores ,Signals

Page 12: Amoeba1

Memory ManagementAmoeba supplies a simple memory management based on segments. Each

process owns at least three segments:

1. Text/Code segment

2. Stack segment for the main thread/process

3. Data segment

Each further thread gets his own stack segment, and the process can

allocated arbitrary additional data segments.

All segments are page protected by the underlying MMU, the kernel

segments, too

Page 13: Amoeba1

CommunicationAll processes, the kernel too, communicate with a standardized RPC

(Remote procedure call) interface. There are only three functions to reach this

goal:

1. trans(req_header, req_buf, req_size, rep_header,rep_buf, rep_size)

do a transaction to another server

2. getreq(req_header,req_buf,req_siz)

get a client request

3. putrep(rep_header,rep_buf,rep_siz)

send a reply to the client

Page 14: Amoeba1

The Virtual Amoeba Machine

The Virtual Amoeba Machine

Environment

consists of these main parts:

1. UThreads

2. AMUNIX

3. FLIPD

4. VAM

Page 15: Amoeba1

The Virtual Amoeba Machine5. Amoeba

The native Amoeba kernel (called the VERTEX-Kernel), with these features:Clean and modern micro kernel design Easy to implement device drivers User space device driver support Full network performance through direct FLIP network access The kernel operates standalone, and needs no further configuration

Page 16: Amoeba1

General RequirementsThe amoeba distributed operating system can run on many different types

and brands of computers.

It is intended that it should run on network with at least five computers.

the main machine should be equipped with at least 64 MB RAM (128 MB

recommended) and at least with 500MB disk space.

Currently, Fireball Amoeba only supports Ethernet. In special only the 10

MBit/s connectivity with RJ 45 or RG 58 connectors, and now 100 MBit/s Fast

Ethernet, too.

Page 17: Amoeba1

ImplementationAccording to Tanenbaum (1990), AMOEBA system has been implemented to

five different CPU : 68010, NS 32016, 8088, VAX, PDP-11.

Current configuration has 48 single board VME based computers using

68020 and 68030 CPU and also 10 VAX CPU forming additional processor

pool.

Current research includes connecting AMOEBA at 5 locations in 3 countries.

Using Wide Area Network facilities.

Page 18: Amoeba1

Security Amoeba has two level of protection:

1. Ports for protecting access to server

2. Capabilities for protecting access to individual objects.

Hardware solution: A small interface box (F - box) are put between each processor module and the network.

software solution: since ports for public servers are known to all users it is easy for an intruder to impersonate a server just by doing a get_rerequest on the server’s port.

Page 19: Amoeba1

Comparision of Amoeba and V Amoeba and V use the small kernel to provide the infrastructure of the

distributed system.

Amoeba and V are free-market model service, Service such as the file

system are in principle just an ordinary user process.

Amoeba and V use client-server and remote procedure call.

V does not have the processor pool, and there is no dynamic processor

allocation. Amoeba has a processor pool and does the processor allocation.

Amoeba is more fault tolerance than V (Cheriton 1988), because V was

designed for interactive workstation, so if there are something goes wrong,

user can re-execute.

Page 20: Amoeba1

Field of Application Distributed measuring and data acquisition systems, for example remote

digital camera servers connected with an Ethernet network.

The native Amoeba kernel is very well suited for embedded systems.

Distributed control systems.

High performance parallel computing and other distributed numerical

computations.

Distributed file systems using raw disk access on the top of standard

operating systems.

Page 21: Amoeba1

Conclusion A distributed system potentially will be more reliable and low cost than a

time sharing system.

By placing the other service outside the kernel and keeping the kernel as

small as possible, the system is more flexible and reliable.

The client-server model with remote procedure call have proved that using

basic primitive communication the overhead of communication can be

reduced.

By using the object and capability model, Amoeba is more flexible and

more easily be used.

Amoeba is the only one Distributed Operating System which implements

Wide Area Network.

Page 22: Amoeba1

Thank you