Inter Process Communication (IPC) i OS
Hvad er interproceskommunikation?
Interproceskommunikation (IPC) bruges til at udveksle data mellem flere tråde i en eller flere processer eller programmer. Processerne kan køre på enkelte eller flere computere, der er forbundet med et netværk. Den fulde form for IPC er inter-proces kommunikation.
Det er et sæt programmeringsgrænseflader, som giver en programmør mulighed for at koordinere aktiviteter mellem forskellige programprocesser, som kan køre samtidigt i et operativsystem. Dette gør det muligt for et specifikt program at håndtere mange brugeranmodninger på samme tid.
Da hver enkelt brugeranmodning kan resultere i flere processer, der kører i operativsystemet, kan processen kræve at kommunikere med hinanden. Hver IPC-protokoltilgang har sin egen fordel og begrænsning, så det er ikke usædvanligt, at et enkelt program bruger alle IPC-metoderne.
Tilgange til inter-proces kommunikation
Her er nogle vigtige metoder til interproceskommunikation:
Pipes
Pipe er meget brugt til kommunikation mellem to relaterede processer. Dette er en halv-dupleks metode, så den første proces kommunikerer med den anden proces. Men for at opnå en fuld-duplex er der brug for et andet rør.
Besked passerer
Det er en mekanisme for en proces til at kommunikere og synkronisere. Ved at bruge meddelelsesoverførsel kommunikerer processen med hinanden uden at ty til delte variabler.
IPC-mekanismen giver to operationer:
- Send (besked) - beskedstørrelse fast eller variabel
- Modtaget (besked)
Meddelelseskøer
En beskedkø er en sammenkædet liste over beskeder, der er gemt i kerne. Det identificeres af en meddelelseskø-id. Denne metode tilbyder kommunikation mellem enkelte eller flere processer med fuld dupleks kapacitet.
Direkte kommunikation
I denne type inter-proces kommunikation proces, bør navngive hinanden eksplicit. I denne metode etableres en forbindelse mellem et par af kommunikerende processer, og mellem hvert par eksisterer der kun et link.
Indirekte kommunikation
Indirekte kommunikation etableres som kun, når processer deler en fælles postkasse, hvor hvert par processer deler flere kommunikationslinks. Et link kan kommunikere med mange processer. Linket kan være tovejs eller ensrettet.
Delt hukommelse
Delt hukommelse er en hukommelse, der deles mellem to eller flere processer, der er etableret ved hjælp af delt hukommelse mellem alle processerne. Denne type hukommelse skal beskyttes mod hinanden ved at synkronisere adgang på tværs af alle processer.
FIFO
Kommunikation mellem to ikke-relaterede processer. Det er en fuld-duplex metode, hvilket betyder, at den første proces kan kommunikere med den anden proces, og det modsatte kan også ske.
Hvorfor IPC?
Her er grundene til at bruge interproceskommunikationsprotokollen til informationsdeling:
- Det hjælper med at fremskynde modulariteten
- Computational
- Adskillelse af privilegier
- Bekvemmelighed
- Hjælper operativsystemet med at kommunikere med hinanden og synkronisere deres handlinger.
Begreber brugt i IPC
Følgende er et par vigtige udtryk, der bruges i IPC:
Semaphores: En semafor er en signalmekanismeteknik. Denne OS-metode enten tillader eller afviser adgang til ressourcen, hvilket afhænger af, hvordan den er sat op.
Signals: Det er en metode til at kommunikere mellem flere processer ved hjælp af signalering. Kildeprocessen vil sende et signal, som genkendes af nummeret, og destinationsprocessen vil håndtere det.
Læseforslag:- Hvad er Semaphore? Binære, Tælletyper med Eksempel
Hvad er ligesom FIFOS og i modsætning til FIFOS
Ligesom FIFOS | I modsætning til FIFOS |
---|---|
Det følger FIFO-metoden | Metode til at trække specifikke presserende beskeder, før de når fronten |
FIFO eksisterer uafhængigt af både afsendelses- og modtageprocesser. | Altid klar, så du behøver ikke at åbne eller lukke. |
Tillader dataoverførsel mellem ikke-relaterede processer. | Har ingen synkroniseringsproblemer mellem åben og luk. |
Resumé
- Definition: Inter-proces kommunikation bruges til at udveksle data mellem flere tråde i en eller flere processer eller programmer.
- Pipe er meget brugt til kommunikation mellem to relaterede processer.
- Meddelelsesoverførsel er en mekanisme for en proces til at kommunikere og synkronisere.
- En beskedkø er en sammenkædet liste over beskeder gemt i kernen
- Direkte proces er en type inter-proces kommunikationsproces, bør navngive hinanden eksplicit.
- Indirekte kommunikation etableres som kun, når processer deler en fælles postkasse, hvor hvert par processer deler flere kommunikationslinks.
- Delt hukommelse er en hukommelse, der deles mellem to eller flere processer, der er etableret ved hjælp af delt hukommelse mellem alle processerne.
- Inter Process Communication-metoden hjælper med at fremskynde modulariteten.
- En semafor er en signalmekanismeteknik.
- Signaling er en metode til at kommunikere mellem flere processer ved hjælp af signalering.
- Ligesom FIFO følger FIFO-metoden, mens i modsætning til FIFO bruger metoden til at trække specifikke presserende beskeder, før de når fronten.