διεργασίες

33
ΔΙΕΡΓΑΣΙΕΣ Εκτέλεση προγραμμάτων Εκτέλεση προγραμμάτων ΕΡ: ΕΡ: Σε ένα σύγχρονο ΛΣ, πόσα προγράμματα μπορεί να Σε ένα σύγχρονο ΛΣ, πόσα προγράμματα μπορεί να εκτελεί «ταυτόχρονα» η ΚΜΕ; εκτελεί «ταυτόχρονα» η ΚΜΕ; ΑΠ: ΑΠ: Η ΚΜΕ εξυπηρετεί πολλά προγράμματα εκ Η ΚΜΕ εξυπηρετεί πολλά προγράμματα εκ περιτροπής. περιτροπής. Η εναλλαγή γίνεται τόσο γρήγορα που δίνει την Η εναλλαγή γίνεται τόσο γρήγορα που δίνει την αίσθηση της «ταυτόχρονης» εκτέλεσης. αίσθηση της «ταυτόχρονης» εκτέλεσης. Βίντεο

Upload: agelos-titis

Post on 04-Aug-2015

83 views

Category:

Education


0 download

TRANSCRIPT

ΔΙΕΡΓΑΣΙΕΣ

Εκτέλεση προγραμμάτωνΕκτέλεση προγραμμάτων

ΕΡ:ΕΡ: Σε ένα σύγχρονο ΛΣ, πόσα προγράμματα μπορεί να εκτελεί Σε ένα σύγχρονο ΛΣ, πόσα προγράμματα μπορεί να εκτελεί «ταυτόχρονα» η ΚΜΕ;«ταυτόχρονα» η ΚΜΕ;

ΑΠ: ΑΠ: Η ΚΜΕ εξυπηρετεί πολλά προγράμματα εκ περιτροπής. Η ΚΜΕ εξυπηρετεί πολλά προγράμματα εκ περιτροπής. Η εναλλαγή γίνεται τόσο γρήγορα που δίνει την αίσθηση της Η εναλλαγή γίνεται τόσο γρήγορα που δίνει την αίσθηση της «ταυτόχρονης» εκτέλεσης.«ταυτόχρονης» εκτέλεσης.

Βίντεο

ΔΙΕΡΓΑΣΙΕΣ

Παράδειγμα εκτέλεσης προγραμμάτων: Παράδειγμα εκτέλεσης προγραμμάτων: Φόρτωση λογισμικού σε 3 υπολογιστέςΦόρτωση λογισμικού σε 3 υπολογιστές

ΚΜΕ ΚΜΕ ο υπεύθυνος εγκατάστασης του λογισμικού ο υπεύθυνος εγκατάστασης του λογισμικού

Η/ΥΗ/Υ ΛΣΛΣ OFFICEOFFICE ANTIVIRUSANTIVIRUS

ΑΑ 10 10 λεπτάλεπτά 15 λεπτά15 λεπτά

ΒΒ 10 λεπτά10 λεπτά 15 λεπτά15 λεπτά 5 λεπτά5 λεπτά

ΓΓ 10 λεπτά10 λεπτά

ΑΑ ΑΑ ΒΒ ΒΒ ΒΒ ΓΓ

ΛΣΛΣ OFFICEOFFICE ΛΣΛΣ OFFICEOFFICE ANTIVIRUSANTIVIRUS ΛΣΛΣ

1010 1515 1010 1515 55 1010

Αν χρησιμοποιήσουμε όμως τα Αν χρησιμοποιήσουμε όμως τα CD CD που έχουν ήδη χρησιμοποιηθεί στον που έχουν ήδη χρησιμοποιηθεί στον προηγούμενο Η/Υ;προηγούμενο Η/Υ;

Αν η διαδικασία γίνει με τη σειρά τότε:Αν η διαδικασία γίνει με τη σειρά τότε:

ΑΑΛΣΛΣ10 λεπτά10 λεπτά

ΑΑOFFICEOFFICE15 λεπτά15 λεπτά

BBΛΣΛΣ10 λεπτά10 λεπτά

ΒΒOFFICEOFFICE15 15 λεπτάλεπτά

ΓΓΛΣΛΣ10 λεπτά10 λεπτά

ΒΒANTIVIRUSANTIVIRUS5 5 λεπτάλεπτά

ΔΙΕΡΓΑΣΙΕΣ

Τι είναι η διεργασία και ποια η διαφορά της με το πρόγραμμα;Τι είναι η διεργασία και ποια η διαφορά της με το πρόγραμμα;

Πρόγραμμα: Πρόγραμμα: Παθητική οντότητα Παθητική οντότητα απλά ένα δυαδικό αρχείο στο δίσκο απλά ένα δυαδικό αρχείο στο δίσκο

ΔιεργασίαΔιεργασία: Ενεργητική οντότητα που περιλαμβάνει:: Ενεργητική οντότητα που περιλαμβάνει: το εκτελούμενο πρόγραμμα το εκτελούμενο πρόγραμμα μαζί με τα δεδομένα που χρειάζονται, μαζί με τα δεδομένα που χρειάζονται, τους πόρους που χρειάζεται για να εκτελεστεί κτλ. τους πόρους που χρειάζεται για να εκτελεστεί κτλ.

Άρα η εκτέλεση ενός προγράμματος ονομάζεται Άρα η εκτέλεση ενός προγράμματος ονομάζεται ΔιεργασίαΔιεργασία..

ΕΡ: ΕΡ: το πρόγραμμα Σημειωματάριο είναι ένα το πρόγραμμα Σημειωματάριο είναι ένα ((αρχείο αρχείο notepad.exe)notepad.exe). Πόσες . Πόσες φορές μπορούμε να «εκτελέσουμε» το πρόγραμμα;φορές μπορούμε να «εκτελέσουμε» το πρόγραμμα;

AAΠ: Π: Πολλές. Άρα έχουμε 1 πρόγραμμα αλλά μπορούμε να έχουμε 1 ή Πολλές. Άρα έχουμε 1 πρόγραμμα αλλά μπορούμε να έχουμε 1 ή περισσότερες διεργασίες περισσότερες διεργασίες

