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

Σχετικά έγγραφα
Συντονισμός και συμφωνία

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

Αντίγραφα. Κατανεμημένα Συστήματα /12/2017 Big Data related projects

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

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

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

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

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

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

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

Αντίγραφα. Κατανεμημένα Συστήματα /1/2017 Big Data related projects

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

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

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

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

Παράδειγµα: Προσοµοίωση µιας ουράς FIFO Οι λειτουργίες που υποστηρίζονται από µια ουρά FIFO είναι: [enq(q,x), ack(q)] [deq(q), return(q,x)] όπου x είν

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

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

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

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

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

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

ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΤΕΛΟΣ 1ΗΣ ΣΕΛΙΔΑΣ

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

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

Πρωτόκολλο ARP. Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901

Επεξεργασία Ερωτήσεων

Ομαδική Επικοινωνία (Group Communication) Κατανεμημένα Συστήματα 1

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

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

Επεξεργασία Ερωτήσεων

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

Επεξεργασία Ερωτήσεων

Συστήματα Peer To Peer (P2P Systems) Γαλάνης Δημήτριος Παπαδημητρίου Χριστίνα

1. Δεν μπορεί να γίνει κλήση μίας διαδικασίας μέσα από μία συνάρτηση.

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

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

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

6.2 Υπηρεσίες Διαδικτύου

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΑΣΦΑΛΕΙΑ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ασκήσεις

Τρίτη Πρόοδος [110 μονάδες] Απαντήσεις

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

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

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

ΘΕΜΑ Α. Λύση: 1. Σωστό, 2. Λάθος, 3. Σωστό, 4. Λάθος, 5. Λάθος. Ποια η διαφορά μεταξύ διερμηνευτή και μεταγλωττιστή; Απάντηση:

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

7.7 Πρωτόκολλο ARP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ»

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

Improving the performance of TCP in the case of packet reordering. Στρατάκη Μαρία

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙΔΕΣ

Εικονική Μνήμη (Virtual Μemory)

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

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

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

Κατανεμημένες υπηρεσίες καταλόγου (distributed directory services) Κατανεμημένα Συστήματα 1

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Τµήµα Πληροφορικής. Δοµές Δεδοµένων - Εργασία 2. Φθινοπωρινό Εξάµηνο Διδάσκων: E. Μαρκάκης

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

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

Κατανεμημένες υπηρεσίες καταλόγου (distributed directory services) Κατανεμημένα Συστήματα 1

ΟΔΗΓΟΣ ΔΙΑΣΥΝΔΕΣΗΣ για το Έργο «Ανάπτυξη Πλατφόρμας Παροχής Υπηρεσιών Αποστολής και Λήψης Σύντομων Μηνυμάτων»

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

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

ΔΙΚΤΥΑ Η/Υ ΙΙ. Πρωτόκολλα δρομολόγησης

Εξοικείωση με τις εντολές ipconfig και ping

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

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

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

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

Το εσωτερικό ενός Σ Β

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

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

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

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

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Να γράψετε στο τετράδιό σας τον αριθμό κάθε πρότασης και τον αντίστοιχο χαρακτηρισμό ( Σ - σωστό, Λ - λάθος)

Consensus. Κατανεμημένα Συστήματα /1/2016 Big Data related projects

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 05/03/2012

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός

Εργαστήριο 4 Πρωτόκολλα Δρομολόγησης

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΠΛΑΤΦΟΡΜΑΣ OPENSMS

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

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ Α.Ε.Π.Π. Γ ΤΕΧΝΟΛΟΓΙΚΗΣ. Όνομα:.. Βαθμός: /100

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. Γρήγορος οδηγός αναφοράς 1/4/2017

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

Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1

Transcript:

Κατανεμημένα Συστήματα Ασκήσεις 2016-2017 http://www.cslab.ece.ntua.gr/courses/distrib

Άσκηση 1 3 διεργασίες, η P1, η P2 και η P3 στέλνουν μεταξύ τους multicast μηνύματα. Σε περίπτωση που θέλουμε να εξασφαλίσουμε: (α) ταξινόμηση FIFO (β) αιτιώδη (causal) ταξινόμηση P1 a b c d e f P2 g h i j k l P3 m n o p q r 2

Flashback: Διάταξη FIFO Η διάταξη της παράδοσης των μηνυμάτων ακολουθεί τη σειρά αποστολής τους από κάθε διεργασία Αν μια σωστή διεργασία στείλει multicast(g,m) και μετά multicast(g,m ), τότε κάθε σωστή διεργασία που παραδίδει τοm θα έχει παραδώσει ήδη το m Παράδειγμα: P1: m0, m1, m2 P2: m3, m4, m5 P3: m6, m7, m8 FIFO -> (m0, m3, m6, m1, m4, m7, m2, m5, m8)

