Λειτουργικά Συστήματα (8.009)
Γεια σας,
Οι ώρες του μαθήματος είναι Θεωρία και Εργαστήριο μαζί Πέμπτη 16:15-21:00 στο Ε1. Επίσης όταν χρειάζεται να γίνει αναπλήρωση ωρών, κυρίως για τη Θεωρία θα γίνεται Σάββατο 11:00-15:00.
Αν κάποιος θέλει να παρακολουθήσει το μάθημα στα Αγγλικά με τους Erasmus (self-study με προγραμματιστικό project που εξετάζεται 29/5 και τελική προφορική εξέταση που εξετάζεται 5/6), πρέπει να το δηλώσει οπωσδήποτε την πρώτη ημέρα μαθημάτων. Οι συναντήσεις θα γίνονται Πέμπτη 14:15-16:00 στο Εργαστήριο ΤΝΜΣ-Α.
(Προσοχή: Ξεκινάμε με τη Θεωρία και το Εργαστήριο στις 20 Φλεβάρη.)
Εξεταστέα Ύλη
Για τη Θεωρία διαβάζετε από τις διαφάνειες και αναφέρεστε στις σημειώσεις του βιβλίου του Tannenbaum (στο ECLASS ή σε hard/soft copy) στα σημεία που δεν καταλαβαίνετε. Η εξεταστέα ύλη στη Θεωρία αφορά σε process/threads (lifecycle), συγχρονισμούς/επικοινωνία/hazards (data races, deadlocks), process scheduling, memory management (virtual to physical address translation, paging), εικονική μνήμη, drivers, και file systems. Επίσης εισάγονται τα Συστήματα Πραγματικού Χρόνου και διάφορα θέματα που άπτονται του Λογισμικού Συστήματος (POSIX, Kernel, Security). Στο τελευταίο μάθημα προγραμματίζεται να γίνει σύντομη επανάληψη για Θεωρία και Εργαστήριο και εξετάζονται σχετικές ερωτήσεις φοιτητών.
Το Εργαστήριο έχει μικρότερη ύλη από τη Θεωρία. Ασχολείται σε βάθος με θέματα open source, Linux installation, Linux commands, shell scripts, καθώς και με προγραμματιστικά θέματα που αφορούν POSIX, ποιο συγκεκριμένα process/threads (lifecycle) και συγχρονισμούς/επικοινωνία/hazards (data races, deadlocks) που υλοποιούνται σε κώδικα C/C++ με χρήση Linux βιβλιοθηκών ανοικτού κώδικα. Οι εργασίες που θα σας δοθούν (τόσο οι λυμένες, όσο και οι προς επίλυση) βοηθούν να καταλάβετε σε βάθος την ύλη. Για το σκοπό αυτό όμως θα χρειαστεί άμεσα να εγκαταστήσετε Linux (π.χ. μέσω Virtualbox) και να εξοικειωθείτε με εντολές και μερικά χρήσιμα εργαλεία ανάπτυξης λογισμικού σε Linux (π.χ. editor, compiler, κλπ) που πρέπει να μάθετε να χρησιμοποιείτε αποδοτικά. Προς το τέλος του μαθήματος εξετάζονται πρακτικά, ορισμένα θέματα που αναλύθηκαν στη Θεωρία, όπως memory management, drivers, file systems, RTOS, κλπ
Βαθμολογία, Εργασίες και Εξετάσεις
Α) Οι φοιτητές ΗΜΜΥ που δεν έχουν ξαναπαρακολουθήσει ολόκληρο το μάθημα υποχρεούνται σε φυσική παρουσία στα παρακάτω εργαστηριακά μαθήματα (οι ημερομηνίες ίσως αλλάξουν λόγω ανωτέρας βίας):
Ενότητα 1 (x01) - Linux Introduction: Linux commands, scripts
20/2 Linux Intro, Linux installation in VM, commands
27/2 Bash shell: language & scripts
Ενότητα 2 (x02) - Linux Processes, SystemV/POSIX Shared Memory, Pipes
6/3 Linux processes: fork, wait & wrappers, SystemV Shared Memory
13/3 POSIX Shared Memory, Mutex Example with Processes
20/3 Pipes & Εργασία 1 (ως 15%, προθεσμία: 10/4 στις 16:00)
Ενότητα 3 (x03) - Threads, Synchronization & OS Demos
27/3 Linux processes/threads, mutex/deadlocks, barriers
3/4 Semaphores, Condition Variables & Classical synchronization problems
10/4 Classical vs non-classical synchronization problems & Εργασία 2 (ως 35%, προθεσμία: 29/5 16:00)
Ενότητα 4 (x03) - Θεωρία, Tools, Demos & Future Classes
8/5 Θεωρία (Paging Systems), δεν υπάρχει εργαστήριο
15/5 Θεωρία (File Systems, Drivers (tty/i2c), Related Topics), δεν υπάρχει εργαστήριο
22/5 Eπανάληψη Θ+Ε & Ερωτήσεις
29/5 Παρουσίαση Projects Erasmus στο Εργ. ΤΝΜΣ-Α (2ος όροφος πάνω από την ΠΚ3, δεύτερη πόρτα αριστερά)
5/6 Τελική Προφορική Εξέταση στο Εργ. ΤΝΜΣ-Α (2ος όροφος πάνω από την ΠΚ3, δεύτερη πόρτα αριστερά)
Παρατηρήσεις:
1) Στην τελική προφορική εξέταση συμμετέχουν όλοι οι φοιτητές (Greeks & Erasmus) εξετάζονται όσοι παρακολουθήσαν το μάθημα σε ομάδες ως 7 ατόμων .
5 Ιουνίου, 19:00-22:30 - Ομάδα 1 - Εργ. ΤΝΜΣ-Α
Merichal Antonio
Noelia Cobo
Madueno Lopez Carlos
Diego López Lucena
Kacpar Szeliga
5 Ιουνίου, 14:00-17:00- Ομάδα 2 - Εργ. ΤΝΜΣ-Α
Γιαννόπουλος Νικόλαος Διονύσιος ΤΗ20003
Γαντζούδης Μάριος ΤΗ20056
Μπόζιος Ιωάννης ΤΗ20175
Ντάλας Βασίλειος ΤΗ20093
Φίλης Δημήτριος ΤΗ20481
5 Ιουνίου, 17:00-19:00 - Ομάδα 3 - Εργ. ΤΝΜΣ-Α
Κωστούλας Δημήτριος ΤΗ20330
Τζιάλλας Σπυρίδων ΤΗ20432
Μαστροκώστας Άγγελος ΤΗ20368
Κεφαλάς Δημήτριος ΤΗ20286
Μητσόπουλος Νικόλαος ΤΗ20591
2) Οι Προγραμματιστικές Εργασίες (1 και 2) που θα δοθούν τις ημερομηνίες (20/3 και 10/4) μετρούν συνολικά ως 50% του βαθμού, μόνο αν η βαθμολογία της τελικής εξέτασης είναι τουλάχιστον 4.
3) Για σύντομες ερωτήσεις/απορίες (π.χ. τεχνικά θέματα) μπορείτε να με συναντήσετε μετά το μάθημα, ή Παρασκευή 18:00-20:00, ή στέλνετε μήνυμα στο skype name: Miltos.Grammatikakis
-------------------------------------------------------------------------------------------------------------------------------
Β) Φοιτητές του ΗΜΜΥ (όπως και του προγράμματος Μηχ. Πληροφορικής ΤΕ) που έχουν ξαναπαρακολουθήσει το μάθημα παλιότερα ΔΕΝ υποχρεούνται σε φυσική παρουσία. Οι φοιτητές αυτοί είναι υποχρεωμένοι να μελετήσουν τη θεωρία και όλες τις προγραμματιστικές εργασίες. O βαθμός στο μάθημα θα προέλθει εξ’ ολοκλήρου (100%) από τελική προφορική εξέταση που αφορά σε θεωρία και εργαστήριο και θα γίνει τις προτεινόμενες ημερομηνίες και πρέπει υποχρεωτικά να δηλώσετε συμμετοχή. Η εξέταση αφορά Θεωρία και Εργαστήριο και απαιτείται συνολικός μέσος όρος 5 για να περάσετε το μάθημα. Για τη δήλωση συμμετοχής δείτε την ανακοίνωση παραπάνω.
Καλό Εξάμηνο.
Ο Διδάσκων