Αδιέξοδα. Μαρία Ι. Ανδρέου



Σχετικά έγγραφα
ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

Απαντήσεις. Απάντηση. Απάντηση

ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε:

Ανοχή απέναντι σε Σφάλµατα Fault Tolerance

Κατανεμημένες δοσοληψίες

Κατανεμημένες δοσοληψίες

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Αδιέξοδα (Deadlocks)

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1

Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Κατανεμημένες δοσοληψίες

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός

Κατανεμημένα Συστήματα με Java. Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)


Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

οµήτης παρουσίασης Marzullo και Neiger αλγόριθµος Παράδειγµα Distributed Debugging Εισαγωγικά

Αμοιβαίος αποκλεισμός

Φυσικά και λογικά ρολόγια. Κατανεμημένα Συστήματα 1

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Αιτιώδεις Σχέσεις και Χρονισµός. Παναγιώτα Φατούρου Αρχές Κατανεµηµένου Υπολογισµού

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

ΑΔΙΕΞΟΔΑ (Deadlocks) Παράδειγμα 1 Θανάσιμο αγκάλιασμα (deadly embrace)

09/04/2014 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Μάθηµα: Α ΙΕΞΟ Α. ιδάσκων: Λειτουργικά Συστήµατα Ι Αν. Καθ. Κ. Λαµπρινουδάκης Α ΙΕΞΟ Α

Λειτουργικά Συστήματα Πραγματικού Χρόνου

Εκλογήαρχηγού. Εισαγωγή Ισχυρά συνδεδεµένος γράφος ακτύλιος µίας κατεύθυνσης Τοπολογία δένδρου. Κατανεµηµένα Συστήµατα 06-1

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

ΑΔΙΕΞΟΔΑ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Κατανεμημένα Συστήματα Ι

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Επιτεύγµατα των Λ.Σ.

Ε-85: Ειδικά Θέµατα Λογισµικού

DUPLINE ON LINE ADAMSNET LTD.

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Λειτουργικά Συστήματα (Λ/Σ)

Λιβανός Γιώργος Εξάμηνο 2017Β

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Λειτουργικά Συστήματα Η/Υ

Κατανεμημένα Συστήματα

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Κεφάλαιο 5: Τοπικά ίκτυα

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1

Το μάθημα. Λειτουργικά Συστήματα Πραγματικού Χρόνου Βασικές Έννοιες 6. Ενσωματωμένα Συστήματα (embedded systems) Παραδείγματα

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

Κεφάλαιο 3: Λειτουργικά Συστήµατα

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Κεφάλαιο 3. Διδακτικοί Στόχοι

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Εντοπισμός αδιεξόδου. Κατανεμημένα Συστήματα 1

Consensus and related problems

Διάλεξη 9: Αλγόριθμοι Αμοιβαίου Αποκλεισμού με τη χρήση μεταβλητών Ανάγνωσης/Εγγραφής. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα


a. b. c. d ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Κεφάλαιο 4: Λογισμικό Συστήματος

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Μοντέλο Σύγχρονου ικτύου. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Λειτουργικά Συστήματα Πραγματικού Χρόνου

Λογισµικό (Software SW) Λειτουργικά Συστήµατα και ίκτυα

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Βασικές Δομές μοντέλων Petri Nets. C.A. Petri

Ασφαλή Συστήματα Μέθοδοι ελέγχου και εξακρίβωσης ορθής λειτουργίας

Διεργασίες (Processes)

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Λειτουργικά Συστήματα (ΗΥ222)

Ρολόγια και Συγχρονισμός

Προσπέλαση κοινών πόρων Πρωτόκολλα ελέγχου αμοιβαίου αποκλεισμού

Εισαγωγή στην Πληροφορική

Προχωρημένα Θέματα Βάσεων Δεδομένων

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Καθολικέςκαταστάσεις. Ορισµοί Κατασκευή καθολικών καταστάσεων Παθητική στρατηγική Ενεργητική στρατηγική. Κατανεµηµένα Συστήµατα 04-1

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών ΗΥ463 Συστήματα Ανάκτησης Πληροφοριών Χειμερινό Εξάμηνο

Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Χαρακτηρισµός Κατανεµηµένων Συστηµάτων

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

2.4 Κλασσικά Προβλήματα IPC

Περίληψη. Ethernet Δίκτυα Δακτυλίου, (Token Ring) Άλλα Δίκτυα Σύνδεση Τοπικών Δικτύων.

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

Συγχρονισµός: Αδιέξοδο & Παρατεταµένη Στέρηση

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Εισαγωγή στην Πληροφορική

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Χρονοπρογραμματισμός Εργαστηριακές Ασκήσεις

Δοσοληψίες. Κατανεμημένα Συστήματα

Σύστημα διασύνδεσης και. διαδικασία εισόδου-εξόδου

Τεχνολογικά Επιτεύγµατα. Πλεονεκτήµατα. Ορισµός Κατανεµηµένου Συστήµατος. Μειονεκτήµατα. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

