Υλικό υπολογιστών

Γνώση Υπολογιστών >> Υλικό υπολογιστών >  >> Συσκευές Εισόδου και Εξόδου

Πώς χειρίζεται οι συσκευές εισόδου και εξόδου του OS;

Λειτουργικά συστήματα (OS) Χειριστείτε συσκευές εισόδου και εξόδου (I/O) μέσω μιας σύνθετης αλληλεπίδρασης εξαρτημάτων υλικού και λογισμικού. Ο στόχος είναι να παρέχονται μια συνεπής και αφηρημένη διεπαφή στις εφαρμογές, προστατεύοντάς τις από τις λεπτομέρειες χαμηλού επιπέδου της αλληλεπίδρασης με συγκεκριμένο υλικό. Εδώ είναι μια κατανομή:

1. Οδηγοί συσκευών:

* Ο πυρήνας: Το πιο κρίσιμο συστατικό είναι το πρόγραμμα οδήγησης συσκευής . Πρόκειται για μια μονάδα λογισμικού που γράφτηκε ειδικά για μια συγκεκριμένη συσκευή εισόδου/εξόδου (π.χ. πληκτρολόγιο, ποντίκι, σκληρό δίσκο, εκτυπωτής, κάρτα δικτύου). Λειτουργεί ως μεταφραστής, κατανοώντας τις συγκεκριμένες εντολές και μορφές δεδομένων της συσκευής και τη μετατροπή τους σε μια μορφή που μπορεί να καταλάβει το λειτουργικό σύστημα και αντίστροφα.

* αλληλεπίδραση υλικού: Το πρόγραμμα οδήγησης επικοινωνεί απευθείας με τους καταχωρητές και τους ελεγκτές υλικού της συσκευής. Διαχειρίζεται εργασίες όπως η αρχικοποίηση της συσκευής, η αποστολή εντολών, η ανάγνωση δεδομένων και η διαχείριση των διακοπών.

* αφαίρεση: Οι οδηγοί αφηρούν τις λεπτομέρειες υλικού. Οι εφαρμογές δεν χρειάζεται να γνωρίζουν τις περίπλοκες λεπτομέρειες για το πώς λειτουργεί ένας συγκεκριμένος σκληρός δίσκος. Απλώς ζητούν δεδομένα από ένα αρχείο και ο οδηγός χειρίζεται την αλληλεπίδραση χαμηλού επιπέδου.

2. Υποσύστημα εισόδου/εξόδου:

* Διαχείριση οδηγών: Το υποσύστημα I/O του OS διαχειρίζεται όλα τα προγράμματα οδήγησης συσκευών. Διαχειρίζεται τους οδηγούς φόρτωσης όταν χρειάζεται, εκφορτώνοντας τους όταν δεν χρησιμοποιείται πλέον και επίλυση συγκρούσεων.

* Κατανομή πόρων: Καταβάλλει πόρους (όπως γραμμές διακοπής, διευθύνσεις μνήμης και κανάλια DMA) στους οδηγούς.

* Διακοπές: Το υποσύστημα I/O χειρίζεται διακόπτες που παράγονται από συσκευές εισόδου/εξόδου. Αυτές οι διακοπές σηματοδοτούν ότι η συσκευή έχει ολοκληρώσει μια λειτουργία ή απαιτεί προσοχή (π.χ. ένα πλήκτρο). Ο χειριστής διακοπής καθορίζει ποιος οδηγός πρέπει να χρησιμοποιηθεί για να επεξεργαστεί το συμβάν.

* Άμεση πρόσβαση μνήμης (DMA): Για συσκευές υψηλής ταχύτητας (όπως σκληρούς δίσκους και κάρτες δικτύου), η DMA επιτρέπει στη συσκευή να μεταφέρει δεδομένα απευθείας προς ή από τη μνήμη χωρίς να περιλαμβάνει την CPU, απελευθερώνοντας την CPU για άλλες εργασίες. Το υποσύστημα I/O διαχειρίζεται τις λειτουργίες DMA.

