Interprocescommunicatie
Uit Wikipedia, de vrije encyclopedie
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:
- Common Object Request Broker Architecture (CORBA)
- Distributed Computing Environment (DCE)
- Message Bus (MBUS)[1]
- Anonymous pipes en Named pipes
- Sockets
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
|