MapReduce Εισαγωγή. MapReduce. ηµήτρης Λεβεντέας

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

Ο έλεγχος στο επίπεδο συστήµατος επικοινωνιών εξασφαλίζει ότι έχουµε µεταφορά στο δίκτυο χωρίς λάθη.

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Δοσοληψίες. Κατανεμημένα Συστήματα

Transcript:

Συγχρονισµός (Synchronization) Συγχρονισµός Ρολογιών, Τοπικά Ρολόγια, Καθολική Κατάσταση, Αµοιβαίος Αποκλεισµός, Κατανεµηµένες Συναλλαγές, Κατανεµηµένα Αδιέξοδα Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο Κύπρου

Συγχρονισµός Η επίτευξη συγχρονισµού στα ΚΣ είναι πιο πολύπλοκη διαδικασία σε σχέση µε τα κεντρικοποιηµένα συστήµατα, όπου οι πληροφορίες συλλέγονται κάπου κεντρικά και µια διεργασία έχει τον έλεγχο αυτών και τις εξετάζει και παίρνει αποφάσεις. Γενικά στα κατανεµηµένα συστήµατα οι αλγόριθµοι που χρησιµοποιούνται είναι κατανεµηµένοι και έχουν τα ακόλουθα χαρακτηριστικά: Οι πληροφορίες (που αφορούν τον αλγόριθµο) είναι διάσπαρτες σε διάφορους υπολογιστές Κάθε διεργασία λαµβάνει αποφάσεις βασισµένη ΜΟΝΟ στα δικά της ΤΟΠΙΚΑ δεδοµένα (πληροφορίες) Τυχών βλάβη σε κάποιο σηµείο του συστήµατος θα πρέπει να αποφεύγεται εν υπάρχει κανένα κοινό ρολόι ή άλλη καθολική πηγή χρόνου. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 2

Συγχρονισµός Ρολογιών (Clock Synchronization) παράδειγµα του προγράµµατος make στο unix Όταν κάθε υπολογιστής έχει το δικό του ρολόι, είναι δυνατό σε ένα γεγονός που συνέβη µετά από κάποιο άλλο γεγονός να ανατεθεί µικρότερος χρόνος. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 3

Λογικά Ρολόγια (Logical clocks) Κάθε υπολογιστής έχει ένα κύκλωµα το οποίο παρακολουθεί την πορεία του χρόνου. Αυτή η συσκευή αν και ονοµάζεται ρολόι, δεν είναι στην πραγµατικότητα ρολόι µε την γνωστή έννοια. Χρονοµέτρης (timer) είναι ένας πιο καλός όρος για το ρόλο αυτής της συσκευής. Ο χρονοµέτρης προγραµµατίζεται να προκαλεί διακοπές (interrupts) στον υπολογιστή µε κάποια συγκεκριµένη συχνότητα. Π.χ., µπορεί να προγραµµατιστεί να παράγει 60 διακοπές το δευτερόλεπτο. Κάθε διακοπή καλείται χτύπος ρολογιού (clock tick) Τι θα συµβεί αν n υπολογιστές, ο καθένας µε το δικό του ρολόι, αρχίσουν να µετρούν το χρόνο ταυτόχρονα. Μετά από λίγο θα δείχνούν όλοι την ίδια ώρα; clock skew Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 4

Λογικά Ρολόγια (Logical clocks) (2) O Lamport απέδειξε το 1978 ότι όλα τα ρολόγια µπορούν να συγχρονιστούν ώστε να παράγουν µια αναµφίβολη επίσηµη (πρότυπη) ώρα και παρουσίασε ένα αλγόριθµο που το επιτυγχάνει. O Lamport επισήµανε ότι ο συγχρονισµός των ρολογιών ΕΝ είναι απαραίτητο να είναι απόλυτος. Αν δυο διεργασίες δεν αλληλεπιδρούν, τότε τα ρολόγια τους δεν είναι απαραίτητο να είναι συγχρονισµένα. Γιατί; Αυτό που έχει συνήθως σηµασία είναι η ΣΕΙΡΑ µε την οποία δηµιουργήθηκαν τα γεγονότα και όχι ο απόλυτος χρόνος που δηµιουργήθηκαν. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 5

Λογικά Ρολόγια (Logical clocks) (3) Σε πολλές περιπτώσεις (για πολλούς αλγόριθµους) είναι αρκετό οι υπολογιστές να έχουν συµφωνήσει στην ίδια ώρα. Αυτή η ώρα ΕΝ είναι ανάγκη να είναι η ίδια µε την πραγµατική, φυσική, ώρα. Αυτό που ενδιαφέρει είναι η εσωτερική συνέπεια και όχι η απόλυτη τιµή της ώρας. Αυτή η κατάσταση ορίζει τα ΛΟΓΙΚΑ ρολόγια Όταν στα λογικά ρολόγια προστεθεί ο περιορισµός ότι αυτό όχι µόνο πρέπει να δείχνουν την ίδια ώρα αλλά πρέπει και αυτή η ώρα να µην αποκλίνει από την πραγµατική ώρα περισσότερο από ένα συγκεκριµένο ποσό, τότε τα ρολόγια καλούνται ΦΥΣΙΚΑ ρολόγια. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 6

