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). |