Είσοδος και έξοδος
Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr
Σχεδίαση υλικού
- Οι συσκευές εσόδου εξόδου μπορούν να διαχωριστούν σε:
 - Οι συσκευές ελέγχονται με τη χρήση 
ελεγκτών συσκευών (device controller) που επικοινωνούν
με την κεντρική μονάδα επεξεργασίας μέσω του διαύλου.
 - Σε μεγαλύτερα συστήματα η επικοινωνία μπορεί να γίνεται με τη χρήση
εξειδικευμένων υπολογιστών εισόδου εξόδου.
 -  Η επικοινωνία με του ελεγκτές γίνεται μέσω εντολών που στέλνονται
μέσω διαύλου εισόδου / εξόδου ή μέσω ειδικών διευθύνσεων της μνήμης.
 -  Ορισμένοι ελεγκτές για συσκευές που μεταφέρουν μεγάλο όγκο δεδομένων
υποστηρίζουν
απευθείας πρόσβαση στη μνήμη (direct memory access (DMA)).
Αυτή υλοποιείται συνήθως με τη χρήση ενδιάμεσης μνήμης στον ελεγκτή.
 -  Ορισμένοι ελεγκτές δίσκου υποστηρίζουν την 
υπερπήδηση (interleaving) τμημάτων του δίσκου έτσι ώστε
να συμβαδίζει ο χρόνος περιστροφής του δίσκου με το χρόνο ανάγνωσης των στοιχείων
από αυτόν.
 
Σχεδίαση λογισμικού
Το λογισμικό εισόδου εξόδου εξασφαλίζει:
Για την ικανοποίηση των παραπάνω ο έλεγχος εισόδου εξόδου σε ένα
λειτουργικό σύστημα χωρίζεται στα παρακάτω στρώματα:
-  Χειριστές διακοπών
 -  Οδηγοί συσκευών
 -  Λογισμικό Λ.Σ. ανεξάρτητο από τις συσκευές (ονοματολογία, προστασία)
 -  Λογισμικό επιπέδου χρήστη (ετεροχρονισμός μέσω 
διεργασίας παροχής υπηρεσιών (daemon).
 
Υλοποίηση πρόσβασης σε δίσκους
 
-  Η χρονοδρομολόγιση του βραχίονα του δίσκου μπορεί να γίνει με τους παρακάτω τρόπους: 
 - 
Πολλαπλοί δίσκοι μπορούν να χρησιμοποιηθούν παράλληλα για βελτίωση της
ταχύτητας και της αξιοπιστίας τους με βάση την τεχνολογία
 -  Πλεονάζουσα διάταξη φθηνών δίσκων (Redundant Array of Inexpensive Disks)
 -  Σφάλματα του δίσκου μπορεί να τα χειριστεί ο ελεγκτής του ή το Λ.Σ.
 -  Για τη βελτίωση της απόδοσης του δίσκου μπορεί να χρησιμοποιείται
κρυφή μνήμη στον ελεγκτή, ή από το Λ.Σ.
 -  Ειδική μορφή περιφερειακού τύπου δίσκου είναι ο δίσκος βασισμένος σε RAM.
 
Αξιοποίηση των ρολογιών
Το λειτουργικό σύστημα αξιοποιεί το ρολόι του υπολογιστή το
οποίο είναι υλοποιημένο ως ένας μετρητής για να:
-  γνωρίζει το χρόνο της ημέρας
 -  το χρονοπρογραμματισμό των διεργασιών
 -  την παρακολούθηση της χρήσης της Κ.Μ.Ε.
 -  το χειρισμό κλήσεων εγρήγορσης των χρηστών
 -  τον έλεγχο περιφερειακών που απαιτούν χρονισμό μέσω
χρονιστών επιτήρησης (watchdoc timers).
 -  τη συλλογή στατιστικών στοιχείων
 
Επικοινωνία με το χρήστη
Η επικοινωνία με το χρήστη μπορεί να γίνει μέσω:
-  σειριακών τερματικών
 -  ελεγκτών οθόνης με απευθείας πρόσβαση στη μνήμη
 -  γραφικών τερματικών δικτύου
 
Το λογισμικό εισόδου μπορεί να παρέχει 
ακατέργαστη κατάσταση λειτουργίας (raw mode) και
κατεργασμένη κατάσταση λειτουργίας (cooked mode).
Η τελευταία υποστηρίζει την αλλαγή του κειμένου και την
προβολή (echoing) των χαρακτήρων.
Βιβλιογραφία
- Andrew S. Tanenbaum
Σύγχρονα λειτουργικά συστήματα. σ. 283-329
	Εκδόσεις Παπασωτηρίου, 1993.
 
- Maurice J. Bach.
The
  Design of the UNIX Operating System, pages 312–352.
Prentice-Hall, 1986.
 
- Samuel J. Leffler,
  Marshall Kirk McKusick, Michael J. Karels, and John S. Quarterman.
The
  Design and Implementation of the 4.3BSD Unix Operating System,
  pages 167–186, 225–278.
Addison-Wesley, 1988.
 
- Andrew S. Tanenbaum.
Operating Systems: Design and Implementation, pages 110–177.
Prentice-Hall, 1987.