Next              Up                Back                   Contents    

Επόμενο:11.3 Οι Getwork και Putwork Πάνω: Κεφάλαιο 11o : Κατανεμημένη Ανίχνευση Τερματισμού Πίσω: 11.1 Πρόγραμμα Συντομότερου Μονοπατιού Συστήματος Κατανεμημένης Μνήμης


 

11.2 Υλοποίηση της Δεξαμενής Εργασίας

 

Θεωρείστε τώρα την υλοποίηση της Δεξαμενής Εργασίας για αυτό το πρόγραμμα Συντομότερου Μονοπατιού σε σύστημα κατανεμημένης μνήμης. Στην περίπτωση του συστήματος διαμοιραζόμενης μνήμης όλοι οι εργαζόμενοι είναι ουσιαστικά ισοδύναμοι και έτσι οποιοδήποτε αντικείμενο εργασίας μπορούσε να πάει σε οποιονδήποτε εργαζόμενο. Έτσι η Δεξαμενή Εργασίας μπορούσε να υλοποιηθεί με έναν μικρότερο αριθμό διαμοιραζόμενων καναλιών και με πολλούς εργαζόμενους να έχουν ανατεθεί σε κάθε κανάλι. Όμως, στο πρόγραμμα συστήματος κατανεμημένης μνήμης κάθε εργαζόμενος αναλαμβάνει έναν συγκεκριμένο κόμβο του γραφήματος και συνεπώς κάθε αντικείμενο εργασίας πρέπει να πάει σε έναν συγκεκριμένο εργαζόμενο. Η πιο απλή υλοποίηση της Δεξαμενής Εργασίας επιτρέπει σε κάθε εργαζόμενο να έχει το δικό του κανάλι εξόδου για να λαμβάνει αντικείμενα εργασίας. Η Δεξαμενή Εργασίας θα περιέχει έναν πίνακα καναλιών και σε κάθε εργαζόμενο i θα ανατίθεται στο κανάλι workpool[i] σαν μια θύρα επικοινωνίας για τη λήψη εργασίας.

Η υλοποίηση της Δεξαμενής Εργασίας φαίνεται στο σχήμα 11.2. Η Δεξαμενή Εργασίας αντιμετωπίζεται και εδώ ως μια αφηρημένη δομή δεδομένων από τους εργαζόμενους. Κάθε εργαζόμενος χρησιμοποιεί τις Getwork και Putwork για να προσπελάσει τη Δεξαμενή Εργασίας. Όμως, εσωτερικά η Δεξαμενή Εργασίας έχει αναθέσει ένα κανάλι σε κάθε εργαζόμενο σαν θύρα επικοινωνίας. Η Getwork για τον Εργαζόμενο i απλά διαβάζει ένα αντικείμενο εργασίας από το κανάλι i, το οποίο είναι η δική θύρα επικοινωνίας. Όταν κάποιος εργαζόμενος καλεί την Putwork με ένα δεδομένο αντικείμενο εργασίας, η ρουτίνα Putwork καθορίζει σε ποιόν κόμβο αναφέρεται το αντικείμενο και μετά γράφει το αντικείμενο στο κατάλληλο κανάλι. Σε αυτή την υλοποίηση της Δεξαμενής Εργασίας η ανάγνωση και η εγγραφή των αντικειμένων εργασίας είναι απλή. Όμως, η ανίχνευση τερματισμού είναι περισσότερο πολύπλοκη σε σχέση με την περίπτωση του συστήματος διαμοιραζόμενης μνήμης.

 

11.2.1 Μηνύματα Επιβεβαίωσης

 

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

 

image

 

ΣΧΗΜΑ 11.2 Δεξαμενή εργασίας σε σύστημα κατανεμημένης μνήμης

 

