Top Banner
Ameoba Ameoba Designed by: Designed by: Prof Andrew S. Tanenbaum Prof Andrew S. Tanenbaum at Vrija University at Vrija University since 1981 since 1981
29

Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

Dec 19, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

AmeobaAmeoba

Designed by: Designed by:

Prof Andrew S. TanenbaumProf Andrew S. Tanenbaum

at Vrija Universityat Vrija University

since 1981since 1981

Page 2: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

Ameoba Design Ameoba Design PhilosophyPhilosophy

Computers are rapidly becoming Computers are rapidly becoming cheaper and fastercheaper and faster

Widespread use and increasing Widespread use and increasing performance in computer networksperformance in computer networks

Need for the ability to deal with Need for the ability to deal with physically distributed hardware physically distributed hardware while using logically centralized while using logically centralized softwaresoftware

Page 3: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

Ameoba Design Ameoba Design Philosophy Cont.Philosophy Cont.

Provide users with the illusion of a Provide users with the illusion of a single powerful timesharing single powerful timesharing system from a collection of system from a collection of machinesmachines

Page 4: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

Ameoba Distributed Ameoba Distributed System GoalsSystem Goals

SmallSmall Simple to useSimple to use Scalable to large numbers of Scalable to large numbers of

processorsprocessors Degree of Fault-ToleranceDegree of Fault-Tolerance High PerformanceHigh Performance Possibility for parallelismPossibility for parallelism Transparent to Users Transparent to Users

Page 5: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

Difference between Difference between Ameoba and Network OSAmeoba and Network OS

User logs into User logs into system as a wholesystem as a whole

System decides System decides best place to run best place to run programprogram

Single, system-Single, system-wide object wide object naming servicenaming service

User logs into one User logs into one specific machinespecific machine

Program executes Program executes on home machine on home machine unless specifiedunless specified

Files local unless Files local unless a remote file a remote file system mounted system mounted

Ameoba Network OS

Page 6: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

System ArchitectureSystem Architecture

WorkstationsWorkstations Processor PoolProcessor Pool Specialized Servers (file, data Specialized Servers (file, data

base, ect)base, ect) GatewayGateway

Page 7: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

System ArchitectureSystem Architecture

Processor Pool Workstations

Gateway

WAN

Specialized Servers(file, data base)

Page 8: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

WorkstationsWorkstations

One Per UserOne Per User Users carry out editing and other Users carry out editing and other

taskstasks Can be Suns, IBM PC/AT clones, Can be Suns, IBM PC/AT clones,

and X terminalsand X terminals

Page 9: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

Processor PoolProcessor Pool

Group of CPU’sGroup of CPU’s CPU can be dynamically allocated CPU can be dynamically allocated

and returned to the pooland returned to the pool Offers possibility of doing many Offers possibility of doing many

jobs in paralleljobs in parallel

Page 10: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

Specialized ServersSpecialized Servers

Directory ServersDirectory Servers File Servers and ReplicatesFile Servers and Replicates Boot ServersBoot Servers Other Specialized FunctionsOther Specialized Functions

Page 11: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

GatewaysGateways

Link Amoeba systems at different Link Amoeba systems at different sites into a single, uniform systemsites into a single, uniform system

Isolate Amoeba from peculiarities Isolate Amoeba from peculiarities of the protocols that must be used of the protocols that must be used over WAN’s over WAN’s

Page 12: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

Ameoba KernalAmeoba Kernal

All Amoeba machines run the All Amoeba machines run the same kernalsame kernal

Provides multithreaded process, Provides multithreaded process, communication services, and little communication services, and little elseelse

Goal is to keep kernal as small as Goal is to keep kernal as small as possible to enhance reliability and possible to enhance reliability and allow OS to run as user processesallow OS to run as user processes

Page 13: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

ObjectsObjects

Ameoba is object-basedAmeoba is object-based Uses capabilities for accessing Uses capabilities for accessing

objectsobjects System can be viewed as a System can be viewed as a

collection of objectscollection of objects Both hardware and software Both hardware and software

objects existobjects exist

Page 14: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

CapabilitiesCapabilities

Key that allows holder to perform some Key that allows holder to perform some (not necessarily all) operations on an (not necessarily all) operations on an objectobject

Each user process owns a collection of Each user process owns a collection of capabilities, which define the objects it capabilities, which define the objects it may access and the types of operations it may access and the types of operations it may perform on eachmay perform on each

Capabilities provide a unified mechanism Capabilities provide a unified mechanism for naming, accessing and protecting for naming, accessing and protecting objectsobjects

Page 15: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

Remote Procedure CallRemote Procedure Call

Object-based model implemented using Object-based model implemented using RPC’sRPC’s

Associated with each object is a server Associated with each object is a server process that manages the objectprocess that manages the object

User processes send a request message User processes send a request message to the server that manages an objectto the server that manages an object

The request message contains a The request message contains a capability for the object, the operation to capability for the object, the operation to be performed, and any parametersbe performed, and any parameters

Page 16: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

Remote Proceedure Call Remote Proceedure Call Cont.Cont.

The user process blocks while waiting The user process blocks while waiting for the call to completefor the call to complete

When complete, the server sends back When complete, the server sends back a reply message that unblocks the user a reply message that unblocks the user processprocess

Sending a request message, blocking, Sending a request message, blocking, and accepting a reply message forms and accepting a reply message forms the RPC, which can be encapsulated the RPC, which can be encapsulated using stub routinesusing stub routines

Page 17: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

Remote Procedure CallRemote Procedure CallCont.Cont.

RPC based on 4 primitivesRPC based on 4 primitives RPC interface built on top the Fast RPC interface built on top the Fast

Local Internet Protocol(FLIP).Local Internet Protocol(FLIP). FLIP provides automatic shortest FLIP provides automatic shortest

path routing of messages and path routing of messages and provides automatic gatewaying provides automatic gatewaying between connected networksbetween connected networks

Page 18: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

RPC PrimitivesRPC Primitives

getreqgetreq putreqputreq tanstans timeouttimeout

Page 19: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

getreqgetreq

Used by serversUsed by servers Once server has initialized itself, it Once server has initialized itself, it

performs a getreq operation with the performs a getreq operation with the port it wishes to listen toport it wishes to listen to

getreq blocks server until a client sends getreq blocks server until a client sends a request using transa request using trans

when a request arrives, the server when a request arrives, the server checks that the capability is valid and checks that the capability is valid and has sufficient rightshas sufficient rights

Page 20: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

putreqputreq

When the server completes an When the server completes an operation, it sends a reply to client operation, it sends a reply to client using putrequsing putreq

Page 21: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

transtrans

Used by clients to send requests to Used by clients to send requests to serversservers

Port of server is the first parameter to Port of server is the first parameter to transtrans

trans call blocks until server sends replytrans call blocks until server sends reply kernel on which trans is executed kernel on which trans is executed

attemps to locate the server by attemps to locate the server by broadcasting a message with the port in broadcasting a message with the port in itit

Page 22: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

Trans (cont.)Trans (cont.) If another kernel has a server waiting for a If another kernel has a server waiting for a

request on that port, it responds and the request on that port, it responds and the RPC is sent to the server which handles the RPC is sent to the server which handles the request and returns a replyrequest and returns a reply

The kernel keeps a cache of known The kernel keeps a cache of known locations of ports to improve performance locations of ports to improve performance for subsequent RPCsfor subsequent RPCs

trans is not called directly by clients, but trans is not called directly by clients, but imbedded in a proc call that handles the imbedded in a proc call that handles the marshaling and sending of datamarshaling and sending of data

Page 23: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

timeouttimeout

Used to set the amount of time Used to set the amount of time spent searching for the server spent searching for the server when doing a transactionwhen doing a transaction

default timeout is 5 secondsdefault timeout is 5 seconds

Page 24: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

Client/Server CodingClient/Server Coding

Not necessary to write server loop Not necessary to write server loop and client stub code yourselfand client stub code yourself

AIL(Amoeba Interface Language) AIL(Amoeba Interface Language) generates this code automaticallygenerates this code automatically

servers can be multithreaded but servers can be multithreaded but don’t have to bedon’t have to be

Page 25: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

DirectoriesDirectories

File names not implemented by the File names not implemented by the file serverfile server

Many more object types than files, so Many more object types than files, so a general naming service is requireda general naming service is required

Directory Server implements naming Directory Server implements naming service by implementing an arbitrary service by implementing an arbitrary directed graph of directoriesdirected graph of directories

Page 26: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

Directories Directories Cont.Cont.

Directory object is a list of (ASCII Directory object is a list of (ASCII string, capability-set) pairsstring, capability-set) pairs

Extra degree of fault tolerance is Extra degree of fault tolerance is achieved by duplication the achieved by duplication the directory serverdirectory server

The two servers communicate with The two servers communicate with each other to keep the data about each other to keep the data about directories consistentdirectories consistent

Page 27: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

FilesFiles

File server is known as a Bullet ServerFile server is known as a Bullet Server Uses a vary large buffer cache and Uses a vary large buffer cache and

stores file contiguously, both in core stores file contiguously, both in core and on disk to give a very high and on disk to give a very high performanceperformance

Bullet server files are immutable(once Bullet server files are immutable(once created cannot be changed)created cannot be changed)

Files created automically(do not Files created automically(do not officially exist until commited)officially exist until commited)

Page 28: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

Amoeba and POSIX Amoeba and POSIX EmulationEmulation

POSIX emulation library provides POSIX emulation library provides reasonable source code reasonable source code compatibilitycompatibility

This provides Amoeba with a This provides Amoeba with a reasonable programming reasonable programming environment and simplifies the environment and simplifies the migration of software and staff migration of software and staff from UNIX-like systemsfrom UNIX-like systems

Page 29: Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.

ConclusionConclusion

Amoeba was designed to provide a Amoeba was designed to provide a transparent distributed systemtransparent distributed system

Still undergoing development, but Still undergoing development, but current version goes a long way current version goes a long way towards satisfying the design goalstowards satisfying the design goals

POSIX emulation has provided a POSIX emulation has provided a ready-made programming ready-made programming environmentenvironment