| 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.
Subtopic: communication eventA 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: upcall
| 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: synchronous communication
| Quote: organize a layer as tasks made of subroutines; all interfaces are subroutine calls instead of intertask communication [»clarDD12_1995] | 
   Subtopic: shared memory communication
| Quote: ideal reactive systems produce outputs simultaneously with inputs; allows decomposition without affecting behavior, timing, or interleaving [»benvA9_1991] | 
   Subtopic: immutable, synchronous
| 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: wait-free
| 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: message communication
| 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: channel 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: problems with channel and event 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 | 
   
| 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)
 |