Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Συστήματα εισόδου/εξόδου

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Συστήματα εισόδου/εξόδου"— Μεταγράφημα παρουσίασης:

1 Συστήματα εισόδου/εξόδου
Ελεγκτές Προγραμματισμένη και οδηγούμενη από διακοπές Ε/Ε Άμεση προσπέλαση μνήμης (DMA) Επίπεδα λογισμικού Ε/Ε

2 Ορολογία Συσκευή (μηχανικό υλικό)
Ελεγκτής συσκευής (ηλεκτρονικό υλικό) Οδηγός συσκευής (λογισμικό)

3 Παραδείγματα συσκευών και ελεγκτών τους
Monitor Bus Τμήματα ενός απλού προσωπικού υπολογιστή

4 Ελεγκτές συσκευών Η συσκευή σε αντιδιαστολή με τον ελεγκτή της
Καθήκοντα του ελεγκτή: Διασύνδεση μεταξύ CPU και συσκευής Αρχίζει/σταματά δραστηριότητα συσκευής Μετατρέπει σειριακό ρεύμα bits σε πλαίσια από bytes Αντιμετωπίζει σφάλματα Ανίχνευση/διόρθωση Μετακινεί δεδομένα από/προς κύρια μνήμη Μερικοί ελεγκτές μπορεί να ελέγχουν διαφορετικές (παρόμοιες) συσκευές

5 Επικοινωνία με τη συσκευή
Το υλικό υποστηρίζει θύρες Ε/Ε ή Ε/Ε με χαρτογράφηση στη μνήμη για την προσπέλαση των καταχωρητών ελεγκτών συσκευών και απομονωτών

6 Θύρες Ε/Ε Κάθε θύρα έχει ξεχωριστό αριθμό
Η ΚΜΕ έχει ειδικές εντολές Ε/Ε: in r4, 3 out 3, r4 Οι αριθμοί θυρών σχηματίζουν ένα «χώρο διευθύνσεων» ξεχωριστό από την κύρια μνήμη Αντίθεση με: load r4, 3 store 3, r4

7 Ε/Ε με χαρτογράφηση στη μνήμη
Ένας χώρος διευθύνσεων για Κύρια μνήμη Συσκευές Ε/Ε Η ΚΜΕ δεν έχει ειδικές εντολές: load r4, addr store addr, r4 Οι συσκευές Ε/Ε αντιστοιχούνται σε πολύ υψηλές διευθύνσεις 0x Φυσική Μνήμη Συσκευές Ε/Ε 0xFFFF0000 0xFFFFFFFF

8 Ταχύτητες συσκευών Ε/Ε

9 Προκλήσεις απόδοσης: υλικό Ε/Ε
Πώς αποφεύγουμε οι αργές συσκευές να επιβραδύνουν τη μνήμη λόγω συναγωνισμού για το δίαυλο; Πώς προσπελαύνονται διευθύνσεις Ε/Ε χωρίς να επηρεάζεται η απόδοση της μνήμης;

10 Αρχιτεκτονική απλού έναντι διπλού διαύλου

11 Δομή ενός μεγάλου συστήματος Pentium

12 Προκλήσεις απόδοσης: λογισμικό Ε/Ε
Πώς αποφεύγουμε η απόδοση της ΚΜΕ να περιορίζεται από την ταχύτητα των συσκευών Ε/Ε (για αργές συσκευές); Πώς αποφεύγουμε η απόδοση Ε/Ε να περιορίζεται από την ταχύτητα της ΚΜΕ (για γρήγορες συσκευές); Πώς πετυχαίνουμε καλή χρήση της ΚΜΕ και των συσκευών Ε/Ε; Πώς απαντάμε στις απαιτήσεις πραγματικού χρόνου των συσκευών;

13 Προγραμματισμένη Ε/Ε Τα βήματα στην εκτύπωση ενός αλφαριθμητικού

14 Προγραμματισμένη Ε/Ε Παράδειγμα:
Εγγραφή αλφαριθμητικού σε σειριακή έξοδο Εκτύπωση αλφαριθμητικού σε εκτυπωτή CopyFromUser(virtAddr, kernelBuffer, byteCount) for i = 0 to byteCount-1 while *serialStatusReg != READY endWhile *serialDataReg = kernelBuffer[i] endFor return Ονομάζεται «αναμονή με απασχόληση» ή «περιόδευση» Πρόβλημα: η ΚΜΕ συνεχώς απασχολείται σε Ε/Ε.

