0% found this document useful (0 votes)
13 views

Unit 1 Notes

Uploaded by

Adnan Qamar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

Unit 1 Notes

Uploaded by

Adnan Qamar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

Distributed System is a collection of autonomous computer systems that are physically

separated but are connected by a centralized computer network that is equipped with
distributed system software. The autonomous computers will communicate among each
system by sharing resources and files and performing the tasks assigned to them.
Example of Distributed System:
Any Social Media can have its Centralized Computer Network as its Headquarters and
computer systems that can be accessed by any user and using their services will be the
Autonomous Systems in the Distributed System Architecture.

● Distributed System Software: This Software enables computers to coordinate


their activities and to share the resources such as Hardware, Software, Data, etc.
● Database: It is used to store the processed data that are processed by each
Node/System of the Distributed systems that are connected to the
Centralized network.
● As we can see that each Autonomous System has a common Application that can
have its own data that is shared by the Centralized Database System.
● To Transfer the Data to Autonomous Systems, Centralized System should be
having a Middleware Service and should be connected to a Network.
● Middleware Services enable some services which are not present in the local
systems or centralized system default by acting as an interface between the
Centralized System and the local systems. By using components of Middleware
Services systems communicate and manage data.
● The Data which is been transferred through the database will be divided into
segments or modules and shared with Autonomous systems for processing.
● The Data will be processed and then will be transferred to the Centralized
system through the network and will be stored in the database.

Characteristics of Distributed System:


● Resource Sharing: It is the ability to use any Hardware, Software, or Data
anywhere in the System.
● Openness: It is concerned with Extensions and improvements in the system (i.e.,
How openly the software is developed and shared with others)
● Concurrency: It is naturally present in Distributed Systems, that deal with the
same activity or functionality that can be performed by separate users who are
in remote locations. Every local system has its independent Operating Systems
and Resources.
● Scalability: It increases the scale of the system as a number of processors
communicate with more users by accommodating to improve the responsiveness
of the system.
● Fault tolerance: It cares about the reliability of the system if there is a failure in
Hardware or Software, the system continues to operate properly without
degrading the performance the system.
● Transparency: It hides the complexity of the Distributed Systems to the Users
and Application programs as there should be privacy in every system.
● Heterogeneity: Networks, computer hardware, operating systems, programming
languages, and developer implementations can all vary and differ among
dispersed system components.

Advantages of Distributed System:

● Applications in Distributed Systems are Inherently Distributed Applications.


● Information in Distributed Systems is shared among geographically distributed
users.
● Resource Sharing (Autonomous systems can share resources from remote
locations).
● It has a better price performance ratio and flexibility.
● It has shorter response time and higher throughput.
● It has higher reliability and availability against component failure.
● It has extensibility so that systems can be extended in more remote locations and
also incremental growth.

Disadvantages of Distributed System:

● Relevant Software for Distributed systems does not exist currently.


● Security possess a problem due to easy access to data as the resources are shared
to multiple systems.
● Networking Saturation may cause a hurdle in data transfer i.e., if there is a lag
in the network then the user will face a problem accessing data.
● In comparison to a single user system, the database associated with distributed
systems is much more complex and challenging to manage.
● If every node in a distributed system tries to send data at once, the network may
become overloaded.

Applications Area of Distributed System:

● Finance and Commerce: Amazon, eBay, Online Banking, E-Commerce websites.


● Information Society: Search Engines, Wikipedia, Social Networking, Cloud
Computing.
● Cloud Technologies: AWS, Salesforce, Microsoft Azure, SAP.
● Entertainment: Online Gaming, Music, youtube.
● Healthcare: Online patient records, Health Informatics.
● Education: E-learning.
● Transport and logistics: GPS, Google Maps.
● Environment Management: Sensor technologies.

Challenges of Distributed Systems:

While distributed systems offer many advantages, they also present some challenges that
must be addressed. These challenges include:
● Network latency: The communication network in a distributed system can
introduce latency, which can affect the performance of the system.
● Distributed coordination: Distributed systems require coordination among the
nodes, which can be challenging due to the distributed nature of the system.
● Security: Distributed systems are more vulnerable to security threats than
centralized systems due to the distributed nature of the system.
● Data consistency: Maintaining data consistency across multiple nodes in a
distributed system can be challenging.

Goals of Distributed System

1. Boosting Performance

The distributed system tries to make things faster by dividing a bigger task into small
chunks and finally processing them simultaneously in different computers. It’s just like a
group of people working together on a project. For example, when we try to search for
anything on the internet the search engine distributes the work among several servers and
then retrieve the result and display the webpage in a few seconds.

2. Enhancing Reliability

Distributed system ensures reliability by minimizing the load of individual computer


failure. If one computer gets some failure then other computers try to keep the system
running smoothly. For Example, when we search for something in social media if one
server gets an issue then also we are able to access photos, and posts because they switch
the server quickly.

3. Scaling for the Future

Distributed systems are experts at handling increased demands. They manage the demands
by incorporating more and more computers into the system. This way they run everything
smoothly and can handle more users.

4. Resourceful Utilization
Resource Utilization is one of the most prominent features of a Distributed system. Instead
of putting a load on one computer, they distribute the task among the other available
resource. This ensures that work will be done by utilizing every resource.
Further Subtopics and Different Approaches:

1. Consistency and Transparency

The distributed system also provide a seamless experience to the user. They make sure that
when you interact with the system, it feels like working with a single entity, even with many
computers working behind the scene.

2. Fault Tolerance and Resilience

Distributed system comes with backup plans. If any computer fails they redirect the task to
some other computer ensuring less delay and a smooth experience.

3. Security and Data Integrity

