1. Αρχιτεκτονική Υπολογιστικών Συστημάτων

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Λειτουργικό Σύστημα (Operating System) 1o μέρος
Advertisements

Ερωτηματολόγιο Συλλογής Απαιτήσεων Εφαρμογών Υψηλών Επιδόσεων
ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΕΡΓΑΣΙΩΝ
5 Οργάνωση υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών ã Εκδόσεις Κλειδάριθμος.
Εισαγωγή στις Τεχνολογίες της Πληροφορικής και των Επικοινωνιών
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
Λειτουργικό Σύστημα ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ENOTHTA B.1.3 (1)
Εισαγωγικές έννοιες πληροφορικής
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Δεύτερο.
Δομή Μαθήματος Υπεύθυνος: Δρ Ν. Πετρέλλης, ΠΔ407
Συστήματα εισόδου/εξόδου
Αρχιτεκτονική Προσωπικού Υπολογιστή
Η επιστήμη των υπολογιστών
Λειτουργικά Συστήματα
ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ.
-Στοίβα-Ουρά - Πλεονεκτήματα πινάκων -Δομές δεδομένων δευτερεύουσας μνήμης -Πληροφορική και δεδομένα -Παραδείγματα-Προβλήματα ψευδοκώδικα.
Το υλικο του Υπολογιστη
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
Λειτουργικό Σύστημα 2ο μέρος.
Αρχιτεκτονική Υπολογιστών Γλώσσες Μηχανής
Κεφάλαιο 1ο: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
ΚΕΦΑΛΑΙΟ 3 Το υλικό των υπολογιστών.
Οργάνωση και Αρχιτεκτονική Υπολογιστών Διάδρομοι Μεταφοράς Δεδομένων
Τεχνολογία Δικτύων Επικοινωνιών
Σχεδίαση μονάδας ελέγχου επεξεργαστή Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκτάριος Κοζύρης
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ. Ε
Λογισμικο συστηματοσ Κεφάλαιο 4ο
Εκτέλεση Αλγορίθμων σε ψευδογλώσσα
Βαρόμετρο ΕΒΕΘ - Καταναλωτές Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Κεφάλαιο 2ο Πεπερασμένα αυτόματα.
William Stallings Computer Organization and Architecture 7 th Edition Κεφάλαιο 16 Λειτουργία Μονάδας Ελέγχου.
Η ΕΚΤΕΛΕΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΧΡΗΣΤΗ ΑΠ’ ΤΟΝ Η/Υ ΤΟΜΕΑΣ ΤΕΧΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Δ.ΙΕΚ ΠΑΤΡΑΣ.
ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑ 1.
2006 GfK Praha CORRUPTION CLIMATE IN EUROPE % % % %0 - 10% % % % % % ΚΛΙΜΑ ΔΙΑΦΘΟΡΑΣ Η.
ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ & ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΩΝ
Τα θέματα μας σήμερα Ηλεκτρονικοί υπολογιστές Υλικό και λογισμικό
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Α.Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση.
Διαχείριση μνήμης Υπόβαθρο Εναλλαγή Συνεχής κατανομή Σελιδοποίηση
ΑΡΧΙΤΕΚΤΟΝΙΚΗ & ΟΡΓΑΝΩΣΗ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 1 Εισαγωγή
Οργάνωση και Αρχιτεκτονική Υπολογιστών Βασικές αρχές Αρχιτεκτονικής
Ο ΗΛΕΚΤΡΟΝΙΚΟΣ ΥΠΟΛΟΓΙΣΤΗΣ
Κεφάλαιο 2 Το Εσωτερικό του υπολογιστή
2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.
Βαρόμετρο ΕΒΕΘ - Καταναλωτές Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Αρχιτεκτονική Μνήμης Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου.
Α ΡΧΙΤΕΚΤΟΝΙΚΗ Μ ΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ Υποκεφάλαιο 1.2 (Η κεντρική μονάδα επεξεργασίας CPU08)
Ο προσωπικός υπολογιστής εσωτερικά
Κεφάλαιο 10 – Υποπρογράμματα
Μικροεπεξεργαστές Λειτουργία - Εξέλιξη
ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΗΣ.
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
Διεργασίες.
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 5: Γνωριμία με το Λογισμικό
ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΉ ΝΊΚΟΣ ΠΑΠΑΔΆΚΗΣ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ.
Κρυφή μνήμη (cache memory) (1/2) Εισαγωγή στην Πληροφορκή1 Η κρυφή μνήμη είναι μία πολύ γρήγορη μνήμη – πιο γρήγορη από την κύρια μνήμη – αλλά πιο αργή.
Η Κεντρική Μονάδα Συστήματος Εισαγωγή στην Πληροφορκή 1 Η κεντρική μονάδα του συστήματος (base unit ή system unit) αποτελεί τον πυρήνα ενός υπολογιστή.
ΠΑΡΑΔΕΙΓΜΑ: ΤΑ ΕΠΙΠΕΔΑ ΥΛΙΚΟΥ – ΛΟΓΙΣΜΙΚΟΥ ΣΕ ΕΝΑΝ ΥΠΟΛΟΓΙΣΤΗ.
ΕΙΣΑΓΩΓΗ μέρος 2 ΜΙΚΡΟΕΛΕΓΚΤΕΣ - ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Π. ΚΩΣΤΑΡΑΚΗΣ Β. ΧΡΙΣΤΟΦΙΛΑΚΗΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ.
Γιώργος Μαγουλάκης Εξάμηνο: Εαρινό 2015 ΤΕΙ Κρήτης Τμ. Μηχανικών Πληροφορικής Τμ. Μηχανικών Πληροφορικής.
Καταχωρητές (Registers) (1/3) Εισαγωγή στην Πληροφορκή1 Οι Καταχωρητές (Registers) είναι ειδικές θέσεις μνήμης υψηλής ταχύτητας που χρησιμοποιούνται για.
1. Αρχιτεκτονική Υπολογιστικών Συστημάτων
Κατανεμημένα Συστήματα
Κατηγορίες και Προδιαγραφές Λογισμικού Η/Υ (Software)
Λειτουργικά Συστήματα και Ασφάλεια Πληροφοριακών Συστημάτων ΔΙΕΡΓΑΣΙΕΣ
Εισαγωγή στα Λειτουργικά Συστήματα (ΛΣ) Operating Systems (OS)
Κεφάλαιο 7: Διαδικτύωση-Internet Μάθημα 7.9: Δρομολόγηση
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Α.Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση.
ΔΙΕΡΓΑΣΙΕΣ.
Μεταγράφημα παρουσίασης:

