Διακοπή

Μια διακοπή είναι όταν ένας μικροεπεξεργαστής κάνει κάτι που δεν του έχει ζητηθεί να κάνει λόγω πραγμάτων που συμβαίνουν έξω από αυτό που υποτίθεται ότι πρέπει να κάνει το πρόγραμμα. Οι διακοπές συμβαίνουν πιο συχνά επειδή ο επεξεργαστής λαμβάνει ένα σήμα από το υλικό, αλλά μπορούν επίσης να προέλθουν από το λογισμικό που εκτελείται μαζί με το πρόγραμμα. Μεταξύ των πολλών πραγμάτων που μπορούν να προκαλέσουν διακοπές είναι το πάτημα πλήκτρων στο πληκτρολόγιο, η ενεργοποίηση του ενσωματωμένου χρονοδιακόπτη, η πραγματοποίηση μιας μεταφοράς δεδομένων ή οποιοδήποτε άλλο συμβάν που χρειάζεται άμεσα μια ενέργεια από τον επεξεργαστή. Οι διακοπές μπορούν να συμβούν ανά πάσα στιγμή ενώ ο επεξεργαστής εκτελεί ένα πρόγραμμα, ανεξάρτητα από το πού βρίσκεται στον πηγαίο κώδικα του προγράμματος.

Αυτό το διάγραμμα δείχνει τι συμβαίνει όταν καλείται μια διακοπήZoom
Αυτό το διάγραμμα δείχνει τι συμβαίνει όταν καλείται μια διακοπή

Πώς λειτουργούν οι διακοπές

Μια κλήση υλικού ή λογισμικού για μια διακοπή (γνωστή ως αίτημα διακοπής ή IRQ) αναλαμβάνεται από έναν "χειριστή διακοπής" ή μια "ρουτίνα εξυπηρέτησης διακοπών" (ISR) στον επεξεργαστή. Τοποθετεί αυτό που κάνει εκείνη τη στιγμή σε μια στοίβα και στη συνέχεια ακολουθεί ορισμένες εντολές που εκτελεί μια συγκεκριμένη εργασία για λογαριασμό του συστήματος, η οποία δεν χρειάζεται να αποτελεί μέρος του προγράμματος που εκτελεί. Μόλις τελειώσει με την ακολουθία των εντολών, το ISR παίρνει πίσω αυτό που έβαλε στη στοίβα και συνεχίζει με αυτό που έκανε πριν συμβεί η διακοπή.

Πολλοί ελεγκτές διακοπών από τους σημερινούς επεξεργαστές χρησιμοποιούν ένα διάνυσμα διακοπής για να ταξινομούν τις διακοπές με βάση το από πού προέρχονται, μεταξύ άλλων. Το διάνυσμα περιέχει συνήθως τον κώδικα που πρέπει να εκτελεστεί όταν συμβεί η διακοπή. Οι ISRs είναι γενικά υπεύθυνοι για την αντιμετώπιση ή την "εξυπηρέτηση" της διακοπής, μαζί με τη διατήρηση του εαυτού τους σε κατάσταση λειτουργίας.

Χρήσεις των διακοπών

  • Ενεργοποίηση εργασιών σε τακτά χρονικά διαστήματα
  • Εξυπηρέτηση μιας εξωτερικής συσκευής που μπορεί να συμβεί ανά πάσα στιγμή
  • Κατάργηση της ανάγκης για σύγχρονη δημοσκόπηση
  • Ενεργοποίηση ενός λειτουργικού συστήματος (ΛΣ) για ανάληψη δράσης

Ερωτήσεις και απαντήσεις

Ερ: Τι είναι η διακοπή;


A: Μια διακοπή είναι μια ενέργεια που γίνεται από έναν μικροεπεξεργαστή και δεν αποτελεί μέρος του προγράμματος που εκτελείται λόγω εξωτερικών γεγονότων.

Ερ: Τι προκαλεί την εμφάνιση διακοπών τις περισσότερες φορές σε έναν επεξεργαστή;


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

Ερ: Μπορούν οι διακοπές να προκληθούν από το λογισμικό;


Α: Ναι, οι διακοπές μπορούν επίσης να προκληθούν από λογισμικό που εκτελείται παράλληλα με το πρόγραμμα που εκτελείται.

Ερ: Αναφέρετε μερικά παραδείγματα γεγονότων που θα μπορούσαν να προκαλέσουν μια διακοπή.
Α: Παραδείγματα γεγονότων που θα μπορούσαν να προκαλέσουν μια διακοπή είναι το πάτημα πλήκτρων στο πληκτρολόγιο, η ενεργοποίηση ενός χρονοδιακόπτη και η πραγματοποίηση μεταφοράς δεδομένων.

Ερ: Εξαρτάται μια διακοπή από το πού εκτελείται το πρόγραμμα;


Α: Όχι, οι διακοπές μπορούν να εμφανιστούν οποιαδήποτε στιγμή κατά τη διάρκεια της εκτέλεσης του προγράμματος, ανεξάρτητα από το σημείο στο οποίο βρίσκεται το πρόγραμμα στον πηγαίο του κώδικα.

Ε: Είναι μια διακοπή ένα επιθυμητό γεγονός για έναν μικροεπεξεργαστή;


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

Ε: Πώς ανταποκρίνεται ένας μικροεπεξεργαστής σε μια διακοπή;


Α: Ένας μικροεπεξεργαστής αναστέλλει προσωρινά το πρόγραμμα που εκτελείται και εκτελεί μια ρουτίνα εξυπηρέτησης διακοπών (ISR) για να χειριστεί τη διακοπή πριν επιστρέψει στο πρόγραμμα που εκτελείται.

AlegsaOnline.com - 2020 / 2023 - License CC3