0% found this document useful (0 votes)
88 views11 pages

Chapter 2

This document provides guidance for instructors teaching a chapter on interprocess communication, including suggesting explaining concepts like synchronous vs asynchronous communication using human analogies, demonstrating sample code showing data exchange between processes, and providing solutions to exercises at the end to review key points like drawing time event diagrams to illustrate blocking and unblocking of processes.

Uploaded by

fogsa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
88 views11 pages

Chapter 2

This document provides guidance for instructors teaching a chapter on interprocess communication, including suggesting explaining concepts like synchronous vs asynchronous communication using human analogies, demonstrating sample code showing data exchange between processes, and providing solutions to exercises at the end to review key points like drawing time event diagrams to illustrate blocking and unblocking of processes.

Uploaded by

fogsa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 11

Distributed Computing, Liu Instructor’s Manual w/ Solutions

Chapter 2

Chapter 2
Interprocess Communications

Presentation Suggestions
 This chapter is the foundation for distributed computing. For students who have never
been exposed to programming involving more than one process, this chapter can be
challenging.
 Use inter-human communication as an analogy (see exercise 1) to get the students
motivated: they must appreciate the need for the primitive operations (send, receive),
for event synchronization, data representation and encoding, and protocols.
 Explain that in interprocess communications, “synchronous” means “blocking” while
“asynchronous” means no blocking
 The idea of blocking is not intuitive to most beginning students: again, use inter-person
communication as an analogy in your explanation for the need of blocking. Tell them
that they will see blocking in the concrete in Chapter 4, when the socket APIs are
introduced.
 Be sure to clarify the difference between the time-event diagram (which shows
blocking) and the sequence diagram (which does not show blocking).
 The demo illustrated in Figure 2.18 is is very effective for allowing the students to see
the actual exchange of data between two independent processes. During the demo, you
may want point out where blocking occurs, and point out clearly the source of the data
being displayed on screen.
Be sure to make clear to students that using telnet to interact with a text-based server is
not the normal way to conduct a protocol session. For interactive learning, it is a good
idea to go over the first six exercises in class during your presentation. For example,
invite the class to solve problem 1 after you have presented the idea of interprocess
communications; problem 2 after you introduced the terms synchronous and
asynchronous; and so forth.
 Do encourage your students to look up the Internet Request for Comments (RFC) (see
the references): they may not understand the writing, but it’s a good idea to get them to
start thinking about specifying protocols and why protocols are needed.

How This Chapter Fits


In this chapter, students are introduced to the concepts for interprocess communications,
the foundation for distributed computing. For students who have never been exposed to
programming involving more than one process, this chapter can be challenging.

Solutions to Chapter Exercises


(Answers are in red except in diagrams)
1. Consider inter-human communications.
a. Classify each of the followings in terms of unicast and multicast:
i. A student speaking to a friend on a wireless phone.
This is supposed to be a unicast, although wireless data transfer is
notoriously vulnerable to eavesdropping.

©2004 Addison Wesley


1
Distributed Computing, Liu Instructor’s Manual w/ Solutions
Chapter 2
ii. An executive speaking on a conference-phone with managers in
different cities. multicast
iii. A teacher lecturing in a classroom. multicast
iv. A child playing with another child using a “walkie-talkie”. unicast
that’s, again, subject to eavesdropping.
v. The president addressing the nation on television. multicast

b. How are events synchronization and data representation handled during a


session of face-to-face conversation, such as when you speak to someone seated
next to you?
Event synchronization is effected using pauses, eye contact, gesture, or
explicit words (“hello”,“your turn”, “I AM talking”).
A session is initiated when two persons come in contact, and one or both
signal to each other his/her desire to converse (‘hello, how’s it going?’) The
conversation takes turns between the participants. A change in turn may
be signaled by a pause, eye contact, gesture, or explicit words (“what do
you think?”). It is imprecise, however, as people do sometimes talk at the
same time, or awkward pauses may occur in the midst of a conversation.
Data representation: a common language (possibly sign language) will have
to be spoken, or a language translater will be needed. The sound is carried
by air to all within earshot or sight of the speakers. Additionally, data can
be encoded using body language, tone, facial expression, and gestures.
c. How are events synchronization and data representation handled during a
session of remote conversation, such as when you speak to someone over the
phone?
A session is initiated when the phone rings and is picked up at the receiving
end. A “hello” from the callee typically starts the conversation, followed by
the caller identifying herself/himself. The two sides then take turns to
speak, using pauses or explicit words to signify a new turn.
Data representation: a common language (possibly sign language) will have
to be spoken. The sound wave is converted to electric signals transmitted
over the phone line, and decoded at the other end.

