SlideServe
Menu
Préférences
© SlideServe · v2026

IPC

zeus-kelley avatar
13 diapositives · 306 Views · Nov 18, 2014

IPC. Agenda. The need to communicate Shared memory Message passing. 1. The need to communicate (1). Independent process standalone process Cooperating process affecting or affected by other processes sharing, parallel, modularity, convenience Process communication shared memory

IPC - slide 1
01 / 13IPC
1 / 17

Télécharger la présentation

IPC
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. IPC

  2. Agenda • The need to communicate • Shared memory • Message passing

  3. 1. The need to communicate (1) • Independent process • standalone process • Cooperating process • affecting or affected by other processes • sharing, parallel, modularity, convenience • Process communication • shared memory • message passing

  4. 1. The need to communicate (2):The producer-consumer problem • Producer • produce info to be consumed by consumer • Consumer • consume information produced by producer • Buffer • unbounded: unlimited buffer size • bounded: limited buffer size • more practical P C buffer

  5. 2. Shared memory solution (1) • Shared memory: memory mapping • allocated in the calling process’s address space • attached to other processes’ address space • Data structure: bounded, circular #define BUFFER_SIZE 10 Typedef struct {. . .} item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0; • empty, full, # of items

  6. 2. Shared memory (2): producer • Producer • wait for an available space • update in • item nextProduced; while (true) { • /* produce an item in nextProduced */ • while (((in + 1) % BUFFER_SIZE) == out) • ; /* do nothing */ • buffer[in] = nextProduced; • in = (in + 1) % BUFFER_SIZE; }

  7. 2. Shared memory (3): consumer • Consumer • wait for an available item • update out • item nextConsumed; while (1) { • while (in == out) • ; /* do nothing */ • nextConsumed = buffer[out]; • out = (out + 1) % BUFFER_SIZE; • /* consume the item in nextConsumed */ }

  8. 3. Message passing (1) • Message passing: an interface • Send message • send() • Receive message • receive() • Communication link • physical (e.g., memory, bus, network) • logical (e.g., logical properties) send() P C receive()

  9. 3. Message passing (2): message passing vs shared memory

  10. 3. Message passing (3): Direct communication • Send a message to process C • send (C, message) • Receive a message from process P • receive(P, message) • Communication links • one link for one pair • one pair needs one link • usually bi-directional

  11. 3. Message passing (4): Indirect communication • Send a message to mailbox A • send(A, message) • Receive a message from mailbox A • receive(A, message) • Communication links and mailboxes • one link by many pairs • many links for one pair • mailbox owner A B

  12. 3. Message passing (5): Synchronization • Blocking vs non-blocking • blocking send • caller blocked until send is completed • blocking receive • caller blocked until receive is finished • non-blocking send • non-blocking receive • Blocking: a means of synchronization

  13. 3. Message passing (6): Buffering • Buffer: to hold message temporary • zero capacity • sender blocks until receiver is ready • otherwise, message is lost • bounded capacity • when buffer is full, sender blocks • when buffer is not full, no need to block sender • unbounded capacity • no need to block sender