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

Γενικά

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

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

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

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

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

Διδακτικές και Μαθησιακές Μέθοδοι - Αξιολόγηση

Τρόπος Παράδοσης
  • Η παράδοση των μαθημάτων γίνεται με διαλέξεις στις αίθουσες του τμήματος.
Χρήση Τεχνολογιών Πληροφορίας και Επικοινωνιών
  • Διατηρείται ιστοσελίδα για το μάθημα, η οποία περιέχει το εκπαιδευτικό υλικό καθώς και ασκήσεις για εξάσκηση των φοιτητών. Η επικοινωνία με τους φοιτητές γίνεται εκτός από πρόσωπο με πρόσωπο εναλλακτικά μέσω ηλεκτρονικού ταχυδρομείου καθώς και μέσω της ιστοσελίδας του μαθήματος.
Οργάνωση Διδασκαλίας
Δραστηριότητα Φόρτος εργασίας εξαμήνου
Διαλέξεις52
Συγγραφή και παρουσίαση υποχρεωτικής εργασίας68
Ατομική Μελέτη και ανάλυση βιβλιογραφίας60
Σύνολο 180
Αξιολόγηση φοιτητών

Συνιστώμενη Βιβλιογραφία

Συγγράμματα μέσω του συστήματος "Εύδοξος"
  1. Κατανεμημένα Συστήματα: Αρχές και Υποδείγματα, A. Tanenbaum & M. van Steen, Κλειδάριθμος, ελληνική μετάφραση, 2005, ISBN: 960-209-924-0, Κωδικός Βιβλίου στον Εύδοξο: 13777
  2. Κατανεμημένα Συστήματα, Ι. Κάβουρας, Ι. Μήλης, Γ. Ξυλωμένος, Α. Ρουκουνάκη, 3η έκδοση, Κλειδάριθμος, 2011, ISBN: 978-960-461-463-9, Κωδικός Βιβλίου στον Εύδοξο: 12533080
  3. Δικτυακός Προγραμματισμός - Ανάπτυξη Εφαρμογών Πελάτη-Εξυπηρετητή στην Οικογένεια Πρωτοκόλλων TCP/IP, D. Comer, D. Stevens, ελληνική μετάφραση, Ιων, 2005, ISBN: 978-960-411-537-2, Κωδικός Βιβλίου στον Εύδοξο: 14504
Συμπληρωματική ξενόγλωσση βιβλιογραφία
  1. Distributed Systems: Concepts and Design, G. Coulouris, J. Dollimore, T. Kindberg, G. Blair, 5th ed., Addison Wesley, 2011.
  2. Distributed Systems: Principles and Paradigms, A. Tanenbaum, M. van Steen, 2nd ed., Prentice Hall, 2006.
  3. Distributed Algorithms, N. Lynch, Morgan Kaufman, 1996.
  4. Distributed Algorithms for Message-passing systems, M. Raynal, Springer-Verlag, 2013.