DC UT1 QB Soln
DC UT1 QB Soln
A number of important goals must be met in order for the effort involved in developing a distributed
system to be successful A distributed system should be open, scalable, and easy for users to access
resources. The objective is to do the following at the maximum level possible.
(1) Bringing Users and Resources Together: A distributed system's major objective is to give users
easy access to remote resources and to share those resources in a regulated way with other users.
(2) Transparency: Transparency indicates that a distributed system may seem to users and
applications as if it were a single computer system.
(3) Openness: Distributed systems must work to be as open as possible. An open distributed system
is one that offers services in accordance with standards that outline the syntax and semantics of
those service instances.
(4) Scalability: The general trend in distributed systems is larger systems. Algorithms that work well
for systems 1000 machines can be used by systems with 100 machines, but cannot be used at all by
systems with 10,000 machines. To begin with, the centralized algorithm does not scale well.
(5) Reliability: The main goal was to increase the dependability of distributed systems relative to
single pro systems. According to the concept, when one machine malfunctions, another one adjusts
to it.
(6) Performance: If a distributed system cannot achieve the desired performance, it is pointless to
develop, transparent, flexible, and reliable. A distributed system ought to offer the highest level of
performance.
• Problems with scalability and solutions (techniques for scalability)
SCALABILITY LIMITATIONS
SIZE SCALABILITY:
1. The problem with the centralized scheme is obvious: the server, or group of servers, can
simply become a bottleneck when it needs to process an increasing number of requests.
2. There are essentially three root causes for becoming a bottleneck:
• The computational capacity, limited by the CPUs
• The storage capacity, including the transfer rate between CPUs and disks
• The network between the user and the centralized service
3. Another problem is that it could be the service being a single point of failure
GEOGRAPHICAL SCALABILITY:
1. Synchronous communication: One of the main reasons why it is still difficult to scale existing
distributed systems that were designed for local-area networks is that many of them are
based on synchronous communication. In this form of communication, a party requesting
service, generally referred to as a client, blocks until a reply is sent back from the server
implementing the service.
2. Another problem that hinders geographical scalability is that communication in wide-area
networks is inherently much less reliable than in local-area networks
ADMINISTRATIVE SCALABILITY:
1. A good example of partition and distribution is the internet domain name system (DNS). The
DNS name space is hierarchically organized into a tree of domains, which are divided into
nonoverlapping zones
2. Partition data and computations across multiple machines:
• Move computations to clients (java applets)
• Decentralized naming services (DNS)
• Decentralized information systems (WWW)
1. Open distributed system: An open distributed system Is essentially a system that offers
components that can easily be used by, or Integrated into other systems.
2. To be open means that components should adhere to standard rules that describe the
Syntax and semantics of what those components have to offer (i.e., which service they
provide)
3. Able to interact with services from other open systems, irrespective of the underlying
environment requires the following characteristics:
• Systems should conform to well-defined interfaces
• Systems should support portability of applications
• Systems should easily interoperate
4. Define services through interfaces using an interface definition language (IDL).
5. If properly specified, an interface definition allows an arbitrary process that needs a
certain interface, to talk to another process that provides that interface. It also allows
two independent parties to build completely different implementations of those
interfaces, leading to two separate components that operate in exactly the same way.
• Compare distributed systems with NOS, DOS, and middleware with neat diagrams
• Types of client server architectures
• Differentiate between replication and caching. An experimental file server is up 75% of the
time and down for 25% of the time due to bugs. How many times does this file server have
to be replicated to give an availability of at least 99%?
Ans.
Replication
1. Replication not only increases availability and reliability, but also helps to balance the load
between components leading to better performance. Also, having a copy nearby can hide
much of the communication latency problems.
2. Make copies of data available at different machines:
• Replicated file servers (mainly for fault tolerance)
• Replicated databases
• Mirrored web sites
• Large-scale distributed shared memory systems
Caching:
Sum:
25%=0.25....down time
100%-99%=1%... this translates to 0.01
therefore, no. of replications = n log (0.25)= log 0.01
n = (log(0.25)) / ( log (0.01))
= 4 replications
• What is Middleware? Positioning of Middleware protocol
• Services of Middleware
• With neat diagrams explain the working of RPC
• With neat diagrams explain the different types of Message oriented Communication
(transient, Persistent, Synchronous, asynchronous)
• What are the Steps in binding a client to a server
Registration of a server makes it possible for a client to locate the server and bind to it.
Server location is done in two steps:
1. Locate the server’s machine.
2. Locate the server on that machine.
Server asks operating system for an end point (port)
Register the endpoint with DCE daemon that records in the end table
Server register with directory server with its network address and its name (program name)
Now Client pass the name to directory server and find the server network address
Client goes to DCE daemon (well know port) on that machine and ask for look up the end
point (port) of the server in its end point table
RPC then takes place
• What are the issues in Parameter passing of RPC
Issues:
However, in a large distributed system, it is typical to have a variety of machine types. Numbers,
letters, and other data objects are typically manifested differently by each machine.
To exemplify, IBM mainframes and IBM personal computers, use a different encoding technique
like IBM mainframes use EBCDIC, but IBM PC uses ASCII. Due to this difference, transfer of
character arguments is not possible between these two.
Integer and floating-point numbers can both have challenges with representation.
Another issue is that some machines count bytes from right to left, while others count them
from left to right. Eg Intel/AMD x86, Digital VAX handles data in Little-Endian form and Sun
SPARC, Power PC representation of numbers in another way i.e. Big-Endian form.
• What is a Data Stream?
A data stream is nothing but a sequence of data units. Different transmission modes
1. Asynchronous transmission mode - the data items in a stream are transmitted one after the
other, but there are no further timing constraints on when transmission of items should take
place. For example, a file transferred as a data stream.
2. Synchronous transmission mode - there is a maximum end-to-end delay defined for each unit
in a data stream. Whether a data unit is transferred much faster than the maximum tolerated
delay is not important.
3. Isochronous transmission mode - it is necessary that data units are transferred on time. This
means that data transfer is subject to a maximum and minimum end-to-end delay. Plays a
crucial role in representing audio and video.
The relation between the sub-streams in a complex stream is often also time dependent.
• How to specify required QoS in a stream communication?
Physical clock
It is a physical process and also a method of measuring that process to record the passage of
time. For example, the rotation of the Earth measured in solar days. Most of the physical
clocks are based on cyclic processes such as a celestial rotation.
Logical clock
It is a mechanism for capturing causal and chronological relationships in a distributed
system. A physically synchronous global clock may not be present in a distributed system. In
such systems a logical clock allows global ordering on events from different processes.
Vector clock
It is an algorithm for generating a partial ordering of events in a distributed system. It
detects causality violations. Like the Lamport timestamps interprocess messages contain the
state of the sending process's logical clock.
• Differentiate between Cristian’s and Berkeley’s Physical clock synchronization algorithms
• At what intervals will the clocks of a distributed system be synchronised?
• Explain Lamport algorithm with examples.