Home

subprocessen

Subprocessen er en proces, der oprettes af en anden proces og derfor betegnes som dens underliggende eller afkom. Subprocesser udgør en proces-træstruktur, hvor forælderen kontrollerer livscyklus og kommunikation med sit barn. De giver applikationer mulighed for at udføre opgaver i isolation eller parallelt uden at ændre den videre løbende kode.

Subprocesser oprettes gennem operativsystemets systemkald. I Unix-lignende systemer bruges typisk forking (fork) og efterfølgende udførelse af

Hvert subprocess får et proces-id (PID) og ressourcer som CPU-tid, hukommelse og filåbninger tildelt af operativsystemet.

Subprocesser kommunikerer typisk med forælderen ved hjælp af rør (pipes), sockets eller delte hukommelse, og de

I programmeringssprog tilbydes konkrete grænseflader til at oprette subprocesser, f.eks. Python's subprocess-modul (Popen), Java's ProcessBuilder og

et
program
(exec),
mens
Windows
anvender
CreateProcess
eller
relaterede
funktioner.
Subprocessen
arver
miljø,
arbejdsmappe
og
åbnede
filbeskrivelser
fra
forælderen.
Når
subprocessen
afslutter,
returnerer
den
en
exit-kode
til
forælderen,
som
kan
hente
den
ved
at
vente
på
processen.
Hvis
forælderen
ikke
indhenter
status,
kan
barnet
blive
en
zombie
inntil
forælderen
henter
status;
hvis
forælderen
afslutter
før
barnet,
bliver
barnet
adopteret
af
en
init-systemproces
(f.eks.
init
eller
systemd).
Forælderen
kan
overvåge
og
styre
et
barn
ved
hjælp
af
vent-/wait-operationer
eller
lignende
mekanismer
for
at
få
exit-status
og
for
at
rense
ressourcer.
kan
styres
med
signaler.
Samspillet
muliggør
fejlisolering,
timeout
og
sikkerhedsforanstaltninger
uden
at
udsætte
hele
applikationen.
Node.js'
child_process-modul.
Subprocesser
anvendes
til
isolering,
modulært
design,
parallel
udførelse
og
lettere
fejlhåndtering,
men
kræver
omhyggelig
ressourcestyring
og
sikkerhedsovervejelser
som
forhindring
af
uønsket
kodekørsel
og
begrænsning
af
netværksadgang.