1. Αρχιτεκτονική Υπολογιστικών Συστημάτων Ανασκόπηση ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Alan M.Turing, 1950 “I believe that in about fifty years' time it will be possible, to programme computers, with a storage capacity of about 109, to make them play the imitation game so well that an average interrogator will not have more than 70 per cent chance of making the right identification after five minutes of questioning. The original question, "Can machines think?" I believe to be too meaningless to deserve discussion. Nevertheless I believe that at the end of the century the use of words and general educated opinion will have altered so much that one will be able to speak of machines thinking without expecting to be contradicted.” ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υπολογιστικό Σύστημα (Computer System) CPU ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υπολογιστικό Σύστημα Μνήμη CPU ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Input/Output ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Προσκόμιση (fetch) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Εκτέλεση (execute) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Προσκόμιση (fetch) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Εκτέλεση (execute) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Κεντρική Υπολογιστική Μονάδα (CPU) Μνήμη CPU Διασύνδεση Μνήμη ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Κεντρική Υπολογιστική Μονάδα (CPU) Arithmetic Logic Unit Μνήμη Control Unit Program Counter Registers ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Δίαυλοι (Buses) Διασύνδεση Μνήμη CPU ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Δίαυλοι (Buses) CPU Μνήμη Address Data Control ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Κύρια Μνήμη (Main Memory) CPU Διασύνδεση ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Κύρια Μνήμη CPU DRAM Chip 0 DRAM Chip 1 Main Memory Cache Secondary Memory ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Κύρια Μνήμη CPU DRAM Chip 0 DRAM Chip 1 Main Memory ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Διακοπές (Interrupts) Μνήμη CPU Διασύνδεση Ενώ ένα πρόγραμμα εκτελείται, ένα άλλο θέλει να εκτελεστεί (θέλει να διακόψει το πρώτο πρόγραμμα). Προσθέτουμε ένα έλεγχο διακοπών στον κύκλο fetch-execute. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Fetch ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Execute ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Έλεγξε για Διακοπές ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Έλεγχος διακοπών Αν εκκρεμεί μια διακοπή: Έλεγχος διακοπών ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Processor Context Αν εκκρεμεί μια διακοπή: Σώσε το processor context (program counter + registers) στη μνήμη ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU PC Διεύθυνση του ISR Αν εκκρεμεί μια διακοπή: Σώσε το processor context (program counter + registers) στη μνήμη Φόρτωσε τον program counter με τη διεύθυνση του Interrupt Service routine (ISR). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Το ISR τρέχει όπως ένα κανονικό πρόγραμμα Fetch Execute Έλεγχος διακοπών ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Μόλις το ISR τελειώσει την εκτέλεση: ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Processor Context Μόλις το ISR τελειώσει την εκτέλεση: Αποκατέστησε το παλιό processor context. Συνέχισε να εκτελείς το αρχικό πρόγραμμα. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Βασικός κύκλος εντολής Εκτέλεση εντολής Βασικός κύκλος εντολής ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Παραλαβή και εκτέλεση εντολής Κατά την εκκίνηση κάθε κύκλου εντολής ο επεξεργαστής παραλαμβάνει μια εντολή από την μνήμη. Ο PC κρατά τη διεύθυνση της εντολής, ώστε αυτή να μπορέσει να παραληφθεί. Ο επεξεργαστής αυξάνει πάντοτε κατά 1 τον PC (Program Counter) για να παραλάβει την αμέσως επόμενη εντολή, εκτός αν προκύψει διαφορετική οδηγία. Η εντολή που παραλήφθηκε από τη μνήμη φορτώνεται στον καταχωρητή εντολών (IR- Instruction Register). Η φύση της εντολής καθορίζει την ενέργεια που πρέπει να κάνει ο επεξεργαστής. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Κύκλος εντολής με διακοπές ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Βασικές λειτουργίες των διακοπών Οι διακοπές μεταφέρουν τον έλεγχο στη ρουτίνα εξυπηρέτησης διακοπής (Interrupt Service Routine) μέσω του διανύσματος διακοπής (interrupt vector), που περιέχει τις διευθύνσεις όλων των ρουτινών εξυπηρέτησης διακοπών. Η αρχιτεκτονική διακοπών πρέπει να αποθηκεύσει τη διεύθυνση της διακοπτόμενης εντολής. Οι εισερχόμενες διακοπές απενεργοποιούνται (disabled), καθώς μια άλλη διακοπή εξυπηρετείται, για να αποφευχθεί μια απώλεια διακοπής (lost interrupt). Ένα ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ καθοδηγείται από διακοπές (interrupt driven). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Αρχιτεκτονική υπολογιστικού συστήματος ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Σύγχρονη I/O Κατά τη διάρκεια εκτέλεσης, κάθε πρόγραμμα χρειάζεται λειτουργίες I/O για να δέχεται δεδομένα από το πληκτρολόγιο, να ανοίγει αρχεία και να εκτυπώνει αποτελέσματα. Στα πρώτα υπολογιστικά συστήματα ένα πρόγραμμα έπρεπε να περιμένει την ολοκλήρωση των λειτουργιών I/O. (Σύγχρονη I/O) Έτσι συχνά η CPU παρέμενε ανενεργή. requesting process waiting device driver Interrupt handler Hardware data transfer user kernel time ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Ασύγχρονη I/O και διακοπές Η ασύγχρονη I/O επιστρέφει τον έλεγχο στο πρόγραμμα του χρήστη χωρίς να αναμένειτην ολοκλήρωση των I/O. Όταν ολοκληρωθεί η λειτουργία I/O,προκαλείται μια διακοπή στην CPU που αναστέλλει προσωρινά το πρόγραμμα χρήστη και διαχειρίζεται τη συσκευή I/O. requesting process continuing device driver Interrupt handler Hardware data transfer user kernel time ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Λειτουργία ενός υπολογιστικού συστήματος Οι λειτουργίες I/O και οι λειτουργίες της CPU μπορούν να εκτελούνται ταυτόχρονα (σύγχρονη αρχιτεκτονική). Κάθε ελεγκτής συσκευής (device controller) επιφορτίζεται με τον έλεγχο ενός τύπου συσκευής. Κάθε ελεγκτής συσκευής διαθέτει ένα τοπικό buffer (ενταμιευτής μνήμης). Η CPU μετακινεί δεδομένα από / προς την κύρια μνήμη προς /από τα τοπικά buffers. Οι λειτουργίες I/O γίνονται από τη συσκευή προς το τοπικό buffer του ελεγκτή. Ο ελεγκτής συσκευής πληροφορεί την CPU ότι έχει ολοκληρώσει τη λειτουργία του προκαλώντας μια διακοπή (interrupt). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Υποσύστημα I/O του Πυρήνα (Kernel) του Λειτουργικού Συστήματος ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Λειτουργία του επεξεργαστή σε περίπτωση διακοπής Αποθηκεύει κάποιο περιεχόμενο που σχετίζεται με τη διεργασία που διακόπτεται, δηλαδή : Τον δείκτη εντολών προγράμματος Τον δείκτη στοίβας Το περιεχόμενο των καταχωρητών Γίνεται διακλάδωση σε μια ρουτίνα διαχείρισης διακοπών που καθορίζει τη φύση της διακοπής και την επεξεργάζεται Όταν ολοκληρωθεί η εκτέλεση της διακοπής ο έλεγχος επιστρέφει στη διεργασία που διακόπηκε ή σε κάποια άλλη διεργασία ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Μηχανισμός εξυπηρέτησης διακοπών Σε κάθε μια ομάδα συσκευών του ίδιου τύπου (δισκέτα, σκληρός δίσκος, τερματικό κλπ) αντιστοιχεί μια θέση μνήμης που καλείται διάνυσμα διακοπής (interrupt vector). Η θέση αυτή περιλαμβάνει τη διεύθυνση της διαδικασίας εξυπηρέτησης της διακοπής (interrupt service procedure). Όταν φθάσει ένα σήμα διακοπής (π.χ. από τον δίσκο) ο δείκτης εντολών προγράμματος και πιθανώς οι τιμές άλλων καταχωρητών τοποθετούνται στη στοίβα από το υλικό διακοπής. Στη συνέχεια ο έλεγχος μεταφέρεται στη διεύθυνση που ορίζεται από το διάνυσμα διακοπής (π.χ. του δίσκου). Αυτή είναι όλη η εργασία που επιτελεί το υλικό. Ακολούθως αναλαμβάνει δράση το λογισμικό. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

