2005-2006:Κατανεμημένα Συστήματα Ι:Ασκήσεις

Από DistrSys

Πίνακας περιεχομένων

1η άσκηση (Πέμπτη, 10 Νοεμβρίου 2005)

1o Πρόβλημα
Για τον αλγόριθμο LCR (ο αλγόριθμος των LeLann, Chang και Roberts)
  • Ορίστε μια διάταξη ταυτοτήτων τέτοια ώστε η εκτέλεση του αλγορίθμου να προκαλέσει την ανταλλαγή Ω(n2) μηνυμάτων.
  • Ορίστε μια διάταξη ταυτοτήτων τέτοια ώστε η εκτέλεση του αλγορίθμου να προκαλέσει την ανταλλαγή O(n) μηνυμάτων.
  • Δείξετε ότι το πλήθος των μηνυμάτων που ανταλλάσσονται από την εκτέλεση του αλγορίθμου κατά μέση τιμή, είναι O(n log n), όπου η μέση τιμή προκύπτει από όλες τις πιθανές διατάξεις ταυτοτήτων, θεωρώντας τες ισοπίθανες.
2o Πρόβλημα
Σχεδιάστε έναν αλγόριθμο για σύγχρονα κατανεμημένα συστήματα, όπου το δίκτυο επικοινωνίας μπορεί να αναπαρασταθεί από ένα γενικό γράφημα (μη-κατευθηνόμενο), που επιτρέπει σε μία διεργασία u0 να εντοπίσει την διεργασία umax που έχει την μεγαλύτερη απόσταση στο γράφημα (δηλ. να μάθει την ταυτότητά της umax και την απόσταση της). Περιγράψτε τον αλγόριθμό σας, δώστε ψευδο-κώδικα και αναλύστε την χρονική πολυπλοκότητα και πολυπλοκότητα μηνυμάτων.
3o Πρόβλημα
Σχεδιάστε έναν αλγόριθμο για το πρόβλημα της αναζήτησης κατά βάθος σε σύγχρονα κατανεμημένα συστήματα, όπου το δίκτυο επικοινωνίας μπορεί να αναπαρασταθεί από ένα γενικό γράφημα (μη-κατευθηνόμενο). Υποθέτουμε μια διεργασία u0 η οποία ξεκινάει την εκτέλεση του αλγορίθμου. Στο τέλος της εκτέλεσης του αλγορίθμου όλες οι διεργασίες γνωρίζουν τον γονέα τους στο δέντρο αναζήτησης κατά βάθος. Περιγράψτε τον αλγόριθμό σας, δώστε ψευδο-κώδικα και αναλύστε την χρονική πολυπλοκότητα και πολυπλοκότητα μηνυμάτων.


Παράδοση:

  • Η άσκηση είναι ατομική
  • Η παράδοση γίνεται μέσω ηλεκτρονικού ταχυδρομείου στον Γιώργο Μυλωνά
  • Η προθεσμία υποβολής είναι η Δευτέρα 28 Νοεμβρίου, ώρα 20:00


Σχετικό υλικό:


Απαντήσεις:


Βαθμολογία:


 ΑΜ   Ονοματεπώνυμο   Βαθμός 
 2370  Χριστόφορος-Λιβάνης Σπυρίδων  7 
 2694  Νιάβης Παναγιώτης  10 
 2818  Βεργούλης Αθανάσιος  10 
 2819  Βιέννας Εμμανουήλ  5 
 2825  Γεροβασίλης Βασίλειος  5 
 2847  Δάφνη-Σταυρούλα Ζώη  10 
 2853  Καντούνης Κάρολος  10 
 2856  Κατσάνος Ιωάννης  9 
 2860  Κολαΐτη Ειρήνη  10 
 2862  Κοντάκης Απόστολος  9 
 2863  Κοτρότσος Ιωάννης  2.5 
 2867  Κουνένης Γεώργιος  10 
 2875  Λεδάκης Ιωάννης  10 
 2883  Μαζιώτης Αλέξανδρος  2.5 
 2885  Μαλή Γεωργία  10 
 2890  Μιχαήλ Παναγιώτης  10 
 2906  Ξαγοράρης Μάρκος  9 
 2915  Παπαχαραλάμπους Λουκάς  5 
 2918  Παππά Αντιγόνη  10 
 2921  Πασχούλας Χρυσοβαλάντης  7 
 2923  Πατρούμπα Δήμητρα  10 
 2926  Πετρόπουλος Αναστάσιος  10 
 2948  Σκούρα Αγγελική  9.5 
 2951  Σπυριδάκης Γεώργιος  10 
 2963  Τζαβίκας Σπυρίδων  5 
 2964  Τζελάτης Ιωάννης  10 
 2965  Τόκας Θεοφάνης  5 
 2975  Φίλος - Ράτσικας Αλέξης  7 
 2979  Χαρίση Αμαλία  10 
 2982  Χέλμης Χαράλαμπος  10 
 2983  Χωμενίδης Χαράλαμπος  5 
 3013  Καλλίγερος Ιωάννης-Χρήστος  8 
 3032  Οικονόμου Παναγιώτης  2.5 


