ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

Κωδικός Μαθήματος:     402
Εξάμηνο διδασκαλίας:     4ο Εξάμηνο

Σκοπός του μαθήματος
Η παρουσίαση των βασικών εννοιών και της δομής των λειτουργικών συστημάτων, των προβλημάτων που καλούνται να επιλύσουν καθώς και των αρχών που διέπουν τη σχεδίαση τους. Η παρουσίαση των στοιχείων του λειτουργικού συστήματος που το καθιστούν μια ιδεατή μηχανή καθώς και των εργαλείων του που επιτρέπουν την αξιοποίηση των πόρων του υλικού.

Στόχος του μαθήματος
Η κατανόηση εκ μέρους των φοιτητών των ζητημάτων που άπτονται της εισαγωγής θεμελιωδών εννοιών των λειτουργικών συστημάτων (διεργασία, διαχείριση της μνήμης, διαχείριση αρχείων, λειτουργίες εισόδου / εξόδου). Η κατανόηση της διαφοροποίησης των εννοιών αυτών ανάλογα με τον τύπο του Η/Υ και τη χρήση του. Η απόκτηση της δυνατότητας χειρισμού των εννοιών σε επίπεδο προγραμματισμού του λειτουργικού συστήματος (system programming). Η κατανόηση ειδικών θεμάτων που αφορούν στις λειτουργίες εισόδου/εξόδου, της διαχείρισης συσκευών υλικού (device drivers), της λειτουργίας σε περιβάλλον δικτύου, σε συνθήκες πραγματικού χρόνου ή/και αυξημένων αναγκών πολυεπεξεργασίας κλπ. Η ευαισθητοποίηση στο ζήτημα εξειδίκευσης των χαρακτηριστικών του λειτουργικού συστήματος ανάλογα με το περιβάλλον λειτουργίας του Η/Υ και το είδος των εφαρμογών που θα υποστηρίζει.

Περιγραφή του μαθήματος
Εισαγωγή στις διεργασίες και πολυεπεξεργασία, ειδικά ζητήματα όπως επεξεργασία πολλαπλών νημάτων (πολυνηματική) (multithreading), συμμετρική πολυεπεξεργασία (symmetric multiprocessing) και μικροπυρήνες (microkernels). Διαδιεργασιακή επικοινωνία, συνθήκες ανταγωνισμού και συνύπαρξης (concurrency) διεργασιών, αμοιβαίος αποκλεισμός (mutual exclusion) ενεργός αναμονή και αδιέξοδα (deadlock), σημαφόροι και μεταβίβαση μηνύματος. Ζητήματα και τεχνικές διαχείρισης της μνήμης εναλλαγή, σελιδοποίηση, ιδεατή μνήμη, αλγόριθμοι αντικατάστασης σελίδων και κατάτμηση. Χρονοπρογραμματισμός διεργασιών: Λειτουργίες Εισόδου/Εξόδου. Διαχείριση Αρχείων. Λειτουργία σε περιβάλλον δικτύου. Απαιτήσεις για επεξεργασία σε πραγματικό χρόνο. Εγκατάσταση και διαχείριση συσκευών.
Εργαστήριο Μαθήματος: Εμπεριστατωμένη μελέτη των θεωρητικών εννοιών και των μεθόδων με εφαρμογή τους στο περιβάλλον του λειτουργικού συστήματος UNIX. Εκτός της εξοικείωσης με το περιβάλλον και τις βασικές λειτουργίες του UNIX η πρακτική εξάσκηση στοχεύει να δείξει τις δυνατότητες «επέμβασης» στο λειτουργικό σύστημα μέσω του κελύφους (Bourne shell ή C-shell) και του περιβάλλοντος προγραμματισμού του.

Ενδεικτική Βιβλιογραφία
  1. Operating Systems: Internals and Design Principles, 4th edition, William Stallings, Prentice Hall, 2000 (Course book)
  2. Λειτουργικά Συστήματα, Μέρος Ι: Αρχές Λειτουργίας, Γ.Κ. Παπακωνσταντίνου, Ν.Α. Μπιλάλης, Π.Δ. Τσανάκας, Εκδόσεις Συμμετρία, 1991
  3. Σύγχρονα Λειτουργικά Συστήματα Α, Tanenbaum A., Εκδόσεις Παπασωτηρίου
  4. Modern Operating Systems, 2nd Edition, Tanenbaum A., Prentice Hall, 2001.
  5. Operating System Concepts, 6th Edition, Silberschatz A., Galvin P. and Gagne G., John Wiley & Sons, 2001
  6. UNIX: Θεωρία & Πράξη, Κώστας Ν. Γιαλελής, Εκδόσεις Νέων Τεχνολογιών
  7. Το Περιβάλλον Προγραμματισμού UNIX; Brian W. Kernighan, Rob Pike, Εκδόσεις Κλειδάριθμος
  8. Operating Systems: Design And Implementation, 2nd edition, Andrew S. Tanenbaum, Albert S. Woodhull, Prentice Hall, 1997
  9. Learning UNIX Operating System, 5th edition, Jerry D. Peek, Grace Todino, John Strang, O Reilly & Associates, 2002
  10. Principes des systèmes d’exploitation des ordinateurs, S. Krakowiak, DUNOD-informatique, 1985