Professional Documents
Culture Documents
Αδιέξοδα
Αδιέξοδα
ΑΔΙΕΞΟΔΑ
ΑΔΙΕΞΟΔΑ
1
ΠΟΡΟΙ
ΑΔΙΕΞΟΔΑ
2
ΑΔΙΕΞΟΔΑ
Συνθήκες Αδιεξόδου
• Για να οδηγηθούμε σε αδιέξοδο πρέπει να ικανοποιούνται
οπωσδήποτε και οι τέσσερις ακόλουθες συνθήκες:
– Συνθήκη αμοιβαίου αποκλεισμού: κάθε πόρος είτε είναι δεσμευμένος από
μία διεργασία, είτε είναι διαθέσιμος.
– Συνθήκη δέσμευσης και αναμονής: διεργασίες που δεσμεύουν πόρους που
τους εκχωρήθηκαν νωρίτερα, μπορούν να ζητούν και νέους.
– Συνθήκη μη προεκτόπισης: πόροι που έχουν εκχωρηθεί σε μια διεργασία
μπορούν να απομακρυνθούν από τον έλεγχό της, μόνον αν τους
αποδεσμεύσει αυτή.
– Συνθήκη κυκλικής αναμονής: πρέπει να υπάρχει μια κυκλική αλυσίδα
δύο ή περισσότερων διεργασιών, καθεμία από τις οποίες περιμένει έναν
πόρο που είναι δεσμευμένος από το επόμενο μέλος της αλυσίδας.
ΑΔΙΕΞΟΔΑ
Μοντελοποίηση Αδιεξόδου
– Οι αναγκαίες συνθήκες για την επίτευξη αδιεξόδου μπορούν να
μοντελοποιηθούν με χρήση κατευθυνόμενων γράφων.
3
ΑΔΙΕΞΟΔΑ
ΑΔΙΕΞΟΔΑ
4
ΑΔΙΕΞΟΔΑ
ΑΔΙΕΞΟΔΑ
5
ΑΛΓΟΡΙΘΜΟΣ ΑΓΝΟΗΣΗΣ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ
6
ΑΝΙΧΝΕΥΣΗ ΚΑΙ ΕΠΑΝΟΡΘΩΣΗ ΑΔΙΕΞΟΔΟΥ
7
ΑΝΙΧΝΕΥΣΗ ΚΑΙ ΕΠΑΝΟΡΘΩΣΗ ΑΔΙΕΞΟΔΟΥ
8
ΑΝΙΧΝΕΥΣΗ ΚΑΙ ΕΠΑΝΟΡΘΩΣΗ ΑΔΙΕΞΟΔΟΥ
– [3] Πρόσθεσε τον τρέχοντα κόμβο στο τέλος της Λ. Αν ο κόμβος εμφανίζεται
τώρα στη λίστα δύο φορές, τότε ο γράφος περιέχει έναν κύκλο που περιέχεται
στη Λ και ο αλγόριθμος τερματίζεται.
– [4] Από τον τρέχοντα κόμβο, έλεγξε αν υπάρχουν ασημάδευτα τόξα. Αν
υπάρχουν πήγαινε στο βήμα 5. Αν δεν υπάρχουν, πήγαινε στο βήμα 6.
– [5] Διάλεξε τυχαία ένα ασημάδευτο εξερχόμενο τόξο και σημάδεψέ το.
Ακολούθησέ το στο νέο τρέχοντα κόμβο και πήγαινε στο βήμα 3.
– [6] Τώρα έχουμε φτάσει σε έναν κόμβο χωρίς ασημάδευτα εξερχόμενα τόξα.
Πήγαινε πίσω στον προηγούμενο κόμβο, δηλαδή σε αυτόν που ήταν τρέχων
προηγουμένως, κάνε τον τρέχοντα και πήγαινε στο βήμα 3. Αν ο κόμβος αυτός
είναι ο αρχικός, τότε ο γράφος δεν περιέχει κύκλους και ο αλγόριθμος
τερματίζεται.
9
ΑΝΙΧΝΕΥΣΗ ΚΑΙ ΕΠΑΝΟΡΘΩΣΗ ΑΔΙΕΞΟΔΟΥ
10
ΑΝΙΧΝΕΥΣΗ ΚΑΙ ΕΠΑΝΟΡΘΩΣΗ ΑΔΙΕΞΟΔΟΥ
11
ΑΝΙΧΝΕΥΣΗ ΚΑΙ ΕΠΑΝΟΡΘΩΣΗ ΑΔΙΕΞΟΔΟΥ
12
ΑΝΙΧΝΕΥΣΗ ΚΑΙ ΕΠΑΝΟΡΘΩΣΗ ΑΔΙΕΞΟΔΟΥ
0 0
2 2 0 0
13
ΑΝΙΧΝΕΥΣΗ ΚΑΙ ΕΠΑΝΟΡΘΩΣΗ ΑΔΙΕΞΟΔΟΥ
14
ΑΝΙΧΝΕΥΣΗ ΚΑΙ ΕΠΑΝΟΡΘΩΣΗ ΑΔΙΕΞΟΔΟΥ
ΑΠΟΦΥΓΗ ΑΔΙΕΞΟΔΟΥ
• Τροχιές πόρων
• Μέχρι τώρα έχουμε υποθέσει ότι όταν μια διεργασία ζητάει κάποιους
πόρους τους ζητάει όλους μαζί.
15
ΑΠΟΦΥΓΗ ΑΔΙΕΞΟΔΟΥ
ΑΠΟΦΥΓΗ ΑΔΙΕΞΟΔΟΥ
16
ΑΠΟΦΥΓΗ ΑΔΙΕΞΟΔΟΥ
ΑΠΟΦΥΓΗ ΑΔΙΕΞΟΔΟΥ
17
ΑΠΟΦΥΓΗ ΑΔΙΕΞΟΔΟΥ
ΑΠΟΦΥΓΗ ΑΔΙΕΞΟΔΟΥ
18
ΑΠΟΦΥΓΗ ΑΔΙΕΞΟΔΟΥ
ΑΠΟΦΥΓΗ ΑΔΙΕΞΟΔΟΥ
19
ΠΡΟΛΗΨΗ ΑΔΙΕΞΟΔΟΥ
ΠΡΟΛΗΨΗ ΑΔΙΕΞΟΔΟΥ
20
ΠΡΟΛΗΨΗ ΑΔΙΕΞΟΔΟΥ
Συνθήκη μη προεκχώρησης:
προεκχώρησης: πόροι που έχουν εκχωρηθεί σε μια
διεργασία μπορούν να απομακρυνθούν από τον έλεγχό της,
της,
μόνον αν τους αποδεσμεύσει αυτή.
αυτή.
ΠΡΟΛΗΨΗ ΑΔΙΕΞΟΔΟΥ
21
ΠΡΟΛΗΨΗ ΑΔΙΕΞΟΔΟΥ
Συνθήκη Προσέγγιση
22