Διδακτικά Βιβλία του Παιδαγωγικού Ινστιτούτου

Αναζήτηση

Βρες
Εμφάνιση

Διακοπές

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

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

Ένας εσωτερικός χρονιστής διακόπτει την κεντρική μονάδα επεξεργασίας αρκετές φορές το δευτερόλεπτο, για να μοιράζει τον έλεγχο σε διαφορετικά προγράμματα σε συστήματα πολυεπεξεργασίας, για να κρατά την ώρα κ.ά. Όταν συμβαίνει μια διακοπή, ο έλεγχος μεταφέρεται στο λειτουργικό σύστημα, το οποίο και αναλαμβάνει να εξυπηρετήσει την αίτηση της διακοπής, εκτελώντας διάφορες λειτουργίες. Η αίτηση διακοπής περιγράφεται με το διάνυσμα διακοπής (interrupt vector). Αυτό είναι η διεύθυνση του προγράμματος που θα εκτελεστεί για να εξυπηρετηθεί η αίτηση της διακοπής. Αν κάποιο πρόγραμμα χρειάζεται να διαβάσει από το πληκτρολόγιο, αποστέλλεται το αντίστοιχο διάνυσμα διακοπής με διεύθυνση το «πρόγραμμα» του λειτουργικού συστήματος που διαβάζει από το πληκτρολόγιο. Ο επεξεργαστής στη συνέχεια εκτελεί αυτό το «πρόγραμμα», που ονομάζεται ρουτίνα εξυπηρέτησης διακοπής (interrupt service routine) και στο τέλος αποθηκεύει σε προκαθορισμένους καταχωρητές τα αποτελέσματα, ώστε το πρόγραμμα να τα χρησιμοποιήσει.

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

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