0% found this document useful (0 votes)
14 views15 pages

Overview of Distributed Systems

The document discusses key concepts in distributed systems including advantages like data sharing and resource sharing, disadvantages like difficulty developing software and network issues, and design issues to consider like transparency, flexibility, reliability, performance, and scalability. It also covers handling failures from both hardware and software perspectives as well as security challenges in distributed systems related to integrity, confidentiality, availability, and accountability.

Uploaded by

Idrees Hafeez
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views15 pages

Overview of Distributed Systems

The document discusses key concepts in distributed systems including advantages like data sharing and resource sharing, disadvantages like difficulty developing software and network issues, and design issues to consider like transparency, flexibility, reliability, performance, and scalability. It also covers handling failures from both hardware and software perspectives as well as security challenges in distributed systems related to integrity, confidentiality, availability, and accountability.

Uploaded by

Idrees Hafeez
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

MBA C003: Organisational Behaviour Unit 4: Leadership

Session 1: Oct 16, 2010

Company

LOGO

Distributed systems
Distributed system is an application that executes a

collection of protocols to coordinate the actions of


multiple processes on a network. A distributed system is a collection of independent computers that appear to the users of the system as a single system.

Examples:
Network of workstations Distributed manufacturing system (e.g., automated assembly line) Network of branch office computers

Advantages of Distributed Systems over Independent PCs

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

Disadvantages of Distributed Systems

Software: difficult to develop software for distributed systems Network: saturation, lossy transmissions Security: easy access also applies to secrete data.

Design Issues of Distributed Systems Transparency Flexibility Reliability Performance Scalability

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:

fine-grain parallelism: high degree of interaction coarse-grain parallelism

Performance loss due to making the system fault tolerant.

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 Software failure

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)

Distributed System Security


Hardware Vs Software: Hardware security: keys, locks, cards, visitor monitoring, etc. (not main focus) Software security:
(in terms of user requirements) integrity: message transmitted over network must be identical to the original confidentiality: message transmitted must not be readable to unintended entities availability: the system must not be unavailable due to security attacks accountability: user actions that is security-critical must be traceable.

Thank You

Best of Luck

Common questions

Powered by AI

Reduced heat production and power consumption in small circuits have played a positive role in decreasing hardware failures in distributed systems. By minimizing thermal stress and power-related issues, smaller circuits have contributed to improved reliability and longevity of hardware components, which in turn enhances the overall uptime and stability of distributed systems .

Software testing practices have addressed software-induced unplanned downtime in distributed systems through rigorous testing methods aimed at identifying and correcting bugs. However, despite these efforts, software bugs still account for a significant portion (estimated at 25 to 35 percent) of unplanned downtime . A significant challenge remains in the inherent complexity of distributed systems, where interactions between components can produce unforeseen behaviors and errors difficult to anticipate or replicate during testing .

Redundancy enhances the reliability of distributed systems by providing backup components that can take over in case of failure, thus maintaining system operations. This directly impacts availability, which is the fraction of time the system is usable. By incorporating redundancy, distributed systems can improve their fault tolerance and maintain higher levels of availability, ensuring the system remains functional and accessible despite individual component failures .

Transparency in distributed systems supports their functionality by creating a single-system image, making a network of computers appear as a single computer to users and application programs. Two main levels of transparency are necessary: hiding distribution from users to prevent them from noticing the resources' physical locations, and making the system look transparent to programs, which involves uniform interfaces that provide consistent access to files and communications .

Coarse-grain and fine-grain parallelism impact performance in distributed systems by influencing the degree of interaction required between tasks. Fine-grain parallelism involves a high degree of interaction, which can lead to increased performance loss due to communication delays. Coarse-grain parallelism, on the other hand, involves less frequent interactions, potentially reducing communication overhead and allowing better performance gains as the processes operate more independently . The challenge lies in balancing these forms of parallelism to optimize system performance while maintaining acceptable communication costs.

Monolithic kernels support flexibility in distributed systems by handling all system calls within the kernel, as seen in systems like UNIX. This can limit flexibility, as all services are centrally managed. In contrast, microkernels provide minimal services, such as inter-process communication, some memory management, and low-level process management. This modularity supports greater flexibility by allowing the implementation of different system interfaces and file systems independently from the kernel, exemplified by systems like Mach .

To achieve effective fault tolerance in distributed systems, factors such as redundancy, error masking, and error recovery must be considered. Redundancy involves implementing duplicate components to take over in case of failure. Error masking ensures system operations continue seamlessly by hiding errors from users. Error recovery involves mechanisms to restore system functionality after a failure. Maintaining availability, consistency, and security are also critical, as they ensure the system remains usable and reliable post-failure .

The primary advantages of distributed systems over independent personal computers include data sharing, which allows multiple users to access a common database; resource sharing, enabling shared use of expensive peripherals like color printers; enhanced communication, as seen in improved human-to-human communication methods such as email and chat; and flexibility, which allows workload distribution across available machines . However, the disadvantages include challenges in software development for distributed systems, network issues such as saturation and lossy transmissions, and security concerns, as easier access to resources can also expose sensitive data .

Primary security concerns associated with software in distributed systems include ensuring the integrity of messages, maintaining confidentiality to prevent unauthorized access, ensuring system availability to avert attacks that could render it unusable, and ensuring accountability by tracing security-critical user actions . These concerns impact overall system performance by necessitating additional resources for encryption, authorization, and monitoring, which can result in potential performance trade-offs .

Scalability challenges of centralized components in distributed systems arise from bottlenecks created by single points of failure or limitation, such as a centralized mail server or URL address book. These components can become overwhelmed as the system grows, leading to performance degradation. Centralized algorithms like complete-information-based routing also struggle to scale effectively, as they require extensive resources that grow linearly with the system size, hindering overall scalability .

You might also like