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

Introduction To Distributed Systems

This document provides an introduction to distributed systems. It defines a distributed system as one where hardware or software components located at networked computers communicate and coordinate their actions only by passing messages. A distributed system appears to users as a single computer. Examples include networks of workstations, processor pools, and file systems. Distributed systems face challenges related to heterogeneity, openness, security, scalability, failure handling, concurrency, transparency, and quality of service. They are classified into distributed computing systems like clusters and grids, distributed information systems, and distributed embedded systems.

Uploaded by

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

Introduction To Distributed Systems

This document provides an introduction to distributed systems. It defines a distributed system as one where hardware or software components located at networked computers communicate and coordinate their actions only by passing messages. A distributed system appears to users as a single computer. Examples include networks of workstations, processor pools, and file systems. Distributed systems face challenges related to heterogeneity, openness, security, scalability, failure handling, concurrency, transparency, and quality of service. They are classified into distributed computing systems like clusters and grids, distributed information systems, and distributed embedded systems.

Uploaded by

oljiraa
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 5

Chapter-1

Introduction to Distributed Systems

Introduction:
Networks of computers are everywhere. The Internet is one, as are the many networks of which it is
composed. Mobile phone networks, corporate networks, factory networks, campus networks, home networks,
in-car networks – all of these, both separately and in combination, share the essential characteristics that make
them relevant subjects for study under the heading distributed systems.

We define a distributed system as one in which hardware or software components located at networked
computers communicate and coordinate their actions only by passing messages. This simple definition covers
the entire range of systems in which networked computers can usefully be deployed.

Definition: - A distributed system is a collection of independent computers that appear to the users of the
system as a single computer.

Fig. 1-1 shows four networked computers and three applications, of which application B is distributed across
computers 2 and 3. Each application is offered the same interface. The distributed system provides the means
for components of a single distributed application to communicate with each other, but also to let different
applications communicate. At the same time, it hides, as best and reasonable as possible, the differences in
hardware and operating systems from each application.

Examples:
 a network of workstations allocated to users

 a pool of processors in the machine room allocated dynamically

 a single file system (all users access files with the same path name)

 user command executed in the best place (user workstation, a workstation belonging to someone else,
or on an unassigned processor in the machine room)
Advantages and Disadvantages of Distributed Systems:-
Trends in distributed systems:
Distributed systems are undergoing a period of significant change and this can be traced back to a number of
influential trends:

 The emergence of pervasive networking technology.


 The emergence of ubiquitous computing coupled with the desire to support user mobility in distributed
systems.
 The increasing demand for multimedia services.
 The view of distributed systems as a utility.

Types of Distributed Systems:


Distributed systems are classified as following types.

1. Distributed computing systems.


2. Distributed information systems.
3. Distributed embedded systems.
Distributed Computing Systems:
An important class of distributed systems is the one used for high-performance computing tasks.
Roughly speaking, one can make a distinction between two subgroups. In cluster computing the
underlying hardware consists of a collection of similar workstations or PCs, closely connected by
means of a high speed local-area network. In addition, each node runs the same operating system.

The situation becomes quite different in the case of grid computing. This subgroup consists of
distributed systems that are often constructed as a federation of computer systems, where each system
may fall under a different administrative domain, and may be very different when it comes to
hardware, software, and deployed network technology.

 Cluster Computing Systems


Cluster computing systems became popular when the price/performance ratio of personal computers
and workstations improved. In virtually all cases, cluster computing is used for parallel programming
in which a single (compute intensive) program is run in parallel on multiple machines.
One well-known example of a cluster computer is formed by Linux-based Beowulf clusters, of which
the general configuration is shown in Fig. 1-6. Each cluster consists of a collection of compute nodes
that are controlled and accessed by means of a single master node. The master typically handles the
allocation of nodes to a particular parallel program, maintains a batch queue of submitted jobs, and
provides an interface for the users of the system. As such, the master actually runs the middleware
needed for the execution of programs and management of the cluster, while the compute nodes often
need nothing else but a standard operating system.

An important part of this middleware is formed by the libraries for executing parallel programs. As
we will discuss in Chap. 4, many of these libraries effectively provide only advanced message-based
communication facilities, but are not capable of handling faulty processes, security, etc.

 Grid Computing Systems


A key issue in a grid computing system is that resources from different organizations are brought
together to allow the collaboration of a group of people or institutions. Such collaboration is realized
in the form of a virtual organization. The people belonging to the same virtual organization have
access rights to the resources that are provided to that organization. Typically, resources consist of
computer servers (including supercomputers, possibly implemented as cluster computers), storage
facilities, and databases. In addition, special networked devices such as telescopes, sensors, etc., can
be provided as well.

The architecture consists of four layers. The lowest fabric layer provides interfaces to local resources
at a specific site. The connectivity layer consists of communication protocols for supporting grid
transactions that span the usage of multiple resources. The resource layer is responsible for managing
a single resource. It uses the functions provided by the connectivity layer and calls directly the
interfaces made available by the fabric layer. The next layer in the hierarchy is the collective layer, it
deals with handling access to multiple resources and typically consists of services for resource
discovery, allocation and scheduling of tasks onto multiple resources, data replication, and so on.
Challenges:
The construction of distributed systems produces many challenges:

Heterogeneity: They must be constructed from a variety of different networks, operating systems, computer
hardware and programming languages. The Internet communication protocols mask the difference in
networks, and middleware can deal with the other differences.

Openness: Distributed systems should be extensible – the first step is to publish the interfaces of the
components, but the integration of components written by different programmers is a real challenge.

Security: Encryption can be used to provide adequate protection of shared resources and to keep sensitive
information secret when it is transmitted in messages over a network. Denial of service attacks are still a
problem.

Scalability: A distributed system is scalable if the cost of adding a user is a constant amount in terms of the
resources that must be added. The algorithms used to access shared data should avoid performance
bottlenecks and data should be structured hierarchically to get the best access times. Frequently accessed data
can be replicated.

Failure handling: Any process, computer or network may fail independently of the others. Therefore each
component needs to be aware of the possible ways in which the components it depends on may fail and be
designed to deal with each of those failures appropriately.

Concurrency: The presence of multiple users in a distributed system is a source of concurrent requests to its
resources. Each resource must be designed to be safe in a concurrent environment.

Transparency: The aim is to make certain aspects of distribution invisible to the application programmer so
that they need only be concerned with the design of their particular application. For example, they need not be
concerned with its location or the details of how its operations are accessed by other components, or whether
it will be replicated or migrated. Even failures of networks and processes can be presented to application
programmers in the form of exceptions – but they must be handled.

Quality of service: It is not sufficient to provide access to services in distributed systems. In particular, it is
also important to provide guarantees regarding the qualities associated with such service access. Examples of
such qualities include parameters related to performance, security and reliability.

You might also like