Πίνακας περιεχομένων:
Ορισμός - Τι σημαίνει Semaphore;
Ένα σηματοφόρο είναι ένα αντικείμενο συγχρονισμού που ελέγχει την πρόσβαση από πολλαπλές διεργασίες σε έναν κοινό πόρο σε ένα περιβάλλον παράλληλου προγραμματισμού. Τα σηματοφόρα χρησιμοποιούνται ευρέως για τον έλεγχο της πρόσβασης σε αρχεία και κοινόχρηστη μνήμη. Οι τρεις βασικές λειτουργίες που σχετίζονται με τα σηματοφόρα έχουν οριστεί, ελέγξτε και περιμένετε έως ότου καθαριστεί για να την επαναφέρετε. |
Τα σηματοφόρα χρησιμοποιούνται για την αντιμετώπιση προβλημάτων συγχρονισμού συγκριτικής αξιολόγησης.
Η έννοια του σηματοφόρου τέθηκε από τον ολλανδό επιστήμονα ηλεκτρονικών υπολογιστών Edsger Dijkstra.
Η Techopedia εξηγεί το Semaphore
Τα σηματοφόρα είναι μη αρνητικές ακέραιες τιμές που υποστηρίζουν το σηματοφόρο λειτουργίας-> P () και το semaphore-> V (). Το P είναι μια ατομική λειτουργία που περιμένει να είναι θετικό για ένα σηματοφόρο και στη συνέχεια να το μειώνει κατά ένα, ενώ το V είναι μια ατομική λειτουργία που αυξάνει ένα σηματοφόρο από ένα, πράγμα που υποδηλώνει ότι ξυπνά μια αναμονή P. Δοκιμή και σύνολο που σχετίζονται με το σηματοφόρο είναι ρουτίνες που υλοποιούνται στο υλικό για τον συντονισμό κρίσιμων τμημάτων χαμηλότερου επιπέδου.
Τα σηματοφόρα υλοποιούνται συνήθως χρησιμοποιώντας περιγραφείς αρχείων. Οι δημιουργίες του σεμαρίου δεν είναι ατομικές. Εάν δύο διαδικασίες προσπαθούν να δημιουργήσουν, να αρχικοποιήσουν και να χρησιμοποιήσουν ένα σηματοφόρο ταυτόχρονα, δημιουργείται μια κατάσταση κούρσας. Τα σηματοφόρα δημιουργούνται και αρχικοποιούνται σε μια θετική τιμή για να δείξουν τη διαθεσιμότητα ενός πόρου που θα χρησιμοποιηθεί. Τα σηματοφόρα μπορούν να υλοποιηθούν μέσω διακοπών ή με τη χρήση δοκιμαστικών λειτουργιών.
Κάθε σημαδρία διατηρεί σύνολα αδειών. Περιορίζει τον αριθμό των θεμάτων που έχουν πρόσβαση στους πόρους. Σηματοφόρα με μόνο μία άδεια και αρχικοποιημένα σε ένα χρησιμεύουν ως αμοιβαία κλειδώματα αποκλεισμού. Αναφέρονται ως τέτοια διότι έχουν μόνο δύο καταστάσεις: διαθέσιμη άδεια ή μηδενική άδεια διαθέσιμη. Αυτό περικλείει την ιδιότητα έτσι ώστε μια κλειδαριά να μπορεί να απελευθερωθεί από ένα νήμα διαφορετικό από τον ιδιοκτήτη, βοηθώντας στην αποκατάσταση αδιεξόδου. Τα σηματοφόρα χρησιμοποιούνται για αμοιβαίες εξαιρέσεις όπου το σηματοφόρο έχει αρχική τιμή ενός και τα P () και V () καλούνται πριν και μετά τις κρίσιμες ενότητες.
