Hvad er interprocesskommunikation?
Interprocess-kommunikation (IPC) er en gruppe teknikker, der bruges i computerprogrammering, der tillader forskellige stykker software at interagere. IPC lettes ofte af et computeroperativsystem, skønt der findes alternative metoder. Den nøjagtige form for denne kommunikation mellem software kan variere, lige fra direkte beskeder til et centralt depositar, hvor information gemmes og hentes. Samarbejdskommunikation kan give fordele såsom større ydelse, færre computerressourcer forbrugt og forbedret sikkerhed.
I programmeringsverdenen tales om software i form af en proces eller et enkelt stykke kode, der kan køres eller udføres på en computers centrale processorenhed (CPU). Mange applikationer bruger faktisk mere end en proces, hvilket kan øge ydeevnen og stabiliteten. En webbrowser med flere åbne sider bruger muligvis en separat proces til at indlæse hver side; dette isolerer hver side fra de andre og forhindrer, at en dårligt opført webside fra går ned i hele browseren. I dette eksempel kommunikerer hver proces, der er ansvarlig for gengivelse af en webside, med en eller flere processer, der håndterer andre aspekter af browseren, såsom brugergrænsefladekomponenter.
De fleste computeroperativsystemer leverer flere forskellige mekanismer til interprocess-kommunikation, der kan finde sted. Nogle andre softwareteknologier tilbyder også support til IPC. Desuden kan IPC bruges enten på en enkelt computer eller på tværs af et netværk. Disse mekanismer kan variere i, hvordan de implementeres, men de fleste kan grupperes i et par kategorier baseret på, hvordan kommunikationen foregår.
I nogle tilfælde udveksles meddelelser direkte mellem processer, ofte på en eller én eller anden måde. Et par IPC-metoder, der fungerer på denne måde, inkluderer signaler, rør og stikkontakter. Interprocesskommunikation kan også finde sted ved hjælp af et specifikt sted, hvor data kan fås adgang til mere end en proces. Et eksempel på dette er delt hukommelse, en teknik, hvor flere processer får adgang til den samme del af en computers hukommelse for at udveksle information. Den metode, en programmør kan vælge, afhænger af hastigheden og volumenet for den dataudveksling, der er nødvendig, samt andre overvejelser.
Der er mange grunde til, at en programmerer måske ønsker at bruge interprocess-kommunikation i deres softwarekreationer. Opdeling af en stor applikation i mange mindre processer, der kommunikerer via IPC, kan øge ydeevnen såvel som sikkerheden. Et program kan starte og afslutte processer efter behov i stedet for at alle komponenter kører på én gang og forbruger hardware ressourcer. Hvis en del af et program har brug for særlig adgang til en computers hardware eller anden kørende software, kan en eller flere processer fungere under en administrator eller "root" -konto, mens resten af programmet kører som en almindelig bruger.