Λογικά Ρολόγια (Logical clocks) (4) Ο Lamport για να ορίσει τα λογικά ρολόγια όρισε πρώτα την σχέση «Συνέβη-πριν» ( happens-before ). Θα συµβολίζουµε µε a bτην σχέση αυτή, θα τη διαβάζουµε σαν «το a συνέβη-πριν το b» και το νόηµα είναι ότι ΟΛΟΙ οι υπολογιστές συµφωνούν ότι το γεγονός a συνέβη πρώτο και µετά συνέβη το γεγονός b. Η σχέση «συνέβη-πριν» µπορεί να παρατηρηθεί, άµεσα, σε δυο περιπτώσεις: 1. Αν a και b είναι γεγονότα στην ίδια διεργασία, και το a συνέβη πριν το b, τότε η σχέση a bείναι Αληθής. 2. Αν a είναι το γεγονός της αποστολής ενός µηνύµατος από µια διεργασία, και b είναι το γεγονός της λήψης του µηνύµατος αυτού από µια άλλη διεργασία, τότε η σχέση a bείναι Αληθής. Γιατί; Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 7

Λογικά Ρολόγια (Logical clocks) (5) Η σχέση «συνέβη-πριν» είναι µεταβατική, δηλ., αν a bκαι b c, τότε a c υο γεγονότα a και b καλούνται ταυτόχρονα (concurrent), όταν συµβαίνουν σε διαφορετικές διεργασίες και ΕΝ ανταλλάζουν µηνύµατα (ούτε άµεσα ούτε έµµεσα). Σε τέτοια περίπτωση οι σχέσεις a bκαι b aείναι και οι ΥΟ ψευδείς. Όταν λέµε ότι δυο γεγονότα είναι ταυτόχρονα, θα εννοούµε ότι ΕΝ µπορεί να ειπωθεί τίποτα σχετικά µε το πότε συµβαίνουν ή ποιό συνέβη πρώτο. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 8

Λογικά Ρολόγια (Logical clocks) (6) Αυτό που χρειαζόµαστε είναι ένας τρόπος να µετράµε το χρόνο, έτσι ώστε για κάθε γεγονός a, να µπορούµε να αναθέτουµε µια τιµή χρόνου, ας την συµβολίσουµε C(a) και ΟΛΟΙ οι υπολογιστές πρέπει να συµφωνούν σε αυτό. Οι τιµές χρόνου που αναθέτονται στα γεγονότα πρέπει να ικανοποιούν (έχουν) τις εξής ιδιότητες: Αν a b, τότε C(a) < C(b). Ο χρόνος C πρέπει ΠΑΝΤΑ να αυξάνεται (όταν χρειάζεται να αλλάξει) αλλά ΠΟΤΕ δεν µπορεί να µειωθεί. Όταν χρειαστούν διορθώσεις αυτές θα πρέπει να γίνουν προσθέτοντας τιµές αλλά ποτέ µειώνοντας τες. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 9

Λογικά Ρολόγια (Logical clocks) (7) Τι θα συµβεί αν δυο γεγονότα παραχθούν την ίδια στιγµή; Πως θα µπορούσαµε να ξεπεράσουµε αυτό το πρόβληµα; Όλα τα γεγονότα σε ένα ΚΣ θα πρέπει να ικανοποιούν τις εξής συνθήκες: 1. Αν το a συµβεί πριν το b θα πρέπει C(a) < C(b) 2. Αν τα a και b αναπαριστούν την αποστολή και λήψη ενός ενός µηνύµατος, τότε C(a) < C(b) 3. Για όλα τα γεγονότα C(a) C(b) Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 10

παράδειγµα Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 11

Φυσικά Ρολόγια (Physical Clocks) Σε συστήµατα πραγµατικού χρόνου (real time systems) ο πραγµατικός χρόνος (actual clock time) είναι απαραίτητος. Σε τέτοια συστήµατα είναι απαραίτητο να υπάρχουν εξωτερικά φυσικά ρολόγια Για λόγους αποδοτικότητας είναι επιθυµητό να υπάρχουν πολλά φυσικά ρολόγια. Το γεγονός αυτό όµως δηµιουργεί τα δυο προβλήµατα που ακολουθούν: 1. Πως να τα συγχρονίσουµε µε τα ρολόγια του πραγµατικού κόσµου 2. Πως να τα συγχρονίσουµε µεταξύ τους. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 12

Physical Clocks (1) Computation of the mean solar day. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 13

Physical Clocks (2) Τα TAI δευτερόλεπτα είναι σταθερού µήκους, σε αντίθεση µε τα solar δευτερόλεπτα. Εισάγονται Leap seconds όταν είναι απαραίτητο για να διατηρείται σε επαφή µε τον ήλιο. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 14

