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

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
JohnMad (συζήτηση | συνεισφορές)
μΧωρίς σύνοψη επεξεργασίας
JohnMad (συζήτηση | συνεισφορές)
Γραμμή 120:
* Την κοινοχρησία δεδομένων ή συσκευών μεταξύ απομακρυσμένων χρηστών
 
Με την εμφάνιση των κατανεμημένων συστημάτων προέκυψαν ζητήματα λογισμικού, αφού έπρεπε να γραφούν κατάλληλες γλώσσες προγραμματισμού, λειτουργικά συστήματα και εφαρμογές που να υποστηρίζουν αυτό το μοντέλο, ζητήματα δικτύωσης, αφού είναι αναγκαία η ύπαρξη δικτύου και αν το δίκτυο καταρρεύσει ή κορεστεί καταρρέει και το σύστημα, και [[ασφάλεια υπολογιστών|ασφάλειας]] δεδομένων. Ένα κατανεμημένο σύστημα είναι ''ανοιχτό'', παρέχει δηλαδή υπηρεσίες σύμφωνα με συγκεκριμένους γνωστούς κανόνες, έχει ''κλιμακωσιμότητα'' και προσφέρει στους χρήστες του κάποιους ή όλους από τους παρακάτω τύπους διαφάνειας:
 
* ''Διαφάνεια πρόσβασης'', δηλαδή απόκρυψη των πιθανών διαφορών στην αναπαράσταση των δεδομένων και του πώς προσπελαύνονται μεταξύ των κόμβων του συστήματος
 
* ''Διαφάνεια θέσης'', δηλαδή απόκρυψη της πληροφορίας σχετικά με το σε ποιον κόμβο ακριβώς βρίσκεταιτοποθετείται ένας πόρος
 
* ''Διαφάνεια μετανάστευσης'', δηλαδή παροχή δυνατότητας στους πόρους να μετακινούνται κατά βούληση μεταξύ των κόμβων χωρίς να αλλάζουν ιδιότητες ή όνομα
 
* ''Διαφάνεια επανατοποθέτησης'', δηλαδή παροχή δυνατότητας κινητικότητας στους πόρους ενώ χρησιμοποιούνται
 
* ''Διαφάνεια αντιγραφής'', δηλαδή απόκρυψη του πλήθους αντιγράφων που μπορεί να έχει ένας πόρος για λόγους ασφάλειας ή αξιοπιστίας
 
* ''Διαφάνεια ταυτοχρονισμού'', δηλαδή παροχή δυνατότητας αυτόματου και συνεπούς διαμοιρασμού των πόρων την ίδια στιγμή μεταξύ διαφορετικών χρηστών
 
* ''Διαφάνεια βλαβών'', δηλαδή απόκρυψη αστοχίας πόρων
 
* ''Διαφάνεια διατήρησης'', δηλαδή απόκρυψη της κατάστασης αποθήκευσης ενός πόρου (προσωρινός, σε μνήμη RAM, ή μόνιμος, σε δίσκο)
 
* ''Διαφάνεια παραλληλισμού'', δηλαδή απόκρυψη του αν μία εφαρμογή τρέχειεκτελείται σε έναν ή πολλούςπολλαπλούς επεξεργαστές
 
Προκειμένου να έχειπαρουσιάζει ένα κατανεμημένο σύστημα καλή κλιμάκωσηκλιμακωσιμότητα ως προς το πλήθος των κόμβων, συνήθως αποφεύγονται κατά την κατασκευή του οι συγκεντρωτικοί αλγόριθμοι, οι συγκεντρωτικές δομικές μονάδες και οι συγκεντρωτικοί πίνακες. Προτιμώνται κατανεμημένοι αλγόριθμοι, χωρίς συγχρονισμένο καθολικό ρολόι και όπου οι κόμβοι είναι ισότιμοι και παίρνουν αποφάσεις στηριζόμενοι μόνο σε αποσπασματικές, τοπικά διαθέσιμες πληροφορίες για το σύστημα. Έτσι ο φόρτος εργασίας δεν αυξάνει ανάλογα με το πλήθος των κόμβων και αποφεύγεται η κατάρρευση του συστήματος όταν καταρρέει ένας κόμβος.
 
Όμως ζητήματα κλιμάκωσηςκλιμακωσιμότητας προκύπτουν και λόγω των περιορισμών του δικτύου ή των διακομιστών. Ένας κόμβος του συστήματος θα πρέπει να αποκρύπτει από τοτον χρήστη τις πιθανές καθυστερήσεις επικοινωνίας όσο μπορεί, π.χ. μεταφέροντας ένα μέρος των υπολογισμών από τοτον διακομιστή στον πελάτη ή επικαλύπτοντας επικοινωνία και υπολογισμό, ενώ επιτυχημένες τεχνικέςμέθοδοι για την αντιμετώπιση του ζητήματος είναι η ''[[αντιγραφή'' (υπολογιστές)|αντιγραφή]] (replication), δηλαδή η δημιουργία δηλαδή πολλαπλών αντιγράφων ενός πόρου και η διανομή τους σε διάφορουςποικίλους κόμβους ώστε να αυξηθεί η διαθεσιμότητα (και επομένως η [[ανοχή σφαλμάτων]] ή οι υπολογιστικές επιδόσεις), και η διανομή, ο διαχωρισμός ενός συστατικού σε μικρότερα και η διαμοίρασηδιαμοίρασή τους στο σύστημα.
 