2η άσκηση (Πέμπτη, 12 Δεκεμβρίου 2005)

1o Πρόβλημα
Υλοποιήστε τον αλγόριθμο εκλογής αρχηγού PLE (ο αλγόριθμος του Peterson) για ασύγχρονα κατανεμημένα συστήματα (PLeader) στο περιβάλλον υλοποίησης κατανεμημένων αλγορίθμων DAP.
2o Πρόβλημα
Υλοποιήστε τον αλγόριθμο κατασκευής επικαλυπτικού δέντρου για ασύγχρονα κατανεμημένα συστήματα (SpanningTree) στο περιβάλλον υλοποίησης κατανεμημένων αλγορίθμων DAP.
3o Πρόβλημα
Υλοποιήστε τον αλγόριθμο αναζήτησης κατά εύρος για σύγχρονα κατανεμημένα συστήματα (SynchBFS) σε συνδυασμό με τον απλό συγχρονιστή (SimpleSynch) για ασύγχρονα κατανεμημένα συστήματα στο περιβάλλον υλοποίησης κατανεμημένων αλγορίθμων DAP (όνομα τελικού αλγόριθμου: SimpleSyncBFS)
4o Πρόβλημα
Υλοποιήστε τον αλγόριθμο αναζήτησης κατά εύρος για ασύγχρονα κατανεμημένα συστήματα (AsynchBFS) στο περιβάλλον υλοποίησης κατανεμημένων αλγορίθμων DAP.


Παράδοση:

  • Η άσκηση είναι ατομική
  • Η παράδοση γίνεται μέσω ηλεκτρονικού ταχυδρομείου στον Γιώργο Μυλωνά
  • Η προθεσμία υποβολής είναι η Δευτέρα 20 Φεβρουαρίου, ώρα 20:00


Παρατηρήσεις:

  • Για την υλοποίηση των αλγόριθμων μπορείτε να χρησιμοποιήσετε όποιες δομές κρίνετε απαραίτητες από την βιβλιοθήκη της C++ (π.χ. vector) ή την LEDA.
  • Το αρχείο που θα παραδώσετε πρέπει να είναι της μορφής AM#.tar.gz (όπου # είναι το ΑΜ) και να περιέχει
    1. ένα αρχείο README.TXT με το Ονοματεπώνυμο σας, Έτος και ΑΜ
    2. ένα αρχείο για κάθε πρόβλημα (η ονομασία προκύπτει από το όνομα του αλγορίθμου και την κατάληξη .c, π.χ. PLeader.C) -- προσοχή: οι ονομασίες είναι case-sensitive
    3. ένα αρχείο Makefile
  • O κώδικας πρέπει να είναι καλά σχολιασμένος (με την χρήση σχολίων σε στρατηγικό και τακτικό επίπεδο). Δεν χρειάζεται να παραδώσετε αναφορά.
  • Για τον έλεγχο της λειτουργίας των αλγόριθμων μπορείτε να χρησιμοποιήσετε τα αρχεία τοπολογίας του DAP:


Σχετικό υλικό:


