Παράλληλα και κατανεμημένα συστήματα: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
JohnMad (συζήτηση | συνεισφορές)
JohnMad (συζήτηση | συνεισφορές)
Γραμμή 116:
Η διαδιεργασιακή επικοινωνία στα πολυυπολογιστικά συστήματα συνήθως υλοποιείται σε χαμηλό επίπεδο με το σύνηθες δικτυακό [[μοντέλο πελάτη-διακομιστή]], όπου οι πελάτες αιτούνται μέσω του δικτύου υπηρεσίες που παρέχουν οι διακομιστές και αναμένουν απάντηση. Οι πελάτες θα πρέπει να γνωρίζουν πού να απευθυνθούν για μία υπηρεσία και υπάρχουν τρεις τρόποι για την αντιστοίχηση υπηρεσιών-διακομιστών: χρήση συγκεκριμένων διευθύνσεων τύπου υπηρεσία@μηχάνημα, η οποία όμως παραβιάζει τη διαφάνεια θέσης (π.χ. Παγκόσμιος Ιστός), επιλογή τυχαίας διεύθυνσης από την υπηρεσία και ανακοίνωσή της με [[πολυδιανομή|πολυδιανεμόμενο]] μήνυμα, ή χρήση ενός ''διακομιστή ονομάτων'' ο οποίος συνδέει [[ASCII]] ονόματα υπηρεσιών με χαμηλού επιπέδου δικτυακές διευθύνσεις και τον οποίον συμβουλεύονται οι εφαρμογές. Η επικοινωνία χαμηλού επιπέδου μεταξύ δύο υπολογιστών προγραμματιστικά επιτυγχάνεται μέσω κατάλληλων κλήσεων συστήματος (π.χ. <code>send()</code> και <code>recv()</code>, από το API των υποδοχών που παρέχει το λειτουργικό σύστημα για διαδιεργασιακή επικοινωνία μέσω δικτύου).
 
Στο μοντέλο πελάτη / -διακομιστή εμφανίζονται δύο ζητήματα που πρέπει να αντιμετωπιστούν: η αρχιτεκτονική εξυπηρέτησης που προσφέρουν και η κλιμακωσιμότητακλιμακωσιμότητά τους. Η αρχιτεκτονική μπορεί να είναι είτε ακολουθιακή, όπου κάθε φορά εξυπηρετείται ένας πελάτης σειριακά, είτε παράλληλη, όπου ο διακομιστής δημιουργεί νέα διεργασία ή νέο νήμα για την εξυπηρέτηση κάθε πελάτη και ο χρονοπρογραμματιστής του λειτουργικού του συστήματος αναλαμβάνει την ταυτόχρονη λειτουργίαεκτέλεσή τους. Η αύξηση της κλιμακωσιμότητας επιτυγχάνεται με προσθήκη κρυφής μνήμης, χρήση ισχυρότερου υπολογιστή (π.χ. με περισσότερους επεξεργαστές), κατανομή των δεδομένων ή / και των αλγορίθμων σε πολλαπλούς διακομιστές κλπ. Αντί για το μοντέλο πελάτη / -διακομιστή όμως μπορεί να αξιοποιηθεί ένα μοντέλο [[peer to peer|ομότιμης επικοινωνίας]], όπου όλοι οι κόμβοι είναι ισότιμοι και μπορούν να λειτουργούν τόσο ως πελάτες όσο και ως διακομιστές. Έτσι η προσθήκη περισσότερων κόμβων σε μία ομότιμη εφαρμογή ανταλλαγής και διαμοιρασμού αρχείων μέσω Διαδικτύου (π.χ. [[eMule]]) αυξάνει στην πραγματικότητα την κλιμακωσιμότητα του ολικού συστήματος (αφού με κάθε νέο κόμβο που συμμετέχει προστίθενται νέες συνδέσεις στο λογικό [[δίκτυο επικάλυψης]] της εφαρμογής, όπως και περισσότερος αποθηκευτικός χώρος), ενώ η προσθήκη περισσότερων πελατών που αναμένουν την εξυπηρέτησή τους από έναν διακομιστή μεταφοράς αρχείων (π.χ. [[FTP]]) οδηγεί σταδιακά στον κορεσμό του τελευταίου, αφού το σύστημα χαρακτηρίζεται από στατική κλιμακωσιμότητα.
 
Στα κατανεμημένα συστήματα πολλές φορές είναι επιθυμητή η κατασκευή πολλαπλών συνεργαζόμενων διεργασιών, που μπορεί να τοποθετούνται σε διαφορετικούς δικτυωμένους υπολογιστές, για την επίτευξη ενός στόχου. Αυτές οι ομάδες διεργασιών αποτελούν ένα μηχανισμό αφαίρεσης και μία κατανεμημένη εφαρμογή πρέπει να μπορεί να επικοινωνεί μαζί τους ατομικά χωρίς να γνωρίζει το ακριβές πλήθος ή τις διευθύνσεις των μελών. Αυτό επιτυγχάνεται είτε με υποστήριξη από το υλικό του δικτύου (πολυδιανομή, εκπομπή), είτε με χαμηλότερου επιπέδου αποστολή μηνυμάτων σε κάθε μέλος της ομάδας ξεχωριστά, διαφανώς για τον χρήστη. Οι ομάδες μπορούν να είναι είτε κλειστές, όπου επιτρέπεται επικοινωνία μόνο μεταξύ μελών της ομάδας, είτε ανοιχτές, όπου επιτρέπεται επιπλέον και η αμφίδρομη επικοινωνία των μελών της ομάδας με τον «έξω κόσμο», ενώ επίσης μπορούν να είναι ιεραρχικές, με εσωτερική δομή όπου υπάρχει ένας ''συντονιστής'' και οι υπόλοιπες διεργασίες θεωρούνται ''εργάτες'', ή ομότιμες, όπου όλα τα μέλη είναι ισότιμα. Το πρόβλημα με τις ιεραρχικές ομάδες είναι ότι αν καταρρεύσει ο συντονιστής καταστρέφεται όλη η εργασία, ενώ το πρόβλημα με τις ομότιμες ομάδες είναι ότι προκειμένου να ληφθεί μία απόφαση πρέπει να διεξαχθεί «ψηφοφορία» όπου κάθε μέλος στέλνει ένα μήνυμα με την ψήφο του στα άλλα. Δύο άλλα ζητήματα, η λύση των οποίων εξαρτάται από την εκάστοτε εφαρμογή, είναι ο ταυτοχρονισμός (αν υπάρχουν δηλαδή περιορισμοί σχετικά με τη σειρά παραλαβής δύο μηνυμάτων σε κάθε μέλος) και τα σφάλματα (είναι αποδεκτή η λήψη ενός μηνύματος μόνο από ένα υποσύνολο των μελών;).