15 Ε/Ε οδηγούμενη από διακοπές
Εκκίνηση Ε/Ε CopyFromUser(virtAddr, kernelBuffer, byteCount) EnableInterrupts() while *serialStatusReg != READY endWhile *serialDataReg = kernelBuffer[0] Sleep () Ο χειριστής διακοπών: if i == byteCount Wake up the user process else *serialDataReg = kernelBuffer[i] i = i + 1 endIf Return from interrupt

16 Υποστήριξη υλικού για διακοπές
Πώς συμβαίνουν οι διακοπές. Οι συνδέσεις μεταξύ συσκευών και ελεγκτή διακοπών χρησιμοποιούν γραμμές διακοπών πάνω στο δίαυλο παρά αποκλειστικά σύρματα

17 Πρόβλημα με Ε/Ε οδηγούμενη από διακοπές
Η ΚΜΕ πάλι εμπλέκεται στη μεταφορά δεδομένων Η επιβάρυνση για τη διαχείριση διακοπών είναι μεγάλη Η επιβάρυνση δεν ξεπληρώνεται με μεταφορά πολλών δεδομένων Η επιβάρυνση είναι πολύ μεγάλη για γρήγορες συσκευές Gbps δίκτυα Σκληροί δίσκοι

18 Άμεση προσπέλαση μνήμης
Τα δεδομένα μεταφέρονται απευθείας από τη συσκευή στη μνήμη ή αντίστροφα Η ΚΜΕ δεν εμπλέκεται Ο ελεγκτής DMA: Μετακινεί τα δεδομένα Προγραμματίζεται από την ΚΜΕ Αφήνει την ΚΜΕ ελεύθερη

19 Αποστολή δεδομένων σε συσκευή με χρήση DMA
Εκκίνηση της Ε/Ε: CopyFromUser(virtAddr, kernelBuffer, byteCount) Set up DMA controller Sleep () Ο χειριστής διακοπών: Acknowledge interrupt Wake up the user process Return from interrupt

20 Άμεση προσπέλαση μνήμης

21 Άμεση προσπέλαση μνήμης
Cycle stealing mode: Ο ελεγκτής DMA παίρνει τον έλεγχο του διαύλου Μεταφέρει ένα byte Ελευθερώνει τον δίαυλο Η ΚΜΕ καθυστερεί λόγω συναγωνισμού διαύλου Burst mode: Μεταφέρει όλα τα δεδομένα Η λειτουργία της ΚΜΕ αναστέλλεται προσωρινά

22 Αρχές λογισμικού Ε/Ε Ανεξαρτησία από συσκευές: Ομοιόμορφη ονομασία:
Τα προγράμματα μπορούν να προσπελάσουν οποιαδήποτε συσκευή Ε/Ε χωρίς να καθορίσουν τη συσκευή εκ των προτέρων Ομοιόμορφη ονομασία: Οι συσκευές/αρχεία ονομάζονται με απλά αλφαριθμητικά Τα ονόματα δεν πρέπει να εξαρτώνται από τη συσκευή Διαχείριση σφαλμάτων: Πρέπει να είναι όσο γίνεται πιο κοντά στο υλικό Επειδή είναι συνήθως εξαρτώμενα από τη συσκευή

23 Αρχές λογισμικού Ε/Ε Σύγχρονες έναντι ασύγχρονων μεταφορών:
Η διεργασία μπλοκάρεται σε αντίθεση με προσεγγίσεις περιόδευσης ή Ε/Ε οδηγούμενης από διακοπές Προσωρινή αποθήκευση: Τα δεδομένα έρχονται από μια συσκευή Μπορεί να μη γνωρίζουμε τον τελικό προορισμό των δεδομένων Κοινόχρηστες έναντι αφοσιωμένων συσκευών: Ο δίσκος πρέπει να μοιράζεται Πληκτρολόγιο, οθόνη αφοσιωμένα σε μια διεργασία

24 Επίπεδα λογισμικού Ε/Ε

