Λύση του προβλήματος στενής γέφυρας χρησιμοποιώντας προγραμματισμό με πολλά νήματα

Affiliation: University of Thessaly (UTH)
Resolution: Individual, Group
Duration: More than four hours

Overview


Goals

Συντάκτης προβλήματος: Vasilis Stergiou Αναπτύξτε ένα πρόγραμμα για τη ρύθμιση της κυκλοφορίας οχημάτων σε μια στενή γέφυρα για να εξασφαλίσετε τις ακόλουθες ιδιότητες: 1. Δεν πρέπει να υπάρχουν οχήματα που κινούνται αντίθετα προς τη γέφυρα. 2. Δεν πρέπει να υπάρχουν περισσότερα από οχήματα N στη γέφυρα. 3. Δεν επιτρέπεται σε ένα όχημα να περιμένει για πάντα για να διασχίσει τη γέφυρα, ακόμη και αν τα οχήματα φθάνουν συνεχώς στην άλλη πλευρά της γέφυρας. Πρέπει να γράψετε κώδικα σε C ώστε να καταλήξετε στη λύση αυτού του προβλήματος. Θα χρειαστείτε μόνο έναν συντάκτη για να γράψετε τον κωδικό σας και έναν μεταγλωττιστή gcc.

Learning Objectives

Ένας από τους στόχους είναι να βελτιωθούν οι δεξιότητες προγραμματισμού των μαθητών σε C, καθώς απαιτούνται προηγμένες μέθοδοι για την επίλυση του προβλήματος. Συγκεκριμένα, μετά την εφαρμογή του προβλήματος, οι μαθητές θα εξοικειωθούν με: 1. Κατανόηση του προβλήματος του συγχρονισμού σε ταυτόχρονα συστήματα. 2. Γνώση βασικών μηχανισμών συγχρονισμού και κατανόηση του τρόπου με τον οποίο εφαρμόζονται σε λειτουργικά συστήματα ή / και περιβάλλον εκτέλεσης υψηλότερου επιπέδου. 3. Γνώση ενός κλασικού προβλήματος συγχρονισμού και των λύσεών του με διαφορετικούς τρόπους και κατανόηση του τρόπου κατασκευής αυτών των λύσεων. 4. Γνώση των βασικών λειτουργιών του ταυτόχρονου προγραμματισμού και του συγχρονισμού στο C, και της πρακτικής εφαρμογής τους.

Context

Τα περιεχόμενα του μαθήματος είναι τα εξής: - Το ταυτόχρονο μοντέλο εκτέλεσης. - Το πρόβλημα του αμοιβαίου αποκλεισμού. - Αμοιβαίοι αλγόριθμοι με βάση την εφαρμογή. - Ειδικές εντολές συγχρονισμού υλικού. - Σηματοφόροι. - Ελεγκτές / παρατηρητές. - Κρίσιμες περιοχές υπό όρους. - Ταυτόχρονος προγραμματισμός και συγχρονισμός σε C / νήματα.