Ακαδημαϊκό Προσωπικό
ΠΕΡΙΕΧΟΜΕΝΟ ΜΑΘΗΜΑΤΟΣ
Εισαγωγή
- Τι είναι το λειτουργικό σύστημα
- Βασικοί τύποι λειτουργικών συστημάτων
- Βασικές έννοιες λειτουργικών συστημάτων
- Δομή των λειτουργικών συστημάτων
Διεργασίες
- Το μοντέλο των διεργασιών (processes, multi-programming)
- Διαδιεργασιακή επικοινωνία (busy waiting, sleep/wakeup, semaphores)
- Χρονοπρογραμματισμός (scheduling)
- Νήματα (threads)
Διαχείριση Μνήμης
- Βασική διαχείριση μνήμης (memory allocation, dynamic address relocation)
- Eναλλαγή (swapping)
- Εικονική μνήμη (virtual memory, paging)
- Αλγόριθμοι αντικατάστασης σελίδων (page replacement algorithms)
Διαχείριση Αρχείων
- Αρχεία και κατάλογοι (files & directories)
- Υλοποίηση συστήματος αρχείων και καταλόγων (file system implementation)
- Διαχείριση και αξιοπιστία των συστημάτων αρχείων (file system management and optimisation/consistency/performance)
- Παραδείγματα συστημάτων αρχείων
Αδιέξοδα
- Υπολογιστικοί πόροι (resources)
- Ανταγωνισμός στην χρήση κοινών πόρων και αδιέξοδα (deadlocks)
- Μοντελοποίηση αδιεξόδων (dedalock modelling)
- Αλγόριθμοι ανίχνευσης, ανάκαμψης και αποφυγής αδιεξόδων (deadlock detection/avoidance/prevention algorithms)
Στο εργαστηριακό μέρος του μαθήματος οι φοιτητές έχουν τη δυνατότητα της πρακτικής εφαρμογής των εννοιών της θεωρίας. Με την επιτυχή ολοκλήρωση του εργαστηρίου ο φοιτητής Γνωρίζει την δομή και οργάνωση ενός UNIX like λειτουργικού συστήματος, Αξιοποιεί και συνδυάζει τις βασικές εντολές και είναι σε θέση να γράφει απλά προγράμματα στο κέλυφος. Επίσης αποκτά πρακτική εμπειρία στη χρήση system calls που αναφέρονται στη διαχείριση linux και posix threads, τη χρονο-δρομολόγηση, τη χρήση κοινής μνήμης και τους πιο σημαντικούς τρόπους συγχρονισμού για inter-process communication (atomic operations, barriers, locks, pipes, signals, semaphores, condition variables) μέσα από την επίλυση πρακτικών υπολογιστικών προβλημάτων. Τέλος ασχολείται με τη διαδικασία ανάπτυξης και βελτιστοποίησης linux drivers.
ΣΥΝΙΣΤΩΜΕΝΗ-ΒΙΒΛΙΟΓΡΑΦΙΑ
- Avi Silberschatz, Peter Baer Galvin and Greg Gagne, “Operating System Concepts”, 9th Edition, Wiley (2013), ISBN 978-1118093757, http://os-book.com/
- W.R. Stevens and S.A. Rago, "Advanced Programming in the UNIX Environment", 3rd edition, Addison-Wesley (2013), ISBN 978-0321637734