Σε ένα σωληνωμένο υπολογιστή μια εντολή εκτελείται κατά στάδια και δεν ολοκληρώνεται παρά μόνο σε μερικούς κύκλους ρολογιού. Άλλες εντολές όμως, μπορεί να προκαλέσουν διακοπές κατά την εκτέλεση του προγράμματος και ίσως αναγκάσουν τον υπολογιστή να σταματήσει την εκτέλεση των εντολών που βρίσκονται στη σωλήνωση, πριν αυτές ολοκληρωθούν.
Στη σωλήνωση είναι πιο δύσκολο να γνωρίζουμε αν μια εντολή μπορεί να αλλάξει με ασφάλεια την κατάσταση του υπολογιστή, με αποτέλεσμα να γίνεται δύσκολη η αντιμετώπιση των διακοπών.
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 1
Τύποι διακοπών και απαιτήσεις
Η ορολογία που χρησιμοποιείται για την περιγραφή των καταστάσεων στις οποίες αλλάζει η κανονική σειρά εκτέλεσης των εντολών, είναι διαφορετική από υπολογιστή σε υπολογιστή. Χρησιμοποιούνται οι όροι διακοπή, σφάλμα και εξαίρεση. Χρησιμοποιούμε τον όρο διακοπή για την κάλυψη όλων αυτών των όρων, συμπεριλαμβανομένων των παρακάτω:
· Αίτηση συσκευής εισόδου – εξόδου.
· Κλήση υπηρεσίας λειτουργικού συστήματος απ' ένα πρόγραμμα χρήστη.
· Παρακολούθηση (tracing) εκτέλεσης εντολής.
· Σημείο διακοπής (διακοπή από τον προγραμματιστή).
· Αριθμητική υπερχείλιση ή υποχείλιση ακεραίων.
· Ανωμαλία αριθμών κινητής υποδιαστολής (FP).
· Σφάλμα σελίδας (όχι στην κύρια μνήμη).
· Μη ευθυγραμμισμένη πρόσβαση στη μνήμη (αν απαιτείται ευθυγράμμιση).
· Παραβίαση προστασίας μνήμης.
· Χρήση απροσδιόριστης εντολής.
· Δυσλειτουργία υλικού.
· Πτώση τάσης
ΔΡΑΣΤΗΡΙΟΤΗΤΑ 2
ΑΠΑΝΤΗΣΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ 2 ΔΡΑΣΤΗΡΙΟΤΗΤΑ 3
Το δύσκολο είναι η υλοποίηση διακοπών που συμβαίνουν μέσα στις εντολές. Η υλοποίηση τέτοιου είδους διακοπών απαιτεί να κληθεί ένα άλλο πρόγραμμα για να αποθηκεύσει την κατάσταση του εκτελούμενου προγράμματος, να διορθώσει τα αίτια της διακοπής και τέλος να αποκαταστήσει την κατάσταση του προγράμματος, πριν η εντολή που προκάλεσε τη διακοπή προσπαθήσει ξανά να εκτελεστεί. Αν μια σωλήνωση προσφέρει τη δυνατότητα σε έναν υπολογιστή να χειριστεί τη διακοπή, να αποθηκεύσει την κατάσταση και να ξαναρχίσει, χωρίς να επηρεάσει την εκτέλεση του προγράμματος, τότε η σωλήνωση ή ο υπολογιστής λέγεται ότι είναι επανεκκινήσιμη/ος. Σχεδόν όλοι οι σημερινοί υπολογιστές υποστηρίζουν αυτή τη δυνατότητα..
|
|