Interprocescommunicatie
onderlinge communicatie tussen threads in één of meerdere proces(sen) in een multitasking-besturingssysteem
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 mechanismen
- 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
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)
- Machkernel - Mach Ports
- Microsoft - ActiveX, Component Object Model (COM), Distributed Component Object Model (DCOM), Dynamic Data Exchange (DDE) en 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
Methoden
Methode | Ondersteund door (besturingssysteem 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- of 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. |
🔥 Top keywords: HoofdpaginaSpeciaal:ZoekenUEFA Champions LeagueChatGPTCarlo AncelottiSpecial:MyPage/zeusmodepreferences.jsXXXXBørsenIan MaatsenRegen makenWaalse PijlJude BellinghamKevin De BruyneEmir KirManchester City FCAndrij LoeninReal Madrid CFPirates of the Caribbean (filmserie)Amy WinehouseRomário de Souza FariaLouisa JanssenFacebookStephen Williams (wielrenner)Josep GuardiolaBart De PauwNederlandFrancis van BroekhuizenSywert van LiendenXHamsterLuka ModrićJérémy DokuBaby ReindeerAntonio RüdigerSpeciaal:RecenteWijzigingenBinnenhof (Den Haag)Cleopatra VII17 aprilPenoza: The Final ChapterErling Braut Haaland