Φυσικά Ρολόγια (Physical Clocks) (2) Το ινστιτούτο National institute of standard time (NIST) λειτουργεί ένα σταθµό µικρού µήκους ραδιοκυµάτων ο οποίος καλείται WWV για να εξυπηρετήσει όσους θέλουν ακριβή ώρα. WWV εκπέµπει ένα σύντοµο παλµό στην αρχή κάθε UTC δευτερόλεπτου. Η ακρίβια του WWV είναι από µόνη της ±1 msec. Λόγω ατµοσφαιρικών διακυµάνσεων στην πράξη δεν είναι καλύτερη από ±10 msec Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 15

Αλγόριθµος Συγχρονισµού Ρολογιών Αν κάποιος µηχανισµός µπορεί να λαµβάνει σήµα από το WWV ο στόχος είναι όλα τα άλλα ρολόγια να είναι συγχρονισµένα σε αυτόν. Αν κανένας δεν µπορεί να λαµβάνει σήµα από το WWV, τότε καθένας διατηρεί τη δική του ώρα, και ο στόχος είναι διατηρήσουµε όλες τις µηχανές συγχρονισµένες όσο καλύτερα γίνεται. Κάθε µηχανή θεωρούµε ότι έχει ένα χρονοµέτρη που προκαλεί H διακοπές το δευτερόλεπτο. Σε κάθε διακοπή ο χρόνος αυξάνεται (από το λογισµικό) κατά ένα. Ας συµβολίσουµε το χρόνο που δείχνει το ρολόι µε C. Όταν ο UTC χρόνος είναι t η τιµή του ρολογιού στην µηχανή p είναι C p (t). Στον τέλειο κόσµο C p (t) = t για όλες τις µηχανές p και για κάθε χρόνο t. ηλ., dc/dt = 1 Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 16

Αλγόριθµος Συγχρονισµού Ρολογιών (2) Στην πραγµατικότητα οι χρονοµέτρες δεν προκαλούν διακοπές ακριβώς H φορές το δευτερόλεπτο. Θα λέµε ότι ένας χρονοµέτρης είναι εντός των προδιαγραφών του αν υπάρχει σταθερά ρ τ.ω. 1- ρ dc/dt 1+ ρ Η σταθερά ρ δίνεται από τον κατασκευαστή και είναι γνωστή σαν µέγιστος ποσοστό µετακίνησης (maximum drift rate) Όταν οι σχεδιαστές λειτουργικών συστηµάτων θέλουν δυο ρολόγια να µην διαφέρει η ώρα τους περισσότερο από δ,τότε πρέπει να επανασυχρονόζονται κάθε δ/2ρ δευτερόλεπτα. Υπάρχουν διάφοροι αλγόριθµοι για αυτό το σκοπό οι οποίοι διαφέρουν στον τρόπο που επιτυγχάνουν τον επανασυχρονισµό Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 17

Αλγόριθµος Συγχρονισµού Ρολογιών (3) The relation between clock time and UTC when clocks tick at different rates. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 18

Ο αλγόριθµος του Cristian Ο αλγόριθµος του Cristian µπορεί να χρησιµοποιηθεί για συγχρονισµό ρολογιών, όταν µια µηχανή µπορεί να λαµβάνει σήµα από το WWV. Αυτή καλείται εξυπηρέτης χρόνου (time server) (TS). Περιοδικά, σε διάστηµα χρόνου όχι περισσότερο από δ/2ρ δευτερόλεπτα, κάθε µηχανή στέλνει ένα µήνυµα στον TS και του ζητά την τρέχων ώρα. Ο TS απαντά όσο πιο γρήγορα µπορεί µε ένα µήνυµα στο οποίο περιλαµβάνει την δική του τρέχων ώρα, C UTC. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 19

Ο αλγόριθµος του Cristian (2) Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 20

Ο αλγόριθµος του Cristian (3) Όταν η µηχανή που έστειλε ένα µήνυµα λάβει απάντηση, µπορεί να θέσει την ώρα της ίση µε C UTC. Αυτή η λύση έχει ΥΟ προβλήµατα. Ποια είναι; Τρόποι βελτίωση της ακρίβειας του αλγόριθµου του Cristian Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 21

The Berkeley Algorithm a) ένας time daemon ρώτά όλες τις µηχανές για τις τιµές των ρολογιών τους. b) Οι µηχανές απαντούν c) Ο time daemon λέει σε όλους πως να προσαρµόσουν την ώρα τους Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 22

Mutual Exclusion: ποιο είναι αυτό το πρόβληµα;;;;; ένας γενικευµένος αλγόριθµος a) Η διεργασία 1 ζητά από τον συντονιστή να της δώσει τη άδεια να µπει στο κρίσιµο τµήµα (critical region) (CR). H άδεια δίνεται b) Η διεργασία 2 ζητά από τον συντονιστή να της δώσει τη άδεια να µπει στο ίδιο CR. Ο συντονιστής δεν απαντά. c) Όταν η διεργασία 1 βγει από το CR ενηµερώνει τον συντονιστή ο οποίος µε την σειρά του απαντά στη διεργασία 2 Μειονεκτήµατα του αλγόριθµου αυτού;;;;; Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 23