25 Χειρισμός διακοπών Ο οδηγός συσκευής Ε/Ε αρχίζει τη λειτουργία:
Μπλοκάρεται μέχρι να συμβεί μια διακοπή Τότε ξυπνά, τελειώνει και επιστρέφει Ο χειριστής διακοπών: Κάνει οτιδήποτε είναι απαραίτητο άμεσα Μετά ξεμπλοκάρει τον οδηγό

26 Βασικές δραστηριότητες ενός χειριστή διακοπών
Αρχικοποίησε τη στοίβα για μια διαδικασία εξυπηρέτησης διακοπής Επιβεβαίωσε προς τον ελεγκτή διακοπών, επανενεργοποίησε τις διακοπές Αντέγραψε τις τιμές των καταχωρητών από εκεί που αποθηκεύτηκαν Τρέξε τη διαδικασία εξυπηρέτησης

27 Επίπεδα λογισμικού Ε/Ε

28 Οδηγοί συσκευών στο χώρο του πυρήνα

29 Οδηγοί συσκευών Είναι λογισμικό εξαρτώμενο από τη συσκευή και συνδέει τη συσκευή με το Λ.Σ. Συνήθως γράφονται σε assembly Πρέπει να ασχολούνται με λεπτομέρειες του υλικού Πρέπει να ασχολούνται με λεπτομέρειες του Λ.Σ. Στόχος: κρύψε όσο περισσότερες λεπτομέρειες εξαρτώμενες από τη συσκευή από το λογισμικό στα ανώτερα επίπεδα Συνήθως τους δίνονται προνόμια πυρήνα για αποδοτικότητα Σφάλματα μπορούν να «κρεμάσουν» το Λ.Σ. Ανοιχτή πρόκληση: πώς παρέχεις αποδοτικότητα και ασφάλεια μαζί;

30 Επίπεδα λογισμικού Ε/Ε

31 Λογισμικό Ε/Ε ανεξάρτητο από τη συσκευή
Λειτουργίες και αρμοδιότητες: Ομοιόμορφη διεπαφή για τους οδηγούς συσκευών Προσωρινή αποθήκευση Αναφορά σφαλμάτων Δέσμευση και απελευθέρωση αφοσιωμένων συσκευών Παροχή ενός μεγέθους μπλοκ ανεξάρτητου από τη συσκευή

32 Λογισμικό Ε/Ε ανεξάρτητο από τη συσκευή
Διεπαφή οδηγού συσκευής και διεπαφή πυρήνα συσκευής χωρίς/με προτυποποίηση

33 Προσωρινή αποθήκευση λογισμικού Ε/Ε ανεξάρτητου από τη συσκευή
Είσοδος χωρίς προσωρινή αποθήκευση Προσωρινή αποθήκευση στο χώρο χρήστη Προσωρινή αποθήκευση στον πυρήνα ακολουθούμενη από αντιγραφή στο χώρο χρήστη Διπλή προσωρινή αποθήκευση στον πυρήνα

34 Επιβάρυνση αντιγραφής σε δικτυακή Ε/Ε
Η δικτύωση μπορεί να εμπλέκει πολλά αντίγραφα

35 Συσκευές ως αρχεία Πριν από την προσάρτηση:
Τα αρχεία στη δισκέτα δεν είναι προσβάσιμα Μετά την προσάρτηση της δισκέτας στο b: Τα αρχεία στη δισκέτα είναι μέρος της ιεραρχίας αρχείων

36 Επίπεδα λογισμικού Ε/Ε

37 Λογισμικό Ε/Ε επιπέδου χρήστη
Σε ένα πρόγραμμα χρήστη σε C: count = write (fd, buffer, nbytes); printf (“The value of %s is %d\n”, str, i); Συνδέεται με ρουτίνες βιβλιοθήκης Αυτές οι ρουτίνες περιλαμβάνουν: Πολύ κώδικα Προσωρινή αποθήκευση Την κλήση συστήματος για να γίνει παγίδευση προς τον πυρήνα

38 Επικοινωνία μεταξύ των επιπέδων λογισμικού Ε/Ε


Κατέβασμα ppt "Συστήματα εισόδου/εξόδου"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google