16
Amoeba – A Amoeba – A Distributed Distributed Operating System for Operating System for the 1990s the 1990s Authors: Authors: Sape J. Mullender, Sape J. Mullender, Guido van Rossum, Guido van Rossum, Andrew S. Andrew S. Tanenbaum, Tanenbaum, Robbert van Robbert van Renesse, Renesse, and Hans van and Hans van Staveren Staveren Presented by: Presented by: Oliver Hampton Oliver Hampton Wednesday, October 1, Wednesday, October 1, 2003 2003

Amoeba – A Distributed Operating System for the 1990s Authors: Sape J. Mullender, Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans

Embed Size (px)

Citation preview

Page 1: Amoeba – A Distributed Operating System for the 1990s Authors: Sape J. Mullender, Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans

Amoeba – A Distributed Amoeba – A Distributed Operating System for the Operating System for the

1990s1990s

Authors:Authors:Sape J. Mullender, Sape J. Mullender,

Guido van Rossum, Guido van Rossum, Andrew S. Tanenbaum, Andrew S. Tanenbaum, Robbert van Renesse, Robbert van Renesse, and Hans van Staverenand Hans van Staveren

Presented by:Presented by:

Oliver HamptonOliver Hampton

Wednesday, October 1, 2003Wednesday, October 1, 2003

Page 2: Amoeba – A Distributed Operating System for the 1990s Authors: Sape J. Mullender, Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans

AmoebaAmoeba

Developed atDeveloped at::

•Vrije Unviversiteit (Amsterdam)Vrije Unviversiteit (Amsterdam)

•(Free University)(Free University)

In cooperation withIn cooperation with: :

•Centrum voor Wiskunde en Centrum voor Wiskunde en Informatica (Amsterdam)Informatica (Amsterdam)

•(Center for Mathematics and (Center for Mathematics and Computer Science)Computer Science)

•Research began in 1980Research began in 1980

Page 3: Amoeba – A Distributed Operating System for the 1990s Authors: Sape J. Mullender, Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans

ComponentsComponents

•WorkstationsWorkstations: : supports editing and supports editing and other tasks that other tasks that require fast require fast interactive responseinteractive response

•Processor PoolProcessor Pool: : does most of the does most of the heavy duty heavy duty processingprocessing

•Specialized Specialized ServersServers: file server, : file server, data basedata base

•GatewayGateway: links : links Amoeba domains Amoeba domains togethertogether

Page 4: Amoeba – A Distributed Operating System for the 1990s Authors: Sape J. Mullender, Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans

Network vs. Transparent Distributed Network vs. Transparent Distributed SystemSystem

NetworkNetwork: : •Each user logs into one specific machine (home Each user logs into one specific machine (home machine).machine).•Programs execute on the home machine, unless the Programs execute on the home machine, unless the user gives an explicit command to run it elsewhere.user gives an explicit command to run it elsewhere.

Transparent Distributed SystemTransparent Distributed System: : •User logs into the system, not to any specific User logs into the system, not to any specific machine. machine. •When a program is run, the system, not the user When a program is run, the system, not the user determines the best place to run it.determines the best place to run it.

Page 5: Amoeba – A Distributed Operating System for the 1990s Authors: Sape J. Mullender, Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans

Design GoalsDesign Goals

1)1) TransparencyTransparency

2)2) DistributionDistribution

3)3) ParallelismParallelism

4)4) High PerformanceHigh Performance

Page 6: Amoeba – A Distributed Operating System for the 1990s Authors: Sape J. Mullender, Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans

Objects and CapabilitiesObjects and Capabilities

• Amoeba is an Object-Based systemAmoeba is an Object-Based system• ObjectObject: abstract data type on which well-defined : abstract data type on which well-defined

operations may be performedoperations may be performed• Examples: file, process, or directoryExamples: file, process, or directory

• Objects are identified and protected by a capabilityObjects are identified and protected by a capability• CapabilityCapability: a handle on an object. Allows the folder : a handle on an object. Allows the folder

to perform operations on the object.to perform operations on the object.

Page 7: Amoeba – A Distributed Operating System for the 1990s Authors: Sape J. Mullender, Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans

Communication PrimitivesCommunication Primitives

• Remote Procedure Call (RPC) model is used Remote Procedure Call (RPC) model is used between Client and Serverbetween Client and Server

• do_operationdo_operation• get_requestget_request• send_replysend_reply

• Multiple Inheritance via ClassesMultiple Inheritance via Classes• Amoeba Interface Language (AIL)Amoeba Interface Language (AIL)

• Interface for object manipulationInterface for object manipulation• Marshal / Unmarshal RPC parametersMarshal / Unmarshal RPC parameters• Request / Reply transport mechanismRequest / Reply transport mechanism

Page 8: Amoeba – A Distributed Operating System for the 1990s Authors: Sape J. Mullender, Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans

Now that we know what objects Now that we know what objects are, how do we find them?are, how do we find them?

• Objects in Amoeba may be physically located Objects in Amoeba may be physically located anywhere there is disk space.anywhere there is disk space.