Βαθμολογία:

 ΑΜ   Ονοματεπώνυμο   Βαθμός 
 2370  Χριστόφορος-Λιβάνης Σπυρίδων  5 
 2694  Νιάβης Παναγιώτης  10 
 2818  Βεργούλης Αθανάσιος  6 
 2819  Βιέννας Εμμανουήλ  8 
 2847  Δάφνη-Σταυρούλα Ζώη  10 
 2853  Καντούνης Κάρολος  10 
 2856  Κατσάνος Ιωάννης  10 
 2863  Κοτρότσος Ιωάννης  2.5 
 2860  Κολαΐτη Ειρήνη  10 
 2862  Κοντάκης Απόστολος  10 
 2875  Λεδάκης Ιωάννης  5 
 2883  Μαζιώτης Αλέξανδρος  2.5 
 2885  Μαλή Γεωργία  10 
 2890  Μιχαήλ Παναγιώτης  10 
 2915  Παπαχαραλάμπους Λουκάς  8 
 2918  Παππά Αντιγόνη  9 
 2923  Πατρούμπα Δήμητρα  10 
 2926  Πετρόπουλος Αναστάσιος  6 
 2948  Σκούρα Αγγελική  10 
 2951  Σπυριδάκης Γεώργιος  7 
 2955  Στεφόπουλος Περικλής  2.5 
 2964  Τζελάτης Ιωάννης  8 
 2975  Φίλος - Ράτσικας Αλέξης  5 
 2979  Χαρίση Αμαλία  10 
 2982  Χέλμης Χαράλαμπος  10 
 3013  Καλλίγερος Ιωάννης-Χρήστος  2.5 
 3032  Οικονόμου Παναγιώτης  2.5 


Εξέταση Φεβρουαρίου (Δευτέρα, 13 Φεβρουαρίου 2006)

1o Θέμα [20%]
Θεωρείστε ένα κατανεμημένο σύστημα από n=16 διεργασίες, συνδεδεμένες μέσω ενός δικτύου κατευθυνόμενου δακτυλίου. Κάθε διεργασία έχει μια ταυτότητα u1, ..., u16 που είναι αντίστοιχα, 25,3,6,15,19,8,7,14,4,22,21,18,24,1,10,23
  1. Έστω ότι το κατανεμημένο σύστημα είναι σύγχρονο και οι διεργασίες εκτελούν τον αλγόριθμο εκλογής αρχηγού LCR (ο αλγόριθμος των LeLann, Chang και Roberts). Ποια διεργασία θα εκλεγεί αρχηγός? Πόσα μηνύματα θα ανταλλάξουν οι διεργασίες έως ότου εκλεγεί ο αρχηγός? Σε ποιόν γύρο θα εκλεγεί ο αρχηγός?
  2. Έστω ότι το κατανεμημένο σύστημα είναι ασύγχρονο και οι διεργασίες εκτελούν τον αλγόριθμο εκλογής αρχηγού AsynchPLE (ο αλγόριθμος του Peterson). Ποια διεργασία θα εκλεγεί αρχηγός? Πόσα μηνύματα θα ανταλλάξουν οι διεργασίες έως ότου εκλεγεί ο αρχηγός? Σε ποιόν γύρο θα εκλεγεί ο αρχηγός?
2o Θέμα [20%]
Θεωρείστε ένα ασύγχρονο κατανεμημένο σύστημα με n διεργασίες συνδεδεμένες μέσω ενός γενικού δικτύου με m κανάλια επικοινωνίας. Οι διεργασίες εκτελούν τον αλγόριθμο αναζήτησης κατα εύρος AsynchBFS με ρίζα του δέντρου την διεργασία u0.
  1. Περιγράψτε μια εκτέλεση του αλγόριθμου που χρησιμοποιεί τον μέγιστο αριθμό μηνυμάτων.
  2. Περιγράψτε μια εκτέλεση του αλγόριθμου που απαιτεί τον μέγιστο χρόνο για να τερματίσει.
