Κατανεμημένα Συστήματα

Διδάσκοντες Απόστολος Μηλιώνης
Κατηγορία μαθήματος ΥΔΚ/ΑΣ
Κωδικός μαθήματος ΨΣ-207
Πιστωτικές μονάδες 5
Ώρες μαθήματος 3 ώρες
Ώρες εργαστηρίων 2 ώρες
Ηλεκτρονικό υλικό Προβολή στον Εύδοξο (Open e-Class)

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

Το μάθημα των Κατανεμημένων Συστημάτων στο Πρόγραμμα Προπτυχιακών Σπουδών του Τμήματος Ψηφιακών Συστημάτων αποσκοπεί στο να εισάγει τον φοιτητή στις βασικές αρχές και τα θεμελιώδη θεωρητικά ζητήματα των Κατανεμημένων Συστημάτων, με έμφαση στην αναλυτική σκέψη, παρέχοντας ταυτόχρονα μία εισαγωγική πρακτική εμπειρία στην ανάπτυξη κατανεμημένων εφαρμογών.

Με την ολοκλήρωση του μαθήματος οι φοιτητές θα αποκτήσουν θεμελιώδεις γνώσεις στο γνωστικό πεδίο των Κατανεμημένων Συστημάτων (βλ. Περιεχόμενο Μαθήματος) που επιτρέπουν την κριτική εμβάθυνση και έρευνα στο ευρύ επιστημονικό πεδίο των Κατανεμημένων Συστημάτων και την ανάπτυξη σύνθετων κατανεμημένων εφαρμογών.

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

  • Ρευματοστρεφείς επικοινωνίες και βέλτιστη αναπαραγωγή πολυμέσων (ελάχιστος χρόνος αναμονής για απρόσκοπτη αναπαραγωγή).
  • Συγχρονισμός ρολογιών πραγματικού χρόνου με χρήση διαφόρων αλγορίθμων.
  • Ανάθεση λογικών χρονοσφραγίδων, διανυσματικών χρονοσφραγίδων και αιτιακών χρονοσφραγίδων Lamport.
  • Εκτέλεση διατεταγμένων πολυεκπομπών (ολική και αιτιακή).
  • Εκτέλεση αλγορίθμων κατανεμημένου αμοιβαίου αποκλεισμού και εκλογής αρχηγού.
  • Έλεγχος εκτέλεσης κατανεμημένων συναλλαγών (αλγόριθμοι κλειδωμάτων και απαισιόδοξης διάταξης χρονοσφραγίδων).
  • Υπολογισμός κατανεμημένων στιγμιοτύπων.
  • Έλεγχος συνέπειας σε κατανεμημένους αποθηκευτικούς χώρους και χρήση πρωτοκόλλων κατανομής και συνέπειας.
  • Έλεγχος αστοχίας κατανεμημένων συστημάτων, αξιόπιστης επικοινωνίας σε ομάδες, κατανεμημένη δέσμευση και ανάκαμψη.
  • Κοινή αναπαράσταση δεδομένων.
  • Αξιολόγηση αρχιτεκτονικών φυσικού επιπέδου κατανεμημένων συστημάτων.
  • Αξιολόγηση επίδοσης και τεχνοοικονομική ανάλυση κατανεμημένων συστημάτων.
  • Βελτιστοποίηση επίδοσης κατανεμημένων συστημάτων και επικάλυψη χρόνου επικοινωνιών από την επεξεργασία.

Επιπροσθέτως, οι φοιτητές θα έχουν την ικανότητα να αναλύουν, σχεδιάζουν και αξιολογούν σύνθετα κατανεμημένα συστήματα υποστηριζόμενα από θεμελιώδεις αλγορίθμους και μηχανισμούς μεσολογισμικού και να υλοποιούν εφαρμογές κατανεμημένων συστημάτων χρησιμοποιώντας αναπτυξιακές υποδομές και μεσολογισμικό κατανεμημένων συστημάτων, όπως τoυς μηχανισμούς απομακρυσμένης κλήσης διαδικασιών (RPC) και μεθόδων (RMI) σε αναπτυξιακά περιβάλλοντα διαδικαστικού και αντικειμενοστραφούς κατανεμημένου προγραμματισμού αντίστοιχα, το μηχανισμό δικτυακού προγραμματισμού των sockets, το μοντέλο προγραμματισμού MPI, τα σύγχρονα περιβάλλοντα ανάπτυξης Hadoop και Spark κλπ.

Περιεχόμενα

  • Εισαγωγή στα Κατανεμημένα Συστήματα
    • Αρχιτεκτονική υψηλού επιπέδου, διαφάνειες ΚΣ, επεκτασιμότητα, υλικό και λειτουργικά συστήματα ΚΣ, ενδιάμεσο επίπεδο λογισμικού (middleware), σημασιολογία συγχρονισμού στην επικοινωνία, μοντέλο πελάτη-διακομιστή.
  • Επικοινωνία
    • Δικτυακά πρωτόκολλα, request-reply protocol, μοντέλο RPC, μεταβίβαση παραμέτρων, κοινή αναπαράσταση δεδομένων, DCE, μοντέλο RMI, διατήρηση και συγχρονισμός στην επικοινωνία, sockets, MPI.
  • Συγχρονισμός
    • Συγχρονισμός ρολογιών, λογικός χρόνος, ολικά διατεταγμένη πολυεκπομπή, αιτιακά διατεταγμένη πολυελπομπή, κατανεμημένος αμοιβαίος αποκλεισμός, εκλογή αρχηγού, καθολικές καταστάσεις και κατανεμημένα στιγμιότυπα, κατανεμημένες συναλλαγές.
  • Ανοχή σε βλάβες
    • Συμφωνία σε προβληματικά συστήματα, αξιόπιστη επικοινωνία πελάτη-διακομιστή, αξιόπιστη επικοινωνία σε ομάδες, κατανεμημένη δέσμευση, ανάκαμψη.
  • Συνέπεια και αναπαραγωγή
    • Μοντέλα συνέπειας με επίκεντρο τα δεδομένα και τον πελάτη, πρωτόκολλα κατανομής, πρωτόκολλα συνέπειας.
  • Αντικειμενοστραφής πλατφόρμα ανάπτυξης κατανεμημένων εφαρμογών Java RMI
    • Σύνοψη υλοποίησης RMI, παραδείγματα υλοποίησης κατανεμημένων εφαρμογών whiteboard και taskbag.
  • Eκπόνηση προγραμματιστικής εργασίας για την εξοικείωση των φοιτητών με το σχεδιασμό και την υλοποίηση κατανεμημένων συστημάτων.

Προτεινόμενα Συγγράμματα

  • Tanenabum A. & Van Steen M. (2006): Κατανεμημένα Συστήματα: Αρχές και Υποδείγματα, Εκδόσεις Κλειδάριθμος.
  • Κάβουρας Ι., Μήλης Ι., Ξυλωμένος Γ., Ρουκουνάκη Α. (2011): Κατανεμημένα Συστήματα με Java: Συστήματα Υπολογιστών Τόμος ΙΙΙ, Εκδόσεις Κλειδάριθμος.
  • Pacheco P. (2015): Εισαγωγή στον Παράλληλο Προγραμματισμό, Εκδόσεις Κλειδάριθμος.
  • Παπαδάκης Σ., Διαμαντάρας Κ. (2012): Προγραμματισμός και Αρχιτεκτονική Συστημάτων Παράλληλης Επεξεργασίας, Εκδόσεις Κλειδάριθμος.

Πρόσθετη Βιβλιογραφία

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