Ομαδική Επικοινωνία (Group Communication) Κατανεμημένα Συστήματα 1
|
|
- Ανθούσα Μακρή
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Ομαδική Επικοινωνία (Group Communication) Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr
2 Ομαδική επικοινωνία Σαφής διαχωρισμός ανάμεσα στις διεργασίες που είναι και σε αυτές που δεν είναι μέλη της ομάδας Ανοιχτή ομαδική επικοινωνία: ο αποστολέας δεν χρειάζεται να είναι απαραίτητα μέλος της ομάδας Κλειστή ομαδική επικοινωνία: ο αποστολέας πρέπει να είναι απαραίτητα μέλος της ομάδας Θα εξετάσουμε την κλειστή ομαδική επικοινωνία, με την μορφή μιας μεσοστρωματικής υπηρεσίας, εστιάζοντας στα πιο βασικά θέματα που προκύπτουν Αξιοπιστία μετάδοσης μηνυμάτων Διαχείριση σύνθεσης ομάδας Σειρά παράδοσης μηνυμάτων Κατανεμημένα Συστήματα 2 lalis@inf.uth.gr
3 Μοντέλο/υποθέσεις εργασίας Υπηρεσία δικτύου/μεταφοράς send: αποστολή μηνύματος (top-down) deliver: παράδοση μηνύματος (bottom-up) Υπηρεσία ομαδικής επικοινωνίας send: αποστολή ομαδικού μηνύματος deliver: παράδοση ομαδικού μηνύματος Βλάβες fail-stop: η διεργασία σταματά να λειτουργεί και (κάπως) ενημερώνονται όλες οι υπόλοιπες Το δίκτυο είναι αξιόπιστο: δεν χάνει μηνύματα, ούτε δημιουργεί από μόνο του διπλότυπα Κατανεμημένα Συστήματα 3 lalis@inf.uth.gr
4 Application Application Application send deliver Group Communication send deliver Network Network Network Κατανεμημένα Συστήματα 4 lalis@inf.uth.gr
5 Basic multicast (BM) Κάθε ομαδικό μήνυμα παραδίδεται το πολύ μια φορά σε κάθε διεργασία/κόμβο που είναι μέλος της ομάδας Αν ο αποστολέας δεν παρουσιάσει βλάβη, το μήνυμα θα παραδοθεί σε όλα τα μέλη (που δεν έχουν βλάβη) Αν ο αποστολέας παρουσιάσει βλάβη (κατά την διαδικασία της αποστολής), δεν δίνεται καμία εγγύηση αναφορικά με τη παράδοση του μηνύματος στα μέλη το μήνυμα μπορεί τελικά να παραδοθεί σε όλα τα μέλη, σε κάποια μέλη ή σε κανένα μέλος της ομάδας Κατανεμημένα Συστήματα 5 lalis@inf.uth.gr
6 (1) p1 p2 p3 p4 (2) p1 p2 p3 p4 (3) p1 p2 p3 p4 (4) p1 p2 p3 p4 send deliver Κατανεμημένα Συστήματα 6 lalis@inf.uth.gr
7 application BM-send BM-deliver BM-init B-multicast net-send net-deliver reliable network Κατανεμημένα Συστήματα 7 lalis@inf.uth.gr
8 BM-Init(procs): grp=procs; BM-send(m): for-each p in grp: net-send(p,<βμ-msg,m>); net-deliver(<βμ-msg,m>): BM-deliver(m); Κατανεμημένα Συστήματα 8 lalis@inf.uth.gr
9 Παρατηρήσεις Η επανειλημμένη αποστολή προφανώς αποτελεί μη βέλτιστη λύση για μια πραγματική υλοποίηση Μπορεί να γίνουν διάφορες βελτιστοποιήσεις βλέπε επικοινωνία 1->Ν Αν το δίκτυο δεν είναι αξιόπιστο, το πρωτόκολλο πρέπει να επεκταθεί κατάλληλα επιβεβαιώσεις, επανεκπομπές, αναγνώριση διπλοτύπων Κατανεμημένα Συστήματα 9 lalis@inf.uth.gr
10 Reliable (atomic) multicast (RM) Αν υπάρχει τουλάχιστον ένα μέλος της ομάδας που δεν παρουσιάζει βλάβη και έλαβε το μήνυμα, το μήνυμα θα παραδοθεί τελικά σε όλα τα μέλη της ομάδας (που δεν παρουσιάζουν βλάβη) Η προώθηση μηνυμάτων γίνεται κοινή ευθύνη όλων όχι μόνο του αρχικού αποστολέα Απλή υλοποίηση: κάθε μέλος στο οποίο φτάνει ένα (νέο) ομαδικό μήνυμα, το ξαναστέλνει σε όλους μπορεί να γίνουν διάφορες βελτιστοποιήσεις Κατανεμημένα Συστήματα 10
11 (1) reliable multicast p1 p2 p3 p4 (2) ΝΟΤ reliable multicast p1 p2 p3 p4 (3) reliable multicast p1 p2 p3 p4 (4) ΝΟΤ reliable multicast p1 p2 p3 p4 send deliver Κατανεμημένα Συστήματα 11
12 application RΜ-send RM-deliver RM-init R-multicast BM-send BM-deliver B-multicast Κατανεμημένα Συστήματα 12
13 RM-Init(procs): BM-Init(procs); n=0; ids={}; RM-send(m): n++; BM-send(<RM-MSG,myid.n,m>); BM-deliver(<RM-MSG,pid.k,m>): if (pid.k not in ids) { ids = ids + pid.k; if (pid!= myid) { BM-send(<RM-MSG,pid.k,m>); } RM-deliver(m); } Κατανεμημένα Συστήματα 13 lalis@inf.uth.gr
14 Παρατηρήσεις Αφού ένα μήνυμα ξαναστέλνεται σε πιο ψηλό επίπεδο, πρέπει να υπάρχει αντίστοιχος εντοπισμός διπλοτύπων Αντί κάθε νέο μήνυμα να ξαναστέλνεται στα «τυφλά» σε όλα τα μέλη της ομάδας, μπορεί να στέλνεται μόνο στα μέλη που (πιθανώς) δεν το έχουν λάβει (ακόμα) απαιτείται κατάλληλη επέκταση Κατανεμημένα Συστήματα 14
15 Αντιμετώπιση βλαβών Υποθέτουμε fail-stop, ότι δηλαδή υπάρχει μηχανισμός εντοπισμού βλαβών και ειδοποίησης των διεργασιών Τα προηγούμενα πρωτόκολλα πρέπει να επεκταθούν για να γίνει κατάλληλος χειρισμός βλάβης ενός μέλους Η διεργασία πρέπει να αφαιρείται από την ομάδα, και να μην λαμβάνεται πλέον υπ όψη για την αποστολή μηνυμάτων και παραλαβή επιβεβαιώσεων αν εξακολουθούν να εκκρεμούν επιβεβαιώσεις από την διεργασία που παρουσίασε βλάβη, αυτές απλά αγνοούνται Κατανεμημένα Συστήματα 15
16 Uniform reliable multicast Ένα μήνυμα παραδίδεται στην εφαρμογή μόνο όταν πλέον έχει φτάσει, σε επίπεδο υπηρεσίας, σε όλα τα (υφιστάμενα) μέλη της ομάδας Η διαφορά σε σχέση με το απλό RM είναι πως ένα μέλος της ομάδας δεν μπορεί να «χάσει» μηνύματα που έχουν ήδη παραδοθεί σε μέλη που στην συνέχεια παρουσιάζουν βλάβη Αυξημένη «λογική συνέπεια» το αν αυτή είναι χρήσιμη, εξαρτάται από την εφαρμογή Κατανεμημένα Συστήματα 16
17 (1) uniform reliable multicast p1 p2 p3 p4 (3) uniform reliable multicast p1 p2 p3 (2) NOT uniform reliable multicast p1 p2 p3 p4 (4) NOT uniform reliable multicast p1 p2 p3 p4 p4 send deliver Κατανεμημένα Συστήματα 17
18 Υλοποίηση URM Εξαρτάται από την σημασιολογία/λειτουργικότητα της υπηρεσίας επικοινωνίας που χρησιμοποιούμε Αν η λειτουργία BM-send είναι ημι-σύγχρονη (επιστρέφει όταν το μήνυμα φτάσει σε όλα τα υφιστάμενα μέλη της ομάδας), τότε η υλοποίηση του URM είναι παρόμοια με αυτήν του απλού RM Αν η BM-send είναι ασύγχρονη, τότε χρειάζεται ρητή αναμονή για επιβεβαίωση της άφιξης του μηνύματος η επανεκπομπή ενός μηνύματος, μπορεί να χρησιμεύσει και ως επιβεβαίωση ότι ο αποστολέας έχει λάβει το μήνυμα Κατανεμημένα Συστήματα 18
19 URM-Init(procs): BM-Init(procs); grp=procs; n=0; ids ={}; buf={}; acks = {}; URM-send(m): n++; BM-send(<URM-MSG,myid,myid.n,m>); BM-deliver(<URM-MSG,pid2,pid.k,m>): if (pid.k not in ids) { ids = ids + pid.k; buf = buf + <pid.k,m>; acks = acks + <pid.k,myid>; if (pid2!= myid) { BM-send(<URM-MSG,myid,pid.k,m>); } } acks = acks + <pid.k,pid2>; if (for-each pid3 in grp: <pid.k,pid3> in acks) buf = buf - <pid.k,m>; URM-deliver(m); } Κατανεμημένα Συστήματα 19 lalis@inf.uth.gr
20 Διαχείριση σύνθεσης ομάδας Τι γίνεται αν η σύνθεση της ομάδας αλλάζει; Απομάκρυνση μέλους (λόγω βλάβης) Αποχώρηση μέλους (εθελοντικά) Προσθήκη μέλους Απαιτείται μηχανισμός διαχείρισης (σύνθεσης) ομάδας Ανανέωση σύνθεσης σε επίπεδο εφαρμογής Συνεπής παράδοση μηνυμάτων Κατανεμημένα Συστήματα 20
21 p2 p1 group-level communication p3 leave join p4 Κατανεμημένα Συστήματα 21
22 Εικόνα τρέχουσας σύνθεσης Ιδανικό: όλα τα μέλη έχουν ανά πάσα στιγμή την ίδια εικόνα για την σύνθεση της ομάδας P 1,P 2 g : view(p 1,t) = view(p 2,t) Σύγχρονο σύστημα: μπορεί να επιτευχθεί μερικώς, με άνω όριο στην καθυστέρηση/απόκλιση ενημέρωσης για αλλαγές σύνθεσης της ομάδας ανάμεσα στα μέλη Ασύγχρονο σύστημα: πρακτικά ανέφικτο Εφικτό: ενημέρωση των μελών με κοινή σειρά Κατανεμημένα Συστήματα 22 lalis@inf.uth.gr
23 Μηνύματα (αλλαγής) σύνθεσης Ο μηχανισμός διαχείρισης σύνθεσης ενημερώνει τα μέλη στέλνοντας τους την τρέχουσα σύνθεση της ομάδας (view) κάθε φορά που αυτή αλλάζει V={P 1,P 2,,P Ν } P 1 g P 2 g P Ν g Ενημέρωση σύνθεσης V στην P την χρονική στιγμή t update(p,v,t) Αποστολή μηνύματος και παραλαβή μηνύματος στην P στο πλαίσιο της τρέχουσας σύνθεσης V send(m)@p V, recv(m)@p V Κατανεμημένα Συστήματα 23 lalis@inf.uth.gr
24 Ιδιότητες ενημέρωσης σύνθεσης Πρόοδος ενημέρωσης: αν P 1 λάβει την σύνθεση V, κάθε άλλο μέλος P 2 της ομάδας (εφόσον υφίσταται) έχει/θα λάβει την σύνθεση V update(p 1,V,t) P 2 g : update(p 2,V,t') Συνέπεια ενημέρωσης: τα μέλη ενημερώνονται για τις αλλαγές σύνθεσης της ομάδας με την ίδια σειρά update(p 1,V 1,t 1 ) update(p 1,V 2,t 2 ) t 1 <t 2 P 2 g : update(p 2,V 1,t' 1 ) update(p 2,V 2,t' 2 ) t' 1 <t' 2 Κατανεμημένα Συστήματα 24 lalis@inf.uth.gr
25 View-synchronous group multicast Συνέπεια παράδοσης μηνυμάτων: αν το μήνυμα m σταλεί στο πλαίσιο της σύνθεσης V, θα παραδοθεί σε όλες τις διεργασίες που εξακολουθούν να είναι μέλη της ομάδας στο πλαίσιο της σύνθεσης V send(m)@p 1 V P 2 g : recv(m)@p 2 V Απαιτείται συντονισμός ανάμεσα στην διαχείριση σύνθεσης και την παράδοση μηνυμάτων εφαρμογής Προτού γίνει μετάβαση στην επόμενη σύνθεση, πρέπει να μεταδοθούν/παραδοθούν όλα τα μηνύματα που «ανήκουν» στο πλαίσιο της προηγούμενης σύνθεσης Η συνέπεια παράδοσης αφορά τόσο στην μείωση όσο και στην αύξηση της σύνθεσης της ομάδας μπορεί να γίνει διαφοροποίηση Κατανεμημένα Συστήματα 25 lalis@inf.uth.gr
26 (1) view synchronous (2) NOT view synchronous p1 p1 p2 p2 p3 p3 {p1,p2,p3} {p2,p3} {p1,p2,p3} {p2,p3} (3) NOT view synchronous p1 p2 p3 (4) view synchronous p1 p2 p3 {p1,p2,p3} {p2,p3} {p1,p2,p3} {p1,p2} send deliver Κατανεμημένα Συστήματα 26
27 (1) view synchronous p1 p2 p3 (2) NOT view synchronous p1 p2 p3 {p1,p2} {p1,p2,p3} {p1,p2} {p1,p2,p3} (3) NOT view synchronous p1 p2 p3 (4) ΝΟΤ view synchronous p1 p2 p3 {p1,p2} {p1,p2,p3} {p1,p2} {p1,p2,p3} send deliver Κατανεμημένα Συστήματα 27
28 V view change in progress V' application send delivered delivered group com. network έναρξη διαδικασίας αλλαγής σύνθεσης αναμονή για μηνύματα προς παράδοση στο πλαίσιο της σύνθεσης V ανακοίνωση της νέας σύνθεσης V' Κατανεμημένα Συστήματα 28 lalis@inf.uth.gr
29 application RVSM-send RVSM-deliver View Manager view-change RVS-multicast buf ενδιάμεση αποθήκη για μηνύματα που φτάνουν εκτός πλαισίου της τρέχουσας σύνθεσης RM-send RM-deliver R-multicast Κατανεμημένα Συστήματα 29
30 RVSM-Init(procs): RM-Init(procs); view=procs; vnο=1; n=0; buf={}; ids={}; vids={}; RVSM-send(m): n++; vids = vids + myid.n; RM-send(<RVSM-MSG,myid.n,vnο,m>); RM-deliver(<RVSM-MSG,pid.k,mvnο,m>): if (mvno!= vno) { buf = buf + <pid.k,mvnο,m>; } else { ids = ids + pid.k; vids = vids + pid.k; RVSM-deliver(m); } View-Change(newview): RSVM-view-change-started(); // block calls to RVSM-send RM-send(<RVSM-VSYNC,myid,vnο,vids>); for-each pid in view: { RM-receive(<RVSM-VSYNC,pid,vnο,pvids>); vids = vids + pvids; } while {ids!= vids) {} /* wait to deliver all msgs in old view */ ids = {}; vids = {}; view = newview; vnο++; RSVM-view-change-completed(view); // unblock calls to RVSM-send while (exists <pid.k,mvno,m> in buf: mvnο == vnο) { buf = buf <pid.k,mvno,m>; ids = ids + pid.k; RVSM-deliver(m); } Κατανεμημένα Συστήματα 30 lalis@inf.uth.gr
31 Υλοποίηση διαχείρισης σύνθεσης Κεντρικοποιημένη: μια διακεκριμένη διεργασία «εγκρίνει» τις αλλαγές, και ενημερώνει όλα τα μέλη Συμμετρική: η «έγκριση» των αλλαγών σύνθεσης συναποφασίζεται από όλα τα μέλη της ομάδας, μέσα από κατάλληλο συγχρονισμό (πρωτόκολλο) Μπορεί να γίνει συνδυασμός του πρωτοκόλλου απόφασης αλλαγής σύνθεσης και του πρωτοκόλλου μετάδοσης/παράδοσης μηνυμάτων στην ομάδα Κατανεμημένα Συστήματα 31
32 Επιπλέον θέματα υλοποίησης Ποια οντότητα/διεργασία «εκπροσωπεί» την ομάδα; Τι γίνεται αν η ομάδα είναι «κενή»; Πως ανακαλύπτει μια νεοεισερχόμενη διεργασία την ομάδα, και σε ποια διεργασία να στείλει την αίτηση; βλέπε γνωστές λύσεις: υπηρεσία καταλόγου, πολυεκπομπή Κατάλληλος χειρισμός βλαβών κατά τη διάρκεια της διαδικασίας αλλαγής/ενημέρωσης σύνθεσης η βλάβη ισοδυναμεί με αυτόματη αποχώρηση από την ομάδα πότε γίνεται η σχετική ανακοίνωση της αλλαγής σύνθεσης; Κατανεμημένα Συστήματα 32
33 Σειρά παράδοσης μηνυμάτων FIFO order: τα μηνύματα παραδίδονται σε κάθε μέλος με την σειρά με την οποία τα έστειλε ο αποστολέας Αιτιολογική σειρά (causal order): τα μηνύματα παραδίδονται σε κάθε μέλος της ομάδας σύμφωνα με την (αιτιο)λογική σειρά τους Καθολική σειρά (total order): όλα τα μηνύματα παραδίδονται σε κάθε μέλος με την ίδια σειρά Κατανεμημένα Συστήματα 33
34 Βασική αρχή λειτουργίας Κάθε μήνυμα που φτάνει από το δίκτυο (κάτω στρώμα επικοινωνίας/μεταφοράς) τοποθετείται σε μια ενδιάμεση αποθήκη Ένα μήνυμα βγαίνει από την αποθήκη και παραδίδεται στην εφαρμογή όταν είναι σίγουρο πως έχουν ήδη παραδοθεί όλα τα «προηγούμενα» μηνύματα Λέμε ότι το μήνυμα είναι πλέον σταθερό (stable) Οι απαιτήσεις για την σειρά παράδοσης εξαρτώνται από το είδος της επιθυμητής σειριοποίησης Κατανεμημένα Συστήματα 34
35 FIFO order FIFO-Multicast NOT FIFO-Multicast p1 p2 p3 p4 m1 m2 p1 p2 p3 p4 m1 m2 send(m1) send(m2) deliver(m1) deliver(m2) Κατανεμημένα Συστήματα 35
36 Reliable FIFO multicast (R-FIFO) Στο d[pid] αποθηκεύονται οι σειριακοί αριθμοί του τελευταίου μηνύματος που έστειλε η διεργασία pid και έχει ήδη παραδοθεί στην εφαρμογή Αρχικά, d[pid] = 0 Τα μηνύματα που καταφθάνουν από το δίκτυο τοποθετούνται σε ενδιάμεση αποθήκη, μέχρι να μπορεί να παραδοθούν με την σωστή σειρά Η αποθήκη ελέγχεται για το αν υπάρχει μήνυμα m με αποστολέα pid και σειριακό αριθμό k == d[pid]+1 Τότε το m απομακρύνεται από την αποθήκη, παραδίδεται στην εφαρμογή, και d[pid] = d[pid]+1 Κατανεμημένα Συστήματα 36 lalis@inf.uth.gr
37 application RFM-send RFM-deliver RFM-init RF-multicast buf ενδιάμεση αποθήκη για μηνύματα που φτάνουν εκτός σειράς αποστολής RM-send RM-deliver R-multicast Κατανεμημένα Συστήματα 37
38 RFM-Init(procs): RM-Init(procs); n=0; buf={}; d[]={0,,0}; RFM-send(m): n++; RM-send(<RFM-MSG,myid.n,m>); RM-deliver(<RFM-MSG,pid.k,m>): buf = buf + <pid.k,m>; checkbuffer(); checkbuffer: while (exists <pid.k,m> in buf: k == d[pid]+1) { buf = buf - <pid.k,m>; d[pid] = d[pid] + 1; RFM-deliver(m); } Κατανεμημένα Συστήματα 38 lalis@inf.uth.gr
39 Causal order Causal-Multicast NOT Causal-Multicast p1 m1 p1 m1 p2 p2 p3 m2 p3 m2 p4 p4 send(m1) send(m2) deliver(m1) deliver(m2) Κατανεμημένα Συστήματα 39
40 Causal multicast Τα μηνύματα που καταφθάνουν από το δίκτυο τοποθετούνται σε ενδιάμεση αποθήκη, μέχρι να μπορεί να παραδοθούν με την σωστή σειρά Πως καταγράφεται η λογική σειρά των μηνυμάτων; Επισυνάπτεται ο σειριακός αριθμός (για FIFO) και τα αναγνωριστικά όσων μηνυμάτων είχαν παραδοθεί στην εφαρμογή όταν δημιουργήθηκε το μήνυμα (ως «λογική προϊστορία» του μηνύματος) Κατανεμημένα Συστήματα 40
41 Application CM-init CM-send RM-send CM-deliver Causal multicast buf RM-deliver κάθε μήνυμα κρατείται σε ενδιάμεση αποθήκη μέχρι να είναι σίγουρο πως έχουν παραδοθεί στην εφαρμογή όλα τα (λογικά) προηγούμενα μηνύματα που έχουν σταλεί στην ομάδα Reliable multicast Κατανεμημένα Συστήματα 41
42 {} {} {} {} {} {} {} {} αναγνωριστικά μηνυμάτων που έχουν παραδοθεί στην εφαρμογή αποθήκη μηνυμάτων Κατανεμημένα Συστήματα 42
43 {} {} <m1,{}> {} {} {} {} {} {} Κατανεμημένα Συστήματα 43
44 {m1 {} } {} {m1 {} } {} {m1 {} } {m1 {} } {} {} Κατανεμημένα Συστήματα 44 lalis@inf.uth.gr
45 {}->m1 {1} {}->m1 {1} {}->m1 {1} {}->m1 {1} Κατανεμημένα Συστήματα 45
46 {} {1} {} {1} {} {} {1} {1} Κατανεμημένα Συστήματα 46
47 {} {1} <m2,{1}> {} {1} {} {} {1} {1} Κατανεμημένα Συστήματα 47
48 {m2 {1} } {1} {} {1} <m2,{1}> {m2 {1} } {m2 {1} } {1} {1} Κατανεμημένα Συστήματα 48 lalis@inf.uth.gr
49 {}->m2 {1,2} {} {1} <m2,{1}> {}->m2 {1,2} {}->m2 {1,2} Κατανεμημένα Συστήματα 49
50 {} {1,2} {} {1} <m2,{1}> {} {} {1,2} {1,2} Κατανεμημένα Συστήματα 50
51 {} {1,2} <m3,{1,2}> {} {1} <m2,{1}> {} {} {1,2} {1,2} Κατανεμημένα Συστήματα 51
52 {m3 {1,2} } {1,2} <m2,{1}> {m3 {1,2} } {1} {m3 {1,2} } {m3 {1,2} } {1,2} {1,2} Κατανεμημένα Συστήματα 52 lalis@inf.uth.gr
53 {}->m3 {1,2,3} <m2,{1}> {m3 {1,2} } {1} {}->m3 {1,2,3} {}->m3 {1,2,3} Κατανεμημένα Συστήματα 53 lalis@inf.uth.gr
54 {} {1,2,3} <m2,{1}> {m3 {1,2} } {1} {} {} {1,2,3} {1,2,3} Κατανεμημένα Συστήματα 54 lalis@inf.uth.gr
55 {} {1,2,3} {m3 {1,2},m2 {1} } {1} {} {} {1,2,3} {1,2,3} Κατανεμημένα Συστήματα 55 lalis@inf.uth.gr
56 {} {1,2,3} {m3 {1,2} }->m2 {1,2} {} {} {1,2,3} {1,2,3} Κατανεμημένα Συστήματα 56
57 {} {1,2,3} {m3 {1,2} } {1,2} {} {} {1,2,3} {1,2,3} Κατανεμημένα Συστήματα 57 lalis@inf.uth.gr
58 {} {1,2,3} {}->m3 {1,2,3} {} {} {1,2,3} {1,2,3} Κατανεμημένα Συστήματα 58
59 {} {1,2,3} {} {1,2,3} {} {} {1,2,3} {1,2,3} Κατανεμημένα Συστήματα 59
60 CM-Init(procs): RM-Init(procs); n=0; buf={}; d[]={0,,0}; ids={}; CM-send(m): n++; RM-send(<CM-MSG,myid.n,ids,m>); On RM-deliver(<CM-MSG,pid.k,mids,m>): buf = buf + <pid.k,mids,m>; checkbuffer(); checkbuffer: while (exists <pid.k,mids,m> in buf: k == d[pid]+1 && mids ids) { buf = buf - <pid.k,mids,m>; d[pid] = d[pid] + 1; ids = ids + pid.k; CM-deliver(m); } Κατανεμημένα Συστήματα 60 lalis@inf.uth.gr
61 Βελτιστοποίηση Ο αριθμός των μηνυμάτων που παραδίδονται στην εφαρμογή, και άρα ο αριθμός των αναγνωριστικών που επισυνάπτονται σε κάθε μήνυμα μεγαλώνει συνεχώς Η περισσότερη πληροφορία είναι περιττή καθώς η σχέση λογικής εξάρτησης είναι μεταβατική Αν το m1 προηγείται του m2, και το m2 προηγείται του m3, αρκεί στο m3 να επισυναφθεί το αναγνωριστικό του m2 (δεν χρειάζεται και το αναγνωριστικό του m1) Επισυνάπτονται μόνο τα αναγνωριστικά των πιο πρόσφατων λογικά προηγούμενων μηνυμάτων Το πολύ Ν αναγνωριστικά, ένα από κάθε διεργασία Κατανεμημένα Συστήματα 61
62 Total order Total-Multicast NOT Total-Multicast p1 m1 p1 m1 p2 p2 p3 m2 p3 m2 p4 p4 send(m1) send(m2) delivered(m1) delivered(m2) Κατανεμημένα Συστήματα 62
63 Application TM-send TM-deliver TM-init Total multicast buf κάθε μήνυμα κρατείται σε ενδιάμεση αποθήκη μέχρι να είναι σίγουρο πως έχει έρθει η σειρά του RM-send RM-deliver Reliable multicast Κατανεμημένα Συστήματα 63
64 Πρωτόκολλο με συντονιστή Κάθε μήνυμα στέλνεται σε όλα τα μέλη της ομάδας Τα μηνύματα που καταφθάνουν από το δίκτυο τοποθετούνται σε ενδιάμεση αποθήκη Μια διακεκριμένη διεργασία (συντονιστής) αναθέτει σε κάθε μήνυμα που λαμβάνει έναν σειριακό αριθμό και τον στέλνει/ανακοινώνει στα μέλη (και στην ίδια) Τα μηνύματα αφαιρούνται από την αποθήκη και παραδίδονται στην εφαρμογή με βάση τον σειριακό αριθμό που τους αναθέτει ο συντονιστής Αφού οι σειριακοί αριθμοί δίνονται από την ίδια διεργασία, επιτυγχάνεται κοινή σειρά παράδοσης Κατανεμημένα Συστήματα 64
65 1: ένα νέο μήνυμα στέλνεται σε όλα τα μέλη της ομάδας <m> 2: ο συντονιστής στέλνει τον σειριακό αριθμό παράδοσης για αυτό το μήνυμα σε όλα τα μέλη <n> 3: κάθε μέλος παραδίδει τα μηνύματα που λαμβάνει στην τοπική εφαρμογή σύμφωνα με τους σειριακούς αριθμούς που στέλνει ο συντονιστής deliver m as n th message Κατανεμημένα Συστήματα 65 lalis@inf.uth.gr
66 0 0,{} σειριακός αριθμός που ανατέθηκε στο τελευταίο μήνυμα της ομάδας 0,{} 0,{} 0,{} σειριακός αριθμός μηνύματος που παραδόθηκε τελευταίο αποθήκη μηνυμάτων Κατανεμημένα Συστήματα 66
67 0 0,{} <m1> 0,{} 0,{} 0,{} Κατανεμημένα Συστήματα 67
68 0 0,{m1? } 0,{m1? } 0,{m1? } 0,{m1? } Κατανεμημένα Συστήματα 68 lalis@inf.uth.gr
69 1 0,{m1? } <m1,1> 0,{m1? } 0,{m1? } 0,{m1? } Κατανεμημένα Συστήματα 69 lalis@inf.uth.gr
70 1 0,{m1 1 } 0,{m1 1 } 0,{m1 1 } 0,{m1 1 } Κατανεμημένα Συστήματα 70 lalis@inf.uth.gr
71 1 1,{}->m1 1,{}->m1 1,{}->m1 1,{}->m1 Κατανεμημένα Συστήματα 71
72 1 1,{} 1,{} 1,{} 1,{} Κατανεμημένα Συστήματα 72
73 1 1,{} <m2> 1,{} 1,{} 1,{} Κατανεμημένα Συστήματα 73
74 1 1,{m2? } 1,{m2? } 1,{m2? } 1,{m2? } Κατανεμημένα Συστήματα 74 lalis@inf.uth.gr
75 2 1,{m2? } <m2,2> 1,{m2? } 1,{m2? } 1,{m2? } Κατανεμημένα Συστήματα 75 lalis@inf.uth.gr
76 2 1,{m2 2 } 1,{m2 2 } 1,{m2 2 } 1,{m2 2 } Κατανεμημένα Συστήματα 76 lalis@inf.uth.gr
77 2 2,{}->m2 2,{}->m2 2,{}->m2 2,{}->m2 Κατανεμημένα Συστήματα 77
78 2 2,{} 2,{} 2,{} 2,{} Κατανεμημένα Συστήματα 78
79 2 2,{} <m3> 2,{} 2,{} 2,{} Κατανεμημένα Συστήματα 79
80 2 2,{} <m3> 2,{m3? } 2,{m3? } 2,{m3? } Κατανεμημένα Συστήματα 80 lalis@inf.uth.gr
81 2 2,{} <m3> <m4> 2,{m3? } 2,{m3? } 2,{m3? } Κατανεμημένα Συστήματα 81 lalis@inf.uth.gr
82 2 2,{m4? } <m3> 2,{m3?,m4? } 2,{m3? } <m4> 2,{m3?,m4? } Κατανεμημένα Συστήματα 82 lalis@inf.uth.gr
83 3 2,{m4? } <m3> <m4,3> 2,{m3?,m4? } 2,{m3? } <m4> 2,{m3?,m4? } Κατανεμημένα Συστήματα 83 lalis@inf.uth.gr
84 3 2,{m4 3 } <m3> 2,{m3?,m4 3 } <m4> 2,{m3?,*m4* 3 } 2,{m3?,m4 3 } Κατανεμημένα Συστήματα 84 lalis@inf.uth.gr
85 3 3,{}->m4 <m3> 3,{m3? }->m4 <m4> 2,{m3?,*m4* 3 } 3,{m3? }->m4 Κατανεμημένα Συστήματα 85 lalis@inf.uth.gr
86 3 3,{} <m3> 3,{m3? } <m4> 2,{m3?,*m4* 3 } 3,{m3? } Κατανεμημένα Συστήματα 86 lalis@inf.uth.gr
87 3 3,{m3? } 3,{m3? } <m4> 2,{m3?,*m4* 3 } 3,{m3? } Κατανεμημένα Συστήματα 87 lalis@inf.uth.gr
88 4 3,{m3? } <m3,4> 3,{m3? } <m4> 2,{m3?,*m4* 3 } 3,{m3? } Κατανεμημένα Συστήματα 88 lalis@inf.uth.gr
89 4 3,{m3 4 } 3,{m3 4 } <m4> 2,{m3 4,*m4* 3 } 3,{m3 4 } Κατανεμημένα Συστήματα 89 lalis@inf.uth.gr
90 4 4,{}->m3 4,{}->m3 <m4> 2,{m3 4,*m4* 3 } 4,{}->m3 Κατανεμημένα Συστήματα 90 lalis@inf.uth.gr
91 4 4,{} 4,{} <m4> 2,{m3 4,*m4* 3 } 4,{} Κατανεμημένα Συστήματα 91 lalis@inf.uth.gr
92 4 4,{} 4,{} 2,{m3 4,m4 3 } 4,{} Κατανεμημένα Συστήματα 92 lalis@inf.uth.gr
93 4 4,{} 4,{} 3,{m3 4 }->m4 4,{} Κατανεμημένα Συστήματα 93 lalis@inf.uth.gr
94 4 4,{} 4,{} 4,{}->m3 4,{} Κατανεμημένα Συστήματα 94
95 4 4,{} 4,{} 4,{} 4,{} Κατανεμημένα Συστήματα 95
96 TM-Init(procs): RM-Init(procs); n=0; buf={}; d=0; TM-send(m): n++; RM-send(<ΤΜ-MSG,myid.n,m>); TM-Init: s=0; Sequencer RM-deliver(<ΤΜ-MSG,pid.k,m>): buf = buf + <pid.k,*,m>; checkbuffer(); RM-deliver(<TM-MSG,pid.k,m>): s++; RM-send(g,<TM-SEQ,pid.k,s>); RM-deliver(<ΤΜ-SEQ,pid.k,s>): buf = buf + <pid.k,s,*>; checkbuffer(); checkbuffer: while (exists <pid.k,s,m> in buf: s == d+1) { buf = buf - <pid.k,s,m>; d = d + 1; TM-deliver(m); } Κατανεμημένα Συστήματα 96 lalis@inf.uth.gr
97 Βλάβες βελτιστοποιήσεις Αν ο συντονιστής παρουσιάσει βλάβη, πρέπει να επιλεγεί νέος που θα συνεχίσει την έκδοση σειριακών αριθμών από εκεί που σταμάτησε ο προηγούμενος Είναι σίγουρο ότι όλοι έχουν ήδη λάβει ή θα λάβουν τον τελευταίο σειριακό αριθμό που έστειλε ο παλιός συντονιστής; Εξαρτάται από τι; Είναι σίγουρο ότι όλοι έχουν λάβει ή θα λάβουν το αντίστοιχο μήνυμα εφαρμογής; Όχι γιατί; Μπορεί να γίνουν διάφορες βελτιστοποιήσεις φυσική πολυεκπομπή, έξυπνα σχήματα επιβεβαίωσης, Κατανεμημένα Συστήματα 97
98 Συμμετρικό πρωτόκολλο Κάθε μήνυμα στέλνεται σε όλα τα μέλη της ομάδας Όταν μια διεργασία λάβει ένα μήνυμα, το τοποθετεί σε αποθήκη, αυξάνει έναν προτεινόμενο σειριακό αριθμό παράδοσης που στέλνει στον αποστολέα και περιμένει να λάβει τον «οριστικό» σειριακό αριθμό παράδοσης Ο αποστολέας περιμένει να λάβει προτάσεις από όλες τις διεργασίες, επιλέγει ως οριστικό σειριακό αριθμό την μεγαλύτερη πρόταση, και την στέλνει σε όλα τα μέλη Κάθε διεργασία παραδίδει τα μηνύματα με βάση τον οριστικό σειριακό που στέλνει ο αποστολέας (ανανεώνοντας την τοπική τιμή αντίστοιχα) Κατανεμημένα Συστήματα 98
99 1: το μήνυμα στέλνεται σε όλα τα μέλη της ομάδας <m> 2: κάθε μέλος προτείνει έναν σειριακό αριθμό παράδοσης (που αυξάνεται κατάλληλα) <n1> <n0> <n3> <n2> 3: ο αποστολέας επιλέγει την μεγαλύτερη τιμή και την στέλνει σε όλα τα μέλη <n> 4: κάθε μέλος παραδίδει τα μηνύματα που λαμβάνει σύμφωνα με τον οριστικό σειριακό αριθμό deliver m as n th message Κατανεμημένα Συστήματα 99 lalis@inf.uth.gr
100 Σειριακοί αριθμοί Ένα μήνυμα δεν μπορεί να παραδοθεί στην εφαρμογή χωρίς να το έχουν λάβει (και να έχουν προτείνει έναν σειριακό αριθμό παράδοσης) όλα τα μέλη της ομάδας Αν μια διεργασία προτείνει έναν σειριακό αριθμό, ξέρει ότι αυτό το μήνυμα δεν θα λάβει μικρότερο οριστικό σειριακό αριθμό μπορεί όμως να λάβει μεγαλύτερο Οι σειριακοί αριθμοί είναι της μορφής (k.p) για να μην μπορεί δύο μηνύματα να λάβουν τον ίδιο αριθμό Σε περίπτωση «ισότητας» ανάμεσα σε (k.p1) και (k.p2), γίνεται σύγκριση των αναγνωριστικών P1 και P2 Κατανεμημένα Συστήματα 100
101 0.0,{} 0.2,{} 0.1,{} 0.3,{} τοπικός σειριακός αριθμός αποθήκη μηνυμάτων Κατανεμημένα Συστήματα 101
102 0.0,{} <m1> 0.2,{} 0.1,{} 0.3,{} Κατανεμημένα Συστήματα 102
103 ,{m1} * <m1,1.0> <m1,1.2> ,{m1} * <m1,1.1> proposals: ,{m1} * <m1,1.3> ,{m1} * Κατανεμημένα Συστήματα 103 lalis@inf.uth.gr
104 ,{m1} * <m1,1.3> ,{m1} * proposals: ,{m1} * ,{m1} * Κατανεμημένα Συστήματα 104 lalis@inf.uth.gr
105 ,{m1} ,{m1} ,{m1} ,{m1} 1.3 Κατανεμημένα Συστήματα 105
106 1.0,{}->m1 1.2,{}->m1 1.1,{}->m1 1.3,{}->m1 Κατανεμημένα Συστήματα 106
107 1.0,{} 1.2,{} 1.1,{} 1.3,{} Κατανεμημένα Συστήματα 107
108 1.0,{} <m2> 1.2,{} 1.1,{} 1.3,{} Κατανεμημένα Συστήματα 108
109 <m2,2.0> <m2,2.1> ,{m2} * ,{m2} * 2.2,{m2} <m2,2.3> ,{m2} * <m2,2.2> 2.2 * proposals: Κατανεμημένα Συστήματα 109 lalis@inf.uth.gr
110 ,{m2} * <m2,2.3> ,{m2} * ,{m2} * ,{m2} * proposals: Κατανεμημένα Συστήματα 110 lalis@inf.uth.gr
111 ,{m2} ,{m2} ,{m2} ,{m2} 2.3 Κατανεμημένα Συστήματα 111
112 2.0,{}->m2 2.2,{}->m2 2.1,{}->m2 2.3,{}->m2 Κατανεμημένα Συστήματα 112
113 2.0,{} 2.2,{} 2.1,{} 2.3,{} Κατανεμημένα Συστήματα 113
114 2.0,{} <m3> 2.2,{} 2.1,{} 2.3,{} Κατανεμημένα Συστήματα 114
115 2.0,{} <m3> <m3,3.2> <m3,3.1> ,{m3} * 3.2,{m3} <m3,3.3> ,{m3} * 3.2 * proposals: -??? Κατανεμημένα Συστήματα 115 lalis@inf.uth.gr
116 2.0,{} <m3> ,{m3} * <m4> 3.2,{m3} ,{m3} * 3.2 * proposals: -??? Κατανεμημένα Συστήματα 116 lalis@inf.uth.gr
117 <m4,4.1> proposals: <m4,3.0> ,{m3,m4} * 4.1 * ,{m4} * <m4,4.2> ,{m3,m4} <m4,4.3> <m3> 3.3 * ,{m3,m4} * * * proposals: -??? Κατανεμημένα Συστήματα 117 lalis@inf.uth.gr
118 ,{m4} * <m3> ,{m3,m4} * 4.2 * proposals: ,{m3,m4} * * ,{m3,m4} * * proposals: -??? Κατανεμημένα Συστήματα 118 lalis@inf.uth.gr
119 ,{m4,m3} * 4.0 * <m3,4.0> ,{m3,m4} * 4.2 * proposals: ,{m3,m4} * * ,{m3,m4} * * proposals: Κατανεμημένα Συστήματα 119 lalis@inf.uth.gr
120 ,{m4,m3} * * <m4,4.3> ,{m3,m4} * 4.2 * proposals: ,{m3,m4} * * ,{m3,m4} * * proposals: Κατανεμημένα Συστήματα 120 lalis@inf.uth.gr
121 ,{m4,m3} 4.3 * ,{m3,m4} * ,{m3,m4} ,{m3,m4} * * proposals: Κατανεμημένα Συστήματα 121 lalis@inf.uth.gr
122 ,{m4,m3} 4.3 * ,{m3,m4} * <m3,4.0> ,{m3,m4} ,{m3,m4} * * proposals: Κατανεμημένα Συστήματα 122 lalis@inf.uth.gr
123 ,{m4,m3} ,{m3,m4} ,{m3,m4} ,{m3,m4} Κατανεμημένα Συστήματα 123
124 ,{m4}->m ,{m4}->m ,{m4}->m ,{m4}->m3 4.3 Κατανεμημένα Συστήματα 124
125 ,{m4} ,{m4} ,{m4} ,{m4} 4.3 Κατανεμημένα Συστήματα 125
126 4.0,{}->m4 4.2,{}->m4 4.1,{}->m4 4.3,{}->m4 Κατανεμημένα Συστήματα 126
127 4.0,{} 4.2,{} 4.1,{} 4.3,{} Κατανεμημένα Συστήματα 127
128 TM-Init(procs): RM-Init(procs); grp=procs; n=0; vote=0; buf={}; TM-send(m): n++; s = (0.0); RM-send(<TM-MSG,myid.n,m>); for-each pid in grp: { net-receive(pid,<tm-vote,myid.n,mvote>); s = max(s,(mvote.pid)); } RM-send(<TM-SEQ,myid.n,s>); RM-deliver(<TM-MSG,pid.k,m>): vote++; buf = buf + <pid.k,(vote.myid),*,m>; net-send(p,<tm-vote,pid.k,vote>); RM-deliver(<TM-SEQ,pid.k,s)>): vote = max(vote,s.vote); buf = buf + <pid.k,(*.*),s,*>; checkbuffer(); checkbuffer: while ((exists <pid.k,mv,s,m> in buf) &&!(exists <pid2.k2,mv2,s2,m2> in buf: s2 < s) &&!(exists <pid2.k2,mv2,*,m2> in buf: mv2 < s)) { buf = buf {<pid.k,mv,s,m>}; TM-deliver(m); } Κατανεμημένα Συστήματα 128 lalis@inf.uth.gr
129 Βλάβες βελτιστοποιήσεις Αν μια διεργασία παρουσιάσει βλάβη, μπορεί να αφήσει «ορφανό» κάποιο δικό της μήνυμα χωρίς να έχει στείλει (σε όλους) τον οριστικό σειριακό αριθμό του Απαιτείται συνεργασία των υπολοίπων διεργασιών για την κατάλληλη «ολοκλήρωση» της μετάδοσης και παράδοσης του μηνύματος Σε σχέση με την κεντρικοποιημένη μέθοδο με συντονιστή, απαιτούνται περισσότερα μηνύματα 2 μηνύματα RM, και Ν μηνύματα unicast Μπορεί να γίνουν διάφορες βελτιστοποιήσεις φυσική πολυεκπομπή, έξυπνα σχήματα επιβεβαίωσης, Κατανεμημένα Συστήματα 129 lalis@inf.uth.gr
130 Πρωτόκολλα total-causal multicast Ένα πρωτόκολλο total multicast δεν εγγυάται (απαραίτητα) παράδοση με αιτιολογική σειρά Αν έχει ήδη παραδοθεί το m1 και στη συνέχεια σταλεί το m2, λόγω total multicast, το m2 όντως θα λάβει μεγαλύτερο αριθμό σειράς και παραδοθεί μετά το m1 Όμως, αν η ίδια διεργασία στείλει πρώτα το m1 και μετά το m2, δεν είναι εγγυημένο ότι το m2 θα λάβει μεγαλύτερο αριθμό σειράς από το m1 Τα προηγούμενα πρωτόκολλα χρειάζονται επεκτάσεις FIFO στην μετάδοση μηνυμάτων εφαρμογής Κατανεμημένα Συστήματα 130
131 Εικονικός συγχρονισμός με CATOC Το causally-and-totally-ordered communication επιτυγχάνει έναν «εικονικό συγχρονισμό» ακόμα και σε ασύγχρονο σύστημα Όλες οι διεργασίες λαμβάνουν όλα τα μηνύματα της ομάδας, με την ίδια & λογικά συνεπή σειρά Οι διεργασίες μπορούν να λάβουν κάποιες αποφάσεις αποκεντρωμένα ή/και να πραγματοποιήσουν ένα ντετερμινιστικό υπολογισμό (με βάση την τρέχουσα κατάσταση τους) καταλήγοντας στο ίδιο αποτέλεσμα έχει προηγηθεί (εκτενής) επικοινωνία σε χαμηλότερο επίπεδο για να «συμφωνηθεί» η σειρά παράδοσης μηνυμάτων Κατανεμημένα Συστήματα 131
132 virtual synchrony asynchrony p1 p2 p3 p1 p2 p3 e1 e1 e2 e2 e3 e3 e4 e4 e5 e5 Κατανεμημένα Συστήματα 132
133 Περιορισμοί CATOC Οι μηχανισμοί CATOC παρέχουν συνέπεια μόνο αν 1) υιοθετούνται από όλα τα τμήματα της εφαρμογής 2) όλα τα μηνύματα της εφαρμογής στέλνονται μέσα στο ίδιο πλαίσιο συγχρονισμού CATOC Οι λογικοί συσχετισμοί μπορεί να χαθούν όταν χρησιμοποιούνται «κρυφά» κανάλια επικοινωνίας, π.χ., αλληλεπίδραση με διεργασίες που δεν υπάγονται στο ίδιο πλαίσιο συγχρονισμού Ακυρώνεται η συνέπεια που προσφέρει το CATOC Κατανεμημένα Συστήματα 133
134 CATOC context p1 CATOC context p1 p2 m3 p2 m1 p3 m4 p3 m2 m4 m1 m2 m3 p4 p4 Κατανεμημένα Συστήματα 134
135 Λογική συνέπεια σε επίπεδο εφαρμογής Η λογική συνέπεια σε επίπεδο εφαρμογής πιθανώς να μην συμβαδίζει / ταυτίζεται με αυτήν του CATOC Μπορεί να χρειάζονται επιπρόσθετοι ή να αρκούν από μόνοι τους διαφορετικοί μηχανισμοί συνέπειας κλείδωμα, καταγραφή εκδόσεων δεδομένων, δοσοληψίες, Οι μηχανισμοί συνέπειας (σε ψηλό επίπεδο) μπορεί να κλιμακώνουν καλύτερα από τους μηχανισμούς CATOC λιγότερα μηνύματα σε επίπεδο δικτύου Κατανεμημένα Συστήματα 135 lalis@inf.uth.gr
Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1
Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο Κατανεμημένα Συστήματα lalis@inf.uth.gr Μοντέλο δικτύου* Το δίκτυο δέχεται και επιστρέφει πακέτα κάθε πακέτο μεταφέρει έναν περιορισμένο αριθμό
Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1
Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο Κατανεμημένα Συστήματα lalis@inf.uth.gr Μοντέλο δικτύου Το δίκτυο δέχεται και επιστρέφει πακέτα κάθε πακέτο μεταφέρει έναν περιορισμένο αριθμό bytes
Βασικές έννοιες. Κατανεμημένα Συστήματα 1
Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα
Αμοιβαίος αποκλεισμός με ασύγχρονη επικοινωνία (ανταλλαγή μηνυμάτων) Ταυτόχρονος Προγραμματισμός 1
Αμοιβαίος αποκλεισμός με ασύγχρονη επικοινωνία (ανταλλαγή μηνυμάτων) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Μοντέλο δικτύου/επικοινωνίας Αξιοπιστία (δεν χάνονται μηνύματα) Άγνωστη ταχύτητα μετάδοσης
Βασικές έννοιες. Κατανεμημένα Συστήματα 1
Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα
Συνεπής παρατήρηση εκτέλεσης & συνεπείς καθολικές καταστάσεις. Κατανεμημένα Συστήματα 1
Συνεπής παρατήρηση εκτέλεσης & συνεπείς καθολικές καταστάσεις Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Λογικά συνεπείς τομές Τμήμα τοπικής ιστορίας: h i.k {e i.1,e i.2,e i.k } τμήμα της τοπικής εκτέλεσης
Συνεπείς καθολικές καταστάσεις & επιβεβαίωση ιδιοτήτων. Κατανεμημένα Συστήματα 1
Συνεπείς καθολικές καταστάσεις & επιβεβαίωση ιδιοτήτων Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Λογικά συνεπείς τομές Τμήμα τοπικής ιστορίας: h i.k {e i.1,e i.2,e i.k } τμήμα της τοπικής εκτέλεσης στην
Εντοπισμός αδιεξόδου. Κατανεμημένα Συστήματα 1
Εντοπισμός αδιεξόδου Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Αδιέξοδο σε κατανεμημένο σύστημα Αδιέξοδο: «κυκλική» και ατέρμονη αναμονή μεταξύ δύο ή περισσοτέρων διεργασιών Το πρόβλημα υφίσταται ήδη σε
Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1
Επικοινωνία με μηνύματα Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Επικοινωνία με ανταλλαγή μηνυμάτων Η επικοινωνία με μηνύματα είναι ο πιο ευέλικτος τρόπος αλληλεπίδρασης σε κατανεμημένα συστήματα πιο
Εντοπισμός τερματισμού. Κατανεμημένα Συστήματα 1
Εντοπισμός τερματισμού Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Μοντέλο συστήματος Μια ομάδα διεργασιών εκτελεί έναν υπολογισμό Κατάσταση διεργασίας: ενεργητική ή παθητική (ανάλογα με το αν εκτελεί μέρος
Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1
Επικοινωνία με μηνύματα Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Επικοινωνία με ανταλλαγή μηνυμάτων Η επικοινωνία με μηνύματα είναι ο πιο ευέλικτος τρόπος αλληλεπίδρασης σε κατανεμημένα συστήματα πιο
Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1
Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Γιατί μετακινούμενος κώδικας; Ευελιξία διαχείρισης μετακίνηση υπηρεσιών του συστήματος Μείωση επικοινωνίας / τοπικής επεξεργασίας
Φυσικά και λογικά ρολόγια. Κατανεμημένα Συστήματα 1
Φυσικά και λογικά ρολόγια Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Τοπικά γεγονότα/συμβάντα Ορίζουμε ως γεγονός e i.x την x-οστή ενέργεια που έλαβε χώρα τοπικά στην διεργασία P i Το επίπεδο αφαίρεσης
Κατανεμημένη συμφωνία (distributed consensus) Κατανεμημένα Συστήματα 1
Κατανεμημένη συμφωνία (distributed consensus) Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Το πρόβλημα της συμφωνίας Σε ένα κατανεμημένο σύστημα, οι διεργασίες μπορεί ανά πάσα στιγμή να έχουν διαφορετική
Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι
Διάλεξη 12: Διάχυση Μηνυμάτων ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Ορισμός Προσομοίωσης Τι θα δούμε σήμερα Προσομοίωση Υπηρεσίας Διάχυσης Μηνυμάτων Ιδιότητες Διάταξης Μηνυμάτων ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι
Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1
Επικοινωνία αίτησης-απάντησης Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Σχήμα επικοινωνίας -reply Μια διεργασία στέλνει μια αίτηση () σε μια άλλη διεργασία, η οποία επεξεργάζεται την αίτηση και στέλνει
Ανοχή βλαβών με καταγραφή κατάστασης και οπισθοδρόμηση (checkpoints & rollback) Κατανεμημένα Συστήματα 1
Ανοχή βλαβών με καταγραφή κατάστασης και οπισθοδρόμηση (checkpoints & rollback) Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Μοντέλο συστήματος Ένα κατανεμημένο σύστημα με Ν διεργασίες που επικοινωνούν μεταξύ
Καθολικέςκαταστάσεις. Ορισµοί Κατασκευή καθολικών καταστάσεων Παθητική στρατηγική Ενεργητική στρατηγική. Κατανεµηµένα Συστήµατα 04-1
Καθολικέςκαταστάσεις Ορισµοί Κατασκευή καθολικών καταστάσεων Παθητική στρατηγική Ενεργητική στρατηγική Κατανεµηµένα Συστήµατα 04-1 Ορισµοί Τοπικήιστορία διεργασίας p i Έστω ότι e ij είναι το γεγονός jτης
Κατανεμημένα Συστήματα με Java. Ενότητα # 2: Διάταξη συμβάντων, καθολικές καταστάσεις Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Κατανεμημένα Συστήματα με Java Ενότητα # 2: Διάταξη συμβάντων, καθολικές καταστάσεις Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια
Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1
Επικοινωνία αίτησης-απάντησης Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Σχήμα επικοινωνίας -reply Μια διεργασία στέλνει μια αίτηση () σε μια άλλη διεργασία, η οποία επεξεργάζεται την αίτηση και στέλνει
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Ταυτόχρονη εκτέλεση Ο προγραμματιστής δεν ελέγχει (άμεσα) την εκτέλεση/εναλλαγή των νημάτων Δεν γνωρίζει πότε θα αρχίσει
ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία
ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2015-2016 Δεύτερη Προγραμματιστική Εργασία Γενική περιγραφή Στη δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε ένα διομότιμο σύστημα (Peer-to-
Κατανεμημένα Συστήματα Ασκήσεις.
Κατανεμημένα Συστήματα Ασκήσεις 2016-2017 http://www.cslab.ece.ntua.gr/courses/distrib Άσκηση 1 3 διεργασίες, η P1, η P2 και η P3 στέλνουν μεταξύ τους multicast μηνύματα. Σε περίπτωση που θέλουμε να εξασφαλίσουμε:
Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων
Κ Σ Ι Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Παναγιώτα Παναγοπούλου Άσκηση 1. Υποθέστε ότι οι διεργασίες ενός σύγχρονου κατανεμημένου συστήματος έχουν μοναδικές ταυτότητες (UIDs), γνωρίζουν ότι είναι συνδεδεμένες
Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1
I. Παράδειγμα 1: Απόδοση TCP με παράθυρο αποστολέα = 1 a. Ο μηχανισμός όπως έχει περιγραφεί ως τώρα στέλνει μόνο ένα πακέτο και σταματάει να μεταδίδει έως ότου πάρει το ack του πακέτου αυτού (λειτουργία
Ορθότητα λειτουργίας τμημάτων λογισμικού & δομών δεδομένων υπό ταυτόχρονη εκτέλεση
Ορθότητα λειτουργίας τμημάτων λογισμικού & δομών δεδομένων υπό ταυτόχρονη εκτέλεση ΙΙΙ 1 lalis@inf.uth.gr Ορθή συμπεριφορά τμήματος λογισμικού Ένα τμήμα λογισμικού (ή ένας ΑΤΔ) προσπελάζεται με δομημένο/ελεγχόμενο
Σηματοφόροι (Σηματοφορείς) Ταυτόχρονος Προγραμματισμός 1
Σηματοφόροι (Σηματοφορείς) 1 lalis@inf.uth.gr Αποφυγή ενεργής αναμονής if () { WAIT(); Μπορεί να γίνει εναλλαγή αφού το νήμα κάνει τον έλεγχο της συνθήκης αναμονής και την βρει αληθή, αλλά προτού αυτό
Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι
Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Αλγόριθμος Χρήση Συντονιστή Αλγόριθμος του Lamport Αλγόριθμος LeLann:
Κατανεμημένα Συστήματα Ι
Κατανεμημένα Συστήματα Ι Συναίνεση και Σφάλματα Διεργασιών Παναγιώτα Παναγοπούλου Περίληψη Συναίνεση με σφάλματα διεργασιών Το πρόβλημα Ο αλγόριθμος FloodSet Επικύρωση δοσοληψιών Ορισμός του προβλήματος
Εκλογήαρχηγού. Εισαγωγή Ισχυρά συνδεδεµένος γράφος ακτύλιος µίας κατεύθυνσης Τοπολογία δένδρου. Κατανεµηµένα Συστήµατα 06-1
Εκλογήαρχηγού Εισαγωγή Ισχυρά συνδεδεµένος γράφος ακτύλιος µίας κατεύθυνσης Τοπολογία δένδρου Κατανεµηµένα Συστήµατα 06- Εισαγωγή Πρόβληµα: επιλογή µίας διεργασίας από το σύνολο εν αρκεί να αυτοανακηρυχθεί
HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο
HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2016-2017 Δέυτερη Προγραμματιστική Εργασία Προθεσμία παράδοσης: 19/6/2017 1. Γενική Περιγραφή Στην δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε
Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1
I. Παράδειγμα 1: Απόδοση TCP με παράθυρο αποστολέα = 1 a. Ο μηχανισμός όπως έχει περιγραφεί ως τώρα στέλνει μόνο ένα πακέτο και σταματάει να μεταδίδει έως ότου πάρει το ack του πακέτου αυτού (λειτουργία
Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές
Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Λαμπαδαρίδης Αντώνιος el04148@mail.ntua.gr Διπλωματική εργασία στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Επιβλέπων: Καθηγητής Τ. Σελλής Περίληψη
Εγγυημένη ποιότητα υπηρεσίας
Εγγυημένη ποιότητα υπηρεσίας Απαιτήσεις ποιότητας υπηρεσίας Μηχανισμοί κατηγοριοποίησης Χρονοπρογραμματισμός Μηχανισμοί αστυνόμευσης Ενοποιημένες υπηρεσίες Διαφοροποιημένες υπηρεσίες Τεχνολογία Πολυμέσων
Σηματοφόροι (Σηματοφορείς) Ταυτόχρονος Προγραμματισμός 1
Σηματοφόροι (Σηματοφορείς) 1 lalis@inf.uth.gr Αποφυγή ενεργής αναμονής εναλλαγή if/while () { WAIT(); Μπορεί να γίνει εναλλαγή αφού το νήμα κάνει τον έλεγχο της συνθήκης αναμονής και την βρει αληθή, αλλά
Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της. Ερώτηση 2 η : Ποια είναι τα κύρια χαρακτηριστικά της μεταγωγής μηνύματος?
Μετάδοση Δεδομένων Δίκτυα Υπολογιστών 68 Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της Απάντηση : Στα δίκτυα μεταγωγής κυκλώματος (circuit switching networks), η μετάδοση των
Ορθότητα λειτουργίας τμημάτων λογισμικού & δομών δεδομένων υπό ταυτόχρονη εκτέλεση
Ορθότητα λειτουργίας τμημάτων λογισμικού & δομών δεδομένων υπό ταυτόχρονη εκτέλεση ΙΙΙ 1 lalis@inf.uth.gr Ορθή συμπεριφορά τμήματος λογισμικού Ένα τμήμα λογισμικού (ή ένας ΑΤΔ) προσπελάζεται με δομημένο/ελεγχόμενο
Συντονισμός και συμφωνία
Συντονισμός και συμφωνία Κατανεμημένα Συστήματα 2015-2016 http://www.cslab.ece.ntua.gr/courses/distrib Πώς επικοινωνούν οι διεργασίες; Ένας προς έναν Unicast 1 -> 1 Point-to-point Ένας προς πολλούς Multicast
Βασικά Θέματα Επικοινωνίας. Κατανεμημένα Συστήματα 1
Βασικά Θέματα Επικοινωνίας Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Πρωτόκολλο επικοινωνίας Η/Υ Προσδιορίζει τους κανόνες που διέπουν την επικοινωνία ανάμεσα στα εμπλεκόμενα μέρη τα μηνύματα και (εν μέρει)
Κατανεμημένα Συστήματα με Java. Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Κατανεμημένα Συστήματα με Java Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Τεχνολογία Πολυμέσων. Ενότητα # 16: Πολυεκπομπή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Τεχνολογία Πολυμέσων Ενότητα # 16: Πολυεκπομπή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.
Διάλεξη 16: Πρόβλημα Συμφωνίας. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι
Διάλεξη 16: Πρόβλημα Συμφωνίας ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Ορισμός του προβλήματος Συμφωνίας Αλγόριθμος Συμφωνίας με Σφάλματα Κατάρρευσης ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 1 Πρόβλημα
Κατανεμημένα Συστήματα Ι
Συναίνεση με σφάλματα διεργασιών Κατανεμημένα Συστήματα Ι 5η Διάλεξη 10 Νοεμβρίου 2016 Παναγιώτα Παναγοπούλου Κατανεμημένα Συστήματα Ι 5η Διάλεξη 1 Συναίνεση με σφάλματα διεργασιών Προηγούμενη διάλεξη
Μετρικές & Επιδόσεις. Κεφάλαιο V
Μετρικές & Επιδόσεις Κεφάλαιο V Χρόνος εκτέλεσης & επιτάχυνση Σειριακός χρόνος εκτέλεσης: Τ (για τον καλύτερο σειριακό αλγόριθμο) Παράλληλος χρόνος εκτέλεσης: (με επεξεργαστές) Επιτάχυνση (speedup): S
Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1
Αµοιβαίοςαποκλεισµός Εισαγωγή Συγκεντρωτική προσέγγιση Κατανεµηµένη προσέγγιση Αλγόριθµος Lamport Αλγόριθµος Ricart-Agrawala Προσέγγιση µεταβίβασης σκυτάλης Αλγόριθµος LeLann Αλγόριθµος Raymond Αλγόριθµος
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26 Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.: 43 Άσκηση 3 Μια αξιόπιστη multicast υπηρεσία επιτρέπει σε έναν
Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS. 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts)
Κ Σ Ι Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS Παναγιώτα Παναγοπούλου 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts) Ο αλγόριθμος LCR είναι ένας αλγόριθμος εκλογής αρχηγού σε ένα
Κρίσιμη Περιοχή Υπό Συνθήκη (Conditional Critical Regions) Ταυτόχρονος Προγραμματισμός 1
Κρίσιμη Περιοχή Υπό Συνθήκη (onditional ritical Regions) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Πέρα από ελεγκτές Ο ελεγκτής είναι χρήσιμο εργαλείο συγχρονισμού παρέχει στον προγραμματιστή εγγυημένο
Κατανεμημένα Συστήματα. Ενότητα # 2: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Κατανεμημένα Συστήματα Ενότητα # 2: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.
Τρίτη Σειρά Ασκήσεων ΑΣΚΗΣΗ 1 ΑΣΚΗΣΗ 1 ΛΥΣΗ ΑΣΚΗΣΗ 2
Τρίτη Σειρά Ασκήσεων ΑΣΚΗΣΗ 1 o Ένα πακέτο ανώτερου επιπέδου τεμαχίζεται σε 10 πλαίσια, κάθε ένα από τα οποία έχει πιθανότητα 80 τοις εκατό να φτάσει χωρίς σφάλμα. Αν το πρωτόκολλο συνδέσου μετάδοσης δεδομένων
Consensus and related problems
Consensus and related s Τι θα δούµε ΟΜΑ Α: Ιωάννα Ζέλιου Α.Μ.: 55 Μελισσόβας Σπύρος Α.Μ.: 21 Παπαδόπουλος Φίλιππος Α.Μ.: 60 Consensus Byzantine generals Interactive consistency Agreement Problems Imposibility
Κινητά και Διάχυτα Συστήματα. Ενότητα # 6: Εφαρμογές DHT Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Κινητά και Διάχυτα Συστήματα Ενότητα # 6: Εφαρμογές DHT Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του
Δίκτυα Απευθείας Ζεύξης. Επικοινωνία µεταξύ δύο υπολογιστών οι οποίοι είναι απευθείας συνδεδεµένοι.
Δίκτυα Απευθείας Ζεύξης Επικοινωνία µεταξύ δύο υπολογιστών οι οποίοι είναι απευθείας συνδεδεµένοι. Περίληψη Ζεύξεις σηµείου προς σηµείο (point-to-point links) Πλαισίωση (framing) Ανίχνευση και διόρθωση
Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που
7.7 Πρωτόκολλο ARP 1 ύο είδη διευθύνσεων: MAC - IP Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που µπορεί
a. b. c. d ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ
7.7 Πρωτόκολλο Μέχρι τώρα έχουμε αναφέρει, ότι, για να μεταδοθούν τα αυτοδύναμα πακέτα στο φυσικό μέσο, πρέπει αυτά να μετατραπούν σε πακέτα φυσικού δικτύου (π.χ. Ethernet). Όμως, δεν έχει ειπωθεί τίποτε
Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 5: Ανοχή βλαβών Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός Ενότητα # 5: Ανοχή βλαβών Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Ελεγκτές/Παρακολουθητές (Monitors) Ταυτόχρονος Προγραμματισμός 1
Ελεγκτές/Παρακολουθητές (Monitors) 1 lalis@inf.uth.gr Ελεγκτές Αμοιβαίος αποκλεισμός στο πλαίσιο ενός τμήματος λογισμικού που προσπελάζεται με δομημένο τρόπο, μέσω προκαθορισμένης διασύνδεσης (API) Ο συγχρονισμός
Κατανεμημένα Συστήματα Ι
Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού και κατασκευή BFS δένδρου σε σύγχρονο γενικό δίκτυο Παναγιώτα Παναγοπούλου Περίληψη Εκλογή αρχηγού σε γενικά δίκτυα Ορισμός του προβλήματος Ο αλγόριθμος FloodMax
Προχωρημένα Θέματα Προγραμματισμού Δικτύων
1 Ελληνική ημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Προχωρημένα Θέματα Προγραμματισμού Δικτύων Ενότητα 9: ΈλεγχοςΡοήςΚλειστούΒρόχου(1) Φώτης Βαρζιώτης 2 Ανοιχτά Τμήμα Μηχανικών Πληροφορικής ΤΕ
Κατανεμημένα Συστήματα Ι
Εκλογή αρχηγού σε γενικά δίκτυα 20 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου Εκλογή αρχηγού σε γενικά δίκτυα Προηγούμενη διάλεξη Σύγχρονα Κατανεμημένα Συστήματα Μοντελοποίηση συστήματος Πρόβλημα εκλογής αρχηγού
CSMA/CA στο Κατανεμημένα Ενσωματωμένα Συστήματα Πραγματικού Χρόνου
CSMA/CA στο 802.11 Κατανεμημένα Ενσωματωμένα Συστήματα Πραγματικού Χρόνου Medium Access Control Συνήθως πολλοί κόμβοι μοιράζονται ένα κοινό μέσο Πρόβλημα: απαιτείται διαχείριση της πρόσβασης των κόμβων
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Υποθέσεις εργασίας Νήματα/διεργασίες με κοινή μνήμη Αυτόματη διακοπή/εναλλαγή νημάτων/διεργασιών (π.χ. πάνω από 1 CPU
Κατανεμημένα Συστήματα Ι
Συναίνεση χωρίς την παρουσία σφαλμάτων Κατανεμημένα Συστήματα Ι 4η Διάλεξη 27 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου Κατανεμημένα Συστήματα Ι 4η Διάλεξη 1 Συναίνεση χωρίς την παρουσία σφαλμάτων Προηγούμενη
Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 3: Καθολικά κατηγορήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός Ενότητα # 3: Καθολικά κατηγορήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια
Κινητά και Διάχυτα Συστήματα. Ενότητα # 8: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Κινητά και Διάχυτα Συστήματα Ενότητα # 8: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του
Κατανεμημένες δοσοληψίες
Κατανεμημένες δοσοληψίες Κατανεμημένα Συστήματα 2015-2016 http://www.cslab.ece.ntua.gr/courses/distrib Στο προηγούμενο μάθημα Απλές δοσοληψίες (transactions) Flat Nested Ιδιότητες ACID Και κυρίως atomicity
ΗΥ335 - Δίκτυα Υπολογιστών Χειμερινό εξάμηνο 2010-2011 Φροντιστήριο Ασκήσεις στο TCP
ΗΥ335 - Δίκτυα Υπολογιστών Χειμερινό εξάμηνο 2010-2011 Φροντιστήριο Ασκήσεις στο TCP Άσκηση 1 η : Καθυστερήσεις Θεωρείστε μία σύνδεση μεταξύ δύο κόμβων Χ και Υ. Το εύρος ζώνης του συνδέσμου είναι 10Gbits/sec
ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧ/ΚΩΝ ΚΑΙ ΜΗΧ. ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΕΠΙΚΟΙΝΩΝΙΩΝ, ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα 1. Μήνυμα μήκους
Πρωτόκολλα Ελέγχου προσπέλασης μέσου
Πρωτόκολλα Ελέγχου προσπέλασης μέσου Πρόβλημα: ταυτόχρονη μετάδοση δύο ή περισσότερων κόμβων στο ίδιο κανάλι (μήκος κύματος). Ένα τέτοιο γεγονός ονομάζεται σύγκρουση. Ένα πρωτόκολλο MAC έχει συνήθως ως
Διάλεξη 11: Αιτιότητα Διάταξη Γεγονότων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι
Διάλεξη 11: Αιτιότητα Διάταξη Γεγονότων ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Ορισμός του «Πριν- Από» (Happens- Before) Λογικά Ρολόγια Αλγόριθμος Χρονοσφραγίδων του Lamport Διανυσματικά
Δρομολόγηση (Routing)
Δρομολόγηση (Routing) Περίληψη Flooding Η Αρχή του Βέλτιστου και Δυναμικός Προγραμματισμός ijkstra s Algorithm Αλγόριθμοi Δρομολόγησης Link State istance Vector Δρομολόγηση σε Κινητά Δίκτυα Δρομολόγηση
Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε
Οµοφωνία σε σύστηµα µε αϖοτυχίες κατάρρευσης διεργασιών Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 1 Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες
Πρωτόκολλο ARP. Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901
Πρωτόκολλο ARP Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901 Ποιο είναι το έργο του Πρωτοκόλλου Μετατροπής Διεύθυνσης (Address Resolution Protocol ARP) Κάνει δυναμική μετατροπή των IP διευθύνσεων σε φυσικές
Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1
Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας
ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET
ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET Κεφάλαιο 4: Τεχνικές Μετάδοσης ΜΕΤΑΓΩΓΗ Τεχνική µεταγωγής ονομάζεται ο τρόπος µε τον οποίο αποκαθίσταται η επικοινωνία ανάµεσα σε δύο κόµβους με σκοπό την
Διάλεξη 6: Εκλογή Προέδρου σε Σύγχρονους Δακτύλιους. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι
Διάλεξη 6: Εκλογή Προέδρου σε Σύγχρονους Δακτύλιους ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Μη Ομοιόμορφος Αλγόριθμος Εκλογής Προέδρου σε Σύγχρονο Δακτύλιο Ομοιόμορφος Αλγόριθμος Εκλογής Προέδρου
Λύση: Λύση: Λύση: Λύση:
1. Ένας δίαυλος έχει ρυθµό δεδοµένων 4 kbps και καθυστέρηση διάδοσης 20 msec. Για ποια περιοχή µηκών των πλαισίων µπορεί η µέθοδος παύσης και αναµονής να έχει απόδοση τουλάχιστον 50%; Η απόδοση θα είναι
Επαλήθευση Πρωτοκόλλων
Επαλήθευση Πρωτοκόλλων Περίληψη Προδιαγραφή και επαλήθευση Πρωτοκόλλων Μηχανές Πεπερασμένων Καταστάσεων (Finite State Machines) Petri-Nets 1 Μηχανές Πεπερασμένων Καταστάσεων (Finite State Machines) Περιγραφή
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Υποθέσεις εργασίας Νήματα/διεργασίες με κοινή μνήμη Αυτόματη διακοπή/εναλλαγή νημάτων/διεργασιών (π.χ. πάνω από 1 CPU
ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα. λ από τον ρυθμό μετάδοσής της. Υποθέτοντας ότι ο κόμβος A
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧ/ΚΩΝ ΚΑΙ ΜΗΧ. ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΕΠΙΚΟΙΝΩΝΙΩΝ, ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα 1. Στο δίκτυο
4.1.1 Πρωτόκολλο TCP - Δομή πακέτου
4.1.1 Πρωτόκολλο TCP - Δομή πακέτου 1 / 38 Παράδειγμα Έστω ότι θέλουμε να αποστείλουμε ένα μήνυμα μέσω ηλεκτρονικού ταχυδρομείου. Αρχικά η εφαρμογή χρησιμοποιώντας τα πρωτόκολλα του επιπέδου εφαρμογής
Χώροι Πλειάδων (Tuple Spaces) Ταυτόχρονος Προγραμματισμός 1
Χώροι Πλειάδων (Tuple Spaces) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Tuple space Ένας κοινός χώρος αποθήκευσης δεδομένων / μηνυμάτων, με μορφή πλειάδων (tuples) Παρέχονται ειδικές λειτουργίες για
Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI Β. Μεγαλοοικονόμου Κατανεμημένες Βάσεις Δεδομένων (παρουσίαση βασισμένη εν μέρη σε σημειώσεις των Silberchatz, Korth και Sudarshan και του C. Faloutsos)
οµήτης παρουσίασης Marzullo και Neiger αλγόριθµος Παράδειγµα Distributed Debugging Εισαγωγικά
Distributed Debugging Τσώτσος Θοδωρής Φωλίνας Νίκος Εισαγωγικά Επιθυµούµε να µπορούµε να παρατηρούµε την εκτέλεση του προγράµµατος κατά τη διάρκειά του. Έχουµε τη δυνατότητα να ελέγξουµε αν οι απαιτούµενες
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Υποθέσεις εργασίας Νήματα/διεργασίες με κοινή μνήμη Αυτόματη διακοπή/εναλλαγή νημάτων/διεργασιών (π.χ. πάνω από 1 CPU
Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων
Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Υ Ενότητα 1η: Εισαγωγή στην Οργάνωση Η/Υ Άσκηση 1: Αναλύστε τη διαδοχική εκτέλεση των παρακάτω εντολών MIPS με βάση τις
Δίκτυα Θεωρία
Δίκτυα Θεωρία 2016-17 Κεφάλαιο 4 1. Γιατί η μεταφορά των δεδομένων δεν καλύπτεται επαρκώς από το Επίπεδο Δικτύου; Επειδή το επίπεδο δικτύου από τη φύση του είναι αναξιόπιστο, τα πακέτα φθάνουν καθυστερημένα,
Χώροι Πλειάδων (Tuple Spaces) Ταυτόχρονος Προγραμματισμός 1
Χώροι Πλειάδων (Tuple Spaces) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Tuple space Ένας κοινός χώρος αποθήκευσης δεδομένων / μηνυμάτων, με μορφή πλειάδων (tuples) Παρέχονται ειδικές λειτουργίες για
Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι)
Κρυπτογραφία Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι) Κρυπτοσυστήματα Δημοσίου κλειδιού Αποστολέας P Encryption C Decryption P Παραλήπτης Προτάθηκαν το 1976 Κάθε συμμετέχων στο
Δροµολόγηση (Routing)
Δροµολόγηση (Routing) Περίληψη Flooding Η Αρχή του Βέλτιστου και Δυναµικός Προγραµµατισµός Dijkstra s Algorithm Αλγόριθµοi Δροµολόγησης Link State Distance Vector Δροµολόγηση σε Κινητά Δίκτυα Δροµολόγηση
ΨΗΦΙΑΚΑ ΠΙΣΤΟΠΟΙΗΤΙΚΑ ΓΙΑ ΑΣΦΑΛΗ ΚΑΙ ΠΙΣΤΟΠΟΙΗΜΕΝΗ ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΗΝ ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ. Οδηγίες προς τις Συνεργαζόμενες Τράπεζες
ΨΗΦΙΑΚΑ ΠΙΣΤΟΠΟΙΗΤΙΚΑ ΓΙΑ ΑΣΦΑΛΗ ΚΑΙ ΠΙΣΤΟΠΟΙΗΜΕΝΗ ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΗΝ ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ Οδηγίες προς τις Συνεργαζόμενες Τράπεζες 1. Εισαγωγή Γνωριμία με τα Ψηφιακά Πιστοποιητικά Η χρήση ηλεκτρονικών
Η πιθανότητα επομένως που ζητείται να υπολογίσουμε, είναι η P(A 1 M 2 ). Η πιθανότητα αυτή μπορεί να γραφεί ως εξής:
Άσκηση 1: Ένα κουτί περιέχει 3 άσπρες και 2 μαύρες μπάλες. Αφαιρούμε τυχαία δύο μπάλες διαδοχικά. Ποια η πιθανότητα η πρώτη μπάλα να είναι άσπρη και η δεύτερη μπάλα να είναι μαύρη; Λύση: Αρχικά ορίζουμε
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα
Απαντήσεις. Απάντηση. Απάντηση
6 η σειρά ασκήσεων Άλκης Γεωργόπουλος Α.Μ. 39 Αναστάσιος Κοντογιώργης Α.Μ. 43 Άσκηση 1. Απαντήσεις Η αλλαγή ενός ρολογιού προς τα πίσω µπορεί να προκαλέσει ανεπιθύµητη συµπεριφορά σε κάποια προγράµµατα.
Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Τρίτη Πρόοδος [110 μονάδες] Απαντήσεις
ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2011-20112 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη 15 Δεκεμβρίου 2011 Τρίτη Πρόοδος [110 μονάδες] Απαντήσεις 1. Θεωρήσετε
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΕΚΦΩΝΗΣΕΙΣ ΕΡΓΑΣΤΗΡΙΑΚΩΝ ΑΣΚΗΣΕΩΝ 5o Εργαστήριο ΑΣΚΗΣΗ 1: Δίνονται οι εξής προδιαγραφές για τη δημιουργία ενός διαγράμματος δραστηριοτήτων: γίνεται η παραλαβή ενός ηλεκτρονικού μηνύματος,
Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο
Αρχές Δικτύων Επικοινωνιών Επικοινωνίες Δεδομένων Μάθημα 4 ο Τα επικοινωνιακά δίκτυα και οι ανάγκες που εξυπηρετούν Για την επικοινωνία δύο συσκευών απαιτείται να υπάρχει μεταξύ τους σύνδεση από σημείο