Για να παρουσιάσουμε με περισσότερες λεπτομέρειες τη φύση αυτού του προβλήματος και τη λύση του θεωρείστε τη χρήση μιας διαδικασίας ανίχνευσης τερματισμού που μοιάζει με αυτή που χρησιμοποιήσαμε στο πρόγραμμα συστήματος διαμοιραζόμενης μνήμης. Χρησιμοποιείται ένας πρωτεύων μετρητής για την καταγραφή του συνολικού αριθμού των αδρανών εργαζομένων. Όταν αυτός ο μετρητής φτάσει το συνολικό αριθμό (n) των εργαζομένων τότε στέλνεται ένα μήνυμα τερματισμού σε όλες τις διεργασίες. Εφόσον ο πρωτεύων μετρητής είναι μια μεταβλητή, πρέπει να βρίσκεται στην τοπική μνήμη κάποιου επεξεργαστή-υποθέστε ότι αυτός είναι ο επεξεργαστής 0. Όποτε κάποιος εργαζόμενος δει ότι το κανάλι εισόδου του είναι άδειο στέλνει ένα “+1” μήνυμα να προστεθεί στον πρωτεύοντα μετρητή στον επεξεργαστή 0, δηλώνοντας ότι ο εργαζόμενος έχει μεταβεί από την ενεργή κατάσταση σε αδράνεια. Όποτε ένας αδρανής υργαζόμενος λάβει ένα νέο αντικείμενο εργασίας στην άδεια του ουρά, στέλνει ένα “-1” μήνυμα να προστεθεί στον πρωτεύοντα μετρητή, δηλώνοντας ότι ο εργαζόμενος δεν είναι πλέον αδρανής.

Στον επεξεργαστή 0 τα εισερχόμενα μηνύματα “+1” και “-1” απλώς προστίθενται στον πρωτεύοντα μετρητή καθώς φτάνουν. Όταν ο μετρητής φτάσει την τιμή n τότε γνωρίζει ότι όλοι οι εργαζόμενοι πρέπει να είναι αδρανείς και ο αλγόριθμος μπορεί να τερματίσει. Ο αναγνώστης ίσως έχει ήδη δει το μεγάλο ελάττωμα σε αυτή τη μέθοδο ανίχνευσης τερματισμού. Θεωρείστε το ακόλουθο σενάριο. Όλοι οι εργαζόμενοι είναι αδρανείς εκτός από τον i. Συνεπώς ο πρωτεύων μετρητής έχει τιμή n-1. Ο εργαζόμενος i επεξεργάζεται το τελευταίο του αντικείμενο και μετά γίνεται αδρανής και στέλνει ένα μήνυμα “+1” στον πρωτεύοντα μετρητή. Όμως, πριν να γίνει αδρανής στέλνει το τελευταίο του αντικείμενο εργασίας στον εργαζόμενο j που εκτελείται στον επεξεργαστή j. Σε αυτή την περίπτωση υπάρχουν δύο πιθανές καταλήξεις που εξαρτώνται από τις καθυστερήσεις που θα συναντήσουν τα δύο αυτά μηνύματα: το μήνυμα “+1” στο δρόμο του προς τον επεξεργαστή 0 και το μήνυμα του αντικειμένου εργασίας που κατευθύνεται στον j.

Όταν ο επεξεργαστής j λάβει το αντικείμενο εργασίας θα στείλει αμέσως ένα μήνυμα “-1” στον πρωτεύοντα μετρητή, δηλώνοντας ότι από την αδρανή κατάσταση έχει μεταβεί σε ενεργή. Αν το μήνυμα αυτό φτάσει στον επεξεργαστή 0 πριν από το “+1”, που στάλθηκε από τον i, τότε ο πρωτεύων μετρητής θα μετρήσει πρώτα n-2 και μετά πάλι n-1: ο πρωτεύων μετρητής θα γνωρίζει ότι ένας Εργαζόμενος εξακολουθεί να είναι ενεργός. Όμως, αν το μήνυμα “+1” φτάσει πρώτο στον επεξεργαστή 0, τότε ο πρωτεύων μετρητής θα φτάσει στο n και συνεπώς θα θεωρήσει ότι όλες οι εργαζόμενοι είναι αδρανείς.

