Professional Documents
Culture Documents
CSAMEOBA
CSAMEOBA
AMOEBA
History of Amoeba
Starting in 1984, a second group was set up. This work used
Amoeba 3.0, which was based on RPC. Using Amoeba 3.0,
it was possible for clients in Tromso to access servers in
Amsterdam transparently, and vice versa.
Research Goals
Client Server
Thread
Microkernel
Process management
Memory management
Communication
I/O
The Amoeba Servers
Bits 48 24 8 48
If aport
client wants to create
objecta restricted capability, go through the
following.
1111 1111 C (random number)
On subsequent operations, the client must present the
capability to identify the object.
Restricted capability
Exclusive OR
One-way function
Restricted capability
port object 00000001 f(C XOR 00000001)
Standard Operations
Age Perform a garbage collection cycle: starts a new garbage collection cycle to get rid of old objects
that are no longer accessible.
Copy Duplicate the object and return a capability for the copy: it is a shortcut that makes it possible to
duplicate an object without actually transferring it. Without this operation, copying a file would
require sending it over the network twice: from the server to the client and then back again.
Detroy Destroy the object and reclaim its storage: deletes the object
Getparams Get parameters associated with the server: allow the system administrator to read and write
parameters that control server operation. For example, the algorithm used to choose processors can
be selected using this mechanism.
Info Get an ASCII string briefly describing the object
Touch Pretend the object was just used: tells the server that the object touched is still in used.
Process Management in Amoeba
Architecture = 386
Capability for exit status
Segment descriptors
Thread 1 Thread 2 Thead 3
PC1 PC2 PC 3
SP1 SP2 SP 3
Text Shared data 1 2 3 Stacks
SP1 SP3
PC1 SP2
Private data
PC2
PC3
Segments
Library procedures
D
S S T
T
Communication in Amoeba
RPC Primitives:
1. get_request – indicates a server’s willingness to listen on a
port.
2. put_reply – done by a server when it has a reply to send.
3. trans – send a message from client to server and wait for the
reply.
Group Communication in Amoeba
A A A
Broadcast network
An example
Sequencer machine
A
M25 B
A A Last=24
A M25
M M25
M
Last = 24 Last=24history S
M25
M25
Request
for 24 A
C
Last=23 M25
buffered
Sender’s action for sending
2 2 1 1 2 2
1 2 1 S 2 B
A S B A
2 2 2 2
1 1
(a) 40 43 41 44 40 X
0 1 2 3 4 5
(b) 40 43 41 44 40 X
0 1 2 3 4 5
new sequencer
(c ) 44 44 44 44 44 X
0 1 2 3 4
RPC Group
FLIP layer
The Bullet Server