ΔΙΑΚΟΠΕΣ ΔΙΑΚΟΠΗ : η αναστολή της δραστηριότητας κάθε εργασίας λόγω της εμφάνισης ενός συγκεκριμένου γεγονότος Η διακοπή ενός προγράμματος αναφέρεται στη μεταφορά ή στον έλεγχο του προγράμματος από το τρέχον εκτελούμενο πρόγραμμα σε ένα άλλο πρόγραμμα εξυπηρέτησης, ως αποτέλεσμα μιας εσωτερικής ή εξωτερικής απαίτησης του συστήματος. Ο έλεγχος επιστρέφει στο αρχικό πρόγραμμα μετά από την εκτέλεση του προγράμματος εξυπηρέτησης. Οι διακοπές είναι ένας τρόπος για να βελτιωθεί η αποτελεσματικότητα της επεξεργασίας. Όλοι οι υπολογιστές παρέχουν ένα μηχανισμό σύμφωνα με τον οποίο άλλα μέρη (μνήμη, Ι/Ο) μπορούν να διακόψουν την κανονική λειτουργία του επεξεργαστή. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

ΔΙΑΚΟΠΕΣ (συν.) Ο επεξεργαστής μπορεί να απασχοληθεί με την εκτέλεση άλλων εντολών κατά τη διάρκεια μιας λειτουργίας Ι/Ο. Η συσκευή που απαιτεί εξυπηρέτηση αποστέλλει μια αίτηση διακοπής προς τον επεξεργαστή. Ο επεξεργαστής απαντά με προσωρινή παύση εκτέλεσης του τρέχοντος προγράμματος, ενεργοποιεί τον διαχειριστή διακοπής της συσκευής και επαναφέρει την κανονική εκτέλεση του προγράμματος μετά την ολοκλήρωση της εξυπηρέτησης της διακοπής. Ο επεξεργαστής και το Λ.Σ. είναι υπεύθυνα για την προσωρινή παύση του προγράμματος και την επαναφορά του στο ίδιο σημείο. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Κατηγορίες διακοπών (1) Υπάρχουν τρεις κύριες κατηγορίες διακοπών που προξενούν τη διακοπή της κανονικής εκτέλεσης του προγράμματος. External interrupts (εξωτερικές) Internal interrupts (εσωτερικές) Software interrupts (λογισμικού) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

