1 ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 11 θ Διάλεξθ Διαχείριςθ Ε/Ε
Γενικά 2 Η Είςοδοσ/Ζξοδοσ (Ε/Ε) αποτελεί ίςωσ το πιο δφςκολο ηιτθμα ςχεδίαςθσ των Λ Δφςκολο να αναπτυχκεί γενικι και ςυνεπισ λφςθ Τπάρχει πλθκϊρα ςυςκευϊν και εφαρμογϊν για τισ ςυςκευζσ αυτζσ
υςκευζσ Ε/Ε 3 Σαξινομοφνται ςε 3 κατθγορίεσ: Αναγνώςιμεσ από τον άνκρωπο: κατάλλθλεσ για τθν επικοινωνία με το χριςτθ του υπολογιςτι (π.χ.: πλθκτρολόγιο, εκτυπωτισ, κ.ά.) Αναγνώςιμεσ από τισ μθχανζσ: κατάλλθλεσ για τθν επικοινωνία με τον θλεκτρονικό εξοπλιςμό (π.χ.: οδθγοί δίςκων, αιςκθτιρεσ, κλειδιά USB) Επικοινωνίασ: κατάλλθλεσ για τθν επικοινωνία με απομακρυςμζνεσ ςυςκευζσ (π.χ.: modems)
Παράγοντεσ Διαφοροποίθςθσ (1/3) 4 Ρυκμόσ Δεδομζνων: μπορεί να υπάρχουν διαφορζσ αρκετϊν τάξεων μεγζκουσ ανάμεςα ςτουσ ρυκμοφσ μεταφοράσ δεδομζνων Εφαρμογι: θ χριςθ για τθν οποία προορίηεται θ ςυςκευι επθρεάηει το λογιςμικό και τισ πολιτικζσ του Λ και των υποςτθρικτικϊν βοθκθτικϊν προγραμμάτων (π.χ.: χρονοδρομολόγθςθ δίςκου, επίπεδα προνομίων, προτεραιότθτεσ, κ.ά.) Πολυπλοκότθτα Ελζγχου: π.χ.: ο εκτυπωτισ απαιτεί ςχετικά απλι διεπαφι ελζγχου, ενϊ ο δίςκοσ είναι πολφ πιο περίπλοκοσ
Παράγοντεσ Διαφοροποίθςθσ (2/3) 5 Μονάδεσ Μεταφοράσ: τα δεδομζνα μποροφν να μεταφερκοφν ωσ ροι bytes ι χαρακτιρων (π.χ. Ε/Ε τερματικοφ) ι ςε μεγαλφτερα blocks (π.χ. Ε/Ε δίςκου Αναπαράςταςθ Δεδομζνων: χρθςιμοποιοφνται διαφορετικά ςχιματα κωδικοποίθςθσ δεδομζνων από διαφορετικζσ ςυςκευζσ υνκικεσ φάλματοσ: θ φφςθ των ςφαλμάτων, ο τρόποσ με τον οποίο αυτά παρουςιάηονται, οι επιπτϊςεισ τουσ και το διακζςιμο εφροσ αποκρίςεων διαφζρει ςε μεγάλο βακμό από τθ μια ςυςκευι ςτθν άλλθ
Παράγοντεσ Διαφοροποίθςθσ (3/3) 6 Αυτή η ποικιλομορφία δυςκολεφει την υιοθζτηςη ομοιόμορφησ και ςυνεποφσ προςζγγιςησ για την Ε/Ε, τόςο από την οπτική γωνία του ΛΣ όςο και από την οπτική γωνία των διεργαςιών χρήςτη
Σφποι υςκευϊν Ε/Ε 7 Προςανατολιςμζνεσ ςε block Οι ςυςκευζσ αυτζσ αποκθκεφουν πλθροφορίεσ ςε blocks που ςυνικωσ ζχουν ςτακερό μζγεκοσ, ενϊ οι μεταφορζσ γίνονται ανά ζνα block τθ φορά Οι δίςκοι και οι ςυςκευζσ αποκικευςθσ USB αποτελοφν παραδείγματα τζτοιων ςυςκευϊν Προςανατολιςμζνεσ ςε ροι Οι ςυςκευζσ αυτζσ μεταφζρουν δεδομζνα ωσ ροι bytes, χωρίσ καμία δομι Παραδείγματα τζτοιων ςυςκευϊν είναι τα τερματικά, οι εκτυπωτζσ,, οι κφρεσ επικοινωνίασ, το ποντίκι και άλλεσ ςυςκευζσ δεικτοδότθςθσ
Οργάνωςθ τθσ Λειτουργίασ Ε/Ε (1/2) 8 Προγραμματιςμζνθ Ε/Ε: ο επεξεργαςτισ εκδίδει, για λογαριαςμό μιασ διεργαςίασ, εντολι Ε/Ε ςε μία μονάδα Ε/Ε. Η διεργαςία αυτι εν ςυνεχεία, προτοφ προχωριςει, βρίςκεται ςε ενεργό αναμονι για τθν ολοκλιρωςθ τθσ λειτουργίασ Άμεςθ προςπζλαςθ μνιμθσ (DMA): θ μονάδα DMA ελζγχει τθν ανταλλαγι δεδομζνων ανάμεςα ςτθν κφρια μνιμθ και κάποια μονάδα Ε/Ε. ο επεξεργαςτισ αποςτζλλει αίτθςθ μεταφοράσ block δεδομζνων ςτθ μονάδα DMA και διακόπτεται μόνο αφότου ζχει μεταφερκεί ολόκλθρο το block
Οργάνωςθ τθσ Λειτουργίασ Ε/Ε (2/2) 9 Ε/Ε οδθγοφμενθ από διακοπζσ: ο επεξεργαςτισ εκδίδει εντολι Ε/Ε για λογαριαςμό μιασ διεργαςίασ. Τπάρχουν δφο περιπτϊςεισ: Αν θ εντολι Ε/Ε τθσ διεργαςίασ δεν προκαλεί μπλοκάριςμα, τότε ο επεξεργαςτισ ςυνεχίηει να εκτελεί εντολζσ από τθ διεργαςία που εξζδωςε τθν εντολι Ε/Ε Αν θ εντολι Ε/Ε προκαλεί μπλοκάριςμα, τότε θ επόμενθ εντολι που ο επεξεργαςτισ εκτελεί προζρχεται από το Λ, το οποίο κα τοποκετιςει τθν τρζχουςα διεργαςία ςε μπλοκαριςμζνθ κατάςταςθ και κα χρονοδρομολογιςει μια άλλθ διεργαςία
Εξζλιξθ τθσ Λειτουργίασ Ε/Ε 10 Η πορεία τθσ εξζλιξθσ των υπολογιςτικϊν ςυςτθμάτων ςυνοδεφτθκε από τθν αφξθςθ τθσ πολυπλοκότθτασ και τθσ λειτουργικότθτασ των μεμονωμζνων ςτοιχείων Αρχικά, ο επεξεργαςτισ ζλεγχε άμεςα τθν περιφερειακι ςυςκευι Σϊρα πια, εκτελοφνται όλο και περιςςότερεσ λειτουργίεσ χωρίσ τθν εμπλοκι του επεξεργαςτι, γεγονόσ που βελτιϊνει τθν απόδοςθ
Άμεςθ Προςπζλαςθ Μνιμθσ (1/2) 11 Η τεχνικι DMA λειτουργεί ωσ ακολοφκωσ: Όταν ο επεξεργαςτισ επικυμεί να αναγνϊςει ι να εγγράψει ζνα block δεδομζνων, εκδίδει μια εντολι προσ τθ μονάδα DMA, αποςτζλλοντάσ τθσ τισ ακόλουκεσ πλθροφορίεσ: Σο αν απαιτείται ανάγνωςθ ι εγγραφι, χρθςιμοποιϊντασ τθ γραμμι ελζγχου ανάγνωςθσ ι εγγραφισ ανάμεςα ςτον επεξεργαςτι και τθ μονάδα DMA Σθ διεφκυνςθ τθσ ςυςκευισ Ε/Ε που εμπλζκεται, θ οποία κοινοποιείται μζςω των γραμμϊν δεδομζνων Σθν αρχικι κζςθ ςτθ μνιμθ από τθν οποία γίνεται θ ανάγνωςθ και θ αποκικευςθ, θ οποία κοινοποιείται μζςω των γραμμϊν δεδομζνων και αποκθκεφεται από τθ μονάδα DMA ςτον καταχωρθτι διευκφνςεϊν τθσ Σον αρικμό των λζξεων που πρόκειται να αναγνωςτοφν ι να εγγραφοφν, ο οποίοσ πάλι κοινοποιείται μζςω των γραμμϊν δεδομζνων και αποκθκεφεται ςτον καταχωρθτι μζτρθςθσ δεδομζνων
Άμεςθ Προςπζλαςθ Μνιμθσ (2/2) 12 τθ ςυνζχεια, ο επεξεργαςτισ ςυνεχίηει με άλλεσ διεργαςίεσ, κακϊσ τθ λειτουργία Ε/Ε τθν ζχει ανακζςει ςτθ μονάδα DMA Η μονάδα DMA μεταφζρει ολόκλθρο το block δεδομζνων, μια λζξθ τθ φορά, απευκείασ από ι προσ τθ μνιμθ, χωρίσ να μεςολαβιςει ο επεξεργαςτισ Όταν ολοκλθρϊνεται θ μεταφορά, θ μονάδα DMA αποςτζλλει ςιμα διακοπισ ςτον επεξεργαςτι ο επεξεργαςτισ εμπλζκεται μόνο ςτθν ζναρξθ και τθ λιξθ τθσ μεταφοράσ
τόχοι χεδίαςθσ Λ.. (1/3) 13 Δφο ςτόχοι ζχουν κεφαλαιϊδθ ςθμαςία κατά τθ ςχεδίαςθ τθσ υπθρεςίασ Ε/Ε: Η αποτελεςματικότθτα Η γενικότθτα
τόχοι χεδίαςθσ Λ.. (2/3) 14 Αποτελεςματικότθτα: Είναι ςθμαντικι, επειδι οι λειτουργίεσ Ε/Ε αποτελοφν ςυχνά αναςχετικό παράγοντα των υπολογιςτικϊν ςυςτθμάτων Σο βαςικό πρόβλθμα που πρζπει να αντιμετωπιςτεί είναι ότι οι ςυςκευζσ Ε/Ε είναι υπερβολικά αργζσ ςε ςφγκριςθ με τθν κφρια μνιμθ και τον επεξεργαςτι Σο πρόβλθμα αυτό αντιμετωπίηεται με τον πολυπρογραμματιςμό, ο οποίοσ επιτρζπει ςε μερικζσ εργαςίεσ να αναμζνουν λειτουργίεσ Ε/Ε, ενϊ εκτελείται κάποια άλλθ διεργαςία Επομζνωσ, οι κφριεσ προςπάκειεσ ςχεδίαςθσ Ε/Ε ζχουν αναλωκεί ςε ςχιματα βελτίωςθσ τθσ αποτελεςματικότθτασ τθσ Ε/Ε
τόχοι χεδίαςθσ Λ.. (3/3) 15 Γενικότθτα: Για χάρθ τθσ απλότθτασ και τθσ αποφυγισ ςφαλμάτων, θ διαχείριςθ όλων των ςυςκευϊν είναι επικυμθτό να πραγματοποιείται με ομοιόμορφο τρόπο, τόςο ςτον τρόπο με τον οποίο οι διεργαςίεσ αντιλαμβάνονται τισ ςυςκευζσ Ε/Ε όςο και τον τρόπο με τον οποίο το Λ διαχειρίηεται τισ ςυςκευζσ και τισ λειτουργίεσ Ε/Ε Σο βαςικό πρόβλθμα είναι θ ποικιλομορφία των χαρακτθριςτικϊν των ςυςκευϊν Η λφςθ που προτείνεται είναι θ χριςθ ιεραρχικισ, αρκρωτισ προςζγγιςθσ κατά τθ ςχεδίαςθ τθσ λειτουργίασ Ε/Ε Η προςζγγιςθ αυτι κρφβει τισ περιςςότερεσ από τισ λεπτομζρειεσ των ςυςκευϊν Ε/Ε ςε ρουτίνεσ χαμθλότερου επιπζδου, ζτςι ϊςτε οι διεργαςίεσ χριςτθ και τα ανϊτερα επίπεδα του Λ να αντιλαμβάνονται τισ ςυςκευζσ ωσ γενικζσ λειτουργίεσ, όπωσ ανάγνωςθ, εγγραφι, άνοιγμα, κλείςιμο, κλείδωμα και ξεκλείδωμα
Απομόνωςθ Ε/Ε (1/3) 16 Ασ υποκζςουμε ότι μια διεργαςία χριςτθ επικυμεί να διαβάςει blocks δεδομζνων από κάποιο δίςκο, ζνα τθ φορά, όπου κάκε block ζχει μικοσ 512 bytes Σα δεδομζνα πρόκειται να αναγνωςτοφν από περιοχι δεδομζνων εντόσ του χϊρου διευκφνςεων τθσ διεργαςίασ χριςτθ ςτθν ιδεατι κζςθ 1000 ωσ 1511 Ο πιο απλόσ τρόποσ με τον οποίο μπορεί να πραγματοποιθκεί αυτό είναι μζςω τθσ εκτζλεςθσ εντολισ Ε/Ε ςτθ μονάδα δίςκου και κατόπιν αναμονισ, ϊςτε τα δεδομζνα να γίνουν διακζςιμα
Απομόνωςθ Ε/Ε (2/3) 17 τθν προςζγγιςθ αυτι υπάρχουν 2 προβλιματα: 1. Σο πρόγραμμα παραμζνει ςε αναμονι περιμζνοντασ τθν ολοκλιρωςθ τθσ ςχετικά αργισ Ε/Ε 2. Αυτι θ προςζγγιςθ παρεμβαίνει ςτισ αποφάςεισ εναλλαγισ του Λ Οι ιδεατζσ κζςεισ 1000 ωσ 1511 πρζπει να παραμείνουν ςτθν κφρια μνιμθ κατά τθ διάρκεια μεταφοράσ του block, διαφορετικά μπορεί να χακοφν κάποια δεδομζνα Αν χρθςιμοποιείται ςελιδοποίθςθ, τότε πρζπει να κλειδωκεί ςτθ μνιμθ τουλάχιςτον θ ςελίδα που περιζχει τισ κζςεισ ςτόχουσ είναι αδφνατθ θ πλιρθσ εναλλαγι τθσ διεργαςίασ, ακόμα και αν το επικυμεί το Λ Επίςθσ, υπάρχει ο κίνδυνοσ του αδιεξόδου, κακϊσ αν μια διεργαςία εκδϊςει εντολι Ε/Ε, αναςταλεί αναμζνοντασ το αποτζλεςμα και ςτθ ςυνζχεια, εκτοπιςτεί πριν τθν ζναρξθ τθσ λειτουργίασ, θ διεργαςία μπλοκάρεται αναμζνοντασ το γεγονόσ Ε/Ε και θ λειτουργία Ε/Ε μπλοκάρεται αναμζνοντασ τθν εναλλαγι τθσ διεργαςίασ ςτθ μνιμθ θ μνιμθ χριςτθ που εμπλζκεται ςτθ λειτουργία Ε/Ε πρζπει να κλειδωκεί ςτθν κφρια μνιμθ Οι ίδιεσ ςυνκικεσ ιςχφουν και για τθ λειτουργία εξόδου
Απομόνωςθ Ε/Ε (3/3) 18 Για τθν αποφυγι αυτισ τθσ επιβάρυνςθσ και τθσ αναποτελεςματικότθτασ, είναι πολλζσ φορζσ ςυμφζρουςα θ εκτζλεςθ μεταφορϊν ειςόδου πριν τθν πραγματοποίθςθ των αιτιςεων και θ μεταφορά εξόδου λίγο χρόνο μετά τθν πραγματοποίθςθ τθσ αίτθςθσ Η τεχνική αυτή είναι γνωςτή ωσ απομόνωςθ (buffering)
Σφποι απομόνωςθσ (1/5) 19 Μονός Απομονωτής: Είναι ο πιο απλόσ τφποσ υποςτιριξθσ που μπορεί να παράςχει το Λ Όςον αφορά ςτισ ςυςκευζσ που είναι προςανατολιςμζνεσ ςε block, το ςχιμα αυτό λειτουργεί ωσ ακολοφκωσ: Οι μεταφορζσ ειςόδου πραγματοποιοφνται ςτον απομονωτι του ςυςτιματοσ όταν μια μεταφορά ολοκλθρϊνεται, θ διεργαςία μετακινεί το block ςτο χϊρο χριςτθ και αμζςωσ μετά ηθτά κάποιο άλλο block Αυτό ονομάηεται πρόωρθ ανάγνωςθ ι αναμενόμενθ είςοδοσ και πραγματοποιείται με τθν προςδοκία ότι το block τελικά κα χρειαςτεί λογικι υπόκεςθ, κακϊσ θ προςπζλαςθ των δεδομζνων γίνεται ςυνικωσ ακολουκιακά Για τισ μεταφορζσ εξόδου, όταν τα δεδομζνα μεταδίδονται ςε ςυςκευι, πρϊτα αντιγράφονται από το χϊρο χριςτθ ςτον απομονωτι ςυςτιματοσ, από τον οποίο τελικά εγγράφονται θ διεργαςία που υποβάλλει τθν αίτθςθ είναι πλζον ελεφκερθ να ςυνεχίςει ι να εναλλαχκεί, ανάλογα με τθν περίςταςθ
Σφποι απομόνωςθσ (2/5) 20 Μονός Απομονωτής : Όςον αφορά ςτθν Ε/Ε που είναι προςανατολιςμζνθ ςε ροι, το ςχιμα μονισ απομόνωςθσ μπορεί να χρθςιμοποιθκεί είτε: ε λειτουργία μιασ γραμμισ τθ φορά (π.χ.: τερματικά κφλιςθσ) ε λειτουργία ενόσ byte τθ φορά (π.χ.: αιςκθτιρεσ και ελεγκτζσ)
Σφποι απομόνωςθσ (3/5) 21 Μονός Απομονωτής: Θετικά: Αυξάνει τθν ταχφτθτα του ςυςτιματοσ ςε ςφγκριςθ με περιπτϊςεισ όπου δεν υπάρχει απομόνωςθ Η διεργαςία χριςτθ μπορεί να επεξεργάηεται κάποιο block δεδομζνων, ενϊ διαβάηεται το επόμενο block Αρνητικά: Περιπλζκει τθ λογικι του Λ πρζπει να καταγράφει τθν ανάκεςθ των απομονωτϊν ςυςτιματοσ ςτισ διεργαςίεσ χριςτθ
Σφποι απομόνωςθσ (4/5) 22 Διπλός Απομονωτής: Η βελτίωςθ τθσ μονισ απομόνωςθσ μπορεί να επιτευχκεί με τθν ανάκεςθ δφο απομονωτϊν ςυςτιματοσ ςτθ λειτουργία θ τεχνικι αυτι είναι γνωςτι ωσ διπλι απομόνωςθ ι ωσ εναλλαγι απομόνωςθσ Μια διεργαςία πλζον μεταφζρει δεδομζνα ςε (ι από) ζναν απομονωτι, ενϊ το Λ αδειάηει (ι γεμίηει) τον άλλο
Σφποι απομόνωςθσ (5/5) 23 Κυκλικός Απομονωτής: Σο ςχιμα διπλοφ απομονωτι μπορεί να ομαλοποιεί τθ ροι δεδομζνων ανάμεςα ςε μια ςυςκευι Ε/Ε και μια διεργαςία Αν ςτο επίκεντρο του ενδιαφζροντοσ βρίςκεται μια ςυγκεκριμζνθ διεργαςία, τότε κα ιταν κεμιτό θ λειτουργία Ε/Ε να μπορεί να ςυμβαδίηει με τθ διεργαςία Η διπλι απομόνωςθ μπορεί να αποδειχκεί ανεπαρκισ, αν θ διεργαςία εκτελεί γριγορουσ καταιγιςμοφσ Ε/Ε Σο πρόβλθμα μπορεί πολλζσ φορζσ να επιλυκεί χρθςιμοποιϊντασ περιςςότερουσ από δφο απομονωτζσ, όπου θ ςυλλογι των απομονωτϊν ονομάηεται κυκλικόσ απομονωτισ
Παράμετροι Απόδοςθσ Δίςκου (1/2) 24 Όταν ο οδθγόσ δίςκου λειτουργεί, ο δίςκοσ περιςτρζφεται με ςτακερι ταχφτθτα Για να πραγματοποιθκεί μια ανάγνωςθ ι εγγραφι, θ κεφαλι πρζπει να είναι τοποκετθμζνθ ςτο επικυμθτό ίχνοσ και ςτθν αρχι του επικυμθτοφ τομζα του ίχνουσ αυτοφ Ο χρόνοσ που χρειάηεται για να τοποκετθκεί θ κεφαλι ςτο ίχνοσ είναι γνωςτόσ ωσ χρόνοσ αναηιτθςθσ ε κάκε περίπτωςθ, μόλισ επιλζγεται το ίχνοσ, ο ελεγκτισ δίςκου βρίςκεται ςε αναμονι μζχρι ο περιςτρεφόμενοσ κατάλλθλοσ τομζασ να ευκυγραμμιςτεί με τθν κεφαλι Ο χρόνοσ που χρειάηεται προκειμζνου θ αρχι του τομζα να προςεγγίςει τθν κεφαλι είναι γνωςτόσ ωσ κακυςτζρθςθ περιςτροφισ ι λανκάνων χρόνοσ περιςτροφισ
Παράμετροι Απόδοςθσ Δίςκου (2/2) 25 Σο άκροιςμα του χρόνου αναηιτθςθσ (εάν υπάρχει) και τθσ κακυςτζρθςθσ περιςτροφισ ιςοδυναμεί με το χρόνο πρόςβαςθσ, ο οποίοσ είναι ο χρόνοσ που χρειάηεται προκειμζνου θ κεφαλι να τοποκετθκεί ςτθν επικυμθτι κζςθ για ανάγνωςθ ι εγγραφι Μόλισ θ κεφαλι βρεκεί ςτθν επικυμθτι κζςθ, εκτελείται θ λειτουργία ανάγνωςθσ ι εγγραφισ, κακϊσ ο τομζασ μετακινείται κάτω από τθν κεφαλι (τμιμα μεταφοράσ δεδομζνων τθσ λειτουργίασ) Ο χρόνοσ που απαιτείται για τθ μεταφορά είναι γνωςτόσ ωσ χρόνοσ μεταφοράσ Σζλοσ, υπάρχουν και αρκετζσ κακυςτεριςεισ ουράσ που ςυνικωσ ςχετίηονται με μια λειτουργία Ε/Ε
Πολιτικζσ Χρονοδρομολόγθςθσ Δίςκου 26 Ασ εξετάςουμε τθ ςυνικθ κατάςταςθ όπου το Λ διατθρεί μια ςειρά αιτιςεων για κάκε ςυςκευι Ε/Ε Οι πιο γνωςτοί αλγόρικμοι χρονοδρομολόγθςθσ είναι:
Κρυφι Μνιμθ 27 Ο όροσ αναφζρεται ςε μνιμεσ που είναι μικρότερεσ και γρθγορότερεσ από τθν κφρια μνιμθ και τοποκετοφνται ανάμεςα ςτθν κφρια μνιμθ και τον επεξεργαςτι Μειϊνουν το μζςο χρόνο προςπζλαςθσ μνιμθσ, αξιοποιϊντασ τον κανόνα τθσ τοπικότθτασ Η κρυφι μνιμθ περιζχει ζνα αντίγραφο κάποιων από τουσ τομείσ του δίςκου Όταν πραγματοποιείται κάποια αίτθςθ Ε/Ε για ζνα ςυγκεκριμζνο τομζα, γίνεται ζλεγχοσ για να διαπιςτωκεί εάν ο τομζασ βρίςκεται ςτθν κρυφι μνιμθ Εάν ναι, τότε θ αίτθςθ ικανοποιείται μζςω τθσ κρυφισ μνιμθσ Εάν όχι, τότε ο τομζασ που ηθτικθκε μεταφζρεται από το δίςκο ςτθν κρυφι μνιμθ
Βιβλιογραφία 28 Stallings, W. (2017). Λειτουργικά Συςτήματα: Αρχζσ Σχεδίαςησ. Εκδόςεισ Σηιόλα: Θεςςαλονίκθ