Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεLaomedon Zografos Τροποποιήθηκε πριν 10 χρόνια
1
Συσκευές Εισόδου / Εξόδου (Ε/Ε) Input/Output (I/O)
Πως το ΛΣ χειρίζεται τις συσκευές Ε/Ε
2
Περίληψη Ρόλος του ΛΣ Κατηγοριοποίηση συσκευών Υλικό (Hardware)
Direct Memory Access (DMA) Λογισμικό (Software) Προσωρινή αποθήκευση (buffering) Δίσκοι (Disks) Χρονοπρογραμματισμός δίσκων Εύρωστη Αποθήκευση Χρονόμετρα Τερματικά Χαρακτήρων και Διεπαφές GUI Διαχείριση Ενέργειας
3
Ρόλος του ΛΣ Ένας από τους κυριότερους ρόλους του ΛΣ είναι η διαχείριση των συσκευών Ε/Ε Πρέπει να μπορεί να επικοινωνεί με τις συσκευές, Να τους στέλνει εντολές Να παίρνει απαντήσεις τις οποίες να μπορεί να αποκωδικοποιεί Να ανταποκρίνεται σε σήματα διακοπής (interrupts) Να αντιδρά σε περιπτώσεις σφαλμάτων Το ΛΣ έχει δύο βασικούς ρόλους Παρέχει εύκολη πρόσβαση στις συσκευές Ε/Ε με τυποποιημένες εντολές Διαχειρίζεται τις συσκευές έτσι που να μεγιστοποιεί την απόδοση τους
4
Ελεγκτές Συσκευών (Device Controllers)
Διαβάζει μια σειρά από χαρακτήρες και τους μετατρέπει σε κάποιο σήμα το οποίο εμφανίζει τον χαρακτήρα στη οθόνη Bus Monitor Ελέγχει την κίνηση του δίσκου και μετατρέπει μια σειρά από bits σε ένα μπλοκ με τον δεδομένο αριθμό λέξεων (words)
5
Κατηγοριοποίηση Συσκευών Ε/Ε
Η διαχείριση των συσκευών Ε/Ε είναι το πιο πολύπλοκο κομμάτι του ΛΣ. Το ΛΣ πρέπει να υποστηρίζει ένα μεγάλο αριθμό συσκευών οι οποίες έχουν σημαντικές διαφορές μεταξύ τους. Ρυθμός δεδομένων (data rate) Πληκτρολόγιο ~100bps, … σκληρός δίσκος ~100Mbps, … Εφαρμογή (application) Ένας δίσκος για αρχεία έχει διαφορετικές απαιτήσεις από έναν ο οποίος χρησιμοποιείται μόνο για backup. Πολυπλοκότητα του ελεγκτή (controller complexity) Ο εκτυπωτής δεν χρειάζεται πολύπλοκο έλεγχό, όμως ο έλεγχος του δίσκου γίνεται πολύ πιο πολύπλοκος Η πολυπλοκότητα του ελεγκτή μπορεί να κρυφτεί μέσα στη μονάδα που εξειδικεύεται στον έλεγχο της συσκευής
6
Κατηγοριοποίηση Συσκευών Ε/Ε
Διαφορές μεταξύ συσκευών Ε/Ε. Μονάδα μεταφοράς δεδομένων Σειριακή μεταφορά (serial streams or character devices) ή μεγάλα κομμάτια (block devices) Κωδικοποίηση (data encoding) Πως αντιπροσωπεύονται χαρακτήρες και άλλα δεδομένα στις διάφορες συσκευές. Συνθήκες Σφαλμάτων (error conditions and reporting) Πως κωδικοποιούνται τα διάφορα σφάλματα και πως μεταφέρονται στο ΛΣ για περαιτέρω δράση.
7
Πρόσβαση σε Συσκευές Ε/Ε
Κάθε ελεγκτής έχει ορισμένους καταχωρητές τους οποίους χρησιμοποιεί για να επικοινωνήσει με τον επεξεργαστή Μεταφορά εντολών και δεδομένων Επίσης κάθε ελεγκτής μπορεί να έχει ενδιάμεση μνήμη (buffer) για τη μεταφορά δεδομένων Πως ο επεξεργαστής επικοινωνεί με τον ελεγκτή της συσκευής (με τους καταχωρητές ή την ενδιάμεση μνήμη);
8
Επικοινωνία Επεξεργαστή και Ελεγκτών
Χρησιμοποιώντας εξειδικευμένες εντολές εισόδου εξόδου (π.χ., IN ή OUT) και ένα σύνολο από πύλες (ports) Σε αυτή την περίπτωση υπάρχουν δύο διαφορετικοί χώροι διευθύνσεων (address spaces) Μνήμη Πύλες Ε/Ε Όλα τα παλαιότερα συστήματα χρησιμοποιούσαν αυτή την αρχιτεκτονική Memory-Mapped I/O: Σε κάθε καταχωρητή μιας συσκευής κατανέμεται μια διεύθυνση μνήμης, οπόταν οι ίδιες ακριβώς εντολές που χρησιμοποιούνται για πρόσβαση στη μνήμη, χρησιμοποιούνται και για πρόσβαση στους καταχωρητές των συσκευών Ε/Ε. Υβριδικό μοντέλο στο οποίο κάποιες συσκευές χρησιμοποιούν διευθύνσεις μνήμης και κάποιες εξειδικευμένες πύλες Ο επεξεργαστής Pentium χρησιμοποιεί αυτή την αρχιτεκτονική
9
Memory Mapped I/O Πλεονεκτήματα Μειονεκτήματα
Δεν χρειάζεται εξειδικευμένος κώδικας (assembly) για την πρόσβαση στις συσκευές. Οι καταχωρητές εμφανίζονται σαν απλές μεταβλητές Εύκολη προστασία αφού η διεύθυνση της συσκευής δεν μπαίνει στο χώρο του χρήστη. Κάθε εντολή που μπορεί να χρησιμοποιηθεί για πρόσβαση στη μνήμη μπορεί να χρησιμοποιηθεί επίσης και για πρόσβαση στις συσκευές Ε/Ε. Μειονεκτήματα Caching δεν μπορεί να δουλέψει και πρέπει να απενεργοποιηθεί για τις διευθύνσεις που αναφέρονται σε συσκευές Ε/Ε. Γιατί; Χρειάζεται περισσότερη προσπάθεια για να βρεθεί τι πρέπει να ανταποκριθεί σε μια εντολή (η μνήμη ή κάποια συσκευή;) Πολλές συσκευές είναι πιο αργές από την κύρια μνήμη Αρχιτεκτονικές με 2 ή περισσότερες αρτηρίες
10
Direct Memory Access (DMA)
Ο σκοπός του είναι να απελευθερώσει τον επεξεργαστή από τη χρονοβόρα διαδικασία της μεταφορά δεδομένων από και προς τη μνήμη Το DMA είναι ένας εξειδικευμένος επεξεργαστής ο οποίος δέχεται κάποιες εντολές Τη διεύθυνση της συσκευής Την αρχική διεύθυνση στην οποία βρίσκονται τα δεδομένα Τον αριθμό των bytes ή words που χρειάζονται Κάποιες παραμέτρους ελέγχου (π.χ., read/write) Στη συνέχεια αναλαμβάνει την μεταφορά των δεδομένων από και προς την κύρια μνήμη, Μόλις ολοκληρωθεί η διαδικασία τότε στέλνει σήμα διακοπής στον επεξεργαστή.
11
Direct Memory Access (DMA)
CPU DMA Disk Controller Main Memory Disk CPU Program DMA DMA requests Transfer Data Trans. Address Wrd Count Strt Add. Control Buffer Copy Interrupt ACK Πιο πολύπλοκα DMA είναι δυνατόν να εκτελούν πολλαπλές μεταφορές
12
Direct Memory Access (DMA)
To DMA μπορεί να μεταφέρει ένα byte ή ένα μπλοκ από δεδομένα κάθε φορά Εάν μεταφέρει ένα byte κάθε φορά (cycle stealing) τότε για κάθε μεταφορά πρέπει να πάρει τον έλεγχο της αρτηρίας (bus) πριν αρχίσει η μεταφορά και να την κρατήσει μέχρι μα τελειώσει η μεταφορά. Εάν μεταφέρει ένα μπλοκ από δεδομένα (burst mode) τότε για όλη τη χρονική διάρκεια της μεταφοράς (η οποία μπορεί να διαρκέσει και αρκετή ώρα) δεν μπορεί ο επεξεργαστής να χρησιμοποιήσει την αρτηρία. Γιατί η μεταφορά των δεδομένων γίνεται σε 2 στάδια, πρώτα στην ενδιάμεση μνήμη του ελεγκτή και μετά στην κύρια μνήμη; Ο ελεγκτής ελέγχει την ορθότητα των δεδομένων (checksum) Η μεταφορά είναι συνεχής και υπάρχει περίπτωση να πρέπει να διακοπεί η μεταφορά αφού η αρτηρία πρέπει να χρησιμοποιηθεί
13
Σήματα Διακοπής Κάθε συσκευή μπορεί να στείλει ένα σήμα διακοπής στον ελεγκτή σημάτων διακοπής Εάν ο ελεγκτής δεν είναι ήδη απασχολημένος με κάποιο άλλο σήμα τότε το προωθεί στον επεξεργαστή Ο επεξεργαστής μπορεί να έχει διαφορετικές ρουτίνες (υλικού ή λογισμικού) οι οποίες εκτελούν το κάθε σήμα διακοπή. Ο επεξεργαστή ενημερώνει τον ελεγκτή ότι έλαβε το σήμα έτσι που ο ελεγκτής να μπορεί να προχωρήσει στο επόμενο σήμα.
14
Σήματα Διακοπής Ποιο είναι το πρώτο πράγμα που πρέπει να κάνει ο επεξεργαστής μόλις λάβει ένα σήμα διακοπής; Να αποθηκεύσει τους καταχωρητές! Που αποθηκεύονται οι καταχωρητές; Στη στοίβα (stack) του προγράμματος που τρέχει; Υπάρχει περίπτωσή η εφαρμογή να έχει κάποιο πρόβλημα. Υπάρχει περίπτωση η σελίδα στην οποία βρίσκεται η στοίβα να έχει μόλις γεμίσει και να χρειάζεται να φορτωθεί μια νέα σελίδα από την εικονική μνήμη. Στη στοίβα του πυρήνα; Χρειάζεται να υπάρξει εναλλαγή από το χώρο του χρήστη στο χώρο του πυρήνα (context switching). Επεξεργαστές με τεχνολογία pipeline Είναι δύσκολο να βρούμε πια ήταν η τελευταία εντολή που εκτελέσθηκε Για να λυθεί το πρόβλημα πρέπει να αποθηκεύονται πολλές πληροφορίες (κατάσταση επεξεργαστή) στη στοίβα με αποτέλεσμα ή διαχείριση σημάτων να γίνεται αρκετά αργή.
15
Λογισμικό για Συσκευές Ε/Ε
Στόχοι του λογισμικού Λογισμικό ανεξάρτητο από την συγκεκριμένη συσκευή (device independence) Π.χ πρόσβαση σε αρχεία στο δίσκο, CD-ROM ή floppy drive Ομοιόμορφη ονοματοδωσία (uniform naming) Το όνομα του αρχείου δεν πρέπει να εξαρτάται από τη συσκευή Διαχείριση Σφαλμάτων Τα περισσότερα σφάλματα συμβαίνουν στις συσκευές Ε/Ε Σύγχρονη και Ασύγχρονη μεταφορά δεδομένων Busy waiting (σύγχρονη): Ο επεξεργαστής δίνει μια εντολή στη συσκευή και ελέγχει συνέχεια μέχρι να εκτελεσθεί η εντολή Σήματα Διακοπής (interrupts) (ασύγχρονη): Ο επεξεργαστής δίνει την εντολή και αρχίζει κάτι καινούργιο μέχρι που να εκτελεσθεί η εντολή οπόταν θα λάβει κάποιο σήμα διακοπής Direct Memory Access (ασύγχρονη): ‘Όπως το πιο πάνω, απλά ομαδοποιούνται πολλές εντολές μαζί
16
Ανεξάρτητο Λογισμικό ΛΣ
Επίπεδα Λογισμικού Για να επιτευχθεί ο στόχος για όσο το δυνατό πιο ανεξάρτητο λογισμικό από τις συσκευές, το λογισμικό των συσκευών οργανώνεται σε διάφορα επίπεδα (στρώματα, layers) Κάθε επίπεδο παρέχει κάποιες υπηρεσίες το αμέσως πιο πάνω επίπεδο. Υπάρχει σχετική ανεξαρτησία μεταξύ των επιπέδων οπόταν μια αλλαγή σε ένα επίπεδο δεν επηρεάζει τον κώδικα στα υπόλοιπα Υλικό (Hardware) Interrupt Handler Οδηγός Συσκευής Device Driver Ανεξάρτητο Λογισμικό ΛΣ Λογισμικό Χρήστη
17
Interrupt Handler Ελέγχει τις πρώτες λειτουργίες που πρέπει να γίνουν μόλις συμβεί το σήμα διακοπής Αποθηκεύονται καταχωρητές Αρχικοποιείται το περιβάλλον (context) στο οποίο θα τρέξει η διεργασία ελέγχου του σήματος διακοπής Αρχικοποίηση της νέας στοίβας Επιβεβαιώνεται το σήμα διακοπής έτσι που ο ελεγκτής να είναι έτοιμος να δεχτεί το επόμενο σήμα Επιλέγεται η επόμενη διεργασία που θα τρέξει Αρχικοποιείται το περιβάλλον της επόμενης διεργασίας Φορτώνεται και τρέχει η επόμενη διεργασία.
18
Οδηγός Συσκευής (Device Driver)
Ο οδηγός της συσκευής συμπεριλαμβάνει το κώδικα που είναι υπεύθυνος για τη σωστή λειτουργία και τον έλεγχο της συγκεκριμένης συσκευής. Συνήθως παρέχεται από τον κατασκευαστή της συσκευής Υπάρχουν διαφορετικές εκδόσεις για κάθε ΛΣ
19
Οδηγός Συσκευής (Device Driver)
Παρέχει μια τυποποιημένη διεπαφή η οποία χρησιμοποιείται για την επικοινωνία της συσκευής με το υπόλοιπο ΛΣ Ο οδηγός δέχεται εντολές (υψηλότερου επιπέδου, π.χ., open, read, write) από το πιο πάνω επίπεδο και δίνει μια σειρά εντολών (χαμηλότερου επιπέδου) στον ελεγκτή της συσκευής οι οποίες διεκπεραιώνουν την εντολή του υψηλότερου επιπέδου. Εάν χρειαστεί ο οδηγός περνά πληροφορίες πίσω στο ΛΣ Δύο γενικοί τύποι οδηγών: Block vs Character devices Ο ελεγκτής είναι εξοπλισμένος με καταχωρητές στους οποίους ο οδηγός γράφει τις εντολές και από τους οποίους διαβάζει τυχόν απαντήσεις ή κωδικούς σφαλμάτων
20
Λογισμικό Ε/Ε Ανεξάρτητο από τη Συσκευή
Ομοιόμορφη διεπαφή για όλες τις συσκευές Όλοι οι οδηγοί πρέπει να υλοποιούν το ίδια σύνολο από ρουτίνες (π.χ., open, read, write). Προσωρινή Αποθήκευση (Buffering) Για πιο αποδοτική λειτουργία των συσκευών Ε/Ε πληροφορίες από και προς τις συσκευές μπορεί να αποθηκεύονται σε ενδιάμεση μνήμη είτε στον πυρήνα είτε στο χώρο του χρήστη. Εάν οι πληροφορίες αποθηκεύονται σε πολλές προσωρινές μνήμες, τότε υπάρχει περίπτωση η επικοινωνία να γίνει πολύ αργή.
21
Λογισμικό Ε/Ε Ανεξάρτητο από τη Συσκευή
Η διεργασία του χρήστη διαβάζει ένα-ένα τους χαρακτήρες Η διεργασία του χρήστη διαβάζει n χαρακτήρες Τι θα συμβεί αν η σελίδα με τους χαρακτήρες δεν είναι στη κύρια μνήμη; Οι χαρακτήρες φυλάγονται στον πυρήνα. Αφού διαβαστούν n χαρακτήρες μεταφέρονται στο χώρο του χρήστη Τι θα συμβεί αν πριν μεταφερθούν φτάσουν επιπρόσθετοι χαρακτήρες; Double Buffering
22
Επικοινωνία Δικτύων User Space Kernel Space Network Controller User process Network packet Μεταφορά του πακέτου σε πολλές ενδιάμεσες μνήμες μπορεί να επηρεάσει την ταχύτητα της επικοινωνίας
23
Λογισμικό Ε/Ε Ανεξάρτητο από τη Συσκευή
Διαχείριση σφαλμάτων Κάποια σφάλματα είναι δυνατόν να διορθωθούν στα χαμηλότερα στρώματα έτσι που να μην χρειάζεται η ενημέρωση του χρήστη Θα πρέπει να υπάρχει υποδομή (ανεξάρτητη από τη συσκευή) η οποία να χειρίζεται τα σφάλματα και να ενημερώνει τον χρήστη. Πρέπει να υπάρχει μηχανισμός που να επιτρέπει στους χρήστες να δεσμεύουν τις συσκευές Θυμηθείτε πως υπάρχουν συσκευές οι οποίες είναι preemptive και non-preemptive καθώς και συσκευές οι οποίες μπορούν να χρησιμοποιούνται μόνο από μια διεργασία (π.χ., CD-ROM). Για συσκευές που μεταφέρουν τμήματα από δεδομένα (blocks) το λογισμικό του ΛΣ μπορεί να παίζει ρόλο στον καθορισμό του μεγέθους των τμημάτων.
24
Λογισμικό στο Χώρο του Χρήστη
Στο χώρο του χρήστη υπάρχουν βιβλιοθήκες (π.χ., C libraries) οι οποίες επιτρέπουν στον χρήστη να έχει εύκολη πρόσβαση στις συσκευές Ε/Ε Οι βιβλιοθήκες αυτές μπορεί να επιτρέπουν την ανταλλαγή δεδομένων (read, write) ή και την διαμόρφωση (format) μιας σειράς χαρακτήρων (printf(), scanf()). Spooling
25
Δίσκοι (Disks) Υπάρχουν πολλά ήδη δίσκων
Μαγνητικοί (hard disks και floppy drives) Γράφουν και διαβάζουν με την ίδια ταχύτητα Η τεχνολογία των τελευταίων 20 χρόνων κατάφερε Να αυξήσει τη χωρητικότητα των δίσκων περίπου 50,000 φορές (τα bits έχουν συμπιεστεί), Να αυξήσει τη μεταφορά δεδομένων περίπου 1300 φορές όμως, Ο χρόνος αναζήτησης (seek time) δεν μειώθηκε παρά μόνο 5-6 φορές. Οπτικοί (R-CD, RW-CD, DVD) Διατάξεις δίσκων για μεγαλύτερη ταχύτητα και αξιοπιστία RAID (Redundant Array of Inexpensive (Independent) Disks)
26
Μαγνητικοί Σκληροί Δίσκοι (Hard Disks)
Η επιφάνεια του δίσκου χωρίζεται σε ζώνες, κυλίνδρους (cylinders) διαδρόμους (tracks) και τομείς (sectors) Εξωτερικοί διάδρομοι μπορεί έχουν χώρο για περισσότερους τομείς πράγμα που περιπλέκει τη διαχείριση του δίσκου. Ο οδηγός μπορεί να έχει μια συνάρτηση η οποία να αντιστοιχεί μια γραμμική διεύθυνση (x-cylinder, y-head, z-sector) με την πραγματική διεύθυνση. Σε μια γραμμική διεύθυνση όλοι οι κύλινδροι έχουν τον ίδιο αριθμό από τομείς
27
RAID Διασύνδεση δίσκων με σκοπό την αύξηση της απόδοσης (ταχύτητα) και της αξιοπιστίας (χρησιμοποιώντας πλεονασμό - redundancy) Υπάρχουν διάφοροι τρόποι διάταξης (configuration) Οι διάφοροι τρόποι έχουν τυποποιηθεί σαν επίπεδο 0-5 (level 0 - 5) Το επίπεδο 0 (level 0) επιτυγχάνει μόνο καλύτερη απόδοση σε περίπτωση που τα αρχεία είναι αρκετά μεγάλα Όταν ο οδηγός μεταφέρει ένα τομέα ενός δίσκου, οι υπόλοιποι μπορούν παράλληλα να ψάχνουν για τους ζητούμενους τομείς Strip 8 Strip 4 Strip 0 Strip 9 Strip 5 Strip 1 Strip 10 Strip 6 Strip 2 Strip 11 Strip 7 Strip 3
28
RAID Το επίπεδο 1 (level 1) διατηρεί αντίγραφα των δεδομένων σε περισσότερους από 1 δίσκους Strip 8 Strip 4 Strip 0 Strip 9 Strip 5 Strip 1 Strip 10 Strip 6 Strip 2 Strip 11 Strip 7 Strip 3 Το επίπεδο 2 σπάζει κάθε byte σε bits τα οποία κωδικοποιούνται (Hamming Code) έτσι που να μπορεί να ανιχνευθεί και να διορθωθεί πιθανό σφάλμα bit 1 bit 2 bit 3 bit 4 bit 5 bit 6 bit 7
29
RAID Το επίπεδο 3 είναι πιο παρόμοιο με το επίπεδο 2 αλλά με πιο απλή κωδικοποίηση (parity check) Ξέροντας ποιος δίσκος έχει χαλάσει μπορούμε να υπολογίσουμε τις πληροφορίες του δεδομένου δίσκου από το parity bit. Οι δίσκοι πρέπει να είναι συγχρονισμένοι bit 1 bit 2 bit 3 bit 4 parity Τα επίπεδα 4-5 δουλεύουν επίσης με τομείς. Ορίζουν ένα δίσκο ο οποίος έχει πλεονάζοντα δεδομένα τα οποία χρησιμοποιούνται σε περίπτωση που κάποιος δίσκος χαλάσει.
30
Οπτικοί Δίσκοι CD-ROMS
R-CD, RW-CD, DVD Υπάρχουν διαφορές στις τεχνολογίες κατασκευής Για να υπάρχει ομοιόμορφη ροή δεδομένων από το CD θα πρέπει ο δίσκος να γυρίζει με μεγαλύτερη ταχύτητα για τις εσωτερικές σπείρες Για καλύτερη αξιοπιστία τα δεδομένα χωρίζονται σε πλαίσια τα οποία έχουν πλεονάζουσες πληροφορίες για ανίχνευση και διόρθωση σφαλμάτων.
31
DVDs Tα DVDs έχουν αυξήσει τη χωρητικότητα των δίσκων
Κάνοντας τα pits πιο μικρά (από 0.8μ στα CD σε 0.4μ) Φέρνοντας τις σπείρες πιο κοντά (0.74μ αντί 1.6μ στα CD) Χρησιμοποιώντας κόκκινο λέιζερ (αντί πράσινο) Επίσης υπάρχου διάφορες διατάξεις Μια πλευρά και ένα επίπεδο (single-sided, single-layer) (4.7GB) Μια πλευρά και δύο επίπεδα (single-sided, double-layer) (8.5GB) Δύο πλευρές και ένα επίπεδο (double-sided, single-layer) (9.4GB) Δύο πλευρές και δύο επίπεδα (double-sided, double-layer) (17GB)
32
Αλγόριθμοι Χρονοπρογραμματισμού Δίσκων
Ο χρόνος πρόσβασης στα δεδομένα ενός σκληρού δίσκου αποτελείται από 3 κύρια μέρη Χρόνος αναζήτησης (seek time) Καθυστέρηση Περιστροφής (rotational delay) Μεταφορά δεδομένων (data transfer time) Καθώς φτάνουν αιτήματα για πρόσβαση (read or write) στο δίσκο, ο οδηγός του δίσκου έχει την ευχέρεια να επιλέξει πιο αίτημα θα είναι το αμέσως επόμενο το οποίο θα ικανοποιηθεί. Παράδειγμα Υποθέστε πως ο δίσκος έχει 40 κυλίνδρους και υπάρχουν αιτήματα τα οποία έχουν φτάσει με την εξής σειρά (ο αριθμός είναι ο κύλινδρος στον οποίο είναι ο ζητούμενος τομέας) 12 – 11 – 34 – 9 – 16 – 1 – 36 Υποθέστε πως ο βραχίονας αρχικά είναι πάνω από τον κύλινδρο 11
33
Αλγόριθμοι Χρονοπρογραμματισμού Δίσκων
First Come First Serve Algorithm Ο δίσκος ανταποκρίνεται σε κάθε αίτημα με τη σειρά με την οποία παραλήφθηκε 12 – 11 – 34 – 9 – 16 – 1 – 36 Χ 5 10 15 20 25 30 35 Γενικά ο αλγόριθμος είναι αργός αλλά δεν υπάρχει περίπτωση παρατεταμένης στέρησης
34
Αλγόριθμοι Χρονοπρογραμματισμού Δίσκων
Last In First Out Ο δίσκος ανταποκρίνεται στα αιτήματα με την ανάποδη σειρά από αυτή που παραλείφθηκαν 12 – 11 – 34 – 9 – 16 – 1 – 36 Χ 5 10 15 20 25 30 35 Πολλές φορές ο αλγόριθμος αυτός δουλεύει αρκετά καλά εξ αιτίας της τοπικότητας (locality). Υπάρχει ο κίνδυνος παρατεταμένης στέρησης αιτημάτων
35
Αλγόριθμοι Χρονοπρογραμματισμού Δίσκων
Shortest Seek Time First Ο δίσκος ανταποκρίνεται στo αίτημα το οποίο βρίσκεται πιο κοντά στη θέση του βραχίονα 12 – 11 – 34 – 9 – 16 – 1 – 36 Χ 5 10 15 20 25 30 35 Ο αλγόριθμος έχει καλή απόδοση όμως υπάρχει ο κίνδυνος παρατεταμένης στέρησης αιτημάτων
36
Αλγόριθμοι Χρονοπρογραμματισμού Δίσκων
Elevator Algorithm (SCAN) Ο δίσκος ανταποκρίνεται μόνο στα αιτήματα τα οποία βρίσκονται στη ίδια κατεύθυνση. Αν δεν υπάρχουν άλλα αιτήματα, τότε αλλάζει η κατεύθυνση αναζήτησης 12 – 11 – 34 – 9 – 16 – 1 – 36 Χ 5 10 15 20 25 30 35 Ο αλγόριθμος έχει πολύ καλή απόδοση χωρίς να υπάρχει ο κίνδυνος παρατεταμένης στέρησης αιτημάτων
37
Αλγόριθμοι Χρονοπρογραμματισμού Δίσκων
Elevator Algorithm (C-SCAN) Ο δίσκος ανταποκρίνεται μόνο στα αιτήματα τα οποία βρίσκονται στη ίδια κατεύθυνση. Αν δεν υπάρχουν άλλα αιτήματα, τότε μεταπηδά στον πιο μικρό κύλινδρο και επαναλαμβάνει 12 – 11 – 34 – 9 – 16 – 1 – 36 Χ 5 10 15 20 25 30 35 Ο αλγόριθμος έχει καλή απόδοση και μειώνει το μέγιστο χρόνο αναμονής
38
Αλγόριθμοι Χρονοπρογραμματισμού Δίσκων
Επιπρόσθετα υπάρχουν αρκετές άλλες στρατηγικές χρονοπρογραμματισμού οι οποίες λαμβάνουν υπόψη Προτεραιότητα Προθεσμία (deadline) Τι αιτήματα αναμένουν στο μέλλον LINUX Anticipatory Scheduler: Χρησιμοποιεί το βασικό αλγόριθμο SCAN (elevator) Μόλις τελειώσει το διάβασμα ενός τομέα τότε υπάρχει μια μικρή καθυστέρηση πριν ο βραχίονας προχωρήσει στον επόμενο. Το σκεπτικό του αλγορίθμου βασίζεται στην τοπικότητα. Υπάρχει καλή πιθανότητα η διεργασία που ζήτησε τον παρόν τομέα να ζητήσει να διαβαστεί και κάποιος άλλος κοντινός τομέας. Caching: όταν ο δίσκος αναζητά κάποιο τομέα τότε υπάρχει καλή πιθανότητα να ζητηθεί και κάποιος άλλος κοντινός, οπόταν ο οδηγός μπορεί να διαβάζει και τομείς που δεν έχουν ζητηθεί και να τους αποθηκεύει στο cache σε περίπτωση που ζητηθούν αργότερα.
39
Εύρωστη Αποθήκευση (Stable Storage)
Α αποθήκευση ενός τομέα παίρνει κάποιο χρόνο (μικρό αλλά όχι μηδενικό). Υποθέστε ένα τομέα με 512 bytes. Εάν ξεκινήσει να αλλάζει το περιεχόμενο του τομέα και συμβεί κάτι (crash, σφάλμα του δίσκου κλπ) πριν τελειώσει, τότε ολόκληρο το περιεχόμενο του τομέα έχει καταστραφεί (ο κώδικας διόρθωσης σφαλμάτων θα είναι μάλλον λανθασμένος). Σαν αποτέλεσμα έχουν χαθεί και οι προηγούμενες πληροφορίες καθώς και οι νέες! Πώς θα μπορούσαμε να πετύχουμε εύρωστη αποθήκευση έτσι που να μην υπάρχει περίπτωση να χαθούν δεδομένα; Εάν δεν συμβεί οτιδήποτε, τότε τα νέα δεδομένα θα είναι αποθηκευμένα. Εάν συμβεί κάτι τότε θα έχουμε τουλάχιστον αντίγραφο των προηγούμενων δεδομένων.
40
Εύρωστη Αποθήκευση (Stable Storage)
Χρησιμοποιούμε δύο πανομοιότυπους δίσκους Γράφουμε στο δίσκο 1 και διαβάζουμε το περιεχόμενο του τομέα για επαλήθευση. Εάν δεν επιτύχει αυτό το βήμα n φορές τότε δηλώνουμε χαλασμένο τομέα. Επαναλαμβάνουμε την ίδια διαδικασία για το δίσκο 2. Όταν διαβάζουμε, τότε αρχίζουμε από το δίσκο 1. Εάν ο τομέας έχει ορθό ECC τότε υπάρχει επιτυχία. Εάν όχι τότε επαναλαμβάνουμε τη διαδικασία n φορές. Εάν καμία φορά δεν έχει ορθό ECC, τότε διαβάζουμε το δίσκο 2. Ο δίσκος 2 πρέπει τουλάχιστον να έχει το προηγούμενα δεδομένα. Μετά από κάποιο crash ελέγχουμε και τους δύο δίσκους Εάν και οι δύο έχουν τα ίδια ορθά δεδομένα δεν κάνουμε τίποτα Εάν ο ένας έχει ορθά δεδομένα και ο άλλος όχι αντιγράφουμε τα ορθά Εάν και οι δύο έχουν ορθά αλλά διαφορετικά δεδομένα, τότε αντιγράφουμε από το δίσκο 1 στο δίσκο 2.
41
Χρονόμετρα (clocks/timers)
Κρατούν την ώρα και ημερομηνία Ελέγχουν έτσι που να μην μπορεί μια διεργασία να πάρει όλο το χρόνο του επεξεργαστή Χρονομετρούν και συντονίζουν διάφορα γεγονότα Σφάλματα σελίδων, σήματα διακοπής, χρήση επεξεργαστή κλπ Υλικό Μετρητής (counter) Ταλαντωτής (crystal oscillator) Καταχωρητής
42
Χρονόμετρα Το μέγεθος των καταχωρητών που αποθηκεύουν το χρόνο και η συχνότητα ενημέρωσης των μετρητών είναι σημαντικές παράμετροι οι οποίες πρέπει να ληφθούν υπόψη όταν σχεδιάζονται τα χρονόμετρα. Υποθέστε σύστημα στο οποίο ο ταλαντωτής έχει συχνότητα 60Hz. Επίσης υποθέστε ένα καταχωρητή με 32 bits. Πόσος χρόνος χρειάζεται μέχρι να υπερχειλίσει ο καταχωρητής; Η μέγιστη τιμή του καταχωρητή είναι 232= 4,294,967,296 O καταχωρητής θα γεμίσει σε 71,582,788 δευτερόλεπτα = 1,193,046 λεπτά =19,844 ώρες = 828 μέρες = 2.3 χρόνια! Σε περίπτωση που ο μετρητής αυξάνεται με συχνότητα 1Hz, τότε ο καταχωρητής θα υπερχειλίσει σε 136 χρόνια. Η άλλη επιλογή είναι να μεγαλώσει ο καταχωρητής σε 64 bits
43
Πολλαπλά Χρονόμετρα Είναι δυνατό με μόνο ένα χρονόμετρο και κάποιες δομές δεδομένων να δημιουργήσουμε πολλαπλά χρονόμετρα 4200 Current Time 3 Next Signal Next Timer 4 6 2 4203 4207 4213 4215 4217
44
Χρονόμετρα Λογισμικού
Σήματα διακοπής (interrupts) και χρονόμετρα Τα σήματα διακοπής συμπεριλαμβάνουν αρκετή δουλειά (overhead) Αλλαγή περιβάλλοντος (context switch) Φόρτωση νέων καταχωρητών Κλπ. Σε συστήματα με υψηλές ταχύτητες (π.χ., Gigabit Ethernet) συνεπάγεται πολύ συχνή χρήση των σημάτων διακοπής άρα και πολλή επιπρόσθετη δουλεία Εναλλακτικά μπορούμε να χρησιμοποιήσουμε κάποια χρονόμετρα και να ελέγχουμε περιοδικά εάν το γεγονός που περιμένουμε έχει συμβεί Π.χ., εάν υπήρξε άφιξη πακέτου Το μειονέκτημα παρουσιάζεται στην περίπτωση που το γεγονός συμβεί αμέσως μετά τη λήξη του χρονομέτρου. Soft timers: Ο πυρήνας κάθε φορά που είναι έτοιμος να δώσει τον έλεγχο στο χρήστη ελέγχει εάν κάποιο χρονόμετρο έχει λήξει.
45
Τερματικά Βασισμένα σε Χαρακτήρες
Η επικοινωνία του τερματικού με τον υπολογιστή γίνεται μέσω σειριακής γραμμής όπου οι χαρακτήρες αποστέλλονται ένα bit κάθε φορά (RS232 interface). Μια οθόνη αποτελείται συνήθως από ένα μέγιστο αριθμό γραμμών οι οποίες περιέχουν ένα αριθμό από χαρακτήρων Συνήθως 25 γραμμές με 80 χαρακτήρες η κάθε γραμμή Η κάρτα διεπαφής στέλνει ένα χαρακτήρα κάθε φορά και μετά περιμένει επαλήθευση
46
Τερματικά Βασισμένα σε Χαρακτήρες
Τα «έξυπνα τερματικά» υποστηρίζουν εκτός από τους χαρακτήρες ASCII και ένα σύνολο από χαρακτήρες ελέγχου (escape sequences) Μετακινούν τον cursor Παρεμβάλλουν χαρακτήρες στο μέσο της οθόνης … Το πληκτρολόγιο (keyboard) διαβάζει χαρακτήρες τους οποίους και αποθηκεύει σε ενδιάμεση μνήμη (buffers) Οι χαρακτήρες περνούν στην διεργασία που τα χρειάζεται είτε ο ένας χαρακτήρας μετά το άλλο, είτε γραμμή με γραμμή. Οι χαρακτήρες αποθηκεύονται σε ενδιάμεση μνήμη Κάθε τερματικό μπορεί να έχει την δική του ενδιάμεση μνήμη Ο πυρήνας μπορεί να διαθέτει πολλά μικρά buffers τα οποία δίνει στα τερματικά όταν τα χρειαστούν
47
Διεπαφές Γραφικών (GUI)
GUI: Graphical User Interface Παράθυρα (windows) Εικονίδια (icons) Μενού (menu) Pointing devices (mouse ή track ball) Σους υπολογιστές Pentium το πληκτρολόγιο είναι εξοπλισμένο με «ενθυλακωμένο» (embedded) επεξεργαστή ο οποίος επικοινωνεί με τον ελεγκτή στέλνοντας του τη στιγμή που πατήθηκε ή ελευθερώθηκε το κάθε πλήκτρο. Pointing devices: Ενημερώνουν τον υπολογιστή για την κίνηση του δείκτη (Δx, Δy) και για τα κουμπιά τα οποία έχουν πατηθεί.
48
Διεπαφές Γραφικών (GUI)
Οθόνη Vector Graphics: κάθε σχήμα αποτελείται από μια σειρά από σημεία τα οποία ενώνονται για να σχηματίσουν το σχήμα. Bitmap (raster) Graphics: κάθε σημείο στην οθόνη αντιπροσωπεύεται από ένα αριθμό ο οποίος προσδιορίζει το χρώμα
49
Διεπαφές Γραφικών (GUI)
Οι οθόνες GUI μπορεί να έχουν μεγάλες απαιτήσεις σε μνήμη. Για κάθε pixel αποθηκεύεται ένας αριθμός με 24-bits (Red-Green-Blue) Για εξοικονόμηση μνήμης και χρόνου τα 24 bits μπορεί να μειωθούν σε 16 ή 8. Ο ελεγκτής της οθόνης θα πρέπει να έχει ένα πίνακα ο οποίος να αντιστοιχεί τα 8 ή 16 bits με κάποιο χρώμα. Γραμματοσειρές (Fonts) True-type fonts: κάθε χαρακτήρας αποτελείται από μια σειρά σημείων τα οποία αποτελούν το περίγραμμα του χαρακτήρα Το μέγεθος της γραμματοσειράς μπορεί εύκολα να αλλάξει
50
Διαχείριση Ενέργειας Η διαχείριση ενέργειας παίζει ιδιαίτερα σημαντικό ρολό στις περιπτώσεις φορητών υπολογιστών Σε ποια κατάσταση να μπαίνουν τα διάφορα μέρη του υπολογιστή και πόσο συχνά; Εξοικονόμηση ενέργειας όταν η κατάσταση είναι on, off ή μειωμένη ένταση Ενέργεια που «σπαταλείται» για να επανέλθει το σύστημα στην κατάσταση on. Εξοικονόμηση ενέργειας μπορεί να επιτευχθεί με καλή διαχείριση της οθόνης, του επεξεργαστή, του δίσκου, της μνήμης και της κάρτας ασύρματου δικτύου
51
Διαχείριση Ενέργειας Απενεργοποίηση της οθόνης για σκοπούς εξοικονόμησης ενέργειας είναι σχετικά εύκολη αφού δεν υπάρχει κάποιο ιδιαίτερο κόστος ενεργοποίησης της. Απλά το ΛΣ πρέπει να υπολογίσει πότε να απενεργοποιήσει την οθόνη και μπορεί να λάβει την παράμετρο αυτή από το χρήστη. Υπάρχει και η περίπτωση να χωριστεί η οθόνη σε τομείς. Μόνο οι τομείς με δραστηριότητα θα είναι αναμμένοι ενώ οι μπορούν να είναι σε κατάσταση ύπνου. Απενεργοποίηση του δίσκου συνεπάγεται κάποιο κόστος Χρειάζεται επιπρόσθετη ενέργεια για την ενεργοποίηση Χρειάζεται κάποιος χρόνος μέχρι ο δίσκος να αρχίσει να περιστρέφεται με τις κανονικές του στροφές
52
Διαχείριση Ενέργειας Απενεργοποίηση του επεξεργαστή
Η απόδοση του επεξεργαστή εξαρτάται από την τάση (voltage). Εάν είναι μειωμένη, τότε η απόδοση του επεξεργαστή είναι επίσης μειωμένη. Π.χ., μειώνοντας την τάση στο μισό μειώνουμε επίσης και την ταχύτητα στο μισό Η κατανάλωση του επεξεργαστή είναι επίσης μειωμένη. Μειώνοντας την τάση στο μισό, η κατανάλωση μειώνεται στο ¼. Το ΛΣ μπορεί να επιβλέπει τη χρήση του υπολογιστή και να ρυθμίζει την τάση ανάλογα με τις ανάγκες. Η κάρτα ασύρματης επικοινωνίας είναι επίσης μια συσκευή με υψηλή κατανάλωση. Μια λύση είναι να απενεργοποιείται περιοδικά και να αποθηκεύονται τα μηνύματα (είτε στο σταθμό βάσης είτε στον υπολογιστή) Διαχείριση θερμοκρασίας Διαχείριση μπαταρίας (έξυπνες μπαταρίες).
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.