Αλγόριθμοι Κατανεμημένων Συστημάτων

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Αλγόριθμοι Κατανεμημένων Συστημάτων"

Transcript

1 Αλγόριθμοι Κατανεμημένων Συστημάτων Κωνσταντίνος Αντωνής 2010

2 Περιεχόμενα Εργαλεία Πολυπλοκότητας Ο συγχρονισμός στα κατανεμημένα συστήματα Το πρόβλημα της εκλογής αρχηγού Αμοιβαίος Αποκλεισμός Δρομολόγηση Έλεγχος τερματισμού Ανθεκτικότητα σε λάθη - Σταθεροποίηση Σελίδα 2

3 Εργαλεία Πολυπλοκότητας Τ(n) Ο(f (n)), αν υπάρχουν σταθερές c και n 0 ώστε Τ(n) c*f(n), για κάθε n n 0 Τ(n) Ω(g(n)), αν υπάρχουν σταθερές c και n 0 ώστε Τ(n) c*g(n), για κάθε n n 0 Τ(n) Θ(h(n)), αν Τ(n) Ο(h(n)) και Τ(n) Ω(h(n)) Σελίδα 3

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

5 Λογικά Ρολόγια Lamport L. Lamport, Time, Clocks and the Ordering of Events in a Distributed System, Communications of the ACM, vol. 21, pp , Αν δύο διεργασίες δεν αλληλεπιδρούν δεν είναι απαραίτητο να συγχρονιστούν, διότι η έλλειψη συγχρονισμού δεν θα δημιουργήσει πρόβλημα Σημασία δεν έχει η συμφωνία για την ώρα, αλλά η χρονική σειρά με την οποία λαμβάνουν χώρα τα γεγονότα. Σελίδα 5

6 Λογικά Ρολόγια Lamport Η σχέση «συνέβη πριν» Η σχέση «συνέβη πριν» ορίζεται ως εξής: Εάν α και β είναι γεγονότα που συμβαίνουν στην ίδια διεργασία και το α συμβαίνει πριν το β, τότε α β Εάν α είναι ένα γεγονός αποστολής μηνύματος από μία διεργασία και β είναι το γεγονός της παραλαβής του αντίστοιχου μηνύματος από άλλη διεργασία, τότε α β Η σχέση «συνέβη πριν» είναι μεταβατική Ταυτόχρονα είναι δύο γεγονότα α και β όταν ανήκουν σε διαφορετικές διεργασίες που δεν ανταλλάσσουν μηνύματα (ούτε μέσω τρίτων), και άρα δεν ισχύει α β ούτε β α Σελίδα 6

7 Λογικά Ρολόγια Lamport - Επεκτάσεις Ανάμεσα σε δύο συμβάντα που συμβαίνουν σε μια διεργασία το ρολόι πρέπει να χτυπήσει τουλάχιστον μια φορά Αν δεν θέλουμε να υπάρχουν συμβάντα στο σύστημα που να συμβαίνουν την ίδια χρονική στιγμή, τότε μπορούμε να κατατάξουμε τις διεργασίες με βάση τον αύξοντα αριθμό τους σε υψηλής τάξης και χαμηλής τάξης. Σελίδα 7

8 Λογικά Ρολόγια Lamport Ένα παράδειγμα Α Α Β Γ Β Γ Δ Δ Σελίδα 8

9 Κατανεμημένος Αλγόριθμος (Distributed Algorithm) Η συμπεριφορά ενός κατανεμημένου συστήματος προσδιορίζεται από έναν κατανεμημένο αλγόριθμο έναν ορισμό των βημάτων που εκτελεί κάθε διεργασία που συμμετέχει στο σύστημα καθώς και τα μηνύματα που ανταλλάσσονται μεταξύ των διεργασιών Το ρυθμό με τον οποίο εξελίσσεται μια διεργασία και το χρονισμό της μετάδοσης μηνυμάτων μεταξύ τους δεν μπορούμε να τον προβλέψουμε! Επίσης δεν είναι εύκολο να περιγράψουμε κάθε φορά την κατάσταση του αλγορίθμου, λόγω αστοχιών διεργασιών και/ή μηνυμάτων Σελίδα 9

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

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

12 Συγχρονιστές Πρωτόκολλα που προσομοιώνουν ένα ιδεατό σύγχρονο περιβάλλον πάνω από ένα ασύγχρονο δίκτυο Πρόκειται για ένα ασύγχρονο κατανεμημένο πρωτόκολλο που τρέχει στο ασύγχρονο σύστημα παράλληλα με ένα σύγχρονο αλγόριθμο του οποίου η εκτέλεση είναι ο τελικός στόχος Κάθε κόμβος θα πρέπει στο πέρας του βήματος i του σύγχρονου αλγόριθμου να μην προχωρά στον επόμενο χτύπο ρολογιού αν δεν έχει λάβει όλα τα αποτελέσματα του βήματος i των γειτόνων του Σελίδα 12

13 Ο συγχρονιστής α του Awerbuch Ένας κόμβος είναι ασφαλής ως προς ένα συγκεκριμένο παλμό αν κάθε μήνυμα που έχει στείλει στον παλμό αυτό έχει φτάσει στον προορισμό του. Η αναγνώριση γίνεται με αποστολή μηνύματος ack από τους γείτονες Κάθε κόμβος όταν μαθαίνει ότι είναι ασφαλής το αναφέρει σε όλους τους γείτονές του με μηνύματα Όταν ένας κόμβος μάθει πως όλοι οι γείτονές του είναι ασφαλείς προχωρά στο επόμενο βήμα Είναι αποδοτικός ως προς το χρόνο, αλλά όχι ως προς τα μηνύματα Σελίδα 13

14 Ο συγχρονιστής α του Awerbuch: ανάλυση πολυπλοκότητας Έστω ότι V είναι ο πληθάριθμος του συνόλου των κορυφών (κόμβων) στο γράφο, και Ε ο πληθάριθμος του αντίστοιχου συνόλου των ακμών Από κάθε ακμή περνάνε ακριβώς δύο μηνύματα (ένα προς κάθε κατεύθυνση) ανά παλμό. Άρα σε κάθε παλμό έχουμε 2Ε μηνύματα, δηλαδή Ο(Ε) μηνύματα ανά παλμό ρολογιού Κάθε γράφος V κόμβων έχει το πολύ V(V-1)/2 ακμές (πλήρης γράφος), άρα έχουμε Ο(V 2 ) μηνύματα Οι καθυστερήσεις των μηνυμάτων είναι 1 χρονική μονάδα. Αφού οι επικοινωνίες σε κάθε παλμό γίνονται μεταξύ γειτονικών κόμβων, κάθε κόμβος σε σταθερό χρόνο καταλαβαίνει ότι είναι ασφαλής. Άρα για κάθε παλμό έχουμε χρόνο Ο(1) Σελίδα 14

15 Ο συγχρονιστής β του Awerbuch Απαιτείται μια αρχική φάση κατά την οποία εκλέγεται ένας αρχηγός στο δίκτυο και κατασκευάζεται ένα γεννητικό δέντρο με ρίζα τον κόμβο αρχηγό Ο αρχηγός δίνει το σήμα ενεργοποίησης του επόμενου βήματος μέσω του δέντρου Μόλις ένας κόμβος γνωρίζει ότι ο ίδιος είναι ασφαλής και το ίδιο συμβαίνει για όλα τα παιδιά του στο δέντρο, το αναφέρει στον πατέρα του Είναι αποδοτικός σε μηνύματα, αλλά όχι σε χρόνο Σελίδα 15

16 Ο συγχρονιστής β του Awerbuch: ανάλυση πολυπλοκότητας Το γεννητικό δένδρο που κατασκευάζεται έχει V-1 ακμές. Σε κάθε παλμό έχουμε 2 μηνύματα ανά ακμή Άρα κινούνται Ο(V) μηνύματα ανά παλμό στη χειρότερη περίπτωση Ο χρόνος που απαιτείται εξαρτάται από το ύψος του δένδρου Το ύψος του δένδρου είναι το πολύ V-1, άρα στη χειρότερη περίπτωση έχουμε Ο(V) χρονικές μονάδες Σελίδα 16

17 Ο συγχρονιστής γ του Awerbuch Είναι συνδυασμός των α και β συγχρονιστών Το σύνολο των κόμβων χωρίζεται σε ξένα μεταξύ τους υποσύνολα (clusters). Σε κάθε cluster εκλέγεται ένας αρχηγός και δημιουργείται ένα γεννητικό δέντρο με ρίζα τον αρχηγό Για κάθε δύο γειτονικά clusters επιλέγεται ένα link διασύνδεσης (preferred link) Στην πρώτη φάση του γ εκτελείται σε κάθε cluster ο αλγόριθμος β Στη δεύτερη φάση του αλγορίθμου οι κόμβοι ενός cluster περιμένουν μέχρι να καταστούν ασφαλείς όλοι οι γειτονικοί clusters (αλγόριθμος α) Όταν όλοι οι γειτονικοί ενός cluster καταστούν ασφαλείς τότε ενεργοποιείται ο επόμενος παλμός Σελίδα 17