Ένας κατανεµηµένος αλγόριθµος για το πρόβληµα του αµοιβαίου αποκλεισµού a) υο διεργασίες θέλουν να µπουν στο ΚΤ την ίδια στιγµή. b) Η διεργασία 0 έχει το µικρότερο timestamp, και είναι αυτή που έχει προτεραιότητα να µπει στο ΤΚ, όπως και γίνεται. c) Όταν η διεργασία 0 τελειώσει, στέλνει ένα µήνυµα OK. Τότε η 2 µπορεί να µπει στο ΚΤ. Μειονεκτήµατα του αλγόριθµου αυτού; Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 24

Ο αλγόριθµος Toke Ring a) Έστω µια µη διατεταγµένη σειρά από διεργασίες σε ένα δίκτυο. Αυτές οι διεργασίες πρέπει να είναι ενωµένες σε ένα bus. b) Κατασκευή ενός λογικού δακτυλίου µε τις διεργασίες αυτές. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 25

Σύγκριση των τριών αλγορίθµων Algorithm Messages per entry/exit Delay before entry (in message times) Problems Centralized 3 2 Coordinator crash Distributed 2 ( n 1 ) 2 ( n 1 ) Crash of any process Token ring 1 to 0 to n 1 Lost token, process crash Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 26

Ατοµικές Συναλλαγές (atomic transaction) Ατοµικές Συναλλαγές χρησιµοποιούνται στα ΚΣ σαν µια αφηρηµένη, ψηλού επιπέδου, τεχνική για της επίτευξη συγχρονισµού. Η τεχνική αυτή βοηθά τον προγραµµατιστή και του επιτρέπει να εστιάσει την προσοχή του στον αλγόριθµο που υλοποιεί και στον τρόπο που οι διεργασίες θα επικοινωνούν µεταξύ τους και όχι σε θέµατα συγχρονισµού χαµηλού επιπέδου, όπως η χρήση σηµαφόρων για την σωστή επίλυση του προβλήµατος του αµοιβαίου αποκλεισµού και θέµατα διαχείρισης της κρίσιµης περιοχής. Οι συναλλαγές έχουν το χαρακτηριστικό ότι είτε θα εκτελεστούν µε επιτυχία και οι αλλαγές που έχουν προκαλέσει θα είναι µόνιµες, ή αν αποτύχουν για οποιοδήποτε λόγο το σύστηµα θα πρέπει να µπορεί να επανέλθει στην κατάσταση που βρισκόταν πριν την έναρξη της συναλλαγής. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 27

Το Μοντέλο Συναλλαγών (The Transaction Model) (1) Αρχικό µοντέλο (1960) (πριν από την ύπαρξη on line βάσεων δεδοµένων) Η ενηµέρωση µιας master tape έχει ευρωστία/ αντέχει σε περίπτωση σφαλµάτων. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 28

Το Μοντέλο Συναλλαγών (2) Στη συνέχεια θα παρουσιάσουµε πιο συγκεκριµένα τι ορίζει µιαν ατοµική συναλλαγή και ποια τα χαρακτηριστικά της σε σύγχρονα ΚΣ. Σε ένα ΚΣ θεωρούµαι ότι υπάρχουν πολλές ανεξάρτητες διεργασίες, η κάθε µια από τις οποίες µπορεί να αποτύχει µε τυχαία και ανεξάρτητα η µια από την άλλη. Η επικοινωνία µεταξύ αυτών των διεργασιών για να είναι αξιόπιστη θα πρέπει να υποστηρίζεται από χαµηλού επιπέδου πρωτόκολλα, τα οποία θα παρέχουν ευρωστία έναντι χαµένων µηνυµάτων. Π.χ., µε την επανεκποµπή µηνυµάτων Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 29

Το Μοντέλο Συναλλαγών (3) Παράδειγµα: Μόνιµη Αποθήκευση (stable storage) Σε ένα υπολογιστή υπάρχουν τρια επίπεδα αποθήκευσης: RAM ίσκος Μόνιµη αποθήκευση Ένας τρόπος επίτευξης µόνιµης αποθήκευσης είναι µε την χρήση δυο δίσκων. Κάθε block του δεύτερου δίσκου είναι ένα πιστό αντίγραφο του αντίστοιχου block στον πρώτο δίσκο. Όταν γίνει κάποια αλλαγή στα δεδοµένα που είναι αποθηκευµένα σε αυτούς του δυο δίσκους, τότε η αλλαγή γίνεται και επαληθεύεται στον πρώτο δίσκο και έπειτα οι αλλαγές αυτές γίνονται στον δεύτερο δίσκο. Τι θα συµβεί αν προκύψει κάποιο πρόβληµα κατά την διάρκεια µιας συναλλαγής η οποία είναι υπεύθυνη για την τροποποίηση δεδοµένων; Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 30

