Topic: synchronous communication through a channel

topics > computer science > Group: parallel processing

digital communication

calculus of communicating processes
communicating sequential processes
communication port
interprocess communication
synchronized processing


Communication may be synchronous between two processes over a channel. The channel may be identified name or by a local port. Typically the channel carries objects of a given type. The standard model is Hoare's communicating sequential processes.

A channel emphasizes the synchronization of two processes. A communication port emphasizes a process interacting with its environment. Process to process communication emphasizes a distributed system. These different views may be each best for different circumstances.

For systems with many processes, channels can be inconvenient. A programmer typically wants to connect process to process and return messages to specific processes. Waiting for communication on one of many channels can be costly. (cbb 4/98)

Subtopic: communication event up

Quote: interaction is the atom of behavior of the calculus of communication systems; i.e., passing a datum between processes [»milnR1_1993]
Quote: c!v is the communication event 'output message v on channel c'; c?x for input [»hoarCA_1985]
Quote: interprocess communication when each process names the other for I/O; synchronizes at the mutual call [»hoarCA8_1978]
Quote: interprocess communication when input and output commands 'correspond', i.e., each names the other process and variable matches value [»hoarCA8_1978]
Quote: an event in CSP is atomic; use start and finish events for time-consuming actions [»hoarCA_1985]

Subtopic: upcall up

Quote: organize a layer as tasks made of subroutines; all interfaces are subroutine calls instead of intertask communication [»clarDD12_1995]

Subtopic: synchronous communication up

Quote: ideal reactive systems produce outputs simultaneously with inputs; allows decomposition without affecting behavior, timing, or interleaving [»benvA9_1991]

Subtopic: shared memory communication up

Quote: CSP uses unbuffered, synchronized communication; matches wires and subroutine calls, easy to implement buffering [»hoarCA_1985]
Quote: if shared memory cells are processes then program variables are the names of channels of interaction [»milnR1_1993]
Quote: an interaction sends a message across a channel to a process's free variable [»milnR1_1993, OK]
Quote: an interaction transmits a name (a means of access) from one process to another
Quote: transmitting a name via a pi-calculus interaction is atomic; since no structure; unlike reduction [»milnR1_1993]
Quote: a 'varstar' variable gets new values at start of each time slice and updates at end of time slice [»donnMD_1987]

Subtopic: immutable, synchronous up

Quote: ESP uses synchronous, unbuffered, rendezvous channels; 'alt' waits for next 'in' or 'out' [»kumaS6_2002]
Quote: synchronous communication of immutable objects simplifies reasoning about message ordering; more efficient and easier to verify than buffered channels [»kumaS6_2001]
Quote: ESP uses a bit-mask of blocked channels per process; to check for a writer, collocate multiple processes on an integer [»kumaS6_2001]
Quote: increment reference count instead of sending deep copies over a channel; requires immutable objects [»kumaS6_2001]

Subtopic: wait-free up

Quote: use wait-free, allocation-free channels to transfer data between high and low frequency tasks; wait-free for reader or writer [»spooD6_2006]

Subtopic: message communication up

Quote: in Thoth and V, messages are for communication and processes are for concurrency [»cherDR4_1984]
Quote: in V, create additional processes if need additional concurrency in message sending
Quote: most programmers use general-purpose routers to allow them to send messages between arbitrary processes

Subtopic: channel communication up

Quote: primitive occam processes for assigning values to variables, outputing value to channel, and inputting values from channel [»mayD_1987]
Quote: Limbo uses a channel to connect local and remote tasks; synchronous communication of any data structure [»dorwSM1_1997]
Quote: a channel may connect a local or remote task or file; implements communicating sequential processes

Subtopic: problems with channel and event communication up

Quote: the greatest weakness of the channel model is connecting processes correctly [»wilsGV_1995]
Quote: in most large systems, programmers want to send messages to a destination, rather than through a channel
Quote: conversational continuity: a process needs to reply to the sender even though the original message was forwarded [»wilsGV_1995]
Quote: the time to start and terminate an 'alt' is proportional to the number of branches; may need to build a decision tree [»wilsGV_1995]

Related Topics up

Group: digital communication   (11 topics, 296 quotes)

Topic: calculus of communicating processes (13 items)
Topic: communicating sequential processes (33 items)
Topic: communication port (40 items)
Topic: interprocess communication (29 items)
Topic: synchronized processing
(35 items)

Updated barberCB 2/05
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.