Saurabh Gupta Himanshu Sharma AMOEBA – A DISTRIBUTED OPERATING SYSTEM
Why there Need of Amoeba One of the main goals of the Amoeba development was to design a transparent distributed system that allows users to log into system as a whole. In addition to managing the Amoeba network, an Amoeba system can also act as a router to connect several other networks together.
History !! Amoeba was originally designed and implemented at the Vrije University in Amsterdam (the Netherlands) under the direction of Professor Andrew S. Tanenbaum . Now, it is being jointly developed there and at the Center for Mathematics and Computer Science, also in Amsterdam.
What Is Amoeba Amoeba is a distributed system that allows several machines connected over a network to operate as a single system. This is accomplished with a newly developed High Performance network protocol called FLIP (Fast Local Internet Protocol).
Features Amoeba is also a parallel system. On an Amoeba system, a single program or command can use multiple processors to increase performance. Amoeba implements a standard distributed client / server model, where user processes and applications (the clients) communicate with servers. An Amoeba system consists of four principle components: user workstations, pool processors, specialized servers, and gateways.
HARDWARE ARCHITECTURE An Amoeba System consists of four principle components: Workstations Pool Processors Specialized Servers (File server...) Gateways
Continue….
Continue…. Amoeba system consists of many CPU's connected over a network. Each CPU owns his own local Memory in the range from 2MB to several 100MB. A huge number of Processor's build the so called Processor Pool . This group of CPUs can be dynamically allocated as needed by the system and the users. Workstations allow the users to gain access to the Amoeba system. There is typically one workstation per user.
Processor Pool Model Each of these units typically consists of a processor, local memory, and a network connection. Each process is given a processor until the processors run out, after which the tasks must be queued.
SOFTWARE ARCHITECTURE Amoeba implements a distributed Client-Server Model. In fact, basically the whole system needs only three Functions to do all the work: The transaction call from the Client. GetRequest function (Server Side) PutReply function (Server Side)
SYSTEM CALLS There are three basic system calls available to a user process. These are do_operation, get_request , and put_reply . do_operation : Client sends a request message and receives a reply get_request : Server sends a request from the port specified in the message header. put_reply : Server replies.
Continue…. Amoeba system have several specialized servers that carry out and synchronize the fundamental operations of the kernel. Specialized servers: Run server Directory server File server
Continue…. Run server , distribute processes in a fair manner to these machines. Amoeba has a directory server that is the naming service for all objects used in the system. Amoeba has of course a file server (called the Bullet Server) that implements a stable high speed file service.
Amoeba Capability In Amoeba all resource identifiers are capabilities, implemented in the form shown in Fig:
Continue….. A capability is 128 bits long. It contains an identifier that is mapped at run-time onto a server port . Object number is used to identify the object within that server. The two additional fields, the permissions field and check field are used to identify the types of accesses.
Memory Management When a process is executing, all of its segments are in memory. No swapping or paging. Amoeba can only run programs that fit in physical memory. Advantage: simplicity and high performance.