Το Μοντέλο Συναλλαγών (4) Προγράµµατα τα οποία υποστηρίζουν συναλλαγές θα πρέπει να υποστηρίζουν τουλάχιστον τις πιο κάτω πρωτογενείς λειτουργίες (primitives). Αυτές θα πρέπει να παρέχονται είτε από το λειτουργικό Σύστηµα είτε από την γλώσσα προγραµµατισµού. Primitive BEGIN_TRANSACTION END_TRANSACTION ABORT_TRANSACTION READ Description Make the start of a transaction Terminate the transaction and try to commit Kill the transaction and restore the old values Read data from a file, a table, or otherwise WRITE Write data to a file, a table, or otherwise Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 31

Παράδειγµα κράτησης αεροπορικών θέσεων Το Μοντέλο Συναλλαγών (5) BEGIN_TRANSACTION reserve WP -> JFK; reserve JFK -> Nairobi; reserve Nairobi -> Malindi; END_TRANSACTION (a) BEGIN_TRANSACTION reserve WP -> JFK; reserve JFK -> Nairobi; reserve Nairobi -> Malindi full => ABORT_TRANSACTION (b) a) Σε µια συναλλαγή θα πρέπει να γίνει κράτηση και των τριών θέσεων. Μια τέτοια συναλλαγή έχει γίνει commits b) Η συναλλαγή µαταιώνεται (aborts) λόγο του ότι η τρίτη πτήση είναι πλήρης Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 32

Ιδιότητες Συναλλαγών Οι συναλλαγές έχουν τέσσερις βασικές ιδιότητες (τις οποίες πρέπει να ικανοποιούν) 1. Ατοµική (atomic): για τον έξω κόσµο µια συναλλαγή συµβαίνει αδιαίρετη 2. Συνεπής (consistent): η συναλλαγή δεν παραβιάζει τις αρχές (τις αµετάβλητες θεωρήσεις) τις οποίες υποστηρίζει κάθε σύστηµα. Πέστε ένα παράδειγµα. 3. Αποµονωµένη (isolate): διεργασίες οι οποίες εκτελούνται ταυτόχρονα ΕΝ παρεµποδίζει η µια την άλλη. 4. Σταθερή (durable): όταν µια συναλλαγή τελειώσει µε επιτυχία, τότε τα αποτελέσµατα τις είναι µόνηµα. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 33

Κατανεµηµένες Συναλλαγές (Distributed Transactions) a) A nested transaction b) A distributed transaction Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 34

Τρόποι Υλοποίησης Συναλλαγών Προσωπικός χώρος εργασίας (Private Workspace) a) το file index και τα blocks του δίσκου για τα τρία αρχεία b) Η κατάσταση που δηµιουργείται µετά την τροποποίηση του block 0 και την προσθήκη του block 3 από µια συναλλαγή c) Η κατάσταση µετά το πέρας της συναλλαγής (committing) Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 35

Τρόποι Υλοποίησης Συναλλαγών (2) Writeahead Log x = 0; Log Log Log y = 0; BEGIN_TRANSACTION; x = x + 1; [x = 0 / 1] [x = 0 / 1] [x = 0 / 1] y = y + 2 [y = 0/2] [y = 0/2] x = y * y; [x = 1/4] END_TRANSACTION; (a) (b) (c) (d) a) Μια συναλλαγή b) d) το log πριν την εκτέλεση κάθε βήµατος της συναλλαγής Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 36

Τρόποι Υλοποίησης Συναλλαγών (3) υο-φάσεων commit protocol (two-phase commit protocol) Έστω ότι υπάρχουν περισσότερες από µια διεργασίες σε ένα ΚΣ οι οποίες µπορεί να χρησιµοποιούν κοινούς πόρους του συστήµατος. Μια από αυτές παίζει το ρόλο του συντονιστή (coordinator) και συνήθως είναι αυτή που εκτελεί τη συναλλαγή. Το commit protocol ξεκινά όταν ο συντονιστής εγγράψει την πρόθεση του για να αρχίσει το commit σε ένα log και την αποστείλει σε όλες τις επηρεαζόµενες διεργασίες (subordinate) και τους λέει να ετοιµαστούν για το commit. Όταν οι επηρεαζόµενες διεργασίες λάβουν το µήνυµα κάνουν έλεγχο να δουν αν είναι έτοιµες για το commit και κάνουν εγγραφή στο Log και ενηµερώνουν ξανά µέσω µηνύµατος το συντονιστή. Όταν ο συντονιστής λάβει όλα τα µηνύµατα είναι σε θέση να αποφασίσει κατά πόσο θα προχωρήσει µε το commit ή θα µαταιώσει τη συναλλαγή. Το πρωτόκολλο αυτό µπορεί να παραµείνει σταθερό ακόµα και αν στις διεργασίες προκύψουν πολλαπλά σφάλµατα Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 37

Έλεγχος Ταυτόχρονης Εκτέλεσης Συναλλαγών Concurrency Control Γενική µορφή οργάνωσης της διαχείρισης συναλλαγών. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 38

Έλεγχος Ταυτόχρονης Εκτέλεσης Συναλλαγών (2) Γενική µορφή οργάνωσης των διαχειριστών συναλλαγών. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 39

