An Introduction to the Amoeba Distributed Operating System

Download Report

Transcript An Introduction to the Amoeba Distributed Operating System

Amoeba – A Distributed
Operating System for the
1990s
Presented by:
Oliver Hampton
Wednesday, October 1, 2003
Authors:
Sape J. Mullender,
Guido van Rossum,
Andrew S. Tanenbaum,
Robbert van Renesse,
and Hans van Staveren
Amoeba
Developed at:
•Vrije Unviversiteit (Amsterdam)
•(Free University)
In cooperation with:
•Centrum voor Wiskunde en
Informatica (Amsterdam)
•(Center for Mathematics and
Computer Science)
•Research began in 1980
Components
•Workstations:
supports editing and
other tasks that
require fast
interactive response
•Processor Pool:
does most of the
heavy duty
processing
•Specialized
Servers: file server,
data base
•Gateway: links
Amoeba domains
Network vs. Transparent Distributed
System
Network:
•Each user logs into one specific machine (home
machine).
•Programs execute on the home machine, unless the
user gives an explicit command to run it elsewhere.
Transparent Distributed System:
•User logs into the system, not to any specific
machine.
•When a program is run, the system, not the user
determines the best place to run it.
Design Goals
1)
2)
3)
4)
Transparency
Distribution
Parallelism
High Performance
Objects and Capabilities
• Amoeba is an Object-Based system
• Object: abstract data type on which well-defined
operations may be performed
•
Examples: file, process, or directory
• Objects are identified and protected by a capability
• Capability: a handle on an object. Allows the folder
to perform operations on the object.
Communication Primitives
• Remote Procedure Call (RPC) model is used
between Client and Server
•
•
•
do_operation
get_request
send_reply
• Multiple Inheritance via Classes
• Amoeba Interface Language (AIL)
•
•
•
Interface for object manipulation
Marshal / Unmarshal RPC parameters
Request / Reply transport mechanism
Now that we know what objects
are, how do we find them?
• Objects in Amoeba may be physically located
anywhere there is disk space.
• Locating
•
•
•
do_operation call arrives at kernel
Kernel checks if Service Port is known
If not, kernel broadcasts locate packet
• Locate packet asks if there are servers with get_requests for
the port in question
Amoeba File System
• Public capabilities are accessible by users
•
Such as: command executables, public files, data bases
• Hierarchical Directory Structure
•
•
•
Directories are Objects
Directory is a set of (name, capability) pairs
Basic Operations
• Lookup
• Enter
• Delete
• Directory Server
•
•
Reliability & Dependability
Security: directories may be encrypted
Bullet File Server
• Increased Performance - FAST
•
3 fold increase over Sun Network File System (NFS)
• Files are stored contiguously – (next slide)
• Increased Fragmentation
•
Example: may require 800 MB disk to store 500 MB
worth of files
• Files are immutable
•
•
•
Read_file
Create_file
Delete_file
Bullet File Server Continued
• Stores files contiguously on disk and in server’s
RAM cache
•
Processors may only operate on files that fit in their
physical memory
Process 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 Continued
• Processes have explicit control over their
address space.
• mapping segments in and out
• Processes States
• Running
• Stunned
• Process exists but does not execute
instructions; example, debugging
Process Management Continued
• Threads
•
•
•
Process start-up: it has at least one thread
Thread number is dynamic
During execution:
• Process may create additional threads
• Process may terminate existing threads
•
•
Threads are managed by the kernel
When threads do RPCs
• Kernel can block thread
• Kernel can schedule another thread in blocked thread’s place if
one is available
Performance
•Amoeba performance data on two 16.7-megahertz Motorola
MC68020s, with a user process on each, communicating
over a 10-megabit-per-second Ethernet.
•Native Amoeba Remote Communication: at 8 KB (Case 2)
is 3.05 times faster than the Sun RPC remote (NFS) and
2.78 times faster than the Unix driver remote.
Conclusions
Review of Design Goals:
• Transparency:
• User is unaware of location and number of
processors available in Amoeba System
• Distribution:
• Objects are distributed, as is computational
power
• Parallelism:
• Multi-Thread Processes
• High Performance:
• Bullet File Server, performance data