Για να μη συμβούν σφάλματα κατά την εναλλαγή διεργασιών Για να μη συμβούν σφάλματα κατά την εναλλαγή διεργασιών

το Λειτουργικό σύστημα:το Λειτουργικό σύστημα: Κρατά πληροφορίες για να μπορέσει να διακόψει ένα πρόγραμμα και να το Κρατά πληροφορίες για να μπορέσει να διακόψει ένα πρόγραμμα και να το

επαναφορτώσει συνεχίζοντας την εκτέλεσή του από το σημείο που αυτή επαναφορτώσει συνεχίζοντας την εκτέλεσή του από το σημείο που αυτή διακόπηκε.διακόπηκε.

ΔΙΕΡΓΑΣΙΕΣ

Παράδειγμα προγράμματος και διεργασίαςΠαράδειγμα προγράμματος και διεργασίας

Συνταγή φαγητού Συνταγή φαγητού Εγχειρίδιο πρώτων βοηθειών Εγχειρίδιο πρώτων βοηθειών Ο μάγειρας που εκτελεί την συνταγή Ο μάγειρας που εκτελεί την συνταγή Τα υλικά της συνταγής Τα υλικά της συνταγής Αναγκαία σκεύη Αναγκαία σκεύη Διαδικασία εκτέλεσης της Διαδικασία εκτέλεσης της συνταγήςσυνταγής ( ( ) )

από τον από τον μάγειραμάγειρα ( ( ) )

με χρήση των με χρήση των υλικώνυλικών ( ( ) )

και των και των σκευώνσκευών ( ( ) )

για την παραγωγή του για την παραγωγή του φαγητούφαγητού ( ( ) ) Αν καεί τότε θα πρέπει:Αν καεί τότε θα πρέπει:

να διακόψει την εκτέλεση της συνταγής να διακόψει την εκτέλεση της συνταγής να αποθηκεύσει στη μνήμη το σημείο που διακόπηκε η εκτέλεση της συνταγήςνα αποθηκεύσει στη μνήμη το σημείο που διακόπηκε η εκτέλεση της συνταγής να εκτελέσει τις οδηγίες πρώτων βοηθειών (να εκτελέσει τις οδηγίες πρώτων βοηθειών ( ))

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

Φαγητό Φαγητό

Πρόγραμμα 1Πρόγραμμα 1

Πρόγραμμα 2Πρόγραμμα 2

ΚΜΕΚΜΕΔεδομένα ΕισόδουΔεδομένα Εισόδου

Συσκευές Η/ΥΣυσκευές Η/Υ

ΔιεργασίαΔιεργασία

Δεδομένα ΕξόδουΔεδομένα ΕξόδουΠρόγραμμα 1Πρόγραμμα 1

ΚΜΕΚΜΕ

Δεδομένα ΕισόδουΔεδομένα Εισόδου

Συσκευές Η/ΥΣυσκευές Η/Υ

Δεδομένα ΕξόδουΔεδομένα Εξόδου

Πρόγραμμα 2Πρόγραμμα 2

ΔΙΕΡΓΑΣΙΕΣ

Διεργασίες στα Διεργασίες στα WindowsWindows

Το πρόγραμμα Notepad (Σημειωματάριο) έχει

εκτελεστεί 2 φορές

Άρα έχουμε:• 1 πρόγραμμα• 2 διεργασίες

ΔΙΕΡΓΑΣΙΕΣ

Διεργασίες στΔιεργασίες στo DOSo DOSΕντολήΕντολή mem /c mem /c

ΔΙΕΡΓΑΣΙΕΣ

Καταστάσεις μίας διεργασίαςΚαταστάσεις μίας διεργασίας

ΝέαΝέα

ΔΙΕΡΓΑΣΙΕΣ

Καταστάσεις μίας διεργασίαςΚαταστάσεις μίας διεργασίας

ΈτοιμηΈτοιμηΕισαγωγή

ΝέαΝέα

ΔΙΕΡΓΑΣΙΕΣ

Καταστάσεις μίας διεργασίαςΚαταστάσεις μίας διεργασίας

ΤρέχουσαΤρέχουσα

ΈτοιμηΈτοιμηΕισαγωγή

ΝέαΝέα

Επιλέγ

εται

ΔΙΕΡΓΑΣΙΕΣ

Καταστάσεις μίας διεργασίαςΚαταστάσεις μίας διεργασίας

ΤρέχουσαΤρέχουσα

ΈτοιμηΈτοιμηΕισαγωγή

ΝέαΝέα Τελε

ιώνε

ι ο

χρόν

ος τη

ς

Επιλέγ

εται

ΔΙΕΡΓΑΣΙΕΣ

Καταστάσεις μίας διεργασίαςΚαταστάσεις μίας διεργασίας

Λειτουργία Ε/Ε

ΜπλοκαρισμένηΜπλοκαρισμένη

ΤρέχουσαΤρέχουσα

ΈτοιμηΈτοιμηΕισαγωγή

ΝέαΝέα Τελε

ιώνε

ι ο

χρόν

ος τη

ς

Επιλέγ

εται

ΔΙΕΡΓΑΣΙΕΣ

Καταστάσεις μίας διεργασίαςΚαταστάσεις μίας διεργασίας

Τέλος Λειτουργίας

Ε/Ε

Λειτουργία Ε/Ε

ΜπλοκαρισμένηΜπλοκαρισμένη

ΤρέχουσαΤρέχουσα

ΈτοιμηΈτοιμηΕισαγωγή

ΝέαΝέα Τελε

ιώνε

ι ο

χρόν

ος τη

ς

Επιλέγ

εται

ΔΙΕΡΓΑΣΙΕΣ

Καταστάσεις μίας διεργασίαςΚαταστάσεις μίας διεργασίας

Τέλος Λειτουργίας

Ε/Ε

Λειτουργία Ε/Ε

ΜπλοκαρισμένηΜπλοκαρισμένη

ΤρέχουσαΤρέχουσα

ΈτοιμηΈτοιμηΕισαγωγή

