Interprocescommunicatie

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

Interprocescommunicatie (IPC) is de onderlinge communicatie tussen threads in één of meerdere proces(sen) in een multitasking besturingssysteem. Deze communicatie dient om data door te geven, of de toegang naar gedeelde bronnen (resources) te synchroniseren.

Grofweg zijn er vier categorieën interprocescommunicatie:

  • message passing - het doorgeven van berichten via pipes, mailbox of soortgelijke mechanismes
  • synchronisatie - een systeem van signalen (semaphores, vlaggen, signals) die door processen gezet en uitgelezen kunnen worden
  • shared memory of gedeeld geheugen - een stuk van het werkgeheugen van de computer dat voor meerdere processen toegankelijk is
  • remote procedure calls (RPC) - het aanroepen van procedures (deelprogramma's) met parameters die acties in een ander proces tot gevolg hebben

Implementaties[bewerken]

Er zijn vele verschillende API's, die verschillende mogelijkheden bieden. De belangrijkste platformonafhankelijke zijn:

Verschillende platformspecifieke implementaties zijn:

  • Apple Inc. - Apple events (voorheen bekend als Interapplication Communications (IAC)).
  • Freedesktop.org - D-BUS
  • KDE - Desktop Communications Protocol (DCOP)
  • Mach kernel - Mach Ports
  • Microsoft - ActiveX, Component Object Model (COM), Distributed Component Object Model (DCOM), Dynamic Data Exchange (DDE), and Object Linking and Embedding (OLE), anonymous pipe, named pipe
  • Novell - SPX
  • POSIX - mmap, message queues, semaforen, en shared memory
  • RISC OS - messages
  • Sun Microsystems - Remote Procedure Call (RPC)
  • System V - message queues, semaphores, en shared memory
  • XML - XML-RPC of SOAP
  • VMS - mailbox, event flags en locks (signals), shared memory

Methodes[bewerken]

Methode Ondersteund door (OS of omgeving)
Bestand Alle besturingssystemen.
Signal De meeste besturingssystemen; enkele, zoals Windows, implementeren alleen signals in de C-runtime bibliotheek, maar bieden verder geen ondersteuning voor IPC.
Socket De meeste besturingssystemen.
Pipes Alle POSIX-systemen.
Named pipes Alle POSIX-systemen.
Semaforen Alle POSIX-systemen.
Shared memory Alle POSIX-systemen.
Message passing
(shared nothing)
Wordt o.a. gebruikt in het Message Passing Interface (MPI) paradigma, Java RMI, CORBA.
Memory map (mmap) Alle POSIX-systemen; een race condition kan optreden als een tijdelijk bestand wordt gebruikt. Windows ondersteunt deze techniek, maar de API is platformspecifiek.
Message queue De meeste besturingssystemen.
Mailbox Sommige besturingssystemen.

Externe link[bewerken]

Bronnen, noten en/of referenties