0% found this document useful (0 votes)
17 views

Interprocess Communication: CSE 380 Lecture Note 8 Insup Lee

The document discusses different methods of interprocess communication including shared memory and message passing. Shared memory allows processes to directly access the same memory regions, enabling fast communication. Message passing involves processes explicitly sending and receiving messages. It discusses different designs for message passing including naming schemes, buffering approaches, and using mailboxes/message queues to allow more modularity between sending and receiving processes.

Uploaded by

oreste2008
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

Interprocess Communication: CSE 380 Lecture Note 8 Insup Lee

The document discusses different methods of interprocess communication including shared memory and message passing. Shared memory allows processes to directly access the same memory regions, enabling fast communication. Message passing involves processes explicitly sending and receiving messages. It discusses different designs for message passing including naming schemes, buffering approaches, and using mailboxes/message queues to allow more modularity between sending and receiving processes.

Uploaded by

oreste2008
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 10

University of Pennsylvania

Interprocess Communication
CSE 380 Lecture Note 8

Insup Lee

10/3/00

CSE 380

University of Pennsylvania

Interprocess communication
Shared Memory Message Passing Signals

10/3/00

CSE 380

University of Pennsylvania

Shard Memory

Process 1

Process 2

Process 3

Shared memory
10/3/00 CSE 380

University of Pennsylvania

Shared Memory in Solaris


Processes can share the same segment of memory directly when it is mapped into the address space of each sharing process

Faster communication
System calls:

int shmget(key_t key, size_t size, int shmflg) : creates a new region of shared memory or returns an existing one

void *shmat(int shmid, const void *shmaddr, int shmflg) : attaches a shared memory region to the virtual address space of the process
int shmdt(char *shmaddr):detaches a shared region
Mutual exclusion must be provided by processes using the shared memory

10/3/00

CSE 380

University of Pennsylvania

Message Passing

message

10/3/00

CSE 380

University of Pennsylvania

Design Attributes
Naming Process id, mailbox Buffering Size: zero, bounded, unbounded Place: kernel space, user space

Send operation
Synchronous vs. asynchronous Receive operation Blocking vs. non-blocking

10/3/00

CSE 380

University of Pennsylvania

Interprocess Communication
Message Passing
Many possible naming schemes. One is direct naming: send(process_id, message) receive(process_id, buffer)

Example

process P1: declare x integer . send(P2, x) . end process

process P2: declare y integer . receive(P1, y) . end process

Effect of this communication is


y := x | \ local var local var of P2 of P1

10/3/00

CSE 380

University of Pennsylvania

Buffering
A buffer, with bounded-buffer synchronization, can be associated with each pair of communicating processes. A zero-capacity buffer means processes must handshake in order to communicate. A buffer can reside in memory of receiving process or in OS addres space.

Examples:
no buffer needed P1: send(P2, x) receive(P2, y) P2: receive(P1, x) send(P1, y) P2: send(P1, x) receive(P1, y)
CSE 380

buffer needed
P1: send(P2, x) receive(P2, y)
10/3/00

University of Pennsylvania

Mailboxes
Also known as message queues, ports The explicit and symmetric naming of processes in direct naming Limited modularity since changing the name of a process requires changes elsewhere, i.e., in definitions of other processes

P
mbox

Q
P or Q call send(mbox-id, message) R calls receive(mbox-id, message)
10/3/00 CSE 380

University of Pennsylvania

Mailbox Issues
communication is no longer point-to-point; e.g., a message received by R may be from P or Q fair merge property --- do not starve Q from queuing messages by allowing continual queuing of messages only from P natural extension to multiple receivers. Possible semantics: Multicast to all in the group gets the same message The first receiver removes it Bulletin board: each receiver decides

10/3/00

CSE 380

You might also like