In a distributed operating system, users access remote resources just like they access local resources. The distributed operating system handles the tasks of data and process migration from one site to another.
The processors in a distributed system may differ in size and function. They may include small microprocessors, workstations, minicomputers, and large general-purpose computer systems.
These processors are referred to by several names, such as sites, nodes, computers, machines, and hosts, depending on the context in which they are mentioned. We mainly use the site to indicate the location of a machine and host to refer to a specific system at a site. Generally, one host at one site, the server, has a resource that another host at another site, the client, would like to use. A general structure of a distributed system is shown in the figure below.
There are four important reasons for building distributed systems, i.e., resource sharing, computation speedup, reliability, and communication.
If several different sites (with different capabilities) are connected, then a user at one site may be able to use the resources available at another. For example, a user at site A may be using a laser printer located at site B. In the same way, the user at B may access a file that resides at A.
If we divide the computation and run it concurrently, then a distributed system allows us to distribute the sub-computations among the various sites; the sub-computations can be run concurrently and thus provide computation speedup.
If one site fails in a distributed system, the remaining sites can continue working, giving the system better reliability. If the system is composed of multiple large autonomous installations (that is, general-purpose computers), the failure of one of them should not affect the rest. If, however, the system is composed of small machines, each of which is responsible for some crucial system function (such as terminal character I/O or the file system), then a single failure may halt the operation of the whole system. In general, with enough redundancy (in both hardware and data), the system can continue operation; even if some of its sites have failed.
When several sites are connected by a communication network, users at the various sites have the opportunity to exchange information. At a low-level, messages are passed between systems, between processes in the single-computer. Given the message passing, all the higher-level functionality found in standalone systems can be expanded to encompass the distributed system. Such functions include file transfer, login, mail, and remote procedure calls (RPCs).