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

Κωδικός Μαθήματος: Ν2-3040
Εβδομαδιαίες ώρες διδασκαλίας: 4 (2Θ + 2Ε)
Πιστωτικές μονάδες: 5
Τυπικό εξάμηνο διδασκαλίας: 3ο
Κατηγορία μαθήματος: Μάθημα Ειδικής Υποδομής
Προαπαιτούμενα:  

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

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

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

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

Περιεχόμενο μαθήματος

ΘΕΩΡΙΑ:

  • Εισαγωγή στα Λειτουργικά συστήματα (ορισμός, ιστορία, βασικές έννοιες, δομήκ.α.).
  • Επικοινωνία και Συγχρονισμός Διεργασιών (ορισμός, συνθήκες ανταγωνισμού, κρίσιμα τμήματα, αμοιβαίος αποκλεισμός, σημαφόροι, παρακολουθητές κ.α.).
  • Διαχείριση ΚΜΕ (αλγόριθμοι χρονοδρομολόγησης διεργασιών στην ΚΜΕ για συστήματα ομαδικής επεξεργασίας και συστήματα αλληλεπίδρασης, μέτρα απόδοσης κ.α.).
  • Διαχείριση Μνήμης (εναλλαγή, μεταβλητές διαιρέσεις, ιδεατή μνήμη, σελιδοποίηση, αλγόριθμοι αντικατάστασης σελίδας, κατάτμηση/τεμαχισμός, υβριδικά σχήματα).
  • Διαχείριση Εισόδου/Εξόδου (αρχές υλικού και λογισμικού Ε/Ε, αλγόριθμοι χρονοδρομολόγησης κ.α.).
  • Συστήματα Αρχείων (κατηγορίες, δομές και οργάνωση αρχείων, μηχανισμοί προστασίας κ.α.).
  • Μελέτες περίπτωσης (η υποστήριξη των παραπάνω εννοιών και μηχανισμών σε σύγχρονα λειτουργικά συστήματα τύπου Windowsκαι Unix/linux).

ΕΡΓΑΣΤΗΡΙΟ:

Unix/Linux: εγκατάσταση, αρχιτεκτονική, σύστημα αρχείων, εντολές χρηστών, φίλτρα, προγραμματισμός στο κέλυφος, διαχείριση συστήματος, βασικοί μηχανισμοί ασφάλειας και προστασίας, συγγραφή και χρήση απλών και σύνθετων scripts, προγραμματισμός με τη γλώσσα awk. Ασκήσεις προσομοίωσης βασικών εννοιών. Εισαγωγή στον προγραμματισμό συστήματος και ταυτόχρονων διεργασιών (διεργασίες παιδιά, μηχανισμοί επικοινωνίας και συγχρονισμού διεργασιών).

Βιβλιογραφία
  1. Tanenbaum Α., Σύγχρονα Λειτουργικά Συστήματα, 3η έκδοση, Εκδόσεις Κλειδάριθμος ΕΠΕ, 2009.
  2. Silberschatz A., Galvin P., Gagne G., Λειτουργικά Συστήματα, 2η έκδοση, Εκδόσεις Στέλλα Παρίκου & Σία ΟΕ, 2009.
  3. Stallings W., Λειτουργικά Συστήματα, 6η έκδοση, Εκδόσεις Α. Τζιόλα & Υιοί ΑΕ, 2009.
  4. Κάβουρας I., Λειτουργικά Συστήματα, 5η έκδοση, Εκδόσεις Κλειδάριθμος, 2000.
  5. Παπακωνσταντίνου Γ., Μπιλάλης Ν., Τσανάκας Π., Λειτουργικά Συστήματα, Εκδόσεις Συμμετρία, 1997.
  6. Kernighan B., Pike R., The Unix Programming Environment, Prentice Hall, 1985.
  7. Glass G., Ables K., Unix for Programmers and Users, Prentice Hall, 1998.
  8. Stevens W.R., Unix Network Programming, Vol. 2: Interprocess Communications, 2nd Edition, Prentice Hall, 2000.

Internationalisation I18n