18 Ο συγχρονιστής γ του Awerbuch Τύποι μηνυμάτων που ανταλλάσσονται: PULSE: ενεργοποιεί ένα νέο παλμό στους κόμβους ενός cluster SAFE: ένας κόμβος δηλώνει ότι είναι ασφαλής CLUSTER_SAFE: δηλώνει ότι όλος ο cluster είναι ασφαλής (διαδίδεται σε όλο το cluster και στα γειτονικά clusters μέσω των preferred links) READY: δηλώνει ότι ένας κόμβος είναι έτοιμος για τον επόμενο παλμό (διαδίδεται από τα φύλλα προς τον αρχηγό σε ένα cluster όταν ο κόμβος έχει λάβει όλα τα απαραίτητα μηνύματα READY από τα παιδιά του και όλα τα απαραίτητα CLUSTER_SAFE από τα preferred links που καταλήγουν σε αυτόν. Σελίδα 18

19 Ο συγχρονιστής γ του Awerbuch: ανάλυση πολυπλοκότητας Έστω V το σύνολο των κόμβων του δικτύου, Ε το σύνολο των links που είτε ανήκουν σε κάποιο δένδρο είτε είναι preferred links, και Η το μέγιστο ύψος από όλα τα δένδρα Από κάθε link δένδρου περνάνε σε κάθε παλμό οπωσδήποτε τα μηνύματα PULSE, SAFE, CLUSTER_SAFE και READY μία φορά το καθένα Από κάθε preferred link περνούν τα μηνύματα CLUSTER_SAFE και READY από μία φορά το καθένα Άρα έχουμε Ο(Ε) μηνύματα ανά παλμό ρολογιού. Σε κάθε cluster o χρόνος ενός παλμού είναι Ο(Η) Ο χρόνος διάδοσης των CLUSTER_SAFE μηνυμάτων είναι Ο(Η). Άρα ο συνολικός χρόνος είναι Ο(Η). Σελίδα 19

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

21 Ο αλγόριθμος των Garcia-Molina (αλγόριθμος του ισχυρότερου) Υποθέτουμε ότι κάθε διεργασία γνωρίζει τους αριθμούς όλων των άλλων διεργασιών, αλλά δεν γνωρίζει ποιες από αυτές λειτουργούν κανονικά Όταν μια διεργασία P αντιληφθεί ότι υπάρχει ανάγκη για ένα συντονιστή στέλνει ένα μήνυμα σε όλες τις διεργασίες με μεγαλύτερο αριθμό Αν δεν πάρει απάντηση η P ανακηρύσσεται αρχηγός Αν κάποια απαντήσει τότε αναλαμβάνει να συνεχίσει τη διαδικασία εκλογής Η διεργασία που θα εκλεγεί ανακοινώνει την εκλογή Σελίδα 21

22 Αλγόριθμος Δένδρου Είναι αλγόριθμος κύματος. Θεωρούμε ότι η τοπολογία είναι δένδρο ή οποιαδήποτε αυθαίρετη τοπολογία για την οποία όμως ένα γεννητικό δένδρο είναι διαθέσιμο. Υποθέτουμε ότι όλα τα φύλλα του δένδρου εκκινούν τον αλγόριθμο. Κάθε διεργασία στέλνει ακριβώς ένα μήνυμα στον αλγόριθμο. Εάν μία διεργασία έχει λάβει ένα μήνυμα από κάθε γείτονά της εκτός ενός, η διεργασία στέλνει ένα μήνυμα προς τον υπολειπόμενο γείτονα. Εάν μία διεργασία έχει λάβει μήνυμα από όλους τους γείτονές της, αποφασίζει. Σελίδα 22

23 Αλγόριθμος Δένδρου Είναι απαραίτητο τουλάχιστον όλα τα φύλλα να είναι αρχικοποιητές του αλγορίθμου. Προστίθεται μία φάση αφύπνισης (wakeup phase). Η διεργασία που θέλει να ξεκινήσει την εκλογή διοχετεύει στο δένδρο ένα μήνυμα wakeup με σκοπό αυτό να φτάσει σε όλες τις διεργασίες. Όταν μία διεργασία έχει λάβει ένα μήνυμα wakeup από κάθε κανάλι επικοινωνίας (άρα από όλους τους γείτονές της), ξεκινά τον αλγόριθμο του διάδοσης του δένδρου για τον υπολογισμό της μικρότερης ταυτότητας. Όταν μία διεργασία αποφασίσει γνωρίζει την ταυτότητα του αρχηγού. Εάν αυτή η ταυτότητα ισούται με την ταυτότητά της, γίνεται αρχηγός, αλλιώς χάνει την εκλογή. Σελίδα 23

24 Αλγόριθμος Δένδρου var ws: boolean init false; wr: integer init 0; rec[q]: Boolean for each q Neigh init false; v: P init p; state: (sleep, leader, lost) init sleep; begin if p is initiator then begin ws:=true; forall q Neigh do send <wakeup> to q end; while wr < #Neigh do begin receive <wakeup>; wr:=wr+1; if not ws then begin ws:=true; forall q Neigh do send <wakeup> to q end end; Σελίδα 24

25 Αλγόριθμος Δένδρου /* Now start the tree algorithm */ while #{q: rec[q]} >1 do begin receive <tok,r> from q; rec[q]:=true; v:=min(v,r) end; send <tok, v> to q0 with rec[q0]; receive <tok,r> from q0; v:=min(v,r); if v=p then state:=leader else state:=lost; forall q Neigh, q q0 do send <tok,v> to q end Σελίδα 25

26 Αλγόριθμος Δένδρου - Πολυπλοκότητα Από κάθε ακμή του δένδρου στέλνονται δύο <wakeup> και δύο <tok,r> μηνύματα. Αφού ο αριθμός των ακμών στο δένδρο είναι Ν- 1, Ν ο αριθμός των κόμβων, τότε η πολυπλοκότητα των μηνυμάτων είναι 4Ν-4, δηλαδή Ο(Ν). Μέσα σε D χρονικές μονάδες από τη στιγμή που ξεκινά τον αλγόριθμο η πρώτη διεργασία, D το ύψος του δένδρου, κάθε διεργασία έχει στείλει <wakeup> μηνύματα, έτσι μέσα σε D+1 χρονικές μονάδες κάθε διεργασία έχει ξεκινήσει τον αλγόριθμο κύματος. Είναι εύκολο να διαπιστώσουμε ότι η πρώτη απόφαση λαμβάνει χώρα το πολύ D χρονικές μονάδες μετά την εκκίνηση του κύματος και η τελευταία το πολύ D χρονικές μονάδες μετά την πρώτη απόφαση. Άρα συνολικά έχουμε 3D+1 χρονικές μονάδες, δηλαδή Ο(D). Σελίδα 26

27 Ο αλγόριθμος δακτυλίου του LeLann Υποθέτουμε ότι οι κόμβοι του συστήματος είναι οργανωμένοι σε μορφή δακτυλίου Υποθέτουμε ότι κάθε διεργασία γνωρίζει τον αριθμό της, αλλά όχι των άλλων. Γνωρίζει όμως ποια είναι η επόμενή της στο δακτύλιο Οι διεργασίες που ξεκινούν τον αλγόριθμο (αρχικοποιητές) στέλνουν στην επόμενή τους ένα μήνυμα με τον αριθμό τους (token) Όταν μια διεργασία λάβει πίσω το μήνυμά της σημαίνει ότι έχει λάβει και όλα τα μηνύματα των άλλων αρχικοποιητών Εκλέγεται από τους αρχικοποιητές η διεργασία με τον μικρότερο αριθμό Σελίδα 27

28 Αλγόριθμος LeLann: Ανάλυση Πολυπλοκότητας Ο αλγόριθμος του LeLann λύνει το πρόβλημα εκλογής αρχηγού σε δακτύλιο χρησιμοποιώντας Ο(Ν 2 ) μηνύματα και σε Ο(Ν) χρόνο στη χειρότερη περίπτωση. Απόδειξη: Υπάρχουν το πολύ Ν διαφορετικά tokens που κυκλοφορούν στο δακτύλιο, όπου το καθένα κάνει Ν βήματα. Άρα η πολυπλοκότητα μηνυμάτων είναι Ο(Ν 2 ) Σε Ν-1 χρονικές μονάδες το πολύ από τη στιγμή που ο πρώτος αρχικοποιητής έχει στείλει το token του, κάθε άλλος αρχικοποιητής έχει στείλει το δικό του, και κάθε αρχικοποιητής λαμβάνει το δικό του token Ν χρονικές μονάδες μετά. Άρα ο αλγόριθμος τερματίζει μετά από το πολύ 2Ν-1 χρονικές μονάδες. Σελίδα 28

29 Ο αλγόριθμος δακτυλίου των Chang & Roberts Βελτιώνει τον αλγόριθμο του LeLann σε αριθμό μηνυμάτων στην μέση περίπτωση και σε χρόνο στην χειρότερη περίπτωση Ένας αρχικοποιητής δεν προωθεί το μήνυμα μιας διεργασίας στο δακτύλιο αν καταλάβει ότι αυτή χάνει την εκλογή Εκλέγεται ο αρχικοποιητής που θα λάβει το δικό του μήνυμα Σελίδα 29

30 Αλγόριθμος Chang & Roberts: Ανάλυση Πολυπλοκότητας Ο αλγόριθμος των Chang & Roberts λύνει το πρόβλημα εκλογής αρχηγού σε δακτύλιο χρησιμοποιώντας Θ(Ν 2 ) μηνύματα στη χειρότερη περίπτωση. Απόδειξη: Χρησιμοποιούνται το πολύ Ν tokens, όπου κάθε token κάνει το πολύ Ν βήματα. Άρα έχουμε Ο(Ν 2 ) μηνύματα Υποθέτουμε ακόμη ότι οι κόμβοι τοποθετούνται με αύξουσα σειρά πάνω στο δακτύλιο, οπότε όλα τα tokens «κόβονται» από τον κόμβο 0, πλην του δικού του. Άρα κάθε token i προωθείται κατά N-i βήματα. Άρα το σύνολο των μηνυμάτων είναι (1/2)Ν(Ν+1). Άρα έχουμε Ω(Ν 2 ) μηνύματα Σελίδα 30

31 Αλγόριθμος Chang & Roberts: Ανάλυση Πολυπλοκότητας Ο αλγόριθμος των Chang & Roberts απαιτεί Ο(Ν logn) μηνύματα στη μέση περίπτωση, θεωρώντας ότι όλοι οι κόμβοι είναι αρχικοποιητές. Απόδειξη: Θα υπολογίσουμε το μέσο αριθμό μηνυμάτων από όλες τις διαφορετικές κυκλικές διατάξεις των Ν κόμβων Έστω ότι είναι s ο κόμβος με τη μικρότερη ταυτότητα και p i ο κόμβος που βρίσκεται i βήματα πριν τον s στο δακτύλιο Υπάρχουν (Ν-1)! διαφορετικές διατάξεις στο δακτύλιο (εξαιρείται ο s) Θα υπολογίσουμε τον αριθμό των μηνυμάτων του p i για όλες τις διατάξεις και θα αθροίσουμε για όλα τα i Σελίδα 31

32 Αλγόριθμος Chang & Roberts: Ανάλυση Πολυπλοκότητας To μήνυμα του s θα περάσει Ν φορές σε κάθε διάταξη και άρα Ν(Ν-1)! φορές συνολικά Το μήνυμα του i θα περάσει από i κόμβους το πολύ πριν το «κόψει» ο s Έστω Α i,k ο αριθμός των κυκλικών διατάξεων όπου το μήνυμα του p i περνάει ακριβώς k φορές. O συνολικός αριθμός των μηνυμάτων του p i είναι i ( k A k 1 i, k ) Το μήνυμα του p i περνάει ακριβώς i φορές στο (1/i)(N-1)! των διατάξεων Παρόμοια, το ίδιο μήνυμα περνάει ακριβώς k φορές (k i) στο (1/k)(N- 1)! των διατάξεων Αυτό σημαίνει ότι το μήνυμα θα περάσει τουλάχιστον k φορές, αλλά όχι τουλάχιστον k+1 φορές. Οπότε ο αριθμός των διατάξεων που αυτό συμβαίνει είναι (για k<i): Σελίδα 32

33 Αλγόριθμος Chang & Roberts: Ανάλυση Πολυπλοκότητας A i k O συνολικός αριθμός λοιπόν είναι: i 1 k , ( N 1)! ( N 1)! ( N 1)! k k 1 k( k 1) 1 k( ( N k( k 1) 1 1)!) i ( N i 1)! ( i k 1 1 )( k N 1)! Ο πρώτος όρος στο παραπάνω γινόμενο λέγεται i-οστός αρμονικός αριθμός και συμβολίζεται Η i. Ισχύει η ταυτότητα: m i 1 H i ( m 1) H m m Σελίδα 33

34 Αλγόριθμος Chang & Roberts: Ανάλυση Πολυπλοκότητας Αθροίζοντας λοιπόν όλα τα περάσματα των μηνυμάτων για να πάρουμε το συνολικό αριθμό και εφαρμόζοντας την παραπάνω ταυτότητα έχουμε ότι: N 1 i 1 [ H i ( N 1)!] ( N H N 1 ( N 1)) ( N 1)! Αθροίζοντας τα Ν*(Ν-1)! περάσματα φτάνουμε σε ένα τελικό αριθμό περασμάτων (Ν*Η Ν-1 +1)(Ν-1)!=(Ν*Η Ν )(Ν-1)! Ισχύει ότι (Ν*Η Ν ) 0.69ΝlogN Σελίδα 34

35 Ο αλγόριθμος των Peterson/Dolev- Klawe-Rodeh O αλγόριθμος αυτός επιτυγχάνει πολυπλοκότητα μηνυμάτων O(NlogN) στη χειρότερη περίπτωση βελτιώνοντας τον αλγόριθμο των Chang & Roberts. Αρχικά κάθε ταυτότητα είναι ενεργή, αλλά σε κάθε γύρο κάποιες ταυτότητες γίνονται παθητικές. Σε ένα γύρο μία ενεργή ταυτότητα συγκρίνει τον εαυτό της με τις ενεργές ταυτότητες των δύο γειτονικών της κόμβων. Έστω ότι εκλέγεται η μικρότερη ταυτότητα, αν μία ενεργή ταυτότητα αποτελεί τοπικό ελάχιστο, τότε προχωρά στον επόμενο γύρο, διαφορετικά γίνεται παθητική. Έτσι μετά από logn γύρους θα έχει απομείνει στο δακτύλιο μόνο μία ενεργή ταυτότητα και αυτή κερδίζει την εκλογή. Σελίδα 35

36 Ο αλγόριθμος των Peterson/Dolev- Klawe-Rodeh Η ιδέα αυτή δεν μπορεί να εφαρμοστεί απ ευθείας σε δακτυλίους που είναι μονής κατεύθυνσης. Ας υποθέσουμε ότι έχουμε ένα δακτύλιο όπου βρίσκονται μεταξύ άλλων τρεις ενεργές σε σειρά ταυτότητες r,q,p. Τότε η q μπορεί να λάβει το μήνυμα της r, αλλά δεν μπορεί να λάβει το μήνυμα της p γιατί ο δακτύλιος είναι μονής κατεύθυνσης. Για να γίνει όμως η σύγκριση η q στέλνει την ταυτότητά της στην p και η r δεν στέλνει απλώς την ταυτότητά της στην q, αλλά η q την προωθεί στην p, ώστε η p να κάνει τη σύγκριση. Σελίδα 36

37 Ο αλγόριθμος των Peterson/Dolev- Klawe-Rodeh Οι διεργασίες που χάνουν την εκλογή και γίνονται παθητικές, απλώς προωθούν τα μηνύματα που λαμβάνουν. Εάν μία διεργασία λάβει μία ταυτότητα που είναι ίση με τη δική της τότε ανακηρύσσεται αρχηγός Αν λάβει μία ταυτότητα διαφορετική από τη δική της συγκρίνει την ταυτότητα αυτή με τη δική της και με το τρέχον ελάχιστο που έχει κρατήσει από τις προηγούμενες συγκρίσεις. Αν η παραληφθείσα ταυτότητα είναι η μικρότερη, τότε η διεργασία γίνεται παθητική και κρατά το νέο ελάχιστο. Σελίδα 37

38 Ο αλγόριθμος των Peterson/Dolev- Klawe-Rodeh var ci p : P init p; /* Current identity of p */ acn p : P init undefined; /* id of anticlockwise active neighbor */ begin } win p : P init undefined; /* id of winner */ state p : (active, passive, leader, lost) init active; if p is initiator then state p := active else state p :=passive; while win p =undefined do { } if state p =active then { } else { /* state p =passive */ } send <one,ci p >; receive <one,q>; acn p :=q; if acn p =ci p then {/* acn p is the minimum */ } send <smal,acn p >; win p :=acn p ; receive <smal,q>; else { /* acn p is current id of neighbor */ } send <two,acn p >; receive <two,q>; if acn p < ci p and acn p < q then ci p :=acn p ; else state p :=passive; receive <one,q>; send <one,q>; receive m; send m; /* m is either <two,q> or <smal, q> */ if m is a <smal,q> message then win p :=q if p=win p then state p :=leader else state p :=lost Σελίδα 38