Διάταξη FIFO Εξέταση μηνυμάτων από κάθε διεργασία με τη σειρά με την οποία εστάλησαν Κάθε διεργασία κρατά έναν αύξοντα αριθμό για κάθε μια από τις άλλες διεργασίες Όταν παραλαμβάνεται ένα μήνυμα, αν ο αύξων αριθμός του είναι: Ο αναμενόμενος (επόμενος στη σειρά), το αποδεχόμαστε Μεγαλύτερος από τον αναμενόμενο, το τοποθετούμε σε ουρά Μικρότερος από τον αναμενόμενο, το απορρίπτουμε

FIFO 0 0 0 P1 0 0 0 P2 0 0 0 P3 1 0 0 send 2 0 0 send 2 0 1 accept 3 0 1 send 3 0 2 accept 2 2 1 0 1 1 3 1 0 0 1 send 3 accept 1 3 1 2 accept a b c d e f m g 1 1 h 2 0 1 buffer 0 0 1 i 1 0 0 1 0 1 2 0 1 2 1 1 2 1 2 3 1 2 accept send accept accept send accept 1 n o p q r j 1 1 1 2 1 2 3 1 2 accept 2 accept accept 2 1 1 accept 2 k l

Flashback: Αιτιώδης διάταξη Η διάταξη της παράδοσης των μηνυμάτων σε κάθε διεργασία διατηρεί τις σχέσεις happened-before ανάμεσα σε όλες τις διεργασίες Αν multicast(g,m) multicast(g,m ) τότε κάθε σωστή διεργασία που παραδίδει τοm θα έχει παραδώσει ήδη το m Παράδειγμα P1: m0, m1, m2 P2: m3, m4, m5 P3: m6, m7, m8 Σχέσεις happened-before: m0 m4, m5 m8 Causal -> (m0, m3, m6, m1, m4, m7, m2, m5, m8)

Αιτιώδης διάταξη Κάθε διεργασία διατηρεί διανυσματικό ρολόι Κάθε μετρητής αναπαριστά τον αριθμό των μηνυμάτων που έχουν ληφθεί από κάθε άλλη διεργασία Κατά το multicast, η διεργασία-αποστολέας αυξάνει τον μετρητή της και επισυνάπτει το διάνυσμα στο μήνυμα Κατά τη λήψη ενός μηνύματος multicast ο παραλήπτης περιμένει μέχρι να ικανοποιηθεί η αιτιώδης διάταξη, δλδ: Να έχει παραδώσει όσα μηνύματα έχει στείλει ο αποστολέας στο παρελθόν Να έχει παραδώσει όλα τα μηνύματα που είχε παραδώσει ο αποστολέας πριν την αποστολή του multicast

Αλγόριθμος Όταν η Pb στέλνει μήνυμα Αυξάνει τη δική του τιμή και στέλνει το διάνυσμα Vb[b] = Vb[b] + 1 με το μήνυμα Όταν η Pa λάβει μήνυμα από την Pb Τσεκάρει αν το μήνυμα ήρθε με σειρά FIFO από την Pb Vb[b] == Va[b] + 1? Τσεκάρει ότι το μήνυμα δεν εξαρτάται από κάτι που δεν έχει δει ακόμα η Pa i, i b: Vb[i] Va[i]? Αν ικανοποιούνται και οι δύο συνθήκες, το Pa παραδίδει το μήνυμα Αλλιώς το κρατά σε αναμονή μέχρι να ικανοποιηθούν οι συνθήκες

Causal 0 0 0 P1 0 0 0 P2 0 0 0 P3 1 0 0 send 3 1 1 2 1 2 accept 2 0 0 2 0 1 3 0 1 buffer 3 1 2 send accept send 3 0 1 accept a b c d e f 200 200 100 301 100 1 0 1 0 1 0 301 buffer send 010 g h 0 0 0 k l 2 0 0 i j 1 1 0 accept 2 1 2 3 1 2 buffer 010 1 1 1 212 accept accept 101 0 0 0 accept 101 2 1 1 accept 212 m n o p q r 1 0 0 1 0 1 2 0 1 2 1 1 2 1 2 3 1 2 accept send accept accept send accept

Άσκηση 2 Dataset με δημογραφικά στοιχεία: {name, age, address, zipcode, salary}. Παράγετε τη λίστα από zipcodes στα οποία ο μέσος μισθός είναι: (α) κάτω από $100K, (β) από $100Κ μέχρι $500Κ, και (γ) πάνω από $500Κ. MAP(key1, value1): //επεξεργασία για κάθε <key1,value1> emit(key2,value2) REDUCE(key2,list(value2)): //επεξεργασία για κάθε <key2, list(value2)> emit(key3,value3)

Άσκηση 2 1. Μέσος µισθός ανά zipcode map(key, value): // key: some tupleid; //value: tuple {name, age, address, zipcode, salary} emit(zipcode, salary) reduce(zipcode, list(salary)): // key: a zipcode; value: an iterator over salaries result = 0 count = 0 for each salary s in list(salary){ result += s count++ } mean_salary_per_zip = result/count emit(zipcode, mean_salary_per_zip)

