Experiences with the Amoeba distributed operating system

  title={Experiences with the Amoeba distributed operating system},
  author={Andrew S. Tanenbaum and Robbert van Renesse and Hans van Staveren and Gregory J. Sharp and Sape J. Mullender},
  journal={Communications of the ACM},
  pages={46 - 63}
The Amoeba project is a research effort aimed at understanding how to connect multiple computers in a seamless way [16, 17, 26, 27, 31]. The basic idea is to provide the users with the illusion of a single powerful timesharing system, when, in fact, the system is implemented on a collection of machines, potentially distributed among several countries. This research has led to the design and implementation of the Amoeba distributed operating system, which is being used as a prototype and vehicle… 

Figures from this paper

An Introduction to the Amoeba Distributed Operating System
The major portion of the paper focuses on some of the key design issues of Amoeba, including communication primitives, naming and protection, resource management, fault tolerance and services.
Interprocess Communication in the T 4 System
The T4 project is described, an attempt to design and to implement a microkernel, suitable for both single-machine and distributed operating systems, and a distributed operating system using this microkernel.
An evaluation of the Amoeba group communication system
  • M. Kaashoek, A. Tanenbaum
  • Computer Science
    Proceedings of 16th International Conference on Distributed Computing Systems
  • 1996
It is concluded that sequencers-based group protocols achieve high performance (comparable to Amoeba's fast remote procedure call implementation), that the scalability of the authors' sequencer-based protocols is limited by message processing time, and that the flexibility and modularity of user-level implementations of protocols is likely to outweigh the potential performance loss.
Experiences with the Implementation of a Process Migration Mechanism for Amoeba
Though the design goals have been met, the implementation of a process migration mechanism for the distributed operating system Amoeba has fallen short of the goal of complete transparency, and the consequences of that are discussed.
Operating system support for distributed applications in real space-time
This paper proposes a systemic approach that abstracts from single devices that can be realized best by the mean of a new distributed operating system for mobile systems and presents a preliminary design for such an operating system called FlockOS.
Design and Implementation of the AMOEBA Complex Object Server ACOS
This paper describes the initial design and implementation of a database application for the Amoeba distributed operating system: the complex object server ACOS and considers two main bottlenecks: starting all processes that together execute the parallel database query and the I/O of the data stored on the several disks in the system.
Issues in the Design of a Collaborative Distributed Operating System
It is believed the idea of intercepting input and output can be incorporated into the design of a distributed operating system which would allow collaboration-unaware applications to be shared between multiple users and this form of sharing, while limited, is useful.
Describing and Supporting Complex Interactions in Distributed Systems
Finesse uses the notion of event relationships to describe the visible behaviour of components and how those behaviours are coordinated to satisfy the requirements of an application, and demonstrates the power and utility of the event relationship approach to building distributed systems.
Preface This work is a continuation of the NomadBIOS project, where Asger Jensen and I designed and built what would now be termed a para-virtualized hypervisor for hosting multiple virtual machines
An experimental study of load balancing on Amoeba
  • Weiping Zhu, C. Steketee
  • Computer Science
    Proceedings the First Aizu International Symposium on Parallel Algorithms/Architecture Synthesis
  • 1995
The results of an experimental study of load balancing using job initiation and process migration on Amoeba indicate the need for a load balancing facility in a distributed system to improve system performance, e.g., the average response time of processes.


The performance of the Amoeba distributed operating system
The paper starts out by describing the architecture of the Amoeba system, which is typified by specialized components such as workstations, several services, a processor pool, and gateways that connect other AmOeba systems transparently over wide‐area networks.
Performance of the world's fastest distributed operating system
In this paper some performance measurements of Amoeba are presented and comparisons are made with UNIX on the SUN, as well as with some other interesting systems.
Amoeba: a distributed operating system for the 1990s
A description is given of the Amoeba distributed operating system, which appears to users as a centralized system but has the speed, fault tolerance, security safeguards, and flexibility required for
On the design of the amoeba configuration manager
This paper shows how a smart file server can contribute to Amake's efficiency and how a declarative configuration description allows Amake to take full advantage of parallelism and to determine the commands needed for building and maintaining targets.
Distributed operating systems
What constitutes a distributed operating system and how it is distinguished from a computer network are discussed, and several examples of current research projects are examined in some detail.
Connecting RPC-Based Distributed Systems Using Wide-Area Networks
Remote procedure call (RPC) is a widely used communication mechanism in local network-based distributed operating systems. It is simple, fast, and straightforward to implement. However, when two or
Implementing distributed algorithms using remote procedure calls
This paper shows how light-weight processes can be used to circumvent the problem of decreasing the amount of parallelism in an application due to its synchronous nature and describes how two important classes of algorithms, branch-and-bound and alpha-beta search, can be run in a parallel way using this primitive.
Performance of the Firefly RPC
This paper reports on the performance of the remote procedure call (RPC) implementation for the Firefly multiprocessor and analyzes the implementation to account precisely for all measured latency and estimates how much faster RPC could be if certain improvements were made.
An authentication service for open network systems
The design aims to propose and study an API for integrating the authorization service into application programs, and to develop a better understanding of anonymous authorization and a formal understanding of authenticated delegation.
Using Sparse Capabilities in a Distributed Operating System
A distributed operating system that includes capabilities for naming and protecting objects is reported, and a variety of the issues involved is outlined, and four different ways of dealing with access rights are presented.