Junior — Middle
Μπορείτε να εξηγήσετε τι είναι ο αμοιβαίος αποκλεισμός στα λειτουργικά συστήματα και πώς προκύπτει;
sobes.tech AI
Απάντηση από AI
Το αδιέξοδο (deadlock) είναι μια κατάσταση στο λειτουργικό σύστημα όπου δύο ή περισσότεροι διαδικασίες μπλοκάρουν αμοιβαία, περιμένοντας την απελευθέρωση πόρων που κατέχουν η μία την άλλη.
Εμφανίζεται όταν ταυτόχρονα πληρούνται τέσσερις συνθήκες:
- Αμοιβαία αποκλεισμός — ένας πόρος μπορεί να κατέχεται μόνο από μία διαδικασία κάθε φορά.
- Κράτηση και αναμονή — μια διαδικασία κρατάει έναν πόρο και περιμένει έναν άλλο.
- Αδυναμία αναγκαστικής απελευθέρωσης — μια διαδικασία δεν μπορεί να αναγκαστεί να απελευθερώσει έναν πόρο.
- Κυκλική αναμονή — υπάρχει ένας κύκλος διαδικασιών, καθεμία από τις οποίες περιμένει έναν πόρο που κατέχεται από την επόμενη στη σειρά.
Παράδειγμα: η διαδικασία A έχει καταλάβει τον πόρο 1 και περιμένει τον πόρο 2, ενώ η διαδικασία B έχει καταλάβει τον πόρο 2 και περιμένει τον πόρο 1 — και οι δύο είναι αόριστα μπλοκαρισμένοι.