Case Study of a Distributed
Operating System
Introduction
to Amoeba
– Originated
at a university in Holland, 1981
– Currently
used in various EU countries
– Built
from the ground up. UNIX emulation added later
– Goal was
to build a transparent distributed operating system
– Resources,
regardless of their location, are managed by the system, and the user is
unaware of where processes are actually run
The
Amoeba System Architecture
– Assumes
that a large number of CPUsare available and that each CPU ha 10s of Mb of
memory
– CPUs are
organised into processor pools
–
–
–
–
–
The
Amoeba Microkernel
– The
Amoeba microkernel is used on all terminals (with an on-board processor),
processors, and servers
– The
microkernel
o
manages processes and threads
o
provides low-level memory management support
o
supports interprocess communication (point-to-point
and group)
o
handles low-level I/O for the devices attached to
the machine
The
Amoeba Servers: Introduction
– OS
functionality not provided by the microkernel is performed by Amoeba servers
– To use a
server, the client calls a stub procedure which marshalls parameters, sends the
message, and blocks until the result comes back
Server
Basics
– Amoeba
uses capabilities
– Every OS
data structure is an object, managed by a server
– To
perform an operation on an object, a client performs an RPC with the
appropriate server, specifying the object, the operation to be performed and
any parameters needed.
– The
operation is transparent (client does not know where server is, nor how the operation
is performed)
– Capabilites
To create
an object the client performs an RPC with the server
Server
creates the object and returns a capability
To use
the object in the future, the client must present the correct capability
The check
field is used to protect the capability against forgery
Object
protection
When an
object is created, server generates random check field, which it stores both in
the capability and in its own tables
The
rights bits in the capability are set to on
The
server sends the owner capability back to the client Creating a capability with
restricted rights
Client
can send this new capability to another process
Process
Management
– All
processes are objects protected by capabilities
– Processes
are managed at 3 levels
by
process servers, part of the microkernel by library procedures which act as
interfaces
by the
run server, which decides where to run the processes
– Process
management uses process descriptors
Contains:
platform
description process' owner's capability etc
Memory
Management
– Designed
with performance, simplicity and economics in mind
– Process
occupies contiguous segments in memory
– All of a
process is constantly in memory
– Process
is never swapped out or paged
Communication
– Point-to-point
(RPC) and Group
The
Amoeba Servers
The File
System
– Consists
of the Bullet (File) Server, the Directory Server, and the Replication Server
The
Bullet Server
– Designed
to run on machines with large amounts of RAM and huge local disks
– Used for
file storage
– Client
process creates a file using the create
call
– Bullet
server returns a capability that can be used to read the file with
– Files are
immutable, and file size is known at file creation time. Contiguous allocation
policies used
The
Directory Server
– Used for
file naming
– Maps from
ASCII names to capabilities
– Directories
also protected by capabilities
– Directory
server can be used to name ANY object, not just files and directories
The
Replication Server
– Used for fault
tolerence and performance
– Replication
server creates copies of files, when it has time
Other
Amoeba Servers
The Run
Server
– When user
types a command, two decisions have to be made
o
On which architecture should the process be run?
o
Which processor should be chosen?
– Run
server manages the processor pools
– Uses
processes process descriptor to identify appropriate target architecture
– Checks
which of the available processors have sufficient memory to run the process Estimates which of the remaining
processor has the most available compute power
The Boot
Server
– Provides
a degree of fault tolerance
– Ensures
that servers are up and running
– If it
discovers that a server has crashed, it attempts to restart it, otherwise
selects another processor to provide the service
– Boot
server can be replicated to guard against its own failure
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.