Τέλος

ΝέαΝέα

ΤερματισμένηΤερματισμένη

Τελε

ιώνε

ι ο

χρόν

ος τη

ς

Επιλέγ

εται

ΔΙΕΡΓΑΣΙΕΣ

Καταστάσεις μίας διεργασίαςΚαταστάσεις μίας διεργασίας

Κάθε CPU του υπολογιστή εξυπηρετεί μία μόνο διεργασία κάθε στιγμή. Αυτή τη Κάθε CPU του υπολογιστή εξυπηρετεί μία μόνο διεργασία κάθε στιγμή. Αυτή τη διεργασία, τη λέμε διεργασία, τη λέμε τρέχουσα.τρέχουσα.Οι υπόλοιπες διεργασίες που περιμένουν τη σειρά τους για να εξυπηρετηθούν από Οι υπόλοιπες διεργασίες που περιμένουν τη σειρά τους για να εξυπηρετηθούν από την CPU λέμε ότι είναιτην CPU λέμε ότι είναι έτοιμεςέτοιμεςΟι διεργασίες που περιμένουν κάτι άλλο (π.χ. να απαντήσει το modem ή να τους Οι διεργασίες που περιμένουν κάτι άλλο (π.χ. να απαντήσει το modem ή να τους διατεθεί αρκετή μνήμη) είναι οι διατεθεί αρκετή μνήμη) είναι οι μπλοκαρισμένεςμπλοκαρισμένες

Μια διεργασία ξεκινάει ως Μια διεργασία ξεκινάει ως έτοιμηέτοιμη και, και, όταν έρθει η σειρά της, γίνεται όταν έρθει η σειρά της, γίνεται τρέχουσατρέχουσα για λίγο, για λίγο, μέχρι να περάσει ο χρόνος της, οπότε επιστρέφει στην μέχρι να περάσει ο χρόνος της, οπότε επιστρέφει στην ετοιμότηταετοιμότητα, , ή να ζητήσει κάτι εκτός CPU (συνήθως Ι/Ο), οπότε ή να ζητήσει κάτι εκτός CPU (συνήθως Ι/Ο), οπότε μπλοκάρεταιμπλοκάρεται έως ότου ικανοποιηθεί έως ότου ικανοποιηθεί

αυτό που ζήτησε (και τότε επιστρέφει στην ετοιμότητα).αυτό που ζήτησε (και τότε επιστρέφει στην ετοιμότητα).

Τέλος Λειτουργίας

Ε/Ε

Λειτουργία Ε/Ε

Μεταγωγή περιβάλλοντος

ΜπλοκαρισμένηΜπλοκαρισμένη

ΤρέχουσαΤρέχουσα

ΈτοιμηΈτοιμηΕισαγωγή

Τέλος

ΔΙΕΡΓΑΣΙΕΣ

Καταστάσεις μίας διεργασίαςΚαταστάσεις μίας διεργασίας

ΚΜΕ

Νέα

Εκπνοή χρόνου

Αίτηση Ε/Ε

Αναμονή για συμβάνΣυμβάν

Ε/Ε

Έξοδος

Ουρά έτοιμων διεργασιών

Ουρά μπλοκαρισμένων διεργασιών

ΔΙΕΡΓΑΣΙΕΣ

Διαδικασία αποθήκευσης – επαναφοράς διεργασίαςΔιαδικασία αποθήκευσης – επαναφοράς διεργασίας

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

Αυτές οι πληροφορίες αποθηκεύονται σε έναν ειδικό χώρο (Αυτές οι πληροφορίες αποθηκεύονται σε έναν ειδικό χώρο (PCB)PCB)..

Όταν η διεργασία Όταν η διεργασία γίνει πάλιγίνει πάλι τρέχουσατρέχουσα, τότε το PCB της, τότε το PCB της ( (Δηλαδή οι Δηλαδή οι πληροφορίες για την διεργασία) θα φορτωθεί και η εκτέλεση της διεργασίας πληροφορίες για την διεργασία) θα φορτωθεί και η εκτέλεση της διεργασίας θα συνεχιστεί από το σημείο που είχε σταματήσει.θα συνεχιστεί από το σημείο που είχε σταματήσει.

ΔΙΕΡΓΑΣΙΕΣ

Παράλληλες διεργασίεςΠαράλληλες διεργασίες

Δύο διαδικασίες λέγονται «παράλληλες» (concurrent) όταν οι εκτελέσεις Δύο διαδικασίες λέγονται «παράλληλες» (concurrent) όταν οι εκτελέσεις τους επικαλύπτονται χρονικά.τους επικαλύπτονται χρονικά.

Σε περιβάλλον πολλών επεξεργαστών, δύο ή περισσότερες διεργασίες μπορεί Σε περιβάλλον πολλών επεξεργαστών, δύο ή περισσότερες διεργασίες μπορεί πράγματι να επικαλύπτονται χρονικά (πράγματι να επικαλύπτονται χρονικά (πραγματικά παράλληλαπραγματικά παράλληλα).).

Αλλά σε περιβάλλον ενός μόνο επεξεργαστή οι διεργασίες εναλλάσσονται με Αλλά σε περιβάλλον ενός μόνο επεξεργαστή οι διεργασίες εναλλάσσονται με τόσο γρήγορο ρυθμό που μας δίνεται η αίσθηση ότι εκτελούνται παράλληλα τόσο γρήγορο ρυθμό που μας δίνεται η αίσθηση ότι εκτελούνται παράλληλα ((ψευδοπαράλληλαψευδοπαράλληλα).).

Βίντεο

ΔΙΕΡΓΑΣΙΕΣ

Κρίσιμα τμήματαΚρίσιμα τμήματα

Στους υπολογιστές υπάρχουν πόροι (δίσκος, εκτυπωτής κτλ) που μπορεί να Στους υπολογιστές υπάρχουν πόροι (δίσκος, εκτυπωτής κτλ) που μπορεί να χρειάζεται να χρησιμοποιηθούν από πολλές διεργασίες.χρειάζεται να χρησιμοποιηθούν από πολλές διεργασίες.

