Unit 4
Unit 4
Unit 4
DFS has two components in its services, and these are as follows:
1. Local Transparency
2. Redundancy
Local Transparency
Redundancy
1. Transparency
3. File Replication
5. Fault tolerance
6. Consistency
7. Security
8. Efficiency
A distributed file system is to present certain degrees of transparency to the user and the system:
Access transparency: Clients are unaware that files are distributed and can access them in the same
way as local files are accessed.
Location transparency: A consistent name space exists encompassing local as well as remote files.
The name of a file does not give it location.
Concurrency transparency: All clients have the same view of the state of the file system. This means
that if one process is modifying a file, any other processes on the same system or remote systems
that are accessing the files will see the modifications in a coherent manner.
Failure transparency: The client and client programs should operate correctly after a server failure.
Heterogeneity: File service should be provided across different hardware and operating system
platforms.
Scalability: The file system should work well in small environments (1 machine, a dozen machines)
and also scale gracefully to huge ones (hundreds through tens of thousands of systems).
Replication transparency: To support scalability, we may wish to replicate files across multiple
servers. Clients should be unaware of this.
Migration transparency: Files should be able to move around without the client's knowledge.
Support fine-grained distribution of data: To optimize performance, we may wish to locate Page |
130 individual objects near the processes that use them.
Tolerance for network partitioning: The entire network or certain segments of it may be
unavailable to a client during certain periods (e.g. disconnected operation of a laptop). The file
system should be tolerant of this.
• This is an abstract architectural model that underpins both NFS and AFS. It is based upon a division
of responsibilities between three modules – a client module that emulates a conventional file system
interface for application programs, and server modules, that perform operations for clients on
directories and on files. The architecture is designed to enable a stateless implementation of the
server module.
SUN NFS • Sun Microsystems’s Network File System (NFS) has been widely adopted in industry and
in academic environments since its introduction in 1985.
A file system is a system where data is stored persistently. In this article, we will see the concept of
File service architecture in distributed systems. The access control mechanism is used for sharing of
data between multiple users. Furthermore, concurrent access is provided certainly for read-only
access.
Directory module: This module gives the relation to file names by connecting them to their
corresponding file IDs.
File module: This module serves the purpose of relating file IDs to specific files.
Access control module: This module provides the controlling feature by validating the requested
operation.
File access module: This module refers to the reading and writing of file data or attributes.
Block module: This module accesses and allocates the disk block.
Device module: This module refers to the disk I/O and buffering.
File Service Architecture An architecture that offers a clear separation of the main concerns in
providing access to files is obtained by structuring the file service as three components:
File Service Architecture is an architecture that provides the facility of file accessing by designing the
file service as the following three components:
• A client module
• A directory service
The implementation of exported interfaces by the client module is carried out by flat-file and
directory services on the server-side.
Let’s discuss the functions of these components in file service architecture in detail.
1. Flat file service: A flat file service is used to perform operations on the contents of a file. The
Unique File Identifiers (UFIDs) are associated with each file in this service. For that long sequence of
bits is used to uniquely identify each file among all of the available files in the distributed system.
When a request is received by the Flat file service for the creation of a new file then it generates a
new UFID and returns it to the requester.
Flat File Service Model Operations:
Read(FileId, i, n) -> Data: Reads up to n items from a file starting at item ‘i’ and returns it in Data.
Write(FileId, i, Data): Write a sequence of Data to a file, starting at item I and extending the file if
necessary.
Create() -> FileId: Creates a new file with length 0 and assigns it a UFID.
2. Directory Service: The directory service serves the purpose of relating file text names with their
UFIDs (Unique File Identifiers). The fetching of UFID can be made by providing the text name of the
file to the directory service by the client. The directory service provides operations for creating
directories and adding new files to existing directories.
Lookup(Dir, Name) -> FileId : Returns the relevant UFID after finding the text name in the directory.
Throws an exception if Name is not found in the directory.
AddName(Dir, Name, File): Adds(Name, File) to the directory and modifies the file’s attribute record
if Name is not in the directory. If a name already exists in the directory, an exception is thrown.
UnName(Dir, Name): If Name is in the directory, the directory entry containing Name is removed. An
exception is thrown if the Name is not found in the directory.
GetNames(Dir, Pattern) -> NameSeq: Returns all the text names that match the regular expression
Pattern in the directory.
3. Client Module: The client module executes on each computer and delivers an integrated service
(flat file and directory services) to application programs with the help of a single API. It stores
information about the network locations of flat files and directory server processes. Here, recently
used file blocks hold in a cache at the client-side, thus, resulting in improved performance.
Mount service Mount operation: mount(remote host, remote directory, local directory) Server
maintains a table of clients who have mounted filesystems at that server. Each client maintains a
table of mounted file systems holding: < IP address, port number, file handle ,Remote file systems
may be hard-mounted or soft-mounted in a client computer. illustrates a Client with two remotely
mounted file stores.
Sun’s Network File System (NFS) One of the first uses of distributed client/server computing was in
the realm of distributed file systems. In such an environment, there are a number of client machines
and one server (or a few); the server stores the data on its disks, and clients request data through
well-formed protocol messages. Figure 49.1 depicts the basic setup. Client 0 Client 1 Client 2 Client 3
Server RAID Network Figure 49.1: A Generic Client/Server System As you can see from the picture,
the server has the disks, and clients send messages across a network to access their directories and
files on those disks. Why do we bother with this arrangement? (i.e., why don’t we just let clients use
their local disks?) Well, primarily this setup allows for easy sharing of data across clients. Thus, if you
access a file on one machine (Client 0) and then later use another (Client 2), you will have the same
view of the file system. Your data is naturally shared across these different machines. A secondary
benefit is centralized administration; for example, backing up files can be done from the few server
machines instead of from the multitude of clients. Another advantage could be security; having all
servers in a locked machine room prevents certain types of problems from arising.
4. Explain in details about the Andrew file system?
Morris et al. 1986 created a distributed computing environment for use as a campus computer and
information system at Carnegie Mellon University (CMU). An AFS is used by businesses to make it
easier for AFS client workstations in different locations to access stored server files. It presents a
homogeneous, location-independent file namespace to all client workstations via a group of
trustworthy servers. After login onto workstations that communicate inside the Distributed
Computing Infrastructure, users exchange data and programs (DCI). The goal is to facilitate large-
scale information exchange by reducing client-server communication. This is accomplished by
moving whole files between server and client computers and caching them until the servers get a
more recent version. An AFS uses a local cache to improve speed and minimize effort in dispersed
networks. A server, for example, replies to a workstation request by storing data in the workstation’s
local cache.
Vice: The Andrew File System provides a homogeneous, location-transparent file namespace to all
client workstations by utilizing a group of trustworthy servers known as Vice. The Berkeley Software
Distribution of the Unix operating system is used on both clients and servers. Each workstation’s
operating system intercepts file system calls and redirects them to a user-level process on that
workstation.
Venus: This mechanism, known as Venus, caches files from Vice and returns updated versions of
those files to the servers from which they originated. Only when a file is opened or closed does
Venus communicate with Vice; individual bytes of a file are read and written directly on the cached
copy, skipping Venus
This file system architecture was largely inspired by the need for scalability. To increase the number
of clients a server can service, Venus performs as much work as possible rather than Vice. Vice only
keeps the functionalities that are necessary for the file system’s integrity, availability, and security.
The servers are set up as a loose confederacy with little connectivity between them.
The following are the server and client components used in AFS networks:
Any computer that creates requests for AFS server files hosted on a network qualifies as a client.
The file is saved in the client machine’s local cache and shown to the user once a server responds
and transmits a requested file.
When a user visits the AFS, the client sends all modifications to the server via a callback mechanism.
The client machine’s local cache stores frequently used files for rapid access.
AFS implementation:
Client processes communicate with a UNIX kernel via standard system calls.
The kernel is tweaked significantly to identify references to Vice files in relevant activities and route
requests to the workstation’s Venus client process.
If a volume is missing from this cache, Venus contacts any server it already has a connection with,
asks for the location information, and enters it into the mapping cache. Venus makes a new
connection to the server unless it already has one. The file or directory is then retrieved using this
connection.
Authentication and security need the establishing of a connection. A copy of the target file is made
on the local disc when it is located and cached.
Venus then returns to the kernel, which opens the cached copy and gives the client process the
handle to it. Both AFS servers and clients use the UNIX file system as a low-level storage system. On
the workstation’s disc, the client cache is a local directory. This directory contains files with
placeholder names for cache entries.
Both Venus and server processes use the latter’s modes to access UNIX files directly, avoiding the
costly path-name-to-inode conversion method.
When a file is deleted from the cache, Venus informs the relevant server that the callback for that
file has been removed.
5. Describe the Name Services and the Domain Name System in DS?
In a Distributed System, a Naming Service is a specific service whose aim is to provide a consistent
and uniform naming of resources, thus allowing other programs or services to localize them and
obtain the required metadata for interacting with them.
o computers
o services
o remote objects
o files
o users
• names are needed to request a computer system act on a specific, chosen resource
• identifier: not usually human-readable, e.g. remote object references, NFS file handles
• address: value identifying the location of the object, rather than the object itself
o attribute of an object
o cannot be used as a name, because the object may change its address
o Must be looked up to obtain an address before the named resource can be accessed
• non-pure name contains some information about the object, typically location information
o names are bound to object attributes, rather than the objects themselves
o X500 directory service: can map a person’s name onto attributes e.g. email address, phone
number
Domain Name System (DNS) is a hostname for IP address translation service. DNS is a distributed
database implemented in a hierarchy of name servers. It is an application layer protocol for message
exchange between clients and servers. It is required for the functioning of the Internet.
Every host is identified by the IP address but remembering numbers is very difficult for people also
the IP addresses are not static therefore a mapping is required to change the domain name to the IP
address. So DNS is used to convert the domain name of the websites to their numerical IP address.
Types of Domain
3. Inverse domain: if we want to know what is the domain name of the website. Ip to domain
name mapping.
Organization of Domain
It is very difficult to find out the IP address associated with a website because there are millions of
websites and with all those websites we should be able to generate the IP address immediately,
there should not be a lot of delays for that to happen organization of the database is very important.
6. Examine details the case study of X.500 directory services?
The data stored in X.500 servers is organized in a tree structure with named nodes, as in the case of the
other name servers discussed in this chapter, but in X.500 a wide range of attributes are stored at each
node in the tree, and access is possible not just by name but also by searching for entries with any
required combination of attributes. The X.500 name tree is called the Directory Information Tree (DIT),
and the entire directory structure including the data associated with the nodes, is called the Directory
Information Base (DIB). There is intended to be a single integrated DIB containing information
provided by organizations throughout the world, with portions of the DIB located in individual X.500
servers. Typically, a medium-sized or large organization would provide at least one server. Clients
access the directory by establishing a connection to a server and issuing access requests. Clients can
contact any server with an enquiry. If the data required are not in the segment of the DIB held by the
contacted server, it will either invoke other servers to resolve the query or redirect the client to another
server.
In the terminology of the X.500 standard, servers are Directory Service Agents (DSAs), and their clients
are termed Directory User Agents (DUAs). Each entry in the DIB consists of a name and a set of
attributes. As in other name servers, the full name of an entry corresponds to a path through the DIT
from the root of the tree to the entry. In addition to full or absolute names, a DUA can establish a
context, which includes a base node, and then use shorter relative names that give the path from the
base node to the named entry.
DSM is a mechanism that manages memory across multiple nodes and makes inter-process
communications transparent to end-users. The applications will think that they are running on
shared memory. DSM is a mechanism of allowing user processes to access shared data without using
inter-process communications. In DSM every node has its own memory and provides memory read
and write services and it provides consistency protocols. The distributed shared memory (DSM)
implements the shared memory model in distributed systems but it doesn’t have physical shared
memory. All the nodes share the virtual address space provided by the shared memory model. The
Data moves between the main memories of different nodes.
On-Chip Memory:
Bus-Based Multiprocessors:
• A set of parallel wires called a bus acts as a connection between CPU and memory.
Ring-Based Multiprocessors:
DSM is a mechanism that manages memory across multiple nodes and makes inter-process
communications transparent to end-users. To design information shared memory we might deal
with certain issues which are called issues.
Issues to Design and Implementation of DSM:
• Granularity
• Replacement strategy
• Thrashing
• Heterogeneity
1. Granularity: Granularity refers to the block size of a DSM system. Granularity refers to the unit of
sharing and the unit of data moving across the network when a network block shortcoming then we
can utilize the estimation of the block size as words/phrases. The block size might be different for
the various networks.
2.Structure of shared memory space: Structure refers to the design of the shared data in the
memory. The structure of the shared memory space of a DSM system is regularly dependent on
the sort of applications that the DSM system is intended to support.
3. Memory coherence and access synchronization: In the DSM system the shared data things ought
to be accessible by different nodes simultaneously in the network. The fundamental issue in this
system is data irregularity. The data irregularity might be raised by the synchronous access. To solve
this problem in the DSM system we need to utilize some synchronization primitives, semaphores,
event count, and so on.
4. Data location and access: To share the data in the DSM system it ought to be possible to locate
and retrieve the data as accessed by clients or processors. Therefore the DSM system must
implement some form of data block finding system to serve network data to meet the requirement
of the memory coherence semantics being utilized.
5. Replacement strategy: In the local memory of the node is full, a cache miss at the node implies
not just a get of the gotten to information block from a remote node but also a replacement. A data
block of the local memory should be replaced by the new data block. Accordingly, a position
substitution methodology is additionally vital in the design of a DSM system.
6. Thrashing: In a DSM system data blocks move between nodes on demand. In this way on the off
chance that 2 nodes compete for write access to the single data item. The data relating data block
might be moved to back and forth at such a high rate that no genuine work can get gone. The DSM
system should utilize an approach to keep away from a situation generally known as thrashing.
7. Heterogeneity: The DSM system worked for homogeneous systems and need not address the
heterogeneity issue. In any case, assuming the underlined system environment is heterogeneous,
the DSM system should be designed to deal with heterogeneous, so it works appropriately with
machines having different architectures.
8.Explain Sequential Consistency and IVY?
(a)System Model
(b) Write Invalidation
(C) Invalidation Protocols
What is consistency?
In a single computer, we can guarantee that the system stores the most recently updated data. However,
in a distributed system, data is shared and replicated across many computing nodes.
Consistency is a property of the distributed system which says that every node/replica has the same
view of data at a given point in time. This is irrespective of whichever client has updated the data. Strong
consistency would mean that the distributed system converges on a single value and the client always
reads the latest data.
Consistency models
A consistency model is a contract between a distributed system and the applications that run on it. This
model is a set of guarantees made by the distributed system. Different distributed systems employ
various consistency models.
Examples include linearizability, serializability, causal consistency, and eventual consistency. We will talk
about sequential consistency in this shot.
Sequential consistency
Sequential consistency implies that operations appear to take place in some total order. This order has
to be consistent with the order of operations on each individual process.
Therefore, reads may be stable in terms of real-time, but not in logical time. However, writes are totally
ordered according to logical time across all replicas.
A key difference between sequential consistency and linearizability is that linearizability may not
preserve real-time ordering.
Now, if we follow the given global order of operations, we get a sequentially consistent system.
Physical Model
• Links – Links are the communication channels between different nodes and
intermediate devices.
• Middleware – These are the softwares installed and executed on the nodes. By running
middleware on each node It handles various tasks like communication with other nodes,
resource management, fault tolerance, synchronisation of different nodes and security to
prevent malicious and unauthorised access.
• Network Topology – This defines the arrangement of nodes and links in the distributed
computing system. The most common network topologies that are implemented are bus,
star, mesh, ring or hybrid. Choice of topology is done by determining the exact use cases and
the requirements.
• Communication Protocols – Communication protocols are the set rules and procedures for
transmitting data from in the links. Examples of these protocols include TCP, UDP, HTTPS,
MQTT etc. These allow the nodes to communicate and interpret the data.
Architectural Model
Architectural model in distributed computing system is the overall design and structure of the
system, and how its different components are organised to interact with each other and provide the
desired functionalities.
Client-Server model – It is a centralised approach in which the clients initiate requests for services
and severs respond by providing those services. It mainly works on the request-response model
where the client sends a request to the server and the server processes it, and responds to the client
accordingly etc.
Fundamental Model
The fundamental model in a distributed computing system is a broad conceptual framework that
helps in understanding the key aspects of the distributed systems. These are concerned with more
formal description of properties that are generally common in all architectural models.
Interaction Model – Distributed computing systems are full of many processes interacting with each
other in highly complex ways. Interaction model provides a framework to understand the
mechanisms and patterns that are used for communication and coordination among various
processes. Different components that are important in this model are –
• Message Passing
• Publish/Subscribe Systems
• Failure Model
• Security Model – Distributed computing systems may suffer malicious attacks, unauthorised
access and data breaches. Security model provides a framework for understanding the
security requirements, threats, vulnerabilities, and mechanisms to safeguard the system and
its resources. Various aspects that are vital in the security model are –
• Hash functions – Generating a hash value or checksum from data to verify its
integrity.
• Digital signatures – Using cryptographic techniques to sign data and verify its
authenticity and integrity.
Write Invalidation
In distributed systems, invalidation refers to the process of recognizing and managing outdated or
stale data across multiple nodes or components within the system. Here's a concise 10-mark answer
outlining the key points:
9. **Failure Handling**: Invalidation mechanisms must handle node failures and network partitions
gracefully. Strategies like quorum-based techniques or consensus algorithms help ensure that
invalidation messages are reliably propagated even in the presence of failures.
Invalidation Protocols
1. **Write-invalidate protocol**: In this protocol, when a node modifies a data item, it invalidates all
copies of that item held by other nodes. This means that any subsequent access to the data in other
nodes will require fetching the updated value from the node that made the modification.
2. **Read-invalidate protocol**: Similar to the write-invalidate protocol, but invalidation occurs only
when a node reads a data item that has been modified elsewhere. This ensures that nodes always
have the latest version of the data when they access it.
Invalidation protocols are essential for maintaining data consistency in distributed systems, but they
can introduce overhead in terms of network communication and coordination between nodes. The
choice of invalidation protocol depends on factors such as the consistency requirements of the
system, the frequency of data updates, and the network latency.
1. **System Monitoring**: The DDM algorithm continuously monitors the state of the distributed
system. This includes collecting data on the status of individual nodes, resource utilization metrics
(such as CPU, memory, and network bandwidth), task execution times, network latency, and any
other relevant parameters. Monitoring can be performed through periodic probes, heartbeat messages,
or other communication mechanisms.
2. **State Analysis**: Based on the collected monitoring data, the DDM algorithm analyzes the
current state of the system. It identifies any anomalies or deviations from expected behavior, such as
overloaded nodes, underutilized resources, network congestion, or performance bottlenecks. The
analysis phase may involve statistical modeling, machine learning techniques, or rule-based reasoning
to interpret the monitoring data and derive insights about the system's behavior.
3. **Decision Making**: Using the results of the state analysis, the DDM algorithm makes decisions
on how to dynamically reconfigure the system to improve its performance or adapt to changing
conditions. This may involve actions such as load balancing, resource reallocation, task migration,
replica placement, or node scaling. The decisions should be guided by predefined optimization
objectives or policies, such as minimizing response time, maximizing throughput, or ensuring fault
tolerance.
4. **Action Execution**: Once decisions are made, the DDM algorithm initiates actions to implement
the planned changes across the distributed system. This may involve coordinating with individual
nodes or components to perform tasks such as migrating virtual machines, reallocating resources,
adjusting configuration parameters, or rerouting network traffic. The execution phase should be
orchestrated to ensure that changes are applied smoothly and without disrupting the normal operation
of the system.
5. **Feedback and Adaptation**: After executing the planned actions, the DDM algorithm collects
feedback from the system to evaluate the effectiveness of the changes. This feedback may include
performance metrics, error rates, user feedback, or other indicators of system behavior. Based on the
feedback, the algorithm iteratively adjusts its decisions and actions to adapt to evolving conditions,
creating a closed-loop control mechanism that continuously improves system performance and
responsiveness over time.
Release consistency and MUNIN are two concepts related to maintaining consistency in distributed
systems. Let's discuss each of them:
1. **Release Consistency**:
2. **MUNIN**:
- **Architecture**: MUNIN consists of a distributed runtime system that manages shared memory
across multiple nodes in a cluster or network. It provides a programming interface that allows
applications to access shared data structures as if they were local.
- **Performance**: MUNIN aims to provide high performance and scalability for parallel and
distributed applications by leveraging release consistency to maximize concurrency and minimize
synchronization overhead. It achieves this through a combination of runtime optimizations,
communication protocols, and memory management techniques.
There are several consistency models beyond release consistency. Each consistency model defines
the ordering and visibility of operations across multiple processes or threads in a distributed system.
Here are some common consistency models:
- All processes observe the same order of operations, ensuring that the behavior of the distributed
system is consistent with a single, coherent state.
- Synchronization primitives like barriers or locks are used to enforce orderings between
operations.
2. **Causal Consistency**:
- However, concurrent operations may appear in different orders on different processes as long as
there is no causal relationship between them.
- This model allows for greater concurrency than sequential consistency while still maintaining
causal dependencies.
- Linearizability ensures that operations appear to occur instantaneously at a single point in time
between their invocation and response.
- This model provides the strongest consistency guarantee by guaranteeing that all operations
appear to take effect instantaneously at some point between their invocation and response.
4. **Eventual Consistency**:
- Updates are propagated asynchronously, and replicas may temporarily be inconsistent with each
other.
- Systems implementing eventual consistency often use techniques like version vectors, conflict
resolution, or anti-entropy mechanisms to reconcile divergent replicas over time.
5. **Read-your-Writes Consistency**:
- Read-your-writes consistency guarantees that once a process has performed a write operation,
any subsequent read operation by the same process will observe the effects of that write.
- This model is commonly used in distributed storage systems to provide strong consistency
guarantees for data accesses made by the same client.
- Synchronization mechanisms like session tokens or client-specific metadata are used to enforce
this consistency guarantee.
These consistency models represent a spectrum of trade-offs between consistency, availability, and
partition tolerance in distributed systems. The choice of a consistency model depends on the specific
requirements and constraints of the application and the underlying distributed environment.
Naming services in distributed systems provide a mechanism for assigning and resolving names to
resources, such as files, services, or network addresses, in a distributed environment. They abstract
the underlying complexity of locating and accessing resources distributed across multiple nodes in a
network. Here's a deeper look at naming services:
1. **Name Assignment**: Naming services assign unique names or identifiers to resources within
the distributed system. These names are typically human-readable and provide a convenient way for
users or applications to refer to resources without needing to know their physical locations or
network addresses.
2. **Name Resolution**: When a user or application needs to access a resource, they use its name
to query the naming service for its location or network address. The naming service resolves the
name to the appropriate resource location, allowing the requester to establish communication or
access the resource directly.
4. **Scalability**: Naming services should be designed to scale efficiently as the size of the
distributed system grows. This may involve techniques such as hierarchical naming structures,
distributed hash tables (DHTs), or partitioning the namespace across multiple nodes to distribute the
load evenly.
5. **Fault Tolerance**: Distributed naming services must be resilient to failures, such as node
crashes or network partitions, to ensure continuous availability and reliability. This may involve
replicating naming information across multiple nodes and employing techniques such as quorum-
based protocols or consensus algorithms to maintain consistency and handle failures.
6. **Consistency**: Consistency is crucial in naming services to ensure that all nodes in the
distributed system have a consistent view of the namespace. This may involve enforcing consistency
constraints, such as atomicity and durability, when updating naming information and resolving
conflicts between concurrent updates.
Examples of naming services in distributed systems include:
- **Domain Name System (DNS)**: A widely used naming service on the internet that translates
domain names (e.g., example.com) into IP addresses and vice versa.
- **Directory Services**: Services like Lightweight Directory Access Protocol (LDAP) provide
centralized repositories for storing and querying information about network resources, such as
users, groups, and devices.
- **Service Discovery Systems**: Systems like Apache ZooKeeper, Consul, or etcd enable dynamic
service discovery and configuration in distributed environments by providing a centralized registry of
available services and their locations.
Overall, naming services play a crucial role in simplifying the management and access of resources in
distributed systems by providing a unified interface for naming and locating resources across the
network.
On-Chip Memory:
Bus-Based Multiprocessors:
• A set of parallel wires called a bus acts as a connection between CPU and memory.
Ring-Based Multiprocessors:
• In ring-bases DSM a single address line is divided into the shared area.
• Simpler abstraction: Programmer need not concern about data movement, As the address
space is the same it is easier to implement than RPC.
• Easier portability: The access protocols used in DSM allow for a natural transition from
sequential to distributed systems. DSM programs are portable as they use a common
programming interface.
• locality of data: Data moved in large blocks i.e. data near to the current memory location
that is being fetched, may be needed future so it will be also fetched.
• on-demand data movement: It provided by DSM will eliminate the data exchange phase.
• larger memory space: It provides large virtual memory space, the total memory size is the
sum of the memory size of all the nodes, paging activities are reduced.
• Flexible communication environment: They can join and leave DSM system without
affecting the others as there is no need for sender and receiver to existing,
• process migration simplified: They all share the address space so one process can easily be
moved to a different machine.
Apart from the above-mentioned advantages, DSM has furthermore advantages like:
• Scalability i.e. Scales are pretty good with a large number of nodes.