Topic: interprocess communication

topics > computer science > Group: parallel processing

digital communication
operating system

client-server model for distributed systems
communication port
communication protocols
communicating sequential processes
computer architecture
computer performance
device driver
hardware for interprocess communication
implementing distributed systems and applications
I/O streams
managing shared memory
massively parallel processors
message queues for communication
operating system kernel
parameter passing by message
proving concurrent programs
remote procedure call
synchronous communication through a channel
Unix pipes


The input/output channels of an individual process are frequently other processes in the system. Several methods can be used: information queuing, shared memory (mailboxes), intermediate files, pipelines, procedure calls, and events/interrupts. Effective communication requires each process to respond to messages, follow expected protocols, handle all messages, be insensitive to message order, allow small message delays, and prevent race conditions or deadlock possibilities. Interprocess communication is frequently between hardware of different manufacturers through standard interfaces. Non-standard interfaces limit hardware applicability. In networks, messages include a destination address, source address, message type, size, and error checks. (cbb 5/80)
Subtopic: goals for interprocess communication up

Quote: for meaningful, interprocess communication need: no livelock, no deadlock, all messages handled, concurrency is order independent, serialization [»chowTS_1978]
Quote: an oscillating state occurs when communicating processes can not produce a system output message [»chowTS_1978]
Quote: want to limit interprocess communication to a small number of well-defined methods; for uniformity, understandability, and reliability [»mashJR_1976]

Subtopic: communications as the processor up

Quote: the communications network of the Connection Machine does most of the computation, limits the performance, and costs the most [»hillWD_1985]

Subtopic: formal semantics up

Quote: Sing# has formal message passing semantics; all processes run in one virtual address space without overwriting data; avoids kernel traps and context switches [»taneAS5_2006]

Subtopic: tuple space up

Quote: Linda based on a tuple space which any process can read or write tuples [»geleD1_1985]
Quote: Linda waits until there is a matching tuple for an 'in' statement

Subtopic: queuing network up

Quote: a queuing network can predict device utilization and throughput to 5% error [»dennPJ_1980]

Subtopic: message machines up

Quote: ITT 1240 application software consists of finite message machines (messaging) and system support machines (procedure calls) [»bonaR_1981]
Quote: in ITT 1240 applications use intraprocess communications and transmitted messages to other processors [»bonaR_1981]

Subtopic: process group up

Quote: use process groups for procedural message-passing systems; labeled by process name and numeric index
Quote: if process groups created dynamically then libraries can create them as needed [»wilsGV_1995]
Quote: allow a process to belong to several different process groups

Subtopic: pipeline up

Quote: a pipeline is a chain of producer-consumer threads; if evenly balanced, it makes effective use of multiple processors [»birrAD_1991]

Subtopic: temporary delays up

Quote: when Medusa blocks on a communication channel, it waits a 'pause' time in case the block is temporary [»oustJK2_1980]

Subtopic: message types up

Quote: two different kinds of messages--many small, fast control messages and fewer, larger data transfers [»liskB10_1981]
Quote: character strings are important for communicating between modules of a large system [»boehHJ12_1995]
Quote: the Macintosh introduced the clipboard and clipboard-standard data types; allows interoperability between applications [»myerBA_1992]
Quote: UNIX processes communicate via shared open files, program arguments, exit codes, predefined files, and pipes [»mashJR_1976]
Quote: ESP transmits deep copies of immutable objects by incrementing deep reference counts; keeps memory allocation local to a process [»kumaS6_2002]

Subtopic: block I/O up

Quote: V uses a block abstraction of I/O with the client implementing byte streams; matches network packets and disk sectors [»cherDR4_1984]
Quote: V kernel IPC file access is efficient enough for file transfer and terminal protocols; depends on high data rate, low delay and errors [»cherDR4_1984]

Subtopic: synchronous I/O up

Quote: interprocess communication when each process names the other for I/O; synchronizes at the mutual call [»hoarCA8_1978]
Quote: ESP uses synchronous, unbuffered, rendezvous channels; 'alt' waits for next 'in' or 'out' [»kumaS6_2002]

Subtopic: memory mapping up

Quote: Mach tasks can directly map a memory object into another task's virtual memory; more efficient than Unix [»tevaA11_1989]

Subtopic: compression up

Quote: wire-format code is decompressed or compiled before use [»ernsJ6_1997]

Subtopic: communicating ownership up

Quote: in NIL, communication by transferring ownership of a message instead of by value (copy) or by reference [»stroRE5_1985]
Quote: in NIL, a process can outlive its owner if its ownership is transferred by sending the process in a message [»stroRE5_1985]
Quote: transfer ownership of objects between processes; only one owner at a time; if transferred in sequence, returned at block end [»eastI4_2003]

Related Topics up

Group: digital communication   (11 topics, 296 quotes)
Group: operating system   (27 topics, 924 quotes)

Topic: client-server model for distributed systems (25 items)
Topic: communication port (40 items)
Topic: communication protocols (62 items)
Topic: communicating sequential processes (33 items)
Topic: computer architecture (46 items)
Topic: computer performance (14 items)
Topic: device driver (15 items)
Topic: hardware for interprocess communication (31 items)
Topic: implementing distributed systems and applications (41 items)
Topic: I/O streams (17 items)
Topic: managing shared memory (74 items)
Topic: massively parallel processors (29 items)
Topic: message queues for communication (36 items)
Topic: operating system kernel (67 items)
Topic: parameter passing by message (31 items)
Topic: proving concurrent programs (37 items)
Topic: remote procedure call (44 items)
Topic: synchronous communication through a channel (28 items)
Topic: Unix pipes
(10 items)

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