Serializability BEGIN_TRANSACTION x = 0; x = x + 1; END_TRANSACTION (a) BEGIN_TRANSACTION x = 0; x = x + 2; END_TRANSACTION (b) BEGIN_TRANSACTION x = 0; x = x + 3; END_TRANSACTION (c) Schedule 1 Schedule 2 Schedule 3 x = 0; x = x + 1; x = 0; x = x + 2; x = 0; x = x + 3 x = 0; x = 0; x = x + 1; x = x + 2; x = 0; x = x + 3; x = 0; x = 0; x = x + 1; x = 0; x = x + 2; x = x + 3; Legal Legal Illegal (d) a) c) τρις συναλλαγές T 1, T 2, και T 3 d) πιθανοί χρονοπρογραµµατισµοί Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 40

Κλείδωµα δυο φάσεων Two-Phase Locking Κλείδωµα σε δυο φάσεις (Two-phase locking). Είναι πιθανό να οδηγηθεί το σύστηµα σε αδιέξοδο; Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 41

Κλείδωµα δυο φάσεων (2) Strict two-phase locking. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 42

Optimistic Concurrency Control Σε αυτή τη προσέγγιση κάθε διεργασία αρχίζει τις συναλλαγές τις και κάνει αυτό που θέλει. όταν είναι έτοιµη για commit ρωτά τις άλλες διεργασίες αν µπορεί να προχωρήσει µε το commit. Αν ναι τότε τερµατίζει τη συναλλαγή µε επιτυχία. Αν όχι µαταιώνει τη συναλλαγή. Είναι αυτή η µέθοδος συγχρονισµού απαλλαγµένη από αδιέξοδα; Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 43

Pessimistic Timestamp Ordering Concurrency control using timestamps. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 44

Συναλλαγές Οι συναλλαγές είναι µια υποσχόµενη τεχνική συγχρονισµού διεργασιών για τη δηµιουργία αξιόπιστων ΚΣ. ΟΜΩΣ Έχει υψηλό κόστος υλοποίησης Μειώνει την απόδοση του συστήµατος Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 45

Αδιέξοδα στα κατανεµηµένα συστήµατα deadlocks in Distributed Systems Τα αδιέξοδα στα ΚΣ είναι παρόµοια, αν και δυσκολότερη η µελέτη τους, µε αυτά στην περίπτωση των συστηµάτων ενός επεξεργαστή. Είναι δυσκολότερο να: αποφύγουµε (avoid) αδιέξοδα σε ΚΣ προβλέψουµε (prevent) αδιέξοδα σε ΚΣ εντοπίσουµε (detect) και διορθώσουµε αδιέξοδα σε ΚΣ Μερικές διαφορές των αδιεξόδων στα ΚΣ από αυτά στα συστήµατα ενός επεξεργαστή είναι: Η πληροφορίες και τα δεδοµένα που χρησιµοποιούν διεργασίες οι οποίες εµπλέκονται σε αδιέξοδα µπορεί να βρίσκονται σε διαφορετικούς υπολογιστές (π.χ., κατανεµηµένες βάσεις δεδοµένων) Μπορεί να δηµιουργηθεί αδιέξοδο λόγο προβληµάτων στην επικοινωνία. Π.χ., καθυστέρηση λήψης µηνύµατος ή ταυτόχρονη εκποµπή µηνυµάτων Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 46

Τεχνικές διαχείρισης αδιεξόδων Υπάρχουν τέσσερις πολύ γνωστές τεχνικές διαχείρισης αδιεξόδων (όπως και στα συστήµατα ενός επεξεργαστή) Ο αλγόριθµος του Στρουθοκαµήλου Αγνόησε το πρόβληµα Ανίχνευση και ιόρθωση Επιτρέπει την περίπτωση δηµιουργίας αδιεξόδων. Όταν ανιχνευτεί κάποιο αδιέξοδο γίνονται προσπάθειες διόρθωσης του Πρόληψη Εξασφαλίζει ότι δεν είναι δυνατό να δηµιουργηθεί αδιέξοδο Αποφυγή Παρέχει προσεκτική ανάθεση πόρων, έτσι ώστε να αποφεύγεται η δηµιουργία αδιεξόδου Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 47

Ανίχνευση και διόρθωση κατανεµηµένων αδιεξόδων Τι συµβαίνει στην περίπτωση ανίχνευσης αδιεξόδου στην περίπτωση των συστηµάτων µε ένα επεξεργαστή; Τι πιστεύεται ότι θα συµβεί στην περίπτωση ανίχνευσης αδιεξόδου σε ΚΣ; Η χρήση ή όχι συναλλαγών παίζει κάποιο ρόλο στην προσπάθεια διόρθωση αδιεξόδων στα ΚΣ; Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 48

