Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΝεοπτόλημος Αλεξάνδρου Τροποποιήθηκε πριν 7 χρόνια
1
1. Αρχιτεκτονική Υπολογιστικών Συστημάτων
Ανασκόπηση ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
2
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
3
Υπολογιστικό Σύστημα (Computer System)
CPU ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
4
Υπολογιστικό Σύστημα Μνήμη CPU
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
5
Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
6
Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Input/Output
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
7
Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
8
Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Προσκόμιση (fetch)
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
9
Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Εκτέλεση (execute)
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
10
Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Προσκόμιση (fetch)
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
11
Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Εκτέλεση (execute)
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
12
Κεντρική Υπολογιστική Μονάδα (CPU)
Μνήμη CPU Διασύνδεση Μνήμη ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
13
Κεντρική Υπολογιστική Μονάδα (CPU)
Arithmetic Logic Unit Μνήμη Control Unit Program Counter Registers ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
14
Δίαυλοι (Buses) Διασύνδεση Μνήμη CPU
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
15
Δίαυλοι (Buses) CPU Μνήμη Address Data Control
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
16
Κύρια Μνήμη (Main Memory)
CPU Διασύνδεση ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
17
Κύρια Μνήμη CPU DRAM Chip 0 DRAM Chip 1 Main Memory Cache
Secondary Memory ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
18
Κύρια Μνήμη CPU DRAM Chip 0 DRAM Chip 1 Main Memory
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
19
Διακοπές (Interrupts)
Μνήμη CPU Διασύνδεση Ενώ ένα πρόγραμμα εκτελείται, ένα άλλο θέλει να εκτελεστεί (θέλει να διακόψει το πρώτο πρόγραμμα). Προσθέτουμε ένα έλεγχο διακοπών στον κύκλο fetch-execute. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
20
Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Fetch
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
21
Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Execute
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
22
Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Έλεγξε για Διακοπές
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
23
Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Έλεγχος διακοπών
Αν εκκρεμεί μια διακοπή: Έλεγχος διακοπών ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
24
Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Processor Context
Αν εκκρεμεί μια διακοπή: Σώσε το processor context (program counter + registers) στη μνήμη ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
25
Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU PC Διεύθυνση του ISR
Αν εκκρεμεί μια διακοπή: Σώσε το processor context (program counter + registers) στη μνήμη Φόρτωσε τον program counter με τη διεύθυνση του Interrupt Service routine (ISR). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
26
Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU
Το ISR τρέχει όπως ένα κανονικό πρόγραμμα Fetch Execute Έλεγχος διακοπών ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
27
Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU
Μόλις το ISR τελειώσει την εκτέλεση: ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
28
Υπολογιστικό Σύστημα Διασύνδεση Μνήμη CPU Processor Context
Μόλις το ISR τελειώσει την εκτέλεση: Αποκατέστησε το παλιό processor context. Συνέχισε να εκτελείς το αρχικό πρόγραμμα. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
29
Λειτουργία ενός υπολογιστικού συστήματος
Οι λειτουργίες I/O και οι λειτουργίες της CPU μπορούν να εκτελούνται ταυτόχρονα (σύγχρονη αρχιτεκτονική). Κάθε ελεγκτής συσκευής (device controller) επιφορτίζεται με τον έλεγχο ενός τύπου συσκευής. Κάθε ελεγκτής συσκευής διαθέτει ένα τοπικό buffer (ενταμιευτής μνήμης). Η CPU μετακινεί δεδομένα από / προς την κύρια μνήμη προς /από τα τοπικά buffers. Οι λειτουργίες I/O γίνονται από τη συσκευή προς το τοπικό buffer του ελεγκτή. Ο ελεγκτής συσκευής πληροφορεί την CPU ότι έχει ολοκληρώσει τη λειτουργία του προκαλώντας μια διακοπή (interrupt). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
30
Λειτουργία του επεξεργαστή σε περίπτωση διακοπής
Αποθηκεύει κάποιο περιεχόμενο που σχετίζεται με τη διεργασία που διακόπτεται, δηλαδή : Τον δείκτη εντολών προγράμματος Τον δείκτη στοίβας Το περιεχόμενο των καταχωρητών Γίνεται διακλάδωση σε μια ρουτίνα διαχείρισης διακοπών που καθορίζει τη φύση της διακοπής και την επεξεργάζεται Όταν ολοκληρωθεί η εκτέλεση της διακοπής ο έλεγχος επιστρέφει στη διεργασία που διακόπηκε ή σε κάποια άλλη διεργασία ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
31
ΔΙΑΚΟΠΕΣ ΔΙΑΚΟΠΗ : η αναστολή της δραστηριότητας κάθε εργασίας λόγω της εμφάνισης ενός συγκεκριμένου γεγονότος Η διακοπή ενός προγράμματος αναφέρεται στη μεταφορά ή στον έλεγχο του προγράμματος από το τρέχον εκτελούμενο πρόγραμμα σε ένα άλλο πρόγραμμα εξυπηρέτησης, ως αποτέλεσμα μιας εσωτερικής ή εξωτερικής απαίτησης του συστήματος. Ο έλεγχος επιστρέφει στο αρχικό πρόγραμμα μετά από την εκτέλεση του προγράμματος εξυπηρέτησης. Οι διακοπές είναι ένας τρόπος για να βελτιωθεί η αποτελεσματικότητα της επεξεργασίας. Όλοι οι υπολογιστές παρέχουν ένα μηχανισμό σύμφωνα με τον οποίο άλλα μέρη (μνήμη, Ι/Ο) μπορούν να διακόψουν την κανονική λειτουργία του επεξεργαστή. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
32
ΔΙΑΚΟΠΕΣ (συν.) Ο επεξεργαστής μπορεί να απασχοληθεί με την εκτέλεση άλλων εντολών κατά τη διάρκεια μιας λειτουργίας Ι/Ο. Η συσκευή που απαιτεί εξυπηρέτηση αποστέλλει μια αίτηση διακοπής προς τον επεξεργαστή. Ο επεξεργαστής απαντά με προσωρινή παύση εκτέλεσης του τρέχοντος προγράμματος, ενεργοποιεί τον διαχειριστή διακοπής της συσκευής και επαναφέρει την κανονική εκτέλεση του προγράμματος μετά την ολοκλήρωση της εξυπηρέτησης της διακοπής. Ο επεξεργαστής και το Λ.Σ. είναι υπεύθυνα για την προσωρινή παύση του προγράμματος και την επαναφορά του στο ίδιο σημείο. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
33
Κατηγορίες διακοπών (1)
Υπάρχουν τρεις κύριες κατηγορίες διακοπών που προξενούν τη διακοπή της κανονικής εκτέλεσης του προγράμματος. External interrupts (εξωτερικές) Internal interrupts (εσωτερικές) Software interrupts (λογισμικού) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
34
Χειρισμός διακοπών Η μεταφορά δεδομένων μεταξύ της CPU και των συσκευών I/O ξεκινά από την CPU, μόνον όταν η συσκευή είναι έτοιμη να επικοινωνήσει με την CPU. Η ετοιμότητα της συσκευής καθορίζεται από ένα σήμα διακοπής. Η CPU απαντά στην απαίτηση για διακοπή αποθηκεύοντας την κατάστασή της (PC κλπ) σε μια στοίβα και στη συνέχεια το πρόγραμμα διακλαδίζεται στη ρουτίνα εξυπηρέτησης που διαχειρίζεται την απαιτούμενη μεταφορά. Σε μια τυπική εφαρμογή ένα πλήθος συσκευών I/O είναι συνδεδεμένες στον υπολογιστή, και κάθε συσκευή είναι ικανή να προκαλέσει μια απαίτηση διακοπής. Η πρώτη διεργασία εκ μέρους του συστήματος είναι η εξακρίβωση της προέλευσης της διακοπής. Υπάρχει προφανώς η πιθανότητα πολλές διακοπές να απαιτήσουν ταυτόχρονη εξυπηρέτηση. Στην περίπτωση αυτή το σύστημα πρέπει επίσης να αποφασίσει ποια συσκευή θα εξυπηρετήσει κατά προτεραιότητα. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
35
Προτεραιότητα διακοπών
Ένα σύστημα με προτεραιότητα διακοπών εγκαθιστά προτεραιότητες μεταξύ των διαφόρων πηγών διακοπών για να αποφασίζει ποια θα εξυπηρετεί πρώτη όταν δύο ή περισσότερες απαιτήσεις φθάσουν ταυτόχρονα. Το σύστημα πρέπει επίσης να αποφασίσει ποιες καταστάσεις θα μπορούν να διακόπτουν τον υπολογιστή καθώς αυτός θα εξυπηρετεί μια άλλη διακοπή. Στο υψηλότερο επίπεδο προτεραιοτήτων βρίσκονται εκείνες οι απαιτήσεις για τις οποίες οποιαδήποτε καθυστέρηση ή διακοπή μπορεί να επιφέρει σημαντικές συνέπειες. Οι συσκευές με υψηλές ταχύτητες μεταφοράς, όπως οι δίσκοι έχουν υψηλή προτεραιότητα, ενώ αργές συσκευές, όπως το πληκτρολόγιο λαμβάνουν χαμηλή προτεραιότητα. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
36
Περιόδευση (Polling) Η επιβολή προτεραιοτήτων για τις ταυτόχρονες διακοπές μπορεί να γίνει μέσω λογισμικού ή υλικού. Η διαδικασία της περιόδευσης είναι μια τεχνική που διαπιστώνει την κατάσταση του υλικού μέσω επαναλαμβανόμενου, κατά τακτά χρονικά διαστήματα, ελέγχου κάθε συσκευής. Χρησιμοποιείται για να προσδιορίσει την πηγή της διακοπής με την υψηλότερη προτεραιότητα με μεθόδους λογισμικού. Η περιόδευση χρησιμοποιεί μια κοινή διεύθυνση εκκίνησης για όλες τις διακοπές. Το πρόγραμμα που διαχειρίζεται τις διακοπές περιοδεύει με τη σειρά κάθε προέλευση διακοπής. Η σειρά με την οποία αυτές ελέγχονται καθορίζει την προτεραιότητα κάθε διακοπής. Η προέλευση της διακοπής με την υψηλότερη προτεραιότητα ελέγχεται πρώτη και αν υπάρχει σήμα διακοπής ο έλεγχος διακλαδίζεται στην αντίστοιχη ρουτίνα εξυπηρέτησης. Διαφορετικά ελέγχεται η επόμενη κ.ο.κ. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
37
Η μονάδα αυτή λειτουργεί ως ένας γενικός διαχειριστής.
Έτσι η αρχική ρουτίνα εξυπηρέτησης για όλες τις διακοπές αποτελείται από ένα πρόγραμμα που ελέγχει τις προελεύσεις των διακοπών και στη συνέχεια διακλαδίζεται σε μία ή περισσότερες ρουτίνες εξυπηρέτησης. Μεταξύ όλων των συσκευών που επιθυμούν να διακόψουν τον υπολογιστή επιλέγεται εκείνη που ανήκει στη συσκευή με τη μεγαλύτερη προτεραιότητα. Το μειονέκτημα αυτής της μεθόδου λογισμικού είναι ότι στην περίπτωση που υπάρχουν πολλές διακοπές ή πολλές συσκευές των οποίων η κατάσταση δεν αλλάζει, ο χρόνος που απαιτείται για την περιόδευση υπερβαίνει τον χρόνο που είναι διαθέσιμος για την εξυπηρέτηση της συσκευής Ι/Ο ή προκαλείται σημαντική επιβάρυνση (overhead) κατά την εκτέλεση. Στην περίπτωση αυτή χρησιμοποιείται μια hardware priority – interrupt unit για να επιταχύνει τη διαδικασία. Η μονάδα αυτή λειτουργεί ως ένας γενικός διαχειριστής. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
38
Επεξεργασία διακοπών υλικού
Η γραμμή διακοπής, μια ηλεκτρική σύνδεση μεταξύ του board και του επεξεργαστή, καθίσταται ενεργή δηλαδή συσκευές όπως χρονιστές, περιφερειακά και ελεγκτές ενεργοποιούν μέσω σημάτων τη γραμμή διακοπής για να πληροφορήσουν τον επεξεργαστή για την ύπαρξη κάποιου γεγονότος. Οι περισσότεροι επεξεργαστές περιέχουν έναν ελεγκτή διακοπών που ταξινομεί τις διακοπές ανάλογα με την προτεραιότητά τους έτσι ώστε οι σημαντικές να εξυπηρετούνται πρώτες. Οι υπόλοιπες τίθενται σε ουρά αναμονής. Αφού η γραμμή διακοπής γίνει ενεργή, ο επεξεργαστής ολοκληρώνει την εκτέλεση της τρέχουσας εντολής και μετά παύει προσωρινά την εκτέλεση της τρέχουσας διεργασίας, αποθηκεύοντας αρκετές πληροφορίες έτσι ώστε να μπορέσει στη συνέχεια να επαναφέρει τη διεργασία με τις σωστές πληροφορίες στους καταχωρητές. Αρχικά τα δεδομένα αυτά αποθηκευόταν σε μια δομή δεδομένων με όνομα PSW (Program Status Word). Στην αρχιτεκτονική Intel IA-32 αυτή η κατάσταση της διεργασίας αναφέρεται ως TSS (Task State Segment) και αποθηκεύεται στο PCB (Process Control Block) της διεργασίας. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
39
Ο επεξεργαστής μεταβιβάζει τον έλεγχο στον κατάλληλο διαχειριστή διακοπής. Κάθε τύπος διακοπής συσχετίζεται με μια μοναδική τιμή που χρησιμοποιείται από τον επεξεργαστή ως δείκτης (index) στο διάνυσμα διακοπών (interrupt vector), που είναι ένας πίνακας δεικτών (array of pointers) στους διαχειριστές διακοπών. Το διάνυσμα διακοπών βρίσκεται σε περιοχή της μνήμης που οι διεργασίες δεν έχουν πρόσβαση, ώστε να μην μπορούν να τροποποιήσουν τα περιεχόμενα. Ο χειριστής διακοπών εκτελεί τις κατάλληλες εντολές που εξαρτώνται από τον τύπο της διακοπής. Μετά από την ολοκλήρωση του χειριστή διακοπών επαναφέρεται η διεργασία που είχε διακοπεί (ή κάποια επόμενη διεργασία, αν ο πυρήνας έχει ήδη κάνει μια εναλλαγή πλαισίου (context swith)). H διεργασία που είχε διακοπεί (ή κάποια επόμενη διεργασία) εκτελείται. Το Λ.Σ. είναι υπεύθυνο για το ποια διεργασία θα εκτελεστεί στη συνέχεια. Η σημαντική αυτή απόφαση, που επηρεάζει το επίπεδο εξυπηρέτησης κάθε εφαρμογής αφορά τη δρομολόγηση του επεξεργαστή (processor scheduling). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
40
Αλληλεπίδραση υλικού και Λ.Σ. για clock interrupts
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
41
Συνήθεις κλήσεις συστήματος
Δημιουργία διεργασιών Διαχείριση μνήμης Ανάγνωση και εγγραφή αρχείων Είσοδος / έξοδος ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
42
Χαρακτηριστικά των υπολογιστικών συστημάτων
Οι άνθρωποι των Λ.Σ. ενδιαφέρονται για την αποτελεσματική εκχώρηση και τον συντονισμό των πόρων σε ένα απλό ΗΥ. Οι άνθρωποι των δικτύων ενδιαφέρονται για την αποτελεσματική επικοινωνία bμεταξύ των υπολογιστών των δικτύων. Οι άνθρωποι των βάσεων δεδομένων ενδιαφέρονται για την παροχή ταχείας πρόσβασης σε ορισμένα δεδομένα (που βρίσκονται ανάμεσα σε τεράστια ποσά δεδομένων) και συγχρόνως για την προστασία της ακεραιότητας των δεδομένων που μπορεί να παραποιηθεί από τη πολλαπλή ταυτόχρονη χρήση. Οι άνθρωποι της αρχιτεκτονικής των υπολογιστών ενδιαφέρονται για το σχεδιασμό των επεξεργαστών έτσι ώστε να λειτουργούν αποτελεσματικά με τους αλγορίθμους, τους μεταγλωττιστές και τις δομές δεδομένων. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
43
2. Εισαγωγή στα Λειτουργικά Συστήματα
Ιστορική εξέλιξη των Λ.Σ. Σκοποί και λειτουργίες των Λ.Σ. Σημαντικά σημεία εξέλιξης των Λ.Σ. Χαρακτηριστικά των σύγχρονων Λ.Σ. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
44
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ
Το Λ.Σ. αποτελεί τη διεπαφή μεταξύ των εφαρμογών των χρηστών και του υλικού. Ένα Λ.Σ. υλοποιεί ένα είδος ιδεατής μηχανής (virtual machine) που είναι ευκολότερη στον προγραμματισμό σε σχέση με το υλικό. Εφαρμογές Χρηστών Λειτουργικό Σύστημα Αρχιτεκτονική Διεπαφή εικονικής μηχανής Διεπαφή φυσικής μηχανής ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
45
Ένα ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ είναι ένα πρόγραμμα που ελέγχει την εκτέλεση των προγραμμάτων εφαρμογών και ενεργεί ως ενδιάμεσος μεταξύ εφαρμογών και υλικού μέρους του υπολογιστή. Το λογισμικό που τοποθετείται στην κορυφή του υλικού ώστε να διαχειρίζεται όλα τα συστατικά μέρη του συστήματος και να προσφέρει στο χρήστη τη διεπαφή (interface) ή μια ΙΔΕΑΤΗ ΜΗΧΑΝΗ που είναι πιο εύκολη στην κατανόηση και τον προγραμματισμό είναι το ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
46
Το Λ.Σ. και οι εφαρμογές των χρηστών
Το Λ.Σ. καθορίζει ένα πλαίσιο για τους χρήστες και τα προγράμματά τους ώστε να συνυπάρχουν, να συνεργάζονται και να λειτουργούν ταυτόχρονα και αποδοτικά, υποστηρίζοντας: ταυτόχρονη εκτέλεση και αλληλεπίδραση πολλών προγραμμάτων των χρηστών διαμοιραζόμενες εφαρμογές που καλύπτουν συνήθεις απαιτούμενες διευκολύνσεις μηχανισμούς διαμοίρασης και συνδυασμού συστατικών λογισμικού πολιτικές για ασφαλή και δίκαιη διαμοίραση των πόρων φυσικών πόρων (π.χ. χρόνος της CPU και χώρος αποθήκευσης) λογικών πόρων (π.χ. αρχεία δεδομένων, προγράμματα) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
47
Διαδικασία Ανάπτυξης Λογισμικού
ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ ΠΡΟΫΠΟΛΟΓΙΣΜΟΣ ΤΟ PROJECT ΕΙΝΑΙ ΕΝΤΟΣ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑΤΟΣ ΚΑΙ ΠΕΡΙΕΧΕΙ ΟΛΕΣ ΤΙΣ ΠΡΟΒΛΕΠΟΜΕΝΕΣ ΛΕΙΤΟΥΡΓΙΕΣ - ΕΙΝΑΙ ΕΚΤΟΣ ΠΡΟΫΠΟΛΟΓΙΣΜΟΥ ΟΛΟΚΛΗΡΩΘΗΚΕ, ΕΙΝΑΙ ΕΝΤΟΣ – ΠΡΟΫΠΟΛΟΓΙΣΜΟΥ ΚΑΙ ΑΠΕΤΥΧΕ ΣΤΗΝ ΕΦΑΡΜΟΓΗ ΟΛΩΝ ΤΩΝ ΛΕΙΤΟΥΡΓΙΩΝ ΠΟΥ ΕΙΧΕ ΥΠΟΣΧΕΘΕΙ ΌΤΙ ΘΑ ΥΛΟΠΟΙΕΙ ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
48
Ι. Ιστορική εξέλιξη των Λ.Σ.
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
49
Η Εξέλιξη των Λ.Σ. Σειριακή επεξεργασία (αρχές της δεκαετίας 1940 – μέσα της δεκαετίας 1950) Προβλήματα : Δρομολόγηση (σπατάλη σε υπολογιστικό χρόνο, προγράμματα που έμεναν στη μέση της εκτέλεσης λόγω του μεγέθους του μπλοκ χρόνου) Χρόνος εγκατάστασης (ένα μοναδικό πρόγραμμα, η εργασία, φόρτωνε τον μεταγλωττιστή και το πρόγραμμα σε γλώσσα υψηλού επιπέδου στη μνήμη, αποθήκευε τον αντικειμενικό κώδικα (object program) και στη συνέχεια το φόρτωνε και το συνέδεε με τις λοιπές συναρτήσεις) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
50
Απλά μαζικά συστήματα (batch process) – αρχές– μέσα της δεκαετίας 1960
Λόγος ανάπτυξης : πολύ ακριβές μηχανές, μείωση του νεκρού χρόνου Κεντρική ιδέα : η χρήση ενός λογισμικού που λέγεται παρακολουθητής (monitor) Ο χρήστης υποβάλλει την εργασία του σε ένα χειριστή ο οποίος τις βάζει όλες μαζί σε μια συσκευή εισόδου για να χρησιμοποιηθεί από τον παρακολουθητή. Κάθε πρόγραμμα είναι φτιαγμένο έτσι ώστε όταν ολοκληρώνεται να επιστρέφει στο monitor για να φορτωθεί άλλο πρόγραμμα ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
51
Σχεδίαση μνήμης για έναν εγκατεστημένο monitor
Monitors Λογισμικό που ελέγχει τα προγράμματα που τρέχουν Ομαδοποιεί τις εργασίες Όταν ένα πρόγραμμα ολοκληρωθεί ο έλεγχος μεταφέρεται στον monitor Ο monitor παραμένει στην κεντρική μνήμη και είναι διαθέσιμος Job Control Language (JCL) Παρέχει εντολές στον monitor ποιος compiler θα χρησιμοποιηθεί Ποια δεδομένα θα χρησιμοποιηθούν ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
52
Χαρακτηριστικά του υλικού μέρους που είναι επιθυμητά :
Προστασία μνήμης : το πρόγραμμα χρήστη που εκτελεί ο monitor δεν πρέπει να τροποποιεί την περιοχή μνήμης όπου υπάρχει ο monitor Χρονομετρητής : πρέπει να αποφεύγεται η μονοπώληση του συστήματος από μια μοναδική εργασία (π.χ. κάρτες σε προγράμματα FORTRAN) Προνομιούχες εντολές : εκτελούνται μόνον από τον παρακολουθητή, κυρίως για διαδικασίες Ι/Ο Διακοπές : μηχανισμοί του Λ.Σ. για παραχώρηση και ανάκτηση του ελέγχου του συστήματος ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
53
Μονοπρογραμματισμός : όταν η εκτελούμενη εργασία διέκοπτε, αναμένοντας να ολοκληρωθεί μια διεργασία Ι/Ο, η CPU έμενε ανενεργή (σε επιστημονικές εφαρμογές η σπατάλη χρόνου είναι ελάχιστη, διαδικασίες Ι/Ο συμβαίνουν σπάνια, ενώ σε εμπορικές εφαρμογές η σπατάλη είναι 80-90%) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
54
Πολυπρογραμματισμός : διαμερισμός της μνήμης σε τμήματα ώστε κάθε διαφορετική διεργασία να καταλαμβάνει άλλο τμήμα μνήμης. Όταν μια διεργασία περίμενε μια Ι/Ο, κάποια άλλη χρησιμοποιούσε την CPU. Αν μπορούσαν να παραμείνουν στη μνήμη πολλές διεργασίες ταυτόχρονα τότε το ποσοστό χρήσης της CPU έφθανε και το 100%. ΑΠΑΙΤΗΣΕΙΣ : προστασία από επικαλύψεις, υπήρχε μέσω του υλικού. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
55
Συστήματα διαμοιραζόμενου χρόνου
Προέκυψαν από τις διαμαρτυρίες όσων περίμεναν ώρες ή ημέρες για να πάρουν αποτελέσματα από τα πολυπρογραμματιζόμενα μαζικά συστήματα. Κάθε χρήστης συνδέεται μέσω τερματικού και η CPU εξυπηρετεί εκ περιτροπής κάθε πρόγραμμα χρήστη με ένα σύντομο καταιγισμό (burst) ή ένα κβάντο (quantum) υπολογισμού. Ο ΗΥ προσφέρει μια διαλογική εξυπηρέτηση με την τεχνική του καταμερισμού χρόνου και εκμεταλλεύεται τον σχετικά βραδύ χρόνο της ανθρώπινης αντίδρασης ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
56
Σύγκριση multiprogramming – time sharing
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
57
Η τέταρτη γενιά ( ) Εμφάνιση των ολοκληρωμένων κυκλωμάτων τύπου LSI Λειτουργικά φιλικά προς το χρήστη Λ.Σ. δικτύων (κάθε ΗΥ τρέχει το δικό του Λ.Σ.) Κατανεμημένα Λ.Σ.(distributed) Εμφανίζονται ως παραδοσιακά συστήματα ενός επεξεργαστή. Οι χρήστες δεν ενδιαφέρονται που εκτελούνται τα προγράμματά τους ή που βρίσκονται τα αρχεία τους. Επιτρέπουν στα προγράμματα να εκτελούνται σε διαφορετικούς επεξεργαστές την ίδια χρονική στιγμή και απαιτούν πολύπλοκους αλγόριθμους χρονοδρομολόγησης (SCHEDULING) Συστήματα συναλλαγής πραγματικού χρόνου (π.χ. σύστημα κρατήσεων αεροπορικών εταιρειών) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
58
1990 - Αλματώδης αύξηση της απόδοσης του υλικού (MIPS)
Η δημιουργία του WWW αύξησε την κατανεμημένη επεξεργασία και οδήγησε στην ανάγκη ενσωμάτωσης διαδικτυακών διεργασιών. Καθιέρωση της αντικειμενοστραφούς τεχνολογίας. Διάδοση και ανάπτυξη της τεχνολογίας ανοικτού κώδικα. Εμφάνιση του LINUX ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
59
2000 - Εμφάνιση του middleware (λογισμικό που συνδέει δύο ξεχωριστές εφαρμογές – συχνά σε δίκτυο). Εφαρμογές (web services) που δημοσιεύονται στο Internet και χρησιμοποιούνται από χρήστες μέσω συνδέσεων υψηλών ταχυτήτων (DSL κλπ). Εμφάνιση βελτιωμένων αρχιτεκτονικών δικτύων και αύξηση της παράλληλης επεξεργασίας Χρήση Λ.Σ. τύπου POSIX (Portable Operating System Interface). Υπολογιστική δυνατότητα σε φορητές συσκευές (PDA’s, cell phones κλπ). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
60
ΙΙ. Σκοποί και λειτουργίες των Λ. Σ.
Προστασία του υλικού Επικοινωνία με τον χρήστη Διαχείριση, αξιοποίηση και έλεγχος πόρων Ικανότητα και ευκολία εξέλιξης ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
61
Προστασία υλικού Λειτουργία dual-mode Προστασία I/O Προστασία μνήμης
Προστασία CPU ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
62
Λειτουργία dual-mode Οι διαμοιραζόμενοι πόροι του συστήματος απαιτούν από το Λ.Σ. να εξασφαλίσει ότι ένα λανθασμένο πρόγραμμα δεν θα μπορεί να γίνει αφορμή άλλα προγράμματα να εκτελούνται λανθασμένα. Το Λ.Σ. παρέχει υποστήριξη υλικού για 2 καταστάσεις λειτουργίας. 1. User mode – η εκτέλεση γίνεται εκ μέρους του χρήστη. 2. Monitor mode (επίσης supervisor mode ή system mode) – η εκτέλεση γίνεται εκ μέρους του Λ.Σ. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
63
Ένα mode bit προστίθεται στο υλικό για να δείχνει την τρέχουσα κατάσταση: monitor (0) ή user (1).
Όταν συμβεί μια διακοπή ή ένα λάθος το υλικό εναλλάσσεται σε monitor mode. Interrupt/fault monitor user set user mode Οι προνομιούχες εντολές (Privileged instructions) μπορούν να προκύψουν μόνον σε monitor mode. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
64
Προγραμματισμός συστήματος
Το Λ.Σ. παρέχει αποδέσμευση από το υλικό (hardware) για την ανάπτυξη προγραμμάτων Προγραμματισμός συστήματος Μεταγλωττιστές (compilers) Διερμηνευτές (interpreters) Κειμενογράφοι (editors) Υλικό Μέρος Υπολογιστή Γλώσσα μηχανής Μικροπρογραμματισμός Φυσικές συσκευές ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
65
Τι είναι μικροπρόγραμμα ; (τοποθετείται σε ROM)
Ένας διερμηνευτής (interpeter) που υποδέχεται εντολές σε γλώσσα μηχανής (ADD, MOVE, JUMP) και τις μεταφράζει σε μια σειρά από μικρά βήματα. Το σύνολο των εντολών που διερμηνεύει το μικροπρόγραμμα είναι η ΓΛΩΣΣΑ ΜΗΧΑΝΗΣ που δεν αποτελεί μέρος του υλικού. Μέγεθος της γλώσσας μηχανής εντολές ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
66
Στην κορυφή του Λ.Σ. βρίσκεται το υπόλοιπο λογισμικό συστήματος :
Μια κύρια αποστολή του Λ.Σ. είναι να αποκρύψει την πολυπλοκότητα που δημιουργείται από τη γλώσσα μηχανής και να δώσει στο χρήστη ένα περισσότερο εύχρηστο σύνολο εντολών για να εργαστεί αποτελεσματικά. Στην κορυφή του Λ.Σ. βρίσκεται το υπόλοιπο λογισμικό συστήματος : Command interpeter ή φλοιός (shell) Compilers Editors ΔΕΝ ΑΠΟΤΕΛΟΥΝ ΜΕΡΟΣ ΤΟΥ Λ.Σ. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
67
Οι compilers, interpreters τρέχουν σε κατάσταση χρήστη (user mode)
Το Λ.Σ. είναι το μέρος του υλικού που εκτελείται (τρέχει) σε κατάσταση πυρήνα (kernel mode) ή κατάσταση επόπτη (supervisor mode) Οι compilers, interpreters τρέχουν σε κατάσταση χρήστη (user mode) Ο χρήστης μπορεί να γράψει ένα δικό του command interpreter ΌΧΙ όμως π.χ. τον δικό του χειριστή διακοπών δίσκου που προστατεύεται από το Λ.Σ. Το Λ.Σ. καλύπτει τις λεπτομέρειες του υλικού μέρους από τον προγραμματιστή και του παρέχει έναν κατάλληλο ενδιάμεσο για τη χρήση του συστήματος ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
68
Τι είναι ο πυρήνας (kernel);
Ένα τμήμα του Λ.Σ. που περιέχει τις πιο συχνά χρησιμοποιούμενες συναρτήσεις καθώς και άλλα τμήματα του Λ.Σ. που είναι σε τρέχουσα χρήση, όλα αυτά στην ΚΥΡΙΑ ΜΝΗΜΗ. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
69
Παρεχόμενες υπηρεσίες στους χρήστες
Ανάπτυξη προγράμματος Εκτέλεση προγράμματος Προσπέλαση σε συσκευές I/O Ελεγχόμενη προσπέλαση σε αρχεία Σύστημα προσπέλασης Ανίχνευση σφάλματος και απόκρυψη Λογιστική (στατιστικά στοιχεία χρήσης) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
70
3. Το Λ.Σ. ως διαχειριστής πόρων
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
71
Μέριμνα του Λ.Σ. είναι να παρέχει μια συστηματοποιημένη και ελεγχόμενη κατανομή των επεξεργαστών, μνημών και των άλλων συσκευών (Ι/Ο) ανάμεσα στα διάφορα προγράμματα που ανταγωνίζονται για να χρησιμοποιήσουν αυτούς τους πόρους (resources) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
72
Το Λ.Σ. ως μηχανισμός ελέγχου
Λειτουργεί όπως ένα συνηθισμένο λογισμικό ΗΥ Συχνά εκχωρεί τον έλεγχο και πρέπει να βασίζεται στον επεξεργαστή ώστε να επανακτά τον έλεγχο. Παρέχει εντολές για τον επεξεργαστή (όπως και τα άλλα προγράμματα). Η κύρια διαφορά βρίσκεται στους στόχους : Καθοδηγεί τον επεξεργαστή στη χρησιμοποίηση άλλων πόρων του συστήματος καθώς και στο χρονισμό εκτέλεσης άλλων προγραμμάτων. Για να το επιτύχει εκχωρεί και επανακτά τον έλεγχο του επεξεργαστή. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
73
4. Ικανότητα και ευκολία εξέλιξης Λ.Σ.
Αναβαθμίσεις υλικού και νέοι τύποι υλικού μέρους (π.χ. σελιδοποίηση τμημάτων μνήμης, τερματικά γραφικών κλπ) Νέες υπηρεσίες (χρήση παραθύρων, στατιστικά εργαλεία) Διορθώσεις (σφάλματα, ανανεώσεις) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
74
ΙΙΙ. Σημαντικά σημεία εξέλιξης των Λ.Σ.
Διεργασίες Διαχείριση μνήμης Προστασία και ασφάλεια πληροφοριών Δρομολόγηση και διαχείριση πόρων Δομή συστήματος ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
75
1. Διεργασίες Ορισμός : μια διεργασία είναι ένα πρόγραμμα ή στιγμιότυπο ενός προγράμματος που εκτελείται σε ΗΥ Ορισμός : μια διεργασία είναι η οντότητα που μπορεί να ανατεθεί και να εκτελεστεί σε έναν επεξεργαστή Σε πολλά Λ.Σ. οι πληροφορίες που σχετίζονται με κάθε διεργασία αποθηκεύονται σε έναν πίνακα που δημιουργεί το Λ.Σ. και λέγεται πίνακας διεργασιών, είναι στην ουσία μια δομή συνδεδεμένης λίστας (linked list) ,με κόμβους τις διεργασίες. Μια αναστελλόμενη διεργασία αποτελείται από : το χώρο διευθύνσεών της – εικόνα μνήμης τις πληροφορίες της – πίνακας διεργασιών ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
76
Το Λ.Σ. περιέχει θεμελιώδεις κλήσεις διαχείρισης διεργασιών που μεριμνούν για τη δημιουργία και τον τερματισμό των διεργασιών Παραδείγματα : Η διακοπή πληκτρολογίου Όταν μια διεργασία δημιουργεί θυγατρικές Η σχεδίαση ενός Λ.Σ. σχετικά με τον συντονισμό όλων των διεργασιών είναι πολύ δύσκολη. Τα σφάλματα και τα λάθη προκύπτουν μόνον έπειτα από συγκεκριμένες και σπάνιες αλληλουχίες ενεργειών. Η ανίχνευση του σφάλματος δε καθορίζει αυτόματα και την αιτία από την οποία προήλθε ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
77
Λόγοι δημιουργίας σφαλμάτων
ανακριβής συγχρονισμός Τα σήματα που παράγονται από τις διακοπές να μην διαχειρίζονται σωστά από τον μηχανισμό σηματοδότησης αποτυχημένος αμοιβαίος αποκλεισμός Η προσπάθεια από χρήστες ή προγράμματα να κάνουν χρήση ενός διαμοιραζόμενου πόρου την ίδια χρονική στιγμή ακαθόριστη λειτουργία προγράμματος Πολλά προγράμματα που διαμοιράζονται μνήμη να παρεμβαίνουν μεταξύ τους επανεγγράφοντας κοινές περιοχές της μνήμης με μη προβλέψιμους τρόπους. Η σειρά με την οποία δρομολογούνται διάφορα προγράμματα μπορεί να επηρεάσει το αποτέλεσμα αδιέξοδα (deadlocks) δύο ή περισσότερα προγράμματα είναι σε αναμονή περιμένοντας το ένα το άλλο ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
78
Τυπική υλοποίηση διεργασίας
Δύο διεργασίες Α και Β υπάρχουν σε τμήματα μνήμης. Ένα μπλοκ (τμήμα) μνήμης ανατίθεται σε κάθε διεργασία. Ποια διεργασία εκτελείται αυτή τη στιγμή; ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
79
Κάθε τμήμα μνήμης αποτελείται από :
Το εκτελέσιμο πρόγραμμα Τα δεδομένα που απαιτούνται Το περιεχόμενο εκτέλεσης (κατάσταση διεργασίας) Ότι πληροφορία απαιτείται από το Λ.Σ. για να διαχειριστεί τη διεργασία (π.χ. προτεραιότητα) Ότι πληροφορία απαιτείται από τον επεξεργαστή για την κατάλληλη εκτέλεση της διεργασίας (π.χ. περιεχόμενο καταχωρητών: μετρητής προγράμματος, καταχωρητές δεδομένων) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
80
Κάθε διεργασία εγγράφεται σε μια λίστα διεργασιών που συντηρείται από το Λ.Σ.
Η λίστα διεργασίας περιέχει μια είσοδο για κάθε διεργασία, η οποία περιλαμβάνει ένα δείκτη στη θέση του μπλοκ της μνήμης που περιέχει τη διεργασία. Ο καταχωρητής δείκτη διεργασίας περιέχει τον δείκτη στη λίστα διεργασιών, για τη διεργασία που ελέγχει τον επεξεργαστή εκείνη τη στιγμή. Οι διεργασίες που έχουν διακοπεί εγγράφουν το περιεχόμενο των καταχωρητών τους κατά τη στιγμή της διακοπής, στο δικό τους περιεχόμενο εκτέλεσης. Αργότερα, κατά την εναλλαγή διεργασίας περιλαμβάνει την αποθήκευση των πληροφοριών της τρέχουσας διεργασίας και την φόρτωση (επαναφορά) της διεργασίας που θα συνεχίσει τώρα να εκτελείται. Μια διεργασία μπορεί είτε να εκτελείται είτε να είναι σε αναμονή για εκτέλεση. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
81
2. Διαχείριση μνήμης Για να ικανοποιήσει τις απαιτήσεις των χρηστών το Λ.Σ. έχει πέντε βασικές ευθύνες σχετικά με τη διαχείριση της αποθήκευσης: Απομόνωση διεργασίας Αυτόματη τοποθέτηση και διαχείριση (όρια μνήμης, χάρτης μνήμης) Υποστήριξη σπονδυλωτού προγραμματισμού (δυναμική παραχώρηση μνήμης, διαχείριση δυναμικής μνήμης) Προστασία και έλεγχος προσπέλασης Μακροπρόθεσμη αποθήκευση Τα Λ.Σ. ικανοποιούν τις απαιτήσεις αυτές μέσω : ΤΗΣ ΙΔΕΑΤΗΣ ΜΝΗΜΗΣ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
82
Ιδεατή μνήμη (virtual memory)
Η ιδεατή μνήμη είναι μια υπηρεσία που επιτρέπει σε προγράμματα να διευθυνσιοδοτούν τη φυσική μνήμη του συστήματος με λογικό τρόπο, χωρίς να λαμβάνουν υπόψη το διαθέσιμο μέγεθος της φυσικής μνήμης. Με την ιδεατή μνήμη αντιμετωπίζεται η απαίτηση πολλαπλές εργασίες να βρίσκονται ταυτόχρονα στην κεντρική μνήμη. Όταν ο επεξεργαστής εναλλάσσεται μεταξύ ενός πλήθους διεργασιών είναι δύσκολο να τις ομαδοποιήσει συμπαγώς στην κύρια μνήμη, επειδή οι διεργασίες ποικίλουν σε μέγεθος. Χρησιμοποιούνται συστήματα σελιδοποίησης. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
83
Σελιδοποίηση μνήμης Επιτρέπει στις διεργασίες να αποτελούνται από μπλοκ μνήμης σταθερού μεγέθους που λέγονται σελίδες (π.χ. με μέγεθος 4K). Κάθε σελίδα μπορεί να είναι τοποθετημένη οπουδήποτε στην κύρια μνήμη Κάθε πρόγραμμα αναφέρει μια εικονική διεύθυνση και το σύστημα σελιδοποίησης την μετατρέπει σε φυσική δηλ. πραγματική διεύθυνση (real address) Το επόμενο βήμα ; Να ελαχιστοποιηθεί η απαίτηση όλες οι σελίδες μιας διεργασίας να βρίσκονται ταυτόχρονα στην κύρια μνήμη. Όσες δεν βρίσκονται μεταφέρονται από την δευτερεύουσα μέσω του συστήματος διαχείρισης μνήμης (όλες οι σελίδες μιας διεργασίας συντηρούνται στο δίσκο). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
84
Το υλικό μέρος του επεξεργαστή μαζί με το Λ. Σ
Το υλικό μέρος του επεξεργαστή μαζί με το Λ.Σ. παρέχει στο χρήστη έναν «ιδεατό επεξεργαστή», με προσπέλαση σε μια ιδεατή μνήμη. Οι εντολές μιας γλώσσας προγραμματισμού μπορούν αναφέρονται σε θέσεις προγράμματος και δεδομένων στην ιδεατή μνήμη. Η απομόνωση μιας διεργασίας μπορεί να επιτευχθεί δίνοντας σε κάθε διεργασία μια μοναδική, μη επικαλυπτόμενη ιδεατή μνήμη. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
85
Διευθυνσιοδότηση ιδεατής μνήμης
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
86
Ιδεατή μνήμη ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
87
3. Προστασία και ασφάλεια πληροφοριών
Έλεγχος προσπέλασης (ρύθμιση της πρόσβασης των χρηστών στο σύστημα) Έλεγχος ροής πληροφοριών (ρύθμιση της ροής δεδομένων στο σύστημα) Πιστοποίηση (οι μηχανισμοί προσπέλασης και ελέγχου εκτελούνται σύμφωνα με τις προδιαγραφές και τις πολιτικές ασφαλείας) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
88
4. Δρομολόγηση και διαχείριση πόρων
Αμεροληψία (κλάσεις προτεραιότητας) Διαφορική απόκριση ( το Λ.Σ. πρέπει να πάρει αποφάσεις για τη δρομολόγηση των απαιτήσεων που προκύπτουν δυναμικά) Αποτελεσματικότητα Μεγιστοποίηση της απόδοσης Ελαχιστοποίηση του χρόνου απόκρισης Εξυπηρέτηση πολλών χρηστών Η δρομολόγηση και διαχείριση πόρων είναι πρόβλημα επιχειρησιακής έρευνας ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
89
Δρομολόγηση διεργασιών και διαχείριση πόρων σε περιβάλλον πολυπρογραμματισμού
Το Λ.Σ. διατηρεί έναν αριθμό ουρών κάθε μια από τις οποίες είναι μια λίστα διεργασιών που αναμένουν για κάποιον πόρο. Βραχυπρόθεσμη ουρά (διεργασίες που βρίσκονται στην κύρια μνήμη και είναι έτοιμες να εκτελεσθούν) Βραχυπρόθεσμος δρομολογητής ή διεκπεραιωτής (dispatcher) Στρατηγικές επιλογής Εκ περιτροπής εξυπηρέτηση (round-robin) Επίπεδα προτεραιότητας Μακροπρόθεσμη ουρά (λίστα από νέες διεργασίες που περιμένουν να χρησιμοποιήσουν τον επεξεργαστή) Ουρές για συσκευές Ι/Ο (όλες οι διεργασίες που περιμένουν να χρησιμοποιήσουν μια συσκευή δημιουργούν την ουρά της συσκευής) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
90
Κύρια στοιχεία για πολυπρογραμματισμό
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
91
5. Δομή συστήματος Προβλήματα από την αύξηση του μεγέθους και την πολυπλοκότητα των Λ.Σ. Καθυστερημένη χρονική παράδοση Μη εμφανή προγραμματιστικά λάθη Μειωμένη απόδοση Σχεδιαστικές τάσεις της δομής του Λ.Σ. Σπονδυλωτός προγραμματισμός Ελαχιστοποίηση του interface μεταξύ των τμημάτων του λογισμικού Χρήση ιεραρχικών επιπέδων ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
92
Η ιεραρχική δομή των σύγχρονων Λ. Σ
Η ιεραρχική δομή των σύγχρονων Λ.Σ. χωρίζει τις λειτουργίες σύμφωνα με την πολυπλοκότητά τους δημιουργώντας μια σειρά επιπέδων. Κάθε επίπεδο : εκτελεί ένα υποσύνολο λειτουργιών, βασίζεται στο αμέσως προηγούμενο για την εκτέλεση πιο πρωταρχικών λειτουργιών και παρέχει υπηρεσίες στο υψηλότερο επίπεδο Τα χαμηλότερα επίπεδα απασχολούνται σε μικρότερη χρονική κλίμακα, αλληλεπιδρώντας άμεσα με το υλικό. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
93
IV. Χαρακτηριστικά των σύγχρονων Λ.Σ.
Εξέλιξη του υλικού Πολλοί επεξεργαστές Υψηλή ταχύτητα συνδέσεων δικτύου Πολλές και μεγάλες σε χωρητικότητα συσκευές αποθήκευσης Εξέλιξη του λογισμικού Πολυμεσικές εφαρμογές Πρόσβαση στο διαδίκτυο Μοντέλο πελάτη / εξυπηρέτη (client / server) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
94
Εξέλιξη της σχεδίασης και της αρχιτεκτονικής του Λ.Σ.
Αρχιτεκτονική μικροπυρήνα Πολυνημάτωση (multithreading) Συστήματα πολυεπεξεργασίας Παράλληλα συστήματα Συστήματα πραγματικού χρόνου (real time systems) Κατανεμημένα Λ.Σ. (distributed systems) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
95
3. Αρχιτεκτονικές Λ.Σ. Μονολιθικά συστήματα
Στρωματοποιημένη αρχιτεκτονική Αρχιτεκτονική μικροπυρήνα Νήματα (threads) - Πολυνημάτωση (multithreading) Συστήματα πολυεπεξεργασίας Παράλληλα συστήματα Συστήματα πραγματικού χρόνου Κατανεμημένα συστήματα ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
96
2. Στρωματοποιημένη αρχιτεκτονική
Η στρωματοποιημένη αρχιτεκτονική προσπαθεί να βελτιώσει το σχεδιασμό των μονολιθικών πυρήνων ομαδοποιώντας συστατικά που υλοποιούν παρόμοιες λειτουργίες σε επίπεδαems Κάθε επίπεδο επικοινωνεί μόνον με τα γειτονικά του (επάνω και κάτω) Οι απαιτήσεις των διεργασιών διαπερνούν αρκετά επίπεδα πριν ολοκληρωθούν Η ρυθμοαπόδοση (throughput) μπορεί να είναι μικρότερη από τα Λ.Σ. με τους μονολιθικούς πυρήνες Απαιτούνται επιπλέον μέθοδοι για τη μεταβίβαση και τον έλεγχο των δεδομένων ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
97
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
98
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
99
3. Αρχιτεκτονική μικροπυρήνα
Ένας μονολιθικός πυρήνας περιλαμβάνει τη δρομολόγηση, το σύστημα αρχείων, τη δικτύωση, τους οδηγούς συσκευής, τη διαχείριση μνήμης κ.α. Υλοποιείται ως μια μοναδική διεργασία και όλα τα στοιχεία διαμοιράζονται τον ίδιο χώρο διευθύνσεων. Η αρχιτεκτονική μικροπυρήνα αναθέτει λίγες λειτουργίες στον πυρήνα και τις υπόλοιπες τις αναθέτει σε εξυπηρέτες που εκτελούνται σε κατάσταση χρήστη. Η διεργασία του χρήστη (client process) στέλνει την απαίτηση στη διεργασία εξυπηρέτη (server process) η οποία επιτελεί τη διεργασία και επιστρέφει την απάντηση. Ο μικροπυρήνας διαχειρίζεται την επικοινωνία μεταξύ clients και servers. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
100
Το σχήμα της τοποθέτησης λογισμικού πάνω από τον πυρήνα ώστε να χειρίζεται τη διαδικασία client-server δεν είναι απόλυτα ρεαλιστικό. Κάποιες λειτουργίες του χρήστη είναι δύσκολο, ακόμη και ακατόρθωτο να πραγματοποιηθούν από το χώρο προγραμμάτων του χρήστη. Τρόποι επίλυσης : Οι κρίσιμες διεργασίες του εξυπηρέτη (drivers I/O) να τρέχουν σε κατάσταση πυρήνα με πλήρη πρόσβαση στο υλικό αλλά να συνεχίσουν να επικοινωνούν με τις άλλες διεργασίες. Να εμφυτευθεί ένας στοιχειώδης μηχανισμός στον πυρήνα αλλά η πολιτική αποφάσεων να παραμείνει στους εξυπηρέτες. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
101
Αρχιτεκτονική μικροπυρήνα
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
102
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
103
Πλεονεκτήματα της αρχιτεκτονικής μικροπυρήνα
Επεκτασιμότητα Επιτρέπει την προσθήκη/αφαίρεση υπηρεσιών και χαρακτηριστικών Μεταφερσιμότητα Οι αλλαγές που απαιτούνται για τη μεταφορά του συστήματος σε νέοι επεξεργαστή γίνονται στον μικροπυρήνα και όχι στις άλλες υπηρεσίες Object-oriented Λ.Σ. Τα συστατικά του Λ.Σ. είναι αντικείμενα με σαφώς καθορισμένες διεπαφές που μπορούν να διασυνδεθούν Αξιοπιστία Αρθρωτός (modular) σχεδιασμός Ο μικρού μεγέθους μικροπυρήνας μπορεί να ελεγχθεί με ακρίβεια ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
104
Το πρόγραμμα ως μια διεργασία
Layout of program in the virtual memory of a process, indicating how memory is assigned and which resources the process consumes. Several regions of memory exist: A read-only area for program instructions ( or “text” ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
105
5. Συστήματα πολυπεξεργασίας
Πολυεπεξεργασία (multiprocessing) είναι η χρήση πολλαπλών ταυτόχρονων διεργασιών σε ένα σύστημα. Τα συστήματα πολυεπεξεργασίας διακρίνονται σε : Συμπαγώς συνδεδεμένα συστήματα (Tightly coupled system) – περιέχουν πολλαπλές CPUs που συνδέονται σε επίπεδο διαύλου. Έχουν πρόσβαση σε μια κεντρική διαμοιραζόμενη μνήμη ή μπορούν να συμμετέχουν σε μια ιεραρχία μνήμης διαθέτοντας και τοπική και διαμοιραζόμενη μνήμη. Χαλαρά συνδεδεμένα συστήματα (Loosely coupled system) – κάθε επεξεργαστής έχει τη δική του τοπική μνήμη. Οι επεξεργαστές επικοινωνούν μεταξύ τους μέσω γραμμών επικοινωνίας όπως δίαυλοι υψηλής ταχύτητας (gigabit Ethernet) ή τηλεφωνικές γραμμές. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
106
Παραδείγματα Σύστημα πολυεπεξεργασίας με κοινό δίαυλο Hypercube Grid
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
107
6. Παράλληλα συστήματα Είναι συστήματα πολυεπεξεργασίας (multiprocessor systems) με περισσότερες από μία CPU σε επικοινωνία μεταξύ τους. Ο όρος των παράλληλων συστημάτων καλύπτει μια πληθώρα αρχιτεκτονικών που περιλαμβάνουν : Συμμετρική πολυεπεξεργασία (SMP) Συστοιχίες συστημάτων SMP Μαζικά παράλληλα συστήματα (MPP) Κριτήριο διάκρισης αποτελεί το είδος της διασύνδεσης των επεξεργαστών (είναι γνωστοί ως processing elements) καθώς και το είδος διασύνδεσης μεταξύ επεξεργαστών και μνημών. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
108
Η ταξινόμηση Flynn κατηγοριοποιεί τα συστήματα ανάλογα με το αν όλοι οι επεξεργαστές εκτελούν τις ίδιες εντολές την ίδια χρονική στιγμή (single instruction/ multiple data – SIMD) ή αν κάθε επεξεργαστής εκτελεί διαφορετικές εντολές (multiple instruction / multiple data – MIMD). Οι μηχανές παράλληλης επεξεργασίας διακρίνονται επίσης σε συμμετρικά και μη συμμετρικά συστήματα πολυεπεξεργασίας (symmetric and asymmetric multiprocessors), εξαρτώμενες από το αν όλοι οι επεξεργαστές είναι σε θέση να εκτελούν ολόκληρο τον κώδικα του Λ.Σ. και να έχουν προσπέλαση στις συσκευές I/O ή αν κάποιο επεξεργαστές έχουν περισσότερα ή λιγότερα προνόμια. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
109
Πλεονεκτήματα των παράλληλων συστημάτων:
Αυξημένος βαθμός χρήσης (επίδοση) Οικονομία Αυξημένη αξιοπιστία Διαθεσιμότητα Επεκτασιμότητα Κλιμάκωση ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
110
Αρχιτεκτονική συμμετρικής πολυεπεξεργασίας
Registers Registers CPU1 CPU2 Disk Controller Memory Disk ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
111
Αρχιτεκτονική συμμετρικής πολυεπεξεργασίας
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
112
Ασύμμετρη πολυεπεξεργασία
Κάθε επεξεργαστής ανατίθεται σε μια ορισμένη διεργασία ενώ ο πρωτεύων επεξεργαστής δρομολογεί και αναθέτει τις διεργασίες στους άλλους (slave) επεξεργαστές. Είναι πιο συνηθισμένη σε πολύ μεγάλα συστήματα. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
113
7. Συστήματα πραγματικού χρόνου
Συχνά χρησιμοποιούνται ως μια συσκευή ελέγχου σε μια συγκεκριμένη εφαρμογή όπως ο έλεγχος επιστημονικών πειραμάτων, ο έλεγχος βιομηχανικών συστημάτων, σε συστήματα επεξεργασίας εικόνας ιατρικών εφαρμογών κλπ. Διαθέτουν καλά σχεδιασμένους περιορισμούς χρόνου. Hard real-time system. Χαρακτηρίζονται από την περιορισμένη χρήση δευτερεύουσας μνήμης και τα δεδομένα αποθηκεύονται σε μνήμες βραχείας διάρκειας ή σε ROM Soft real-time system Περιορισμένη χρησιμότητα σε βιομηχανικό έλεγχο και σε ρομποτική Χρήσιμα σε εφαρμογές (multimedia, virtual reality) που απαιτούν εξειδικευμένα χαρακτηριστικά Λ.Σ. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
114
8. Κατανεμημένα Συστήματα
Κατανέμουν τη διαδικασία υπολογισμών σε πολλούς φυσικούς επεξεργαστές. Παρέχουν την ψευδαίσθηση ενός μοναδικού χώρου για την κύρια μνήμη και ενός ξεχωριστού μοναδικού χώρου για τη δευτερεύουσα μνήμη, μαζί με άλλες ευκολίες όπως ένα κατανεμημένο σύστημα αρχείων (αφορά στην ουσία ένα πολυ-υπολογιστικό σύστημα δηλ. μια συλλογή από οντότητες (ΗΥ), που η κάθε μια έχει τη δική της κύρια, δευτερεύουσα μνήμη και άλλα στοιχεία Ι/Ο). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
115
Χαρακτηριστικά των Κ.Σ. Πλεονεκτήματα Μειονεκτήματα
Διαμοίραση πόρων Αύξηση της ταχύτητας υπολογισμού Αξιοπιστία Δυνατότητες επικοινωνίας Μειονεκτήματα Ασφάλεια και προστασία Τα κατανεμημένα συστήματα αποκρύπτουν: τον τρόπο πρόσβασης σε έναν πόρο το χώρο όπου βρίσκεται κάποιος πόρος τη διαμοίραση πόρων από πολλούς χρήστες που ανταγωνίζονται για τη χρήση τους τη μετακίνηση ενός πόρου σε άλλο μέρος ενώ είναι σε χρήση τις διαφορές στην αναπαράσταση δεδομένων ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
116
Μοντέλα Κατανεμημένων Συστημάτων
Minicomputer model (αρχικά δίκτυα) Κάθε χρήστης έχει τη δική του μηχανή (τοπικά) Η επεξεργασία είναι τοπική αλλά μπορούν να προσκομιστούν δεδομένα (files, databases) Workstation model Η επεξεργασία μπορεί να γίνεται και απομακρυσμένα Network Client-server Model (V system, world wide web) Ο χρήστης έχει το δικό του τοπικό workstation ισχυρά workstations λειτουργούν ως servers (file, print, DB servers) Processor pool model Τα τερματικά είναι Xterms ή τερματικά χωρίς δίσκο Μια δεξαμενή backend processors διεκπεραιώνει την επεξεργασία ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
117
Network Operating System
1-19 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
118
Client/server networked operating system model
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
119
Αρχιτεκτονική των Windows XP
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
120
Γενική Αρχιτεκτονική UNIX
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
121
Πυρήνας Linux ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
122
Αρχιτεκτονική Πυρήνα Linux
User Programs User Programs Trap User level Libraries Kernel level System Call Interface File System Management IPC Buffer Cache Process Mgt. Scheduling Memory Mgt. Device Drivers Hardware Control (Interrupts handling, etc) Hardware ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
123
4. Διεργασίες Εισαγωγή - ορισμοί Καταστάσεις διεργασίας
Διαγράμματα καταστάσεων Μπλοκ ελέγχου διεργασίας – PCB Υπηρεσίες Λ.Σ. για διαχείριση διεργασιών Εναλλαγή Πλαισίου (Context Switch) Προστασία διεργασιών Συνεξέλιξη (concurrency) Διαδιεργασιακή επικοινωνία (IPC) Χρήση πόρων Αλληλεπίδραση διεργασιών ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
124
1. Εισαγωγή Πολλά συστήματα στη φύση έχουν την ικανότητα να πραγματοποιούν πολλές δραστηριότητες (λειτουργίες) την ίδια χρονική στιγμή (π.χ. το ανθρώπινο σώμα). Οι Η/Υ εκτελούν παράλληλα (ταυτόχρονα– concurrently) διάφορες λειτουργίες (π.χ. μετάφραση ενός προγράμματος, εκτύπωση ενός αρχείου, λήψη ενός κλπ). Η έννοια της διεργασίας (process) είναι θεμελιώδης για την κατανόηση του τρόπου με τον οποίο οι σύγχρονοι Η/Υ επιτελούν και ελέγχουν πλήθος ταυτόχρονων δραστηριοτήτων. Ο όρος «διεργασία» στα πλαίσια των Λ.Σ. χρησιμοποιήθηκε για πρώτη φορά από τους σχεδιαστές του Multics. Μέχρι τότε ο όρος χρησιμοποιείτο εναλλακτικά με τον όρο task (εργασία) και είχαν δοθεί αρκετοί ορισμοί, όπως : ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
125
Ένα πρόγραμμα σε εκτέλεση, Μια ασύγχρονη δραστηριότητα,
Μια εκτελούμενη διαδικασία που συσχετίζεται με την ύπαρξη μιας δομής δεδομένων στο Λ.Σ., τον περιγραφέα διεργασίας (process descriptor) ή μπλοκ ελέγχου διεργασίας (Process Control Block). Στην οντότητα αυτή εκχωρείται ο επεξεργαστής και η μονάδα διεκπεραίωσης (dispatcher unit). Το πρόγραμμα για μια διεργασία είναι ότι και μια παρτιτούρα σε μια συμφωνική ορχήστρα (που εκτελεί το αντίστοιχο μουσικό κομμάτι που περιέχει η παρτιτούρα). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
126
Διαφορά μεταξύ διεργασίας και προγράμματος :
Μια διεργασία είναι μια οντότητα με τον δικό της χώρο διευθύνσεων, που αποτελείται από : την περιοχή κώδικα (text region), περιέχει τον κώδικα που εκτελεί ο επεξεργαστής. Την περιοχή δεδομένων (data region), όπου αποθηκεύονται οι μεταβλητές και η δυναμικά παραχωρούμενη μνήμηπου χρησιμοποιεί ο επεξεργαστής κατά τη διάρκεια της εκτέλεσης. Την περιοχή στοίβας (stack region), όπου αποθηκεύονται οι εντολές και οι τοπικές μεταβλητές για τις ενεργές κλήσεις διαδικασιών. Τα περιεχόμενα της στοίβας αυξάνονται καθώς η διεργασία πραγματοποιεί επαναλαμβανόμενες κλήσεις διαδικασιών και μειώνονται με τον τερματισμό των καλούμενων διαδικασιών. Διαφορά μεταξύ διεργασίας και προγράμματος : Ένα πρόγραμμα είναι μια άψυχη οντότητα και μόνον όταν ο επεξεργαστής ξεκινά να εκτελέσει το πρόγραμμα αυτό καθίσταται μια ενεργή οντότητα που ονομάζεται διεργασία. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
127
Εναλλακτικοί ορισμοί της διεργασίας :
Ένα εκτελέσιμο πρόγραμμα που περιλαμβάνει και τις τρέχουσες τιμές του μετρητή προγράμματος, των καταχωρητών και των μεταβλητών του. Κάθε διεργασία έχει τη δική της ιδεατή CPU. Μια δραστηριότητα κάποιου είδους που περιλαμβάνει: ένα πρόγραμμα, είσοδο, έξοδο και βρίσκεται σε μια κατάσταση Η διεργασία είναι μια αφαιρετική άποψη της ακολουθίας εντολών που εκτελούνται από τον επεξεργαστή. Ο επεξεργαστής είναι πιθανόν να χρειαστεί να εξυπηρετήσει συσκευές (hardware devices) εκτελώντας τους αντίστοιχους οδηγούς συσκευών (device drivers) ενδιαμέσως των εντολών μιας διεργασίας. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
128
Μια διεργασία μπορεί να συνεπάγεται την εκτέλεση περισσοτέρων του ενός προγραμμάτων. Αντίστροφα ένα συγκεκριμένο πρόγραμμα ή μια ρουτίνα μπορεί να αποτελέσει τμήμα περισσοτέρων της μιας διεργασιών. Παράδειγμα : μια ρουτίνα που χρησιμοποιείται για να τοποθετήσει ένα στοιχείο σε μια λίστα δεδομένων, μπορεί να χρησιμοποιείται από κάθε διεργασία που συμπεριλαμβάνει στις δραστηριότητές της χειρισμούς στοίβας ή ουρών. Η γνώση ότι ένα συγκεκριμένο πρόγραμμα εκτελείται σε μια χρονική στιγμή δεν είναι ιδιαίτερα διαφωτιστική, όσον αφορά την ευρύτερη δραστηριότητα που βρίσκεται σε εξέλιξη ή τη συγκεκριμένη λειτουργία που εκτελείται εκείνη τη στιγμή. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
129
Οι διεργασίες μπορούν να προχωρήσουν μόνον όταν υπάρχει το μέσον που θα εκτελέσει τα σχετικά προγράμματα. Αυτό το μέσο είναι ο επεξεργαστής (processor). Ανάλογα με τη φύση των εντολών, ο επεξεργαστής μπορεί να υλοποιηθεί αποκλειστικά με υλικό ή με συνδυασμό υλικού και λογισμικού. Παράδειγμα: μια CPU είναι ένας επεξεργαστής για εκτέλεση εντολών γλώσσας μηχανής, ενώ μια CPU μαζί με έναν διερμηνευτή (interpreter) μιας γλώσσας προγραμματισμού συνθέτουν έναν επεξεργαστή που εκτελεί εντολές της συγκεκριμένης γλώσσας προγραμματισμού. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
130
Το πρόγραμμα ή τα προγράμματα που σχετίζονται με μια διεργασία δεν είναι απαραίτητο να υλοποιούνται υποχρεωτικά με τη μορφή λογισμικού. Παράδειγμα : η δραστηριότητα ενός διαύλου που πραγματοποιεί μεταφορά δεδομένων, θα μπορούσε να θεωρηθεί ως διεργασία στην οποία το σχετικό πρόγραμμα βρίσκεται μέσα στο υλικό του διαύλου. Από την πλευρά αυτή κάθε ελεγκτής μιας περιφερειακής συσκευής είναι ένας επεξεργαστής που μπορεί να εκτελεί μια μόνο διεργασία. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
131
Η διαχείριση των διεργασιών αποτελεί το θεμελιώδες αντικείμενο οποιουδήποτε Λ.Σ.
Το Λ.Σ. διατηρεί μια δομή δεδομένων για κάθε διεργασία που περιγράφει : την κατάστασή της , την κατοχή πόρων του συστήματος και δίνει τη δυνατότητα στο Λ.Σ. να ασκεί επιρροή στον έλεγχο της διεργασίας. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
132
Ένας επεξεργαστής εκτελεί εντολές μηχανής που βρίσκονται στην κύρια μνήμη σε μορφή προγράμματος.
Για να εκτελεσθεί ένα πρόγραμμα δημιουργείται μια διεργασία για το συγκεκριμένο πρόγραμμα. Κατά τη διάρκεια του χρόνου οι εντολές προγράμματος που εκτελούνται δημιουργούν μια λίστα που ονομάζεται αποτύπωση της διεργασίας. Ένας επεξεργαστής μπορεί να απασχοληθεί σε διαφορετικές διεργασίες μέσω ενός αλγορίθμου χρονοδρομολόγησης (scheduling) που καθορίζει πότε και ποια διεργασία θα έχει κάθε φορά το δικαίωμα αποκλειστικής χρήσης του. Το ζητούμενο είναι να εξισορροπηθούν οι ανταγωνιστικές απαιτήσεις για την αποδοτικότητα (efficiency) όλου του συστήματος και για τις σχέσεις δικαιοσύνης (fairness) μεταξύ των διεργασιών. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
133
Οι περισσότερες απαιτήσεις που πρέπει να αντιμετωπίσει το Λ. Σ
Οι περισσότερες απαιτήσεις που πρέπει να αντιμετωπίσει το Λ.Σ. εκφράζονται με αναφορά στις διεργασίες: Το Λ.Σ. πρέπει να παρεμβάλει την εκτέλεση πολλαπλών διεργασιών (μεγιστοποίηση χρήσης επεξεργαστή και ελαχιστοποίηση χρόνου απόκρισης των διεργασιών) Το Λ.Σ. πρέπει να αναθέτει πόρους στις διεργασίες με μια συγκεκριμένη πολιτική και να αποφεύγει ταυτόχρονα το αδιέξοδο. Το Λ.Σ. χρειάζεται να υποστηρίζει την επικοινωνία των διεργασιών και τη δημιουργία διεργασιών από τους χρήστες. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
134
2. Καταστάσεις διεργασίας
Το Λ.Σ. πρέπει να εξασφαλίσει ότι κάθε διεργασία αναλαμβάνει για αρκετό χρόνο τη χρήση του επεξεργαστή. Σε κάθε σύστημα μπορούν να υπάρχουν τόσες ταυτόχρονες διεργασίες όσοι είναι και οι επεξεργαστές. Στην πραγματικότητα σε κάθε επεξεργαστή υπάρχουν περισσότερες διεργασίες. Κατά τη διάρκεια ζωής της κάθε διεργασία μπορεί να βρεθεί σε μια σειρά από διακριτές καταστάσεις. Διάφορα γεγονότα αναγκάζουν μια διεργασία να μεταβάλει την κατάστασή της. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
135
Εκτελούμενη (running): η διεργασία χρησιμοποιεί τη CPU εκείνη τη στιγμή
Έτοιμη (ready): η διεργασία έχει διακοπεί προσωρινά για να εκτελεστεί κάποια άλλη Υπό αναστολή (blocked): η διεργασία δεν μπορεί να εκτελεστεί μέχρι να συμβεί κατάλληλο εξωτερικό συμβάν ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
136
Παράδειγμα ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
137
3. Διαγράμματα καταστάσεων
Κατά την εκτέλεση των προγραμμάτων των χρηστών, οι διεργασίες δημιουργούνται και εισέρχονται στη λίστα των έτοιμων διεργασιών. Με την πάροδο του χρόνου μια διεργασία προωθείται προς την κεφαλή της λίστας και μόλις ο επεξεργαστής γίνει διαθέσιμος η διεργασία ανατίθεται στον επεξεργαστή και η κατάστασή της αλλάζει σε εκτελούμενη. Η διαδικασία της ανάθεσης της πρώτης διεργασίας από τη λίστα των έτοιμων διεργασιών στον επεξεργαστή ονομάζεται διεκπεραίωση και υλοποιείται από μια οντότητα του συστήματος, τον διεκπεραιωτή (dispatcher). Για να αποφευχθεί η μονοπώληση της χρήσης του επεξεργαστή, το Λ.Σ. χρησιμοποιεί έναν εσωτερικό χρονιστή, μια συσκευή (interrupting clock) που παράγει μια διακοπή (interrupt) μετά από την πάροδο ενός προκαθορισμένου χρονικού ορίου, που ονομάζεται καταιγισμός (burst) ή κβάντο χρόνου (quantum). Αν η διεργασία δεν εκχωρήσει από μόνη της τον επεξεργαστή, πριν παρέλθει το κβάντο χρόνου, το Λ.Σ. μέσω της διακοπής που παράγεται, αναλαμβάνει τον έλεγχο του επεξεργαστή. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
138
Οι καταστάσεις διεργασιών αποτυπώνονται στα διαγράμματα καταστάσεων.
Η κατάσταση της τρέχουσας διεργασίας αλλάζει σε έτοιμη και προωθείται προς εκτέλεση η αμέσως επόμενη διεργασία. Αν μια εκτελούμενη διεργασία απαιτήσει μια λειτουργία Ι/Ο πριν λήξει το κβάντο χρόνου της, παραιτείται από τη χρήση του επεξεργαστή (επειδή αναμένει την ολοκλήρωση της Ι/Ο λειτουργίας). Η διεργασία τελεί υπό αναστολή. Οι υπό αναστολή διεργασίες θεωρούνται κοιμώμενες (sleep), επειδή δεν μπορούν να εκτελεστούν, ακόμη και αν ο επεξεργαστής καταστεί διαθέσιμος. Όταν ολοκληρωθεί μια διαδικασία Ι/Ο η αντίστοιχη διεργασία αλλάζει την κατάστασή της (wakeup) από υπό αναστολή σε έτοιμη και εισέρχεται στη λίστα των έτοιμων διεργασιών. Οι καταστάσεις διεργασιών αποτυπώνονται στα διαγράμματα καταστάσεων. Η μετάβαση από μια κατάσταση σε μία άλλη γίνεται λόγω της ύπαρξης συγκεκριμένων γεγονότων. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
139
Μοντέλο διεργασίας δύο καταστάσεων
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
140
Μοντέλο διεργασιών 5-καταστάσεων
Τύποι γεγονότων: New Ready RunningReady RunningBlocked ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
141
Διεργασίες υπό αναστολή
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
142
Διεργασίες υπό αναστολή
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
143
Καταστάσεις διεργασιών
Running : η διεργασία που είναι σε εκτέλεση Ready : είναι έτοιμη για εκτέλεση Blocked : δεν μπορεί να εκτελεστεί μέχρι να προκύψει κάποιο γεγονός New : έχει μόλις δημιουργηθεί από το ΛΣ Exit : έχει απελευθερωθεί από τη δεξαμενή εκτελέσιμων εργασιών από το ΛΣ ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
144
Τύποι γεγονότων NewReady: μια επιπρόσθετη διεργασία εισάγεται όταν δεν παραβιάζεται ένα μέγιστο όριο που εξαρτάται από τις υπάρχουσες διεργασίες και το μέγεθος της ιδεατής μνήμης. RunningReady: η εκτελούμενη διεργασία έχει φθάσει στο μέγιστο επιτρεπτό όριο μη διακοπτόμενης εκτέλεσής της. RunningBlocked: η διεργασία απαιτεί μια υπηρεσία από το ΛΣ για την οποία το ΛΣ δεν είναι προετοιμασμένο να την εκτελέσει άμεσα. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
145
Χρονοδρομολογητές (schedulers)
Όταν μια διεργασία βρίσκεται σε μια ουρά το Λ.Σ. με κάποιον τρόπο πρέπει να επιλέξει μια διεργασία από την ουρά, η λειτουργία αυτή επιτελείται από έναν χρονο-δρομολογητή. Long-term scheduler (or job scheduler) – αποφασίζει και επιλέγει τις διεργασίες που θα περιληφθούν στην ουρά των έτοιμων προς εκτέλεση διεργασιών (ready queue). Ελέγχει τον βαθμό πολυπρογραμματισμού. Short-term scheduler (or CPU scheduler) – επιλέγει ποια διεργασία θα είναι η επόμενη προς εκτέλεση και εκχωρεί τη χρήση της CPU. Medium-term scheduler – χρησιμοποιείται ειδικά σε time-sharing συστήματα ως ένα ενδιάμεσο επίπεδο χρονοδρομολόγησης. Χρησιμοποιεί ένα σχήμα εναλλαγής που μετακινεί περιοδικά διεργασίες από τη μνήμη και τις εγκαθιστά αργότερα για να συνεχίσουν από το σημείο που είχαν σταματήσει. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
146
4. Μπλοκ ελέγχου διεργασίας (PCB – Process Control Block)
Το Λ.Σ. εκτελεί αρκετές λειτουργίες όταν δημιουργεί μια νέα διεργασία. Καταρχήν πρέπει να μπορεί να ταυτοποιήσει κάθε νέα διεργασία, έτσι αναθέτει σε κάθε μία ένα μοναδικό αριθμό (Process Identification number – PID). Στη συνέχεια δημιουργεί το μπλοκ ελέγχου διεργασίας (PCB), ονομάζεται και περιγραφέας διεργασίας, που διατηρεί τις πληροφορίες που απαιτούνται για τη διαχείριση της διεργασίας. Το PCB είναι το σύνολο των χαρακτηριστικών που χρησιμοποιούνται από το Λ.Σ. για τον έλεγχο της διεργασίας. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
147
Το μπλοκ ελέγχου διεργασίας είναι συστατικό της εικόνας της διεργασίας που περιλαμβάνει επίσης το πρόγραμμα, τα δεδομένα και τη στοίβα. Μια εικόνα διεργασίας αποτελείται από ένα σύνολο θέσεων μνήμης (μεταβλητού ή σταθερού μήκους) που αποθηκεύονται σε μη γειτονικές θέσεις. Το Λ.Σ. μπορεί να ασχολείται κάθε στιγμή μόνον με ένα τμήμα μιας συγκεκριμένης διεργασίας. Σε κάθε χρονική στιγμή ένα τμήμα της εικόνας διεργασίας μπορεί να βρίσκεται στην κύρια μνήμη και το υπόλοιπο στη δευτερεύουσα μνήμη. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
148
PCB … Process identification Process identification Process
Control Block Process state information Process state information Process state information Process control information Process control information Process control information … User stack User stack User stack Private user address space Private user address space Private user address space Shared address space Shared address space Shared address space ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
149
Πίνακας διεργασιών Για να υλοποιηθεί οποιοδήποτε μοντέλο κατάστασης διεργασιών, το Λ.Σ. οικοδομεί έναν πίνακα διεργασιών (process table), ο οποίος περιλαμβάνει μια καταχώρηση για κάθε διεργασία. Στην καταχώρηση αυτή εγγράφονται πληροφορίες σχετικές με την κατάσταση της διεργασίας (εικόνα της διεργασίας) ώστε να συνεχίσει να εκτελείται μετά από κάποια διακοπή. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
150
Πίνακας διεργασιών . Process Memory Images Process 1 Memory Tables
Devices I/O Tables Files Processes File Tables Process Table Process 1 Process 2 Process N . Process N ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
151
Πεδία καταχώρησης του πίνακα διεργασιών
Διαχείριση διεργασιών Καταχωρητές Δείκτης εντολών προγράμματος Λέξη κατάστασης προγράμματος Δείκτης στοίβας Κατάσταση διεργασίας Χρόνος εκκίνησης διεργασίας Χρόνος χρήσης CPU Χρόνος CPU θυγατρικών διεργασιών Χρόνος επόμενης εγρήγορσης Δείκτης ουράς μηνυμάτων ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
152
Διαχείριση μνήμης Δείκτης σε τμήμα κειμένου Δείκτης σε τμήμα δεδομένων
Κατάσταση εξόδου Κατάσταση σήματος Ταυτότητα διεργασίας Γονική διεργασία Ομάδα διεργασιών Πραγματική και λειτουργική ταυτότητα χρήστη και ομάδας χρήστη Χάρτης δυαδικών ψηφίων για σήματα ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
153
Διαχείριση αρχείων Μάσκα δικαιωμάτων Πρωταρχική διαδρομή
Διαδρομή εργασίας Περιγραφείς αρχείων Λειτουργική ταυτότητα χρήστη και ομάδας Παράμετροι κλήσεων συστήματος Διάφοροι ενδείκτες ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
154
Λόγοι εναλλαγής εκτελούμενης διεργασίας
Clock interrupt Η διεργασία έχει εξαντλήσει το μέγιστο επιτρεπόμενο χρονικό όριο (time slice) I/O interrupt Σφάλμα μνήμης Η διεύθυνση μνήμης βρίσκεται στην εικονική μνήμη και πρέπει να μεταφερθεί στην κύρια μνήμη Trap Έχει συμβεί σφάλμα Κλήση επόπτη (κλήση συστήματος) π.χ. άνοιγμα αρχείου ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
155
Αλλαγή κατάστασης διεργασίας (εναλλαγή πλαισίου)
Αλλαγή κατάστασης διεργασίας (εναλλαγή πλαισίου) Εκτελούμενη (running) άλλη κατάσταση Αποθήκευση του πλαισίου του επεξεργαστή που περιλαμβάνει τον PC και άλλους καταχωρητές (στο PCB) Μετακίνηση του PCB στην αντίστοιχη ουρά (ready, blocked, …) Επιλογή μιας άλλης διεργασίας προς εκτέλεση Ενημέρωση του PCB της διεργασίας που έχει επιλεγεί Ενημέρωση των δομών δεδομένων της διαχείρισης μνήμης Επαναφορά πλαισίου (στον επεξεργαστή) της διεργασίας που έχει επιλεγεί ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
156
5. Υπηρεσίες Λ.Σ. για διαχείριση διεργασιών
Τα Λ.Σ. πρέπει να μπορούν να υλοποιούν συγκεκριμένες λειτουργίες που αφορούν τις διεργασίες. Στη συνέχεια περιγράφονται υπηρεσίες (system calls) που παρέχονται τυπικά από τους πυρήνες των Λ.Σ. πολυπρογραμματισμού για τη διαχείριση των διεργασιών. Ως υπηρεσίες εννοούνται οι προκαθορισμένες κλήσεις συστήματος που μπορούν να τεθούν σε λειτουργία από το χρήστη : Άμεσα, μέσω κλήσεων του supervisor που ενσωματώνονται στον κώδικα του χρήστη Έμμεσα , μέσω εντολών που δίνονται στο τερματικό και μεταφράζονται σε κλήσεις από το Λ.Σ. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
157
Τα διάφορα Λ.Σ. αν και συχνά διαφέρουν στον σχεδιασμό και τη φιλοσοφία παρουσιάζουν μεγάλες ομοιότητες στα εσωτερικά επίπεδα του πυρήνα, όσον αφορά τον τύπο και το εύρος της στοιχειώδους διαχείρισης διεργασιών που παρέχουν. Οι λεπτομέρειες και οι παράμετροι διαφέρουν αναπόφευκτα από το ένα σύστημα στο άλλο, αλλά οι συναρτήσεις που παρέχονται από το σύνολο των Λ.Σ. είναι παρόμοιες. Υπάρχει μια σιωπηρή συμφωνία μεταξύ των σχεδιαστών σε αυτό που θα συνιστά το ελάχιστο σύνολο συναρτήσεων και υπηρεσιών που θεωρούνται απαραίτητες σε ένα πολυδιεργασιακό περιβάλλον. Μερικές υπηρεσίες που θεωρούνται βασικές σε ένα Λ.Σ. μπορούν να υλοποιούνται ως συνδυασμός άλλων σε διαφορετικό Λ.Σ. Οι κλήσεις του Λ.Σ. θα θεωρηθούν στη συνέχεια ως παραμετροποιημένες κλήσεις διαδικασιών που είναι κατά κάποιο τρόπο προκαθορισμένες και προσβάσιμες από τις γλώσσες προγραμματισμού συστημάτων για μια συγκεκριμένη εγκατάσταση. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
158
Οι πιο συνήθεις είναι: CREATE DELETE FORK / JOIN ABORT SUSPEND RESUME
DELAY GET_ATTRIBUTES CHANGE_PRIORITY ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
159
Δημιουργία διεργασιών
Όταν πρόκειται να προστεθεί μια καινούρια διεργασία, σε αυτές που ήδη υπάρχουν, το Λ.Σ. δημιουργεί τις δομές δεδομένων που χρησιμοποιούνται για τη διαχείρισή της και εκχωρεί στην νέα διεργασία χώρο στην κύρια μνήμη. Αιτίες για τη δημιουργία διεργασίας Απόκριση στην υποβολή μιας εργασίας Ένας νέος χρήστης προσπαθεί να συνδεθεί Απαίτηση για παροχή κάποιας υπηρεσίας από μια εφαρμογή Παραγωγή από υπάρχουσα διεργασία ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
160
CREATE (processID, attributes)
To Λ.Σ. απαντά στη κλήση CREATE δημιουργώντας μια νέα διεργασία με τα συγκεκριμένα χαρακτηριστικά Μια διεργασία ΔΕΝ ΜΠΟΡΕΙ ΝΑ ΔΗΜΙΟΥΡΓΗΘΕΙ ΑΠΟ ΜΟΝΗ ΤΗΣ επειδή θα πρέπει η εκτέλεσή της να τεθεί σε λειτουργία από το Λ.Σ. Έτσι θα πρέπει να δημιουργηθεί από μια άλλη διεργασία. Το Λ.Σ. αποκτά ένα ελεύθερο PCB από την διαθέσιμη περιοχή της μνήμης, συμπληρώνει τα πεδία με τις κατάλληλες τιμές και εισάγει το PCB στη λίστα των έτοιμων διεργασιών. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
161
Μερικές από τις παραμέτρους που ορίζονται κατά τη δημιουργία της διεργασίας είναι :
επίπεδο (συστήματος ή χρήστη) προτεραιότητα μέγεθος και απαιτήσεις μνήμης μέγιστη περιοχής δεδομένων και στοίβας πληροφορίες προστασίας μνήμης και δικαιώματα πρόσβασης άλλα δεδομένα εξαρτώμενα από το σύστημα ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
162
Τυπικά λάθη που δηλώνουν ότι η διεργασία δεν δημιουργήθηκε σαν αποτέλεσμα της κλήσης, μπορούν να περιλαμβάνουν: Λάθος ID (μη αποδεκτό ή η διεργασία είναι ήδη ενεργή) Δεν υπάρχει χώρος για το PCB (παροδικό) Η καλούσα διεργασία δεν είναι εξουσιοδοτημένη για να εκτελέσει αυτή τη συνάρτηση ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
163
Τερματισμός διεργασιών
Λόγοι τερματισμού μιας διεργασίας Φυσιολογική ολοκλήρωση Υπέρβαση χρονικού ορίου Μη διαθέσιμη μνήμη Καταπάτηση ορίων Σφάλμα προστασίας Αριθμητικό σφάλμα Υπερχείλιση χρονικού ορίου Σφάλμα Ι/Ο Μη έγκυρη εντολή Προνομιούχος εντολή Λανθασμένη χρήση δεδομένων Τερματισμός ή αίτηση γονέα Μεσολάβηση χειριστή ή του Λ.Σ. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
164
DELETE(processID) Ονομάζεται και DESTROY, TERMINATE, EXIT
Όταν τεθεί σε λειτουργία αναγκάζει το Λ.Σ. να καταστρέψει τη διεργασία και να την διαγράψει από το σύστημα Μια διεργασία μπορεί να διαγράψει από μόνη της μια άλλη διεργασία Το Λ.Σ. ανακαλεί όλους τους πόρους που είχαν εκχωρηθεί στη διεργασία, κλείνει όλα τα αρχεία και κάνει κάθε αναγκαία ενέργεια. Το PCB της διεργασίας διαγράφεται και η αντίστοιχη περιοχή μνήμης ελευθερώνεται ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
165
Η υπηρεσία DELETE τίθεται σε λειτουργία ως αναπόσπαστο τμήμα του κανονικού τερματισμού ενός προγράμματος Πολλοί compilers μεταφράζουν την τελευταία εντολή END του κυρίως προγράμματος σε μια κλήση συστήματος DELETE. Οι σχεδιαστές των Λ.Σ. διαφοροποιούνται ως προς τη δυνατότητα μια διεργασία να μπορεί να τερματίσει άλλες διεργασίες. Η σχεδίαση πρέπει να εξισορροπήσει την ανάγκη για αποτελεσματικότητα με την ακεραιότητα του συστήματος. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
166
Πιθανά λάθη: Μια θυγατρική διεργασία (child process) είναι ενεργή (και πρέπει να τερματιστεί πρώτη) Λάθος ID Η καλούσα διεργασία δεν είναι εξουσιοδοτημένη για να εκτελέσει αυτή τη συνάρτηση ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
167
ABORT(processID) Εξαναγκασμένος τερματισμός μιας διεργασίας
Η πιο συχνή χρήση αυτής της κλήσης είναι για αναγκαστικούς τερματισμούς ως αποτέλεσμα κακής χρήσης μιας διεργασίας Το Λ.Σ. υλοποιεί την διεργασία όπως και την DELETE παρέχοντας επιπλέον ένα καταχωρητή και μια αποτύπωση μνήμης με πληροφορίες για την ταυτότητα της διεργασίας που εγκαταλείπεται καθώς και για κάποια πιθανή αιτία. Οι πληροφορίες αυτές μπορούν να παρέχονται σε αρχείο, σε μήνυμα ή σαν είσοδος σε μια λειτουργία crash-dump analyzer. Τα πιθανά λάθη είναι τα ίδια με αυτά της DELETE ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
168
SUSPEND(processID) RESUME(processID) Ονομάζεται και SLEEP ή BLOCK.
Η διεργασία που την καλεί αναστέλλεται αλλά παραμένει στο σύστημα. Μια διεργασία μπορεί να αναστείλει τον εαυτό της η κάποια άλλη, αν είναι εξουσιοδοτημένη. RESUME(processID) Ονομάζεται και WAKEUP Το ζεύγος SUSPEND/RESUME είναι ένας κατάλληλος μηχανισμός για πρωτογενείς και μη δομημένες μορφές διαδιεργασιακού συγχρονισμού. Χρησιμοποιείται συχνά σε συστήματα που δεν υποστηρίζουν ανταλλαγή σημάτων ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
169
DELAY(processID, time)
Ονομάζεται και SLEEP Η διεργασία αναστέλλεται για το χρονικό διάστημα που καθορίζεται σε μονάδες του ρολογιού συστήματος ή σε κανονικές χρονικές μονάδες. Μια διεργασία μπορεί να καθυστερήσει τον εαυτό της καθώς και άλλες Οι ενέργειες του Λ.Σ. για τη διαχείριση αυτής της κλήσης εξαρτώνται από τις διεργασίες διακοπών που υλοποιεί ο εσωτερικός χρονιστής. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
170
FORK / JOIN (γενικά) Οι εντολές fork και join χρησιμοποιούνται για τη δημιουργία και τον τερματισμό διεργασιών, κυρίως σε συστήματα UNIX. Η FORK χρησιμοποιείται για να διαιρέσει μια ακολουθία εντολών σε δύο ταυτόχρονα παράλληλες εκτελούμενες ακολουθίες. Μόλις ο έλεγχος φθάσει στη διεργασία που προσδιορίζεται στη FORK μια νέα διεργασία (child) παράγεται για να εκτελέσει τον ένα κλάδο του παράλληλου κώδικα ενώ η γονική (parent) διεργασία συνεχίζει παράλληλα να εκτελεί τον άλλο κλάδο. Οι δύο αυτές διεργασίες μοιράζονται τις ίδιες μεταβλητές. Η γονική μπορεί ακόμη να δημιουργήσει περισσότερες θυγατρικές, που μπορούν να εκτελούνται όλες μαζί παράλληλα. Οποιαδήποτε από αυτές μπορεί επίσης να καλέσει την FORK, έτσι ώστε να δημιουργηθεί ένα δένδρο διεργασιών οποιουδήποτε βάθους. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
171
Η FORK επιστρέφει συνήθως την ταυτότητα της θυγατρικής στη γονική διεργασία και η γονική διεργασία μπορεί να τη χρησιμοποιήσει για να σχεδιάσει τον τερματισμό της θυγατρικής διεργασίας, η οποία πρέπει να συμβεί πριν τεθεί σε λειτουργία η JOIN. Η JOIN συνενώνει τις δύο ακολουθίες του κώδικα και είναι διαθέσιμη σε μια γονική διεργασία για συγχρονισμό με τη θυγατρική. Με τη χρήση των fork – join μπορεί να περιγραφεί κάθε γράφος προήγησης. Ο γράφος προήγησης είναι ένας φυσικός τρόπος για την περιγραφή ταυτόχρονων προγραμμάτων. Είναι ένας κατευθυνόμενος άκυκλος γράφος (directed acyclic graph) με τις διεργασίες να αντιστοιχούν στους κόμβους, ενώ οι ακμές καθορίζουν τις προτεραιότητες εκτέλεσης των διεργασιών. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
172
Ιεραρχία δημιουργίας διεργασιών
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
173
Θεμελιώδη χαρακτηριστικά της fork
Στο Λ.Σ. Unix η κλήση συστήματος για τη δημιουργία διεργασίας ονομάζεται fork(). Η κλήση συστήματος fork δημιουργεί μια θυγατρική διεργασία που είναι κλώνος της διεργασίας - γονέα. Η θυγατρική διεργασία: Διατηρεί ένα εικονικό αντίγραφο της εικονικής μνήμης του γονέα. «Τρέχει» στο ίδιο πρόγραμμα όπως και ο γονέας. Κληρονομεί τους περιγραφείς (open file descriptors) των ανοικτών αρχείων του γονέα. (Οι file descriptors του γονέα και του απόγονου δείχνουν σε μια κοινή είσοδο του πίνακα ανοικτών αρχείων του συστήματος.) Ξεκινά με τις τιμές καταχωρητών ίδιες με αυτές του γονέα. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
174
Η θυγατρική διεργασία είναι πιθανόν να εκτελεί στο πλαίσιό της ένα διαφορετικό πρόγραμμα, με μια ξεχωριστή κλήση συστήματος exec() . Χρησιμοποιώντας την ακολουθία fork/exec , ο γονέας (συνήθως ένας command interpreter ή ο φλοιός) ουσιαστικά επιτρέπει στους απογόνους να κάνουν προσπελάσεις/εγγραφές σε αρχεία, τερματικά, συνδέσεις δικτύου, διασωληνώσεις, κλπ. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
175
8. Συνεξέλιξη (concurrency)
Ένα σημαντικό και θεμελιώδες χαρακτηριστικό των σύγχρονων Λ.Σ. είναι η ταυτόχρονη εξέλιξη (ή συνεξέλιξη) πολλών διεργασιών. Το χαρακτηριστικό αυτό είναι ουσιώδες για την κατανόηση του πολυπρογραμματισμού, της πολυεπεξεργασίας, των κατανεμημένων συστημάτων και του μοντέλου πελάτη – εξυπηρέτη των υπολογιστικών συστημάτων. Η συνεξέλιξη εμπεριέχει πολλά σχεδιαστικά χαρακτηριστικά που περιλαμβάνουν: επικοινωνία και συγχρονισμό μεταξύ των διεργασιών διαχείριση πόρων του υπολογιστικού συστήματος ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
176
Η συνεξέλιξη μπορεί να θεωρηθεί ως η ταυτόχρονη ενεργοποίηση ενός αριθμού διεργασιών. Αν υπάρχουν τόσοι επεξεργαστές όσες είναι και οι διεργασίες τότε δεν υπάρχει δυσκολία. Αν όμως οι επεξεργαστές είναι λιγότεροι (ή ένας) τότε επιτυγχάνεται μόνο φαινομενική συνεξέλιξη με συνεχείς εναλλαγές διεργασιών. Αν η μεταγωγή των διεργασιών γίνεται κατά μικρά χρονικά διαστήματα, τότε το σύστημα, εξεταζόμενο σε μια μακρά χρονική περίοδο, δίνει τη ψευδαίσθηση της συνεξέλιξης. Η συνεξελισσόμενη ή παράλληλη επεξεργασία είναι εκείνη για την οποία αν λάβουμε μια στιγμιαία αποτύπωση του συστήματος σαν σύνολο, τότε οι διάφορες διεργασίες μπορεί να βρίσκονται από πλευράς εξέλιξης, κάπου ανάμεσα στα σημεία έναρξης και ολοκλήρωσής τους. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
177
Αν θεωρήσουμε τις διεργασίες ως ακολουθίες ενεργειών που μπορούν να διακοπούν σε κάποια στάδια εκτέλεσής τους, υπάρχει γενικά αδυναμία πρόβλεψης της σειράς με την οποία θα εμφανιστούν οι διακοπές και επομένως αδυναμία πρόβλεψης (ακαθοριστία) της σειράς με την οποία εξελίσσονται οι ακολουθίες των ενεργειών. Η διακοπή μιας διεργασίας πρέπει να συνοδεύεται από μια καταγραφή πληροφοριών που θα δώσουν στη συνέχεια τη δυνατότητα στη διεργασία να ξαναρχίσει. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
178
Η συνεξέλιξη περιλαμβάνει:
την επικοινωνία μεταξύ των διεργασιών τη διαμοίραση των πόρων το συγχρονισμό πολλαπλών διεργασιών την εκχώρηση χρόνου του επεξεργαστή στις διεργασίες Δυσκολίες που προκύπτουν: διαμοίραση των πόρων διαχείριση της εκχώρησης των πόρων προγραμματιστικά λάθη που εντοπίζονται δύσκολα ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
179
Η συνεξέλιξη είναι σημαντική, αλλά πρέπει να αντιμετωπιστούν :
ο αμοιβαίος αποκλεισμός η παρατεταμένη στέρηση το αδιέξοδο ο συγχρονισμός το αυξημένο κόστος εναλλαγής των διεργασιών ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
180
9. Διαδιεργασιακή επικοινωνία (IPC)
Οι διεργασίες σε ένα υπολογιστικό σύστημα δεν ενεργούν ανεξάρτητα η μια από την άλλη. Η διαδιεργασιακή επικοινωνία (Inter-Process Communication - IPC) είναι ένας μηχανισμός που επιτρέπει στις διεργασίες να επικοινωνούν και να συγχρονίζουν τις ενέργειές τους. Είναι απαραίτητη σε δικτυακά περιβάλλοντα καθώς και σε περιβάλλοντα πολυπρογραμματισμού. Με ποιους τρόπους επικοινωνούν οι διεργασίες μεταξύ τους; ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
181
H διαδιεργασιακή επικοινωνία μπορεί να επιτευχθεί με :
τη συνεργασία και τον ανταγωνισμό Η συνεργασία και ο ανταγωνισμός των διεργασιών απαιτούν την κατάλληλη υποστήριξη του Λ.Σ. Η συνεργασία εξαρτάται από την ύπαρξη μηχανισμού ελέγχου των διαμοιραζόμενων δεδομένων και την ανταλλαγή σημάτων συγχρονισμού. Ο ανταγωνισμός απαιτεί προσεκτική εκχώρηση και προστασία πόρων. Κατά τη σχεδίαση των Λ.Σ. πρέπει να λαμβάνονται υπόψη όλες αυτές οι απαιτούμενες και συχνά αλληλοσυγκρουόμενες προδιαγραφές. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
182
Τρόποι διαδιεργασιακής επικοινωνίας
Διαμοιραζόμενη μνήμη (shared memory) – ανάγνωση/εγγραφή σε διαμοιραζόμενη περιοχή της μνήμης Σηματοφορείς (semaphores) – σήματα που ενημερώνουν για διεργασίες σε αναμονή Διακοπές λογισμικού (software interrupts) – οι διεργασίες ενημερώνονται ασύγχρονα Διασωληνώσεις (pipes) – επικοινωνία αλληλουχίας διεργασιών με χρήση streams Μεταβίβαση μηνυμάτων (message passing) –διεργασίες που στέλνουν και λαμβάνουν μηνύματα. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
183
Προβλήματα IPC Κατά τη διαδιεργασιακή επικοινωνία είναι ενδεχόμενο να προκύψουν προβλήματα που πρέπει να αντιμετωπισθούν ή να προβλεφθούν. Όταν η επικοινωνία είναι ουσιαστική, το Λ.Σ. πρέπει να διαχειριστεί κυρίως: το συγχρονισμό (synchronization) τον αμοιβαίο αποκλεισμό (mutual exclusion) το αδιέξοδο (deadlock) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
184
Αμοιβαίος αποκλεισμός
Αναφέρεται στη δυνατότητα πολλαπλών διεργασιών (ή νημάτων) να διαμοιράζονται κώδικα, πόρους και δεδομένα έτσι ώστε σε μια χρονική στιγμή μόνο μια διεργασία να έχει πρόσβαση στο συγκεκριμένο αντικείμενο. Είναι απαραίτητος για τη σωστή χρήση των πόρων. Διαχείριση αδιεξόδων Ένα σύνολο δύο ή περισσοτέρων διεργασιών αναμένουν την ολοκλήρωση άλλων διεργασιών ώστε να συνεχίσουν την εκτέλεσή τους αλλά καμιά από τις διεργασίες δεν μπορεί να προχωρήσει. Είναι απαραίτητη για την ολοκλήρωση εκτέλεσης των διεργασιών. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
185
10. Χρήση πόρων Οι πόροι (resources) του συστήματος μπορεί να είναι διαμοιραζόμενοι (shareable) δηλ. μπορούν να χρησιμοποιούνται από πολλές διεργασίες που εξελίσσονται ταυτόχρονα ή μη διαμοιραζόμενοι (non-shareable) όπου η χρήση τους περιορίζεται σε μια μόνο διεργασία κάθε φορά. Ο μη διαμοιρασμός ενός πόρου οφείλεται στους παρακάτω λόγους: στη φύση του πόρου η παράλληλη χρησιμοποίηση του πόρου από διαφορετικές διεργασίες προκαλεί την σύγκρουση δραστηριοτήτων διαφορετικών διεργασιών ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
186
Κοινή χρήση πόρων Σε ορισμένα Λ.Σ. συνεργαζόμενες διεργασίες μοιράζονται συχνά την ίδια περιοχή μνήμης, για εγγραφή και ανάγνωση δεδομένων. Η περιοχή αυτή μπορεί να βρίσκεται στην κύρια μνήμη ή να είναι ένα διαμοιραζόμενο αρχείο δίσκου. Ωστόσο η θέση αυτής της περιοχής δε μεταβάλλει ούτε την υφή της επικοινωνίας, ούτε και τα ζητήματα που προκύπτουν. Παραδείγματα : μια θέση μνήμης που περιέχει μια μεταβλητή προσπελάσιμη από περισσότερες από μια διεργασίες (π.χ.σύστημα κράτησης θέσεων πτήσεων). διεκπεραιωτής ετεροχρονισμένης εκτύπωσης (spooler) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
187
Το Λ.Σ. πρέπει να προστατεύει έναν πόρο από την πιθανότητα «να παραποιηθεί»
Χειριστής 1 Χειριστής 2 τελευταία θέση στην πτήση 911 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
188
Ο ταξιδ. πράκτορας Α κλείνει τη θέση Χ
ο ταξιδ. πράκτορας Α βλέπει ότι η θέση Χ είναι ελεύθερη και συμβουλεύεται τον πελάτη του Ο ταξιδ. πράκτορας Α κλείνει τη θέση Χ ο ταξιδ. πράκτορας Β βλέπει ότι η θέση Χ είναι ελεύθερη και συμβουλεύεται τον πελάτη του Ο ταξιδ. πράκτορας Β κλείνει τη θέση Χ ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
189
Διεκπεραιωτής ετεροχρονισμένης εκτύπωσης (spooler)
κατάλογος ετεροχρονισμένης εκτύπωσης Δύο διεργασίες επιθυμούν πρόσβαση σε διαμοιραζόμενη μνήμη την ίδια χρονική στιγμή ...... out = 4 4 abc 5 prog.c in = 7 6 prog.n ΔΙΕΡΓΑΣΙΑ Α Spooler directory Printer daemon 7 ΔΙΕΡΓΑΣΙΑ Β ...... ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
190
Το spooler directory είναι εσωτερικά συνεπές.
Η διεργασία Α διαβάζει την τιμή της in και αποθηκεύει την τιμή 7 σε μια τοπική μεταβλητή. Μια διακοπή χρονιστή (clock interrupt) επιβάλλει την εκτέλεση της διεργασίας Β. Η Β διαβάζει την τιμή της in, αποθηκεύει το όνομα του προς εκτύπωση αρχείου και αυξάνει την τιμή της in κατά 1, δηλ. in=8. Η Α συνεχίζει από το σημείο διακοπής δηλ. καταχωρεί το όνομα του προς εκτύπωση αρχείου και αυξάνει την τιμή της in κατά 1 δηλαδή in=8. Το spooler directory είναι εσωτερικά συνεπές. Η διεργασία Β δεν θα λάβει ποτέ την εκτύπωσή της. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
191
Spooler Ο spooler παρέχει τον τρόπο για ταυτόχρονη χρήση συσκευών Ι/Ο σε συστήματα πολυπρογραμματισμού. Επιτρέπει την επικάλυψη ανάμεσα σε συσκευές Ι/Ο και σε ένα πλήθος διεργασιών που απαιτούν εξυπηρέτηση, διατηρώντας έτσι τους ρυθμούς χρήσης της CPU και των συσκευών I/O υψηλούς. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
192
11. Αλληλεπίδραση διεργασιών
Σύστημα πολυπρογραμματισμού : ένα σύστημα που μοιράζει το χώρο της μνήμης του και διανέμει το χρόνο της CPU σε περισσότερες από μια διεργασίες. Σε πολύ-προγραμματιστικό σύστημα ενός επεξεργαστή οι διεργασίες εναλλάσσονται ώστε να δίνουν την εικόνα της ταυτόχρονης εκτέλεσης, ενώ σε συστήματα πολλών επεξεργαστών είναι δυνατή και η επικάλυψη των διεργασιών. Και στις δύο περιπτώσεις τα προβλήματα κατά τη δια-διεργασιακή επικοινωνία προέρχονται από ένα βασικό χαρακτηριστικό των πολύ-προγραμματιστικών συστημάτων: η ταχύτητα εκτέλεσης των διεργασιών δεν μπορεί να προβλεφθεί. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
193
Δυσκολίες που προκύπτουν λόγω της αλληλεπίδρασης των διεργασιών :
η διαμοίραση και η ανάθεση των πόρων το Λ.Σ. συνήθως δεν διαχειρίζεται την ανάθεση των πόρων με βέλτιστο τρόπο εντοπισμός των προγραμματιστικών σφαλμάτων (τα αποτελέσματα είναι μη αιτιοκρατικά (non-deterministic) ) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
194
Ωστόσο είναι απαραίτητη η προστασία διαμοιραζόμενων μεταβλητών.
Η διεργασία echo είναι διαμοιραζόμενη διεργασία που φορτώνεται σε ένα τμήμα της μνήμης κοινό για όλες τις εφαρμογές. Η διαμοίραση της κύριας μνήμης μεταξύ των διεργασιών είναι χρήσιμη για την εξασφάλιση αποτελεσματικής αλληλεπίδρασης μεταξύ των διεργασιών. Ωστόσο είναι απαραίτητη η προστασία διαμοιραζόμενων μεταβλητών. Ο μόνος τρόπος είναι ο έλεγχος του κώδικα που έχει πρόσβαση σ’ αυτές τις μεταβλητές. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
195
Διαμοίραση διεργασίας σε σύστημα πολλαπλών επεξεργαστών
Εμφανίζονται τα ίδια προβλήματα σχετικά με την προστασία των διαμοιραζόμενων πόρων. Είναι απαραίτητη η ύπαρξη μηχανισμού πρόσβασης στις διαμοιραζόμενες μεταβλητές. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
196
Θέματα του Λ.Σ. Η ύπαρξη της συνταύτισης πολλών διεργασιών δημιουργεί τα εξής προβλήματα, που πρέπει να ληφθούν υπόψη κατά τη σχεδίαση και τη διαχείριση του Λ.Σ. : Το Λ.Σ. θα πρέπει να μπορεί να παρακολουθεί τις ενεργές διεργασίες (χρήση των μπλοκ ελέγχου διεργασιών). Το Λ.Σ. θα πρέπει να αναθέτει και να απελευθερώνει πόρους από κάθε ενεργή διεργασία. Οι πόροι αυτοί περιέχουν: Χρόνο επεξεργαστή, Μνήμη, Αρχεία, Συσκευές Ι/Ο Το Λ.Σ. θα πρέπει να προστατεύει τα δεδομένα και τους φυσικούς πόρους κάθε διεργασίας από τη μη σκόπιμη παρέμβαση άλλων διεργασιών. Τα αποτελέσματα μιας διεργασίας πρέπει να είναι ανεξάρτητα της ταχύτητας εκτέλεσης της διεργασίας. Ο επόμενος πίνακας παρουσιάζει τους τρόπους αλληλεπίδρασης των διεργασιών ως προς τον βαθμό που η μια γνωρίζει την ύπαρξη της άλλης. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
197
Τρόποι αλληλεπίδρασης διεργασιών
Επιρροή που έχει η μια στην άλλη Ενδεχόμενα προβλήματα ελέγχου Οι διεργασίες αγνοούν η μια την άλλη Ανταγωνισμός Τα αποτελέσματα της διεργασίας είναι ανεξάρτητα των λειτουργιών άλλων διεργασιών Ο χρονοπρογραμματισμός της διεργασίας μπορεί να επηρεαστεί Αμοιβαίος αποκλεισμός Αδιέξοδο Παρατεταμένη στέρηση Οι διεργασίες γνωρίζουν έμμεσα η μια την άλλη Συνεργασία μέσω διαμοίρασης Τα αποτελέσματα μιας διεργασίας μπορεί να εξαρτώνται από πληροφορίες άλλων διεργασιών Συνοχή δεδομένων Οι διεργασίες γνωρίζουν άμεσα η μια την άλλη Συνεργασία μέσω επικοινωνίας ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
198
Συνεργαζόμενες διεργασίες
Οι συνεργαζόμενες διεργασίες μπορούν να επηρεάσουν ή να επηρεαστούν από την εκτέλεση μιας άλλης διεργασίας Πλεονεκτήματα από τη συνεργασία των διεργασιών Διαμοίραση πληροφοριών Αύξηση της ταχύτητας υπολογισμού Δυνατότητα τμηματοποίησης ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
199
Συνεργασία διεργασιών μέσω διαμοίρασης
Αφορά διεργασίες που αλληλεπιδρούν μεταξύ τους μη γνωρίζοντας η μια την άλλη (π.χ. διαμοιραζόμενα αρχεία ή βάσεις δεδομένων). Οι διεργασίες χρησιμοποιούν και ενημερώνουν τα δεδομένα χωρίς να αναφέρονται σε άλλες διεργασίες και γνωρίζοντας ότι πρέπει να συνεργάζονται για τη σωστή διαχείριση. Επειδή τα δεδομένα συντηρούνται σε πόρους προκύπτουν τα γνωστά προβλήματα ελέγχου. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
200
Συνεργασία διεργασιών μέσω επικοινωνίας
Οι διεργασίες συμμετέχουν σε μια κοινή προσπάθεια που τις συνδέει μεταξύ τους. Η επικοινωνία παρέχει έναν τρόπο συγχρονισμού και συντονισμού των διαφόρων δραστηριοτήτων και υλοποιείται μέσω μηνυμάτων. Παρουσιάζονται τα προβλήματα του αδιεξόδου και της παρατεταμένης στέρησης. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
201
Συνθήκες ανταγωνισμού
Οι συνθήκες κατά τις οποίες δύο ή περισσότερες διεργασίες διαμοιράζονται την ίδια περιοχή μνήμης και το τελικό αποτέλεσμα εξαρτάται από τη σειρά αλλά και το χρόνο εκτέλεσής τους, λέγονται συνθήκες ανταγωνισμού. Η διόρθωση προγραμμάτων που περιλαμβάνουν συνθήκες ανταγωνισμού δεν είναι ούτε ευχάριστη, ούτε εύκολη. Τα σφάλματα παρουσιάζονται τυχαία και μόνο κατά τη διενέργεια αλλεπάλληλων ελέγχων. Ο έλεγχος του ανταγωνισμού αφορά αναπόφευκτα το Λ.Σ. διότι αυτό κάνει ανάθεση πόρων, άρα οποιαδήποτε λύση θα αφορά και υποστήριξη από το Λ.Σ. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
202
Παρατεταμένη στέρηση (starvation)
Στην περίπτωση ανταγωνιζόμενων διεργασιών πρέπει να αντιμετωπιστούν τρία προβλήματα ελέγχου: Αδιέξοδο (deadlock) Παρατεταμένη στέρηση (starvation) Αμοιβαίος αποκλεισμός (mutual exclusion) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
203
Αδιέξοδο (Deadlock) Μόνιμη αναστολή ενός συνόλου διεργασιών που είτε ανταγωνίζονται για ένα κοινό πόρο του συστήματος είτε επικοινωνούν μεταξύ τους Η κατάσταση κατά την οποία δύο ή περισσότερες διεργασίες δεν μπορούν να έχουν πρόσβαση στους πόρους που χρειάζονται. Παράδειγμα: Η διεργασία A απαιτεί αποκλειστική πρόσβαση στους πόρους R,S για να συνεχίσει τους υπολογισμούς της Η διεργασία B απαιτεί αποκλειστική πρόσβαση στους πόρους S,R για να συνεχίσει τους υπολογισμούς της Η διεργασία A δεσμεύει αποκλειστικά τον R και προσπαθεί να δεσμεύσει και τον S Η διεργασία B δεσμεύει αποκλειστικά τον S και προσπαθεί να δεσμεύσει και τον R Οι διεργασίες A και B έχουν εισέλθει σε αδιέξοδο! ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
204
Σενάριο αδιεξόδου προειδοποίηση: πιθανό αδιέξοδο
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
205
Απλό αδιέξοδο κατά τη χρήση πόρων
Το σύστημα αυτό βρίσκεται σε αδιέξοδο επειδή κάθε διεργασία δεσμεύει έναν πόρο που απαιτείται από την άλλη διεργασία και καμία διεργασία δεν είναι πρόθυμη να απελευθερώσει τον πόρο που δεσμεύει. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
206
Παρατεταμένη στέρηση (Starvation)
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
207
Παρατεταμένη στέρηση (Starvation)
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
208
Παρατεταμένη στέρηση (Starvation)
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
209
Παρατεταμένη στέρηση (Starvation)
Η κατάσταση στην οποία μερικές διεργασίες σημειώνουν πρόοδο οδεύοντας προς την ολοκλήρωσή τους ενώ μερικές άλλες δεν μπορούν να έχουν πρόσβαση στους πόρους τους. Παράδειγμα : Client 1 Server Client 2 Πολιτική επιλογής εργασίας: Πάντα επιλέγεται η εργασία με την μικρότερη χρονική διάρκεια εξυπηρέτησης Client n ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
210
Αδιέξοδο & παρατεταμένη στέρηση : σύγκριση
Η παρατεταμένη στέρηση συμβαίνει όταν μια διεργασία αναμένει ένα πόρο που διαρκώς καθίσταται μη διαθέσιμος, αλλά δεν εκχωρείται ποτέ στη διεργασία αυτή λόγω προτεραιοτήτων ή προβλημάτων κατά τη σχεδίαση του δρομολογητή διεργασιών του συστήματος. Στην παρατεταμένη στέρηση, δεν είναι σίγουρο ότι η διεργασία θα δεσμεύσει κάποτε τον πόρο που χρειάζεται, ενώ μια διεργασία σε αδιέξοδο είναι μόνιμα μπλοκαρισμένη. Στην παρατεταμένη στέρηση ο πόρος που απαιτείται από τη διεργασία βρίσκεται σε συνθήκες ανταγωνισμού και σε διαρκή χρήση, γεγονός που δεν είναι αληθές για την κατάσταση του αδιεξόδου. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
211
Ενεργός αναμονή (livelock)
Η κατάσταση κατά την οποία κάποια κρίσιμο τμήμα μιας διεργασίας αδυνατεί να ολοκληρωθεί. Παράδειγμα - σενάριο : αποφυγή αδιεξόδου με απόσυρση (οπισθοχώρηση) Η διεργασία A απαιτεί αποκλειστική πρόσβαση στους πόρους R,S για να συνεχίσει τους υπολογισμούς της Η διεργασία B απαιτεί αποκλειστική πρόσβαση στους πόρους S,R για να συνεχίσει τους υπολογισμούς της Η διεργασία A δεσμεύει αποκλειστικά τον R και προσπαθεί να δεσμεύσει και τον S Η διεργασία B δεσμεύει αποκλειστικά τον S και προσπαθεί να δεσμεύσει και τον R Για την αποφυγή αδιεξόδου, η διεργασία A παραχωρεί τον πόρο R για μια περίοδο και επανακτά τον πόρο S ενώ ταυτόχρονα η διεργασία B κάνει το ίδιο ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
212
5. Αμοιβαίος αποκλεισμός
Εισαγωγή Κρίσιμα τμήματα (Critical Sections) Υλοποίηση του αμοιβαίου αποκλεισμού Προσεγγίσεις λογισμικού Υποστήριξη εκ μέρους του υλικού Σηματοφορείς Κλασσικά προβλήματα συγχρονισμού ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
213
1. Εισαγωγή Ο αμοιβαίος αποκλεισμός είναι ο αποκλεισμός μιας διεργασίας από μια ενέργεια που επιτελεί ταυτοχρόνως κάποια άλλη διεργασία. Απαιτεί μόνο μία διεργασία να πραγματοποιεί λειτουργίες σε κοινούς πόρους. Αν δύο διεργασίες προσπαθήσουν να αποκτήσουν ένα κοινό πόρο, τότε η μία θα πρέπει να αναμένει. Για την αποφυγή των παρενεργειών λόγω ανταγωνισμού είναι ζωτικής σημασίας η πρόβλεψη και η αποτροπή χρήσης διαμοιραζόμενων πόρων από περισσότερες από μια διεργασίες την ίδια χρονική στιγμή. Είναι απαραίτητος για την προστασία των κρισίμων τμημάτων των διεργασιών. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
214
Η διαχείριση του αμοιβαίου αποκλεισμού γίνεται μέσω :
Η επιλογή των κατάλληλων λειτουργιών για την επίτευξη του αμοιβαίου αποκλεισμού είναι σημαντικό θέμα κατά το σχεδιασμό των Λ.Σ. Η διαχείριση του αμοιβαίου αποκλεισμού γίνεται μέσω : Προστασίας πρόσβασης σε πόρους μέσω μηχανισμών συγχρονισμού Ενδεχόμενου συγχρονισμού (σε πολλές περιπτώσεις) μέσω των κλήσεων συστήματος, χωρίς η μέθοδος αυτή να είναι πάντοτε αποτελεσματική επειδή πολλές κλήσεις συστήματος είναι επανεισαγόμενες (reentrant). Όταν δύο ή περισσότερες διεργασίες είναι πιθανό να ζητήσουν και να εκτελέσουν συγχρόνως μια κοινή διαδικασία ο κώδικας της διαδικασίας χαρακτηρίζεται ως επανεισαγόμενος. Τέτοιες διαδικασίες πρέπει να χρησιμοποιούν επανεισαγόμενο κώδικα για να αποθηκεύουν τα συγκεκριμένα δεδομένα κάθε διεργασίας σε θέσεις μνήμης που είναι τοπικές στην κάθε διεργασία. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
215
Παράδειγμα - 1 Κατάθεση 100 € Απαίτηση ανάληψης 100 €
Ανάγνωση τρέχοντος υπολοίπου = 500 € Νέο υπόλοιπο= = 600 Εγγραφή νέου υπολοίπου στο δίσκο = 600 € Απαίτηση ανάληψης 100 € Ανάγνωση τρέχοντος υπολοίπου = 500 € Νέο υπόλοιπο= = 400 Εγγραφή νέου υπολοίπου στο δίσκο = 400 € Χρονική καθυστέρηση Χρονική καθυστέρηση ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
216
Παράδειγμα – 1 (συνέχεια)
Κατάθεση 100 € Απαίτηση για δέσμευση του λογαριασμού Ανάγνωση υπολοίπου από το δίσκο = 500 € υπόλοιπο = = 600 Εγγραφή νέου υπολοίπου στο δίσκο = 600 € Απελευθέρωση λογαριασμού Απαίτηση ανάληψης 100 € Απαίτηση για κλείδωμα του λογαριασμού Αναμονή Δέσμευση λογαριασμού Ανάγνωση υπολοίπου = 600 Νέο υπόλοιπο = = 500 Εγγραφή νέου υπολοίπου στο δίσκο = 500 € ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
217
Άσκηση - 7 Υποθέστε ότι δύο διεργασίες A & B ενημερώνουν έναν κοινό τραπεζικό λογαριασμό ( A ανάληψη και B κατάθεση). Αρχικό υπόλοιπο λογαριασμού (balance) = 100 € Process A Process B 1. load R1, balance 1. load R3, balance 2. load R2, load R4, 50 3. sub R1, R add R3, R4 4. store R1, balance 4. store R3, balance Να βρεθούν όλες οι πιθανές τιμές για το υπόλοιπο 50, 150 και 100 ! ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
218
load R2, amount (- for withdrawal) add R1, R2 store R1, balance
Υποθέστε ότι έχουμε τον ακόλουθο κώδικα για τις κινήσεις ενός τραπεζικού λογαριασμού authenticate user open account load R1, balance load R2, amount (- for withdrawal) add R1, R2 store R1, balance close account display account info ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
219
load R2, amount (- for withdrawal) add R1, R2 store R1, balance
Υποθέστε ότι έχουμε τον ακόλουθο κώδικα για τις κινήσεις ενός τραπεζικού λογαριασμού authenticate user open account load R1, balance load R2, amount (- for withdrawal) add R1, R2 store R1, balance close account display account info Critical section ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
220
2. Κρίσιμα τμήματα (Critical Sections)
Μια ακολουθία εντολών μιας διεργασίας που πρέπει να εκτελείται αδιαίρετα, ονομάζεται κρίσιμο τμήμα. Η εκτέλεση του κρισίμου τμήματος θα πρέπει να είναι “όλα ή τίποτα” Δεν θα πρέπει να διακόπτεται στο μέσον Η αποτελεσματικότητα της πολυεπεξεργασίας εξαρτάται από το μήκος του κρίσιμου τμήματος κάθε ανταγωνιστικής διεργασίας και πρέπει να είναι όσο το δυνατόν μικρότερο. Το πλέον αναποτελεσματικό σενάριο Όλο το πρόγραμμα είναι ένα κρίσιμο τμήμα – δεν υπάρχει πολυπρογραμματισμός! ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
221
Μια καλή λύση προϋποθέτει τις παρακάτω συνθήκες :
Όταν μια διεργασία εκτελεί το κρίσιμο τμήμα της (ΚΤ), σε καμιά άλλη δεν μπορεί να επιτραπεί να εκτελεί το δικό της κρίσιμο τμήμα. Αν μπορούσε να διασφαλισθεί ότι ποτέ δύο ή περισσότερες διεργασίες δεν θα βρίσκονται ταυτόχρονα σε κρίσιμα τμήματα, τότε θα είχε επιτευχθεί η αποφυγή των συνθηκών ανταγωνισμού. Ωστόσο αυτό δεν είναι αρκετό για τη σωστή και αποδοτική συνεργασία δύο ή περισσοτέρων παράλληλων διεργασιών. Μια καλή λύση προϋποθέτει τις παρακάτω συνθήκες : ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
222
Συνθήκες για το πρόβλημα του αμοιβαίου αποκλεισμού
Κάθε διεργασία μπορεί να διαιρεθεί σε δύο ακολουθίες (τμήματα ή περιοχές εντολών) : το κρίσιμο τμήμα, δηλ. αυτό που προσπελάζει τον κοινό πόρο και δεν πρέπει να καταμεριστεί και το μη κρίσιμο τμήμα. Δυο διεργασίες δεν μπορούν να βρίσκονται ταυτόχρονα στα κρίσιμα τμήματά τους. Μια διεργασία μπορεί να σταματήσει μόνον μέσα στο μη κρίσιμο τμήμα της, χωρίς να επηρεάσει (να αναστείλει) άλλες διεργασίες. Δεν επιτρέπονται υποθέσεις σε ότι αφορά την ταχύτητα ή το πλήθος των επεξεργαστών. Όταν μια διεργασία δεν εκτελεί το κρίσιμο τμήμα της δεν μπορεί να αναστείλει την εκτέλεση άλλης διεργασίας. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
223
Το πρόγραμμα δεν επιτρέπεται να καταλήξει σε αδιέξοδο
Το πρόγραμμα δεν επιτρέπεται να καταλήξει σε αδιέξοδο. Αν περισσότερες της μιας διεργασίες προσπαθήσουν να εισέλθουν ταυτόχρονα στις κρίσιμες περιοχές τους, τότε μόνο μια πρέπει να επιτύχει. Δεν επιτρέπεται η επ’ αόριστον αναμονή μιας διεργασίας, μέχρι να εισέλθει στο κρίσιμο τμήμα της. Στην περίπτωση έλλειψης συναγωνισμού για ταυτόχρονη είσοδο σε κρίσιμες περιοχές, μια διεργασία που επιθυμεί να εισέλθει στην κρίσιμη περιοχή της θα πρέπει να το επιτύχει με την ελάχιστη δυνατή επιβάρυνση. Μια διεργασία παραμένει μέσα στο κρίσιμο τμήμα της για ορισμένο χρονικό διάστημα. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
224
Αμοιβαίος αποκλεισμός χρησιμοποιώντας κρίσιμα τμήματα
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
225
Κίνδυνοι λόγω του αμοιβαίου αποκλεισμού
Οι λανθασμένες ή ελλιπείς λύσεις στο πρόβλημα του αμοιβαίου αποκλεισμού μπορούν να οδηγήσουν σε Παρατεταμένη στέρηση (starvation) Αδιέξοδο (deadlock) Ανεπάρκεια του συστήματος ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
226
3. Υλοποίηση του αμοιβαίου αποκλεισμού
Προσεγγίσεις λογισμικού με παραχώρηση της ευθύνης στις διεργασίες χωρίς υποστήριξη από τη γλώσσα προγραμματισμού ή το Λ.Σ. (αλγόριθμοι Dekker και Peterson) Υποστήριξη εκ μέρους του υλικού με χρήση εντολών μηχανής ειδικού σκοπού (ατομικές λειτουργίες test και set) Παροχή κάποιου επιπέδου υποστήριξης από το Λ.Σ. ή τη γλώσσα προγραμματισμού : σηματοφορείς (semaphores), παρακολουθητές(monitors), μεταβίβαση μηνυμάτων Όλες οι λύσεις περιλαμβάνουν συνήθως κρίσιμα τμήματα ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
227
I. Προσεγγίσεις λογισμικού
Υλοποιούνται για ταυτόχρονες διεργασίες που εκτελούνται σε έναν ή πολλαπλούς επεξεργαστές με διαμοιραζόμενη κύρια μνήμη. Οι ταυτόχρονες προσβάσεις (ανάγνωσης ή εγγραφής) στην ίδια περιοχή της μνήμης διατάσσονται σειριακά, με κάποιο τρόπο διαχείρισης. Η παραχώρηση της πρόσβασης δεν είναι εκ των προτέρων καθορισμένη. Δεν υπάρχει υποστήριξη σε επίπεδο υλικού, λειτουργικού συστήματος ή γλώσσας προγραμματισμού. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
228
Ο αλγόριθμος του Dekker
Κάθε προσπάθεια για αμοιβαίο αποκλεισμό πρέπει να στηρίζεται σε βασικούς μηχανισμούς απαγορεύσεων σε επίπεδο υλικού. Ο πλέον συνήθης : Σε μια περιοχή (θέση) μνήμης επιτρέπεται μια πρόσβαση κάθε φορά. Υλοποίηση του αλγορίθμου Dekker με προσπάθειες αυξανόμενης δυσκολίας, όχι πάντοτε ορθές, για την ανίχνευση των λαθών. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
229
Υλοποιείται ο αμοιβαίος αποκλεισμός Μειονεκτήματα :
Καταναλώνει χρόνο του επεξεργαστή (ενεργός αναμονή) Αυστηρή εναλλαγή των διεργασιών κατά την εκτέλεση των κρίσιμων τμημάτων τους Ο ρυθμός εκτέλεσης καθορίζεται από την πιο αργή διεργασία Αν μια διεργασία αποτύχει η άλλη αναστέλλεται για πάντα, είτε αυτή βρίσκεται στο κρίσιμο τμήμα της, είτε όχι. Κάθε διεργασία θα πρέπει να έχει το δικό της κλειδί για το κρίσιμο τμήμα έτσι ώστε αν μια διεργασία αποτύχει, η άλλη να μπορεί να έχει πρόσβαση στο κρίσιμο τμήμα της. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
230
Εξασφαλίζεται ο αμοιβαίος αποκλεισμός;
Μια διεργασία μπορεί να μεταβάλλει την κατάστασή της αφού έχει ελεγχθεί από την άλλη, αλλά πριν η άλλη διεργασία εισέλθει στο κρίσιμο τμήμα της. Παρατηρήσεις : Αν μια διεργασία αποτύχει στο μη κρίσιμο τμήμα της η άλλη διεργασία δεν αναστέλλεται Αν μια διεργασία αποτύχει ενώ βρίσκεται στο κρίσιμο τμήμα της, η άλλη διεργασία αναστέλλεται. Εξασφαλίζεται ο αμοιβαίος αποκλεισμός; ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
231
ΙΙΙ. Σηματοφορείς (semaphores)
Dijkstra (1965) : σχεδίαση του Λ.Σ. ως μια συλλογή συνεργαζόμενων σειριακών διεργασιών μαζί με έναν αποτελεσματικό μηχανισμό για την υποστήριξη της συνεργασίας. Οι μηχανισμοί αυτοί θα χρησιμοποιούνται και από διεργασίες χρηστών, αρκεί να τους παρέχει ο επεξεργαστής και το Λ.Σ. Η βασική αρχή : δύο ή περισσότερες διεργασίες μπορούν να συνεργαστούν με τη χρήση απλών σημάτων. Κάθε διεργασία επιβάλλεται να σταματήσει σε μια συγκεκριμένη θέση, μέχρι να παραλάβει ένα συγκεκριμένο σήμα. Για τη δημιουργία σημάτων χρησιμοποιούνται ειδικές μεταβλητές, οι σηματοφορείς ή σημαφόροι. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
232
Βασικές (πρωταρχικές) λειτουργίες :
Ένας σημαφόρος είναι μια μεταβλητή συγχρονισμού που λαμβάνει ακέραιες θετικές τιμές ή μηδέν και μπορεί να αρχικοποιηθεί με μια μη-αρνητική τιμή. Οι σημαφόροι ανακαλύφθηκαν από τον Dijkstra στα μέσα της δεκαετίας του 1960 για να επιλύουν προβλήματα συγχρονισμού μεταξύ διεργασιών Οι σημαφόροι είναι απλοί και κομψοί και επιλύουν πολλά ενδιαφέροντα προβλήματα και όχι μόνον τον αμοιβαίο αποκλεισμό. Βασικές (πρωταρχικές) λειτουργίες : P ή wait V ή signal ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
233
V( semaphore ) - signal:
P( semaphore ) - wait: ατομική λειτουργία που αναμένει για τον σημαφόρο να γίνει θετικός, έπειτα τον μειώνει κατά 1 (“proberen” in Dutch) V( semaphore ) - signal: ατομική λειτουργία που αυξάνει τον σημαφόρο κατά 1 ( “verhogen” in Dutch) οι πρωταρχικές λειτουργίες θεωρούνται ατομικές ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
234
Παράδειγμα σημαφόρου Έστω οι διεργασίες P1 και P2
Χρησιμοποιείται ένας κοινός σημαφόρος με όνομα synch για να συγχρονίσει τις λειτουργίες των δύο σύγχρονων διεργασιών Οι εντολές wait, signal χρησιμοποιούνται για να καθυστερήσουν την P2 μέχρι να ολοκληρωθεί η P1 Ο σημαφόρος synch αρχικοποιείται με τιμή 0 5 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
235
wait(synch); P1 P2 αφού synch = 0, παραμένει ανενεργή
μέχρις ότου εκτελεστεί η signal στη P1 wait(synch); εντολές της P1 signal(synch); Ολοκλήρωση εκτέλεσης Λαμβάνει signal από P1 εντολές της P2 6 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
236
Οι σημαφόροι ως εργαλείο συγχρονισμού
Εκτέλεση του τμήματος Β στη διεργασία Pj μετά από την εκτέλεση του τμήματος Α στη διεργασία Pi Χρήση ενός σημαφόρου flag με αρχική τιμή 0 Κώδικας : Pi Pj A wait(flag) signal(flag) B ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
237
Οι μεταβλητές που αναπαριστούν σημαφόρους μπορούν να πάρουν μόνο μη αρνητικές ακέραιες τιμές και οι μόνες «αδιαίρετες» πράξεις που μπορούν να εκτελεστούν είναι οι wait και signal Αν σε οποιαδήποτε στιγμή η τιμή ενός σημαφόρου είναι αρνητική, τότε η απόλυτη τιμή του αντιπροσωπεύει το πλήθος των διεργασιών που παραμένουν αποκλεισμένες Για τη μετάδοση ενός σήματος μέσω ενός σημαφόρου, μια διεργασία εκτελεί τη λειτουργία signal Για την παραλαβή ενός σήματος μέσω ενός σημαφόρου, μια διεργασία εκτελεί τη λειτουργία wait ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
238
Ιδιότητες σημαφόρων Ανεξάρτητοι του υλικού Απλοί
Λειτουργούν με πολλές διεργασίες Μπορούν να υπάρχουν πολλά κρίσιμα τμήματα στον κώδικα, το καθένα με τον δικό του σημαφόρο Μπορούν να αποκτούν πολλούς πόρους ταυτόχρονα Κάθε σημαφόρος έχει μια ακέραια τιμή και μια λίστα από συσχετιζόμενες διεργασίες τις οποίες εξυπηρετεί ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
239
Όταν μια διεργασία μπλοκάρεται από μόνη της σε ένα σημαφόρο, τότε προστίθεται σε μια ουρά που περιλαμβάνει τις διεργασίες που αναμένουν Η λειτουργία signal σε ένα σημαφόρο αφαιρεί μια διεργασία από την ουρά και την αφυπνίζει Η πιο δίκαιη πολιτική διαχείρισης της ουράς είναι η FIFO (ισχυροί σημαφόροι). Ασθενής σημαφόρος : δεν καθορίζει τη σειρά με την οποία εξέρχονται οι διεργασίες από την ουρά Οι ισχυροί σημαφόροι εγγυώνται την απαλλαγή από την παρατεταμένη στέρηση. Είναι το είδος των σημαφόρων που παρέχουν τα Λ.Σ. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
240
Αδιέξοδο με σημαφόρους
Οι σημαφόροι πρέπει να χρησιμοποιούνται με προσοχή: P0 P1 wait(S); wait(Q); wait(Q); wait(S); P0 περιμένει την P1 να εκτελέσει signal(Q) P1 περιμένει την P0 να εκτελέσει signal(S) Και οι δύο διεργασίες βρίσκονται σε αδιέξοδο! ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
241
Άσκηση - 9 (ΑΣΕΠ 2005) Διεργασία (process) είναι:
Άσκηση - 9 (ΑΣΕΠ 2005) Διεργασία (process) είναι: α) ένα πρόγραμμα. β) ένας επεξεργαστής. γ) ένα ειδικό αρχείο. δ) ένα πρόγραμμα σε εκτέλεση. Η λίστα έτοιμων διεργασιών (ready list) περιλαμβάνει: α) τις διεργασίες (processes) που περιμένουν για είσοδο/έξοδο. β) τις διεργασίες που περιμένουν σε κάποιο σηματοφορέα (semaphore). γ) τις διεργασίες που περιμένουν επιπλέον μνήμη. δ) τις διεργασίες που περιμένουν για εξυπηρέτηση από την κεντρική μονάδα επεξεργασίας. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
242
Άσκηση (ΑΣΕΠ 2005) Κρίσιμα τμήματα (critical sections) διεργασιών (processes): α) απαγορεύεται να εκτελούνται ταυτόχρονα από πολλές διεργασίες, χωρίς να αποκλείεται κάποιες να εκτελούν ταυτόχρονα μη κρίσιμα τμήματά τους. β) απαγορεύεται να εκτελούνται ταυτόχρονα από πολλές διεργασίες και αποκλείεται κάποιες να εκτελούν ταυτόχρονα μη κρίσιμα τμήματά τους. γ) επιτρέπεται να εκτελούνται ταυτόχρονα από πολλές διεργασίες. δ) όταν εκτελούνται τερματίζονται οι αντίστοιχες διεργασίες. Οι σηματοφορείς (semaphores) χρησιμεύουν για να: α) γίνεται πιο εύκολα η μετάφραση προγραμμάτων. β) συγχρονίζονται οι διεργασίες. γ) επιταχύνεται η εκτέλεση προγραμμάτων. δ) αντικαταστήσουν πολύπλοκες δομές δεδομένων. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
243
Άσκηση (ΑΣΕΠ 2005) Η εντολή fork στο UNIX δημιουργεί μία διεργασία (process), η οποία: α) δε μοιράζεται κοινές μεταβλητές (shared variables) με τη διεργασία που τη δημιούργησε. β) μοιράζεται κοινές μεταβλητές με τη διεργασία που τη δημιούργησε. γ) εξαρτάται από την έκδοση του UNIX εάν μοιράζεται ή όχι κοινές μεταβλητές. δ) εξαρτάται από το μέγεθος της μνήμης εάν μοιράζεται ή όχι κοινές μεταβλητές. Σε ποιο λειτουργικό σύστημα δεν υπάρχουν εντολές για τη δημιουργία ελαφρών (lightweight) διεργασιών (processes): α) Στο DOS. β) Στα WINDOWS. γ) Στο SOLARIS. δ) Σε κανένα από τα παραπάνω. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
244
Εντός κάθε διεργασίας οι εντολές εκτελούνται σειριακά, αλλά εντολές από διαφορετικές διεργασίες μπορούν να παρεμβληθούν με οποιαδήποτε σειρά που είναι σύμφωνη με τους περιορισμούς που τίθενται από τους σημαφόρους. Για να απαντήσετε τις παρακάτω ερωτήσεις υποθέστε ότι όταν ξεκινά η εκτέλεση οι διεργασίες επιτρέπεται να εκτελούνται μέχρις ότου και οι τρεις εισέλθουν σε κατάσταση wait(), στο σημείο αυτό η εκτέλεση σταματά. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
245
υποθέτοντας ότι η εκτέλεση τελικά σταματά, πόσα ‘C’ θα εκτυπωθούν;
υποθέτοντας ότι η εκτέλεση τελικά σταματά, πόσα ‘D’ θα εκτυπωθούν; Πόσα είναι τα λιγότερα ‘Α’ που μπορούν να εκτυπωθούν; Η ακολουθία ‘CABABDDCABCABD’ είναι δυνατόν να εμφανισθεί; Η ακολουθία ‘CABACDBCABDD’ είναι δυνατόν να εμφανισθεί; είναι δυνατόν να σταματήσει η εκτέλεση και κάποιο από τα U,V να έχουν μη μηδενικές τιμές; ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
246
4. Κλασσικά προβλήματα συγχρονισμού
Οι συνεργαζόμενες διεργασίες πρέπει να συγχρονίζονται ώστε να αποφεύγονται απρόβλεπτες καταστάσεις. Όταν αρκετές διεργασίες έχουν πρόσβαση και διαχειρίζονται συγχρόνως διαμοιραζόμενα δεδομένα τότε επικρατούν συνθήκες ανταγωνισμού και το αποτέλεσμα της εκτέλεσης εξαρτάται από τη σειρά με την οποία γίνεται η πρόσβαση στους κοινούς πόρους Οι συνθήκες ανταγωνισμού προκαλούνται από : τη διαίρεση των δραστηριοτήτων σε πολλές ξεχωριστές λειτουργίες (multitasking σε σύστημα με μία CPU) ταυτόχρονες λειτουργίες σε διαμοιραζόμενους πόρους σε συστήματα πολλών επεξεργαστών είναι δυνατόν να συμβούν σπάνια και γι’ αυτό είναι πολύ δύσκολο να ανιχνευθούν και να αναπαραχθούν ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
247
Η σημασία του συγχρονισμού κατά την εκτέλεση ταυτόχρονων διεργασιών είναι σπουδαιότατη διότι:
Αποτρέπει ή ελαχιστοποιεί τις συνθήκες ανταγωνσιμού, τα αδιέξοδα και την παρατεταμένη στέρηση Εξασφαλίζει την ακεραιότητα και τη σταθερότητα των δεδομένων Επιτυγχάνει τη συνεργασία των διεργασιών και αυξάνει την αποτελεσματικότητα των συστημάτων Τα κλασσικά προβλήματα συγχρονισμού αντιπροσωπεύουν ένα μεγάλο πλήθος προβλημάτων συγχρονισμού και χρησιμοποιούνται για τον έλεγχο νέων λύσεων που προτείνονται ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
248
Το πρόβλημα του παραγωγού – καταναλωτή (producer – consumer).
Χρησιμοποιείται συχνά για να καταδείξει την ισχύ των θεμελιωδών χαρακτηριστικών του συγχρονισμού. Το πρόβλημα των αναγνωστών και συγγραφέων Το πρόβλημα των συνδαιτημόνων φιλοσόφων Είναι μια απλή αναπαράσταση της ανάγκης για κατάλληλη εκχώρηση πόρων (απαλλαγμένη από αδιέξοδα και παρατεταμένη στέρηση). Χρησιμοποιείται για τον έλεγχο λύσεων που αφορούν αδιέξοδα Το πρόβλημα του κοιμώμενου κουρέα ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 01
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.