3o Θέμα [30%]
Θεωρείστε ένα ασύγχρονο κατανεμημένο σύστημα με n διεργασίες συνδεδεμένες μέσω ενός γενικού, μη-κατευθυνόμενου δικτύου με m κανάλια επικοινωνίας. Κάθε διεργασία έχει μια μοναδική ταυτότητα και δεν γνωρίζει το σύνολο των διεργασιών, ούτε την τοπολογία του δικτύου. Σχεδιάστε έναν κατανεμημένο αλγόριθμο που να λύνει το "πρόβλημα της αναγνώρισης": κάθε διεργασία είναι ενήμερη για τις ταυτότητες όλων των άλλων διεργασιών. Δώστε την χρονική πολυπλοκότητα και την πολυπλοκότητα μηνυμάτων του αλγόριθμου σας.
4o Θέμα [30%]
Θεωρείστε ένα σύγχρονο κατανεμημένο σύστημα με n διεργασίες συνδεδεμένες μέσω ενός γενικού, μη-κατευθυνόμενου δικτύου με m κανάλια επικοινωνίας, όπου κάθε διεργασία γνωρίζει τη δομή του δικτύου. Κάθε διεργασία u δέχεται ως είσοδο μία τιμή iu από το σύνολο S, δηλ. iu∈S. Οι διεργασίες πρέπει να συμφωνήσουν σε μια κοινή τιμή εκτελώντας τον αλγόριθμο συναίνεσης FloodSet. Έστω ότι κατά την εκτέλεση του αλγόριθμου προκύπτουν σ σφάλματα τερματισμού. Επιτρέπουμε στον αλγόριθμο να εκτελεστεί για σ γύρους αντί για σ+1 γύρους.
  1. Περιγράψτε ένα σενάριο όπου παραβιάζονται τα κριτήρια που διατυπώθηκαν για το πρόβλημα της συναίνεσης.
  2. Ποιος είναι ο μεγαλύτερος αριθμός από διαφορετικές αποφάσεις που μπορεί να πάρουν οι διεργασίες που δεν παρουσιάζουν σφάλμα?
5o Θέμα [bonus -- προαιρετικό για όσους παρέδωσαν ασκήσεις]
Θεωρείστε ένα σύγχρονο κατανεμημένο σύστημα με n=3 μονάδες u1, u2, u3 συνδεδεμένες μέσω ενός μη-κατευθυνόμενου δικτύου με m=2 κανάλια επικοινωνίας, συγκεκριμένα u1u2 και u1u3. Κάθε διεργασία u έχει μοναδική ταυτότητα και πιο συγκεκριμένα, οι ταυτότητες των u2 και u3 είναι διαδοχικοί φυσικοί αριθμοί, δηλ. αν u2 = 50 τότε η ταυτότητα της u3 θα είναι είτε 49 είτε 51. Κάθε γύρο, η διεργασία u1 θέτει την εξής ερώτηση σε μια από τις u2 και u3: "Γνωρίζεις την ταυτότητα της άλλης διεργασίας?". Οι u2, u3 μπορούν μόνο να απαντήσουν θετικά ή αρνητικά στις ερωτήσεις της u1 και δεν επιτρέπεται να θέσουν δικές τους ερωτήσεις. Υπάρχει τρόπος η u2 ή η u3 να μπορέσει να απαντήσει στην ερώτηση της u1 θετικά? Αν ναι, πώς? Αν όχι, γιατί?


Σχετικό υλικό:


Βαθμολογία:


 ΑΜ   Ονοματεπώνυμο   Βαθμός 
 2370  Χριστόφορος-Λιβάνης Σπυρίδων  10 
 2694  Νιάβης Παναγιώτης  10 
 2818  Βεργούλης Αθανάσιος  10 
 2819  Βιέννας Εμμανουήλ  9 
 2847  Δάφνη-Σταυρούλα Ζώη  10 
 2853  Καντούνης Κάρολος  8 
 2856  Κατσάνος Ιωάννης  9 
 2860  Κολαΐτη Ειρήνη  9 
 2862  Κοντάκης Απόστολος  8 
 2863  Κοτρότσος Ιωάννης  1 
 2867  Κουνένης Γεώργιος  10 
 2875  Λεδάκης Ιωάννης  9 
 2883  Μαζιώτης Αλέξανδρος  2 
 2885  Μαλή Γεωργία  9 
 2890  Μιχαήλ Παναγιώτης  9 
 2915  Παπαχαραλάμπους Λουκάς  9 
 2918  Παππά Αντιγόνη  9 
 2921  Πασχούλας Χρυσοβαλάντης  8 
 2923  Πατρούμπα Δήμητρα  8 
 2926  Πετρόπουλος Αναστάσιος  10 
 2948  Σκούρα Αγγελική  10 
 2951  Σπυριδάκης Γεώργιος  10 
 2955  Στεφόπουλος Περικλής  2 
 2963  Τζαβίκας Σπυρίδων  2 
 2964  Τζελάτης Ιωάννης  10 
 2965  Τόκας Θεοφάνης  1 
 2975  Φίλος - Ράτσικας Αλέξης  10 
 2979  Χαρίση Αμαλία  10 
 2982  Χέλμης Χαράλαμπος  10 
 3007  Γερούτης Γεώργιος  3 
 3013  Καλλίγερος Ιωάννης-Χρήστος  4 
 3032  Οικονόμου Παναγιώτης  5 


