Hvad er en zombie -proces?

En zombie -proces er et eksempel på et computerprogram, der bevarer en processtabelrekord på trods af at det er færdigt med at udføre. Afviklede processer som disse er typisk forbundet med UNIX® og andre lignende operativsystemer på grund af den måde, de håndterer børneprocesser på. Når en børneproces er færdig med at udføre, er forælderen typisk ansvarlig for at fjerne den fra processtabellen. Det er normalt ikke muligt direkte at fjerne en zombie -proces med Kill -kommandoen, skønt forælderen ofte kan laves for at fjerne den, hvis operatøren bruger signalbarnet (SIGCHLD) -anmeldelse. I mangel af dette kan en zombie -proces fjernes indirekte ved at dræbe forælderen.

zombie -proces er et metaforisk beskrivende udtryk, der henviser til de levende døde. Defunct processer i UNIX® og lignende operativsystemer kan ses som analoge med zombier, idet de opretholder en processtabel tilstedeværelse på trods af ikke længere udført deres tilsigtede funktioner. Når en proces er afsluttet eDet siges, at det undertiden er dødt at være død, mens de midler, hvorpå operativsystemet gendanner sin processtabelfordeling, kan være kendt som høst. Forælderprocessen for en zombie er teknisk formodet at høste sine børn, skønt dette ikke altid sker.

Der er visse tilfælde, hvor eksistensen af ​​en zombieproces kan være forsætlig eller endda ønsket. Efter at en børneproces er ophørt med henrettelse, kan forælderen muligvis køre en anden forekomst af det samme program senere. Hvis en zombie ikke er blevet fjernet fra processtabellen, får et nyt barn ikke den samme identifikation (ID) som det gamle barn. Visse programmer kan drage fordel af eller endda kræve denne form for differentiering.

Hvis en forælderproces ikke har udført ventetidskommandoen til at høste zombier, den er ansvarlig for, kan det være muligt at tvinge problemet. Dette gøres typisk via Kill -kommandoen og sender SigchldSignal til overordnede processen. Hvis alt fungerer korrekt, skal en overordnet proces, der modtager dette signal, høste sine zombiebørn, så deres ID'er og processtabelpositioner kan genbruges.

Under visse omstændigheder kan en overordnet proces ignorere SIGCHLD -signalet. Hvis dette sker, og operatøren stadig ønsker, at processtabellen ryddes, kan overordnede processen dræbes. Eventuelle zombier, som overordnede processen oprettede, tildeles derefter som børn til init -processen. Siden Init initierer periodisk ventekommandoen på sine børn, vil eventuelle zombier, den er ansvarlig for, til sidst blive fjernet fra processtabellen.

ANDRE SPROG

Hjalp denne artikel dig? tak for tilbagemeldingen tak for tilbagemeldingen

Hvordan kan vi hjælpe? Hvordan kan vi hjælpe?