Αν ο πόρος δεν μπορεί να μοιραστεί (πχ εκτυπωτής) πρέπει να Αν ο πόρος δεν μπορεί να μοιραστεί (πχ εκτυπωτής) πρέπει να χρησιμοποιείται αποκλειστικά από την κάθε διεργασία σε ένα δεδομένο χρησιμοποιείται αποκλειστικά από την κάθε διεργασία σε ένα δεδομένο χρονικό διάστημα.χρονικό διάστημα.

Με άλλα λόγια όταν μία διεργασία χρησιμοποιεί έναν μη μοιραζόμενο πόρο Με άλλα λόγια όταν μία διεργασία χρησιμοποιεί έναν μη μοιραζόμενο πόρο καμία άλλη διεργασία δεν μπορεί να τον χρησιμοποιήσει καμία άλλη διεργασία δεν μπορεί να τον χρησιμοποιήσει αποκλεισμός αποκλεισμός διεργασιώνδιεργασιών. .

Παράδειγμα: 2 διεργασίες θέλουν να εκτυπώσουν την ίδια στιγμή.Παράδειγμα: 2 διεργασίες θέλουν να εκτυπώσουν την ίδια στιγμή. Μόνο 1 από τις διεργασίες θα πρέπει να μπορεί να εκτυπώσει για ορισμένο Μόνο 1 από τις διεργασίες θα πρέπει να μπορεί να εκτυπώσει για ορισμένο

χρονικό διάστημα.χρονικό διάστημα. ΕΡ:ΕΡ: Αν και οι 2 διεργασίες εκτύπωναν ταυτόχρονα τότε τι θα συνέβαινε; Αν και οι 2 διεργασίες εκτύπωναν ταυτόχρονα τότε τι θα συνέβαινε; ΑΠ:ΑΠ: Θα είχαμε ανακατεμένες γραμμές ή σελίδες εκτυπώσεων Θα είχαμε ανακατεμένες γραμμές ή σελίδες εκτυπώσεων

ΔΙΕΡΓΑΣΙΕΣ

Κρίσιμα τμήματα 2Κρίσιμα τμήματα 2

ΠαράδειγμαΠαράδειγμα: Δύο πρακτορεία κράτησης θέσεων σε αεροπλάνα εκτελούν το : Δύο πρακτορεία κράτησης θέσεων σε αεροπλάνα εκτελούν το πρόγραμμα κράτησης θέσεων.πρόγραμμα κράτησης θέσεων.

ΕΡ:ΕΡ: Πόσες διεργασίες εκτελούνται; Πόσες διεργασίες εκτελούνται;

ΏραΏρα Διεργασία ΑΔιεργασία Α Διεργασία ΒΔιεργασία Β Θέση ΧΘέση Χ

09:0009:00

09:0109:01

09:0209:02

09:0309:03

Το πρακτορείο Το πρακτορείο ΑΑ βλέπει βλέπει τη θέση τη θέση ΧΧ ελεύθερη ελεύθερη

Το πρακτορείο Το πρακτορείο ΒΒ βλέπει βλέπει τη θέση τη θέση ΧΧ ελεύθερη ελεύθερη

Το πρακτορείο Το πρακτορείο ΑΑ κρατά κρατά τη θέση τη θέση ΧΧ

Το πρακτορείο Το πρακτορείο ΒΒ κρατά κρατά τη θέση τη θέση ΧΧ

ΕλεύθερηΕλεύθερη

ΕλεύθερηΕλεύθερη

ΚρατημένηΚρατημένη

ΚρατημένηΚρατημένη

ΔΙΕΡΓΑΣΙΕΣ

Κρίσιμα τμήματα Κρίσιμα τμήματα 33αα

ΠαράδειγμαΠαράδειγμα: Κάπου στη μνήμη : Κάπου στη μνήμη RAM RAM υπάρχει αποθηκευμένη μια μεταβλητή υπάρχει αποθηκευμένη μια μεταβλητή Χ που έχει τιμή 1.Χ που έχει τιμή 1.

Η διεργασία Π1 παίρνει τηνΗ διεργασία Π1 παίρνει την τιμή της μεταβλητής Χ από την μνήμη, την αυξάνει τιμή της μεταβλητής Χ από την μνήμη, την αυξάνει κατά 1 και την αποθηκεύει στηνκατά 1 και την αποθηκεύει στην μνήμη.μνήμη.

Η διεργασία ΠΗ διεργασία Π22 παίρνει την παίρνει την τιμή της μεταβλητής Χ από την μνήμη, την αυξάνει τιμή της μεταβλητής Χ από την μνήμη, την αυξάνει κατά κατά 22 και την αποθηκεύει στην και την αποθηκεύει στην μνήμη.μνήμη.

Μετά τον τερματισμό των δυο διεργασιών, ποιαΜετά τον τερματισμό των δυο διεργασιών, ποια τιμή θα έχει η μεταβλητή Χ;τιμή θα έχει η μεταβλητή Χ;

ΣΕΝΑΡΙΟ 1ΣΕΝΑΡΙΟ 1οο

ΔΙΕΡΓΑΣΙΑ ΔΙΕΡΓΑΣΙΑ Π1Π1 RAMRAM ΔΙΕΡΓΑΣΙΑ ΔΙΕΡΓΑΣΙΑ Π2Π2

Εκκίνηση της Π1Εκκίνηση της Π1

Η Π1 διαβάζει το Χ Η Π1 διαβάζει το Χ Χ = 1Χ = 1

Η Π1 αυξάνει το Χ κατά 1 Η Π1 αυξάνει το Χ κατά 1 Χ = 2Χ = 2

Η Π1 αποθηκεύει το ΧΗ Π1 αποθηκεύει το Χ

Τερματίζεται η Π1Τερματίζεται η Π1

Χ=1Χ=1

Χ=2Χ=2

Χ=4Χ=4

Εκκίνηση της Π2Εκκίνηση της Π2

Η Π2 διαβάζει το Χ Η Π2 διαβάζει το Χ Χ = 2Χ = 2