Distributed system have special codes and lock to protect data from other. They use some
renowned techniques for encryption and authentication to keep information safe and
unauthorized access. Distributed systems prioritize data security as you keep your secret
safe.

4. Load Balancing

As we know distributed systems ensure good resource utilization and allow the system to
handle a high volume of data without getting it slow down, this is achieved by load
balancing, in which it evenly distributed load to all the computers available. Thus
preventing single-machine overload and preventing bottlenecks.

What's a Distributed System?


● A collection of independent computers which can cooperate, but which appear to
users of the system as a uniprocessor computer.
● Two aspects Hardware and Software
Examples
● Users sharing a processor pool. System dynamically decides where processes are
executed
● Distributed Banking

Motivation

Advantages of Distributed over Centralised Systems

● Economics - 10,000 CPUs executing 50 MIPS yields system executing 500,000 MIPS.
Not possible for single CPU to achieve.
● Some problems need distributed solutions - e.g., CSCW
● Reliability of Distributed Systems, Load Sharing
● Incremental Growth

Advantages of Distributed Systems over Independent PCs

● Sharing of Data and Resources


● Communication
● Flexibility (E.G., I have a Mac but also use departments compute power when I
need it)

Disadvantages of Distributed Systems

● Software
● Networking - overloading, data loss
● Security

Hardware Concepts

● Although all Distributed Systems consist of multiple CPUs, there are different ways
of interconnecting them and how they communicate
● Flynn (1972) identified two essential characteristics to classify multiple CPU
computer systems: the number of instruction streams and the number of data
streams
● Uniprocessors SISD
Array processors are SIMD - processors cooperate on a single problem
MISD - No known computer fits this model
Distributed Systems are MIMD - a group of independent computers each with its
own program counter, program and data
● MIMD can be split into two classifications
● Multiprocessors - CPUs share a common memory
Multicomputers - CPUs have separate memories
● Can be further subclassified as
● Bus - All machines connected by single medium (e.g., LAN, bus, backplane, cable)
Switched - Single wire from machine to machine, with possibly different wiring
patterns (e.g, Internet)
● Further classification is
● Tightly-coupled - short delay in communication between computers, high data rate
(e.g., Parallel computers working on related computations)
Loosely-coupled - Large delay in communications, Low data rate (Distributed
Systems working on unrelated computations)

Bus-Based Multiprocessors

● Up to 64 Tightly-coupled CPUs on a bus, backplane or motherboard with a shared


memory module
● + coherent
● - Bus traffic
So add high speed memory cache to each CPU
Snoopy cache

Switched Multiprocessors

● For more than 64 CPUs


● Split memory into smaller modules
● Connect all CPUs to each memory module, two common methods
● Crossbar switch

● Omega network

Bus-based multicomputers

● Each CPU has its own memory, and CPUs are connected over a network
But how do the CPUs communicate?
● Software problem

Switched Multicomputers

● Each CPU has direct and exclusive access to its own private memory
Software

● Operating Systems for multiprocessors and multicomputers


● Tightly-coupled and Loosely-coupled operating systems
● Loosely-coupled
E.G., LAN where users have their own, independent machines, but are still able to
interact in a limited way when necessary
● Tightly-coupled
E.G., multiprocessor dedicated to solving a particular problem in parallel

Types of Operating System

Network Operating Systems

● Loosely-coupled software on loosely-coupled hardware


● E.g., LAN with file server
● Users are aware that they are using independent hardware, but share a consistent
view of the filing system with other network users

True Distributed Systems

● Tightly-coupled software on Loosely-coupled hardware


● No known commercial examples
● Give users impression that collection of computers is a single timesharing system -
the virtual uniprocessor
● Processes are capable of being executed on any computer on the network, and users
won't realise
● Characteristics
Global interprocess communication mechanism
Global protection scheme
Uniform Process Management system
Uniform File System
Identical Operating System kernels resident on each computer - kernel responsible
for memory management and process scheduling on each computer

Multiprocessor Timesharing Systems

● Tightly-coupled software on toghtly-coupled hardware


● E.g., UNIX workstation with several CPUs

● Single RUN Queue


● Scheduler must run as a critical section to prevent two CPUs from selecting the
same process to run
● Doesn't matter which CPU executes a process, because all CPUs share the same
memory

Design Issues

Transparency

● Giving the impression that the processor pool is acting as a uniprocessor (WWW is
a good-ish example)
● Location Transparency - don't need to know where resources are
● Migration Transparency - Resources can be moved without their names being
changed
● Replication Transparency - System free to make multiple copies of files without
users being affected (e.g., caching)
● Concurrency Transparency - Multiple users can share resources automatically
● Parallelism Transparency - Activities can happen in parallel without users knowing

Flexibility
● Kernel should do as little as possible. User-level servers provide bulk of operating
systems services
● In this case, the kernel is called the microkernel
● Microkernel responsible for
Interprocess communication
Some memory management
Some low-level process management and scheduling
Low-level input and output
● All other services are obtained by sending messages to the appropriate server

Advantages

● Modular
● Every client has equally opportunity to access server, regardless of location

Reliability

● Availability
● Protection against unauthorised access and data loss
● Data consistency if maintaining multiple copies of data
● Fault tolerence

Performance

● A Distributed system should not run an appliction slower than if is were run on an
independent computer
● How is performance measured? e.g., response time, thoughput, system utilization,
network capacity consumed, etc.
● But performance is affected by communications...

Scalability

● Current distributed systems are designed to work with a few hundred CPUs. Will
they still work with thousands or hundreds of thousands?
- Don't centralise components
- Don't centralize tables
- Don't centralize algorithms
- Don't assume all machines are synchronised

You might also like