39 Ο αλγόριθμος των Peterson/Dolev- Klawe-Rodeh - Πολυπλοκότητα Λέμε ότι μία διεργασία βρίσκεται στον γύρο i όταν εκτελεί τη βασική επανάληψη του αλγορίθμου για i-οστή φορά. Οι γύροι δεν είναι σφαιρικά συγχρονισμένοι. Είναι πιθανό μία διεργασία να βρίσκεται αρκετούς γύρους μπροστά από μία άλλη διεργασία που βρίσκεται σε άλλο τμήμα του δακτυλίου. Αλλά, αφού κάθε διεργασία στέλνει και λαμβάνει ακριβώς δύο μηνύματα σε κάθε γύρο και τα κανάλια είναι FIFO, ένα μήνυμα λαμβάνεται συνεχώς στον ίδιο γύρο που στέλνεται. Στον πρώτο γύρο όλοι οι αρχικοποιητές είναι ενεργοί και κάθε ενεργή διεργασία διατηρεί μια διαφορετική «τρέχουσα ταυτότητα». Σελίδα 39

40 Ο αλγόριθμος των Peterson/Dolev- Klawe-Rodeh - Πολυπλοκότητα Πρέπει να δείξουμε ότι εάν ο γύρος i ξεκινά με k>1 ενεργές διεργασίες και κάθε διεργασία διατηρεί ένα διαφορετικό ci, τότε τουλάχιστον μία και το πολύ k/2 διεργασίες επιβιώνουν στο γύρο. Με την ανταλλαγή των <one, q> μηνυμάτων, τα οποία διαδίδονται επίσης από τις παθητικές διεργασίες, κάθε ενεργή διεργασία αποκτά την τρέχουσα ταυτότητα του πρώτου ενεργού γείτονα προς την αντίθετη φορά, η οποία σε όλες τις περιπτώσεις είναι διαφορετική από τη δική της. Ακολούθως, κάθε ενεργή διεργασία συνεχίζει το γύρο με την ανταλλαγή των <two,q> μηνυμάτων, με τα οποία κάθε ενεργή διεργασία αποκτά την τρέχουσα ταυτότητα του δεύτερου ενεργού γείτονα προς την αντίθετη φορά. Κάθε ενεργή διεργασία πλέον κατέχει μια διαφορετική τιμή για τη μεταβλητή acn, η οποία υπονοεί ότι οι επιζώντες του γύρου έχουν όλοι διαφορετική ταυτότητα στο τέλος του γύρου. Σελίδα 40

41 log N 1 Ο αλγόριθμος των Peterson/Dolev- Klawe-Rodeh - Πολυπλοκότητα Τουλάχιστον η ταυτότητα που ήταν η μικρότερη στην αρχή του γύρου επιβιώνει, έτσι υπάρχει τουλάχιστον μία διεργασία που επέζησε. Μία ταυτότητα επόμενη σε ένα τοπικό ελάχιστο δεν είναι τοπικό ελάχιστο, που σημαίνει ότι ο αριθμός των επιζώντων είναι το πολύ k/2. Επίσης, αυτό σημαίνει ότι θα υπάρχει ένας γύρος με αριθμό log N 1 που ξεκινά με ακριβώς μία ενεργή ταυτότητα, που είναι η μικρότερη ταυτότητα κάποιου αρχικοποιητή. Εάν ένας γύρος ξεκινήσει με ακριβώς μία ενεργή διεργασία p, με τρέχουσα ταυτότητα ci p, ο αλγόριθμος ολοκληρώνεται μετά από αυτό το γύρο με win p =ci p για κάθε q. Κι αυτό συμβαίνει γιατί το μήνυμα <one,ci p > της p διεργασίας διαδίδεται από όλες τις διεργασίες και τελικά λαμβάνεται από την ίδια την p. Η διεργασία p αποκτά acn p =ci p και στέλνει ένα μήνυμα <smal,acn p > στο δακτύλιο, το οποίο προκαλεί κάθε διεργασία q να βγει από τη βασική επανάληψη με win p =acn p Σελίδα 41

42 Ο αλγόριθμος των Peterson/Dolev- Klawe-Rodeh - Πολυπλοκότητα Υπάρχουν λοιπόν το πολύ log N 1 γύροι, σε κάθε ένα από τους οποίους ανταλλάσσονται ακριβώς 2Ν μηνύματα, το οποίο αποδεικνύει ότι η πολυπλοκότητα μηνυμάτων φράσσεται από το 2ΝlogN+O(N). Σελίδα 42

43 O αλγόριθμος των Itai & Rodeh Θεωρούμε ένα δακτύλιο ανωνύμων κόμβων Δηλαδή είναι πολύ πιθανό να υπάρχουν επεξεργαστές με την ίδια μεγαλύτερη (ή μικρότερη) ταυτότητα στο δίκτυο. Ο αλγόριθμος κινείται στα πλαίσια εκείνου των Chang & Roberts με την κύρια διαφορά ότι οι επεξεργαστές δεν είναι αριθμημένοι με μοναδικό τρόπο. Αρχικά οι επεξεργαστές διαλέγουν για ταυτότητές τους κάποιους τυχαίους αριθμούς από το σύνολο {1,,n} και στη συνέχεια γίνεται η εκλογή του μεγαλύτερου με ταυτόχρονο έλεγχο της μοναδικότητάς του. Σελίδα 43

44 O αλγόριθμος των Itai & Rodeh Αν κάτι τέτοιο δεν είναι αλήθεια ο αλγόριθμος επαναλαμβάνεται. Για τον έλεγχο της μοναδικότητας είναι απαραίτητη η γνώση από όλους τους επεξεργαστές του μεγέθους του δακτυλίου Οι επαναλήψεις του αλγορίθμου σημειώνονται από τον αριθμό της φάσης που όπως θα δούμε μεταφέρεται και από τα μηνύματα του αλγορίθμου. Σε κάθε φάση του αλγορίθμου βγαίνουν από το παιχνίδι της εκλογής οι επεξεργαστές που καταλαβαίνουν πως είναι αδύνατον να εκλεγούν, επειδή ακριβώς μαθαίνουν πως υπάρχει ισχυρότερος υποψήφιος. Αν στη συγκεκριμένη φάση δεν υπάρξει μοναδικός νικητής συνεχίζουν μόνο οι επεξεργαστές που παρέμειναν ενεργοί στο τέλος της προηγούμενης φάσης. Σελίδα 44

45 O αλγόριθμος των Itai & Rodeh Ο επεξεργαστής δεν μπορεί βασισμένος μόνο στην ταυτότητα που κουβαλάει μαζί του ένα μήνυμα να διακρίνει με σιγουριά τα δικά του μηνύματα, αφού η αρίθμηση των επεξεργαστών δεν είναι εγγυημένα μοναδική. Κάθε μήνυμα συνοδεύεται από ένα μετρητή που έχει την τιμή 1 στο ξεκίνημα του μηνύματος και αυξάνεται κάθε φορά που το μήνυμα προωθείται από κάποιον επεξεργαστή. Ένας επεξεργαστής που θα δεχτεί το μήνυμα με το μετρητή του ίσο με N γνωρίζει με βεβαιότητα πως είναι δικό του μήνυμα που συμπλήρωσε κύκλο και επέστρεψε σε αυτόν. Σελίδα 45

46 O αλγόριθμος των Itai & Rodeh var state p : (sleep, cand, leader, lost) init sleep; level p :integer init 0; id p : integer; stop p :boolean init false; if p is initiator then { level p :=1; state p :=cand; id p :=rand({1,,n}); } send <tok, level p, id p, 1, true> to Next p Σελίδα 46

47 O αλγόριθμος των Itai & Rodeh while not stop p do { receive a message; if it is a token <tok, level, id, hops, un> then if hops=n and state p =cand then if un then { state p :=leader; send <ready> to Next p ; receive <ready>; stop p :=true; } else { level p :=level p +1; id p :=rand({1,,n}); send <tok,level p,id p,1,true> to Next p } else if level>level p or (level=level p and id < id p ) then { level p :=level; state p :=lost; send <tok, level, id, hops+1, false> to Next p } else if level=level p and id=id p then send <tok, level, id, hops+1, false> to Next p else skip /* purge the token */ else { send <ready> to Next p ; stop p :=true; } } Σελίδα 47

48 Αμοιβαίος Αποκλεισμός: Συγκεντρωτικός Αλγόριθμος Μία διεργασία επιλέγεται ως συντονιστής Όταν μία διεργασία θέλει να εισέλθει στην κρίσιμη περιοχή ρωτά τον συντονιστή. Αν καμία άλλη διεργασία δεν βρίσκεται στην κρίσιμη περιοχή, τότε ο συντονιστής δίνει άδεια εισόδου. Διαφορετικά: Αφήνει τη διεργασία να περιμένει χωρίς απάντηση ή Στέλνει αρνητική απάντηση Όταν μια κρίσιμη περιοχή ελευθερώνεται τότε ο συντονιστής επιλέγει την πρώτη διεργασία στην ουρά. Σελίδα 48

49 Αμοιβαίος Αποκλεισμός: Κατανεμημένος Αλγόριθμος των Ricart & Agrawala Ο αλγόριθμος απαιτεί την ολική διάταξη των γεγονότων στο σύστημα (π.χ. λογικά ρολόγια Lamport) Όταν μία διεργασία επιθυμεί την είσοδό της σε μία κρίσιμη περιοχή στέλνει ένα μήνυμα σε όλες τις άλλες Όταν μία διεργασία παραλήπτης λαμβάνει ένα τέτοιο μήνυμα: Αν δεν βρίσκεται στην κρίσιμη περιοχή και δεν επιθυμεί να εισέλθει απαντά OK Αν βρίσκεται στην κρίσιμη περιοχή Δεν απαντά (με όριο χρόνου αναμονής στη μεριά του αποστολέα) Στέλνει αρνητική απάντηση Αν θέλει να εισέλθει στην κρίσιμη περιοχή συγκρίνει τις χρονοσφραγίδες και απαντά αναλόγως Όταν μία διεργασία αποστολέας μαζέψει όλες τις θετικές απαντήσεις εισέρχεται στην κρίσιμη περιοχή. Σελίδα 49