=== Λογισμικό ===
Γραμμή 149:
* Κατανεμημένα Λειτουργικά Συστήματα (DOS), τα οποία είναι συνεκτικά ΛΣ για πολυεπεξεργαστές και ομοιογενείς πολυυπολογιστές. Ένα DOS που εκτελείται σε έναν πολυυπολογιστή αποτελεί πραγματικό κατανεμημένο σύστημα.
 
* Λειτουργικά Συστήματα Δικτύου (NOS), τα οποία ειναι μη συνεκτικά ΛΣ για ετερογενείς πολυυπολογιστές σε LAN και WAN. Τα NOS (στην πράξη σχεδόν όλα τα σύγχρονα λειτουργικά συστήματα) δεν είναι από μόνα τους κατανεμημένα συστήματα.
 
* [[Ενδιάμεσο λογισμικό]], το οποίο στην πραγματικότητα είναι ένα επίπεδο λογισμικού που μεσολαβεί μεταξύ ενός NOS και μιας εφαρμογής (συνήθως μεταξύ του [[επίπεδο μεταφοράς|επιπέδου μεταφοράς]] και του [[επίπεδο εφαρμογών|επιπέδου εφαρμογών]] του μοντέλου TCP/IP) παρέχοντας την ψευδαίσθηση ενός DOS και ενός εικονικού ομοιογενούς περιβάλλοντος. Με το ενδιάμεσο λογισμικό είναι εφικτό ο συνδυασμός των πλεονεκτημάτων των DOS με των NOS.
[[Image:BOINC logo July 2007.svg|300px|thumb|right|Το [[BOINC]] είναι μία πλατφόρμα ενδιάμεσου λογισμικού για υποστήριξη κατανεμημένων εφαρμογών υπολογιστικού πλέγματος, οι οποίες αξιοποιούν την πληθώρα υπολογιστών συνδεδεμένων στο Internet για να επιτύχουν εξαιρετικά υψηλές υπολογιστικές επιδόσεις]]
 
ΠαράδειγμαΜε ενδιάμεσουβάση λογισμικούτα προηγούμενα, ενδιάμεσο λογισμικό αποτελεί μία βιβλιοθήκη η οποία υλοποιεί το MPI , λειτουργώντας έτσι ως ενδιάμεσο λογισμικόμεσολαβητής για την εύκολη και διαφανή ανάπτυξη παράλληλων εφαρμογών μεταβίβασης μηνυμάτων σε πολυυπολογιστές. Ωστόσο το MPI, ανλόγω του ρόλου και τοτης MPIφύσης του, παραβιάζει θεμελιωδώς τη διαφάνεια θέσης με τη ρητή ανταλλαγή μηνυμάτων μεταξύ των συμμετεχόντων διεργασιών. Ωστόσο κάποιο ενδιάμεσο λογισμικό μπορεί να μην παρέχεται ως ξεχωριστή βιβλιοθήκη για την υποστήριξη πολλαπλών εφαρμογών, αλλά να είναι ενσωματωμένο σε μία μόνο κατανεμημένη δικτυακή εφαρμογή και βελτιστοποιημένο γι' αυτήν. Αυτό συμβαίνει π.χ. με τις περισσότερες ομότιμες εφαρμογές ανταλλαγής αρχείων μέσω Διαδικτύου.
 
Τα DOS παρουσιάζονται στους χρήστες ως συγκεντρωτικά και μονοεπεξεργαστικά. Ένα DOS σε πολυεπεξεργαστή έχει έναν μοναδικό πυρήνα κοινό για όλες τις CPU (όχι μονολιθικό στην πλειονότητα των περιπτώσεων, για λόγους ευελιξίας) ενώ, αντιθέτως, σ' ένα DOS σε πολυυπολογιστή κάθε κόμβος έχει τοτον δικό του πυρήνα (ο οποίος χρησιμοποιεί την τοπική μνήμη) αλλά παρέχεται κατάλληλη διασύνδεση που αποκρύπτει αυτό το γεγονός από τις εφαρμογές προσφέροντας μέχρι και την ψευδαίσθηση κοινής [[εικονική μνήμη|εικονικής μνήμης]]: (τοο εικονικόχώρος πεδίοεικονικών διευθύνσεων διαμερίζεται σε σελίδες και σε κάθε κόμβο ανατίθενται κάποιες ('''κατανεμημένη κοινή μνήμη λογισμικού'''). ΣταΑυτό μοιάζει με ό,τι συμβαίνει στα συστήματα NUMA, όπου ο χώρος διευθύνσεων είναι έτσι κι αλλιώς κοινός από τη σκοπιά του λειτουργικού συστήματος, οπότε σε αυτά εκτελείται μόνο έναςπου πυρήναςοι όπωςεπιδόσεις καιενός στουςπολυυπολογιστή πολυεπεξεργαστές.με Τακατανεμημένη NOSκοινή λειτουργούνμνήμη σελογισμικού ετερογενείς,είναι δικτυωμένουςσαφώς κόμβους,χαμηλότερες προφανώςαπ' μεότι ξεχωριστόαν πυρήναη καιψευδαίσθηση του ξεχωριστόεναίου πεδίοχώρου διευθύνσεων σευλοποιούνταν κάθεστο κόμβουλικό, μεόπως χρήσηστην κάποιουαρχιτεκτονική μοντέλου κατανεμημένης λειτουργίας. Το ενδιάμεσο λογισμικό συνδυάζει τα πλεονεκτήματα των DOS με των NOSNUMA.
 
== Δείτε επίσης ==