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

Υποχρεωτικό Μάθημα Πυρήνα, ΣΤ’ εξάμηνο, 8 μονάδες ECTS

Διδάσκουσα: Καθηγήτρια Α’ βαθμίδας Βασιλική Καλογεράκη

URL: https://eclass.aueb.gr/courses/INF363/

Περιεχόμενο

Εισαγωγή, μη συγκεντρωτικά συστήματα, στόχοι και υπηρεσίες κατανεμημένων συστημάτων, μοντέλο πελάτη-εξυπηρετητή. Διάταξη γεγονότων και αμοιβαίος αποκλεισμός. Καθολικές καταστάσεις. Αποτίμηση καθολικού κατηγορήματος, αδιέξοδα, κατανεμημένος τερματισμός. Αλγόριθμοι εκλογής αρχηγού. Δικτύωση στην Java. Κλήσεις απομακρυσμένων διαδικασιών. Νήματα και υλοποίησή τους στην Java. Οργάνωση επεξεργαστών και διεργασιών. Συστήματα μετανάστευσης κώδικα. Κατανεμημένα συστήματα ονομασίας (ονομασία οντοτήτων, υπηρεσίες ονομασίας, ευρετηρίων και εντοπισμού οντοτήτων). Κατανεμημένα συστήματα αρχείων και παραδείγματα. Κατανεμημένα συστήματα αντικειμένων. Κατανεμημένα αρχιτεκτονικές, συστήματα και πρωτόκολλα όπως Java RMI και CORBA. Ανοχή βλαβών, παραγωγή αντιγράφων, επανόρθωση, κατανεμημένη συμφωνία. Μελέτη συστημάτων ομοτίμων (peer-to-peer systems), δομημένων (OceanStore, Pastry, Chord) και μη δομημένων. Αλγόριθμοι κατανομής φόρτου, κλιμακωτής εύρεσης αντικειμένων/αρχείων, και ανοχής βλαβών στα συστήματα ομοτίμων. Μελέτη προγραμματιστικών μοντέλων (όπως MapReduce) για παράλληλη επεξεργασία.

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

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

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

Προαπαιτούμενα Μαθήματα

Για να εγγραφεί στο μάθημα, ο φοιτητής πρέπει να έχει εξεταστεί επιτυχώς σε προηγούμενο εξάμηνο είτε στο μάθημα «Λειτουργικά Συστήματα» είτε στο μάθημα «Προγραμματισμός Υπολογιστών με JAVA». Όμως, συνιστάται στους φοιτητές να έχουν εξεταστεί επιτυχώς σε προηγούμενο εξάμηνο και στα δύο αυτά μαθήματα καθώς και στα μαθήματα «Δίκτυα Επικοινωνιών» και «Εισαγωγή στον Προγραμματισμό Υπολογιστών».

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

  • «Κατανεμημένα Συστήματα με Java», Ι. Κάβουρας, Ι. Μήλης, Γ. Ξυλωμένος, Α. Ρουκουνάκη, 3η έκδοση, Κλειδάριθμος, 2011.
  • «Κατανεμημένα Συστήματα: αρχές και υποδείγματα», A. S. Tanenbaum and M. Van Steen, Κλειδάριθμος, 2006.
  • “Distributed Systems: Concepts and Design”, G. Coulouris, J. Dollimore and T. Kindberg, Fifth Edition, Addison Wesley, 2011.
  • “Distributed Systems: Principles and Paradigm”s, Andrew Tanenbaum, Maarten van Steen, Prentice Hall, 2016.

Διδακτικές και Μαθησιακές Μέθοδοι

Διαλέξεις (2 δίωρες διαλέξεις εβδομαδιαίως), σεμινάρια, ομαδικές ασκήσεις στο σπίτι, ατομικές και ομαδικές ασκήσεις σε εργαστήριο, εκπόνηση μελέτης και άσκηση πεδίου.

Μέθοδοι Αξιολόγησης/Βαθμολόγησης

O βαθμός προκύπτει από την τελική γραπτή εξέταση (50%) και από ομαδικές εργασίες στο σπίτι (50%). Για τις ομαδικές εργασίες υπάρχει προφορική εξέταση σε εργαστήριο (και ενδιάμεση εξέταση και τελική εξέταση).