Η Π2 αυξάνει το Χ κατά 2 Η Π2 αυξάνει το Χ κατά 2 Χ = 4Χ = 4

Η Π2 αποθηκεύει το ΧΗ Π2 αποθηκεύει το Χ

Τερματίζεται η Π2Τερματίζεται η Π2

ΔΙΕΡΓΑΣΙΕΣ

Κρίσιμα τμήματα Κρίσιμα τμήματα 33ββ

ΠαράδειγμαΠαράδειγμα: Στην ΚΜ: Στην ΚΜ υπάρχει αποθηκευμένη μια μεταβλητή Χ που έχει τιμή υπάρχει αποθηκευμένη μια μεταβλητή Χ που έχει τιμή 1.1.

Η διεργασία Π1 παίρνει τηνΗ διεργασία Π1 παίρνει την τιμή της μεταβλητής Χ από την μνήμη, την αυξάνει τιμή της μεταβλητής Χ από την μνήμη, την αυξάνει κατά 1 και την αποθηκεύει στηνκατά 1 και την αποθηκεύει στην μνήμη.μνήμη.

Η διεργασία ΠΗ διεργασία Π22 παίρνει την παίρνει την τιμή της μεταβλητής Χ από την μνήμη, την αυξάνει τιμή της μεταβλητής Χ από την μνήμη, την αυξάνει κατά κατά 22 και την αποθηκεύει στην και την αποθηκεύει στην μνήμη.μνήμη.

Μετά τον τερματισμό των δυο διεργασιών, ποιαΜετά τον τερματισμό των δυο διεργασιών, ποια τιμή θα έχει η μεταβλητή Χ;τιμή θα έχει η μεταβλητή Χ;

ΣΕΝΑΡΙΟ 2ΣΕΝΑΡΙΟ 2οο

ΔΙΕΡΓΑΣΙΑ ΔΙΕΡΓΑΣΙΑ Π1Π1 RAMRAM ΔΙΕΡΓΑΣΙΑ ΔΙΕΡΓΑΣΙΑ Π2Π2

Εκκίνηση της Π1Εκκίνηση της Π1 Χ=1Χ=1

Η Π1 διαβάζει το Χ Η Π1 διαβάζει το Χ Χ = 1Χ = 1

Εκκίνηση της Π2Εκκίνηση της Π2

Η Π2 διαβάζει το Χ Η Π2 διαβάζει το Χ Χ = 1Χ = 1

Η Π2 αυξάνει το Χ κατά 2 Η Π2 αυξάνει το Χ κατά 2 Χ = 3Χ = 3

Η Π2 αποθηκεύει το ΧΗ Π2 αποθηκεύει το Χ Χ=3Χ=3

Τερματίζεται η Π2Τερματίζεται η Π2

Η Π1 αυξάνει το Χ κατά 1 Η Π1 αυξάνει το Χ κατά 1 Χ = 2Χ = 2

Η Π1 αποθηκεύει το ΧΗ Π1 αποθηκεύει το Χ Χ=2Χ=2

Τερματίζεται η Π1Τερματίζεται η Π1

Τελειώνει ο χρόνος της Π1Τελειώνει ο χρόνος της Π1

Η Π1 γίνεται ξανά τρέχουσαΗ Π1 γίνεται ξανά τρέχουσα

ΔΙΕΡΓΑΣΙΕΣ

Κρίσιμα τμήματα Κρίσιμα τμήματα 33γγ

ΠαράδειγμαΠαράδειγμα: Στην ΚΜ: Στην ΚΜ υπάρχει αποθηκευμένη μια μεταβλητή Χ που έχει τιμή υπάρχει αποθηκευμένη μια μεταβλητή Χ που έχει τιμή 1.1.

Η διεργασία Π1 παίρνει τηνΗ διεργασία Π1 παίρνει την τιμή της μεταβλητής Χ από την μνήμη, την αυξάνει τιμή της μεταβλητής Χ από την μνήμη, την αυξάνει κατά 1 και την αποθηκεύει στηνκατά 1 και την αποθηκεύει στην μνήμη.μνήμη.

Η διεργασία ΠΗ διεργασία Π22 παίρνει την παίρνει την τιμή της μεταβλητής Χ από την μνήμη, την αυξάνει τιμή της μεταβλητής Χ από την μνήμη, την αυξάνει κατά κατά 22 και την αποθηκεύει στην και την αποθηκεύει στην μνήμη.μνήμη.

Μετά τον τερματισμό των δυο διεργασιών, ποιαΜετά τον τερματισμό των δυο διεργασιών, ποια τιμή θα έχει η μεταβλητή Χ;τιμή θα έχει η μεταβλητή Χ;

ΣΕΝΑΡΙΟ 3ΣΕΝΑΡΙΟ 3οο

ΔΙΕΡΓΑΣΙΑ ΔΙΕΡΓΑΣΙΑ Π1Π1 RAMRAM ΔΙΕΡΓΑΣΙΑ ΔΙΕΡΓΑΣΙΑ Π2Π2

Χ=1Χ=1 Εκκίνηση της Π2Εκκίνηση της Π2

Η Π2 διαβάζει το Χ Η Π2 διαβάζει το Χ Χ=1Χ=1

Εκκίνηση της Π1Εκκίνηση της Π1

Η Π1 διαβάζει το Χ Η Π1 διαβάζει το Χ Χ=1Χ=1

Η Π1 αυξάνει το Χ κατά 1 Η Π1 αυξάνει το Χ κατά 1 Χ = 2Χ = 2

Η Π1 αποθηκεύει το ΧΗ Π1 αποθηκεύει το Χ Χ=2Χ=2

Τερματίζεται η Π1Τερματίζεται η Π1

Χ=3Χ=3 Η Π2 αποθηκεύει το ΧΗ Π2 αποθηκεύει το Χ

Τερματίζεται η Π2Τερματίζεται η Π2

Η Π2 αυξάνει το Χ κατά 2 Η Π2 αυξάνει το Χ κατά 2 Χ = 3Χ = 3

Τελειώνει ο χρόνος της Π2Τελειώνει ο χρόνος της Π2

Η Π2 γίνεται ξανά τρέχουσαΗ Π2 γίνεται ξανά τρέχουσα

ΔΙΕΡΓΑΣΙΕΣ

Κρίσιμα τμήματα 4Κρίσιμα τμήματα 4ΠαράδειγμαΠαράδειγμα: Δύο διεργασίες θέλουν να εκτυπώσουν. : Δύο διεργασίες θέλουν να εκτυπώσουν.

Διεργ. Α: αποθηκεύε σε θέση μνήμης το όνομα του αρχείου προς εκτύπωση με όνομα ΑΑΔιεργ. Α: αποθηκεύε σε θέση μνήμης το όνομα του αρχείου προς εκτύπωση με όνομα ΑΑ Διεργ. Β: αποθηκεύει σε θέση μνήμης το όνομα του αρχείου προς εκτύπωση με όνομα ΒΒΔιεργ. Β: αποθηκεύει σε θέση μνήμης το όνομα του αρχείου προς εκτύπωση με όνομα ΒΒ

Διεργασία ΑΔιεργασία Α Διεργασία ΒΔιεργασία Β ΘΕΣΗΘΕΣΗ

11 Ξεκινά να εκτελείται Ξεκινά να εκτελείται ΤρέχουσαΤρέχουσα 99

22Διαβάζει τη θέση στην οποία θα αποθηκεύσει Διαβάζει τη θέση στην οποία θα αποθηκεύσει

το όνομα του αρχείου ΑΑ (ΘΕΣΗ = 9)το όνομα του αρχείου ΑΑ (ΘΕΣΗ = 9) 99

33 Λήγει ο χρόνος της διεργασίας Λήγει ο χρόνος της διεργασίας ΈτοιμηΈτοιμη 99

44 Ξεκινά να εκτελείται Ξεκινά να εκτελείται ΤρέχουσαΤρέχουσα 99

55Διαβάζει τη θέση στην οποία θα αποθηκεύσει Διαβάζει τη θέση στην οποία θα αποθηκεύσει

το αρχείο ΒΒ (ΘΕΣΗ = 9)το αρχείο ΒΒ (ΘΕΣΗ = 9) 99

66 Αποθηκεύει το όνομα του αρχείου στη ΘΕΣΗ 9Αποθηκεύει το όνομα του αρχείου στη ΘΕΣΗ 9 99

77 Αλλάζει τη ΘΕΣΗ σε 10Αλλάζει τη ΘΕΣΗ σε 10 1010

88 Λήγει ο χρόνος της διεργασίας Λήγει ο χρόνος της διεργασίας ΈτοιμηΈτοιμη 1010

99 Ξεκινά να εκτελείται πάλι Ξεκινά να εκτελείται πάλι ΤρέχουσαΤρέχουσα 1010

1010 Αποθηκεύει το όνομα του αρχείου στη ΘΕΣΗ 9Αποθηκεύει το όνομα του αρχείου στη ΘΕΣΗ 9 1010

1111 Εκτυπώνει το αρχείο με το όνομα που Εκτυπώνει το αρχείο με το όνομα που αποθηκεύτηκε στη ΘΕΣΗ 9αποθηκεύτηκε στη ΘΕΣΗ 9 1010

1212 Τερματίζει τη λειτουργία τηςΤερματίζει τη λειτουργία της 1010

1313 Ξεκινά να εκτελείται πάλι Ξεκινά να εκτελείται πάλι ΤρέχουσαΤρέχουσα 1010

1414 Εκτυπώνει το αρχείο με το όνομα που Εκτυπώνει το αρχείο με το όνομα που αποθηκεύτηκε στη ΘΕΣΗ 9αποθηκεύτηκε στη ΘΕΣΗ 9 1010

1515 Τερματίζει τη λειτουργία τηςΤερματίζει τη λειτουργία της 1010

ΔΙΕΡΓΑΣΙΕΣ

Παράδειγμα: Φόρτωση λογισμικού σε 3 υπολογιστέςΠαράδειγμα: Φόρτωση λογισμικού σε 3 υπολογιστές

Τον ρόλο της ΚΜΕ παίζει ο υπεύθυνος εγκατάστασης του λογισμικούΤον ρόλο της ΚΜΕ παίζει ο υπεύθυνος εγκατάστασης του λογισμικού

Η/ΥΗ/Υ ΛΣΛΣ OFFICEOFFICE ANTIVIRUSANTIVIRUS

ΑΑ 10 10 λεπτάλεπτά 15 λεπτά15 λεπτά

ΒΒ 10 λεπτά10 λεπτά 15 λεπτά15 λεπτά 5 λεπτά5 λεπτά

ΓΓ 10 λεπτά10 λεπτά

ΑΑ ΑΑ ΒΒ ΒΒ ΒΒ ΓΓ

ΛΣΛΣ OFFICEOFFICE ΛΣΛΣ OFFICEOFFICE ANTIVIRUSANTIVIRUS ΛΣΛΣ

1010 1515 1010 1515 55 1010

Αν χρησιμοποιήσουμε όμως τα Αν χρησιμοποιήσουμε όμως τα CD CD που έχουν ήδη χρησιμοποιηθεί στον που έχουν ήδη χρησιμοποιηθεί στον προηγούμενο επεξεργαστή;προηγούμενο επεξεργαστή;

Αν η διαδικασία γίνει με τη σειρά τότε:Αν η διαδικασία γίνει με τη σειρά τότε:

ΑΑΛΣΛΣ

10 λεπτά10 λεπτά

ΑΑOFFICEOFFICE

15 λεπτά15 λεπτά

ΒΒOFFICEOFFICE

15 15 λεπτάλεπτά

ΒΒANTIVIRUSANTIVIRUS

5 5 λεπτάλεπτά

BBΛΣΛΣ

10 λεπτά10 λεπτά

ΓΓΛΣΛΣ

10 λεπτά10 λεπτά

ΔΙΕΡΓΑΣΙΕΣ

Κρίσιμα Τμήματα και Αμοιβαίος ΑποκλεισμόςΚρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός

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

Αμοιβαίος αποκλεισμόςΑμοιβαίος αποκλεισμός: όταν μία διεργασία εκτελεί το κρίσιμο τμήμα : όταν μία διεργασία εκτελεί το κρίσιμο τμήμα της καμία άλλη διεργασία δεν μπορεί να εκτελεί το δικό της κρίσιμο της καμία άλλη διεργασία δεν μπορεί να εκτελεί το δικό της κρίσιμο τμήμα. Έτσι αποφεύγονται τα παρατράγουδα.τμήμα. Έτσι αποφεύγονται τα παρατράγουδα.

ΔΙΕΡΓΑΣΙΕΣ

ΑδιέξοδαΑδιέξοδα

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

Παράδειγμα 1ο:Παράδειγμα 1ο: Ένα σύστημα με έναν εκτυπωτή και ένα σαρωτή: Ένα σύστημα με έναν εκτυπωτή και ένα σαρωτή: Δύο διεργασίες Ρ1 και Ρ2 Δύο διεργασίες Ρ1 και Ρ2 η Ρ1 δεσμεύει τον εκτυπωτή η Ρ1 δεσμεύει τον εκτυπωτή η Ρ2 δεσμεύει το σαρωτή η Ρ2 δεσμεύει το σαρωτή η Ρ1 ζητά το σαρωτή και εμποδίζεται η Ρ1 ζητά το σαρωτή και εμποδίζεται η Ρ2 ζητά τον εκτυπωτή και εμποδίζεταιη Ρ2 ζητά τον εκτυπωτή και εμποδίζεται

ΔΙΕΡΓΑΣΙΕΣ

Αδιέξοδα 2Αδιέξοδα 2ΑδιέξοδοΑδιέξοδο: Οι διεργασίες βρίσκονται σε αδιέξοδο όταν κάθε διεργασία : Οι διεργασίες βρίσκονται σε αδιέξοδο όταν κάθε διεργασία περιμένει για κάτι που μπορεί να προκληθεί μόνο από μία άλλη περιμένει για κάτι που μπορεί να προκληθεί μόνο από μία άλλη διεργασία του συνόλου. διεργασία του συνόλου.

Παράδειγμα 2ο:Παράδειγμα 2ο: Ένα σύστημα με έναν εκτυπωτή και ένα σαρωτή: Ένα σύστημα με έναν εκτυπωτή και ένα σαρωτή:

ο ο πόρος Rπόρος R έχει εκχωρηθεί (δεσμευθεί) στη (από τη) έχει εκχωρηθεί (δεσμευθεί) στη (από τη) διεργασία Αδιεργασία Α Η Η διεργασία Βδιεργασία Β ζητά τον ζητά τον πόρο Sπόρο S ΑδιέξοδοΑδιέξοδο (διεργασίες C και D, πόροι T και U) (διεργασίες C και D, πόροι T και U) Καμία από τις διεργασίες δεν μπορεί Καμία από τις διεργασίες δεν μπορεί

να συνεχίσει να συνεχίσει

να απελευθερώσει κάποιον πόρο να απελευθερώσει κάποιον πόρο

ΔΙΕΡΓΑΣΙΕΣ

Αδιέξοδα 3Αδιέξοδα 3Παράδειγμα 3ο:Παράδειγμα 3ο: 3 διεργασίες (Δ1, Δ2, Δ3) και 3 διεργασίες (Δ1, Δ2, Δ3) και 3 πόροι (Α, Β, Γ)3 πόροι (Α, Β, Γ)

Η διεργασία Δ1 ζητάει τον πόρο ΑΗ διεργασία Δ1 ζητάει τον πόρο Α Ο πόρος Α δεν είναι δεσμευμένος άρα τον αποκτά.Ο πόρος Α δεν είναι δεσμευμένος άρα τον αποκτά. Η διεργασία Δ2 ζητάει τον πόρο ΒΗ διεργασία Δ2 ζητάει τον πόρο Β Ο πόρος Β δεν είναι δεσμευμένος άρα τον αποκτά.Ο πόρος Β δεν είναι δεσμευμένος άρα τον αποκτά. Η διεργασία Δ3 ζητάει τον πόρο ΓΗ διεργασία Δ3 ζητάει τον πόρο Γ Ο πόρος Γ δεν είναι δεσμευμένος άρα τον αποκτά.Ο πόρος Γ δεν είναι δεσμευμένος άρα τον αποκτά. Η διεργασία Δ1 ζητάει τον πόρο Β. Μπορεί να τον Η διεργασία Δ1 ζητάει τον πόρο Β. Μπορεί να τον

αποκτήσει;αποκτήσει; ΟΧΙΟΧΙ. Ο πόρος είναι δεσμευμένος από την διεργασία Δ2. Ο πόρος είναι δεσμευμένος από την διεργασία Δ2 Η διεργασία Δ2 ζητάει τον πόρο Γ. Μπορεί να τον Η διεργασία Δ2 ζητάει τον πόρο Γ. Μπορεί να τον

αποκτήσει;αποκτήσει; ΟΧΙΟΧΙ. Ο πόρος είναι δεσμευμένος από την διεργασία Δ3. Ο πόρος είναι δεσμευμένος από την διεργασία Δ3 Η διεργασία Δ3 ζητάει τον πόρο Α. Μπορεί να τον Η διεργασία Δ3 ζητάει τον πόρο Α. Μπορεί να τον

αποκτήσει;αποκτήσει; ΟΧΙ.ΟΧΙ. Ο πόρος είναι δεσμευμένος από την διεργασία Δ1 Ο πόρος είναι δεσμευμένος από την διεργασία Δ1

Α

Δ1

Β

Δ2

Γ

Δ3

ΔΙΕΡΓΑΣΙΕΣ

