ΓραμματείαSecretariat: 2410 684574 | ΦοιτητικάStudents: 2410 684387 g-ds@uth.gr
Επιλογή Σελίδας

Προχωρημένος Προγραμματισμός

Κωδικός Μαθήματος

Υ302

Εξάμηνο Σπουδών

3 (Γ)

Ώρες/Εβδομάδα - ECTS

5 – 5

Πέτρος Λάμψας

Καθηγητής

Μαθησιακά Αποτελέσματα

Με την επιτυχή ολοκλήρωση του μαθήματος ο/η φοιτητής/τρια θα είναι σε θέση να:

  • Περιγράφει το μηχανισμό που παρέχουν τα λειτουργικά συστήματα στους προγραμματιστές για την αξιοποίηση των υπηρεσιών του πυρήνα (system calls).
  • Αναγνωρίζει τις διαφορές διεργασιών (process) και νημάτων (thread) ως μηχανισμών που παρέχουν τα λειτουργικά συστήματα για την εκτέλεση προγραμμάτων χρηστών.
  • Απαριθμεί μηχανισμούς επικοινωνίας μεταξύ διεργασιών που εκτελούνται στο ίδιο σύστημα (Interprocess Communication – IPC).
  • Ορίζει το πρόβλημα του ταυτοχρονισμού (concurrency).
  • Αναφέρει κλασικά προβλήματα συγχρονισμού και τον τρόπο επίλυσής τους με κάποιον από τους μηχανισμούς που επιτυγχάνουν συγχρονισμό.
  • Εξηγεί τους πιο διαδεδομένους μηχανισμούς ελέγχου του ταυτοχρονισμού: mutexes, σημαφόροι (semaphores), ελεγκτές (monitors), μεταβλητές συνθήκης (condition variables).
  • Συνθέτει τις γνώσεις του/της για τη δημιουργία νημάτων και τον ταυτοχρονισμό στην ανάπτυξη πολυ-νηματικών εφαρμογών με απαιτήσεις απόδοσης και εξυπηρέτησης.

Ενδεικτικό Περιεχόμενο Μαθήματος

  • Διεργασίες/Νήματα.
  • Χρονοπρογραμματισμός διεργασιών/νημάτων στα λειτουργικά συστήματα.
  • Επικοινωνία διεργασιών/νημάτων με/χωρίς κοινή μνήμη.
  • Εισαγωγή στον ταυτοχρονισμό, το πρόβλημα του κρίσιμου τμήματος, αλγόριθμοι για το πρόβλημα του κρίσιμου τμήματος, επαλήθευση προγραμμάτων ταυτοχρονισμού.
  • Τεχνικές ταυτοχρονισμού: αμοιβαίος αποκλεισμός, ενεργός αναμονή, λουκέτα, σημαφόροι, ελεγκτές.
  • Παρουσίαση κλασικών προβλημάτων συγχρονισμού και τεχνικών επίλυσής τους.

Διεύθυνση Μαθήματος στο eClass