Μια προφανής λύση σε αυτή την κατάσταση του κρίσιμου ανταγωνισμού είναι η καθυστέρηση της απόφασης τερματισμού τόσο ώστε να επιτραπεί σε όλα τα μηνύματα που μετακινούνται να φτάσουν. Αφού το πρόγραμμα ανιχνεύσει ότι ο πρωτεύων μετρητής έχει φτάσει στην τιμή n, θα περιμένει για D μονάδες χρόνου για την άφιξη επιπλέον μηνυμάτων πριν να καλέσει την διαδικασία τερματισμού. Η καθυστέρηση τερματισμού D θα πρέπει να είναι τόσο μεγάλη, ώστε να επιτρέπει σε ένα μήνυμα που μετακινείται να φτάσει τον εργαζόμενο προορισμού του και το μήνυμα “-1” που δημιουργείται από τον εργαζόμενο να ταξιδέψει στον επεξεργαστή 0. Πρακτικά, σε ένα πραγματικό σύστημα κατανεμημένης μνήμης μπορεί να είναι πιθανόν να καθορίσουμε έτσι την τιμή του D ώστε να εγγυάται την ορθότητα του προγράμματος. Όμως, ένας γενικός αλγόριθμος πρέπει να αρκετά εύρωστος για να τρέχει σωστά σε ένα περιβάλλον συστήματος κατανεμημένης μνήμης, λαμβάνοντας υπόψη και επιπλέον καθυστερήσεις μετάδοσης των μηνυμάτων.

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

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

Η χρήση αυτών των μηνυμάτων επιβεβαίωσης μπορεί να εντελώς κρυμμένη μέσα στην Δεξαμενή Εργασίας, έτσι ώστε η διαδικασία Worker να παραμείνει η ίδια με αυτή του σχήματος 11.1. Η Δεξαμενή Εργασίας αντιμετωπίζεται και εδώ ως μια αφηρημένη δομή δεδομένων που προσπελαύνεται από απλές κλήσεις των Putwork και Getwork. Η υλοποίηση της Δεξαμενής Εργασίας χειρίζεται πλήρως τα μηνύματα επιβεβαίωσης και την ανίχνευση τερματισμού και στέλνει τα αναγκαία σήματα τερματισμού στους εργαζόμενους. Χρησιμοποιώντας τα μηνύματα επιβεβαίωσης μπορούμε να τροποποιήσουμε την προηγούμενη μέθοδο τερματισμού, έτσι ώστε να δουλεύει σωστά. Η τροποποίηση αυτής της μεθόδου του πρωτεύοντα μετρητή είναι θέμα των ασκήσεων στο τέλος του κεφαλαίου. Όμως, υπάρχει μια πιο κομψή και απλή μέθοδο που περιγράφεται αμέσως μετά.

 

11.2.2 Αλγόριθμος Ανίχνευσης Τερματισμού

 

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

Συνεχώς κατά τη διάρκεια του παράλληλου υπολογισμού κάθε ενεργός εργαζόμενος έχει ακριβώς έναν γονέα. Αυτή η σχέση παιδιού-γονιού συνεπώς καθορίζει ένα δένδρο μεταξύ των ενεργών εργαζομένων. Ο μόνος τρόπος για να μπορέσει να γίνει ένας αδρανής εργαζόμενος y ενεργός είναι να στείλει κάποιος ενεργός Εργαζόμενος x που βρίσκεται στο δένδρο ένα αντικείμενο εργασίας στον y. Όταν ο y λάβει αυτό το αντικείμενο εργασίας και γίνει ενεργός θα καταγράψει ότι ο γονέας του είναι ο x. Συνεπώς, ο εργαζόμενος y προστίθεται στο δένδρο με τον x να είναι ο μοναδικός γονέας του. Ο y μπορεί τώρα να στείλει αντικείμενα εργασίας σε άλλες αδρανείς διεργασίες και έτσι να τις κάνει παιδιά του στο δένδρο. Καθώς τα αντικείμενα εργασίας στέλνονται από όλες τις ενεργές διεργασίες το δένδρο μεγαλώνει δυναμικά και πάντα θα περιλαμβάνει όλους τους ενεργούς εργαζόμενους κατά τέτοιο τρόπο ώστε κάθε εργαζόμενος να έχει ακριβώς έναν γονέα στο δένδρο.

