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