Εξέταση Σεπτεμβρίου (Τετάρτη, 20 Σεπτεμβρίου 2006)

1o Θέμα [50%]
Θεωρείστε ένα ασύγχρονο κατανεμημένο σύστημα με n διεργασίες συνδεδεμένες μέσω ενός γενικού, μη-κατευθυνόμενου δικτύου με m κανάλια επικοινωνίας. Κάθε διεργασία έχει μια μοναδική ταυτότητα και δεν γνωρίζει το σύνολο των διεργασιών, ούτε την τοπολογία του δικτύου.
  1. Σχεδιάστε έναν κατανεμημένο αλγόριθμο που επιτρέπει στη διεργασία u0 να υπολογίσει το n. Αναλύστε την χρονική πολυπλοκότητα και πολυπλοκότητα μηνυμάτων.
  2. Σχεδιάστε έναν κατανεμημένο αλγόριθμο που επιτρέπει στη διεργασία u0 να εντοπίσει την διεργασία με τον μέγιστο αριθμό γειτόνων (αν είναι περισσότερες από μια, εντοπίζει αυτή με την μικρότερη ταυτότητα). Αναλύστε την χρονική πολυπλοκότητα και πολυπλοκότητα μηνυμάτων.
2o Θέμα [30%]
Θεωρείστε ένα σύγχρονο κατανεμημένο σύστημα με n διεργασίες συνδεδεμένες μέσω ενός γενικού, μη-κατευθυνόμενου δικτύου με m κανάλια επικοινωνίας, όπου κάθε διεργασία δεν γνωρίζει το σύνολο των διεργασιών, ούτε την τοπολογία του δικτύου. Κάθε διεργασία u δέχεται ως είσοδο έναν ακέραιο αριθμό iu.
  1. Σχεδιάστε έναν κατανεμημένο αλγόριθμο που επιτρέπει στη διεργασία u0 να υπολογίσει το άθροισμα όλων των αριθμών που έχουν δοθεί στις διεργασίες. Αναλύστε την χρονική πολυπλοκότητα και πολυπλοκότητα μηνυμάτων.
  2. Σχεδιάστε έναν κατανεμημένο αλγόριθμο που επιτρέπει στη διεργασία u0 να υπολογίσει τον μέγιστο αριθμό από αυτούς που έχουν δοθεί στις διεργασίες. Αναλύστε την χρονική πολυπλοκότητα και πολυπλοκότητα μηνυμάτων.
3o Θέμα [20%]
Θεωρείστε ένα ασύγχρονο κατανεμημένο σύστημα με n διεργασίες συνδεδεμένες μέσω ενός γενικού, μη-κατευθυνόμενου δικτύου με m κανάλια επικοινωνίας, όπου κάθε διεργασία γνωρίζει τη διάμετρο του δικτύου. Για την εκπομπή ενός μηνύματος M από μια διεργασία-πομπό σε όλες τις άλλες διεργασίες του δικτύου, εκτελείται ο ακόλουθος αλγόριθμος:
Η διεργασία-πομπός επιλέγει μια τιμή T μεγαλύτερη ή ίση με τη διάμετρο του δικτύου και στέλνει <M,T> σε όλους τους γειτονές της. Όταν μια διεργασία λάβει ένα μήνυμα <M,t>, αν t>0, στέλνει το μήνυμα <M,t-1> σε όλους τους γειτονές της.
Απαντήστε σε ένα μόνο από τα παρακάτω ερωτήματα:
  1. Δείξτε ότι κάθε διεργασία λαμβάνει το M σε χρόνο ανάλογο της απόστασής της από τη διεργασία-πομπό.
  2. Έστω ότι κάθε διεργασία έχει k γείτονες. Αναλύστε τη πολυπλοκότητα μηνυμάτων για μια εκπομπή, σαν συνάρτηση των T και k.


