Group: digital communication
Group: operating system
Topic: client-server model for distributed systems
Topic: communication port
Topic: communication protocols
Topic: communicating sequential processes
Topic: computer architecture
Topic: computer performance
Topic: device driver
Topic: hardware for interprocess communication
Topic: implementing distributed systems and applications
Topic: I/O streams
Topic: managing shared memory
Topic: massively parallel processors
Topic: message queues for communication
Topic: operating system kernel
Topic: parameter passing by message
Topic: proving concurrent programs
Topic: remote procedure call
Topic: synchronous communication through a channel
Topic: Unix pipes
| |
Summary
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
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
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
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
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
Quote: a queuing network can predict device utilization and throughput to 5% error [»dennPJ_1980]
| Subtopic: message machines
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
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
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
Quote: when Medusa blocks on a communication channel, it waits a 'pause' time in case the block is temporary [»oustJK2_1980]
| Subtopic: message types
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
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
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
Quote: Mach tasks can directly map a memory object into another task's virtual memory; more efficient than Unix [»tevaA11_1989]
| Subtopic: compression
Quote: wire-format code is decompressed or compiled before use [»ernsJ6_1997]
| Subtopic: communicating ownership
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
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)
|