50 Αμοιβαίος Αποκλεισμός: Κατανεμημένος Αλγόριθμος token ring Οι διεργασίες τοποθετούνται σε λογική σειρά μορφής δακτυλίου Ένα token γυρίζει στο δακτύλιο Η διεργασία που κατέχει το token μπορεί να εισέλθει στην κρίσιμη περιοχή αν το επιθυμεί Αν δεν το επιθυμεί απλώς προωθεί το token στην επόμενή της στο δακτύλιο διεργασία. Σελίδα 50

51 Αμοιβαίος Αποκλεισμός: Αλγόριθμος Raymond Οι διεργασίες οργανώνονται σε ένα logical spanning tree Το πλήθος των μηνυμάτων που ανταλλάσσονται είναι O(logN). Οι ακμές του δένδρου αυτού είναι κατευθυνόμενες και δείχνουν πάντα στον πατέρα του κόμβου, από τον οποίο ξεκινάνε. Το δικαίωμα εισόδου στην κρίσιμη περιοχή το έχει μία μόνο διεργασία, ο κάτοχος (holder) της σκυτάλης. Η διεργασία αυτή βρίσκεται πάντα στη ρίζα του δένδρου. Η σκυτάλη διασχίζει τις ακμές του δένδρου στο μονοπάτι από τη ρίζα μέχρι τη διεργασία που το ζήτησε. Σελίδα 51

52 Αμοιβαίος Αποκλεισμός: Αλγόριθμος Raymond Καθώς μεταβιβάζεται η σκυτάλη, η κατεύθυνση των ακμών αλλάζει κατά μήκος του μονοπατιού, προκειμένου στη νέα ρίζα να βρίσκεται η διεργασία που ζήτησε τη σκυτάλη. Κάθε διεργασία πρέπει να διατηρεί ένα δείκτη σε ένα μονοπάτι που οδηγεί στη ρίζα, καθώς και μία ουρά όπου βρίσκονται οι αιτήσεις της ίδιας ή και άλλων διεργασιών που δεν έχουν λάβει ακόμα τη σκυτάλη. Σελίδα 52

53 Αμοιβαίος Αποκλεισμός: Αλγόριθμος Raymond Σελίδα 53

54 Αμοιβαίος Αποκλεισμός: Αλγόριθμος Raymond Σελίδα 54

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

56 Κριτήρια απόδοσης αλγορίθμων δρομολόγησης Ορθότητα Πολυπλοκότητα Αποδοτικότητα Σταθερότητα Προσαρμοστικότητα Δικαιοσύνη Σελίδα 56

57 Αλγόριθμος Chandy - Misra Yπολογίζει όλα τα ελάχιστα μονοπάτια προς ένα προορισμό, χρησιμοποιώντας ένα κατανεμημένο υπολογισμό που αρχικοποιείται από ένα απλό κόμβο και στον οποίο συμμετέχουν και άλλοι κόμβοι μόνο αφού λάβουν κάποιο μήνυμα. Θεωρούμε ότι κάθε κόμβος γνωρίζει ποιοι είναι οι γείτονές του και το κόστος της σύνδεσης με καθένα από αυτούς. Για τον υπολογισμό, για όλους τους κόμβους, της απόστασης προς τον κόμβο u 0 (και ενός προτεινόμενου καναλιού), κάθε κόμβος u ξεκινά αρχικοποιώντας την απόσταση D u [u 0 ] ίση με άπειρο και περιμένει για την παραλαβή μηνυμάτων Σελίδα 57

58 Αλγόριθμος Chandy - Misra Ο κόμβος u 0 στέλνει ένα μήνυμα <mydist, u 0,0>, όπου δηλώνει την απόσταση από τον εαυτό του ξεκινώντας τον αλγόριθμο. Όταν ένας κόμβος u λαμβάνει ένα μήνυμα <mydist, u 0,d> από τον γείτονα w, όπου η απόσταση d+w uw < D u [u 0 ], ο u θέτει D u [u 0 ] ίσο με d+w uw και στέλνει ένα μήνυμα <mydist, u 0, D u [u 0 ]> προς όλους τους γείτονές του. Εάν τα κόστη όλων των καναλιών θεωρούνται ότι είναι ίσα, όλα τα συντομότερα μονοπάτια προς τον κόμβο u 0 υπολογίζονται ανταλλάσσοντας Ο(Ν 2 ) μηνύματα ανά κανάλι και Ο(Ν 2 * Ε ) μηνύματα συνολικά. Σελίδα 58

59 Αλγόριθμος Chandy - Misra Var D u [u 0 ]: weight, init ; Nb u [u 0 ]:node, init undefined; For node u0 only: Begin Du 0 [u 0 ]=0; Forall w Neigh u0 do send <mydist, u 0, 0> to w End Processing a <mydist, u 0, d> message from neighbour w by u: Begin Receive <mydist, u 0, d> from w; If d+w uw < D u [u 0 ] then { D u [u 0 ]= d+w uw ; Nb u [u 0 ]=w; Forall x Neigh u do send <mydist, u 0, D u [u 0 ]> to x } End Σελίδα 59

60 Δημιουργία πινάκων δρομολόγησης Αλγόριθμος Floyd Warshall Είναι μη κατανεμημένος αλγόριθμος Σε κάθε link της τοπολογίας αντιστοιχίζεται ένα βάρος Υπολογίζει το μονοπάτι με το μικρότερο βάρος μεταξύ δύο οποιωνδήποτε κόμβων μιας τοπολογίας δικτύου Αρχικά υπολογίζει το βάρος κάθε σύνδεσης με γειτονικούς κόμβους (απόσταση 1) και μετά επεκτείνεται για όλους τους υπόλοιπους κόμβους μέχρι να τους καλύψει όλους (απόσταση 2) Σελίδα 60

61 Αλγόριθμος Floyd Warshall - Πολυπλοκότητα Η βασική επανάληψη του αλγορίθμου εκτελείται Ν φορές και περιλαμβάνει N 2 λειτουργίες (οι οποίες μπορούν να εκτελεστούν παράλληλα ή σειριακά) Άρα η απόσταση ανάμεσα σε δύο οποιουσδήποτε κόμβους εκτελείται σε Θ(Ν 3 ) βήματα. Σελίδα 61

62 Αλγόριθμος του Toueg (απλός αλγόριθμος) Είναι κατανεμημένος αλγόριθμος Βασίζεται στον αλγόριθμο των Floyd- Warshall Κάθε κόμβος γνωρίζει τους γείτονές του και το βάρος κάθε γειτονικής σύνδεσης Ο αλγόριθμος ανταλλάσσει Ο(Ν) μηνύματα ανά κανάλι και Ο(Ν* Ε ) συνολικά. Κάθε κόμβος u εκτελεί τον εξής αλγόριθμο: Begin S u :=Ø; forall v V do if v=u then begin D u [v]:=0; Nb u [v]:=udef end Σελίδα 62

63 end Αλγόριθμος του Toueg (απλός αλγόριθμος) (συνέχεια) else if v Neigh u then begin D u [v]:=w uv ; Nb u [v]:=v end else begin begin D u [v]:= ; Nb u [v]:=udef end; while S u V do begin pick w from V\ S u /* the same node */ if u=w then broadcast the table D w else receive the table D w forall v V do if D u [w]+ D w [v]< D u [v] then begin D u [v]:= D u [w]+ D w [v]; Nb u [v]:=nb u [w] end; S u :=S u {w} end Σελίδα 63

64 Ο αλγόριθμος Merlin-Segall Ορισμός: Για κάθε d ϵ V υπάρχει ένα δένδρο T d =(V, Ed) τέτοιο ώστε E d E ώστε για κάθε κόμβο v ϵ V, το μονοπάτι από το v στο d μέσα από το δένδρο T d είναι ένα βέλτιστο μονοπάτι από το v στο d γράφο G. Για κάθε προορισμό v, κάθε κόμβος u διατηρεί μια εκτίμηση για την απόσταση από το v (D u [v]) και για τον γείτονα κόμβο προς τον οποίο προωθούνται πακέτα προς τον u (Nb u [v]), ο οποίος είναι και ο πατέρας του u στο Τ v. Σε κάθε γύρο ενημέρωσης κάθε κόμβος u στέλνει την εκτιμώμενη απόστασή του D u [v], σε όλους τους γείτονές του, εκτός από τον Nb u [v] Εάν ο κόμβος u λάβει από ένα γείτονα w ένα μήνυμα <mydist, v,d> και αν d+w vw < D u [v], o u θέτει Nb u [v]=w και D u [v]= d+w vw Σελίδα 64

65 Ο αλγόριθμος Merlin-Segall Ο γύρος ενημέρωσης ελέγχεται από τον v και απαιτεί την ανταλλαγή 2 μηνυμάτων από κάθε κανάλι. Μετά από i γύρους ενημέρωσης θα έχουν υπολογιστεί όλα τα κοντινότερα μονοπάτια σε το πολύ i βήματα, ώστε μετά από Ν γύρους θα έχουν υπολογιστεί όλα τα κοντινότερα μονοπάτια προς τον v. Σε κάθε γύρο ενημέρωσης κάθε κόμβος u στέλνει την εκτιμώμενη απόστασή του D u [v], σε όλους τους γείτονές του, εκτός από τον Nb u [v] Ανταλλάσσονται τελικά Ο(Ν 2 ) μηνύματα ανά κανάλι και Ο(Ν 2 * Ε ) συνολικά. Σελίδα 65

66 Έλεγχος τερματισμού (termination detection) Ο υπολογισμός ενός κατανεμημένου αλγορίθμου τερματίζει όταν ο αλγόριθμος φτάνει σε μια τερματική διαμόρφωση Δεν συμβαίνει πάντα σε μια τερματική διαμόρφωση του αλγορίθμου κάθε διεργασία να είναι σε τερματική κατάσταση Με ποιο τρόπο μπορούν οι διεργασίες να μάθουν τον τερματισμό ενός αλγορίθμου; Σελίδα 66

67 Κανόνες βασικού αλγορίθμου Κάθε διεργασία μπορεί να βρίσκεται σε μία από τις καταστάσεις: ενεργή (active), παθητική (passive) και internal Μια διεργασία γίνεται ενεργή όταν συμβαίνει ένα εσωτερικό γεγονός ή ένα γεγονός αποστολής μηνύματος Μια διεργασία γίνεται παθητική μόνο μετά από κάποιο εσωτερικό γεγονός Μια διεργασία γίνεται ενεργή αφού λάβει ένα μήνυμα. Σελίδα 67

68 Αλγόριθμος Dijkstra Ο σκοπός είναι να δώσει τη δυνατότητα σε έναν από τους κόμβους (στο συντονιστή) να ανακαλύψει αν έχει επιτευχθεί μια σταθερή κατάσταση, δηλαδή μια κατάσταση κατά την οποία όλοι οι κόμβοι είναι παθητικοί και κανένα μήνυμα δεν βρίσκεται σε φάση μετάδοσης. Αναφέρεται σε δίκτυα με τοπολογία δακτυλίου. Κάθε κόμβος διατηρεί ένα μετρητή c, αρχικά ίσο με 0. Η αποστολή ενός μηνύματος αυξάνει τον c κατά 1. Η λήψη ενός μηνύματος μειώνει τον c κατά 1. Άρα το άθροισμα όλων των μετρητών c ισούται με τον αριθμό των μηνυμάτων που η παράδοσή τους εκκρεμεί ακόμη. Στο δακτύλιο κινείται μία σκυτάλη, η οποία όπως και κάθε κόμβος έχει ένα χρώμα. Σελίδα 68

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

