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
16
Embed
Amoeba – A Distributed Operating System for the 1990s Authors: Sape J. Mullender, Guido van Rossum, Andrew S. Tanenbaum, Robbert van Renesse, and Hans.
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
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
•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
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
• 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
• 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