External interrupts Προέρχονται από συσκευές Ι/Ο, συσκευές χρονισμού, από κυκλώματα που παρακολουθούν την τροφοδοσία του ηλ. ρεύματος και γενικά από οποιαδήποτε εξωτερική πηγή. Παραδείγματα δημιουργίας εξωτερικών διακοπών: συσκευές Ι/Ο που απαιτούν μεταβίβαση δεδομένων, συσκευές Ι/Ο που ολοκληρώνουν τη μεταφορά δεδομένων, σφάλμα τροφοδοσίας, διακοπές υπέρβασης χρονικού ορίου προγραμμάτων που βρίσκονται σε βρόγχο αναμονής και ξεπερνούν ένα χρονικό όριο. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Internal interrupts Προέρχονται από εσφαλμένη ή μη σωστή χρήση εντολών και δεδομένων. Ονομάζονται επίσης παγιδεύσεις (traps). Παραδείγματα εσωτερικών διακοπών : υπερχείλιση καταχωρητών, υπερχείλιση στοίβας, προσπάθεια διαίρεσης με το μηδέν, σφάλμα προστασίας, λανθασμένος κωδικός εντολής. Αυτές οι εσφαλμένες συνθήκες προκύπτουν συνήθως ως αποτέλεσμα πρόωρου τερματισμού της εκτέλεσης μιας εντολής. Το πρόγραμμα εξυπηρέτησης που επεξεργάζεται τις εσωτερικές διακοπές καθορίζει τη διορθωτική ενέργεια που πρέπει να γίνει. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Παγίδευση (trap) Μια παγίδευση (trap) είναι μια διακοπή λογισμικού (software-generated interrupt) που προκαλείται είτε από ένα λάθος είτε από μια απαίτηση χρήστη. Είναι σύγχρονη με τη διαδικασία η οποία την προκαλεί. Π.χ. σύγχρονες διακοπές συμβαίνουν όταν μια διαδικασία προσπαθεί να εκτελέσει μια μη επιτρεπτή ενέργεια, όπως π.χ. η διαίρεση με το μηδέν ή η αναφορά σε μια προστατευμένη διεύθυνση μνήμης. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Διαφορές εσωτερικών και εξωτερικών διακοπών Οι εσωτερικές διακοπές ξεκινούν από κάποια ασυνήθιστη κατάσταση που προκαλείται από ένα πρόγραμμα παρά από κάποιο εξωτερικό γεγονός. Οι εσωτερικές διακοπές είναι σύγχρονες με το πρόγραμμα ενώ οι εξωτερικές είναι ασύγχρονες. Αν το πρόγραμμα εκτελεστεί ξανά, οι εσωτερικές διακοπές θα συμβούν στο ίδιο σημείο κάθε φορά. Οι εξωτερικές διακοπές εξαρτώνται από εξωτερικές συνθήκες που είναι ανεξάρτητες από το πρόγραμμα που εκτελείται κάθε φορά. Οι εσωτερικές διακοπές και οι εξωτερικές διακοπές ξεκινούν από σήματα που προέρχονται από το υλικό ή την CPU. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Software interrupts Μια διακοπή λογισμικού ξεκινά από την εκτέλεση μιας εντολής και είναι μια ειδική κλήση εντολής που συμπεριφέρεται περισσότερο ως διακοπή παρά σαν μια κλήση διαδικασίας. Μπορεί να χρησιμοποιηθεί από έναν προγραμματιστή για να ξεκινήσει μια διαδικασία διακοπής σε οποιοδήποτε σημείο του προγράμματος. Η πιο συνήθης χρήση των διακοπών λογισμικού σχετίζεται με την κλήση μιας εντολής επόπτη (supervisor call instruction). Αυτή η εντολή παρέχει τον τρόπο για τη μετάβαση της CPU από τη κατάσταση χρήστη (user mode) σε κατάσταση επόπτη (supervisor mode). Ορισμένες λειτουργίες στον υπολογιστή μπορούν να εκτελούνται μόνον σε supervisor mode, π.χ. μια πολύπλοκη διαδικασία Ι/Ο. Ένα πρόγραμμα χρήστη πρέπει να εκτελείται σε user mode. Μόλις απαιτηθεί μια μεταφορά Ι/Ο απαιτείται το σύστημα να περιέλθει σε supervisor mode και αυτό επιτυγχάνεται μέσω μιας supervisor call instruction. Η εντολή προκαλεί μια διακοπή λογισμικού που αποθηκεύει την τρέχουσα κατάσταση της CPU και εισάγει σε μια νέα κατάσταση την CPU που ανήκει στην κατάσταση επόπτη (supervisor mode). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Κατηγορίες διακοπών (2) Προγράμματος : παράγονται από κάποια συνθήκη η οποία προκύπτει ως αποτέλεσμα της εκτέλεσης μιας εντολής, όπως η αριθμητική υπερχείλιση, η διαίρεση με το μηδέν, η απόπειρα εκτέλεσης εσφαλμένης εντολής ή η αναφορά σε τμήμα της μνήμης που βρίσκεται εκτός των ορίων του χρήστη. Χρονισμού : παράγονται από ένα χρονιστή εσωτερικά στον επεξεργαστή. Αυτό επιτρέπει στο Λ.Σ. να εκτελεί συγκεκριμένες λειτουργίες σε τακτική βάση. Ι/Ο : παράγονται από έναν ελεγκτή Ι/Ο, για να σηματοδοτήσουν την κανονική ολοκλήρωση μιας πράξης ή μια ποικιλία καταστάσεων σφάλματος Βλάβης υλικού : παράγονται από βλάβη, όπως η διακοπή τροφοδοσίας ή το σφάλμα ισοτιμίας (parity) της μνήμης. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Intel Pentium Processor Event-Vector Table ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Άσκηση - 1 Ποιες οι διαφορές ανάμεσα σε μια διαδικασία διακοπής (interrupt procedure) και μια κλήση διαδικασίας (subroutine call); Η διακοπή συνήθως οφείλεται σε ένα εξωτερικό ή εσωτερικό σήμα παρά στην εκτέλεση μιας εντολής (με εξαίρεση τις διακοπές λογισμικού) Η διεύθυνση του προγράμματος εξυπηρέτησης της διακοπής καθορίζεται από το hardware και όχι από το πεδίο διεύθυνσης μιας εντολής Μια διαδικασία διακοπής συνήθως αποθηκεύει όλη την πληροφορία που είναι αναγκαία για τον καθορισμό της κατάστασης της CPU και όχι μόνον τον μετρητή προγράμματος (PC) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Άσκηση - 2 Ποιες είναι οι διαφορές μεταξύ μιας παγίδευσης (trap) και μιας εξωτερικής διακοπής (external interrupt); Ποια είναι η χρήση κάθε μιας; Μια διακοπή είναι μιας αλλαγή της ροής εκτέλεσης στο σύστημα που δημιουργείται από το υλικό. Ο χειριστής διακοπής (Interrupt handler) καλείται να διερευνήσει την αιτία της διακοπής. Στη συνέχεια ο έλεγχος επιστρέφει στο πλαίσιο και στην εντολή που είχε διακοπεί. Μια διακοπή μπορεί να χρησιμοποιηθεί για να σηματοδοτήσει την ολοκλήρωση μιας λειτουργίας Ι/Ο έτσι ώστε να αποφευχθεί η ανάγκη για περιόδευση (polling) της συσκευής. Μια παγίδευση είναι μια διακοπή που προκαλείται από το λογισμικό και μπορεί να χρησιμοποιηθεί για την κλήση διαδικασιών του Λ.Σ. ή για την εύρεση αριθμητικών λαθών. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Άσκηση – 3 (ΑΣΕΠ 2005) Το άνυσμα διακοπής (interrupt vector) υποδηλώνει: α) ένα δεδομένο. β) μία διεύθυνση. γ) μέγεθος μνήμης. δ) τίποτα από τα παραπάνω. Τα σήματα διακοπής από μία περιφερειακή μονάδα διακόπτουν την εκτέλεση μιας εντολής σε γλώσσα μηχανής: α) στο τέλος του κύκλου ανάκλησης (fetch cycle) της εντολής. β) στο τέλος του κύκλου εκτέλεσης (execution cycle) της εντολής. γ) άμεσα, διακόπτοντας τον κύκλο μηχανής ο οποίος εκτελείται. δ) σε καμία από τις παραπάνω περιπτώσεις. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Χειρισμός διακοπών Η μεταφορά δεδομένων μεταξύ της CPU και των συσκευών I/O ξεκινά από την CPU, μόνον όταν η συσκευή είναι έτοιμη να επικοινωνήσει με την CPU. Η ετοιμότητα της συσκευής καθορίζεται από ένα σήμα διακοπής. Η CPU απαντά στην απαίτηση για διακοπή αποθηκεύοντας την κατάστασή της (PC κλπ) σε μια στοίβα και στη συνέχεια το πρόγραμμα διακλαδίζεται στη ρουτίνα εξυπηρέτησης που διαχειρίζεται την απαιτούμενη μεταφορά. Σε μια τυπική εφαρμογή ένα πλήθος συσκευών I/O είναι συνδεδεμένες στον υπολογιστή, και κάθε συσκευή είναι ικανή να προκαλέσει μια απαίτηση διακοπής. Η πρώτη διεργασία εκ μέρους του συστήματος είναι η εξακρίβωση της προέλευσης της διακοπής. Υπάρχει προφανώς η πιθανότητα πολλές διακοπές να απαιτήσουν ταυτόχρονη εξυπηρέτηση. Στην περίπτωση αυτή το σύστημα πρέπει επίσης να αποφασίσει ποια συσκευή θα εξυπηρετήσει κατά προτεραιότητα. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Προτεραιότητα διακοπών Ένα σύστημα με προτεραιότητα διακοπών εγκαθιστά προτεραιότητες μεταξύ των διαφόρων πηγών διακοπών για να αποφασίζει ποια θα εξυπηρετεί πρώτη όταν δύο ή περισσότερες απαιτήσεις φθάσουν ταυτόχρονα. Το σύστημα πρέπει επίσης να αποφασίσει ποιες καταστάσεις θα μπορούν να διακόπτουν τον υπολογιστή καθώς αυτός θα εξυπηρετεί μια άλλη διακοπή. Στο υψηλότερο επίπεδο προτεραιοτήτων βρίσκονται εκείνες οι απαιτήσεις για τις οποίες οποιαδήποτε καθυστέρηση ή διακοπή μπορεί να επιφέρει σημαντικές συνέπειες. Οι συσκευές με υψηλές ταχύτητες μεταφοράς, όπως οι δίσκοι έχουν υψηλή προτεραιότητα, ενώ αργές συσκευές, όπως το πληκτρολόγιο λαμβάνουν χαμηλή προτεραιότητα. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Περιόδευση (Polling) Η επιβολή προτεραιοτήτων για τις ταυτόχρονες διακοπές μπορεί να γίνει μέσω λογισμικού ή υλικού. Η διαδικασία της περιόδευσης είναι μια τεχνική που διαπιστώνει την κατάσταση του υλικού μέσω επαναλαμβανόμενου, κατά τακτά χρονικά διαστήματα, ελέγχου κάθε συσκευής. Χρησιμοποιείται για να προσδιορίσει την πηγή της διακοπής με την υψηλότερη προτεραιότητα με μεθόδους λογισμικού. Η περιόδευση χρησιμοποιεί μια κοινή διεύθυνση εκκίνησης για όλες τις διακοπές. Το πρόγραμμα που διαχειρίζεται τις διακοπές περιοδεύει με τη σειρά κάθε προέλευση διακοπής. Η σειρά με την οποία αυτές ελέγχονται καθορίζει την προτεραιότητα κάθε διακοπής. Η προέλευση της διακοπής με την υψηλότερη προτεραιότητα ελέγχεται πρώτη και αν υπάρχει σήμα διακοπής ο έλεγχος διακλαδίζεται στην αντίστοιχη ρουτίνα εξυπηρέτησης. Διαφορετικά ελέγχεται η επόμενη κ.ο.κ. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Η μονάδα αυτή λειτουργεί ως ένας γενικός διαχειριστής. Έτσι η αρχική ρουτίνα εξυπηρέτησης για όλες τις διακοπές αποτελείται από ένα πρόγραμμα που ελέγχει τις προελεύσεις των διακοπών και στη συνέχεια διακλαδίζεται σε μία ή περισσότερες ρουτίνες εξυπηρέτησης. Μεταξύ όλων των συσκευών που επιθυμούν να διακόψουν τον υπολογιστή επιλέγεται εκείνη που ανήκει στη συσκευή με τη μεγαλύτερη προτεραιότητα. Το μειονέκτημα αυτής της μεθόδου λογισμικού είναι ότι στην περίπτωση που υπάρχουν πολλές διακοπές ή πολλές συσκευές των οποίων η κατάσταση δεν αλλάζει, ο χρόνος που απαιτείται για την περιόδευση υπερβαίνει τον χρόνο που είναι διαθέσιμος για την εξυπηρέτηση της συσκευής Ι/Ο ή προκαλείται σημαντική επιβάρυνση (overhead) κατά την εκτέλεση. Στην περίπτωση αυτή χρησιμοποιείται μια hardware priority – interrupt unit για να επιταχύνει τη διαδικασία. Η μονάδα αυτή λειτουργεί ως ένας γενικός διαχειριστής. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Hardware priority – interrupt unit Δέχεται αιτήσεις διακοπών από διάφορες πηγές, αποφασίζει ποια έχει τη μεγαλύτερη προτεραιότητα και τελικά παρέχει μια απαίτηση διακοπής στο σύστημα. Για την επιτάχυνση της διαδικασίας, κάθε πηγή διακοπής διαθέτει το δικό της διάνυσμα διακοπής για την απευθείας πρόσβαση στη δική της ρουτίνα εξυπηρέτησης. Έτσι δεν απαιτείται περιόδευση μια και όλες οι αποφάσεις λαμβάνονται από τη μονάδα. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Επεξεργασία διακοπών υλικού Η γραμμή διακοπής, μια ηλεκτρική σύνδεση μεταξύ του board και του επεξεργαστή, καθίσταται ενεργή δηλαδή συσκευές όπως χρονιστές, περιφερειακά και ελεγκτές ενεργοποιούν μέσω σημάτων τη γραμμή διακοπής για να πληροφορήσουν τον επεξεργαστή για την ύπαρξη κάποιου γεγονότος. Οι περισσότεροι επεξεργαστές περιέχουν έναν ελεγκτή διακοπών που ταξινομεί τις διακοπές ανάλογα με την προτεραιότητά τους έτσι ώστε οι σημαντικές να εξυπηρετούνται πρώτες. Οι υπόλοιπες τίθενται σε ουρά αναμονής. Αφού η γραμμή διακοπής γίνει ενεργή, ο επεξεργαστής ολοκληρώνει την εκτέλεση της τρέχουσας εντολής και μετά παύει προσωρινά την εκτέλεση της τρέχουσας διεργασίας, αποθηκεύοντας αρκετές πληροφορίες έτσι ώστε να μπορέσει στη συνέχεια να επαναφέρει τη διεργασία με τις σωστές πληροφορίες στους καταχωρητές. Αρχικά τα δεδομένα αυτά αποθηκευόταν σε μια δομή δεδομένων με όνομα PSW (Program Status Word). Στην αρχιτεκτονική Intel IA-32 αυτή η κατάσταση της διεργασίας αναφέρεται ως TSS (Task State Segment) και αποθηκεύεται στο PCB (Process Control Block) της διεργασίας. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Ο επεξεργαστής μεταβιβάζει τον έλεγχο στον κατάλληλο διαχειριστή διακοπής. Κάθε τύπος διακοπής συσχετίζεται με μια μοναδική τιμή που χρησιμοποιείται από τον επεξεργαστή ως δείκτης (index) στο διάνυσμα διακοπών (interrupt vector), που είναι ένας πίνακας δεικτών (array of pointers) στους διαχειριστές διακοπών. Το διάνυσμα διακοπών βρίσκεται σε περιοχή της μνήμης που οι διεργασίες δεν έχουν πρόσβαση, ώστε να μην μπορούν να τροποποιήσουν τα περιεχόμενα. Ο χειριστής διακοπών εκτελεί τις κατάλληλες εντολές που εξαρτώνται από τον τύπο της διακοπής. Μετά από την ολοκλήρωση του χειριστή διακοπών επαναφέρεται η διεργασία που είχε διακοπεί (ή κάποια επόμενη διεργασία, αν ο πυρήνας έχει ήδη κάνει μια εναλλαγή πλαισίου (context swith)). H διεργασία που είχε διακοπεί (ή κάποια επόμενη διεργασία) εκτελείται. Το Λ.Σ. είναι υπεύθυνο για το ποια διεργασία θα εκτελεστεί στη συνέχεια. Η σημαντική αυτή απόφαση, που επηρεάζει το επίπεδο εξυπηρέτησης κάθε εφαρμογής αφορά τη δρομολόγηση του επεξεργαστή (processor scheduling). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Αλληλεπίδραση υλικού και Λ.Σ. για clock interrupts ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Μεταφορά ελέγχου μέσω διακοπών ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Άποψη των συστατικών συστήματος ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Κλήσεις συστήματος (system calls) Η διεπαφή μεταξύ του Λ.Σ. και των προγραμμάτων των χρηστών ορίζεται μέσω ενός συνόλου “εκτεταμένων εντολών extended instructions” που παρέχει το Λ.Σ. Αυτές οι “εκτεταμένες εντολές” είναι περισσότερο γνωστές ως κλήσεις συστήματος, ωστόσο μπορούν να υλοποιηθούν και με άλλους τρόπους. Γράφονται γενικά σε γλώσσα assembly Περιλαμβάνουν βιβλιοθήκες που παρέχουν διεπαφή υψηλού επιπέδου Υπάρχουν τρεις γενικές μέθοδοι που χρησιμοποιούνται για τη μεταβίβαση παραμέτρων: Μεταβίβαση παραμέτρων σε καταχωρητές. Αποθήκευση των παραμέτρων σε πίνακα στη μνήμη. Αποθήκευση (push) των παραμέτρων στη στοίβα (stack). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Κλήσεις συστήματος (2) Τα προγράμματα του χρήστη επικοινωνούν με το Λ.Σ. και απαιτούν εξυπηρέτηση εκτελώντας κλήσεις συστήματος. Σε κάθε κλήση συστήματος αντιστοιχεί μια καθορισμένη γνωστή διαδικασία την οποία μπορούν να καλέσουν τα προγράμματα του χρήστη. Η διαδικασία αυτή τοποθετεί τις παραμέτρους κλήσης συστήματος σε μια επιλεγμένη περιοχή και στη συνέχεια εκπέμπει μια εντολή trap (ένα είδος κλήσης προστατευμένης διαδικασίας) για να ξεκινήσει το Λ.Σ. Μόλις το Λ.Σ. ανακτήσει τον έλεγχο μετά από την εντολή trap, εξετάζει αν οι παράμετροι είναι αποδεκτές, και αν είναι εκτελεί την εργασία. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Ο αριθμός και ο τύπος των κλήσεων συστήματος διαφέρει στα Λ.Σ. Όταν η εργασία τελειώσει το Λ.Σ. τοποθετεί έναν κωδικό κατάστασης σε έναν καταχωρητή, ειδοποιώντας για την επιτυχή εκτέλεση ή αποτυχία και εκτελεί μια εντολή RETURN FROM TRAP , για να επιστρέψει τον έλεγχο στη διαδικασία βιβλιοθήκης. Στη συνέχεια η διαδικασία βιβλιοθήκης επιστρέφει σ’ αυτόν που την κάλεσε, επιστρέφοντας τον κωδικό κατάστασης σαν τιμή μιας συνάρτησης. Ο αριθμός και ο τύπος των κλήσεων συστήματος διαφέρει στα Λ.Σ. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Συνήθεις κλήσεις συστήματος Δημιουργία διεργασιών Διαχείριση μνήμης Ανάγνωση και εγγραφή αρχείων Είσοδος / έξοδος ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Win32 API calls ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Άσκηση - 4 Να περιγράψετε τις διαφορές μεταξύ μιας κλήσης συστήματος (system call) και μιας κλήσης συνάρτησης επιπέδου χρήστη (user level function call). Να περιγράψετε τα βήματα κάθε μιας καθώς και τον τρόπο που υλοποιούνται. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Λύση Μια συνάρτηση επιπέδου χρήστη εκτελείται από μια διεργασία χρήστη στο δικό της χώρο διευθύνσεων. Η διεργασία χρήστη αποθηκεύει το δικό της PC Προετοιμάζει χώρο στο δικό της stack για τις τοπικές μεταβλητές που εμπλέκονται Εκτελεί τη συνάρτηση Μετά την επιστροφή από τη συνάρτηση, την αφαιρεί από το stack και συνεχίζει με τη συνάρτηση κλήσης της. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Μια κλήση συστήματος είναι μια διαδικασία που εκτελεί το Λ. Σ Μια κλήση συστήματος είναι μια διαδικασία που εκτελεί το Λ.Σ. όταν τίθεται σε λειτουργία από μια διεργασία χρήστη μέσω μιας διακοπής. Η διεργασία χρήστη τοποθετεί τις μεταβλητές της κλήσης συστήματος στο stack Η διεργασία χρήστη εκπέμπει μια διακοπή και τίθεται σε κατάσταση αναμονής. Καλείται η ρουτίνα εξυπηρέτησης της διακοπής του Λ.Σ. και η κλήση συστήματος εξυπηρετείται από το ΛΣ Μετά την ολοκλήρωση, το ΛΣ αλλάζει την κατάσταση της διεργασίας σε έτοιμη (ready) και στη συνέχεια εκτελείται η διεργασία του δρομολογητή. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Κλάσεις διακοπών σε επεξεργαστές Intel Pentium Ο επεξεργαστής μπορεί να λάβει δύο είδη σημάτων : διακοπές (interrupts) και εξαιρέσεις (exceptions). Οι διακοπές ενημερώνουν τον επεξεργαστή ότι συνέβη ένα γεγονός ή ότι έχει αλλάξει η κατάσταση μιας εξωτερικής συσκευής. Η αρχιτεκτονική αυτή είναι επίσης εφοδιασμένη με software – generated interrupts και οι διεργασίες μπορούν να τις χρησιμοποιήσουν για να εκτελέσουν κλήσεις συστήματος. Οι εξαιρέσεις δείχνουν ότι έχει συμβεί κάποιο σφάλμα, είτε στο υλικό είτε ως αποτέλεσμα μιας εντολής λογισμικού. Η αρχιτεκτονική αυτή χρησιμοποιεί επίσης εξαιρέσεις για την προσωρινή διακοπή μιας διεργασίας. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Διακοπές Τύπος Περιγραφή Ι/Ο Ξεκινούν από το υλικό Ι/Ο και ενημερώνουν τον επεξεργαστή για την αλλαγή κατάστασης μιας συσκευής timer Ένα σύστημα μπορεί να περιέχει συσκευές που παράγου διακοπές περιοδικά. Οι διακοπές αυτές χρησιμοποιούνται από διεργασίες διαχείρισης χρόνου και παρακολούθησης της απόδοσης. Επίσης ελέγχουν αν έχει παρέλθει το κβάντο χρόνου μιας διεργασίας. Inter-processor interrupts Επιτρέπουν την ανταλλαγή μηνυμάτων σε multiprocessor συστήματα ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Εξαιρέσεις Κλάση Περιγραφή fault Συμβαίνουν κατά την εκτέλεση εντολών γλώσσας μηχανής. Περιλαμβάνουν τη διαίρεση με το μηδέν, προσπάθεια εκτέλεσης μη επιτρεπτών εντολών, προσπάθεια αναφοράς σε διευθύνσεις μνήμης που δεν υπάρχουν, προσπάθεια εκτέλεσης προνομιούχων εντολών και αναφορά σε προστατευμένο πόρο trap Δημιουργούνται από υπερχειλίσεις και όταν ο έλεγχος του προγράμματος φθάσει σε σημείο διακοπής του κώδικα abort Προκύπτουν όταν ο επεξεργαστής ανιχνεύσει σφάλμα από το οποίο η διεργασία δεν μπορεί να επανέλθει ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01

Χαρακτηριστικά των υπολογιστικών συστημάτων Οι άνθρωποι των Λ.Σ. ενδιαφέρονται για την αποτελεσματική εκχώρηση και τον συντονισμό των πόρων σε ένα απλό ΗΥ. Οι άνθρωποι των δικτύων ενδιαφέρονται για την αποτελεσματική επικοινωνία bμεταξύ των υπολογιστών των δικτύων. Οι άνθρωποι των βάσεων δεδομένων ενδιαφέρονται για την παροχή ταχείας πρόσβασης σε ορισμένα δεδομένα (που βρίσκονται ανάμεσα σε τεράστια ποσά δεδομένων) και συγχρόνως για την προστασία της ακεραιότητας των δεδομένων που μπορεί να παραποιηθεί από τη πολλαπλή ταυτόχρονη χρήση. Οι άνθρωποι της αρχιτεκτονικής των υπολογιστών ενδιαφέρονται για το σχεδιασμό των επεξεργαστών έτσι ώστε να λειτουργούν αποτελεσματικά με τους αλγορίθμους, τους μεταγλωττιστές και τις δομές δεδομένων. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01