70 Αλγόριθμος Dijkstra Ο κόμβος 0 αρχικοποιεί τον αλγόριθμο στέλνοντας μία σκυτάλη με την τιμή 0 στον κόμβο Ν-1 Όταν ο κόμβος i (i 0) λάβει τη σκυτάλη Κρατάει τη σκυτάλη μέχρι ο κόμβος να γίνει παθητικός Στέλνει τη σκυτάλη στον κόμβο i-1 αυξάνοντας την τιμή της σκυτάλης κατά c Αν ο κόμβος είναι μαύρος η σκυτάλη γίνεται μαύρη Ο κόμβος γίνεται λευκός Όταν ένας κόμβος λάβει ένα μήνυμα του βασικού αλγορίθμου Γίνεται μαύρος Όταν ο κόμβος 0 λάβει τη σκυτάλη Αν είναι παθητικός και λευκός Αν η σκυτάλη είναι λευκή Αν το άθροισμα της τιμής της σκυτάλης και του c είναι 0 Έχουμε τερματισμό Αλλιώς Ο κόμβος 0 ξεκινά νέο γύρο στον αλγόριθμο Σελίδα 70

71 Ο αλγόριθμος του Mattern Ανιχνεύει τερματισμό πολύ γρήγορα, για την ακρίβεια, μία χρονική μονάδα μετά τη χρονική στιγμή που συνέβη. Ο αλγόριθμος ανιχνεύει τον τερματισμό ενός κεντρικοποιημένου υπολογισμού Θεωρεί ότι κάθε διεργασία μπορεί να στείλει ένα μήνυμα στον αρχικοποιητή του υπολογισμού απ ευθείας. Σε κάθε μήνυμα και κάθε διεργασία ανατίθεται μια τιμή πιστώσεως (credit value) η οποία είναι συνεχώς μεταξύ 0 και 1 Σελίδα 71

72 Ο αλγόριθμος του Mattern Διατηρεί τις ακόλουθες θεωρήσεις σαν αμετάβλητες συνθήκες: Το άθροισμα όλων των πιστώσεων (μηνυμάτων και διεργασιών) είναι 1. Ένα μήνυμα του βασικού αλγορίθμου έχει θετική τιμή πίστωσης. Μία ενεργή διεργασία έχει θετική τιμή πίστωσης. Μία διεργασία που κατέχει μια θετική τιμή πίστωσης αλλά δεν πληροί κάποια από τις παραπάνω τρεις συνθήκες (π.χ. μια παθητική διεργασία) στέλνει την τιμή της πίστωσής της στον αρχικοποιητή. Ο αρχικοποιητής λειτουργεί σαν τράπεζα, συλλέγοντας όλες τις πιστώσεις που στέλνονται σε αυτόν σε μία μεταβλητή που καλείται ret. Όταν ο αρχικοποιητής κατέχει όλες τις πιστώσεις, σημαίνει ότι δεν υπάρχουν τέτοιες διεργασίες και τέτοια μηνύματα στο δίκτυο. Άρα υπάρχει τερματισμός. Έτσι όταν ret=1 ο αρχικοποιητής ανακοινώνει τον τερματισμό Σελίδα 72

73 Ο αλγόριθμος του Mattern Όταν μία ενεργή διεργασία στέλνει ένα μήνυμα, η πίστωσή της μοιράζεται ανάμεσα σε αυτή και το μήνυμα. Όταν μία διεργασία καθίσταται ενεργή παίρνει σαν τιμή πίστωσης αυτή που φέρει το μήνυμα που την ενεργοποιεί. Στην περίπτωση που μία διεργασία λάβει ένα μήνυμα ενώ είναι ήδη ενεργή, δεν χρειάζεται την πίστωση που αυτό φέρει, αλλά ούτε και την καταστρέφει. Η διεργασία τότε κάνει ένα από τα δύο παρακάτω, που και τα δύο οδηγούν σε σωστό αλγόριθμο: Η πίστωση που φέρει το μήνυμα στέλνεται στον αρχικοποιητή. Η πίστωση που φέρει το μήνυμα προστίθεται στην πίστωση της διεργασίας. Σελίδα 73

74 Ο αλγόριθμος του Mattern var state p : (active,passive) init if p=p 0 then active else passive; cred p : [0..1] init if p=p 0 then 1 else 0; ret : [0..1] init 0; /* for p 0 only */ S p : /* state=active */ send<mes,cred p /2>; cred p :=cred p /2; R p : /* A message <mes,c> has arrived at p */ receive <mes,c>; state p :=active; cred p :=cred p +c; Ip: /* state p =active */ state p :=passive; send<ret,cred p > to p 0 ; cred p :=0; A p0 : /* A <ret,c> message has arrived at p 0 */ receive <ret,c>; ret:=ret+c; if ret=1 then Announce_termination; Σελίδα 74

75 Ο αλγόριθμος των Dijkstra - Scholten Ο αλγόριθμος τερματισμού διατηρεί ένα κατευθυνόμενο δένδρο με τις ακόλουθες ιδιότητες: Το δένδρο είναι άδειο ή έχει ρίζα τον αρχικοποιητή Περιλαμβάνει όλες τις ενεργές διεργασίες του δικτύου και όλα τα μηνύματα του βασικού αλγορίθμου που μεταδίδονται Ο αλγόριθμος σβήνει επίσης κόμβους από το δένδρο: Όταν ένα μήνυμα παραλαμβάνεται Όταν μια διεργασία γίνεται παθητική και δεν έχει εκκρεμή μηνύματα Όταν ένα μήνυμα παραληφθεί ή μια διεργασία δεν έχει «παιδιά» ειδοποιεί με κατάλληλο μήνυμα τον «πατέρα» της στο δένδρο Σελίδα 75

76 Ο αλγόριθμος των Dijkstra - Scholten var state p : (active, passive) init if p=p 0 then active else passive; /* p 0 είναι ο αρχικοποιητής του βασικού αλγορίθμου */ sc p : integer init 0; father p : P init if p=p 0 then p else udef; S p : {state p =active} /* αποστολή μηνύματος με την ταυτότητα του κόμβου */ begin send <mes,p>; sc p :=sc p +1 end R p : { A message <mes,q> has arrived at p } begin receive <mes,q>; end state p :=active; if father p =udef then father p :=q else send <sig,q> to q Σελίδα 76

77 Ο αλγόριθμος των Dijkstra - Scholten I p : {state=active} begin state p :=passive; if sc p =0 then { if father p =p then Announce else send <sig, father p > to father p ; father p :=udef } end A p : {A signal <sig, p> arrives at p} begin receive <sig,p>; sc p :=sc p -1; if sc p =0 and state=passive then { if father p =p then Announce else send <sig, father p > to father p ; father p :=udef; } end Σελίδα 77

78 Ανοχή σε σφάλματα Θεωρούμε ότι μπορεί να υπάρξουν σφάλματα σε διεργασίες. Υπάρχουν δύο είδη αλγορίθμων: Αλγόριθμοι ευρωστίας (robust algorithms): κάθε βήμα μιας διεργασίας γίνεται με προσοχή για να επιβεβαιώσει ότι παρά τα όποια σφάλματα, οι σωστές διεργασίες εκτελούν σωστά βήματα. Αλγόριθμοι σταθεροποίησης: οι σωστές διεργασίες μπορεί να επηρεαστούν από σφάλματα, αλλά ο αλγόριθμος εγγυάται την επανάκαμψη από οποιαδήποτε διαμόρφωση όταν η διεργασία επανέλθει σε σωστή συμπεριφορά. Σελίδα 78

79 Μοντέλα σφαλμάτων Αρχικά-νεκρές διεργασίες: μία διεργασία δεν εκτελεί κανένα βήμα του τοπικού της αλγορίθμου Μοντέλο κατάρρευσης: μια διεργασία θεωρείται ότι καταρρέει εάν εκτελεί τον τοπικό της αλγόριθμο σωστά μέχρι ενός χρονικού σημείου, και δεν εκτελεί κανένα βήμα μετά. Βυζαντινή συμπεριφορά (byzantine behavior): μία διεργασία καλείται βυζαντινή εάν εκτελεί βήματα τα οποία είναι αυθαίρετα βήματα και όχι σύμφωνα με τον τοπικό της αλγόριθμο. Συγκεκριμένα, στέλνει μηνύματα με αυθαίρετο περιεχόμενο. Σελίδα 79

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

81 Αλγόριθμος συμφωνίας σε ένα υποσύνολο σωστών διεργασιών Αναφέρεται στο μοντέλο αρχικά-νεκρών διεργασιών Είναι γνωστός ως αλγόριθμος των Fischer, Lynch & Paterson. Κάθε σωστή διεργασία υπολογίζει το ίδιο σύνολο σωστών διεργασιών. Έστω ότι υπάρχουν τουλάχιστον L σωστές διεργασίες. Ο αλγόριθμος εκτελείται σε δύο φάσεις. Οι διεργασίες κατασκευάζουν ένα κατευθυνόμενο γράφο G ανακοινώνοντας την ταυτότητά τους και περιμένουν για την λήψη L μηνυμάτων. Σελίδα 81

82 Αλγόριθμος συμφωνίας σε ένα υποσύνολο σωστών διεργασιών 2 Καθώς υπάρχουν τουλάχιστον L σωστές διεργασίες, κάθε σωστή διεργασία λαμβάνει καταλλήλως πολλά μηνύματα για να ολοκληρώσει αυτό το έργο. Οι επόμενοι της p σε ένα γράφο G είναι οι κόμβοι q από τους οποίους η p έχει λάβει ένα μήνυμα <name,q>. Μία αρχικά-νεκρή διεργασία δεν στέλνει ούτε λαμβάνει μηνύματα σχηματίζοντας έτσι ένα απομονωμένο κόμβο στον G. Ένας «κόμπος» (knot) είναι ένα ισχυρά συνδεδεμένο συστατικό μέρος του γράφου, χωρίς εξερχόμενες ακμές, που περιέχει τουλάχιστον δύο κορυφές. Σελίδα 82

83 Αλγόριθμος συμφωνίας σε ένα υποσύνολο σωστών διεργασιών 3 Στη δεύτερη φάση οι διεργασίες κατασκευάζουν ένα παραγόμενο υπογράφο του G, που περιέχει τουλάχιστον τους απογόνους τους στο κατευθυνόμενο δένδρο, λαμβάνοντας το σύνολο των επόμενων κάθε διεργασίας που γνωρίζουν ότι είναι σωστή. Στο τέλος του αλγορίθμου κάθε σωστή διεργασία έχει λάβει το σύνολο των επόμενων καθεμιάς από τους απογόνους της, πράγμα που της επιτρέπει να υπολογίσει τον μοναδικό «κόμπο» στον G γράφο. Σελίδα 83

84 Σταθεροποίηση (stabilization) Οι σταθεροποιούμενοι αλγόριθμοι ακολουθούν μια πολιτική η οποία να προκαλέσει σε μια διεργασία να συμπεριφέρεται με αστάθεια, αλλά εγγυάται την επιστροφή σε σωστή συμπεριφορά σε περιορισμένο αριθμό βημάτων Οι διεργασίες θεωρείται ότι δουλεύουν σωστά, αλλά η συνολική διαμόρφωση του συστήματος μπορεί να διαταραχθεί από κάποια βλάβη. Ένας αλγόριθμος θεωρούμε ότι είναι αυτόσταθεροποιούμενος αν μπορεί να ξεκινήσει να συμπεριφέρεται σωστά ανεξάρτητα από τη διαμόρφωση του συστήματος. Σελίδα 84

85 Ιδιότητες σταθεροποιούμενων αλγορίθμων Ανοχή σε λάθη: επανέρχεται από οποιαδήποτε διαμόρφωση Αρχικοποίηση: δεν χρειάζεται κάποια ειδική αρχικοποίηση Δυναμική τοπολογία: Συγκλίνει σε λύση ακόμα και μετά από αλλαγή στην τοπολογία Αρχικές ασυμβατότητες: μπορεί αρχικά να έχει ασταθή έξοδο Υψηλή πολυπλοκότητα Δεν ανακαλύπτεται η σταθεροποίηση Σελίδα 85

86 Ο αλγόριθμος token ring του Dijkstra Είναι ο πρώτος σταθεροποιούμενος αλγόριθμος (1974) Αφορά αμοιβαίο αποκλεισμό σε ένα δακτύλιο διεργασιών Οι διεργασίες εκτελούν κώδικα σε κρίσιμες περιοχές αλλά μόνο μία διεργασία μπορεί να εκτελεί τον κώδικα αυτό κάθε χρονική στιγμή. Κάθε διεργασία πρέπει να αποκτά το δικαίωμα εκτέλεσης του κώδικα συχνά. Η λύση δίνεται με το να γυρνά ένα token στο δακτύλιο και η διεργασία που το κατέχει εκτελεί τον κώδικα στην κρίσιμη περιοχή Σελίδα 86