2. Process A sends a single message to process B using connectionless IPC. To do


so, A issues a send operation (specifying the message as argument) sometime during its
execution, and B issues a receive operation. Suppose the send operation is blocking
and the receive operation is non-blocking. Draw an event diagram (not sequence
diagram) for each of the following scenario:
a. Process A issues its send operation prior to process B issues its receive operation.
Answer:

©2004 Addison Wesley


2
Distributed Computing, Liu Instructor’s Manual w/ Solutions
Chapter 2

The data requested by the receive operation has already arrived, the data is
delivered to process B and an acknowledgement from host 2’s IPC facility
will unblock process A subsequently.

b. Process B issues its receive operation prior to process A issues its send operation.
Answer:
There are two possible scenarios:
(i) The data requested by the receive operation has not yet arrived, no data is
delivered to the process. It is the receiving process’ responsibility to ascertain
that it has indeed received the data and, if necessary, repeat the receive
operation until the data has arrived. Process 1 is blocked indefinitely until
process 2 reissues a receive request and an acknowledgement eventually arrives
from host 2’s IPC facility.

(ii) The data requested by the receive operation has not yet arrived. The IPC
facility of host 2 will notify process 2 when the data it requested has arrived, at
which point process 2 may proceed to process the data. This scenario requires
that process 2 provides a listener or event handler which can be invoked by the
IPC facility to notify the process of the arrival of the requested data.

©2004 Addison Wesley


3
Distributed Computing, Liu Instructor’s Manual w/ Solutions
Chapter 2

3. Repeat the last question. This time both operations (send, receive) are blocking.
Answer:
a. Process A issues its send operation prior to process B issues its receive
operation

b. Process B issues its receive operation prior to process A issues its send
operation.

©2004 Addison Wesley


4
Distributed Computing, Liu Instructor’s Manual w/ Solutions
Chapter 2
7. In a distributed system three processes P1, P2, P3 are engaged in interprocess
communication. Suppose the following sequence of events occurred:
At time 1, P3 issues a receive from P2.
At time 2, P1 sends m1 to P2.
At time 3, P2 issues a receive from P1.
At time 4, P2 receives m1.
At time 5, P2 sends message m1 to P3.
At time 6, P3 receives m1; P1 issues receive from P2.
At time 7, P2 issues a receive from P3.
At time 8, P3 sends m2 to P2.
At time 9, P2 receives m2.
At time 10, P2 sends m2 to P1.
At time 11, P1 recieves m2.

a. Draw a time event diagram each to show the sequence of events and the
blocking and unblocking of each process:

i. on a communication system which provides blocking send operation


and blocking receive operation.

©2004 Addison Wesley


5
Distributed Computing, Liu Instructor’s Manual w/ Solutions
Chapter 2

ii. on a communication system which provides nonnblocking send


operation and blocking receive operation.

©2004 Addison Wesley


6
Distributed Computing, Liu Instructor’s Manual w/ Solutions
Chapter 2

b. Draw a sequence diagram to document the interprocess communication between


P1, P2, and P3.

8. This is an exercise on data marshalling.


a. In the context of IPC:
i. What is meant by data marshaling? (There are two components to
data marshalling; name and describe each.) Why is it necessary?
Answer:
The two components of data marshaling are:

©2004 Addison Wesley


