amoeba – a distributed operating system for the 1990s authors: sape j. mullender, guido van...
TRANSCRIPT
![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](https://reader035.vdocuments.site/reader035/viewer/2022081519/56649f265503460f94c3de4b/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081519/56649f265503460f94c3de4b/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081519/56649f265503460f94c3de4b/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081519/56649f265503460f94c3de4b/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081519/56649f265503460f94c3de4b/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081519/56649f265503460f94c3de4b/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081519/56649f265503460f94c3de4b/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081519/56649f265503460f94c3de4b/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081519/56649f265503460f94c3de4b/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081519/56649f265503460f94c3de4b/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081519/56649f265503460f94c3de4b/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081519/56649f265503460f94c3de4b/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081519/56649f265503460f94c3de4b/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081519/56649f265503460f94c3de4b/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081519/56649f265503460f94c3de4b/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081519/56649f265503460f94c3de4b/html5/thumbnails/16.jpg)
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