Ηλεκτρονική Διάθεση Μαθήματος
Μαθησιακά Αποτελέσματα
Γνωστικά: Βασική επιδίωξη του μαθήματος είναι η κατανόηση των προκλήσεων σχεδίασης λογισμικού με ταυτοχρονισμό και επικοινωνία μεταξύ πολλών διεργασιών, των προβλημάτων και των μηχανισμών ασφάλειας για την αντιμετώπισή τους.
Δεξιότητες: Οι φοιτητές αναμένεται ότι θα μπορούν να αναπτύσσουν προγράμματα ταυτοχρονισμού, να τα επαληθεύουν ως προς την ορθότητά τους και να διατυπώνουν αλγόριθμους επίλυσης προβλημάτων σε κατανεμημένα συστήματα με βάση θεμελιώδη κριτήρια ορθότητας.
Περιεχόμενο Μαθήματος
A Μέρος - Προγραμματισμός Ταυτοχρονισμού:
Ταυτοχρονισμός στις γλώσσες προγραμματισμού (ατομικές εντολές, παρεμβολή, ορθότητα), Πρόβλημα του Κρίσιμου Τομέα, Επαλήθευση προγραμμάτων ταυτοχρονισμού, Προηγμένοι αλγόριθμοι για το πρόβλημα του Κρίσιμου Τομέα, Σηματοφορείς, Επιτηρητές, Κανάλια, Χώροι πλειάδων, Κατανεμημένοι αλγόριθμοι, Καθολικές ιδιότητες, Κοινή συναίνεση, Συστήματα πραγματικού χρόνου
B Μέρος - Ασφάλεια Λογισμικού:
Μηχανισμοί ασφάλειας, Πάροχοι ασφάλειας, Λίστες ελέγχου προσπέλασης, Συνόψεις μηνυμάτων, Κρυπτογραφία, Ψηφιακές υπογραφές, Ψηφιακά πιστοποιητικά, Αρχιτεκτονική ασφάλειας της Java, Ασφάλεια εφαρμογών λογισμικού
Λέξεις Κλειδιά
Ταυτοχρονισμός, Κατανεμημένοι Αλγόριθμοι, Συστήματα Πραγματικού Χρόνου, Μηχανισμοί ασφάλειας, Ασφάλεια εφαρμογών λογισμικού
Βιβλιογραφία μαθήματος (Εύδοξος)
1. M. Ben-Ari, "Αρχές Προγραμματισμού με Ταυτοχρονισμό και Κατανομή Λογισμικού", 2η έκδοση/2015, Εκδόσεις Τζιόλας, ISBN: 978-960-418-591-7
Κωδικός Βιβλίου στον Εύδοξο: 50655947
2. Ι.Κ.Κάβουρας, Ι.Ζ.Μήλης, Γ.Β.Ξυλωμένος, Α.Α.Ρουκουνάκη, "Κατανεμημένα Συστήματα με Java", Συστήματα Υπολογιστών - Τόμος ΙΙΙ, 3η έκδοση/2011, Εκδόσεις Κλειδάριθμος, ISBN: 978-960-461-463-9
Κωδικός Βιβλίου στον Εύδοξο: 12533080
Επιπρόσθετη βιβλιογραφία για μελέτη
1. M. Herlihy and N. Shavit, "The art of multiprocessor programming", Morgan Kauffman, 2008
2. G. Taubenfeld, "Synchronization Algorithms and Concurrent Programming", Pearson / Prentice Hall, 2006
3. N.Lynch, "Distributed Algorithms", Morgan Kauffman, 1996
4. S. Oaks,"Java Security", O'Reilly, 1998