3464 Λειτουργικά Συστήματα

Υποχρεωτικό Μάθημα Πυρήνα, Δ’ εξάμηνο, 8 μονάδες ECTS

Διδάσκων: Καθηγητής Α’ βαθμίδας Γεώργιος Ξυλωμένος

URL: https://eclass.aueb.gr/courses/INF168/

Περιεχόμενο

Βασικές έννοιες λειτουργικών συστημάτων, δομή λειτουργικών συστημάτων, ιστορική αναδρομή. Ταυτόχρονες διεργασίες, νήματα εκτέλεσης, αμοιβαίος αποκλεισμός, διαχείριση και χρονοπρογραμματισμός διεργασιών. Επικοινωνία διεργασιών και συγχρονισμός νημάτων. Διαχείριση μνήμης, χώροι διευθύνσεων, εικονική μνήμη, σελιδοποίηση και τεμαχισμός, υλικό διαχείρισης μνήμης. Αρχεία και ευρετήρια, διαχείριση χώρου αποθήκευσης, υλοποίηση συστημάτων αρχείων. Διαχείριση εισόδου/εξόδου, διεπαφή με τον χρήστη, διαχείριση ενέργειας. Αδιέξοδα και διαχείρισή τους. Ασφάλεια λειτουργικών συστημάτων, κρυπτογραφία, μηχανισμοί προστασίας, απειλές ασφάλειας, τρόποι αντιμετώπισης απειλών. Μελέτη περίπτωσης: LINUX και POSIX/UNIX. Εισαγωγή στη γλώσσα C, προγραμματισμός σε επίπεδο διεργασιών και νημάτων.

Μαθησιακά Αποτελέσματα

Μετά την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές θα είναι σε θέση:

  • Να προσδιορίζουν τις βασικές έννοιες των λειτουργικών συστημάτων (διεργασία, νήμα, μνήμη, συσκευή, αρχείο) και να περιγράφουν τους διάφορους τρόπους δόμησής τους (πυρήνας, μικροπυρήνας, ιεραρχία, εικονικοποίηση).
  • Να διακρίνουν διαφορετικές μεθόδους οργάνωσης και υλοποίησης των βασικών συστατικών των λειτουργικών συστημάτων (μονάδων εκτέλεσης, συστημάτων μνήμης, συσκευών και συστημάτων αρχείων).
  • Να αναγνωρίζουν τις διάφορες μορφές απειλών ασφάλειας για τα λειτουργικά συστήματα και να αξιολογούν τις πιθανές μεθόδους αντιμετώπισής τους.
  • Να συνθέτουν προγράμματα χαμηλού επιπέδου τα οποία να αξιοποιούν τον ταυτοχρονισμό και τις κλήσεις συστήματος ενός τυπικού συστήματος POSIX/UNIX.

Προαπαιτούμενα Μαθήματα

Για να εγγραφεί στο μάθημα, ο φοιτητής πρέπει να έχει εξεταστεί επιτυχώς σε προηγούμενο εξάμηνο είτε στο μάθημα «Εισαγωγή στον Προγραμματισμό Υπολογιστών» είτε στο μάθημα «Προγραμματισμός Υπολογιστών με JAVA». Συνιστάται ο φοιτητής να έχει εξεταστεί επιτυχώς σε προηγούμενο εξάμηνο και στα δύο άνω μαθήματα, καθώς και στα μαθήματα «Προγραμματισμός Υπολογιστών με C++» και «Οργάνωση Συστημάτων Υπολογιστών».

Συνιστώμενη Βιβλιογραφία

  • Σύγχρονα Λειτουργικά Συστήματα, A. S. Tanenbaum (μετάφραση από αγγλικό πρωτότυπο), 3η έκδοση, Κλειδάριθμος, 2009.
  • Λειτουργικά Συστήματα, Ι. Κ. Κάβουρας, 7η έκδοση, Κλειδάριθμος, 2009.
  • Λειτουργικά Συστήματα, A. Silberschatz, P. Galvin, G. Gagne (μετάφραση από αγγλικό πρωτότυπο), 9η έκδοση, Μ. Γκιούρδας, 2013.

Διδακτικές και Μαθησιακές Μέθοδοι

Διαλέξεις (2 διαλέξεις των 2 ωρών εβδομαδιαίως), φροντιστήρια (1 φροντιστήριο των 2 ωρών ανά 2 εβδομάδες), εργαστήρια (1 εργαστήριο των 2 ωρών ανά 2 εβδομάδες), και προγραμματιστικές εργασίες κατ’ οίκον.

Μέθοδοι Αξιολόγησης/Βαθμολόγησης

Ο τελικός βαθμός ισούται με τον βαθμό της γραπτής τελικής εξέτασης (η οποία έχει μέγιστο βαθμό το 7), αν αυτός είναι κάτω από 3. Αν ο βαθμός της γραπτής τελικής εξέτασης είναι από 3 και άνω, προσαυξάνεται με έως και 3 μονάδες, με βάση τον βαθμό των προγραμματιστικών εργασιών κατ’ οίκον του μαθήματος.