Τμήμα Πληροφορικής, Άνοιξη 2001

Η/Υ Ε07: Κατανεμημένα Συστήματα

Μάθημα Επιλογής  


Εξέταση Projects

Η εξέταση των projects θα γίνει τις μέρες Τρίτη, 18/6, Πέμπτη, 20/6 και Παρασκευή, 21/6 στο εργαστήριο unix του πρώτου ορόφου (ή στο γραφείο μου). Η εξέταση των projects είναι υποχρεωτική και θα πρέπει όλοι όσοι τα έχετε παραδώσει να έρθετε στην προφορική εξέταση. Όσοι φοιτητές δεν μπορέσουν να έρθουν θα πρέπει να με ενημερώσουν πριν την εξέταση, διαφορετικά τα projects τους θα μηδενιστούν. Οι φοιτητές που έχουν παραδώσει και θέλουν να εξεταστούν θα πρέπει να δηλώσουν την ώρα της προτίμησής τους σε έναν από τους πίνακες που έχουν αναρτηθεί έξω από το γραφείο μου.

 Η εξέταση του φοιτητή Τσόλκα Χρήστου στο 2ο project θα ήθελα να γίνει την Πέμπτη, 20/6 και ώρα είτε 12:00-12:30 ή 13:00-13:30. Αν καμία από τις ώρες αυτές δεν είναι βολική για το φοιτητή θα πρέπει να με ενημερώσει ως τη Δευτέρα,  17/6.


Γενικά | Ανακοινώσεις | Ημερολόγιο | Διαφάνειες Διαλέξεων & Άλλο Υλικό


Γενικές Πληροφορίες

Διδάσκουσα:                                       Παναγιώτα Φατούρου
Γραφείο:                                              26 (Α’ ορόφου)
Ώρες Γραφείου:                                  Δευτέρα: 14:00 – 16:00, Τετάρτη, 11:00-13:00
Ηλεκτρονική Διεύθυνση:        
           
Τηλέφωνο:                                          (06510) 98808

Ηλεκτρονική Διεύθυνση Μαθήματος: 
Ηλεκτρονική Διεύθυνση Λίστας Μαθήματος:

 

Ώρες και Αίθουσες Διδασκαλίας

Παρασκευή, 9:00-12:00, στην αίθουσα Ι4.  

 

Σύνοψη Μαθήματος

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

 

Βιβλία

q       G. Coulouris, J. Dollimore and T. Kindberg, “Distributed Systems, Concepts and Design”, Addison-Wesley, England, 1994.

q       A. S. Tanenbaum, “Σύγχρονα /λειτουργικά Συστήματα», Τόμος Β, Prentice Hall International, επιμέλεια: Παναγιώτης Γεωργιάδης, Παπασωτηρίου, Αθήνα 1994.

q       H. Attiya and J. Welch, “Distributed Computing, Fundamentals, Simulations and Advanced Topics”, Mc Graw Hill, England, 1998.    

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

 

Πρόγραμμα

1η εβδομάδα

Εισαγωγή, Χαρακτηρισμός, Στόχοι, Ζητήματα Σχεδίασης

2η εβδομάδα

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

3η εβδομάδα

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

4η εβδομάδα

Κατανεμημένα Λειτουργικά Συστήματα - Νήματα

5η εβδομάδα

Κατανεμημένα Λειτουργικά Συστήματα - Νήματα

6η εβδομάδα

Χρονισμός

7η εβδομάδα

Αμοιβαίος Αποκλεισμός – Αλγόριθμοι Εκλογής

8η εβδομάδα

Αλγόριθμοι Εκλογής

9η εβδομάδα

Αδιέξοδα

10η εβδομάδα

Διαμοιραζόμενα Δεδομένα και Δοσοληψίες

11η εβδομάδα

Ατομικές Δοσοληψίες
12η εβδομάδα Ατομικές Δοσοληψίες

13η εβδομάδα

Κατανεμημένα Συστήματα Αρχείων

 

Εργασίες και Βαθμολόγηση