• LocatingLocating• do_operation call arrives at kerneldo_operation call arrives at kernel• Kernel checks if Service Port is knownKernel checks if Service Port is known• If not, kernel broadcasts locate packetIf not, kernel broadcasts locate packet

• Locate packet asks if there are servers with get_requests for Locate packet asks if there are servers with get_requests for the port in questionthe port in question

Page 9: Amoeba – A Distributed Operating System for the 1990s Authors: Sape J. Mullender, Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans

Amoeba File SystemAmoeba File System

• Public capabilities are accessible by usersPublic capabilities are accessible by users• Such as: command executables, public files, data bases Such as: command executables, public files, data bases

• Hierarchical Directory StructureHierarchical Directory Structure• Directories are ObjectsDirectories are Objects• Directory is a set of (name, capability) pairsDirectory is a set of (name, capability) pairs• Basic OperationsBasic Operations

• LookupLookup

• EnterEnter

• DeleteDelete

• Directory ServerDirectory Server• Reliability & Dependability Reliability & Dependability • Security: directories may be encryptedSecurity: directories may be encrypted

Page 10: Amoeba – A Distributed Operating System for the 1990s Authors: Sape J. Mullender, Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans

Bullet File ServerBullet File Server

• Increased Performance - FASTIncreased Performance - FAST• 3 fold increase over Sun Network File System (NFS)3 fold increase over Sun Network File System (NFS)

• Files are stored contiguously – (next slide)Files are stored contiguously – (next slide)• Increased FragmentationIncreased Fragmentation

• Example: may require 800 MB disk to store 500 MB Example: may require 800 MB disk to store 500 MB worth of filesworth of files

• Files are immutableFiles are immutable• Read_fileRead_file• Create_fileCreate_file• Delete_fileDelete_file

Page 11: Amoeba – A Distributed Operating System for the 1990s Authors: Sape J. Mullender, Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans

Bullet File Server ContinuedBullet File Server Continued• Stores files contiguously on disk and in server’s Stores files contiguously on disk and in server’s

RAM cacheRAM cache• Processors may only operate on files that fit in their Processors may only operate on files that fit in their

physical memoryphysical memory

Page 12: Amoeba – A Distributed Operating System for the 1990s Authors: Sape J. Mullender, Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans

Process ManagementProcess Management

• A Process is an Object

• Process information is contained in Capabilities and in a data structure called the Process Descriptor

• Process Descriptor

•Host Descriptor

•Capabilities

•Segment Component

•Thread Component

Page 13: Amoeba – A Distributed Operating System for the 1990s Authors: Sape J. Mullender, Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans

Process Management ContinuedProcess Management Continued

• Processes have explicit control over their Processes have explicit control over their address space.address space.• mapping segments in and outmapping segments in and out

• Processes StatesProcesses States• RunningRunning• StunnedStunned

• Process exists but does not execute Process exists but does not execute instructions; example, debugginginstructions; example, debugging

Page 14: Amoeba – A Distributed Operating System for the 1990s Authors: Sape J. Mullender, Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans

Process Management ContinuedProcess Management Continued

• ThreadsThreads• Process start-up: it has at least one threadProcess start-up: it has at least one thread• Thread number is dynamicThread number is dynamic• During execution: During execution:

• Process may create additional threadsProcess may create additional threads• Process may terminate existing threadsProcess may terminate existing threads

• Threads are managed by the kernelThreads are managed by the kernel• When threads do RPCsWhen threads do RPCs

• Kernel can block threadKernel can block thread• Kernel can schedule another thread in blocked thread’s place if Kernel can schedule another thread in blocked thread’s place if

one is availableone is available

Page 15: Amoeba – A Distributed Operating System for the 1990s Authors: Sape J. Mullender, Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans

PerformancePerformance•Amoeba performance data on two 16.7-megahertz Motorola Amoeba performance data on two 16.7-megahertz Motorola MC68020s, with a user process on each, communicating MC68020s, with a user process on each, communicating over a 10-megabit-per-second Ethernet. over a 10-megabit-per-second Ethernet.

•Native Amoeba Remote Communication: at 8 KB (Case 2) Native Amoeba Remote Communication: at 8 KB (Case 2) is 3.05 times faster than the Sun RPC remote (NFS) and is 3.05 times faster than the Sun RPC remote (NFS) and 2.78 times faster than the Unix driver remote.2.78 times faster than the Unix driver remote.

Page 16: Amoeba – A Distributed Operating System for the 1990s Authors: Sape J. Mullender, Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans

ConclusionsConclusions

Review of Design Goals:Review of Design Goals:• Transparency: Transparency:

• User is unaware of location and number of User is unaware of location and number of processors available in Amoeba System processors available in Amoeba System

• Distribution: Distribution: • Objects are distributed, as is computational powerObjects are distributed, as is computational power

• Parallelism: Parallelism: • Multi-Thread ProcessesMulti-Thread Processes

• High Performance: High Performance: • Bullet File Server, performance dataBullet File Server, performance data