Wat is communicatie tussen processen?
Interprocess-communicatie (IPC) is een groep technieken die worden gebruikt bij computerprogrammering waarmee verschillende stukjes software kunnen samenwerken. IPC wordt vaak gefaciliteerd door een computerbesturingssysteem, hoewel er alternatieve methoden bestaan. De exacte vorm van deze communicatie tussen software kan variëren, variërend van directe berichten tot een centrale opslagplaats waar informatie wordt opgeslagen en opgehaald. Interprocess-communicatie kan voordelen bieden zoals betere prestaties, minder computerbronnen en verbeterde beveiliging.
In de programmeerwereld wordt over software gesproken in termen van een proces, of een enkel stuk code, dat kan worden uitgevoerd of uitgevoerd op de Central Processing Unit (CPU) van een computer. Veel applicaties gebruiken eigenlijk meer dan één proces, wat de prestaties en stabiliteit kan verbeteren. Een webbrowser met meerdere open pagina's kan een afzonderlijk proces gebruiken om elke pagina te laden; dit isoleert elke pagina van de anderen en voorkomt dat een slecht opgevoede webpagina de hele browser crasht. In dit voorbeeld communiceert elk proces dat verantwoordelijk is voor het renderen van een webpagina met een of meer processen die andere aspecten van de browser behandelen, zoals componenten van de gebruikersinterface.
De meeste computerbesturingssystemen bieden verschillende mechanismen voor communicatie tussen processen. Sommige andere softwaretechnologieën bieden ook ondersteuning voor IPC. Bovendien kan IPC worden gebruikt op een enkele computer of via een netwerk. Deze mechanismen kunnen variëren in de manier waarop ze worden geïmplementeerd, maar de meeste kunnen worden gegroepeerd in een paar categorieën op basis van hoe de communicatie plaatsvindt.
In sommige gevallen worden berichten rechtstreeks tussen processen uitgewisseld, vaak op één manier of asynchroon. Enkele IPC-methoden die op deze manier werken, zijn signalen, leidingen en stopcontacten. Interprocescommunicatie kan ook plaatsvinden door het gebruik van een specifieke locatie waar gegevens toegankelijk zijn via meer dan één proces. Een voorbeeld hiervan is gedeeld geheugen, een techniek waarbij meerdere processen toegang hebben tot hetzelfde gedeelte van het geheugen van een computer om informatie uit te wisselen. De methode die een programmeur kan kiezen, hangt af van de snelheid en het volume van de benodigde gegevensuitwisseling en van andere overwegingen.
Er zijn veel redenen waarom een programmeur de communicatie tussen processen in zijn softwarecreaties wil gebruiken. Het splitsen van een grote applicatie in veel kleinere processen die communiceren via IPC kan zowel de prestaties als de beveiliging verbeteren. Een programma kan naar behoefte processen starten en beëindigen in plaats van dat alle componenten tegelijkertijd worden uitgevoerd en hardwarebronnen verbruiken. Als een deel van een programma speciale toegang tot de computerhardware of andere actieve software nodig heeft, kunnen een of meer processen werken onder een beheerders- of 'root'-account, terwijl de rest van het programma wordt uitgevoerd als een gewone gebruiker.