amoeba – a distributed operating system for the 1990s authors: sape j. mullender, guido van...

Post on 05-Jan-2016

219 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

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.

Design GoalsDesign Goals

1)1) TransparencyTransparency

2)2) DistributionDistribution

3)3) ParallelismParallelism

4)4) High PerformanceHigh Performance

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.

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

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

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

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

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

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

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

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

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.

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

top related