The development of high speed LANs and cheap powerful microprocessors has lead to the creation of computing systems composed of large no. of CPUs connected by a high-speed LAN. These are called Distributed Systems. The most important features of distributed systems are that it offers better price/performance, higher computing power (speed), higher fault tolerance, improved scalability, data and device sharing and better distribution of load. An OS which manages a distributed system is called a distributed operating system. A DOS is designed to take a collection of machines and make them act together as a single integrated system. In general, users are not aware of the number and location of neither the processors that run their commands, nor of the number and location of the file servers that store their files. Ex. of DOS are Sprite, Mach, Amoeba, Chorus and DCE. This paper discusses the Amoeba DOS and its inherent advantages vis-à-vis other DOS. First we will explore it’s system architecture (i.e. functional classes of machines and on which machines Amoeba runs) and it’s unique microkernel. Objects and Capabilities which are the basic unifying concept underlying all the Amoeba servers and the services are then explained. We will also examine process management, memory management, and the communication primitives, emphasizing the latter since this contains the most new ideas like point-to-point communication, group communication and FLIP protocol. Process Management includes how processes are handled, the process descriptor and threads. Memory Management defines the design goals behind it’s implementation, segments and mapped segments. The main services of Amoeba are implemented in the servers, which therefore form an integral part of the Amoeba distributed operating system. So in the last part of the paper attention is focused on the main servers.
KEYWORDS

Roughly speaking, we can divide the history of modern computing into the following eras:
_ 1970s: Timesharing (1 computer with many users)
_ 1980s: Personal computing (1 computer per user)
1990s: Parallel computing (many computers per user)
Until about 1980, computers were huge, expensive, and located in computer centers. The development of high speed LANs and cheap powerful microprocessors has lead to the creation of computing systems composed of large no. of CPUs connected by a high-speed LAN. Some systems have many processors per user, either in the form of a parallel computer or a large collection of CPUs shared by a small user community. Such systems are usually called parallel or distributed computer systems. The OS which manages these new systems are called Distributed Operating Systems. Why these systems are here to stay are because of the following reasons:
ADVANTAGES OVER CENTRALIZED SYSTEMS
 Economics — Cheap microprocessors offer better price/performance than mainframes
 Speed — A DOS may have more computing power than a mainframe
 Inherent Distribution — Some applications involve spatially separated m/cs
 Fault Tolerance — If 1 m/c crashes, the system as a whole can still survive
 Incremental — Computing power can be added in small increments

Amoeba is a new general-purpose distributed operating system designed for an environment consisting of a large number of computers. It is an ongoing research project. It was developed by a group under the direction of Prof. Andrew S. Tanenbaum at the Vrije Universiteit (VU) in Amsterdam (The Netherlands). It should be thought of as a platform for doing research and development in distributed and parallel systems, languages, protocols and applications.
WHY AMOEBA?

The main reasons why Amoeba is considered to be superior to others are as follows :
• Distribution — Connecting together many machines
• Parallelism —Allowing individual jobs to use multiple CPUs easily
• Transparency — Having the collection of computers act like a single system
• Performance — Achieving all of the above in an efficient manner
• Flexibility — Both Distributed and Parallel Computing

Amoeba is a distributed system, in which multiple machines can be connected together . These machines need not all be of the same kind. The machines can be spread around a building on a LAN. Amoeba uses the high performance FLIP network protocol for LAN communication. If an Amoeba machine has more than one network interface it will automatically act as a FLIP router between the various networks and thus connect the various LANs together.

Amoeba is also a parallel system. This means that a single job or program can use multiple processors to gain speed. For example, a branch and bound problem such as the
Traveling Salesman Problem can use tens or even hundreds of CPUs, if available, all working together to solve the problem more quickly. Large ‘‘back end’’ multiprocessors, for example, can be harnessed this way as big ‘‘compute engines.’’

Another key goal is transparency. The user need not know the number or the location of the CPUs, nor the place where the files are stored. Similarly, issues like file replication are handled largely automatically, without manual intervention by the users. Put in different terms, a user does not log into a specific machine, but into the system as a whole. There is no concept of a ‘‘home machine.’’ Once logged in, the user does not have to give special remote login commands to take advantage of multiple processors or do special remote mount operations to access distant files. To the user, the whole system looks like a single conventional timesharing system.

Performance and reliability are always key issues in operating systems, so substantial effort has gone into dealing with them. In particular, the basic communication mechanism has been optimized to allow messages to be sent and replies received with a minimum of delay, and to allow large blocks of data to be shipped from machine to machine at high bandwidth. These building blocks serve as the basis for implementing high performance subsystems and applications on Amoeba. FAULT TOLERANCE is very high in Amoeba as multiple copies of files are kept in multiple servers.

Amoeba is intended for both ‘‘distributed’’ computing (multiple independent users working on different projects) and ‘‘parallel’’ computing (e.g., one user using 50 CPUs to play chess in parallel). Amoeba provides the necessary mechanism for doing both distributed and parallel applications, but the policy is entirely determined by user-level programs.

Chapter 2
SYSTEM ARCHITECTURE

Since distributed and parallel computing is different from personal computing, it is worthwhile first describing the kind of hardware configuration for which Amoeba was designed.

First, each user has a workstation for running the user interface, the X window system.
This workstation can be a typical engineering workstation, or a specialized X terminal.
It is entirely dedicated to running the user interface, and does not have to do other computing. In other words it can be a dumb terminal.

Second, there exists a pool of processors that are dynamically allocated to users as required. These processors can be part of a multiprocessor or multicomputer, be a collection of single-board computers or be a group of workstations allocated for this purpose. Usually, each pool processor has several megabytes of private memory, that is, pool processors need not have any shared memory (but it is not forbidden). Communication is performed by sending packets over the LAN. All the heavy computing happens in the processor pool.

Third, there are specialized servers, such as file servers and directory servers that run all the time. They may run on processor pool processors, or on dedicated hardware, as desired.

Finally, there are gateways to other Amoeba systems that can only be accessed over wide area networks. In the context of a project sponsored by the European Community, we built a distributed Amoeba system that spanned several countries. The role of the gateway is to protect the local machines from the idiosyncrasies of the protocols that must be used over the wide area links. At present only Ethernet is supported, but ports to other LANs are possible.

An amoeba often called ameboid. It is a type of cell or organism that has the capacity to alter its shape, mainly by the extension and retraction of pseudopodia. The amoebas do not form a single taxonomic group; in contrast, are found in all major lineages of eukaryotic organisms. Amoeboid cells occur not only among protozoa, but also in fungi, algae, and animals. Microbiologists often use the terms "amoeboid" and "amoeba" interchangeably for any organism exhibiting amoeboid movement.

In older classification systems, most amoebas were placed in the Sarcodina class or sub-group, a group of single-celled organisms that have pseudopodia or move by protoplasmic flow. However, molecular phylogenetic studies have shown that Sarcodine is not a monophyletic group whose members share common offspring. As a result, amoeboid organisms are no longer classified together into one group.

The most well-known ameboid protists are the "giant amoeba" Carolinan Chaos and Amoeba proteus, both widely cultivated and studied in classrooms and laboratories. Other well-known species include the so-called "amoeba cerebri" Naegleria fowleri, the intestine the parasite Entamoeba histolytica, which causes amoebic dysentery, and the multicellular "social ameba" or mold of limo Dictyostelium discoideum.