87 Ο αλγόριθμος token ring του Dijkstra (περιγραφή λύσης) Κάθε διεργασία έχει μια κατάσταση που δηλώνεται με ένα ακέραιο που ξεπερνά το μέγεθος του δακτυλίου Κάθε διεργασία μπορεί να διαβάσει την κατάσταση τη δική της και της προηγούμενής της στο δακτύλιο Μια διεργασία i 0 μπαίνει στην κρίσιμη περιοχή όταν η κατάστασή της είναι διαφορετική από αυτή της προηγούμενής της Η διεργασία i=0 μπαίνει στην κρίσιμη περιοχή όταν η κατάστασή της είναι ίδια με αυτή της προηγούμενής της (Ν-1) Σελίδα 87

88 Προσανατολισμός δακτυλίου Θεωρούμε ένα μη κατευθυνόμενο δακτύλιο από Ν διεργασίες Κάθε διεργασία έχει ονομάσει τη μία σύνδεσή της «προηγούμενη» και την άλλη «επόμενη» Ο σύνδεσμος l για τη σύνδεση των διεργασιών p,q καλείται l pq Ο αλγόριθμος πρέπει να ικανοποιεί τη συνθήκη: για κάθε διεργασία p το l pq είναι «επόμενη» αν και μόνο αν το l qp είναι «προηγούμενη» Κάθε διεργασία βρίσκεται σε μία από τις καταστάσεις S (send), R (receive), I (internal) Ιδέα: Οι διεργασίες κυκλοφορούν κυκλικά στο δακτύλιο tokens, και κάθε διεργασία θέτει σαν επόμενό της την κατεύθυνση του τελευταίου token που έστειλε. Αν δυο token συναντηθούν το ένα εξαφανίζεται Σελίδα 88

89 Προσανατολισμός δακτυλίου Τελική κατάσταση: όλα τα εναπομείναντα tokens ταξιδεύουν προς την ίδια κατεύθυνση στο δακτύλιο (προσανατολισμένος δακτύλιος) State p =I και state q =S και l qp =«επόμενη» τότε state p =R; if l pq =«επόμενη» then flip State p =S και state q =R και l qp =«προηγούμενη» και l pq =«επόμενη» τότε state p =I State p =R και l pq =«προηγούμενη» και!(state q =S και l qp =«επόμενη») τότε state p =S State p = state q =S και l qp =l pq =«επόμενη» τότε state p =R; flip State p = state q =I και l qp =l pq =«επόμενη» τότε state p =S Σελίδα 89

Διδάσκων: Κωνσταντίνος Αντωνής Δρ. Μηχανικός Η/Υ & Πληροφορικής Πανεπιστημίου Πατρών

Διδάσκων: Κωνσταντίνος Αντωνής Δρ. Μηχανικός Η/Υ & Πληροφορικής Πανεπιστημίου Πατρών ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγόριθμοι Κατανεμημένων Συστημάτων Συμπληρωματικές Διδακτικές Σημειώσεις για το μάθημα ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Διδάσκων: Κωνσταντίνος Αντωνής

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Κ Σ Ι Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Παναγιώτα Παναγοπούλου Άσκηση 1. Υποθέστε ότι οι διεργασίες ενός σύγχρονου κατανεμημένου συστήματος έχουν μοναδικές ταυτότητες (UIDs), γνωρίζουν ότι είναι συνδεδεμένες

Διαβάστε περισσότερα

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

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1 Αµοιβαίοςαποκλεισµός Εισαγωγή Συγκεντρωτική προσέγγιση Κατανεµηµένη προσέγγιση Αλγόριθµος Lamport Αλγόριθµος Ricart-Agrawala Προσέγγιση µεταβίβασης σκυτάλης Αλγόριθµος LeLann Αλγόριθµος Raymond Αλγόριθµος

Διαβάστε περισσότερα

Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS. 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts)

Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS. 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts) Κ Σ Ι Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS Παναγιώτα Παναγοπούλου 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts) Ο αλγόριθμος LCR είναι ένας αλγόριθμος εκλογής αρχηγού σε ένα

Διαβάστε περισσότερα

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

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού και κατασκευή BFS δένδρου σε σύγχρονο γενικό δίκτυο Παναγιώτα Παναγοπούλου Περίληψη Εκλογή αρχηγού σε γενικά δίκτυα Ορισμός του προβλήματος Ο αλγόριθμος FloodMax

