Group: digital communication
Topic: calculus of communicating processes
Topic: communicating sequential processes
Topic: communication port
Topic: interprocess communication
Topic: synchronized processing
| |
Summary
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
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
Quote: organize a layer as tasks made of subroutines; all interfaces are subroutine calls instead of intertask communication [»clarDD12_1995]
| Subtopic: synchronous communication
Quote: ideal reactive systems produce outputs simultaneously with inputs; allows decomposition without affecting behavior, timing, or interleaving [»benvA9_1991]
| Subtopic: shared memory communication
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
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
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
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
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
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
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)
|