Σχετικό υλικό:


Βαθμολογία:


 ΑΜ   Ονοματεπώνυμο   Βαθμός 
 2863  Κοτρότσος Ιωάννης  4.5 
 2883  Μαζιώτης Αλέξανδρος  4.5 
 2955  Στεφόπουλος Περικλής  5 
 3007  Γερούτης Γεώργιος  0 
 3013  Καλλίγερος Ιωάννης-Χρήστος  5 
 3032  Οικονόμου Παναγιώτης  5.5 


Τελικός Βαθμός

Ο τελικός βαθμός υπολογίζεται με τον ακόλουθο τύπο:

(Βαθμός 1ης άσκησης) x 0.1 + (Βαθμός 2ης άσκησης) x 0.2 + (Βαθμός Εξέτασης) x 0.7

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


Βαθμολογία:


 ΑΜ   Ονοματεπώνυμο   1η Άσκηση   2η Άσκηση   Εξέταση   Βαθμός 
 2370  Χριστόφορος-Λιβάνης Σπυρίδων  7  5  10  9 
 2694  Νιάβης Παναγιώτης  10  10  10  10 
 2818  Βεργούλης Αθανάσιος  10  6  10  9.5 
 2819  Βιέννας Εμμανουήλ  5  8  9  8.5 
 2825  Γεροβασίλης Βασίλειος  5       
 2847  Δάφνη-Σταυρούλα Ζώη  10  10  10  10 
 2853  Καντούνης Κάρολος  10  10  8  9 
 2856  Κατσάνος Ιωάννης  9  10  9  9.5 
 2860  Κολαΐτη Ειρήνη  10  10  9  9.5 
 2862  Κοντάκης Απόστολος  9  10  8  8.5 
 2863  Κοτρότσος Ιωάννης  2.5  2.5  4.5 * 4 
 2867  Κουνένης Γεώργιος  10    10  8 
 2875  Λεδάκης Ιωάννης  10  5  9  8.5 
 2883  Μαζιώτης Αλέξανδρος  2.5  2.5  4.5 * 4 
 2885  Μαλή Γεωργία  10  10  9  9.5 
 2890  Μιχαήλ Παναγιώτης  10  10  9  9.5 
 2906  Ξαγοράρης Μάρκος  9       
 2915  Παπαχαραλάμπους Λουκάς  5  8  9  8.5 
 2918  Παππά Αντιγόνη  10  9  9  9.5 
 2921  Πασχούλας Χρυσοβαλάντης  7    8  6.5 
 2923  Πατρούμπα Δήμητρα  10  10  8  9 
 2926  Πετρόπουλος Αναστάσιος  10  6  10  9.5 
 2948  Σκούρα Αγγελική  9.5  10  10  10 
 2951  Σπυριδάκης Γεώργιος  10  7  10  9.5 
 2955  Στεφόπουλος Περικλής    2.5  5 * 4 
 2963  Τζαβίκας Σπυρίδων  5    2  2 
 2964  Τζελάτης Ιωάννης  10  8  10  10 
 2965  Τόκας Θεοφάνης  5    1  1.5 
 2975  Φίλος - Ράτσικας Αλέξης  7  5  10  9 
 2979  Χαρίση Αμαλία  10  10  10  10 
 2982  Χέλμης Χαράλαμπος  10  10  10  10 
 2983  Χωμενίδης Χαράλαμπος  5       
 3007  Γερούτης Γεώργιος      3  2.5 
 3013  Καλλίγερος Ιωάννης-Χρήστος  8  2.5  5 * 5 
 3032  Οικονόμου Παναγιώτης  2.5  2.5  5.5 * 5 

_