Διδάσκων: Ιωάννης Σμαραγδάκης, Αλέξης Δελής, Γιώργος Μπαλατσούρας, Γεώργιος Καστρίνης
Περιγραφή Μαθήματος
Το μάθημα διδάσκεται στο 6ο εξάμηνο σπουδών του τμήματος Πληροφορικής και Τηλεπικοινωνιών, του Εθνικού και Καποδιστριακού Πανεπιστημίου Αθηνών. Στο μάθημα αναπτύσσονται τα ακόλουθα θέματα. Βασικές λειτουργίες και αλληλεπίδραση χρηστών με το Unix. Προγραμματισμός σε κέλυφος και βοηθητικά προγράμματα. Διαχείριση διεργασιών και συστήματος αρχείων. Δημιουργία και τερματισμός διεργασιών, αποστολή και παραλαβή σημάτων, είσοδος και έξοδος χαμηλού επιπέδου, επικοινωνία μεταξύ διεργασιών μέσω σωλήνων και υποδοχών. Επικοινωνία μεταξύ διεργασιών μέσω ουρών μηνυμάτων, κοινής μνήμης και σηματοφόρων. Δημιουργία, προγραμματισμός, συγχρονισμός νημάτων και επικοινωνία με mutexes και μεταβλητές συνθήκης. Δικτυακός προγραμματισμός και μοντέλο πελάτη εξυπηρετητή. Διεπαφές εφαρμογών με τα πρωτόκολλα επικοινωνίας. API για υποδοχές. Ζητήματα σχεδιασμού λογισμικού πελάτη/εξυπηρετητή. Επαναληπτικοί εξυπηρετητές με UDP και TCP. Εξυπηρετητές πολλαπλών υπηρεσιών και ταυτοχρονισμός εξυπερετητών. Δημιουργία κατανεμημένων προγραμμάτων με rpcgen και πελάτες telnet.