Skip to main content

Τι είναι μια διαδικασία ζόμπι;

Μια διαδικασία ζόμπι είναι μια παρουσία ενός προγράμματος υπολογιστή που διατηρεί ένα αρχείο πίνακα διαδικασιών παρά την ολοκλήρωση της εκτέλεσης.Οι διαδικασίες όπως αυτές συνήθως συνδέονται με το UNIX Reg.και άλλα παρόμοια λειτουργικά συστήματα λόγω του τρόπου με τον οποίο χειρίζονται τις διαδικασίες των παιδιών.Όταν μια διαδικασία παιδιού έχει τελειώσει την εκτέλεση, ο γονέας είναι συνήθως υπεύθυνος για την κατάργηση του από τον πίνακα διαδικασίας.Συνήθως δεν είναι δυνατή η απευθείας απομάκρυνση μιας διαδικασίας ζόμπι με την εντολή KILL, αν και ο γονέας μπορεί συχνά να γίνει για να την αφαιρέσει εάν ο χειριστής χρησιμοποιεί την ειδοποίηση του παιδιού σήματος (SIGCHLD).Σε αντίθεση με αυτό, μια διαδικασία ζόμπι μπορεί να αφαιρεθεί έμμεσα με τη δολοφονία του γονέα.

Η διαδικασία ζόμπι είναι ένας μεταφορικός περιγραφικός όρος που κάνει αναφορά στους ζωντανούς νεκρούς.Απενεργοποιημένες διαδικασίες στο UNIX Reg.Και παρόμοια λειτουργικά συστήματα μπορούν να θεωρηθούν ανάλογα με τα ζόμπι, καθώς διατηρούν μια παρουσία πίνακα διεργασιών, παρά το γεγονός ότι δεν εκτελούν πλέον τις προβλεπόμενες λειτουργίες τους.Όταν μια διαδικασία έχει τελειώσει την εκτέλεση, μερικές φορές λέγεται ότι έχει πεθάνει, ενώ τα μέσα με τα οποία το λειτουργικό σύστημα ανακτά την κατανομή του πίνακα διαδικασιών μπορεί να είναι γνωστή ως αποκομιδή.Η γονική διαδικασία ενός ζόμπι υποτίθεται ότι πρέπει να αποκομίσει τα παιδιά της, αν και αυτό δεν συμβαίνει πάντα.Μετά από μια παιδική διαδικασία που έχει σταματήσει η εκτέλεση, ο γονέας μπορεί να χρειαστεί να εκτελέσει μια άλλη παρουσία του ίδιου προγράμματος αργότερα.Εάν ένα ζόμπι δεν έχει αφαιρεθεί από τον πίνακα διεργασιών, ένα νέο παιδί δεν θα έχει ανατεθεί την ίδια αναγνώριση (ID) με το παλιό παιδί.Ορισμένα προγράμματα μπορούν να επωφεληθούν από ή ακόμη και να απαιτήσουν αυτό το είδος διαφοροποίησης.

Εάν μια γονική διαδικασία δεν έχει εκτελέσει την εντολή αναμονής για να αποκομίσει τα ζόμπι που είναι υπεύθυνο για, μπορεί να είναι δυνατό να αναγκαστεί το ζήτημα.Αυτό γίνεται συνήθως μέσω της εντολής KILL και της αποστολής του σήματος Sigchld στη γονική διαδικασία.Εάν όλα λειτουργούν σωστά, μια γονική διαδικασία που λαμβάνει αυτό το σήμα θα πρέπει να αποκομίσει τα παιδιά της ζόμπι έτσι ώστε τα αναγνωριστικά και οι θέσεις του πίνακα επεξεργασίας να μπορούν να επαναχρησιμοποιηθούν.

Κάτω από ορισμένες συνθήκες, μια γονική διαδικασία μπορεί να αγνοήσει το σήμα Sigchld.Εάν συμβεί αυτό και ο χειριστής εξακολουθεί να επιθυμεί να εκκαθαριστεί ο πίνακας διαδικασιών, η γονική διαδικασία μπορεί να σκοτωθεί.Οποιοσδήποτε ζόμπι που δημιουργήθηκε η γονική διαδικασία θα ανατεθεί ως παιδιά στη διαδικασία init.Δεδομένου ότι η Init ξεκινά περιοδικά την εντολή αναμονής στα παιδιά της, κάθε ζόμπι που είναι υπεύθυνο για τελικά θα αφαιρεθεί από τον πίνακα διαδικασιών.