2. what is Amoeba?
It is distributed operating system which collects a huge
variety of single machines connected over a network to
one ,huge computer.
It is developed at Vrije University in amsterdamby
Andrew S. Tannenbum.
AMOEBA system will connect the multiple AMOEBA
systems in different sites into single coherent system.
This goal is obtained by using objects and their
capabilities in uniform ways
3. History
Developed at the Vrije Universiteit Amsterdam,
Netherlands. Chief designer: Andrew S. Tanenbaum
Other developers were Frans Kaashock, Sape J.
Mullender, Robbert van Renesse, Leendert van
Doorn, Kees Verstoep and many, many more.
First proto release in 1983 (V1.0), last official
release 1996 (V5.3) Supports multiple architectures:
68k, i80386, SPARC
5. System Architecture
It implements universal
distributed client-server
model.
Whole system need only
three functions to work:
1. Transaction call from
a client
2. thegetRequest
3. PutReply functions on
server side.
6. System Architecture
It consists of four principle components:
1. File servers:
2. Workstations:
3. Pool processors:
4. Gateways:
7. Networking
Currently Amoeba has only
drivers for Ethernet,but other
network drivers are under
consideration.
Amoeba do not set upper
limit for no. of computers but
in some cases it is limited by
n/w bandwidth or topology.
8. Heterogeneity
Amoeba is reasonably portable and has run on five
architectures.
It is currently available on following architectures.
1. The motorola MC680x0 family
2. The intel 80386 family
3. Members of SPARC family
Processor pool may contain processors more than
one type of architecture.
Configurations supported:
Pool,specilazied server,workstation
9. AMOEBA KERNEL FEATURE
AMOEBA kernel has some major features over commonly
used other os kernels.
1. High performance server client communication:
Remote procedure call:
Interprocess procedure call:
2.Kernel administration:
Remote rebooting of kernels:
Remote status report:
10. AMOEBA’s object concept & capabilities
AMOEBA is organized as a
collection of objects:each with
some operations that process can
perform on it.
There are many object classes
like
files,directories,memorysegments,
processes etc.
When an object is created, the
server returns a Capability.
capability is used to address and
protect the object.
11. Process Management
A process is an object in Amoeba.
Information about the processes in Amoeba
are contained in capabilities and in a data
structure called a process descriptor.
Amoeba supports a simple thread model.
When a process starts up, it has at least one
thread. The number of threads is dynamic.
Three methods are provided for thread
synchronization:Mutexes,Semaphores ,Signals
12. Memory Management
Amoeba supplies a simple memory management based on segments.
Each process owns at least three segments:
1. Text/Code segment
2. Stack segment for the main thread/process
3. Data segment
Each further thread gets his own stack segment, and the process can
allocated arbitrary additional data segments.
All segments are page protected by the underlying MMU, the kernel
segments, too
13. Communication
All processes, the kernel too, communicate with a standardized RPC
(Remote procedure call) interface. There are only three functions to
reach this goal:
1. trans(req_header, req_buf, req_size, rep_header,rep_buf, rep_size)
do a transaction to another server
2. getreq(req_header,req_buf,req_siz)
get a client request
3. putrep(rep_header,rep_buf,rep_siz)
send a reply to the client
14. The Virtual Amoeba Machine
The Virtual Amoeba
Machine Environment
consists of these main parts:
1. UThreads
2. AMUNIX
3. FLIPD
4. VAM
15. The Virtual Amoeba Machine
5. Amoeba
The native Amoeba kernel (called the VERTEX-Kernel), with these
features:
Clean and modern micro kernel design
Easy to implement device drivers
User space device driver support
Full network performance through direct FLIP network access
The kernel operates standalone, and needs no further configuration
16. General Requirements
The amoeba distributed operating system can run on many different
types and brands of computers.
It is intended that it should run on network with at least five
computers.
the main machine should be equipped with at least 64 MB RAM (128
MB recommended) and at least with 500MB disk space.
Currently, Fireball -Amoeba only supports Ethernet. In special only
the 10 MBit/s connectivity with RJ-45 or RG-58 connectors, and now
100 MBit/s Fast Ethernet, too.
17. Implementation
According to Tanenbaum (1990), AMOEBA system has been
implemented to five different CPU : 68010, NS 32016, 8088, VAX, PDP-
11.
Current configuration has 48 single board VME based computers
using 68020 and 68030 CPU and also 10 VAX CPU forming additional
processor pool.
Current research includes connecting AMOEBA at 5 locations in 3
countries. Using Wide Area Network facilities.
18. Security
Amoeba has two level of protection:
1. Ports for protecting access to server
2. Capabilities for protecting access to individual objects.
Hardware solution: A small interface box (F - box) are put between
each processor module and the network.
software solution: since ports for public servers are known to all
users it is easy for an intruder to impersonate a server just by doing a
get_rerequest on the server’s port.
19. Comparision of Amoeba and V
Amoeba and V use the small kernel to provide the infrastructure of
the distributed system.
Amoeba and V are free-market model service, Service such as the
file system are in principle just an ordinary user process.
Amoeba and V use client-server and remote procedure call.
V does not have the processor pool, and there is no dynamic
processor allocation. Amoeba has a processor pool and does the
processor allocation.
Amoeba is more fault tolerance than V (Cheriton 1988), because V
was designed for interactive workstation, so if there are something
goes wrong, user can re-execute.
20. Field of Application
Distributed measuring and data acquisition systems, for example
remote digital camera servers connected with an Ethernet network.
The native Amoeba kernel is very well suited for embedded systems.
Distributed control systems.
High performance parallel computing and other distributed numerical
computations.
Distributed file systems using raw disk access on the top of standard
operating systems.
21. Conclusion
A distributed system potentially will be more reliable and low cost
than a time sharing system.
By placing the other service outside the kernel and keeping the
kernel as small as possible, the system is more flexible and reliable.
The client-server model with remote procedure call have proved that
using basic primitive communication the overhead of communication
can be reduced.
By using the object and capability model, Amoeba is more flexible
and more easily be used.
Amoeba is the only one Distributed Operating System which
implements Wide Area Network.