The characteristics of interprocess communication
The API for the Internet protocols
The general
characteristics of interprocess communication and then discuss the Internet
protocols as an example, explaining how programmers can use them, either by
means of UDP messages or through TCP streams.
The characteristics of interprocess communication
Message
passing between a pair of processes can be supported by two message
communication operations, send and receive, defined in terms of
destinations and messages. To communicate, one process sends a message (a
sequence of bytes) to a destination and another process at the destination
receives the message. This activity involves the communication of data from the
sending process to the receiving process and may involve the synchronization of
the two processes.
Synchronous and asynchronous communication • A queue
is associated with each message destination.
Sending processes cause messages to be added to remote queues and receiving
processes remove messages from local queues. Communication between the sending
and receiving processes may be either synchronous or asynchronous. In the synchronous form of communication, the
sending and receiving processes synchronize at every message. In this case,
both send and receive are blocking
operations. Whenever a send is issued
the sending process (or thread) is blocked until the corresponding receive is issued. Whenever a receive is issued by a process (or
thread), it blocks until a message arrives.
In the asynchronous form of communication, the
use of the send operation is nonblocking in that the sending process
is allowed to proceed as soon as the message has been copied to a local buffer,
and the transmission of the message proceeds in parallel with the sending
process. The receive operation can
have blocking and non-blocking variants. In the non-blocking variant, the receiving process proceeds with its
program after issuing a receive
operation, which provides a buffer to be filled in the background, but it must
separately receive notification that its buffer has
In a
system environment such as Java, which supports multiple threads in a single
process, the blocking receive has no
disadvantages, for it can be issued by one thread while other threads in the
process remain active, and the simplicity of synchronizing the receiving
threads with the incoming message is a substantial advantage. Non-blocking
communication appears to be more efficient, but it involves extra complexity in
the receiving process associated with the need to acquire the incoming message
out of its flow of control. For these reasons, today’s systems do not generally
provide the nonblocking form of receive.
Message destinations • Chapter 3
explains that in the Internet protocols, messages are sent to (Internet
address, local port) pairs. A
local port is a message destination within a computer, specified as an integer.
A port has exactly one receiver but can have many senders. Processes may use
multiple ports to receive messages. Any process that knows the number of a port
can send a message to it. Servers generally publicize their port numbers for use
by clients.
Reliability • As far as the validity property
is concerned, a point-to-point message service can be described as reliable if messages are guaranteed to be
delivered despite a ‘reasonable’ number of packets being dropped or lost. In
contrast, a point-to-point message service can be described as unreliable if
messages are not guaranteed to be delivered in the face of even a single packet
dropped or lost. For integrity, messages must arrive uncorrupted and without
duplication.
Ordering • Some applications require that
messages be delivered in sender order – that is, the order in which they were transmitted
by the sender. The delivery of messages out of sender order is regarded as a
failure by such applications.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2024 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.