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

  Ομοιότητες και διαφορές των διακοπών

Σχέση ανάμεσα στις ρουτίνες εξυπηρέτησης διακοπών και στις υπορουτίνες:
Οι διακοπές μοιάζουν αρκετά με τις κλήσεις υπορουτίνων (subroutine calls). Και στην περίπτωση των διακοπών, όπως και στις υπορουτίνες, ο έλεγχος μεταφέρεται από την αρχική διαδικασία (η οποία κι αυτή είναι πρόγραμμα, όπως μια υπορουτίνα) σε μια δεύτερη διαδικασία – αυτή που ζήτησε τη διακοπή. Ταυτόχρονα, σώζεται προσωρινά στη μνήμη ο μετρητής εντολών της πρώτης διαδικασίας. Μόλις η δεύτερη διαδικασία ολοκληρωθεί επιστρέφεται ο έλεγχος στην πρώτη και συνεχίζεται η εκτέλεσή της από την επόμενη εντολή από αυτή που δείχνει ο αποθηκευμένος στη μνήμη μετρητής εντολών.

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

Διαφορές διακοπών- εξαιρέσεων

Μία διακοπή I/O είναι ακριβώς όπως οι εξαιρέσεις, με δύο σημαντικές διαφορές:

  1. Μία διακοπή I/O είναι ασύγχρονη σε σχέση με την εκτέλεση των εντολών. Δηλαδή, η διακοπή δε σχετίζεται με καμία εντολή και δεν εμποδίζει την ολοκλήρωση των εντολών. Αυτό είναι πολύ διαφορετικό είτε από τις εξαιρέσεις λάθους σελίδας (page fault exception) ή εξαιρέσεις όπως η αριθμητική υπερχείλιση (arithmetic overflow). Η μονάδα ελέγχου χρειάζεται μόνο να ελέγχει για μία εκκρεμή διακοπή I/O τη στιγμή που ξεκινά μία νέα εντολή.
  2. Εκτός από το γεγονός ότι πραγματοποιείται μια διακοπή I/O, θα θέλαμε να στείλουμε περαιτέρω πληροφορίες, όπως την ταυτότητα της συσκευής που παρήγαγε τη διακοπή. Επιπλέον, οι διακοπές αντιπροσωπεύουν συσκευές που μπορεί να έχουν διαφορετικές προτεραιότητες και γι’αυτό και οι αιτήσεις διακοπών τους να έχουν διαφορετική κρισιμότητα.

Ομοιότητες μεταξύ της εξέτασης και των διακοπών

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

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

  • Τόσο οι μεταφορές με εξέταση, όσο και οι οδηγούμενες από διακοπές μεταφορές θέτουν την ευθύνη της μετακίνησης δεδομένων και της διαχείρισης της μεταφοράς στον επεξεργαστή.

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

    Παράδειγμα.

    Υποθέστε ότι έχουμε την ίδια δισκέτα και τον ίδιο επεξεργαστή που χρησιμοποιήσαμε στο παράδειγμα της ενότητας 7. Υποθέστε πως θέλει να μεταφέρει ποσότητες των 16 bit με ένα ρυθμό 50 KB το δευτερόλεπτο. Η επιβάρυνση για κάθε μεταφορά, περιλαμβάνοντας τη διακοπή, είναι 100 κύκλοι ρολογιού. Βρείτε το ποσοστό του επεξεργαστή που καταναλώνεται όταν η δισκέτα είναι ενεργή.

    Απάντηση.

    Ο ρυθμός με τον οποίο πρέπει να διακόπτουμε τον επεξεργαστή όταν ο δίσκος εκτελεί μεταφορά είναι:

    Συνεπώς,
    Κύκλοι ρολογιού ανά sec για την εξέταση = 25 x 210 x 100 = 25.6 x 105 κύκλοι ρολογιού ανά sec.

    Ποσοστό του επεξεργαστή που καταναλώνεται κατά τη διάρκεια μία μεταφοράς
             = (25.6x105) / (50x106) = 5%

    Φυσικά, οι δισκέτες δεν απασχολούνται στο 100% του χρόνου και ο επεξεργαστής παραμένει ανενόχλητος όταν ο δίσκος είναι ανενεργός, αφού δεν απαιτείται καμία εξέταση. Για παράδειγμα, αν η δισκέτα εκτελεί μεταφορές μόνο κατά το 10% του χρόνου, η επιβάρυνση είναι μόνο 0,5%. Τέλος παραδείγματος

    Η απουσία επιβάρυνσης όταν το I/O είναι ανενεργό, αποτελεί το κύριο πλεονέκτημα μίας διασύνδεσης οδηγούμενης από διακοπές έναντι της εξέτασης.

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

    Τόσο στο παράδειγμα της ενότητας 7, όσο και στο παρόμοιο παράδειγμα αυτής της ενότητας διαπιστώνουμε ότι το ποσοστό του επεξεργαστή που καταναλώνεται για τον έλεγχο μιας ανάγνωσης από τη δισκέτα είναι και στις δυο μεθόδους (εξέτασης και διακοπών Ι/Ο) το ίδιο, 5%. Μπορείτε να εξηγήσετε πως αυτό συμβαδίζει με τη θεωρητική μελέτη ότι το με το σχήμα διακοπών πετυχαίνουμε ο επεξεργαστής να απασχολείται πολύ λιγότερο με τις διαδικασίες Ι/Ο; Να αιτιολογήσετε την απάντησή σας.

     

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