Ανίχνευση και διόρθωση κατανεµηµένων αδιεξόδων Κεντρικοποιηµένη µέθοδος Ας προσπαθήσαµε να µιµηθούµε ένα αλγόριθµο ανίχνευσης και διόρθωσης αδιεξόδων των συστηµάτων µε ένα επεξεργαστή. Κάθε µηχανή διατηρεί το γράφηµα πόρων-διεργασιών για τις δικές της διεργασίες και πόρους. Ένας κεντρικός συντονιστής διατηρεί το γράφηµα πόρων-διεργασιών ολόκληρου του συστήµατος (δηλ., την ένωση των γραφηµάτων όλων των µηχανών του συστήµατος) Όταν ο συντονιστής ανιχνεύσει κύκλο, τότε σκοτώνει µια από τις διεργασίες που λαµβάνουν µέρος στο αδιέξοδο. Όταν υπάρχει αίτηση για δέσµευση ή αποδέσµευση πόρων οι οποίοι βρίσκονται σε αποµακρυσµένες µηχανές, αυτό θα επιτευχθεί µε την αποστολή µηνυµάτων στο συντονιστή. Επίσης στην περίπτωση δέσµευσης και αποδέσµευσης πόρων σε κάποια µηχανή (τοπικά) θα πρέπει αυτές οι αλλαγές να γνωστοποιούνται στον συντονιστή. Είναι δυνατό αυτή η επικοινωνία µεταξύ των µηχανών και του συντονιστή να οδηγήσει σε αδιέξοδο; Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 49

Ανίχνευση και διόρθωση κατανεµηµένων αδιεξόδων Κεντρικοποιηµένη µέθοδος-παράδειγµα FALSE Deadlock (2) Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 50

Ανίχνευση και διόρθωση κατανεµηµένων αδιεξόδων Κατανεµηµένη µέθοδος Ο αλγόριθµος των Chandy-Misra-Haas. Ο αλγόριθµος αυτός καλείται από κάθε διεργασία η οποία πρέπει να περιµένει για κάποιο πόρο. Έστω x µια τέτοια διεργασία. Η διεργασία x θα πρέπει να στείλει ένα ιδικό (special) µήνυµα probe (διερεύνησης) στην διεργασία η οποία κρατά τον πόρο, που ζητά τώρα η x. Το µήνυµα αυτό είναι µια τριάδα της µορφής (x id, s, y), s είναι η διεργασία που στέλνει το µήνυµα, x είναι η διεργασία που µπλοκαρίστηκε και y είναι η διεργασία που κρατά τον πόρο που ζητά η διεργασία s. Όταν µια διεργασία λάβει ένα probe µήνυµα, τότε ελέγχει αν η ίδια περιµένει για κάποιο πόρο. Αν ναι ανανεώνει το µήνυµα και το στέλνει στην διεργασία που την µπλόκαρε. Αν µια διεργασία έχει µπλοκαριστεί από πολλές άλλες διεργασίες, τότε θα αποστείλει σε όλες το κατάλληλο µήνυµα (γιατί δεν στέλνει σε όλες το ίδιο µήνυµα;) Αν το µήνυµα επιστρέψει στην διαδικασία που έστειλε πρώτη το µήνυµα, τότε υπάρχει κύκλος και στο σύστηµα υπάρχει αδιέξοδο. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 51

Ανίχνευση και διόρθωση κατανεµηµένων αδιεξόδων Κατανεµηµένη µέθοδος-παράδειγµα (2) Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 52

Ανίχνευση και διόρθωση κατανεµηµένων αδιεξόδων Κατανεµηµένη µέθοδος (3) εδοµένου ότι ανιχνεύτηκε αδιέξοδο, πως θα µπορούσαµε να το διορθώσουµε: Η διεργασία που κάλεσε τον αλγόριθµο Chandy-Misra- Haas θα µπορούσε να αυτοκτονήσει. Ποιο είναι το πρόβληµα σε αυτή τη περίπτωση; Μπορείτε να προτείνετε κάποιο τρόπο έτσι ώστε να λύσετε το πιο πάνω πρόβληµα; Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 53

Πρόληψη Κατανεµηµένου Αδιεξόδου Distributed Deadlock Prevention Αναφέρετε µερικές τεχνικές πρόληψης αδιεξόδου σε συστήµατα µε ένα επεξεργαστή. Σε ΚΣ θα δούµε τεχνικές πρόληψης αδιεξόδου οι οποίες στηρίζονται σε ατοµικές συναλλαγές και timestamps. Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 54

Πρόληψη Κατανεµηµένου Αδιεξόδου Distributed Deadlock Prevention (2) Αν έχουν ανατεθεί διακριτοί χρόνοι σε όλες τις συναλλαγές/διεργασίες τότε µια διεργασία θα µπλοκαριστεί (θα µπει σε κατάσταση wait) αν η διεργασία η οποία έχει δεσµευµένο το πόρο που ζητά είναι µεγαλύτερη από την ίδια (δηλ., έχει µικρότερο timestamp). Γιατί η µέθοδος αυτή µας εξασφαλίζει ότι δεν θα συµβεί αδιέξοδο στο σύστηµα; Μαρία Ι. Ανδρέου Κατανεµηµένα Συστήµατα 55