0% found this document useful (0 votes)
9 views5 pages

Distributed Systems Group Assignment

The document outlines a group assignment for a BSC Information Technology course, focusing on distributed systems. It includes questions on topics such as performing scalable concurrent operations, middleware roles, client-server architecture, file tracking in non-distributed systems, and types of failures in RPC calls. The assignment is structured to assess understanding of key concepts and processes related to distributed computing.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views5 pages

Distributed Systems Group Assignment

The document outlines a group assignment for a BSC Information Technology course, focusing on distributed systems. It includes questions on topics such as performing scalable concurrent operations, middleware roles, client-server architecture, file tracking in non-distributed systems, and types of failures in RPC calls. The assignment is structured to assess understanding of key concepts and processes related to distributed computing.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

SPC 2401-DISTRIBUTED SYSTEM GROUP ASSIGNMENT

BSC INFORMATION TECHNOLOGY.


YEAR FOUR SEMESTER ONE

1. CT100/G/8763/20 GACHOKI PERMINUS.

2. CT100/G/7226/19 KIPSANG EVANS.

3. CT100/G/11774/20 MUNENE IAN.

4. CT100/G/8923/20 KINYANJUI DAVID.

Questions

1) Please choose ONE of the following activities and describe the activities associated with it,
detailing the process of distribution. [6 Marks]
a) Distributing tasks
b) Performing scalable concurrent operations
c) Remote Method Invocation

(2) What is a Middleware? What is its key role in Distributed Systems? [2 Marks]
(3) In reference to Client-Server Architecture:
a) Distinguish between the blocking and non-blocking message passing semantics.
b) State and explain the three semantics for reliable IPC protocol.
(4) Explain how File Tracking is achieved in non-Distributed file systems
(5) State the four generalized types of failures that can occur when an RPC call is made.
ANSWERS

1) Performing Scalable Concurrent Operations:

 This involves executing multiple operations concurrently while maintaining scalability.


 Here’s a detailed description of the associated activities and the process of distribution:
Activities:

 Task Identification: Identify tasks suitable for concurrent execution, ensuring they can be divided
into smaller units that can run independently.
 Concurrency Control: Implement mechanisms to control access to shared resources and prevent
conflicts among concurrently executing tasks.
 Task Distribution: Distribute tasks across multiple processing units or nodes to maximize
parallelism.
 Synchronization: Use synchronization techniques, such as locks or semaphores, to coordinate the
execution of concurrent tasks and manage shared data.
 Scalability Optimization: Employ strategies to ensure that the system scales efficiently as the
number of tasks and processing units increases.
 Fault Tolerance: Implement mechanisms to handle failures gracefully, ensuring that the system can
recover from faults without compromising overall performance.
Process of Distribution:

 Task Decomposition: Break down the overall task into smaller subtasks that can be performed
concurrently.
 Distribution Strategy: Choose an appropriate strategy for distributing tasks, considering factors like
load balancing and minimizing communication overhead.
 Communication Protocol: Define a communication protocol for exchanging data and
synchronization information among the concurrently executing tasks.
 Resource Allocation: Distribute tasks to available processing units based on factors like workload,
resource availability, and system topology.
 Execution Monitoring: Monitor the execution of concurrent tasks to identify bottlenecks, optimize
resource utilization, and ensure overall system efficiency.
 Dynamic Adaptation: Implement mechanisms for dynamically adjusting the distribution of tasks
based on changing system conditions, ensuring adaptability to varying workloads.
2) What is a Middleware? What is its key role in Distributed Systems?

 Middleware: Middleware is software that acts as an intermediary between different applications,


services, or components in a distributed computing environment.
:It facilitates communication, coordination, and integration among distributed entities.

Key Role in Distributed Systems:

 Communication Abstraction: Middleware provides a layer of abstraction, allowing applications to


communicate without being concerned about the underlying network details.
 Interoperability: It enables interoperability between heterogeneous systems, allowing components
developed in different programming languages or running on different platforms to work together
seamlessly.
 Distribution Transparency: Middleware abstracts the complexities of distributed systems, providing
transparency to developers and users regarding the location and distribution of resources.
 Fault Tolerance: Middleware often includes mechanisms for handling faults and errors, enhancing
the reliability of distributed systems.
 Concurrency Control: Middleware can provide tools for managing concurrent access to shared
resources in a distributed environment.
 Security: Middleware can incorporate security features to ensure the confidentiality, integrity, and
availability of data and communications in distributed systems.
2) In reference to Client-Server Architecture:
a) Distinguish between blocking and non-blocking message passing semantics:

 Blocking: In blocking message passing, the sender is blocked until the receiver acknowledges the
message.
 Non-blocking: In non-blocking message passing, the sender continues its operation without
waiting for the receiver’s acknowledgment.

b) State and explain the three semantics for a reliable IPC protocol:

 At-most-once: The message is delivered at most once. If a failure occurs before the
acknowledgment, the message may be lost.
 At-least-once: The message is guaranteed to be delivered at least once. It may result in duplicate
messages due to failures and retries.
 Exactly-once: Ensures that the message is delivered exactly once, without duplication. It requires
