An Introduction to the Amoeba Distributed Operating System by zzzzzzzzs26

VIEWS: 229 PAGES: 16

									    Amoeba – A Distributed
    Operating System for the
                                    Sape J. Mullender,
Presented by:                      Guido van Rossum,
            Oliver Hampton     Andrew S. Tanenbaum,
                                Robbert van Renesse,
Wednesday, October 1, 2003     and Hans van Staveren
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
supports editing and
other tasks that
require fast
interactive response

•Processor Pool:
does most of the
heavy duty

Servers: file server,
data base

•Gateway: links
Amoeba domains
Network vs. Transparent Distributed
•Each user logs into one specific machine (home
•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
•When a program is run, the system, not the user
determines the best place to run it.
        Design Goals

1)   Transparency
2)   Distribution
3)   Parallelism
4)   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
     •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
•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.
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
• Parallelism:
  • Multi-Thread Processes
• High Performance:
  • Bullet File Server, performance data

To top