Professional Documents
Culture Documents
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
File
server
Print server
Microkernel
Process management
Memory management
Communication
I/O
Server
Thread
A capability in Amoeba
Bits
48
24
48
Server port
Object
Rights
Check
Capability
object
1111 1111
C (random number)
Restricted capability
Capability
port
Restricted capability
port
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
Restrict
Setparams
Status
Touch
Pretend the object was just used: tells the server that the object touched is still in used.
Process Descriptor
Architecture = 386
Capability for exit status
Segment descriptors
Text
PC1
PC2
Shared data
Stacks
SP2
Private data
PC3
Segments
SP3
Library procedures
Threads
Mapped segments
Process virtual
address space
D
T
Memory segments
S
Communication in Amoeba
1.
2.
3.
RPC Primitives:
get_request indicates a servers
willingness to listen on a port.
put_reply done by a server when it has a
reply to send.
trans send a message from client to
server and wait for the reply.
Group Communication in
Amoeba
CreateGroup
JoinGroup
LeaveGroup
SendToGroup
5.
System Structure
Application programs
A
Kernel
A
S
Kernel
Sequencer enabled
A
Kernel
Sequencer disabled
Broadcast network
An example
Sequencer machine
A
M25
A
M
Last = 24
M25
M25
Last=24
Last=24history S
M25
M25
Request
for 24
A
Last=23 M25
buffered
Sequencers action
S
2
1.
2.
A broadcast M
S broadcasts Accept
Fault tolerance
Sequencer dies
coordinator
40
43
41
44
40
5
Dead sequencer
coordinator
(b)
40
43
41
44
40
new sequencer
(c )
44
44
44
44
44
How to implement?
In method 2, when the sequencer sees a message,
M, that was just broadcast, it does not
immediately broadcast an Accept message.
Instead, it waits until the k lowest-numbered
kernels have acknowledged that they have seen
and stored it. Now k+1 machines have stored M
in their history buffers.
RPC
Group
FLIP layer
Read
Size
Modify
Insert
Delete
Create
Delete
Append
Replace
Lookup
Getmasks
Chmod