Κεφάλαιο 5 | Ενότητα 8 | Ερωτήσεις επισκόπησης | Επόμενο | Προηγούμενο | Λεξικό όρων

  Τύποι διακοπών

Μέχρι στιγμής έχουμε υποθέσει ότι μια αίτηση διακοπής προέρχεται από μια συσκευή Ι/Ο με τη μορφή ενός σήματος υλικού (hardware signal) που τίθεται στην αρτηρία υπολογιστή. Στην πραγματικότητα όμως, υπάρχουν πολλές άλλες χρήσεις για τις διακοπές, εκτός από αυτή με την οποία ελέγχουμε τις συναλλαγές εισόδου/εξόδου , όπως:

ΕΠΑΝΑΦΟΡΑ ΑΠΟ ΛΑΘΗ: Ο επεξεργαστής έχει τη δυνατότητα να διακόψει ένα πρόγραμμα αν, καθώς εκτελεί τις εντολές του, διαγνώσει ένα λάθος ή μια επικίνδυνη κατάσταση. Για παράδειγμα, το πεδίο του κώδικα εντολής μιας εντολής (OP-code field) μπορεί να μην ανταποκρίνεται σε μια νόμιμη εντολή, ή μπορεί κάποια εντολή να επιχειρήσει διαίρεση με το μηδέν.
Οταν ενεργοποιείται μια διακοπή ως αποτέλεσμα τέτοιων καταστάσεων, ο επεξεργαστής δρα με τον ίδιο ακριβώς τρόπο όπως στην περίπτωση μιας Ι/Ο διακοπής: αναστέλλει το πρόγραμμα που εκτελείται και εκκινεί μια ρουτίνα εξυπηρέτησης της διακοπής. Αυτή θα πρέπει να λάβει τα κατάλληλα μέτρα για την επαναφορά από το λάθος, αν αυτή είναι δυνατή, ή τουλάχιστο να ενημερώσει το χρήστη για το λάθος.
Στην περίπτωση μιας διακοπής Ι/Ο, ο επεξεργαστής ολοκληρώνει την εκτέλεση της εντολής σε που βρίσκεται εκείνη τη στιγμή σε εξέλιξη πριν επικυρώσει τη διακοπή. Παρολ’αυτά, όταν η διακοπή προκαλείται από λάθος, δεν είναι δυνατό να ολοκληρωθεί η εκτέλεση της εντολής που διακόπηκε, και ο επεξεργαστής αρχίζει αμέσως την εξυπηρέτηση της διακοπής.

ΔΙΟΡΘΩΣΗ ΛΑΘΩΝ ΛΟΓΙΣΜΙΚΟΥ: Μια άλλη σημαντική χρήση των διακοπών είναι η βοήθεια που προσφέρουν στη διόρθωση λαθών σε προγράμματα (debugging). Το λογισμικό του συστήματος συνήθως περιλαμβάνει ένα πρόγραμμα που αποκαλείται διορθωτής λαθών (debugger), το οποίο βοηθά τον προγραμματιστή να βρει τα λάθη σε ένα πρόγραμμα. Ο διορθωτής λαθών χρησιμοποιεί διακοπές για να παράσχει δύο σημαντικές ευκολίες στο χρήστη: την αναζήτηση (trace) και τα σημεία διακοπής (breakpoints).

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

    ΕΠΙΚΟΙΝΩΝΙΑ ΜΕΤΑΞΥ ΠΡΟΓΡΑΜΜΑΤΩΝ. Οι εντολές διακοπών λογισμικού χρησιμοποιούνται από το λειτουργικό σύστημα για να επικοινωνήσουν ή να ελέγξουν την εκτέλεση άλλων προγραμμάτων.

    ΔΡΑΣΤΗΡΙΟΤΗΤΑ 4

    Να περιγράψετε συνοπτικά τουλάχιστον άλλους δύο τρόπους με τους οποίους χρησιμοποιούνται οι διακοπές εκτός από τον έλεγχο των συναλλαγών Ι/Ο. Να συγκρίνετε την απάντησή σας με την παράγραφο «Τύποι διακοπών».


    ΔΡΑΣΤΗΡΙΟΤΗΤΑ 5

    Να αναφέρετε μια σημαντική διαφορά των διακοπών Ι/Ο και των διακοπών που χρησιμοποιούνται για την επαναφορά από λάθος. Για ποιο λόγο θεωρείτε ότι υφίσταται η διαφορά αυτή; Να αιτιολογήσετε την απάντησή σας.

     

    ΑΠΑΝΤΗΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 5