Interprocescommunicatie (IPC) in besturingssysteem

Wat is interprocescommunicatie?

Communicatie tussen processen (IPC) wordt gebruikt voor het uitwisselen van gegevens tussen meerdere threads in een of meer processen of programma's. De Processen kunnen worden uitgevoerd op één of meerdere computers die via een netwerk zijn verbonden. De volledige vorm van IPC is communicatie tussen processen.

Het is een set programmeerinterfaces waarmee een programmeur activiteiten kan coördineren tussen verschillende programmaprocessen die gelijktijdig in een besturingssysteem kunnen worden uitgevoerd. Dit stelt een specifiek programma in staat om veel gebruikersverzoeken tegelijkertijd te verwerken.

Omdat elke afzonderlijke gebruikersaanvraag kan resulteren in meerdere processen die in het besturingssysteem worden uitgevoerd, kan het nodig zijn dat de processen met elkaar communiceren. Elke IPC-protocolbenadering heeft zijn eigen voordelen en beperkingen, dus het is niet ongebruikelijk dat één programma alle IPC-methoden gebruikt.

Benaderingen voor communicatie tussen processen

Hier zijn enkele belangrijke methoden voor communicatie tussen processen:

Benaderingen voor communicatie tussen processen
Communicatiebenaderingen tussen processen

Pijpen

Pipe wordt veel gebruikt voor communicatie tussen twee gerelateerde processen. Dit is een half-duplexmethode, dus het eerste proces communiceert met het tweede proces. Om echter een full-duplex te bereiken, is een andere pipe nodig.

Bericht overslaan

Het is een mechanisme voor een proces om te communiceren en te synchroniseren. Met behulp van berichtpassing communiceert het proces met elkaar zonder gebruik te maken van gedeelde variabelen.

Het IPC-mechanisme biedt twee bewerkingen:

  • Verzenden (bericht) - berichtgrootte vast of variabel
  • Ontvangen (bericht)

Berichtenwachtrijen

Een berichtenwachtrij is een gekoppelde lijst met berichten die zijn opgeslagen in de pit. Het wordt geïdentificeerd door een berichtenwachtrij-identifier. Deze methode biedt communicatie tussen enkele of meerdere processen met full-duplexcapaciteit.

direct Communication

Bij dit soort communicatieprocessen tussen processen moeten elkaar expliciet worden genoemd. Bij deze methode wordt een link tot stand gebracht tussen één paar communicatieprocessen, en tussen elk paar bestaat er slechts één link.

Indirecte communicatie

Indirecte communicatie ontstaat alleen als processen een gemeenschappelijke mailbox delen, waarbij elk paar processen meerdere communicatielinks deelt. Een link kan met veel processen communiceren. De link kan bidirectioneel of unidirectioneel zijn.

Gedeelde herinnering

Gedeeld geheugen is een geheugen dat wordt gedeeld tussen twee of meer processen die worden opgezet met behulp van gedeeld geheugen tussen alle processen. Dit type geheugen moet tegen elkaar worden beschermd door de toegang tussen alle processen te synchroniseren.

FIFO

Communicatie tussen twee niet-gerelateerde processen. Het is een full-duplex methode, wat betekent dat het eerste proces kan communiceren met het tweede proces, en het omgekeerde kan ook gebeuren.

Waarom IPC?

Hier volgen de redenen voor het gebruik van het interprocescommunicatieprotocol voor het delen van informatie:

  • Het helpt de modulariteit te versnellen
  • Computational
  • Privilege scheiding
  • Gemak
  • Zorgt ervoor dat besturingssystemen met elkaar kunnen communiceren en hun acties kunnen synchroniseren.

Termen gebruikt in IPC

Hieronder volgen enkele belangrijke termen die in het IPC worden gebruikt:

Semaphores: Een semafoor is een signaalmechanismetechniek. Deze OS-methode staat de toegang tot de bron wel of niet toe, afhankelijk van hoe deze is ingesteld.

Signals: Het is een methode om door middel van signalering tussen meerdere processen te communiceren. Het bronproces verzendt een signaal dat wordt herkend aan de hand van een nummer, en het bestemmingsproces zal dit afhandelen.

Leessuggestie: - Wat is Semaphore? Binair, teltypen met voorbeeld

Wat is zoals FIFOS en anders dan FIFOS

Zoals FIFOS In tegenstelling tot FIFOS
Het volgt de FIFO-methode Methode om specifieke urgente berichten op te halen voordat ze het front bereiken
FIFO bestaat onafhankelijk van zowel verzend- als ontvangstprocessen. Altijd klaar, dus niet openen of sluiten.
Maakt gegevensoverdracht tussen niet-gerelateerde processen mogelijk. Er zijn geen synchronisatieproblemen tussen openen en sluiten.

Samenvatting

  • Definitie: Communicatie tussen processen wordt gebruikt voor het uitwisselen van gegevens tussen meerdere threads in een of meer processen of programma's.
  • Pipe wordt veel gebruikt voor communicatie tussen twee gerelateerde processen.
  • Berichten doorgeven is een mechanisme waarmee een proces kan communiceren en synchroniseren.
  • Een berichtenwachtrij is een gekoppelde lijst met berichten die in de kernel zijn opgeslagen
  • Directe processen zijn een soort communicatieproces tussen processen, waarbij elkaar expliciet moet worden genoemd.
  • Indirecte communicatie ontstaat alleen wanneer processen een gemeenschappelijke mailbox delen en elk procespaar meerdere communicatielinks deelt.
  • Gedeeld geheugen is een geheugen dat wordt gedeeld tussen twee of meer processen en dat tot stand wordt gebracht met behulp van gedeeld geheugen tussen alle processen.
  • De Inter Process Communication-methode helpt de modulariteit te versnellen.
  • Een semafoor is een signaalmechanismetechniek.
  • SignalSignalering is een methode om te communiceren tussen meerdere processen door middel van signalering.
  • Net als FIFO volgt de FIFO-methode, terwijl in tegenstelling tot FIFO de methode wordt gebruikt om specifieke urgente berichten op te halen voordat ze het front bereiken.