1. ΔΙΕΡΓΑΣΙΕΣ
Εκτέλεση προγραμμάτων
ΕΡ: Σε ένα σύγχρονο ΛΣ, πόσα προγράμματα μπορεί να εκτελεί
«ταυτόχρονα» η ΚΜΕ;
ΑΠ: Η ΚΜΕ εξυπηρετεί πολλά προγράμματα εκ περιτροπής.
Η εναλλαγή γίνεται τόσο γρήγορα που δίνει την αίσθηση της
«ταυτόχρονης» εκτέλεσης.
Βίντεο
2. ΔΙΕΡΓΑΣΙΕΣ
Παράδειγμα εκτέλεσης προγραμμάτων:
Φόρτωση λογισμικού σε 3 υπολογιστές
ΚΜΕ ο υπεύθυνος εγκατάστασης του λογισμικού
Η/Υ ΛΣ OFFICE ANTIVIRUS
Α 10 λεπτά 15 λεπτά
Β 10 λεπτά 15 λεπτά 5 λεπτά
Γ 10 λεπτά
Αν η διαδικασία γίνει με τη σειρά τότε:
Α Α Β Β Β Γ
ΛΣ OFFICE ΛΣ OFFICE ANTIVIRUS ΛΣ
10 15 10 15 5 10
Αν χρησιμοποιήσουμε όμως τα CD που έχουν ήδη χρησιμοποιηθεί στον
προηγούμενο Η/Υ;
ΑΛΣ
10 λεπτά
ΑOFFICE
15 λεπτά
BΛΣ
10 λεπτά
ΒOFFICE
15 λεπτά
ΓΛΣ
10 λεπτά
ΒANTIVIRUS
5 λεπτά
3. ΔΙΕΡΓΑΣΙΕΣ
Τι είναι η διεργασία και ποια η διαφορά της με το πρόγραμμα;
Πρόγραμμα: Παθητική οντότητα απλά ένα δυαδικό αρχείο στο δίσκο
Διεργασία: Ενεργητική οντότητα που περιλαμβάνει:
το εκτελούμενο πρόγραμμα
μαζί με τα δεδομένα που χρειάζονται,
τους πόρους που χρειάζεται για να εκτελεστεί κτλ.
Άρα η εκτέλεση ενός προγράμματος ονομάζεται Διεργασία.
ΕΡ: το πρόγραμμα Σημειωματάριο είναι ένα (αρχείο notepad.exe). Πόσες
φορές μπορούμε να «εκτελέσουμε» το πρόγραμμα;
AΠ: Πολλές. Άρα έχουμε 1 πρόγραμμα αλλά μπορούμε να έχουμε 1 ή
περισσότερες διεργασίες
Για να μη συμβούν σφάλματα κατά την εναλλαγή διεργασιών
το Λειτουργικό σύστημα:
Κρατά πληροφορίες για να μπορέσει να διακόψει ένα πρόγραμμα και να το
επαναφορτώσει συνεχίζοντας την εκτέλεσή του από το σημείο που αυτή
διακόπηκε.
4. ΔΙΕΡΓΑΣΙΕΣ
Παράδειγμα προγράμματος και διεργασίας
Συνταγή φαγητού
Εγχειρίδιο πρώτων βοηθειών
Ο μάγειρας που εκτελεί την συνταγή
Τα υλικά της συνταγής
Αναγκαία σκεύη
Διαδικασία εκτέλεσης της συνταγής ( )
από τον μάγειρα ( )
με χρήση των υλικών ( )
και των σκευών ( )
για την παραγωγή του φαγητού ( )
Αν καεί τότε θα πρέπει:
Πρόγραμμα 1 Δεδομένα Εξόδου
ΚΜΕ
Δεδομένα Εισόδου
Συσκευές Η/Υ
Δεδομένα Εξόδου
να διακόψει την εκτέλεση της συνταγής
Πρόγραμμα 1
Πρόγραμμα 2
Διεργασία
Συσκευές Η/Υ
Δεδομένα Εισόδου
ΚΜΕ
να αποθηκεύσει στη μνήμη το σημείο που διακόπηκε η εκτέλεση της συνταγής
Πρόγραμμα 2
να εκτελέσει τις οδηγίες πρώτων βοηθειών ( )
Μόλις φροντίσει το χέρι του σταματά την εκτέλεση του προγράμματος πρώτων
βοηθειών και επαναφέρει την εκτέλεση της συνταγής.
Φαγητό
5. ΔΙΕΡΓΑΣΙΕΣ
Διεργασίες στα Windows
Το πρόγραμμα Notepad
(Σημειωματάριο) έχει
εκτελεστεί 2 φορές
Άρα έχουμε:
• 1 πρόγραμμα
• 2 διεργασίες
12. ΔΙΕΡΓΑΣΙΕΣ
Καταστάσεις μίας διεργασίας
Τρέχουσα
Τέλος
Λειτουργίας
Ε/Ε
Λειτουργία
Ε/Ε
Μπλοκαρισμένη
Έτοιμη
Νέα
Εισαγωγή
13. ΔΙΕΡΓΑΣΙΕΣ
Καταστάσεις μίας διεργασίας
Τρέχουσα
Τέλος
Λειτουργίας
Ε/Ε
Λειτουργία
Ε/Ε
Μπλοκαρισμένη
Έτοιμη
Εισαγωγή
Τέλος
Νέα
Τερματισμένη
14. ΔΙΕΡΓΑΣΙΕΣ
Καταστάσεις μίας διεργασίας
Κάθε CPU του υπολογιστή εξυπηρετεί μία μόνο διεργασία κάθε στιγμή. Αυτή τη
διεργασία, τη λέμε τρέχουσα.
Οι υπόλοιπες διεργασίες που περιμένουν τη σειρά τους για να εξυπηρετηθούν από
την CPU λέμε ότι είναι έτοιμες
Οι διεργασίες που περιμένουν κάτι άλλο (π.χ. να απαντήσει το modem ή να τους
διατεθεί αρκετή μνήμη) είναι οι μπλοκαρισμένες
Μια διεργασία ξεκινάει ως έτοιμη και,
όταν έρθει η σειρά της, γίνεται τρέχουσα για λίγο,
μέχρι να περάσει ο χρόνος της, οπότε επιστρέφει στην ετοιμότητα,
ή να ζητήσει κάτι εκτός CPU (συνήθως Ι/Ο), οπότε μπλοκάρεται έως ότου ικανοποιηθεί αυτό
που ζήτησε (και τότε επιστρέφει στην ετοιμότητα).
Τέλος
Λειτουργίας
Ε/Ε
Λειτουργία
Ε/Ε
Μεταγωγή
περιβάλλοντος
Μπλοκαρισμένη
Τρέχουσα
Εισαγωγή Έτοιμη
Τέλος
16. ΔΙΕΡΓΑΣΙΕΣ
Διαδικασία αποθήκευσης – επαναφοράς διεργασίας
Όταν μια διεργασία από τρέχουσα γίνεται έτοιμη ή μπλοκαρισμένη, τότε
πρέπει να αποθηκευτούν όλες οι πληροφορίες που είναι απαραίτητες για να
μπορέσει να συνεχίσει την εκτέλεσή της από το σημείο που σταμάτησε.
Αυτές οι πληροφορίες αποθηκεύονται σε έναν ειδικό χώρο (PCB).
Όταν η διεργασία γίνει πάλι τρέχουσα, τότε το PCB της (Δηλαδή οι
πληροφορίες για την διεργασία) θα φορτωθεί και η εκτέλεση της διεργασίας
θα συνεχιστεί από το σημείο που είχε σταματήσει.
17. ΔΙΕΡΓΑΣΙΕΣ
Παράλληλες διεργασίες
Δύο διαδικασίες λέγονται «παράλληλες» (concurrent) όταν οι εκτελέσεις
τους επικαλύπτονται χρονικά.
Σε περιβάλλον πολλών επεξεργαστών, δύο ή περισσότερες διεργασίες μπορεί
πράγματι να επικαλύπτονται χρονικά (πραγματικά παράλληλα).
Αλλά σε περιβάλλον ενός μόνο επεξεργαστή οι διεργασίες εναλλάσσονται με
τόσο γρήγορο ρυθμό που μας δίνεται η αίσθηση ότι εκτελούνται παράλληλα
(ψευδοπαράλληλα).
Βίντεο
18. ΔΙΕΡΓΑΣΙΕΣ
Κρίσιμα τμήματα
Στους υπολογιστές υπάρχουν πόροι (δίσκος, εκτυπωτής κτλ) που μπορεί να
χρειάζεται να χρησιμοποιηθούν από πολλές διεργασίες.
Αν ο πόρος δεν μπορεί να μοιραστεί (πχ εκτυπωτής) πρέπει να
χρησιμοποιείται αποκλειστικά από την κάθε διεργασία σε ένα δεδομένο
χρονικό διάστημα.
Με άλλα λόγια όταν μία διεργασία χρησιμοποιεί έναν μη μοιραζόμενο πόρο
καμία άλλη διεργασία δεν μπορεί να τον χρησιμοποιήσει αποκλεισμός
διεργασιών.
Παράδειγμα: 2 διεργασίες θέλουν να εκτυπώσουν την ίδια στιγμή.
Μόνο 1 από τις διεργασίες θα πρέπει να μπορεί να εκτυπώσει για ορισμένο
χρονικό διάστημα.
ΕΡ: Αν και οι 2 διεργασίες εκτύπωναν ταυτόχρονα τότε τι θα συνέβαινε;
ΑΠ: Θα είχαμε ανακατεμένες γραμμές ή σελίδες εκτυπώσεων
19. ΔΙΕΡΓΑΣΙΕΣ
Κρίσιμα τμήματα 2
Παράδειγμα: Δύο πρακτορεία κράτησης θέσεων σε αεροπλάνα εκτελούν το
πρόγραμμα κράτησης θέσεων.
ΕΡ: Πόσες διεργασίες εκτελούνται;
Ώρα Διεργασία Α Διεργασία Β Θέση Χ
09:00
09:01
09:02
09:03
Το πρακτορείο Α βλέπει
τη θέση Χ ελεύθερη
Το πρακτορείο Β βλέπει
τη θέση Χ ελεύθερη
Το πρακτορείο Α κρατά
τη θέση Χ
Το πρακτορείο Β κρατά
τη θέση Χ
Ελεύθερη
Ελεύθερη
Κρατημένη
Κρατημένη
20. ΔΙΕΡΓΑΣΙΕΣ
Κρίσιμα τμήματα 3α
Παράδειγμα: Κάπου στη μνήμη RAM υπάρχει αποθηκευμένη μια μεταβλητή
Χ που έχει τιμή 1.
Η διεργασία Π1 παίρνει την τιμή της μεταβλητής Χ από την μνήμη, την αυξάνει
κατά 1 και την αποθηκεύει στην μνήμη.
Η διεργασία Π2 παίρνει την τιμή της μεταβλητής Χ από την μνήμη, την αυξάνει
κατά 2 και την αποθηκεύει στην μνήμη.
Μετά τον τερματισμό των δυο διεργασιών, ποια τιμή θα έχει η μεταβλητή Χ;
ΣΕΝΑΡΙΟ 1ο
ΔΙΕΡΓΑΣΙΑ Π1 RAM ΔΙΕΡΓΑΣΙΑ Π2
Εκκίνηση της Π1
Η Π1 διαβάζει το Χ Χ = 1
Η Π1 αυξάνει το Χ κατά 1 Χ = 2
Η Π1 αποθηκεύει το Χ
Τερματίζεται η Π1
Χ=1
Χ=2
Χ=4
Εκκίνηση της Π2
Η Π2 διαβάζει το Χ Χ = 2
Η Π2 αυξάνει το Χ κατά 2 Χ = 4
Η Π2 αποθηκεύει το Χ
Τερματίζεται η Π2
21. ΔΙΕΡΓΑΣΙΕΣ
Κρίσιμα τμήματα 3β
Παράδειγμα: Στην ΚΜ υπάρχει αποθηκευμένη μια μεταβλητή Χ που έχει τιμή
1.
Η διεργασία Π1 παίρνει την τιμή της μεταβλητής Χ από την μνήμη, την αυξάνει
κατά 1 και την αποθηκεύει στην μνήμη.
Η διεργασία Π2 παίρνει την τιμή της μεταβλητής Χ από την μνήμη, την αυξάνει
κατά 2 και την αποθηκεύει στην μνήμη.
Μετά τον τερματισμό των δυο διεργασιών, ποια τιμή θα έχει η μεταβλητή Χ;
ΣΕΝΑΡΙΟ 2ο
ΔΙΕΡΓΑΣΙΑ Π1 RAM ΔΙΕΡΓΑΣΙΑ Π2
Εκκίνηση της Π1 Χ=1
Η Π1 διαβάζει το Χ Χ = 1
Εκκίνηση της Π2
Η Π2 διαβάζει το Χ Χ = 1
Η Π2 αυξάνει το Χ κατά 2 Χ = 3
Χ=3 Η Π2 αποθηκεύει το Χ
Τερματίζεται η Π2
Τελειώνει ο χρόνος της Π1
Η Π1 γίνεται ξανά τρέχουσα
Η Π1 αυξάνει το Χ κατά 1 Χ = 2
Η Π1 αποθηκεύει το Χ Χ=2
Τερματίζεται η Π1
22. ΔΙΕΡΓΑΣΙΕΣ
Κρίσιμα τμήματα 3γ
Παράδειγμα: Στην ΚΜ υπάρχει αποθηκευμένη μια μεταβλητή Χ που έχει τιμή
1.
Η διεργασία Π1 παίρνει την τιμή της μεταβλητής Χ από την μνήμη, την αυξάνει
κατά 1 και την αποθηκεύει στην μνήμη.
Η διεργασία Π2 παίρνει την τιμή της μεταβλητής Χ από την μνήμη, την αυξάνει
κατά 2 και την αποθηκεύει στην μνήμη.
Μετά τον τερματισμό των δυο διεργασιών, ποια τιμή θα έχει η μεταβλητή Χ;
ΣΕΝΑΡΙΟ 3ο
ΔΙΕΡΓΑΣΙΑ Π1 RAM ΔΙΕΡΓΑΣΙΑ Π2
Χ=1 Εκκίνηση της Π2
Η Π2 διαβάζει το Χ Χ=1
Εκκίνηση της Π1
Η Π1 διαβάζει το Χ Χ=1
Η Π1 αυξάνει το Χ κατά 1 Χ = 2
Η Π1 αποθηκεύει το Χ Χ=2
Τερματίζεται η Π1
Τελειώνει ο χρόνος της Π2
Η Π2 γίνεται ξανά τρέχουσα
Η Π2 αυξάνει το Χ κατά 2 Χ = 3
Χ=3 Η Π2 αποθηκεύει το Χ
Τερματίζεται η Π2
23. ΔΙΕΡΓΑΣΙΕΣ
Κρίσιμα τμήματα 4
Παράδειγμα: Δύο διεργασίες θέλουν να εκτυπώσουν.
Διεργ. Α: αποθηκεύε σε θέση μνήμης το όνομα του αρχείου προς εκτύπωση με όνομα ΑΑ
Διεργ. Β: αποθηκεύει σε θέση μνήμης το όνομα του αρχείου προς εκτύπωση με όνομα ΒΒ
Διεργασία Α Διεργασία Β ΘΕΣΗ
1 Ξεκινά να εκτελείται Τρέχουσα 9
2
Διαβάζει τη θέση στην οποία θα αποθηκεύσει
το όνομα του αρχείου ΑΑ (ΘΕΣΗ = 9)
9
3 Λήγει ο χρόνος της διεργασίας Έτοιμη 9
4 Ξεκινά να εκτελείται Τρέχουσα 9
5
Διαβάζει τη θέση στην οποία θα αποθηκεύσει
το αρχείο ΒΒ (ΘΕΣΗ = 9)
9
6 Αποθηκεύει το όνομα του αρχείου στη ΘΕΣΗ 9 9
7 Αλλάζει τη ΘΕΣΗ σε 10 10
8 Λήγει ο χρόνος της διεργασίας Έτοιμη 10
9 Ξεκινά να εκτελείται πάλι Τρέχουσα 10
10 Αποθηκεύει το όνομα του αρχείου στη ΘΕΣΗ 9 10
11
Εκτυπώνει το αρχείο με το όνομα που
αποθηκεύτηκε στη ΘΕΣΗ 9
10
12 Τερματίζει τη λειτουργία της 10
13 Ξεκινά να εκτελείται πάλι Τρέχουσα 10
14
Εκτυπώνει το αρχείο με το όνομα που
αποθηκεύτηκε στη ΘΕΣΗ 9
10
15 Τερματίζει τη λειτουργία της 10
24. ΔΙΕΡΓΑΣΙΕΣ
Παράδειγμα: Φόρτωση λογισμικού σε 3 υπολογιστές
Τον ρόλο της ΚΜΕ παίζει ο υπεύθυνος εγκατάστασης του λογισμικού
Η/Υ ΛΣ OFFICE ANTIVIRUS
Α 10 λεπτά 15 λεπτά
Β 10 λεπτά 15 λεπτά 5 λεπτά
Γ 10 λεπτά
Αν η διαδικασία γίνει με τη σειρά τότε:
Α Α Β Β Β Γ
ΛΣ OFFICE ΛΣ OFFICE ANTIVIRUS ΛΣ
10 15 10 15 5 10
Αν χρησιμοποιήσουμε όμως τα CD που έχουν ήδη χρησιμοποιηθεί στον
προηγούμενο επεξεργαστή;
ΑΛΣ
10 λεπτά
ΑOFFICE
15 λεπτά
ΒOFFICE
15 λεπτά
ΒANTIVIRUS
5 λεπτά
BΛΣ
10 λεπτά
ΓΛΣ
10 λεπτά
25. ΔΙΕΡΓΑΣΙΕΣ
Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός
Κρίσιμο τμήμα: το μέρος μίας διεργασίας που χρησιμοποιεί ένα κοινό
αλλά μη διαμοιραζόμενο πόρο (πχ εκτυπωτής).
Αμοιβαίος αποκλεισμός: όταν μία διεργασία εκτελεί το κρίσιμο τμήμα
της καμία άλλη διεργασία δεν μπορεί να εκτελεί το δικό της κρίσιμο
τμήμα. Έτσι αποφεύγονται τα παρατράγουδα.
26. ΔΙΕΡΓΑΣΙΕΣ
Αδιέξοδα
Αδιέξοδο: Οι διεργασίες βρίσκονται σε αδιέξοδο όταν κάθε διεργασία
περιμένει για κάτι που μπορεί να προκληθεί μόνο από μία άλλη
διεργασία του συνόλου.
Παράδειγμα 1ο: Ένα σύστημα με έναν εκτυπωτή και ένα σαρωτή:
Δύο διεργασίες Ρ1 και Ρ2
η Ρ1 δεσμεύει τον εκτυπωτή
η Ρ2 δεσμεύει το σαρωτή
η Ρ1 ζητά το σαρωτή και εμποδίζεται
η Ρ2 ζητά τον εκτυπωτή και εμποδίζεται
27. ΔΙΕΡΓΑΣΙΕΣ
Αδιέξοδα 2
Αδιέξοδο: Οι διεργασίες βρίσκονται σε αδιέξοδο όταν κάθε διεργασία
περιμένει για κάτι που μπορεί να προκληθεί μόνο από μία άλλη
διεργασία του συνόλου.
Παράδειγμα 2ο: Ένα σύστημα με έναν εκτυπωτή και ένα σαρωτή:
ο πόρος R έχει εκχωρηθεί (δεσμευθεί) στη (από τη) διεργασία Α
Η διεργασία Β ζητά τον πόρο S
Αδιέξοδο (διεργασίες C και D, πόροι T και U)
Καμία από τις διεργασίες δεν μπορεί
να συνεχίσει
να απελευθερώσει κάποιον πόρο
28. ΔΙΕΡΓΑΣΙΕΣ
Αδιέξοδα 3
Παράδειγμα 3ο: 3 διεργασίες (Δ1, Δ2, Δ3) και
3 πόροι (Α, Β, Γ)
Η διεργασία Δ1 ζητάει τον πόρο Α
Ο πόρος Α δεν είναι δεσμευμένος άρα τον αποκτά.
Η διεργασία Δ2 ζητάει τον πόρο Β
Ο πόρος Β δεν είναι δεσμευμένος άρα τον αποκτά.
Η διεργασία Δ3 ζητάει τον πόρο Γ
Ο πόρος Γ δεν είναι δεσμευμένος άρα τον αποκτά.
Η διεργασία Δ1 ζητάει τον πόρο Β. Μπορεί να τον αποκτήσει;
ΟΧΙ. Ο πόρος είναι δεσμευμένος από την διεργασία Δ2
Η διεργασία Δ2 ζητάει τον πόρο Γ. Μπορεί να τον αποκτήσει;
ΟΧΙ. Ο πόρος είναι δεσμευμένος από την διεργασία Δ3
Η διεργασία Δ3 ζητάει τον πόρο Α. Μπορεί να τον αποκτήσει;
ΟΧΙ. Ο πόρος είναι δεσμευμένος από την διεργασία Δ1
Δ
1
Α
Δ
2
Β
Δ
3
Γ
29. ΔΙΕΡΓΑΣΙΕΣ
Άλλα προβλήματα
Υποσιτισμός: Αν μία διεργασία ξεκινήσει την προσπάθειά της να
εκτελέσει το κρίσιμο τμήμα της (πχ μία εκτύπωση) θα πρέπει τελικά να
το πετύχει. Αν η εκτέλεση αυτή αναβάλλεται συνεχώς τότε έχουμε
υποσιτισμό της διεργασίας.
ΕΡ: Γιατί είναι σημαντικό να μην υποσιτιστεί μία διεργασία;
ΑΠ: Αν μία διεργασία θέλει αλλά δεν μπορεί ποτέ να εκτελέσει το κρίσιμο
τμήμα της τότε δεν θα τελειώσει ποτέ (θα περιμένει αιώνια).
Συναγωνισμός: Σε περίπτωση που δεν υπάρχει συναγωνισμός για
ταυτόχρονη είσοδο στα κρίσιμα τμήματα τότε η διεργασία θα πρέπει
να εκτελέσει το κρίσιμο τμήμα της με την ελάχιστη επιβάρυνση
31. ΔΙΕΡΓΑΣΙΕΣ
Αλγόριθμοι Χρονοδρομολόγησης
Κριτήρια αξιολόγησης
Βαθμός χρησιμοποίησης της ΚΜΕ
Ρυθμαπόδοση
Χρόνος ανακύκλωσης
Χρόνος αναμονής
Χρόνος απόκρισης
Κατηγορίες αλγορίθμων χρονοδρομολόγησης
Μη διακοπτοί: κάθε διεργασία εκτελείται έως ότου
ολοκληρωθεί η τρέχουσα έκρηξη ΚΜΕ
Διακοπτοί: οι διεργασίες εκτελούν τις εκρήξεις ΚΜΕ
τμηματικά
32. ΔΙΕΡΓΑΣΙΕΣ
Αλγόριθμοι Χρονοδρομολόγησης
Μη διακοπτοί αλγόριθμοι
Εξυπηρέτηση με βάση τη σειρά άφιξης (FCFS) :
οι διεργασίες δρομολογούνται με τη σειρά που υποβλήθηκαν για εκτέλεση
Εξυπηρέτηση με βάση τη διάρκεια (SJF) :
προηγούνται οι διεργασίες που προβλέπεται να διαρκέσουν λιγότερο
Εξυπηρέτηση με βάση το λόγο απόκρισης (HRF) :
προηγούνται οι διεργασίες με το μεγαλύτερο λόγο απόκρισης
Εξυπηρέτηση με βάση την προτεραιότητα :
προηγείται η διεργασία με τη μεγαλύτερη προτεραιότητα
Χρόνος Αναμονής
Χρόνος Εκτέλεσης
Λόγος Απόκρισης 1
33. ΔΙΕΡΓΑΣΙΕΣ
Αλγόριθμοι Χρονοδρομολόγησης
Διακοπτοί αλγόριθμοι
Διακοπτή εξυπηρέτηση με βάση τη διάρκεια (PSJF) :
κάθε φορά που μία διεργασία υποβάλεται για εκτέλεση, ελέγχονται όλες και
επιλέγεται αυτή που αναμένεται να έχει τη μικρότερη διάρκεια
Χρονοδρομολόγηση κυκλικής επαναφοράς (RR) :
όλες οι διεργασίες εκτελούνται εκ περιτροπής για ένα μικρό χρονικό διάστημα, το
κβάντο χρόνου