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

Distributed System Assignment

The document discusses an individual assignment submitted by Muhamedsultan Awol to Megersa.D for a computer science course. It contains the student's responses to 5 questions related to distributed systems concepts like asynchronous RPCs, synchronous communication implementations, client-server socket programming, and personal future visions and role models.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views

Distributed System Assignment

The document discusses an individual assignment submitted by Muhamedsultan Awol to Megersa.D for a computer science course. It contains the student's responses to 5 questions related to distributed systems concepts like asynchronous RPCs, synchronous communication implementations, client-server socket programming, and personal future visions and role models.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

DILLA UNIVERSITY

COLLEGE OF ENGINEERING AND TECHNOLOGY

School of Computing and Informatics

Department of Computer Science

Introduction to Distributed System Individual Assignment

Name ID
Muhamedsultan Awol ………………………….4803/19

Submitted to:
Megersa.D(Msc)

March 2024 G.C

Dilla, Ethiopia
1. No, this is not the same. An asynchronous RPC returns an acknowledgement
to the caller, meaning that after the first call by the client, an additional
message is sent across the network. Likewise, the server is acknowledged
that its response has been delivered to the client. Two asynchronous RPCs
may be the same, provided reliable communication is guaranteed. This is
generally not the case.
In a normal RPC (Remote Procedure Call) scenario, the client initiates a
request to the server and waits for a response synchronously. The client
blocks until it receives the result from the server, and it cannot perform any
other operations during that time. Once the server completes processing the
request, it sends the response back to the client, and then the client can
continue its execution.
On the other hand, in asynchronous RPCs the client initiates the first
asynchronous RPC to the server and doesn't block or wait for the response.
Instead, it can continue its execution and perform other operations while
waiting for the response. The server processes the request in the background
and eventually sends the result back to the client using a separate
asynchronous RPC. The client may receive the result through a callback or
by polling for the response.
Using asynchronous RPCs allows the client to execute other tasks or make
additional requests while waiting for the server to process the initial request.
It can achieve better concurrency and responsiveness compared to the
blocking nature of normal RPCs.
If you replace the asynchronous RPCs with synchronous RPCs in the
described approach, the client would have to wait for each RPC to complete
before initiating the next one. This would introduce blocking behavior,
similar to normal RPCs, and the client would not be able to perform other
operations until it receives the response from each RPC.
In summary, the approach of using asynchronous RPCs enables
concurrency and non-blocking behavior, allowing the client to perform other
tasks while waiting for the server's response. Replacing asynchronous RPCs
with synchronous RPCs would result in a different execution behavior with
potential blocking and reduced concurrency.

2. Consider a synchronous send primitive. A simple implementation is to send


a message to the server using asynchronous communication, and
subsequently let the caller continuously poll for an incoming
acknowledgement or response from the server. If we assume that the local
operating system stores incoming messages into a local buffer, then an
alternative implementation is to block the caller until it receives a signal
from the operating system that a message has arrived, after which the caller
does an asynchronous receive.
An asynchronous send could be implemented by making the sender append
its message into a buffer that is shared by the process that transfers the
message. Each time a client appends a message to the buffer, it wakes the
send process which sends the message with a blocking call. The receiver can
be implemented by offering a buffer with incoming messages that can be
checked by an application.
3. Both the client and the server create a socket, but only the server binds the
socket to a local endpoint. The server can then subsequently do a blocking
read call in which it waits for incoming data from any client. Likewise, after
creating the socket, the client simply does a blocking call to write data to the
server. There is no need to close a connection.

4. My future vision is to become a successful person and actively participate in


voluntary work. And my future vision encompasses not only personal
success but also a deep commitment to actively engaging in voluntary work
to bring about positive change in society.
5. My role model in my life was prophet Muhamed(pubh).
On the last day of my life, I hope to be remembered as someone who was
not only a good person but also a source of compassion, empathy, and
kindness. I aspire to be recognized as someone who approached life with
curiosity, always seeking knowledge and understanding. Most importantly, I
wish to be remembered as a person who genuinely cared for others,
extending a helping hand and making a positive impact on the lives of those
around me.

You might also like