Sobes.tech
Middle

Kāda ir atšķirība starp bāreņa procesu un zombi procesu?

sobes.tech AI

Atbilde no AI

Aizgājis process (Orphan Process) — tas process, kura vecāks process ir beidzies pirms bērna procesa pabeigšanas. Inicializācijas process (init, PID 1) automātiski pārņem aizgājušo procesu un kļūst par tā jauno vecāku turpmākai resursu izmantošanai.

Zombija process (Zombie Process) — tas process, kurš ir pabeidzis savu izpildi, bet tā ieraksts kodola procesu tabulā (PCB) vēl nav dzēsts, jo vecāks process nav izsaucis sistēmas izsaukumu wait() vai waitpid() bērna procesa statusa savākšanai. Šāds process nepatērē CPU resursus, bet aizņem vietu procesu tabulā.

Salīdzinājums:

Zīme Aizgājis process Zombija process
Stāvoklis Izpildās (vai gaida izpildi) Beidzis savu izpildi
Vecāks Sākotnējais vecāks ir beidzies, jauns vecāks — init (PID 1). Vecāks pastāv, bet/vai nav izsaucis wait().
CPU resursi Patērē CPU resursus sava uzdevuma izpildei. Nepatērē CPU resursus.
Vietas tabulā Aizņem vietu procesu tabulā kā parasts darbojošs process. Aizņem vietu procesu tabulā, kamēr tā statuss netiks savākts vecāka.
Dzēšana Tiks pabeigts un notīrīts operētājsistēmas pēc pabeigšanas. Paliek procesu tabulā līdz vecāks izsauc wait() vai līdz vecāks beidzas (šajā gadījumā tas kļūst par init aizgājēju un tiks notīrīts).