Διαβάστε περισσότερα

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

Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού σε γενικά δίκτυα 20 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου Εκλογή αρχηγού σε γενικά δίκτυα Προηγούμενη διάλεξη Σύγχρονα Κατανεμημένα Συστήματα Μοντελοποίηση συστήματος Πρόβλημα εκλογής αρχηγού

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εντοπισμός τερματισμού. Κατανεμημένα Συστήματα 1 Εντοπισμός τερματισμού Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Μοντέλο συστήματος Μια ομάδα διεργασιών εκτελεί έναν υπολογισμό Κατάσταση διεργασίας: ενεργητική ή παθητική (ανάλογα με το αν εκτελεί μέρος

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα. Ενότητα # 2: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

Διαβάστε περισσότερα

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

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Μοντέλο σύγχρονου κατανεμημένου δικτύου Εκλογή αρχηγού σε σύγχρονο δακτύλιο Παναγιώτα Παναγοπούλου Περίληψη Σύγχρονα Κατανεμημένα Συστήματα Μοντέλο Σφάλματα Πολυπλοκότητα Εκλογή

Διαβάστε περισσότερα

«Συγχρονισμός ρολογιών υπό την παρουσία σφαλμάτων»

«Συγχρονισμός ρολογιών υπό την παρουσία σφαλμάτων» ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ II «υπό την παρουσία σφαλμάτων» Αντωνέλλης Δημήτριος Α.Μ. 2812 antonel@ceid.upatras.gr ΠΑΤΡΑ ΙΟΥΛΙΟΣ 2007 Outline Μέρος Α

Διαβάστε περισσότερα

Κινητά και Διάχυτα Συστήματα. Ενότητα # 8: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

Διαβάστε περισσότερα

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

Κατανεμημένα Συστήματα Ι Σύγχρονα Κατανεμημένα Συστήματα 13 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου Περίληψη 1 Σύγχρονα Κατανεμημένα Συστήματα 2 Το πρόβλημα εκλογής αρχηγού Ο αλγόριθμος LCR Ο αλγόριθμος HS 1 Σύγχρονα Κατανεμημένα

Διαβάστε περισσότερα

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

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Συναίνεση και Σφάλματα Διεργασιών Παναγιώτα Παναγοπούλου Περίληψη Συναίνεση με σφάλματα διεργασιών Το πρόβλημα Ο αλγόριθμος FloodSet Επικύρωση δοσοληψιών Ορισμός του προβλήματος

Διαβάστε περισσότερα

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

Κατανεμημένα Συστήματα Ι Συναίνεση χωρίς την παρουσία σφαλμάτων Κατανεμημένα Συστήματα Ι 4η Διάλεξη 27 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου Κατανεμημένα Συστήματα Ι 4η Διάλεξη 1 Συναίνεση χωρίς την παρουσία σφαλμάτων Προηγούμενη

Διαβάστε περισσότερα

Διάλεξη 17: Συμφωνία με Βυζαντινά Σφάλματα. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 17: Συμφωνία με Βυζαντινά Σφάλματα. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 17: Συμφωνία με Βυζαντινά Σφάλματα ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Βυζαντινά Σφάλματα Τι θα δούμε σήμερα Κάτω Φράγμα για Αλγόριθμους Συμφωνίας με Βυζαντινά Σφάλματα: n > 3f Αλγόριθμος Συμφωνίας

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Διάλεξη 6: Εκλογή Προέδρου σε Σύγχρονους Δακτύλιους. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 6: Εκλογή Προέδρου σε Σύγχρονους Δακτύλιους. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 6: Εκλογή Προέδρου σε Σύγχρονους Δακτύλιους ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Μη Ομοιόμορφος Αλγόριθμος Εκλογής Προέδρου σε Σύγχρονο Δακτύλιο Ομοιόμορφος Αλγόριθμος Εκλογής Προέδρου

Διαβάστε περισσότερα

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

Κατανεμημένα Συστήματα Ι Συναίνεση με σφάλματα διεργασιών Κατανεμημένα Συστήματα Ι 5η Διάλεξη 10 Νοεμβρίου 2016 Παναγιώτα Παναγοπούλου Κατανεμημένα Συστήματα Ι 5η Διάλεξη 1 Συναίνεση με σφάλματα διεργασιών Προηγούμενη διάλεξη

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Τι είναι ένα Κατανεμημένο Σύστημα; Επικοινωνία, Χρονισμός, Σφάλματα Μοντέλο Ανταλλαγής Μηνυμάτων 1

Διαβάστε περισσότερα

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

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Παναγιώτα Παναγοπούλου Χριστίνα Σπυροπούλου 8η Διάλεξη 8 Δεκεμβρίου 2016 1 Ασύγχρονη κατασκευή BFS δέντρου Στα σύγχρονα συστήματα ο αλγόριθμος της πλημμύρας είναι ένας απλός αλλά

Διαβάστε περισσότερα

Διάλεξη 16: Πρόβλημα Συμφωνίας. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 16: Πρόβλημα Συμφωνίας. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 16: Πρόβλημα Συμφωνίας ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Ορισμός του προβλήματος Συμφωνίας Αλγόριθμος Συμφωνίας με Σφάλματα Κατάρρευσης ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 1 Πρόβλημα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Δρομολόγηση (Routing)

Δρομολόγηση (Routing) Δρομολόγηση (Routing) Περίληψη Flooding Η Αρχή του Βέλτιστου και Δυναμικός Προγραμματισμός ijkstra s Algorithm Αλγόριθμοi Δρομολόγησης Link State istance Vector Δρομολόγηση σε Κινητά Δίκτυα Δρομολόγηση

Διαβάστε περισσότερα

Δροµολόγηση (Routing)

Δροµολόγηση (Routing) Δροµολόγηση (Routing) Περίληψη Flooding Η Αρχή του Βέλτιστου και Δυναµικός Προγραµµατισµός Dijkstra s Algorithm Αλγόριθµοi Δροµολόγησης Link State Distance Vector Δροµολόγηση σε Κινητά Δίκτυα Δροµολόγηση

Διαβάστε περισσότερα

Συνεπείς καθολικές καταστάσεις & επιβεβαίωση ιδιοτήτων. Κατανεμημένα Συστήματα 1

Συνεπείς καθολικές καταστάσεις & επιβεβαίωση ιδιοτήτων. Κατανεμημένα Συστήματα 1 Συνεπείς καθολικές καταστάσεις & επιβεβαίωση ιδιοτήτων Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Λογικά συνεπείς τομές Τμήμα τοπικής ιστορίας: h i.k {e i.1,e i.2,e i.k } τμήμα της τοπικής εκτέλεσης στην

Διαβάστε περισσότερα

Συνεπής παρατήρηση εκτέλεσης & συνεπείς καθολικές καταστάσεις. Κατανεμημένα Συστήματα 1

Συνεπής παρατήρηση εκτέλεσης & συνεπείς καθολικές καταστάσεις. Κατανεμημένα Συστήματα 1 Συνεπής παρατήρηση εκτέλεσης & συνεπείς καθολικές καταστάσεις Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Λογικά συνεπείς τομές Τμήμα τοπικής ιστορίας: h i.k {e i.1,e i.2,e i.k } τμήμα της τοπικής εκτέλεσης

Διαβάστε περισσότερα

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

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Παναγιώτα Παναγοπούλου 11η Διάλεξη 12 Ιανουαρίου 2017 1 Ανεξάρτητο σύνολο Δοθέντος ενός μη κατευθυνόμενου γραφήματος G = (V, E), ένα ανεξάρτητο σύνολο (independent set) είναι ένα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Καθολικέςκαταστάσεις. Ορισµοί Κατασκευή καθολικών καταστάσεων Παθητική στρατηγική Ενεργητική στρατηγική. Κατανεµηµένα Συστήµατα 04-1 Καθολικέςκαταστάσεις Ορισµοί Κατασκευή καθολικών καταστάσεων Παθητική στρατηγική Ενεργητική στρατηγική Κατανεµηµένα Συστήµατα 04-1 Ορισµοί Τοπικήιστορία διεργασίας p i Έστω ότι e ij είναι το γεγονός jτης

Διαβάστε περισσότερα

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια Graph Algorithms Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια Περιεχόμενα Μεταβατικό Κλείσιμο Συνεκτικές συνιστώσες Συντομότερα μονοπάτια Breadth First Spanning

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Παράλληλη Επεξεργασία Κεφάλαιο 7 ο Αρχιτεκτονική Συστημάτων Κατανεμημένης Μνήμης

Παράλληλη Επεξεργασία Κεφάλαιο 7 ο Αρχιτεκτονική Συστημάτων Κατανεμημένης Μνήμης Παράλληλη Επεξεργασία Κεφάλαιο 7 ο Αρχιτεκτονική Συστημάτων Κατανεμημένης Μνήμης Κωνσταντίνος Μαργαρίτης Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας kmarg@uom.gr http://eos.uom.gr/~kmarg

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Διάλεξη 5: Κάτω Φράγμα για Αλγόριθμους Εκλογής Προέδρου. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 5: Κάτω Φράγμα για Αλγόριθμους Εκλογής Προέδρου. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 5: Κάτω Φράγμα για Αλγόριθμους Εκλογής Προέδρου ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Κάτω Φράγμα στον Αριθμό Μηνυμάτων Ένας οποιοσδήποτε αλγόριθμος εκλογής προέδρου Α ο οποίος 1. Δουλεύει σε ασύγχρονο

Διαβάστε περισσότερα

Αποτίµησηκαθολικού κατηγορήµατος

Αποτίµησηκαθολικού κατηγορήµατος Αποτίµησηκαθολικού κατηγορήµατος Εισαγωγή Ιδιότητες καθολικών κατηγορηµάτων Αδιέξοδα Ανίχνευση αδιεξόδων Συγκεντρωτική ανίχνευση Ιεραρχική ανίχνευση Κατανεµηµένη ανίχνευση Επανόρθωση αδιεξόδων Κατανεµηµένος

Διαβάστε περισσότερα

Αμοιβαίος αποκλεισμός με ασύγχρονη επικοινωνία (ανταλλαγή μηνυμάτων) Ταυτόχρονος Προγραμματισμός 1

Αμοιβαίος αποκλεισμός με ασύγχρονη επικοινωνία (ανταλλαγή μηνυμάτων) Ταυτόχρονος Προγραμματισμός 1 Αμοιβαίος αποκλεισμός με ασύγχρονη επικοινωνία (ανταλλαγή μηνυμάτων) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Μοντέλο δικτύου/επικοινωνίας Αξιοπιστία (δεν χάνονται μηνύματα) Άγνωστη ταχύτητα μετάδοσης

Διαβάστε περισσότερα

Διάλεξη 11: Αιτιότητα Διάταξη Γεγονότων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 11: Αιτιότητα Διάταξη Γεγονότων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 11: Αιτιότητα Διάταξη Γεγονότων ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Ορισμός του «Πριν- Από» (Happens- Before) Λογικά Ρολόγια Αλγόριθμος Χρονοσφραγίδων του Lamport Διανυσματικά

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα. Javascript LCR example

Κατανεμημένα Συστήματα. Javascript LCR example Κατανεμημένα Συστήματα Javascript LCR example Javascript JavaScript All JavaScript is the scripting language of the Web. modern HTML pages are using JavaScript to add functionality, validate input, communicate

Διαβάστε περισσότερα

Περίληψη Φροντιστηρίου. Κατανεμημένα Συστήματα Ι. Το περιβάλλον DAP - Χαρακτηριστικά. Το περιβάλλον DAP Τι είναι.

Περίληψη Φροντιστηρίου. Κατανεμημένα Συστήματα Ι. Το περιβάλλον DAP - Χαρακτηριστικά. Το περιβάλλον DAP Τι είναι. Κατανεμημένα Συστήματα Ι 1 Περίληψη Φροντιστηρίου 2 Το Περιβάλλον DAP Φροντιστήριο Ένα παράδειγμα υλοποίησης στο DAP Δευτέρα 14 Νοεμβρίου 2005 Γιάννης Κρομμύδας Το περιβάλλον DAP Τι είναι Το περιβάλλον

Διαβάστε περισσότερα

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

Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 12: Διάχυση Μηνυμάτων ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Ορισμός Προσομοίωσης Τι θα δούμε σήμερα Προσομοίωση Υπηρεσίας Διάχυσης Μηνυμάτων Ιδιότητες Διάταξης Μηνυμάτων ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι

Διαβάστε περισσότερα

Διάλεξη 18: Πρόβλημα Βυζαντινών Στρατηγών. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 18: Πρόβλημα Βυζαντινών Στρατηγών. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 8: Πρόβλημα Βυζαντινών Στρατηγών ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Ορισμός Προβλήματος Τι θα δούμε σήμερα Συνθήκες Συμφωνίας κάτω από Βυζαντινό Στρατηγό Πιθανοτικοί αλγόριθμοι επίλυσης Βυζαντινής

Διαβάστε περισσότερα

Μη γράφετε στο πίσω μέρος της σελίδας

Μη γράφετε στο πίσω μέρος της σελίδας Εισαγωγή στο Σχεδιασμό & την Ανάλυση Αλγορίθμων Εξέταση Φεβρουαρίου 2016 Σελ. 1 από 7 Στη σελίδα αυτή γράψτε μόνο τα στοιχεία σας. Γράψτε τις απαντήσεις σας στις επόμενες σελίδες, κάτω από τις αντίστοιχες

Διαβάστε περισσότερα

3. Προσομοίωση ενός Συστήματος Αναμονής.

3. Προσομοίωση ενός Συστήματος Αναμονής. 3. Προσομοίωση ενός Συστήματος Αναμονής. 3.1. Διατύπωση του Προβλήματος. Τα συστήματα αναμονής (queueing systems), βρίσκονται πίσω από τα περισσότερα μοντέλα μελέτης της απόδοσης υπολογιστικών συστημάτων,

Διαβάστε περισσότερα

ΕΚΔΟΣΗ 1.1 ΑΠΡΙΛΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΤΟ ΠΡΩΤΟΚΟΛΛΟ ECHO ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

ΕΚΔΟΣΗ 1.1 ΑΠΡΙΛΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΤΟ ΠΡΩΤΟΚΟΛΛΟ ECHO ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ ΕΚΔΟΣΗ 1.1 ΑΠΡΙΛΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ CONTENTS ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ... 2 Το πρωτόκολλο ECHO... 2 Εισαγωγή... 2 Το πρωτόκολλο

Διαβάστε περισσότερα

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ροή Δικτύου Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μοντελοποίηση Δικτύων Μεταφοράς Τα γραφήματα χρησιμοποιούνται συχνά για την μοντελοποίηση

Διαβάστε περισσότερα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

Διαβάστε περισσότερα

Ενότητα 4. Πρωτόκολλα ροµολόγησης: Αρχές Λειτουργίας του OSPF (Open Shortest Path First)

Ενότητα 4. Πρωτόκολλα ροµολόγησης: Αρχές Λειτουργίας του OSPF (Open Shortest Path First) Ενότητα 4 Πρωτόκολλα ροµολόγησης: Αρχές Λειτουργίας του OSPF (Open Shortest Path First) Πρωτόκολλα ροµολόγησης Πρωτόκολλα ιανύσµατος Απόστασης Πρωτόκολλα Κατάστασης Ζεύξης Πρωτόκολλα ιανύσµατος Απόστασης

Διαβάστε περισσότερα

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1 Επικοινωνία με μηνύματα Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Επικοινωνία με ανταλλαγή μηνυμάτων Η επικοινωνία με μηνύματα είναι ο πιο ευέλικτος τρόπος αλληλεπίδρασης σε κατανεμημένα συστήματα πιο

Διαβάστε περισσότερα

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Δρομολόγηση

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Δρομολόγηση Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Δρομολόγηση Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 1 Δρομολόγηση Εισαγωγή Ιεραρχική δρομολόγηση

Διαβάστε περισσότερα

Παράλληλη Επεξεργασία Κεφάλαιο 6 ο Σύγχρονος Παραλληλισμός

Παράλληλη Επεξεργασία Κεφάλαιο 6 ο Σύγχρονος Παραλληλισμός Παράλληλη Επεξεργασία Κεφάλαιο 6 ο Σύγχρονος Παραλληλισμός Κωνσταντίνος Μαργαρίτης Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας kmarg@uom.gr http://eos.uom.gr/~kmarg Αρετή Καπτάν Υποψήφια

Διαβάστε περισσότερα

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

Φυσικά και λογικά ρολόγια. Κατανεμημένα Συστήματα 1 Φυσικά και λογικά ρολόγια Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Τοπικά γεγονότα/συμβάντα Ορίζουμε ως γεγονός e i.x την x-οστή ενέργεια που έλαβε χώρα τοπικά στην διεργασία P i Το επίπεδο αφαίρεσης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου 4.1.1 Πρωτόκολλο TCP - Δομή πακέτου 1 / 38 Παράδειγμα Έστω ότι θέλουμε να αποστείλουμε ένα μήνυμα μέσω ηλεκτρονικού ταχυδρομείου. Αρχικά η εφαρμογή χρησιμοποιώντας τα πρωτόκολλα του επιπέδου εφαρμογής

Διαβάστε περισσότερα

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βασιλική

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βασιλική Graph Algorithms Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βασιλική Περιεχόμενα minimum weight spanning tree connected components transitive closure shortest paths

Διαβάστε περισσότερα

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

Είναι η διαδικασία εύρεσης της διαδρομής που πρέπει να ακολουθήσει ένα πακέτο για να φτάσει στον προορισμό του. Η διαδικασία αυτή δεν είναι πάντα 1 Είναι η διαδικασία εύρεσης της διαδρομής που πρέπει να ακολουθήσει ένα πακέτο για να φτάσει στον προορισμό του. Η διαδικασία αυτή δεν είναι πάντα εύκολη, τη στιγμή που γνωρίζουμε ότι ένα σύνθετο δίκτυο

Διαβάστε περισσότερα

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

Διαβάστε περισσότερα

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems Ημερομηνία Παράδοσης: 0/1/017 την ώρα του μαθήματος ή με email: mkarabin@csd.uoc.gr Γενικές Οδηγίες α) Επιτρέπεται η αναζήτηση στο Internet και στην βιβλιοθήκη

Διαβάστε περισσότερα

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

Βασικές έννοιες. Κατανεμημένα Συστήματα 1 Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα

Διαβάστε περισσότερα

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Μάθημα 7 - Υποπρογράμματα Εργαστήριο 11 Ο TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Βασικές Έννοιες: Υποπρόγραμμα, Ανάλυση προβλήματος, top down σχεδίαση, Συνάρτηση, Διαδικασία, Παράμετρος, Κλήση συνάρτησης, Μετάβαση

