Επιτομή:
Η διπλωματική εργασία αναφέρεται στη Γλώσσα Python, καθώς και στις εφαρμογές της στα κατανεμημένα συστήματα.
Αρχικά γίνεται μια εισαγωγή στη γλώσσα προγραμματισμού python όπου περιγράφονται τα βασικά σημεία της όπως δομές ελέγχου, δομές δεδομένων (πλειάδες, σύνολα, λεξικά κ.λ.π.) δίνοντας κατάλληλα παραδείγματα.
Στη συνέχεια μελετάται ο παραλληλισμός με νήματα και παρουσιάζονται τα νήματα όπως αυτά υλοποιούνται στην Python. Πιο συγκεκριμένα αναλύονται τεχνικές αμοιβαίου αποκλεισμού όπως σημαφόροι και κλειδώματα, τεχνικές χρονισμού κ.λ.π. και γίνεται μελέτη στο πρόβλημα παραγωγού-καταναλωτή, καθώς επίσης και στον παραλληλισμό με διεργασίες όπου περιγράφονται τα βασικά τους χαρακτηριστικά, όπως το πως δημιουργούνται και το πως εκτελούνται. Επίσης παρουσιάζονται οι διαφορές μεταξύ νημάτων και διεργασιών.
Επιπρόσθετα γίνεται μια αναλυτική παρουσίαση των γράφων τόσο θεωρητικά όσο και πρακτικά μέσω κατάλληλων κωδίκων σε Python. Ακόμα, παρουσιάζονται προγράμματα σε Python για απεικόνιση κορυφών και ακμών γράφου, για προσθήκη κορυφών και ακμών σε γράφο κ.λ.π.
Παρακάτω γίνεται επισκόπηση προγραμμάτων σε Python για παραλληλισμό πράξεων με μεγαλύτερο δυνατό βαθμό, για εκτέλεση νημάτων με κατάλληλο συγχρονισμό και για την υλοποίηση μιας εφαρμογής νημάτων που τοποθετούνται σε ουρά και εκτελούνται τυχαία.
Επιπλέον περιγράφονται τα sockets και συγκεκριμένα τα tcp και τα udp sockets, καθώς και οι διαφορές ανάμεσα τους. Επιδεικνύεται η δημιουργία tcp socket τόσο στο server όσο και στον client. Αντίστοιχα επιδεικνύεται η δημιουργία udp socket τόσο στο server όσο και στον client και παρουσιάζεται ένα πλήρες παράδειγμα με υλοποίηση ενός echo server και client.
Τέλος περιγράφονται και υλοποιούνται με κώδικα python οι αλγόριθμοι συγχρονισμού ρολογιού Cristian και Berkeley. Επίσης υλοποιούνται σε κάθε ένα από αυτούς ένας master clock server και ένας clock client αντίστοιχα.