7.Συγχρονισμός διεργασιών με σεμαφόρους

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

·         Θεωρούνται 5 διεργασίες οι οποίες πρέπει να εκτελεστούν με συγκεκριμένη σειρά.

·         Η διεργασία Α πρέπει να τρέξει πρώτη.

·         Η διεργασία D δε μπορεί να τρέξει αν η διεργασία C δεν έχει τερματίσει

·         Η διεργασία Ε δε πρέπει να τρέξει πριν τελειώσουν όλες οι άλλες διεργασίες

 

Ο σεμαφόρος semA είναι ένας γενικός σεμαφόρος που χρησιμοποιείται για να ελέγξει την εκκίνηση των διεργασιών B και C. Στο παράδειγμα αυτό ισχύουν οι παρακάτω συμβολισμοί:

·           Σεμαφόρος που μπλοκάρει μια διεργασία  συμβολίζεται με κόκκινο κύκλο

·           Σεμαφόρος που επιτρέπει τη συνέχιση της εκτέλεσης μιας διεργασίας

Η λειτουργία του προσομοιωτή είναι χωρισμένη σε λογικά βήματα.