Distributed Systems Final
Distributed Systems Final
Distributed Systems Final
Company
LOGO
Distributed systems
Distributed system is an application that executes a
Examples:
Network of workstations Distributed manufacturing system (e.g., automated assembly line) Network of branch office computers
Data sharing: allow many users to access to a common data base Resource Sharing: expensive peripherals like color printers Communication: enhance human-to-human communication, e.g., email, chat Flexibility: spread the workload over the available machines
Software: difficult to develop software for distributed systems Network: saturation, lossy transmissions Security: easy access also applies to secrete data.
Transparency
How to achieve the single-system image, i.e., how to make a collection of computers appear as a single computer. Hiding all the distribution from the users as well as the application programs can be achieved at two levels:
Hide the distribution from users 2. At a lower level, make the system look transparent to programs. 1) and 2) requires uniform interfaces such as access to files, communication.
1.
Flexibility
Make it easier to change Monolithic Kernel: systems calls are trapped and executed by the kernel. All system calls are served by the kernel, e.g., UNIX. Microkernel: provides minimal services. 1) IPC 2) some memory management 3) some low-level process management and scheduling 4) low-level i/o E.g., Mach can support multiple file systems, multiple system interfaces.
Reliability
Distributed system should be more reliable than single system. Example: 3 machines with .95 probability of being up. 1-.05**3 probability of being up.
Availability: fraction of time the system is usable. Redundancy improves it. Need to maintain consistency Need to be secure Fault tolerance: need to mask failures, recover from errors.
Performance
Without gain on this, why bother with distributed systems. Performance loss due to communication delays:
Scalability
Systems grow with time or become obsolete. Techniques that require resources linearly in terms of the size of the system are not scalable. e.g., broadcast based query won't work for large distributed systems. Examples of bottlenecks
o o
Centralized components: a single mail server Centralized tables: a single URL address book Centralized algorithms: routing based on complete information.
Handling Failure
Is an important theme in distribruted system design. It falls in two categories.
Hardware Failure
Hardware failure where dominant utill late 80s. Decreased heat production and power consumption of small circuits played a positive role in improving hardware failure.
Software Failure
Software failures are a significant issues in the distributed systems. Even with regress testing software bugs account for a substantial fraction of unplanned down-time (Estimated at 25 to 35 percent)
Thank You
Best of Luck