Inter Process Communication (IPC) i OS
⚡ Smart sammanfattning
Interprocesskommunikation (IPC) är en uppsättning operativsystemmekanismer som låter processer och trådar utbyta data, koordinera aktiviteter och synkronisera åtgärder, oavsett om de körs på en dator eller över flera maskiner som är anslutna via ett nätverk.

Vad är interprocesskommunikation?
Interprocesskommunikation (IPC) används för att utbyta data mellan flera trådar i en eller flera processer eller program. Processerna kan köras på en enda dator eller på flera datorer som är anslutna via ett nätverk. Den fullständiga formen av IPC är kommunikation mellan processer.
Det är en uppsättning programmeringsgränssnitt som gör det möjligt för en programmerare att koordinera aktiviteter mellan olika programprocesser, vilka kan köras samtidigt i ett operativsystem. Detta gör det möjligt för ett enda program att hantera många användarförfrågningar samtidigt.
Eftersom varje användarförfrågan kan resultera i att flera processer körs i operativsystemet, kan dessa processer behöva kommunicera med varandra. Varje IPC-metod har sina egna fördelar och begränsningar, så det är inte ovanligt att ett enda program använder flera av IPC-metoderna.
Metoder för kommunikation mellan processer
Här är några viktiga metoder för kommunikation mellan processer:
Tillvägagångssätt för kommunikation mellan processer
Rörledningar
En pipe används ofta för kommunikation mellan två relaterade processer. Detta är en halvduplexmetod, så den första processen kommunicerar med den andra processen. För att uppnå fullduplexkommunikation behövs dock en annan pipe.
Meddelande vidarebefordras
Det är en mekanism för en process att kommunicera och synkronisera. Med hjälp av meddelandeöverföring kommunicerar processer med varandra utan att tillgripa delade variabler.
IPC-mekanismen erbjuder två funktioner:
- Skicka (meddelande) — meddelandestorleken kan vara fast eller variabel
- Ta emot (meddelande)
Meddelandeköer
En meddelandekö är en länkad lista över meddelanden lagrade i kernel. Den identifieras av en meddelandeköidentifierare. Denna metod erbjuder kommunikation mellan enstaka eller flera processer med full duplexkapacitet.
direkt kommunikation
I den här typen av kommunikation mellan processer måste processer namnge varandra explicit. I den här metoden upprättas en länk mellan ett par kommunicerande processer, och mellan varje par finns endast en länk.
Indirekt kommunikation
Indirekt kommunikation upprättas endast när processer delar en gemensam postlåda. Varje par av processer kan dela flera kommunikationslänkar, och en enda länk kan kommunicera med många processer. Länken kan vara dubbelriktad eller enkelriktad.
Delat minne
Delat minne är ett minnesområde som delas mellan två eller flera processer. Detta minne måste skyddas från samtidig åtkomst genom att synkronisera de processer som använder det.
FIFO
FIFO används för kommunikation mellan två orelaterade processer. Det är en fullduplexmetod, vilket innebär att den första processen kan kommunicera med den andra processen, och det motsatta kan också hända.
Varför IPC?
Här är anledningarna till att använda kommunikationsprotokollet mellan processer för informationsdelning:
- Det hjälper till att påskynda modulariteten.
- Beräkningshastighetsökning.
- Privilegierad separation.
- Bekvämlighet.
- Det hjälper processer och operativsystemet att kommunicera och synkronisera sina handlingar.
Termer som används i IPC
Följande är några viktiga termer som används i IPC:
Semaphores: En semafor är en signaleringsmekanism. Denna OS-metod tillåter eller nekar åtkomst till en resurs, beroende på hur den är konfigurerad.
Signals: En signal är en metod för att kommunicera mellan flera processer genom signalering. Källprocessen skickar en signal, som känns igen av ett nummer, och destinationsprocessen hanterar den.
Läsförslag: Vad är Semaphore? Binära, Räknetyper med Exempel
Vad är som FIFOS och till skillnad från FIFOS
Följande tabell jämför liknande FIFO:er och olika FIFO:er:
| Som FIFOS | Till skillnad från FIFOS |
|---|---|
| Den följer FIFO-metoden. | Den använder en metod för att hämta specifika brådskande meddelanden innan de når framsidan. |
| FIFO existerar oberoende av både sändnings- och mottagningsprocesserna. | Alltid redo, så det finns ingen anledning att öppna eller stänga den. |
| Tillåter dataöverföring mellan orelaterade processer. | Har inga synkroniseringsproblem mellan öppning och stängning. |