Διαβάστε περισσότερα

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων Κατ οίκον Εργασία 5 Σκελετοί Λύσεων Άσκηση 1 Χρησιμοποιούμε τις δομές: struct hashtable { struct node array[maxsize]; int maxsize; int size; struct node{ int data; int status; Στο πεδίο status σημειώνουμε

Διαβάστε περισσότερα

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

Βασικές έννοιες. Κατανεμημένα Συστήματα 1 Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα

Διαβάστε περισσότερα

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

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2016-2017 Δέυτερη Προγραμματιστική Εργασία Προθεσμία παράδοσης: 19/6/2017 1. Γενική Περιγραφή Στην δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Διάλεξη 14: Ατομική ΚΚΜ Εγγραφής/Ανάγνωσης στην Παρουσία Σφαλμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 14: Ατομική ΚΚΜ Εγγραφής/Ανάγνωσης στην Παρουσία Σφαλμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 14: Ατομική ΚΚΜ Εγγραφής/Ανάγνωσης στην Παρουσία Σφαλμάτων ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Σφάλματα Κατάρρευσης Τι θα δούμε σήμερα Αλγόριθμος SWMR (ΜΕΠΑ) Ατομικής ΚΚΜ στην παρουσία σφαλμάτων

Διαβάστε περισσότερα

Πρωτόκολλα Ελέγχου προσπέλασης μέσου

Πρωτόκολλα Ελέγχου προσπέλασης μέσου Πρωτόκολλα Ελέγχου προσπέλασης μέσου Πρόβλημα: ταυτόχρονη μετάδοση δύο ή περισσότερων κόμβων στο ίδιο κανάλι (μήκος κύματος). Ένα τέτοιο γεγονός ονομάζεται σύγκρουση. Ένα πρωτόκολλο MAC έχει συνήθως ως

Διαβάστε περισσότερα

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π. Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων CO.RE.LAB. ΣΗΜΜΥ - Ε.Μ.Π. Άσκηση 1 η : Παιχνίδι επιλογής ακμών Έχουμε ένα ακυκλικό κατευθυνόμενο γράφο, μια αρχική κορυφή και δυο παίκτες. Οι παίκτες διαδοχικά

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Διάρθρωση. Δίκτυα Υπολογιστών I Δίκτυα Μεταγωγής και Διαδίκτυα: Μέρος Γ. Διάρθρωση. Σκοπός της Δρομολόγησης. Ευάγγελος Παπαπέτρου

Διάρθρωση. Δίκτυα Υπολογιστών I Δίκτυα Μεταγωγής και Διαδίκτυα: Μέρος Γ. Διάρθρωση. Σκοπός της Δρομολόγησης. Ευάγγελος Παπαπέτρου Δίκτυα Υπολογιστών I Δίκτυα Μεταγωγής και Διαδίκτυα: Μέρος Γ Ευάγγελος Παπαπέτρου Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων 2 3 Ε.Παπαπέτρου (Τμ.Μηχ. Η/Υ & Πληροφορικής) MYY703: Δίκτυα Υπολογιστών I

Διαβάστε περισσότερα

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE ΕΡΓΑΣΤΗΡΙΟ 7 Ο Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE Βασικές Έννοιες: Δομή Επανάληψης, Εντολές Επανάληψης (For, While do, Repeat until), Αλγόριθμος, Αθροιστής, Μετρητής, Παράσταση

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών I

Δίκτυα Υπολογιστών I Δίκτυα Υπολογιστών I Δίκτυα Μεταγωγής και Διαδίκτυα: Μέρος Γ Ευάγγελος Παπαπέτρου Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων Ε.Παπαπέτρου (Τμ.Μηχ. Η/Υ & Πληροφορικής) MYY703: Δίκτυα Υπολογιστών I 1 /

Διαβάστε περισσότερα

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi Προϋποθέσεις για Αµοιβαίο Αποκλεισµό Μόνο µία διεργασία σε κρίσιµο τµήµασεκοινό πόρο Μία διεργασία που σταµατά σε µη κρίσιµο σηµείο δεν πρέπει να επιρεάζει τις υπόλοιπες διεργασίες εν πρέπει να υπάρχει

Διαβάστε περισσότερα

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

οµήτης παρουσίασης Marzullo και Neiger αλγόριθµος Παράδειγµα Distributed Debugging Εισαγωγικά Distributed Debugging Τσώτσος Θοδωρής Φωλίνας Νίκος Εισαγωγικά Επιθυµούµε να µπορούµε να παρατηρούµε την εκτέλεση του προγράµµατος κατά τη διάρκειά του. Έχουµε τη δυνατότητα να ελέγξουµε αν οι απαιτούµενες

Διαβάστε περισσότερα

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

Απαντήσεις. Απάντηση. Απάντηση 6 η σειρά ασκήσεων Άλκης Γεωργόπουλος Α.Μ. 39 Αναστάσιος Κοντογιώργης Α.Μ. 43 Άσκηση 1. Απαντήσεις Η αλλαγή ενός ρολογιού προς τα πίσω µπορεί να προκαλέσει ανεπιθύµητη συµπεριφορά σε κάποια προγράµµατα.

Διαβάστε περισσότερα

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Δομή Επανάληψης Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Δομή Επανάληψης Επανάληψη με αρίθμηση DO = ,

Διαβάστε περισσότερα

Δρομολόγηση Και Πολύχρωματισμός. Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026

Δρομολόγηση Και Πολύχρωματισμός. Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026 Δρομολόγηση Και Πολύχρωματισμός Μονοπατιών Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026 Εισαγωγή. Το πρόβλημα με το οποίο θα ασχοληθούμε εδώ είναι γνωστό σαν: Δρομολόγηση και Πολύ-χρωματισμός Διαδρομών (Routing

Διαβάστε περισσότερα

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Αρχιτεκτονική Πλατφόρμας Μπορεί να μοντελοποιηθεί σαν ένα σύνολο από διασυνδεδεμένα κομμάτια: 1. Στοιχεία επεξεργασίας (processing

Διαβάστε περισσότερα

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Πρόγραμμα και εκτέλεση προγράμματος Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα

Διαβάστε περισσότερα

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους Επίλυση Προβληµάτων µε Greedy Αλγόριθµους Περίληψη Επίλυση προβληµάτων χρησιµοποιώντας Greedy Αλγόριθµους Ελάχιστα Δέντρα Επικάλυψης Αλγόριθµος του Prim Αλγόριθµος του Kruskal Πρόβληµα Ελάχιστης Απόστασης

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ Φροντιστήριο #: Εύρεση Ελαχίστων Μονοπατιών σε Γραφήματα που Περιλαμβάνουν και Αρνητικά Βάρη: Αλγόριθμος

Διαβάστε περισσότερα

ιαδίκτυα & Ενδοδίκτυα Η/Υ

ιαδίκτυα & Ενδοδίκτυα Η/Υ ιαδίκτυα & Ενδοδίκτυα Η/Υ ΙΑ ΙΚΤΥΑΚΗ ΛΕΙΤΟΥΡΓΙΑ (Kεφ. 16) ΠΡΩΤΟΚΟΛΛΑ ΡΟΜΟΛΟΓΗΣΗΣ Αυτόνοµα Συστήµατα Πρωτόκολλο Συνοριακών Πυλών OSPF ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΟΛΟΚΛΗΡΩΜΕΝΩΝ ΥΠΗΡΕΣΙΩΝ (ISA) Κίνηση ιαδικτύου Προσέγγιση

Διαβάστε περισσότερα

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

Τοπικά Δίκτυα. Ethernet Δίκτυα Δακτυλίου, (Token Ring) Άλλα Δίκτυα Σύνδεση Τοπικών Δικτύων. Τοπικά Δίκτυα Περίληψη Ethernet Δίκτυα Δακτυλίου, (Token Ring) Άλλα Δίκτυα Σύνδεση Τοπικών Δικτύων. Αναμεταδότες, Γέφυρες, Μεταγωγείς, δρομολογητές και Πύλες (repeaters, hubs, bridges, switches, routers,

Διαβάστε περισσότερα

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Άσκηση : Λυμένες Ασκήσεις Έστω ένα σύστημα μνήμης, στο οποίο έχουμε προσθέσει μια κρυφή μνήμη θυμάτων 6 θέσεων

Διαβάστε περισσότερα

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

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός Μάθημα 4 ο Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός Εισαγωγή Σκοπός του μαθήματος αυτού είναι να εξηγήσει την έννοια του κρίσιμου τμήματος σε μία διεργασία και να δείξει τη λύση για ένα απλό πρόβλημα

Διαβάστε περισσότερα

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1 Επικοινωνία με μηνύματα Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Επικοινωνία με ανταλλαγή μηνυμάτων Η επικοινωνία με μηνύματα είναι ο πιο ευέλικτος τρόπος αλληλεπίδρασης σε κατανεμημένα συστήματα πιο

Διαβάστε περισσότερα

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες]

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες] Α. Στο παρακάτω διάγραµµα εµφανίζεται η εκτέλεση ενός παράλληλου αλγόριθµου που λύνει το ίδιο πρόβληµα µε έναν ακολουθιακό αλγόριθµο χωρίς πλεονασµό. Τα Α i και B i αντιστοιχούν σε ακολουθιακά υποέργα

Διαβάστε περισσότερα

Αλγόριθμοι Ταξινόμησης Μέρος 4

Αλγόριθμοι Ταξινόμησης Μέρος 4 Αλγόριθμοι Ταξινόμησης Μέρος 4 Μανόλης Κουμπαράκης Δομές Δεδομένων και Τεχνικές 1 Μέθοδοι Ταξινόμησης Βασισμένοι σε Συγκρίσεις Κλειδιών Οι αλγόριθμοι ταξινόμησης που είδαμε μέχρι τώρα αποφασίζουν πώς να

Διαβάστε περισσότερα

2 η Σειρά Ασκήσεων Data Link Layer

2 η Σειρά Ασκήσεων Data Link Layer HY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2017-2018 Διδάσκουσα: Μαρία Παπαδοπούλη Τμήμα Επιστήμης Υπολογιστών, Πανεπιστημίου Κρήτης 2 η Σειρά Ασκήσεων Data Link Layer Άσκηση 1 Αναφέρεται τα 4 επιθυμητά

Διαβάστε περισσότερα

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

Γ. Κορίλη Αλγόριθµοι ροµολόγησης - Γ. Κορίλη Αλγόριθµοι ροµολόγησης http://www.seas.upenn.edu/~tcom50/lectures/lecture.pdf ροµολόγηση σε ίκτυα εδοµένων Αναπαράσταση ικτύου µε Γράφο Μη Κατευθυνόµενοι Γράφοι Εκτεταµένα έντρα Κατευθυνόµενοι

Διαβάστε περισσότερα

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Το Πρόβλημα του Αδιεξόδου Ένα σύνολο από διεργασίες σε αναμονή, όπου η κάθε μια κατέχει έναν αριθμό από πόρους και περιμένει να αποκτήσει και έναν

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Αλγόριθμοι Γραφημάτων

Αλγόριθμοι Γραφημάτων Αλγόριθμοι Γραφημάτων. Γραφήματα. Αναπαράσταση Γραφημάτων 3. Διερεύνηση σε Πρώτα σε Πλάτος (BFS) Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Γράφημα Ορισμός: Ένα γράφημα G είναι το διατεταγμένο ζεύγος

Διαβάστε περισσότερα

Διάλεξη 3: Αλγόριθμοι σε Γράφους ΙΙ. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 3: Αλγόριθμοι σε Γράφους ΙΙ. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη : Αλγόριθμοι σε Γράφους ΙΙ ΕΠΛ : Κατανεμημένοι Αλγόριθμοι Κατασκευή ΓΔ Γνωστή Ρίζα Τι θα δούμε σήμερα Κατασκευή ΓΔ Κατά Βάθος Αναζήτησης - Γνωστή Ρίζα Κατασκευή ΓΔ Άγνωστη Ρίζα ΕΠΛ: Κατανεµηµένοι

Διαβάστε περισσότερα

ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ: Δίκτυα Μεταγωγής & Τεχνικές Μεταγωγής Σε Δίκτυα Ευρείας Περιοχής

ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ: Δίκτυα Μεταγωγής & Τεχνικές Μεταγωγής Σε Δίκτυα Ευρείας Περιοχής ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ: Δίκτυα Μεταγωγής & Τεχνικές Μεταγωγής Σε Δίκτυα Ευρείας Περιοχής Στο σημερινό μάθημα ασχολούμαστε με τις έννοιες: Τεχνικές Μεταγωγής o Μεταγωγή κυκλώματος o Μεταγωγή μηνύματος o Μεταγωγή

Διαβάστε περισσότερα

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET Κεφάλαιο 4: Τεχνικές Μετάδοσης ΜΕΤΑΓΩΓΗ Τεχνική µεταγωγής ονομάζεται ο τρόπος µε τον οποίο αποκαθίσταται η επικοινωνία ανάµεσα σε δύο κόµβους με σκοπό την

Διαβάστε περισσότερα