7
Distributed Computing, Liu Instructor’s Manual w/ Solutions
Chapter 2
1. Data structures used in programming need to be flattened
or serialized, since data transmitted over the network must
be serialized.
2. The data needs to be converted to an external
representation so that it may be interpreted correctly by
the receiver, which then maps the external representation
to its local representation.
ii. What is meant by object serialization?
It is the “flattening” of an object so that an object may be
transmitted over the network.
iii. How does the two components of data marshalling apply to (i) an
array of integers, and (ii) an object? (Describe in general terms what
needs to be flattened and encoded in each case.)
(i) for an array: each component will need to be flattened
and encoded; the components are then appended one
after another, with a count of the components and the
type of each component specified in a header.
(ii) For an object: the data, the method, and the state of
execution will need to be represented in a binary
stream, in such a way that, once transmitted, the
object can be reconstituted at the receiver’s. Note
that each data item in an object must be marshaled,
and references and pointers, if any, must be mapped
appropriately by the receiver.
8b.
Process A sends to process B a single data item, a date. Process A uses the
American date format: <month>/<day>/<year> (for example: 01/31/2001.
Process B uses the European date format: <day>/<month>/<year>(for
example:31/01/2001.)
i. Suppose no external data representation has been agreed upon.
i. How can A send the date to B so that A does not have to do any
conversion?
Answer: A sends the date in American format. When B receives the
data item, the date is mapped to the European format.
ii. How can A send the date to B so that B does not have to do any
conversion?
Answer: A converts the date to Eurpoean format before sending it.

ii. Suppose the same date has to be communicated to Process C, which uses a date
format of <year>-<month>-<date>(for example; 2001-01-31).
i. How can A send the date to B so that A does not have to do any
conversion?
Answer: A sends the date in American format. B will have to
convert the date to its local format upon receiving the date.
ii. How can A send the date to both B and C so that A does not have to
do any conversion?

©2004 Addison Wesley


8
Distributed Computing, Liu Instructor’s Manual w/ Solutions
Chapter 2
Answer: A sends the date in American format. B and C will
have to convert the date to its local format upon receiving the
date.

iii. Describe an external representation of the date so that any sending


process may convert a date of its local representation to the external
representation prior to sending, and any receiving process may convert the
date received from this representation to its native representation.
An example of such a representation is <year>,<month>,<date> (for
example, 2001, 12, 31).

It may be of interest for you to read reference [11].

9. Use telnet to interact with a daytime4 server process on a machine that you have access
to. Daytime server processes reside on port 13 of an IP host. (From a console screen
on a UNIX or Windows system, enter:
telnet<space> <domain name or IP address of the machine><space>13

Answer:
A sample session is shown below --
9:20pm falcon ~>telnet polylog1 13
Trying 129.65.60.104...
Connected to polylog1.cpunix.calpoly.edu.
Escape character is '^]'.
Fri Oct 12 21:21:21 2001
Connection closed by foreign host.

Note that no message needs to be sent from the client; a timestamp is


immediately sent from the TCP daytime server running on port 13 on
the host polylog1. (The UDP daytime server does require a message
from the client; the contents of the message is immaterial.)

10. Draw a sequence diagram for the daytime protocol.


Answer:

11. Is it possible for a daytime client to be blocked indefinitely? Explain.


Answer:
Yes, if after it issues a blocking receive operation (i) the server, perhaps due to a
failure, does not respond, and (ii) there is no timeout in effect with the operation.

©2004 Addison Wesley


9
Distributed Computing, Liu Instructor’s Manual w/ Solutions
Chapter 2
12. Consider the Simple Mail Transfer Protocol (SMTP)4.An excerpt from the RFC for this
protocol provides the following sample session.
R: 220 USC-ISI.ARPA Simple Mail Transfer Service Ready
S: HELO LBL-UNIX.ARPA
R: 250 USC-ISI.ARPA

S: MAIL FROM:<mo@LBL-UNIX.ARPA>
R: 250 OK

S: RCPT TO:<Jones@USC-ISI.ARPA>
R: OK

S: DATA
R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Blah blah blah...
S: ...etc. etc. etc.
S: .
R: 250 OK

S: QUIT
R: 221 USC-ISI.ARPA Service closing transmission channel

a. Use a sequence diagram to describe the interactions among the participating processes.
Answer:

©2004 Addison Wesley


10
Distributed Computing, Liu Instructor’s Manual w/ Solutions
Chapter 2
b. What is the format of each request?
Answer: The format of each request is <a keyword or keywords> <data>.
c. What is the format of each response?
Answer:
The format of each response is <a status code> <a keyword or keywords> <data>.
The status code is sometimes omitted.

d. Use telnet to connect to a system on which you have an SMTP email account, then send
yourself an email.
Log onto the system and check that the email indeed arrived.
Answer:
It can be done. However, please do not entertain the idea of using this technique
to forge email - many mail servers will track the originating IP address of the
client host and unauthorized email can be traced.

©2004 Addison Wesley


11

You might also like