An Introduction to the Amoeba Distributed Operating System by zzzzzzzzs26

VIEWS: 229 PAGES: 16

									    Amoeba – A Distributed
    Operating System for the
             1990s
                             Authors:
                                    Sape J. Mullender,
Presented by:                      Guido van Rossum,
            Oliver Hampton     Andrew S. Tanenbaum,
                                Robbert van Renesse,
Wednesday, October 1, 2003     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)   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
     •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

								
To top