Skip to main content

Τι είναι το Mutex;

Ένα αντικείμενο αμοιβαίου αποκλεισμού, ή MUTEX, είναι ένα αντικείμενο που δημιουργήθηκε για χρήση σε προγράμματα υπολογιστών.Η ουσιαστική λειτουργία του Mutex είναι να καταστεί δυνατή σε ένα πολλαπλό νήμα προγράμματος να κάνει χρήση ενός μόνο πόρου.Γενικά, η λειτουργικότητα των αντικειμένων αμοιβαίου αποκλεισμού είναι να επιτρέψει αυτή τη χρήση ενός μόνο πόρου δημιουργώντας ένα περιβάλλον όπου η πρόσβαση στον πόρο μεταδίδεται συνεχώς μεταξύ των διαφόρων πτυχών του προγράμματος.

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

Μόλις ενεργοποιηθεί το Mutex και ονομάζεται για τη συνεδρία, οποιοδήποτε άλλο νήμα του προγράμματος που απαιτεί αυτός ο πόρος μπορεί να έχει πρόσβαση, παρόλο που ο πόρος είναι ήδη σε ενεργό χρήση από άλλο νήμα.Υποδεικνύοντας την ανάγκη για τον πόρο, η συνάρτηση Mutex θα αρχίσει να εναλλάσσει την πρόσβαση του πόρου μεταξύ των νημάτων.Στον τελικό χρήστη, αυτή η διαδικασία είναι διαφανής.Για όλες τις πρακτικές προθέσεις και σκοπούς, φαίνεται ότι δύο χρήστες ή δύο νήματα μας κάνουν τον ίδιο πόρο ταυτόχρονα.

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