additional mechanisms to handle failures and deduplicate messages.
4) Explain how File Tracking is achieved in non-Distributed file systems:

 File tracking in non-distributed file systems is typically achieved through metadata and file control
structures within the file system.
 Each file is associated with metadata that includes information such as creation time, modification
time, file size, and ownership.
 The file control structures maintain a directory hierarchy and relationships between files.

 Metadata:

 Metadata contains information about each file, including its location on the disk, permissions,
timestamps, and other attributes.
 Changes to the file, such as modifications or updates, are reflected in the metadata to track the file’s
state.
 Directory Structure:
 The file system maintains a directory structure to organize files hierarchically.
 Directories contain entries that map file names to their corresponding metadata and data locations.
 Inodes:

 Many file systems use inodes (index nodes) to store metadata associated with files.
 Inodes include pointers to data blocks on disk, facilitating efficient file access.
 File Control Blocks (FCBs):

 FCBs are data structures associated with each file that store information needed
for file management.
 They maintain links to the file’s metadata, facilitating operations such as opening,
closing, and updating files.
 Access Control Lists (ACLs) and Permissions:

 Non-distributed file systems often use access control lists and permissions to track and control file
access.

5) State the four generalized types of failures that can occur when an RPC call is made:

 Sender Failure:

 The client invoking the RPC call may fail before or after making the call.
 If the client fails before making the call, the server may never receive the request.
 Network Failure:

 Communication issues or network failures can result in the loss of the RPC request or response.
 Messages may be delayed, lost, or corrupted during transmission.
 Server Failure:

 The server may fail before or after processing the RPC request.
 If the server fails before processing, the request may not be executed. If it fails after processing, the
response may not reach the client.
 Partial Failure (Skewed Failure):

 Some operations in an RPC call may succeed while others fail.


 It introduces complexity in handling partial failures and requires mechanisms to maintain consistency.

Common questions

Powered by AI

Performing scalable concurrent operations involves several activities: task identification, concurrency control, task distribution, synchronization, scalability optimization, and fault tolerance. Task identification focuses on breaking down tasks into smaller, independent units. Concurrency control ensures safe access to shared resources to prevent conflicts. Task distribution involves assigning tasks to various processing units to enhance parallelism. Synchronization requires mechanisms like locks or semaphores to manage shared data access. Scalability optimization ensures the system can handle increasing tasks and processing units efficiently, while fault tolerance provides mechanisms for recovery from failures without affecting performance .

Network failures during RPC calls pose challenges such as loss, delay, or corruption of request and response messages. Solutions include implementing retransmission strategies for lost or corrupted messages, ensuring message integrity with checksums, and using timeout mechanisms to detect delays. These solutions enhance reliability by compensating for communication issues, thus ensuring message delivery and system stability .

Synchronization techniques such as locks and semaphores are vital for managing shared resources in concurrent task execution to avoid conflicts in distributed systems. Locks enforce mutual exclusion, allowing only one task access to a resource at a time. Semaphores can coordinate multiple tasks by providing a count of allowable access. These techniques ensure data consistency and system stability by preventing race conditions and deadlocks .

Middleware contributes to interoperability in distributed systems by enabling components developed in different programming languages and running on different platforms to work together seamlessly. It provides communication abstractions, allowing applications to communicate without concerning underlying network details, thus facilitating integration across heterogeneous systems .

In non-distributed file systems, metadata plays a critical role in file tracking by storing information about each file, such as its location on disk, permissions, timestamps, and other attributes. It ensures that changes like modifications or updates are reflected to track the file's state. Metadata enables efficient file management by maintaining references to the file's location and its state on the disk .

Distribution transparency provided by middleware is crucial in distributed systems as it hides the complexity and heterogeneity of the network. It allows developers to focus on application logic rather than network management details. This transparency ensures seamless integration and communication across distributed components, simplifying development and deployment processes. It enhances system usability by providing a unified interface despite physical distribution .

In a client-server architecture, blocking message passing semantics imply that the sender is blocked until the receiver acknowledges the message, meaning the sender cannot proceed with other operations. Conversely, non-blocking message passing allows the sender to continue operations without waiting for acknowledgment from the receiver, enabling greater concurrency and reducing wait times .

File control structures and inodes facilitate file access in non-distributed systems by organizing and maintaining metadata. Inodes store pointers to data blocks on disk, enabling efficient access to file data. File control structures such as File Control Blocks (FCBs) store necessary information for file management, linking metadata to actual data storage locations, thus aiding in operations like opening, closing, and updating files .

The three semantics for reliable IPC protocol are at-most-once, at-least-once, and exactly-once. At-most-once ensures that a message is delivered at most once, potentially being lost if acknowledgment fails. At-least-once guarantees delivery at least once, leading to possible duplications due to retries. Exactly-once ensures a single delivery without duplication, requiring complex mechanisms for handling failures and deduplication .

Four types of failures can occur during an RPC call: sender failure, network failure, server failure, and partial failure. Sender failure happens when the client crashes before sending the call or after. Network failure involves communication issues causing delays or message loss. Server failure occurs if the server crashes before or after processing the request. Partial failure arises when only some operations succeed, complicating consistency maintenance .

You might also like