Sobes.tech
Middle

Ποια είναι η διαφορά μεταξύ μιας ορφανής διαδικασίας και μιας διαδικασίας ζόμπι;

sobes.tech AI

Απάντηση από AI

Ορφανική διαδικασία (Orphan Process) — είναι μια διαδικασία της οποίας η γονική διαδικασία έχει τερματίσει πριν ολοκληρώσει την εκτέλεση της η θυγατρική διαδικασία. Η διαδικασία εκκίνησης (init, PID 1) υιοθετεί αυτόματα το ορφανό και γίνεται ο νέος της γονέας για μετέπειτα απελευθέρωση πόρων.

Ζωντανή διαδικασία (Zombie Process) — είναι μια διαδικασία που έχει ολοκληρώσει την εκτέλεσή της, αλλά η καταχώρισή της στον πίνακα διαδικασιών του πυρήνα (PCB) δεν έχει ακόμη διαγραφεί, επειδή η γονική διαδικασία δεν έχει καλέσει την κλήση συστήματος wait() ή waitpid() για να συλλέξει την κατάσταση τερματισμού της θυγατρικής. Μια τέτοια διαδικασία δεν καταναλώνει πόρους CPU, αλλά καταλαμβάνει χώρο στον πίνακα διαδικασιών.

Σύγκριση:

Χαρακτηριστικό Ορφανική διαδικασία Ζωντανή διαδικασία
Κατάσταση Εκτελείται (ή περιμένει να εκτελεστεί) Έχει τερματίσει
Γονέας Ο αρχικός γονέας τερμάτισε, ο νέος γονέας είναι το init (PID 1). Ο γονέας υπάρχει, αλλά δεν έχει καλέσει wait().
Πόροι CPU Καταναλώνει πόρους CPU για την εκτέλεση της εργασίας του. Δεν καταναλώνει πόρους CPU.
Θέση στον πίνακα Καταλαμβάνει χώρο στον πίνακα διαδικασιών ως μια κανονική διαδικασία. Καταλαμβάνει χώρο στον πίνακα διαδικασιών μέχρι να διαβαστεί η κατάσταση από τον γονέα.
Διαγραφή Θα τερματιστεί και θα καθαριστεί από το λειτουργικό σύστημα μετά το τέλος. Παραμένει στον πίνακα διαδικασιών μέχρι ο γονέας να καλέσει wait() ή να τερματίσει.