1
What is a Distributed Operating System?
A distributed computer system consists of multiple software components that
are on multiple computers but run as a single system.
It enables the sharing of various resources such as CPUs, disks, network
interfaces, nodes, and computers across different sites, thereby expanding
the available data within the entire system.
It encompasses multiple computers, nodes, and sites, all interconnected
through LAN/WAN lines.
Or
A distributed operating system is one in which several computer
systems connect through a single communication channel.
Moreover, these systems have their individual processors and
memory. Furthermore, these processors communicate through high-
speed buses or telephone lines.
The Key Purpose / Characteristics of Distributed os are
2
1. Resource Sharing
The main important feature of this system is that it allows users to
share resources. Moreover, they can share resources in a secure and
controlled manner. Resources can be of any type. For example, some
common resources which are shared can be printers, files, data,
storage, web pages, etc.
2. Openness(we can itegrate any h/w or s/w to system )
The openness of distributed systems is achieved by specifying the
key s/w interface of system and making it available to software
developers so that the system can be extended in many ways.
3. Concurrency
It means that several tasks take place at different nodes of the system
simultaneously. The processing concurrency can be achieved by
sending requests to multiple machines connected by network at the
same time.
4. Scalability
It refers to the fact that the efficiency of the system should not change
when more nodes are added to the system. Moreover, the
performance for the system with 100 nodes should be equal to the
system with 1000 nodes.
5. Fault Tolerance
It means that the user can still work with the system in the case,
hardware, or software fails.
6. Transparency
It is the most important feature of the system. The main goal of a
distributed OS is to hide the fact that the resources are being shared.
Furthermore, transparency mean that the user should not know that
3
the resources he is using are shared. Moreover, for the user, the
system should be a separate individual unit.
Advantages of Distributed OS
The load on the system decreases.
If one system stops it will not affect the other.
The system shares a workload that makes calculations easy.
The size of the system can be set according to requirements.
Resource sharing.
Improved Efficiency.
Disadvantages of Distributed OS
The cost for set up is more.
Failure of the main system will affect the whole system.
Programming is complex.
Security
Overloading
Data Loss
*Design Goals of Distributed System
4
5
6
Reliability
By definition, reliability is the probability a system will fail in a given
period. In simple terms, a distributed system is considered reliable if
it keeps delivering its services even when one or several of its
software or hardware components fail. Thus, reliability represents
one of the main characteristics of any distributed system. Any failing
machine can always be replaced by another healthy one in such
systems, ensuring the completion of the requested task.
Take the example of a large electronic commerce store
(like Amazon), where one of the primary requirements is that any
user transaction should never be canceled due to a failure of the
machine running that transaction. For instance, if a user has added
an item to their shopping cart, the system is expected not to lose it. A
reliable distributed system achieves this through the redundancy of
both the software components and data. If the server carrying the
user’s shopping cart fails, another server with the replica of the
shopping cart should replace it.
Redundancy has a cost, and a reliable system has to pay to achieve
such resilience for services by eliminating every single point of
failure.
Flexibility: The design of distributed OS should be flexible due to
following reason
1. Easy Modifications 2.Easy Enhancement
7
Types of Distributed systems
1. High Performance Distributed
Computing:
High performance computing (HPC) is the ability to process data and
perform complex calculations at high speeds.
Cluster Computing: An HPC cluster consists of hundreds or
thousands of compute servers that are networked together. Each
server is called a node. The nodes in each cluster work in parallel
with each other, boosting processing speed to deliver high
performance computing.
Grid Computing: Grid computing is a computing infrastructure
that combines computer resources spread over different
geographical locations to achieve a common goal. All unused
resources on multiple computers are pooled together and
made available for a single task.
Cluster Computing
Cluster computing defines several computers linked on a network and
implemented like an individual entity. Each computer that is linked to the
network is known as a node.
Cluster computing provides solutions to solve difficult problems by providing
faster computational speed, and enhanced data integrity. The connected
computers implement operations all together thus generating the impression
like a single system (virtual device). This procedure is defined as the
transparency of the system.
Advantages of Cluster Computing
The advantages of cluster computing are as follows −
8
Cost-Effectiveness − Cluster computing is considered to be much more
costeffective. These computing systems provide boosted implementation
concerning the mainframe computer devices.
Processing Speed − The processing speed of cluster computing is
validated with that of the mainframe systems and other supercomputers
demonstrate around the globe.
Increased Resource Availability − Availability plays an important role in
cluster computing systems. Failure of some connected active nodes can be
simply transformed onto different active nodes on the server, providing
high availability.
Improved Flexibility − In cluster computing, better description can be
updated and improved by inserting unique nodes into the current server.
Disadvantages of Cluster Computing :
High cost : It is not so much cost-effective due to its high hardware and
its design.
Problem in finding fault : It is difficult to find which component has a fault.
More space is needed
Grid Computing
Grid Computing comes under the evolution of cloud computing which
includes all the nodes that are located in different locations. It has
heterogeneous nodes that are located in a different company. Some nodes
9
are set ideal and these nodes can be combined to perform any one task. It is
highly preferable to perform complex activities as there are many computers
or nodes involved in the same network.
Layered Architecture of Grid Computing
Advantages
Can solve larger, more complex problems in a shorter time
Easier to collaborate with other organizations
Make better use of existing hardware
Disadvantages
Grid software and standards are still evolving
Learning curve to get started
Non-interactive job submission
Cloud Computing
Cloud computing service models are based on the concept of sharing on-
demand computing resources, software, and information over the internet.
Companies or individuals pay to access a virtual pool of shared resources,
10
including compute, storage, and networking services, which are located on
remote servers that are owned and managed by service providers.
Types of cloud computing
Public cloud
Public clouds are run by third-party cloud service providers. They offer
compute, storage, and network resources over the internet, enabling
companies to access shared on-demand resources based on their unique
requirements and business goals.
Private cloud
Private clouds are built, managed, and owned by a single organization and
privately hosted in their own data centres, commonly known as “on-
premises” or “on-prem.” They provide greater control, security, and
management of data while still enabling internal users to benefit from a
shared pool of compute, storage, and network resources.
Hybrid cloud
Hybrid clouds combine public and private cloud models, allowing
companies to leverage public cloud services and maintain the security and
compliance capabilities commonly found in private cloud architectures.
Advantages of Cloud Computing
1) Back-up and restore data
Once the data is stored in the cloud, it is easier to get back-up and restore that data
using the cloud.
2) Improved collaboration
Cloud applications improve collaboration by allowing groups of people to quickly and
easily share information in the cloud via shared storage.
ADVERTISEMENT
11
3) Excellent accessibility
Cloud allows us to quickly and easily access store information anywhere, anytime in
the whole world, using an internet connection. An internet cloud infrastructure
increases organization productivity and efficiency by ensuring that our data is always
accessible.
4) Low maintenance cost
Cloud computing reduces both hardware and software maintenance costs for
organizations.
5) Mobility
Cloud computing allows us to easily access all cloud data via mobile.
6) IServices in the pay-per-use model
Cloud computing offers Application Programming Interfaces (APIs) to the users for
access services on the cloud and pays the charges as per the usage of service.
7) Unlimited storage capacity
Cloud offers us a huge amount of storing capacity for storing our important data such
as documents, images, audio, video, etc. in one place.
8) Data security
Data security is one of the biggest advantages of cloud computing. Cloud offers many
advanced features related to security and ensures that data is securely stored and
handled.
Disadvantages of Cloud Computing
A list of the disadvantage of cloud computing is given below -
1) Internet Connectivity
As you know, in cloud computing, every data (image, audio, video, etc.) is stored on
the cloud, and we access these data through the cloud by using the internet
connection. If you do not have good internet connectivity, you cannot access these
data. However, we have no any other way to access data from the cloud.
12
2) Vendor lock-in
Vendor lock-in is the biggest disadvantage of cloud computing. Organizations may
face problems when transferring their services from one vendor to another. As
different vendors provide different platforms, that can cause difficulty moving from
one cloud to another.
3) Limited Control
As we know, cloud infrastructure is completely owned, managed, and monitored by
the service provider, so the cloud users have less control over the function and
execution of services within a cloud infrastructure.
4) Security
Although cloud service providers implement the best security standards to store
important information. But, before adopting cloud technology, you should be aware
that you will be sending all your organization's sensitive information to a third party,
i.e., a cloud computing service provider. While sending the data on the cloud, there
may be a chance that your organization's information is hacked by Hackers.
Architectural Styles for Distributed Systems: Guiding Design
Principles
13
An architectural style provides a set of design principles and
guidelines to shape the structure, organization, and interactions
within a distributed system. The choice of architectural style
influences the system’s flexibility, maintainability, and testability.
Common Architectural Styles for Distributed Systems:
Embracing Diversity
Layered Architecture:
The layered architecture divides the system into distinct layers, each
with a specific function. This style promotes modularity, simplifies
development, and enhances maintainability.
Advantages:
Well-defined boundaries and responsibilities
Encapsulation and information hiding
Easy to test and maintain
Disadvantages:
Can be less flexible than other styles
Overhead due to inter-layer communication
Object-Based Architecture:
14
The object-based architecture encapsulates data and behavior within
objects, promoting modularity and reusability. This style is
particularly suited for dynamic and frequently changing systems.
Advantages:
Flexibility and adaptability
Reusable components
Promotes encapsulation and information hiding
Disadvantages:
Can be more complex than other styles
Performance optimization challenges
Data-Centered Architecture:
The data-centered architecture revolves around the management
and manipulation of data. Data is stored in a central repository, and
components interact with it through a defined interface. This style is
suitable for data-intensive applications.
Advantages:
Data integrity and consistency
Efficient for data-intensive applications
15
Scalability through additional data nodes
Disadvantages:
Complexity in managing data repository
Difficulty in modifying data models
2. System architecture
System-level architecture focuses on the entire system and the placement
of components of a distributed system across multiple machines. The
client-server architecture and peer-to-peer architecture are the two major
system-level architectures that hold significance today. An example would
be an ecommerce system that contains a service layer, a database, and a
web front.
i) Client-server architecture
As the name suggests, client-server architecture consists of a client and a
server. The server is where all the work processes are, while the client is
where the user interacts with the service and other resources (remote
server). The client can then request from the server, and the server will
respond accordingly. Typically, only one server handles the remote side;
however, using multiple servers ensures total safety.
16
Client-server Architecture
Client-server architecture has one standard design feature: centralized
security. Data such as usernames and passwords are stored in a secure
database for any server user to have access to this information. This makes
it more stable and secure than peer-to-peer. This stability comes from
client-server architecture, where the security database can allow resource
usage in a more meaningful way. The system is much more stable and
secure, even though it isn’t as fast as a server. The disadvantages of a
distributed system are its single point of failure and not being as scalable
as a server.
ii) Peer-to-peer (P2P) architecture
A peer-to-peer network, also called a (P2P) network, works on the concept
of no central control in a distributed system. A node can either act as a
client or server at any given time once it joins the network. A node that
requests something is called a client, and one that provides something is
called a server. In general, each node is called a peer.
17
Peer-to-Peer Architecture
If a new node wishes to provide services, it can do so in two ways. One
way is to register with a centralized lookup server, which will then direct
the node to the service provider. The other way is for the node to broadcast
its service request to every other node in the network, and whichever node
responds will provide the requested service.
18
P2P networks of today have three separate sections:
Structured P2P: The nodes in structured P2P follow a
predefined distributed data structure.
Unstructured P2P: The nodes in unstructured P2P randomly
select their neighbours.
Hybrid P2P: In a hybrid P2P, some nodes have unique
functions appointed to them in an orderly manner.