Κατά τη διάρκεια του εξαμήνου θα δοθούν 2 προγραμματιστικές εργασίες. Ο προγραμματισμός θα γίνει σε γλώσσα C, ενώ θα χρησιμοποιηθούν διάφορα εργαλεία και περιβάλλοντα για να επιτευχθεί επικοινωνία μεταξύ διεργασιών. Κάθε εργασία θα πρέπει να επιστρέφεται πριν από την αναγραφόμενη ημερομηνία και ώρα. Καθυστερημένες εργασίες γίνονται δεκτές με μείωση βαθμού 5 μονάδων (στις 100) για κάθε μέρα καθυστέρησης. Οι φοιτητές μπορούν να δουλέψουν σε ομάδες των 2 ατόμων για να επιλύσουν τις εργασίες. Οι ομάδες αποφασίζονται βάσει των προτιμήσεων των φοιτητών. Μετά από κάθε εργασία θα κάνετε παρουσίαση (εξήγηση) της εργασίας σας, σε κάποια προκαθορισμένη ημερομηνία. Η παρουσίαση δεν θα γίνει ανά ομάδες, αλλά ατομικά (δηλαδή για κάθε εργασία θα εξεταστούν και τα 2 μέλη της ομάδας το καθένα ξεχωριστά σε ολόκληρη την εργασία). Για το λόγο αυτό θα πρέπει και τα 2 μέλη της ομάδας να συνεισφέρουν εξίσου σε όλα τα μέρη της εργασίας. Ο βαθμός δεν θα είναι κοινός για την ομάδα, αλλά θα εξαρτάται σε μεγάλο βαθμό από την παρουσίαση του κάθε ενός από τους φοιτητές. Έτσι, μπορεί ο ένας φοιτητής να πάρει πολύ καλό βαθμό, ενώ ο άλλος πολύ άσχημο ή ακόμη και να μηδενιστεί.

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

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

Είστε υπεύθυνοι για την κακή χρήση του λογαριασμού σας. Το password σας θα πρέπει να παραμείνει μυστικό και ο λογαριασμός σας να χρησιμοποιείτε μόνο από εσάς. Φροντίστε τέλος η προστασία του καταλόγου στον οποίο βρίσκονται τα προγράμματά σας να μην επιτρέπει ανάγνωση (ή ακόμη χειρότερα εγγραφή) από άλλους (χρησιμοποιήστε την εντολή chmod).

Η τελική εξέταση θα γίνει με ανοιχτά βιβλία. Στην τελική εξέταση θα πρέπει όλοι οι εξεταζόμενοι φοιτητές να έχουν μαζί τους το πάσσο τους. Φοιτητές που δεν έχουν μαζί τους το πάσο τους δεν θα γίνονται δεκτοί στην εξέταση.

Ο τελικός βαθμός θα εξαρτηθεί τόσο από τη βαθμολογία των ασκήσεων, όσο και από την επίδοση των φοιτητών στην τελική εξέταση, ως εξής:

Σειρές Ασκήσεων: 35%

Τελική Εξέταση: 65%

Προκειμένου ένας φοιτητής να περάσει το μάθημα πρέπει να γράψει τουλάχιστον 4.5 στο τελικό διαγώνισμα, ανεξάρτητα από το πόσο καλές είναι οι εργασίες που έχει παραδώσει και θα πρέπει να έχει βαθμό τουλάχιστον 4 στις εργασίες του (ανεξάρτητα από το πόσο καλό θα είναι το γραπτό του στην τελική εξέταση).

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

 

Παρακολούθηση

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

  

Παρατήρηση

Συνίσταται ισχυρά να έχετε διεκπεραιώσει με επιτυχία τα μαθήματα του «Προγραμματισμού σε C», των «Δομών Δεδομένων» και των «Λειτουργικών Συστημάτων». Επίσης, η γνώση «Βάσεων Δεδομένων», «Δικτύων Υπολογιστών» και «Σχεδίασης και Ανάλυσης Αλγορίθμων» θα βοηθούσε επίσης.  Απαιτούνται εξαιρετικά καλές γνώσεις της γλώσσας προγραμματισμού C.

 

Άλλη σχετική βιβλιογραφία

q       S. Dolev, “Self-Stabilization”, The MIT Press, England, 2000.

q       N. Lynch, “Distributed Algorithms”, Morgan Kaufmann Publishers, Inc., San Francisco, 1996.

q       S. Mullender, “Distributed Systems”, Addison-Wesley, New York, 1993.

q       ACM Symposium on Principles of Distributed Computing

q       International Workshop on DIStributed Computing

q       IEEE International Conference on Parallel and Distributed Systems

q       Journal of the ACM

q       Distributed Computing

Βιβλία σε C


Βιβλιογραφία Χρήσιμη για τις Εργασίες

 


Ανακοινώσεις

Εξέταση Projects: Η εξέταση των projects θα γίνει τις μέρες Τρίτη, 18/6, Πέμπτη, 20/6 και Παρασκευή, 21/6 στο εργαστήριο unix του πρώτου ορόφου (ή στο γραφείο μου). Η εξέταση των projects είναι υποχρεωτική και θα πρέπει όλοι όσοι τα έχετε παραδώσει να έρθετε στην προφορική εξέταση. Όσοι φοιτητές δεν μπορέσουν να έρθουν θα πρέπει να με ενημερώσουν πριν την εξέταση, διαφορετικά τα projects τους θα μηδενιστούν. Οι φοιτητές που έχουν παραδώσει και θέλουν να εξεταστούν θα πρέπει να δηλώσουν την ώρα της προτίμησής τους σε έναν από τους πίνακες που έχουν αναρτηθεί έξω από το γραφείο μου.

 Η εξέταση του φοιτητή Τσόλκα Χρήστου στο 2ο project θα ήθελα να γίνει την Πέμπτη, 20/6 και ώρα είτε 12:00-12:30 ή 13:00-13:30. Αν καμία από τις ώρες αυτές δεν είναι βολική για το φοιτητή θα πρέπει να με ενημερώσει ως τη Δευτέρα,  17/6.

   Παράταση στην ημερομηνία παράδοσης 2ου project. Ημερομηνία Παράδοσης 2ου μέρους 2ου project: Πέμπτη, 20/6.

 


