Q. What are the reasons for building distributed systems?
Distributed Systems:
Distributed Systems (also loosely coupled systems) are also multiprocessor systems but they will not be sharing clock, memory etc. and will be communicating with each other with high speed buses, telephone lines etc. Processors in distributed systems may vary in size and function and include microprocessors, workstations to large general-purpose computers. Some of the reasons for building distributed systems are resource sharing, computation speed up, reliability, communication etc.
1. Resource Sharing
Consider a distributed system that connects different systems or sites with different capabilities. A user of a site of this distributed system can then use a resource of another site. For example, a user may want to print a file using a printer device which is accessible through another site or node of the distributed system. This way, the printer device is being shared to multiple systems. However, this resource will require specialized hardware functions and also high speed communications.
2. Computation Speedup
Consider a computational job in progress in a site attached with a distributed system. Now if, this computational job can be partitioned into multiple sub-computational jobs and can be run independently, then those partitioned jobs can be handled by multiple sites on the distributed system which finally leads to speedup. This is how load sharing works in distributed system.
3. Reliability
As distributed system help to share loads and resources among its multiple sites, it thus creates reliability. In a distributed system, if a site fails due to overload of tasks in hand, other sites in the distributed system will continue processing the tasks. Thus, failure of a site in the distributed will not cause the whole system to be in a halted state which will result in reliability of the system.
4. Communication
When many different sites are connected to each other in a distributed system, users of the sites will have opportunity to communicate with each other like different processes in a system communicates or exchange data between each other. For example, users may transfer file, or send e-mails or start a chat session etc.