DC MOD 1
DC MOD 1
MOD 1
1) What are various issues of distributed system? (5 marks)
A distributed system is a collection of independent computers that work together in such a
way that they appear as a single coherent system to users. While this model offers many
advantages like resource sharing, scalability, and fault tolerance, it also introduces a set of
complex challenges or issues that must be carefully addressed during system design and
implementation.
Here are the major issues in a distributed system:
1. Heterogeneity
Heterogeneity refers to the diversity in hardware platforms, operating systems, network
technologies, and programming languages across the different computers in a distributed
system. Because components can be vastly different, it's difficult to ensure seamless
interaction between them. Middleware is often used to hide this diversity and provide
uniform communication between systems.
2. Openness
Distributed systems must be open to integration with other systems and easy to extend.
They should follow standard protocols and interfaces. This ensures interoperability among
diverse components and allows new services or hardware to be added without major
changes.
3. Transparency
Transparency means hiding the complexities of the distributed nature of the system from
users. Different types of transparency include:
• Access Transparency: Users shouldn’t worry about how to access a resource.
• Location Transparency: Resources can be accessed without knowing their physical or
network location.
• Replication Transparency: Users see a single resource even if it's replicated.
• Failure Transparency: The system hides failures and recovers automatically.
• Concurrency Transparency: Multiple users can access resources without conflict.
• Scalability Transparency: System performance remains stable as it scales.
4. Concurrency
Since many users can access resources simultaneously, managing concurrency is crucial. This
requires synchronization mechanisms to avoid conflicts and ensure data consistency.
5. Fault Tolerance
With many components working together, the risk of failure increases. A distributed system
should continue to operate even when parts of it fail. Fault tolerance can be achieved using
techniques like redundancy, replication, and error detection.
6. Scalability
A distributed system should support growth in terms of users, resources, and geographic
distribution without degrading performance. Techniques like data partitioning, caching, and
load balancing help achieve this.
7. Security
Because data and resources are shared over a network, security becomes a key concern.
Distributed systems must ensure authentication, authorization, data confidentiality, and
integrity.
a) Minicomputer Model
This model includes multiple minicomputers connected by a network. Each minicomputer is
capable of serving multiple users through terminal connections. It is one of the earliest
models used in distributed environments.
• Example: ARPANET setup in early universities.
• Advantages: Easy to set up using existing minicomputers; suitable for task sharing.
• Limitations: Limited scalability; outdated for modern use.
b) Workstation Model
Each user has a dedicated workstation with computing power and storage. If a user’s
machine is idle, its resources can be used by other users in the system.
• Advantages: Utilizes unused resources efficiently; cost-effective.
• Limitations: Resources are unreliable, as the owner may need their system back at any time,
interrupting tasks.
c) Workstation-Server Model
In this model, workstations handle user interaction, while specific tasks like file storage or
printing are managed by dedicated servers. This separation of responsibilities improves
efficiency.
• Example: Office environments where printers and file servers are centralized.
• Advantages: Better resource management; servers are optimized for specific tasks.
• Limitations: Servers may become bottlenecks under heavy load.
d) Processor-Pool Model
There are no assigned workstations for users. Instead, users submit jobs to a central pool of
processors. Jobs are scheduled and executed on available processors.
• Example: Cloud computing services like Amazon EC2 or Google Cloud.
• Advantages: High utilization of processor resources; better performance for large tasks.
• Limitations: Requires efficient scheduling; higher complexity in managing shared resources.
e) Hybrid Model
This model combines both workstation-server and processor-pool approaches. Users have
personal workstations for basic tasks and access to a processor pool for intensive
computations.
• Example: Universities and research centers using local machines for teaching and remote
clusters for simulations.
• Advantages: Combines best of both worlds—interactivity and computing power.
• Limitations: More complex to manage and coordinate resources.
a) Client-Server Model
• The server offers services (like file storage, database access).
• The client requests those services.
• It is a one-to-many relationship: multiple clients can request from a single server.
Example: Web servers serving requests from browsers.
Pros: Simple to implement; clear division of tasks.
Cons: Server becomes a bottleneck or single point of failure.
c) Middleware Layer
A middleware layer can sit between user applications and the operating system/network to
handle:
• Communication protocols
• Security features
• Resource access
• Naming and location services
Middleware simplifies application development by hiding lower-level complexities and
providing reusable tools.
Combines Complex
Hybrid Education/Research management
benefits
5. Conclusion
Distributed computing enables the division of complex tasks across multiple autonomous
computers, making computing more efficient and scalable. By understanding the various
system models—minicomputer, workstation, server-based, processor pool, and hybrid—
architects can choose the right structure based on their specific performance, scalability, and
reliability needs. Furthermore, logical interaction models like client-server and peer-to-peer
define how these components communicate and coordinate their actions, enabling robust
and flexible distributed systems.
a) Transparency
One of the most important goals is to hide the complexities of the underlying distributed
environment from the users. This is known as transparency, which includes several types:
• Access Transparency: Users should access resources without knowing how they are
accessed.
• Location Transparency: The resource location should not affect how it is accessed.
• Replication Transparency: Users should not know whether a resource is replicated.
• Concurrency Transparency: Multiple users can use the system without interference.
• Failure Transparency: The system should recover from faults automatically.
• Migration Transparency: Resources or processes can move without affecting operations.
• Performance Transparency: The system should reconfigure itself to maintain performance.
• Scaling Transparency: The system should grow without disturbing existing operations.
These types of transparency improve usability and make the system appear like a single unit.
b) Openness
A distributed system must be open, meaning it should follow standard protocols and
interfaces so that it can interact easily with other systems. This ensures that systems from
different vendors or platforms can cooperate, and developers can add new components
without reworking the entire system.
d) Scalability
Scalability ensures that a system can handle an increasing number of users or devices
without performance degradation. Distributed systems should scale in three ways:
• Size scalability (adding more users or machines),
• Geographical scalability (expanding across wide areas), and
• Administrative scalability (managing growing systems with different policies).
e) Concurrency
Multiple users or applications may access shared resources simultaneously. Distributed
systems must manage concurrent access safely, ensuring data integrity and avoiding
conflicts. This requires synchronization, mutual exclusion, and coordination mechanisms.
f) Resource Sharing
A distributed system enables resource sharing among users and systems. These resources
include files, printers, databases, and computational power. Sharing must be secure,
efficient, and transparent.
g) Performance
A distributed system should offer high performance, such as quick response times and high
throughput. Efficient resource utilization, load balancing, and fast communication protocols
help improve performance.
h) Security
Because data and services are accessed over networks, security is critical. The system must
ensure:
• Authentication: Only verified users can access resources.
• Authorization: Users can only perform allowed operations.
• Data Integrity and Confidentiality: Data must be protected during transmission.
a) Minicomputer Model
• Structure: Multiple minicomputers are connected via a network, each serving multiple users
through terminals.
• Use Case: Early distributed systems like academic networks.
• Strengths: Simple to manage, centralized control.
• Limitations: Low scalability, outdated technology.
b) Workstation Model
• Structure: Each user has their own workstation, and idle workstations offer processing power
to others.
• Use Case: Office environments where most machines are not fully used.
• Strengths: Utilizes unused computing power; cost-effective.
• Limitations: Unreliable for long jobs, as users may interrupt the system.
c) Workstation-Server Model
• Structure: Workstations handle the user interface, while servers manage specific services like
file storage or printing.
• Use Case: Common in corporate networks.
• Strengths: Specialization increases efficiency; better fault isolation.
• Limitations: Server overload can degrade performance.
d) Processor-Pool Model
• Structure: No user owns a specific processor. Jobs are sent to a central pool of processors for
execution.
• Use Case: Research institutions or cloud computing services.
• Strengths: Highly efficient for compute-heavy tasks.
• Limitations: Requires good job scheduling and resource management.
e) Hybrid Model
• Structure: Combines workstation-server and processor-pool models. Users interact on their
own workstations, while heavy tasks run in the processor pool.
• Use Case: Universities, industries running both office and research tasks.
• Strengths: Balances responsiveness and power.
• Limitations: Complex resource management.
4. Conclusion
The goals of distributed systems—such as transparency, openness, scalability, and
reliability—guide the design of efficient, user-friendly, and robust systems. To fulfill these
goals, different system models are employed depending on the requirements. The
minicomputer, workstation, server-based, processor-pool, and hybrid models offer unique
advantages and are used in various environments. By understanding and applying these
models appropriately, developers and architects can build distributed systems that are
scalable, secure, and resilient.