Ημερολόγιο

Δευτέρα Τρίτη Τετάρτη Πέμπτη Παρασκευή
11/2

 

 

 

12/2

 

 

 

13/2

 

 

 

14/2

 

 

 

15/2

Μελέτη διαφανειών & Παρ. 9.1, 9.2 (επιλεκτικά), 9.3 (επιλεκτικά) και 9.4, Tanenbaum

18/2

 

 

19/2

 

 

20/2

 

 

21/2

 

 

22/2

Μελέτη διαφανειών και Κεφ. 1 και Κεφ. 2, Coulouris et al.

25/2

 


 

26/2

 


 

27/2

 


 

28/2

 


 

1/3

Μελέτη διαφανειών & Παρ. 10.1, 10.2, 10.3.1-10.3.3 Tanenbaum 

(Παρ. 10.2.7 όχι)

4/3

 

 

 

 

5/3

 

 

 

 

6/3

 

 

 

 

7/3

 

 

 

 

8/3

Μελέτη διαφανειών & Παρ. 10.3.4 - 10.3.6, 10.4, Tanenbaum 

(Παρ. 10.3.5 επιλεκτικά, Παρ. 10.4.3 όχι) 

11/3

 

12/3

 

13/3

 

14/3

 

15/3

 ------------------

18/3

 

 

 

 

 

 

 

19/3

 

 

 

 

 

 

20/3

 1η Εργασία (out)

 

 

 

 

 

 

21/3

 

 

 

 

 

 

 

22/3

Μελέτη διαφανειών και  Παρ. 12.1 - 12.2, Tanenbaum

(Παρ. 12.1.4 όχι)

Μελέτη μέρους Κεφ. 9 (Remote Procedure Calls, J. Gray) που σας μοιράστηκε στο μάθημα ως βοηθητικό υλικό για την 1η Εργασία σας. 

25/3

 

 

 

 

26/3

 

 

 

 

27/3

 

 

 

 

28/3

 

 

 

 

29/3

Μελέτη διαφανειών και Παρ. 12.3, 12.4 (Tanenbaum)

Μελέτη μέρους Κεφ. 9 (Remote Procedure Calls, J. Gray) που σας μοιράστηκε στο μάθημα ως βοηθητικό υλικό για την 1η Εργασία σας. 

1/4

 

2/4

 

3/4

 

4/4

 

5/4

Μελέτη διαφανειών και Παρ. 11.1, 11.2 & 11.3 (Tanenbaum)

Μελέτη μέρους Κεφ. 9 (Remote Procedure Calls, J. Gray) που σας μοιράστηκε στο μάθημα ως βοηθητικό υλικό για την 1η Εργασία σας. 

Καλό θα ήταν να έχετε τελειώσει με το ένα από τα 2 προγράμματα που έχετε να κάνετε για την εργασία σας.

8/4

 

9/4

 

10/4

 

11/4

 

12/4

Μελέτη διαφανειών και Παρ. 11.4, 11.5 & 11.3 (Tanenbaum)

15/4

 

16/4

 

17/4

 

18/4

 

19/4

Μελέτη διαφανειών. 

22/4

 

 

23/4

 

 

24/4

 

 

25/4 

 

 

26/4

 -----------------

1η Εργασία (due)

13/5

 

14/5

 

15/5

 

16/5

 

17/5

Μελέτη διαφανειών και Παρ.13.1 -13.2.4

20/5

2ο Project

 1ο Μέρος (due)

21/5

 

 

22/5

 

 

23/5

 

 

24/5

Μελέτη διαφανειών και Παρ.13.2.5 -13.3

17/5

2o Project

2ο Μέρος (due)

28/5

 

 

29/5

 

 

30/5

 

 

31/5

 

 

 


Διαφάνειες Διαλέξεων & Άλλο Υλικό

2η Εργασία (ds-project2.ps). Πληροφορίες για το MPI θα βρείτε στην ακόλουθη σελίδα:

The Message Passing Interface (MPI) standard


Τελευταία  τροποποίηση:22/3/02
Κατασκευή και συντήρηση σελίδων:  Παναγιώτα Φατούρου