Distributed System Assignment-1: Jimma University
Distributed System Assignment-1: Jimma University
Distributed System Assignment-1: Jimma University
SUBMITTED TO MR.ADMAS
SUBMISSION DATE January 24/2021 GC
1 .what is distributed system?
A distributed system, also known as distributed computing, is a system with multiple components
located on different machines that communicate and coordinate actions in order to appear as a single
coherent system to the end-user.
The machines that are a part of a distributed system may be computers, physical servers, virtual machines,
containers, or any other node that can connect to the network, have local memory, and communicate by
passing messages.
Each machine works toward a common goal and the end-user views results as one cohesive unit.
Each machine has its own end-user and the distributed system facilitates sharing resources or
communication services.
Although distributed systems can sometimes be obscure, they usually have three primary characteristics:
all components run concurrently, there is no global clock, and all components fail independently of each
other.
Horizontal Scalability Since computing happens independently on each node, it is easy and
generally inexpensive to add additional nodes and functionality as necessary.
Reliability Most distributed systems are fault-tolerant as they can be made up of hundreds of
nodes that work together. The system generally doesn’t experience any disruptions if a single
machine fails.
Distributed systems generally fall into one of four different basic architecture models:
1. Client-server—Clients contact the server for data, then format it and display it to the end-user. The
end-user can also make a change from the client-side and commit it back to the server to make it
permanent.
2. Three-tier—Information about the client is stored in a middle tier rather than on the client to simplify
application deployment. This architecture model is most common for web applications.
3. n-tier— used when an application or server needs to forward requests to additional enterprise services
on the network.
4 .Peer- to -peer—There are no additional machines used to provide services or manage resources.
Responsibilities are uniformly distributed among machines in the system, known as peers, which can
serve as either client or server.
A computer network is a group of computers that use a set of common communication protocols over
digital interconnections for the purpose of sharing resources located on or provided by the network nodes.
The interconnections between nodes are formed from a broad spectrum of telecommunication network
technologies, based on physically wired, optical, and wireless radio-frequency methods that include
personal computers, servers, networking hardware, or other specialized or general-purpose hosts.
They are identified by hostnames and network addresses. Hostnames serve as memorable labels for the
nodes, rarely changed after Initial assignment. Network addresses serve for locating and identifying the
nodes by communication protocols such as the Internet Protocol.
Computer networks may be classified by many criteria, for example, the transmission medium used to
carry signals, bandwidth, and communication protocols to organize network traffic, the network size, the
topology, traffic control mechanism, and organizational intent.
Computer networks support many applications and services, such as access to the World Wide Web,
digital video, digital audio, shared use of application and storage servers, printers, and fax machines, and
use of email and instant messaging applications.
3. What is RPC?
Remote Procedure Call (RPC) is a protocol that one program can use to request a service from a
program located in another computer on a network without having to understand the network's details.
RPC is used to call other processes on the remote systems like a local system. A procedure call is also
sometimes known as a function call or a subroutine call.
RPC uses the client-server model. The requesting program is a client, and the service-providing program
is the server. Like a regular or local procedure call, an RPC is a synchronous operation requiring the
requesting program to be suspended until the results of the remote procedure are returned. However, the
use of lightweight processes or threads that share the same address space enables multiple RPCs to be
performed concurrently.
Remote Procedure Call is a technique for building distributed systems. Basically, it allows a program on
one machine to call a subroutine on another machine without knowing that it is remote. RPC is not a
transport protocol: rather, it is a method of using existing communications features in a transparent way.
This transparency is one of the great strengths of RPC as a tool. Because the application software does not
contain any communication code, it is independent of
This means that application software can be designed and written before these choices have even been
made. Because it takes care of any data reformatting needed, RPC also provides transparency to byte
ordering and differences in data representation (real number formats, etc). RPC is not a new technique.
An operating system, or "OS," is software that communicates with the hardware and allows other
programs to run. It is comprised of system software, or the fundamental files your computer needs to boot
up and function. Every desktop computer, tablet, and Smartphone includes an operating system that
provides basic functionality for the device.
Common desktop operating systems include Windows, OS X, and Linux. While each OS is different,
most provide a graphical user interface, or GUI, that includes a desktop and the ability to manage files
and folders. They also allow you to install and run programs written for the operating system. Windows
and Linux can be installed on standard PC hardware, while OS X is designed to run on Apple systems.
Therefore, the hardware you choose affects what operating system(s) you can run.
Synchronization refers to one of two distinct but related concepts: synchronization of processes, and
synchronization of data. Process synchronization refers to the idea that multiple processes are to join up
or handshake at a certain point, in order to reach an agreement or commit to a certain sequence of action.
Data synchronization refers to the idea of keeping multiple copies of a dataset in coherence with one
another, or to maintain data integrity. Process synchronization primitives are commonly used to
implement data synchronization.
The need for synchronization originates when processes need to execute concurrently. The main purpose
of synchronization is the sharing of resources without interference using mutual exclusion. The other
purpose is the coordination of the process interactions in an operating system.
6. Explain the difference between network and distributed operating
systems.
The main difference between these two operating systems (Network Operating System and
Distributed Operating System) is that in network operating system each node or system can have its own
operating system on the other hand in distribute operating system each node or system have same
operating system which is opposite to the network operating system.
Network Operating System’s main objective is to provide the local services to remote client.
In Network Operating system, communication takes place on the basis of files.
Network Operating System is more scalable than Distributing System.
In Network Operating System fault tolerance is less.
Network Operating System high.
Ease of implementation in Network Operating System is also high.
All nodes can have different operating system.
1) State Information
A state full server remembers client data (state) from one request to the next. State full servers, do store
session state. They may, therefore, keep track of which clients have opened which files, current read and
write pointers for files, which files have been locked by which clients, etc.
A Stateless server keeps no state information. Stateless file servers do not store any session state. This
means that every client request is treated independently, and not as a part of a new or existing session.
2) Programming
3) Crash recovery
State full servers have difficult crash recovery due to loss of information.
Stateless servers can easily recover from failure because there is no state that must be restored.
4) Information transfer
Using a State full server file server, the client can send less data with each request.
Using a stateless file server, the client must specify complete file names in each request specify location
for reading or writing re-authenticate for each request.
The main advantage of stateless servers is that they can easily recover from failure. Because there is no
state that must be restored, a failed server can simply restart after a crash and immediately provide
services to clients as though nothing happened. Furthermore, if clients crash the server is not stuck with
abandoned opened or locked files. Another benefit is that the server implementation remains simple
because it does not have to implement the state accounting associated with opening, closing, and locking
of files.
Simplicity: should be– easy to use, easy to develop new applications that communicate with the existing
ones, able to hide the details of underlying network protocols used.
Efficiency: Should reduce the number of message exchanges and avoid the costs of establishing and
terminating connections between the same pair of processes for each and every message
Reliability: Should handle node and link failures, normally handled by acknowledgments, timeouts and
retransmissions.
Correctness
Atomicity: messages sent to a group of processes will be delivered to all of them or none of them.
Ordered delivery: Messages are received by all receivers in an order acceptable to the application.
Flexibility: flexible to cater to the various needs different applications and to permit any kind of control
flow between cooperating processes including synchronous and asynchronous send and receive.
Security: should be capable of providing secure end-to-end communication, Support mechanisms for
authentication
Another important criterion for classifying networks is their scale (physical size). Those are;
Personal Area Network (PAN): The interconnection of devices within the range of an individual
person, typically within a range of 10 meters. For example, a wireless network connecting a computer
with its keyboard, mouse or printer is a PAN. Also, a PDA that controls the user’s hearing aid or
pacemaker fits in this category. Another example of PAN is a Bluetooth. Typically, this kind of network
could also be interconnected without wires to the Internet or other networks.
Local Area Network (LAN): Privately-owned networks covering a small geographic area, like a home,
office, building or group of buildings (e.g. campus). They are widely used to connect computers in
company offices and factories to share resources (e.g., printers) and exchange information. LANs are
restricted in size, which means that the worst-case transmission time is bounded and known in advance.
Knowing this bound makes it possible to use certain kinds of designs that would not otherwise be
possible. It also simplifies network management. Traditional LANs run at speeds of 10 Mbps to 100
Mbps, have low delay (microseconds or nanoseconds), and make very few errors. Newer LANs operate at
up to 10Gbps.
Early LAN (Local Area Network) networks were formed using coaxial cable, coax is an electric cable and
it is used to carry radio signals. LAN (Local Area Network) setup is developed by connecting two or
more than two computers with each other using a physical connection in order to share files and data
overtime.
Metropolitan Area Network (MAN): Covers a larger geographical area than is a LAN, ranging from
several blocks of buildings to entire cities. MANs can also depend on communications channels of
moderate-to-high data rates. A MAN might be owned and operated by a single organization, but it usually
will be used by many individuals and organizations. MANs might also be owned and operated as public
utilities. They will often provide means for internetworking of LANs. Metropolitan Area Networks can
span up to 50km, devices used are modem and wire/cable.
Most widely used technologies to develop a MAN (Metropolitan Area Network) network are FDDI (fiber
distribution data interface), ATM (Asynchronous Transfer Mode) and SMDS (switched multi megabit
data service).ATM (Asynchronous Transfer Mode) is the most frequently used of all. ATM
(Asynchronous Transfer Mode) is a digital data transfer technology. It was developed in 1980 to improve
the transportation of real time data over a single network. ATM (Asynchronous Transfer Mode) works
just like cell relay system, where data is separated in the form of fixed equal sized packets and is
transferred overtime. The purpose of ATM (Asynchronous Transfer Mode) was to access clear audio and
video results during a video conferencing.
Wide Area Networks (WAN): Computer network that covers a large geographical area, often a country
or continent. (Any network 1 whose communications links cross metropolitan, regional, national
boundaries). Less formally, a network that uses routers and public communications links. Routers will be
discussed later.
WAN (Wide Area Network) networks are established often by seeking help from telecomm departments
who provide the] facility of leased lines. Router is connected to the LAN at one side and a hub is attached
at the other end.
The OSI Model (Open Systems Interconnection Model) is a conceptual framework used to describe
the functions of a networking system. The OSI model characterizes computing functions into a universal
set of rules and requirements in order to support interoperability between different products and software.
In the OSI reference model, the communications between a computing system are split into seven
different abstraction layers: Physical, Data Link, Network, Transport, Session, Presentation, and
Application.
Physical Layer
The lowest layer of the OSI Model is concerned with electrically or optically transmitting raw
unstructured data bits across the network from the physical layer of the sending device to the physical
layer of the receiving device. It can include specifications such as voltages, pin layout, cabling, and radio
frequencies. At the physical layer, one might find “physical” resources such as network hubs, cabling,
repeaters, network adapters or modems.
At the data link layer, directly connected nodes are used to perform node-to-node data transfer where data
is packaged into frames. The data link layer also corrects errors that may have occurred at the physical
layer. The data link layer encompasses two sub-layers of its own. The first, media access control (MAC),
provides flow control and multiplexing for device transmissions over a network. The second, the logical
link control (LLC), provides flow and error control over the physical medium as well as identifies line
protocols.
Network Layer
The network layer is responsible for receiving frames from the data link layer, and delivering them to
their intended destinations among based on the addresses contained inside the frame. The network layer
finds the destination by using logical addresses, such as IP (internet protocol). At this layer, routers are a
crucial component used to quite literally route information where it needs to go between networks.
Transport Layer
The transport layer manages the delivery and error checking of data packets. It regulates the size,
sequencing, and ultimately the transfer of data between systems and hosts. One of the most common
examples of the transport layer is TCP or the Transmission Control Protocol.
Session Layer
The session layer controls the conversations between different computers. A session or connection
between machines is set up, managed, and terminal at layer 5. Session layer services also include
authentication and reconnections.
Presentation Layer
The presentation layer formats or translates data for the application layer based on the syntax or semantics
that the application accepts. Because of this, it at times also called the syntax layer. This layer can also
handle the encryption and decryption required by the application layer.
Application Layer
At this layer, both the end user and the application layer interact directly with the software application.
This layer sees network services provided to end-user applications such as a web browser or Office 365.
The application layer identifies communication partners, resource availability, and synchronizes
communication.