3. Προγραμματισμός I/O:

* δικαιοσύνη και απόδοση: Το λειτουργικό σύστημα χρησιμοποιεί αλγόριθμους προγραμματισμού εισόδου/εξόδου για να αποφασίσει ποιες εισόδους εισόδου/εξόδου για την εξυπηρέτηση πρώτα. Αυτό στοχεύει στην εξισορρόπηση της δικαιοσύνης (δίνοντας όλες τις συσκευές μια ευκαιρία) και την αποτελεσματικότητα (ελαχιστοποιώντας τους χρόνους αναμονής).

* Προτεραιότητα: Ορισμένα αιτήματα εισόδου/εξόδου ενδέχεται να έχουν προτεραιότητα σε σχέση με άλλους (π.χ., μια είσοδος πληκτρολογίου μπορεί να δοθεί προτεραιότητα σε μια ανάγνωση δίσκου).

4. Κλήσεις συστήματος:

* Διεπαφή εφαρμογής: Οι εφαρμογές δεν αλληλεπιδρούν άμεσα με τα προγράμματα οδήγησης συσκευών. Αντ 'αυτού, χρησιμοποιούν κλήσεις συστήματος - απαιτούν στον πυρήνα του OS - για να εκτελέσουν λειτουργίες I/O. Αυτές οι κλήσεις συστήματος είναι εξαιρετικά αφηρημένες. Για παράδειγμα, το `read ()` μπορεί να χρησιμοποιηθεί για να διαβάσει δεδομένα από ένα αρχείο, μια υποδοχή δικτύου ή ακόμα και ένα πληκτρολόγιο, χωρίς την εφαρμογή να χρειάζεται να γνωρίζει την υποκείμενη συσκευή.

5. Buffering:

* Ροή δεδομένων εξομάλυνσης: Το λειτουργικό σύστημα χρησιμοποιεί buffer για να αποθηκεύσει προσωρινά δεδομένα I/O. Αυτό εξομαλύνει τις διαφορές στα ποσοστά μεταφοράς δεδομένων μεταξύ της εφαρμογής και της συσκευής, εμποδίζοντας την απώλεια δεδομένων ή τις καθυστερήσεις. Για παράδειγμα, εάν μια εφαρμογή γράφει δεδομένα γρηγορότερα από ό, τι ένας δίσκος μπορεί να το γράψει, τα δεδομένα αποθηκεύονται σε ένα buffer έως ότου ο δίσκος είναι έτοιμος.

Απλοποιημένο παράδειγμα:

Φανταστείτε ότι μια εφαρμογή θέλει να εκτυπώσει ένα έγγραφο. Η εφαρμογή κάνει μια κλήση συστήματος (π.χ. `print ()`). Το υποσύστημα I/O του OS προσδιορίζει τον εκτυπωτή, εντοπίζει τον οδηγό του και μεταφέρει τα δεδομένα στο πρόγραμμα οδήγησης. Ο οδηγός μεταφράζει τα δεδομένα στη γλώσσα του εκτυπωτή και τα στέλνει στον εκτυπωτή μέσω της διεπαφής του. Ο εκτυπωτής σηματοδοτεί την ολοκλήρωση μέσω διακοπής, την οποία το υποσύστημα I/O και η χειρολαβή του οδηγού. Στη συνέχεια, το λειτουργικό σύστημα ενημερώνει την εφαρμογή ότι η εκτύπωση ολοκληρώνεται.

Στην ουσία, το λειτουργικό σύστημα λειτουργεί ως διαμεσολαβητής, παρέχοντας μια συνεπής και διαχειρίσιμη διεπαφή σε μια τεράστια σειρά από διαφορετικές συσκευές I/O, επιτρέποντας στις εφαρμογές να αλληλεπιδρούν μαζί τους με ομοιόμορφο και αποτελεσματικό τρόπο.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα