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

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

ΔΙΕΡΓΑΣΙΕΣ.

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


Παρουσίαση με θέμα: "ΔΙΕΡΓΑΣΙΕΣ."— Μεταγράφημα παρουσίασης:

1 ΔΙΕΡΓΑΣΙΕΣ

2 ΔΙΕΡΓΑΣΙΕΣ Ορισμός : μια διεργασία είναι ένα πρόγραμμα ή στιγμιότυπο ενός προγράμματος που εκτελείται στον ΗΥ μια διεργασία είναι η οντότητα που μπορεί να ανατεθεί και να εκτελεστεί σε έναν επεξεργαστή Διαφορά μεταξύ διεργασίας και προγράμματος Ένα πρόγραμμα είναι μια άψυχη οντότητα και μόνον όταν ο επεξεργαστής ξεκινά να εκτελέσει το πρόγραμμα αυτό καθίσταται μια ενεργή οντότητα που ονομάζεται διεργασία.

3 Καταστάσεις διεργασίας
Το Λ.Σ. πρέπει να εξασφαλίσει ότι κάθε διεργασία αναλαμβάνει για αρκετό χρόνο τη χρήση του επεξεργαστή. Σε κάθε σύστημα μπορούν να υπάρχουν τόσες ταυτόχρονες διεργασίες όσοι είναι και οι επεξεργαστές. Κατά τη διάρκεια ζωής της κάθε διεργασία μπορεί να βρεθεί σε μια σειρά από διακριτές καταστάσεις. Διάφορα γεγονότα αναγκάζουν μια διεργασία να μεταβάλει την κατάστασή της.

4 Καταστάσεις διεργασίας
Εκτελούμενη (running): η διεργασία χρησιμοποιεί τη CPU εκείνη τη στιγμή Έτοιμη (ready): η διεργασία έχει διακοπεί προσωρινά για να εκτελεστεί κάποια άλλη Υπό αναστολή (blocked): η διεργασία δεν μπορεί να εκτελεστεί μέχρι να συμβεί κατάλληλο εξωτερικό συμβάν

5 Παράδειγμα

6 Πίνακας διεργασιών Το Λ.Σ. διατηρεί έναν πίνακα διεργασιών (process table), ο οποίος περιλαμβάνει μια καταχώρηση για κάθε διεργασία. για κάθε διεργασία αποθηκεύει : την κατάστασή της , την κατοχή πόρων του συστήματος ετσι δίνεται η δυνατότητα στο Λ.Σ. να ασκεί επιρροή στον έλεγχο της διεργασίας.

7 Εναλλαγή ∆ιεργασιών Για να εκτελεστεί µια διεργασία σε έναν επεξεργαστή πρέπει να φορτωθεί σε αυτόν η κατάσταση επεξεργαστή της διεργασίας • Κατά την εκτέλεση της διεργασίας η κατάσταση επεξεργαστή µεταβάλλεται • Για να σταµατήσει η εκτέλεση µιας διεργασίας και να ξεκινήσει µια άλλη: – Αποθηκεύεται η κατάσταση επεξεργαστή της τρέχουσας διεργασίας – Φορτώνεται η κατάσταση επεξεργαστή της προς εκτέλεση

8 Λόγοι εναλλαγής εκτελούμενης διεργασίας
Clock interrupt Η διεργασία έχει εξαντλήσει το μέγιστο επιτρεπόμενο χρονικό όριο (time slice) I/O interrupt Trap Έχει συμβεί σφάλμα Κλήση επόπτη (κλήση συστήματος) π.χ. άνοιγμα αρχείου

9 Μνήµη ∆ιεργασίας Κάθε διεργασία διαθέτει το δικό της (ιδιωτικό) χώρο
Μνήµη ∆ιεργασίας Κάθε διεργασία διαθέτει το δικό της (ιδιωτικό) χώρο µνήµης στον οποίο έχει πρόσβαση µόνο αυτή Το λειτουργικό σύστηµα έχει πρόσβαση στη µνήµη όλων των διεργασιών  Η αποµόνωση των διεργασιών   Εξασφαλίζει ότι µια διεργασία δεν θα έχει  πρόσβαση  στη µνήµη µιας άλλης διεργασίας  Παρέχει στοιχειώδη ασφάλεια σε ένα σύστηµα  που εξυπηρετεί πολλούς χρήστες ταυτόχρονα

10 Δύο διεργασίες Α και Β υπάρχουν σε τμήματα μνήμης
Δύο διεργασίες Α και Β υπάρχουν σε τμήματα μνήμης. Ένα μπλοκ (τμήμα) μνήμης ανατίθεται σε κάθε διεργασία. Ποια διεργασία εκτελείται αυτή τη στιγμή;

11 Κάθε τμήμα μνήμης αποτελείται από :
Το εκτελέσιμο πρόγραμμα Τα δεδομένα που απαιτούνται Το περιεχόμενο εκτέλεσης (κατάσταση διεργασίας) Ότι πληροφορία απαιτείται από το Λ.Σ. για να διαχειριστεί τη διεργασία (π.χ. προτεραιότητα) Ότι πληροφορία απαιτείται από τον επεξεργαστή για την κατάλληλη εκτέλεση της διεργασίας (π.χ. περιεχόμενο καταχωρητών: μετρητής προγράμματος, καταχωρητές δεδομένων)

12 ∆ιαµοίραση Μνήµης Παρά την αποµόνωση µεταξύ των διεργασιών, σε
∆ιαµοίραση Μνήµης Παρά την αποµόνωση µεταξύ των διεργασιών, σε πολλές περιπτώσεις υπάρχει ανάγκη για επικοινωνία µεταξύ τους  Απώτερος σκοπός είναι η συνεργασία και ο συντονισµός των διεργασιών για την επίλυση κάποιου προβλήµατος Το λειτουργικό σύστηµα υλοποιεί διάφορους µηχανισµούς διαδιεργασιακής επικοινωνίας.  Tα νήµατα εκµεταλλεύονται την ιδέα της κοινής µνήµης για να διευκολύνουν τον προγραµµατισµό

13 Νήµατα Ένα νήµα είναι µια ανεξάρτητη ακολουθία εκτέλεσης εντολών
Ένα νήµα είναι µια ανεξάρτητη ακολουθία εκτέλεσης εντολών ενός προγράµµατος εντός µιας διεργασίας Ένα νήµα συχνά καλείται ελαφριά διεργασία ∆εν είναι όµως διεργασία αλλά κάτι µικρότερο από αυτή Μια διεργασία µπορεί να δηµιουργήσει πολλαπλά νήµατα,  τα οποία εκτελούν µια συγκεκριµένη εργασια Κάθε τέτοιο νήµα έχει ξεχωριστή κατάσταση εκτέλεσης όλα µπορούν να εκτελεστούν ταυτόχρονα σε διαφορετικούς επεξεργαστές. επενεργούν στα ίδια  δεδοµένα.

14 Διαφορές Διεργασίες Είναι οντότητες που δεσμεύουν οποιονδήποτε πόρο τις αφορά όπως τον χώρο διευθύνσεων, τα δεδομένα, τον κώδικα και τα αρχεία Θεωρούνται ως heavyweight σε σχέση με τη δημιουργία, τον τερματισμό και την εναλλαγή πλαισίου Νήματα Διαμοιράζονται τον χώρο διευθύνσεων, τα δεδομένα, τον κώδικα και τα αρχεία εφόσον ανήκουν στην ίδια διεργασία Θεωρούνται ως lightweight σε σχέση με τη δημιουργία, τον τερματισμό και την εναλλαγή πλαισίου Επιβαρύνουν λιγότερο το σύστημα

15 Απλές και πολυνηματικές διεργασίες
Διεργασίες Είναι οντότητες που δεσμεύουν οποιονδήποτε πόρο τις αφορά όπως τον χώρο διευθύνσεων, τα δεδομένα, τον κώδικα και τα αρχεία Θεωρούνται ως heavyweight σε σχέση με τη δημιουργία, τον τερματισμό και την εναλλαγή πλαισίου Νήματα Διαμοιράζονται τον χώρο διευθύνσεων, τα δεδομένα, τον κώδικα και τα αρχεία εφόσον ανήκουν στην ίδια διεργασία Θεωρούνται ως lightweight σε σχέση με τη δημιουργία, τον τερματισμό και την εναλλαγή πλαισίου

16 Κοινή χρήση πόρων Σε ορισμένα Λ.Σ. συνεργαζόμενες διεργασίες μοιράζονται συχνά την ίδια περιοχή μνήμης, για εγγραφή και ανάγνωση δεδομένων. Η περιοχή αυτή μπορεί να βρίσκεται στην κύρια μνήμη ή να είναι ένα διαμοιραζόμενο αρχείο δίσκου. Παραδείγματα : μια θέση μνήμης που περιέχει μια μεταβλητή προσπελάσιμη από περισσότερες από μια διεργασίες (π.χ.σύστημα κράτησης θέσεων πτήσεων). διεκπεραιωτής ετεροχρονισμένης εκτύπωσης (spooler)

17 Τι συμβαίνει όταν μοιράζονται κοινοί πόροι;
Το Λ.Σ. πρέπει να προστατεύει έναν πόρο από την πιθανότητα «να παραποιηθεί»

18 Παράδειγμα: Ένα Σύστημα κράτησης θέσεων. Τι συμβαίνει όταν δυο χρήστες προσπαθούν να «κλείσουν» την ίδια θέση; Χειριστής 1 Χειριστής 2 τελευταία θέση στην πτήση 911

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

20 Συνεργαζόμενες διεργασίες
Οι συνεργαζόμενες διεργασίες μπορούν να επηρεάσουν ή να επηρεαστούν από την εκτέλεση μιας άλλης διεργασίας Πλεονεκτήματα από τη συνεργασία των διεργασιών Διαμοίραση πληροφοριών Αύξηση της ταχύτητας υπολογισμού Δυνατότητα τμηματοποίησης

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

22 Ανταγωνισμός Στην περίπτωση ανταγωνιζόμενων διεργασιών πρέπει να αντιμετωπιστούν τρία προβλήματα ελέγχου: Αδιέξοδο (deadlock) Παρατεταμένη στέρηση (starvation) Αμοιβαίος αποκλεισμός (mutual exclusion)

23 Αδιέξοδο (Deadlock) Μόνιμη αναστολή ενός συνόλου διεργασιών που είτε ανταγωνίζονται για ένα κοινό πόρο του συστήματος είτε επικοινωνούν μεταξύ τους Η κατάσταση κατά την οποία δύο ή περισσότερες διεργασίες δεν μπορούν να έχουν πρόσβαση στους πόρους που χρειάζονται. Παράδειγμα: Η διεργασία A απαιτεί αποκλειστική πρόσβαση στους πόρους R,S για να συνεχίσει τους υπολογισμούς της Η διεργασία B απαιτεί αποκλειστική πρόσβαση στους πόρους S,R για να συνεχίσει τους υπολογισμούς της Η διεργασία A δεσμεύει αποκλειστικά τον R και προσπαθεί να δεσμεύσει και τον S Η διεργασία B δεσμεύει αποκλειστικά τον S και προσπαθεί να δεσμεύσει και τον R Οι διεργασίες A και B έχουν εισέλθει σε αδιέξοδο!

24 Σενάριο αδιεξόδου προειδοποίηση: πιθανό αδιέξοδο

25 Απλό αδιέξοδο κατά τη χρήση πόρων
Το σύστημα βρίσκεται σε αδιέξοδο επειδή κάθε διεργασία δεσμεύει έναν πόρο που απαιτείται από την άλλη διεργασία και καμία διεργασία δεν είναι πρόθυμη να απελευθερώσει τον πόρο που δεσμεύει.

26 Παρατεταμένη στέρηση (Starvation)
Η κατάσταση στην οποία μερικές διεργασίες σημειώνουν πρόοδο οδεύοντας προς την ολοκλήρωσή τους ενώ μερικές άλλες δεν μπορούν να έχουν πρόσβαση στους πόρους τους.

27 Αμοιβαίος αποκλεισμός
Ο αμοιβαίος αποκλεισμός είναι ο αποκλεισμός μιας διεργασίας από μια ενέργεια που επιτελεί ταυτοχρόνως κάποια άλλη διεργασία. Απαιτεί μόνο μία διεργασία να πραγματοποιεί λειτουργίες σε κοινούς πόρους. Αν δύο διεργασίες προσπαθήσουν να αποκτήσουν ένα κοινό πόρο, τότε η μία θα πρέπει να αναμένει. Είναι απαραίτητος για την προστασία των κρισίμων τμημάτων των διεργασιών.

28 Παράδειγμα - 1 Απαίτηση ανάληψης 100 € Κατάθεση 100 €
Ανάγνωση τρέχοντος υπολοίπου = 500 € Νέο υπόλοιπο= = 400 Εγγραφή νέου υπολοίπου στο δίσκο = 400 € Κατάθεση 100 € Ανάγνωση τρέχοντος υπολοίπου = 500 € Νέο υπόλοιπο= = 600 Εγγραφή νέου υπολοίπου στο δίσκο = 600 € Χρονική καθυστέρηση Χρονική καθυστέρηση

29 Παράδειγμα – 1 (συνέχεια)
Κατάθεση 100 € Απαίτηση για δέσμευση του λογαριασμού Ανάγνωση υπολοίπου από το δίσκο = 500 € υπόλοιπο = = 600 Εγγραφή νέου υπολοίπου στο δίσκο = 600 € Απελευθέρωση λογαριασμού Απαίτηση ανάληψης 100 € Απαίτηση για κλείδωμα του λογαριασμού Αναμονή Δέσμευση λογαριασμού Ανάγνωση υπολοίπου = 600 Νέο υπόλοιπο = = 500 Εγγραφή νέου υπολοίπου στο δίσκο = 500 €

30 Κρίσιμα τμήματα (Critical Sections)
Μια ακολουθία εντολών μιας διεργασίας που πρέπει να εκτελείται αδιαίρετα, ονομάζεται κρίσιμο τμήμα. Η εκτέλεση του κρισίμου τμήματος θα πρέπει να είναι “όλα ή τίποτα” Δεν θα πρέπει να διακόπτεται στο μέσον

31 Αμοιβαίος αποκλεισμός
Όταν μια διεργασία εκτελεί το κρίσιμο τμήμα της (ΚΤ), σε καμιά άλλη δεν μπορεί να επιτραπεί να εκτελεί το δικό της κρίσιμο τμήμα.

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

33 5. Το πρόγραμμα δεν επιτρέπεται να καταλήξει σε αδιέξοδο
5. Το πρόγραμμα δεν επιτρέπεται να καταλήξει σε αδιέξοδο. Αν περισσότερες της μιας διεργασίες προσπαθήσουν να εισέλθουν ταυτόχρονα στις κρίσιμες περιοχές τους, τότε μόνο μια πρέπει να επιτύχει. Δεν επιτρέπεται η επ’ αόριστον αναμονή μιας διεργασίας, μέχρι να εισέλθει στο κρίσιμο τμήμα της. Στην περίπτωση έλλειψης συναγωνισμού για ταυτόχρονη είσοδο σε κρίσιμες περιοχές, μια διεργασία που επιθυμεί να εισέλθει στην κρίσιμη περιοχή της θα πρέπει να το επιτύχει με την ελάχιστη δυνατή επιβάρυνση. Μια διεργασία παραμένει μέσα στο κρίσιμο τμήμα της για ορισμένο χρονικό διάστημα.


Κατέβασμα ppt "ΔΙΕΡΓΑΣΙΕΣ."

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


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