Το σχήμα 11.3 παρουσιάζει ένα χαρακτηριστικό στιγμιότυπο του δένδρου κατά τη διάρκεια της εκτέλεσης του προγράμματος των Κατανεμημένων Εργαζομένων. Έντεκα από τους είκοσι εργαζόμενους είναι ενεργοί και συνεπώς μπορούμε να τους δούμε στο δένδρο, όπως επίσης και τους γονείς τους. Οι εννιά εργαζόμενοι που απομένουν είναι αδρανείς και περιμένουν ένα αντικείμενο εργασίας. Όταν ένας ενεργός εργαζόμενος δει ότι το κανάλι εισόδου του είναι άδειο μεταβαίνει σε αδρανή κατάσταση. Όμως, υπάρχει ένας σημαντικός περιορισμός: ο εργαζόμενος δεν επιτρέπεται να μεταβεί σε αδράνεια αν δεν έχει λάβει πρώτα όλες τις επιβεβαιώσεις. Θα παραμείνει στην ενεργή κατάσταση μέχρι να λάβει όλα τα μηνύματα επιβεβαίωσης ακόμα και αν το κανάλι εισόδου του της δεξαμενής εργασίας είναι άδειο.

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

 

Η Δεξαμενή Εργασίας είναι εντελώς άδεια

Δεν μετακινούνται αντικείμενα εργασίας.

Όλοι οι εργαζόμενοι περιμένουν για εργασία.

image

 

ΣΧΗΜΑ 11.3 Ενεργοί και Ανενεργοί Εργαζόμενοι

 

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

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

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

Η όλη συμπεριφορά κάθε εργαζομένου εμφανίζεται στο σχήμα 11.4. Κάθε εργαζόμενος ξεκινά από την κατάσταση αδράνειας (IDLE) έχοντας το κανάλι εισόδου του άδειο.

 

image

 

ΣΧΗΜΑ 11.4 Διάγραμμα κατάστασης εργαζομένου

 

Όταν λάβει το πρώτο αντικείμενο εργασίας μεταβαίνει σε ενεργή (ACTIVE) κατάσταση. Ο εργαζόμενος αφετηρία αυτού του πρώτου αντικειμένου καταγράφεται ώς γονέας. Από τη στιγμή που ο εργαζόμενος βρίσκεται στην ενεργή κατάσταση καλεί τις Putwork και Getwork για την εγγραφή και την ανάγνωση αντικειμένων εργασίας από τη Δεξαμενή Εργασίας. Για κάθε αντικείμενο εργασίας που γράφεται στην Δεξαμενή Εργασίας με τη χρήση της Putwork ο Εργαζόμενος περιμένει να λάβει ένα μήνυμα επιβεβαίωσης από την διεργασία προορισμού. Επίσης, για κάθε αντικείμενο εργασίας που δέχεται από τη Δεξαμενή Εργασίας με την Getwork στέλνει ένα μήνυμα επιβεβαίωσης στην αφετηρία. Όταν ο εργαζόμενος δει ότι το κανάλι εισόδου του είναι άδειο και έχει λάβει όλες τις επιβεβαιώσεις, τότε αλλάζει από την ενεργή κατάσταση στην αδράνεια. Μόνο τότε ο εργαζόμενος στέλνει μήνυμα επιβεβαίωσης στον γονέα του. Από τη στιγμή που είναι αδρανής μπορεί να λάβει ένα νέο αντικείμενο εργασίας και έτσι να γίνει πάλι ενεργός.


     Next              Up                Back                   Contents    

Επόμενο:11.3 Οι Getwork και Putwork Πάνω: Κεφάλαιο 11o : Κατανεμημένη Ανίχνευση Τερματισμού Πίσω: 11.1 Πρόγραμμα Συντομότερου Μονοπατιού Συστήματος Κατανεμημένης Μνήμης