Άλλα προβλήματαΆλλα προβλήματαΥποσιτισμόςΥποσιτισμός: Αν μία διεργασία ξεκινήσει την προσπάθειά της να : Αν μία διεργασία ξεκινήσει την προσπάθειά της να εκτελέσει το κρίσιμο τμήμα της (πχ μία εκτύπωση) θα πρέπει τελικά να εκτελέσει το κρίσιμο τμήμα της (πχ μία εκτύπωση) θα πρέπει τελικά να το πετύχει. Αν η εκτέλεση αυτή αναβάλλεται συνεχώς τότε έχουμε το πετύχει. Αν η εκτέλεση αυτή αναβάλλεται συνεχώς τότε έχουμε υποσιτισμό της διεργασίας.υποσιτισμό της διεργασίας.

ΕΡ: ΕΡ: Γιατί είναι σημαντικό να μην υποσιτιστεί μία διεργασία; Γιατί είναι σημαντικό να μην υποσιτιστεί μία διεργασία; ΑΠ:ΑΠ: Αν μία διεργασία θέλει αλλά δεν μπορεί ποτέ να εκτελέσει το κρίσιμο Αν μία διεργασία θέλει αλλά δεν μπορεί ποτέ να εκτελέσει το κρίσιμο

τμήμα της τότε δεν θα τελειώσει ποτέ (θα περιμένει αιώνια).τμήμα της τότε δεν θα τελειώσει ποτέ (θα περιμένει αιώνια).

ΣυναγωνισμόςΣυναγωνισμός: Σε περίπτωση που δεν υπάρχει συναγωνισμός για : Σε περίπτωση που δεν υπάρχει συναγωνισμός για ταυτόχρονη είσοδο στα κρίσιμα τμήματα τότε η διεργασία θα πρέπει ταυτόχρονη είσοδο στα κρίσιμα τμήματα τότε η διεργασία θα πρέπει να εκτελέσει το κρίσιμο τμήμα της με την ελάχιστη επιβάρυνσηνα εκτελέσει το κρίσιμο τμήμα της με την ελάχιστη επιβάρυνση

ΔΙΕΡΓΑΣΙΕΣ

ΧρονοδρομολόγησηΧρονοδρομολόγηση

Χρονοδρομολογητής

ΜακροχρόνιοςΜεσοχρόνιος

Βραχυχρόνιος

Διεργασίεςπρος

εκτέλεση

Ουράέτοιμων

διεργασιών

ΚΜΕ

Ουράαναμονής

ΔΙΕΡΓΑΣΙΕΣ

Αλγόριθμοι ΧρονοδρομολόγησηςΑλγόριθμοι Χρονοδρομολόγησης

Κριτήρια αξιολόγησης Κριτήρια αξιολόγησης

Βαθμός χρησιμοποίησης της ΚΜΕ Ρυθμαπόδοση Χρόνος ανακύκλωσης Χρόνος αναμονής Χρόνος απόκρισης

Κατηγορίες αλγορίθμων χρονοδρομολόγησης Κατηγορίες αλγορίθμων χρονοδρομολόγησης

Μη διακοπτοί: κάθε διεργασία εκτελείται έως ότου ολοκληρωθεί η τρέχουσα έκρηξη ΚΜΕ

Διακοπτοί: οι διεργασίες εκτελούν τις εκρήξεις ΚΜΕ τμηματικά

ΔΙΕΡΓΑΣΙΕΣ

Αλγόριθμοι ΧρονοδρομολόγησηςΑλγόριθμοι Χρονοδρομολόγησης

Μη διακοπτοί αλγόριθμοι Μη διακοπτοί αλγόριθμοι

Εξυπηρέτηση με βάση τη σειρά άφιξης (Εξυπηρέτηση με βάση τη σειρά άφιξης (FCFS) FCFS) ::οι διεργασίες δρομολογούνται με τη σειρά που υποβλήθηκαν για εκτέλεσηοι διεργασίες δρομολογούνται με τη σειρά που υποβλήθηκαν για εκτέλεση

Εξυπηρέτηση με βάση τη διάρκεια (Εξυπηρέτηση με βάση τη διάρκεια (SJF) SJF) ::προηγούνται οι διεργασίες που προβλέπεται να διαρκέσουν λιγότεροπροηγούνται οι διεργασίες που προβλέπεται να διαρκέσουν λιγότερο

Εξυπηρέτηση με βάση το λόγο απόκρισης (Εξυπηρέτηση με βάση το λόγο απόκρισης (HRF) HRF) ::προηγούνται οι διεργασίες με το μεγαλύτερο λόγο απόκρισηςπροηγούνται οι διεργασίες με το μεγαλύτερο λόγο απόκρισης

Εξυπηρέτηση με βάση την προτεραιότητα Εξυπηρέτηση με βάση την προτεραιότητα ::προηγείται η διεργασία με τη μεγαλύτερη προτεραιότηταπροηγείται η διεργασία με τη μεγαλύτερη προτεραιότητα

Εκτέλεσης Χρόνος

ΑναμονήςΧρόνος ΑπόκρισηςΛόγος 1

ΔΙΕΡΓΑΣΙΕΣ

Αλγόριθμοι ΧρονοδρομολόγησηςΑλγόριθμοι Χρονοδρομολόγησης

Διακοπτοί αλγόριθμοι Διακοπτοί αλγόριθμοι

Διακοπτή εξυπηρέτηση με βάση τη διάρκεια (Διακοπτή εξυπηρέτηση με βάση τη διάρκεια (PSJF) PSJF) ::κάθε φορά που μία διεργασία υποβάλεται για εκτέλεση, ελέγχονται όλες και κάθε φορά που μία διεργασία υποβάλεται για εκτέλεση, ελέγχονται όλες και επιλέγεται αυτή που αναμένεται να έχει τη μικρότερη διάρκειαεπιλέγεται αυτή που αναμένεται να έχει τη μικρότερη διάρκεια

Χρονοδρομολόγηση κυκλικής επαναφοράς (Χρονοδρομολόγηση κυκλικής επαναφοράς (RR) RR) ::όλες οι διεργασίες εκτελούνται εκ περιτροπής για ένα μικρό χρονικό διάστημα, το όλες οι διεργασίες εκτελούνται εκ περιτροπής για ένα μικρό χρονικό διάστημα, το κβάντο χρόνουκβάντο χρόνου