Άσκηση 2 2. Οµαδοποίηση zipcodes map(zipcode, mean_salary_per_zip): Group = if salary_per_zip <100k group = less_than_100 else if salary_per_zip>=500k group = more_than_500 else group = between_100_500 emit(group, zipcode) reduce(group, list(zipcode)): emit(group, list(zipcode))

Άσκηση 3 Chord με αναγνωριστικά 0-99 και 8 κόμβους: 86 87 1 8 82 72 67 32

Άσκηση 3 Πόσα fingers είναι απαραίτητα στον πίνακα δρομολόγησης; Ids 0-99 -> 2 7 =128 > 100 οπότε 7 fingers Καταγράψτε τον πίνακα finger του κόμβου 82 f n (i) = Successor((n+2 i )mod100) f 82 (0) = Successor((82+1)mod100)= Successor(83) = 86 f 82 (1) = Successor((82+2) mod100) = Successor(84) = 86 f 82 (2) = Successor((82+4) mod100) = Successor(86) = 86 f 82 (3) = Successor((82+8) mod100) = Successor(90) = 1 f 82 (4) = Successor((82+16) mod100) = Successor(98) = 1 f 82 (5) = Successor((82+32) mod100)= Successor(14) = 32 f 82 (6) = Successor((82+64) mod100)= Successor(46) = 67

Άσκηση 3 Σημειώστε τις περιοχές των αναγνωριστικών (ids) για τις οποίες είναι υπεύθυνος o κάθε κόμβος στον δακτύλιο. PeerID From To 1 88 1 8 2 8 82 86 87 1 8 32 9 32 67 33 67 72 68 72 82 73 82 86 83 86 72 67 32 87 87 87

Άσκηση 3 Ο κόμβος 82 εκτελεί αναζήτηση για το αντικείμενο με id 7. Καταγράψτε το μονοπάτι που θα ακολουθηθεί (με χρήση finger tables) μέχρι την εύρεσή του. Υποθέτουμε ότι το δίκτυο είναι σταθερό και δε συμβαίνουν σφάλματα. 82 -> 1 -> 8 86 87 1 8 82 72 67 32

Άσκηση 4 Τρεις servers, Χ, Υ και Z, διατηρούν αντίγραφα των δεδομένων Α και Β. Για τη διατήρηση της συνέπειας των αντιγράφων εφαρμόζεται ο αλγόριθμος της ομοφωνίας με στατική απαρτία (static quorum consensus) με R = W = 2. Οι αρχικές τιμές των αντιγράφων για το Α είναι 100 και για το Β είναι 50 σε όλους τους servers. Ένας client διαβάζει την τιμή του Α και μετά τη γράφει στο Β.

Flashback Η απόφαση για το πόσοι RMs πρέπει να εμπλακούν σε ένα operation πάνω σε αντίγραφα λέγεται επιλογή απαρτίας (quorum selection) Κανόνες: Τουλάχιστον r αντίγραφα πρέπει να προσπελαστούν για ένα read Τουλάχιστον w αντίγραφα πρέπει να προσπελαστούν για ένα write r + w > N, όπου N ο αριθμός των αντιγράφων w > N/2 Κάθε αντικείμενο έχει ένα version number ή ένα συνεπές timestamp

Άσκηση 4 Ένα network partition απομονώνει τον server Z από τους Χ και Υ. Πώς θα εκτελεστούν οι λειτουργίες αν ο client μπορεί να προσπελάσει (i) μόνο τον Χ και Υ και (ii) μόνο τον Ζ. Έστω ότι αρχικά όλα στην v0 X Y Z A= 100 (vo) A= 100(vo) A= 100(vo) B= 50(vo) B= 50(vo) B= 50(vo) i) Αφού R=2, διαβάζει την τιμή Α (100) από τον Χ ή τον Υ Αφού W=2, γράφει την τιμή Β=100 στον Χ και στον Υ ii) Δεν μπορεί ούτε να γράψει ούτε να διαβάσει, έχει πρόσβαση γιατί το quorum είναι 1 και στις 2 περιπτώσεις

Άσκηση 4 Ο διαμερισμός επιδιορθώνεται και στη συνέχεια συμβαίνει νέος διαμερισμός που χωρίζει τους Χ και Ζ από τον Υ. Περιγράψτε τι θα συμβεί αν κάποιος client θέλει να διαβάσει την τιμή του B και να την αυξήσει κατά 20, αν μπορεί να προσπελάσει μόνο τον Χ και Ζ X Y Z A= 100 (v0) A= 100(v0) A= 100(vo) B= 100(v1) B= 100(v1) B= 50(vo) To read request χρειάζεται quorum από X και Z. Διαφορετικές versions - > ο Ζ ανανεώνει την τιμή του Β με την πιο πρόσφατη version από τον X Υπάρχει read quorum 2 αλλά και write quorum 2