Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


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

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

2 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01 2 “I believe that in about fifty years' time it will be possible, to programme computers, with a storage capacity of about 10 9, 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.” Alan M.Turing, 1950

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google