Ο μηχανισμός διακοπής
1. Σήμα διακοπής: Ένα εξωτερικό συμβάν (όπως ένα πακέτο δικτύου που φτάνει, ένα χρονοδιακόπτη που λήγει ή ένα σφάλμα υλικού) ενεργοποιεί ένα σήμα διακοπής. Αυτό το σήμα αποστέλλεται στην CPU.
2. Χειρισμός διακοπής: Η CPU παύει την τρέχουσα εκτέλεση της διδασκαλίας της και αμέσως πηδά σε μια προκαθορισμένη θέση μνήμης που ονομάζεται "χειριστής διακοπής". Αυτός ο χειριστής είναι ένα κομμάτι κώδικα ειδικά σχεδιασμένο για να αντιμετωπίσει τον τύπο διακοπής που συνέβη.
3. Εξοικονόμηση περιβάλλοντος: Η CPU εξοικονομεί την κατάσταση της τρέχουσας εκτέλεσης της, συμπεριλαμβανομένων:
- Counter Program (PC): Η διεύθυνση της επόμενης εντολής που θα εκτελέσει η CPU.
- καταχωρητές: Οι τιμές που αποθηκεύονται στα μητρώα της CPU (τα οποία κατέχουν προσωρινά δεδομένα).
- σημαίες: Πληροφορίες κατάστασης σχετικά με την CPU (π.χ. σημαία μεταφοράς, μηδενική σημαία).
4. Διακοπή συντήρησης: Ο χειριστής διακοπής παίρνει τον έλεγχο και εκτελεί τις απαραίτητες ενέργειες για να ανταποκριθεί στο συμβάν διακοπής. Αυτό μπορεί να περιλαμβάνει:
- Δεδομένα ανάγνωσης: Για παράδειγμα, η ανάγνωση δεδομένων από μια κάρτα δικτύου όταν φτάσει ένα πακέτο.
- Αποστολή δεδομένων: Αποστολή δεδομένων σε μια συσκευή σε απάντηση σε διακοπή.
- Κατάσταση συστήματος ενημέρωσης: Ενημέρωση μετρητών, χρονομετρητών ή άλλων μεταβλητών συστήματος.
- Χειρισμός σφαλμάτων: Λαμβάνοντας διορθωτικές ενέργειες σε περίπτωση σφάλματος υλικού.
5. Αποκατάσταση περιβάλλοντος: Μόλις τελειώσει ο χειριστής διακοπής, αποκαθιστά το αποθηκευμένο πλαίσιο (PC, καταχωρητές, σημαίες) πίσω στην CPU.
6. Επιστροφή στην εκτέλεση: Η CPU συνεχίζει την εκτέλεση του αρχικού προγράμματος, ξεκινώντας από την εντολή που διακόπηκε.
Γιατί οι διακοπές είναι σημαντικές
* Ανταπόκριση σε πραγματικό χρόνο: Οι διακοπές επιτρέπουν στην CPU να χειρίζεται τα γεγονότα σε πραγματικό χρόνο, εξασφαλίζοντας ότι αντιμετωπίζονται αμέσως οι κρίσιμες εργασίες (όπως η επικοινωνία δικτύου ή η ανταπόκριση στην είσοδο του χρήστη).
* multitasking: Οι διακοπές αποτελούν το θεμέλιο των λειτουργικών συστημάτων πολλαπλών εργασιών, επιτρέποντας σε πολλαπλά προγράμματα να μοιράζονται το χρόνο της CPU. Η CPU μπορεί να αλλάξει γρήγορα μεταξύ των εργασιών ανταποκρινόμενοι στις διακοπές του χρονοδιακόπτη.
* Αποδοτικότητα: Οι διακοπές επιτρέπουν στην CPU να επικεντρωθεί στην πρωταρχική του εργασία ενώ μεταβάλλει το χειρισμό περιφερειακών συσκευών και άλλων συμβάντων σε αφοσιωμένους χειριστές διακοπής.
Τύποι διακοπών
* Διακοπή υλικού: Που ενεργοποιούνται από εξωτερικές συσκευές υλικού (όπως πληκτρολόγιο, μονάδες δίσκου, κάρτες δικτύου).
* Το λογισμικό διακόπτει: Που δημιουργούνται από οδηγίες στο ίδιο το πρόγραμμα (π.χ. κλήσεις συστήματος, εξαιρέσεις).
* Χρονοδιακόπτης διακόπτει: Που παράγεται από ένα χρονοδιακόπτη εντός της CPU, που χρησιμοποιείται για τον προγραμματισμό και το multitasking.
Παράδειγμα:
Φανταστείτε ότι πληκτρολογείτε στο πληκτρολόγιό σας. Κάθε πλήκτρο Press δημιουργεί διακοπή υλικού. Η CPU πηδά στον χειριστή διακοπής του πληκτρολογίου, διαβάζει τον κωδικό κλειδιού και ενημερώνει το buffer όπου αποθηκεύεται το κείμενο. Στη συνέχεια επιστρέφει στον επεξεργαστή κειμένου σας, ο οποίος έχει τώρα πρόσβαση στον πρόσφατα δακτυλογραφημένο χαρακτήρα.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα