Παράλληλα_και_κατανεμημένα_συστήματα
Πολυεπεξεργαστές
Στους πολυεπεξεργαστές η μνήμη συνήθως διασπάται σε πολλαπλά τμήματα προκειμένου να επιτρέπονται ταυτόχρονες προσπελάσεις σε αυτά από διαφορετικούς επεξεργαστές (χωρίς αυτό να αναιρεί φυσικά την ύπαρξη ενιαίου χώρου διευθύνσεων), ενώ το δίκτυο διασύνδεσης είναι στην απλούστερη περίπτωση ένας δίαυλος, δηλαδή ένα κοινό μέσο μετάδοσης το οποίο κάθε δεδομένη στιγμή μόνο ένας επεξεργαστής μπορεί να χρησιμοποιεί για επικοινωνία με κάποιο τμήμα μνήμης. Ως εκ τούτου οι πολυεπεξεργαστές διαύλου δεν παρουσιάζουν επαρκή κλιμακωσιμότητα, καθώς ο δίαυλος δεν διαθέτει αρκετή χωρητικότητα ώστε να εξυπηρετεί ταυτόχρονα αιτήσεις από πολλούς διαφορετικούς επεξεργαστές. Αυτό συνεπάγεται ότι οι επιδόσεις δεν αυξάνονται αναλογικά με το πλήθος των επεξεργαστών, αφού με την προσθήκη νέων επεξεργαστών πολλαπλασιάζονται τα διαστήματα αναμονής του καθενός για κατάληψη του διαύλου. Η λύση του διαύλου πάντως είναι η απλούστερη καθώς οι συνήθεις σειριακοί υπολογιστές έτσι κι αλλιώς διαθέτουν έναν δίαυλο για την επικοινωνία του επεξεργαστή με τη μνήμη και τις μονάδες Εισόδου / Εξόδου. Αν ωστόσο χρειαζόμαστε ένα σύστημα με περισσότερες από 10-20 CPU πρέπει να καταφύγουμε σε δίκτυα μεταγωγής, όπου μεταξύ κάθε επεξεργαστή και κάθε τμήματος της μνήμης δημιουργείται μία μοναδική διαδρομή. 300px|thumb|left|Ένας διπύρηνος μικροεπεξεργαστής [[Athlon 64 X2|Athlon 64 X2 6400+. Πρόκειται για έναν πολυεπεξεργαστή διαύλου υλοποιημένο σε ένα μόνο μικροτσίπ.]] Ανεξάρτητα από το είδος της διασύνδεσης, για την αύξηση των επιδόσεων και την αποφυγή υπερφόρτωσης του δικτύου, κάθε CPU διαθέτει τη δική της τοπική κρυφή μνήμη. Στα παράλληλα συστήματα όμως παρουσιάζεται το λεγόμενο «πρόβλημα της συνεκτικότητας» (cache coherence): ένα κοινόχρηστο δεδομένο που έχει αντιγραφεί σε πολλές κρυφές μνήμες μπορεί να τροποποιηθεί ανεξάρτητα στην καθεμία χωρίς να το γνωρίζει η κύρια ή οι άλλες κρυφές μνήμες, με αποτέλεσμα να υπάρχει ασάφεια ως προς το ποια είναι η σωστή τιμή του κάθε στιγμή. Το πρόβλημα αυτό επιλύεται στην περίπτωση ύπαρξης διαύλου με «πρωτόκολλα παρακολούθησης», όπου το υλικό κάθε επεξεργαστή παρακολουθεί όλη την πληροφορία που διακινείται στο κοινό μέσο και δρα ανάλογα, ενώ στην περίπτωση δικτύου μεταγωγής με «πρωτόκολλα καταλόγων», στους οποίους κάθε τμήμα της μνήμης διατηρεί έναν πίνακα με πληροφορίες για το ποιοι επεξεργαστές έχουν κάθε δεδομένο στην κρυφή τους μνήμη ώστε όποτε χρειάζεται να γίνονται οι κατάλληλες ενημερώσεις. Σε κάθε περίπτωση πάντως τα πρωτόκολλα συνεκτικότητας επιβαρύνουν το σύστημα, αφού αυξάνουν την κίνηση στο δίκτυο διασύνδεσης, με το πρόβλημα να μειώνεται (όχι όμως να απαλείφεται) μόνο αν καταβληθεί προσπάθεια ώστε τα παράλληλα προγράμματα να μην τροποποιούν συχνά κοινόχρηστα δεδομένα. Τα παράλληλα συστήματα κοινής μνήμης με δίαυλο στα οποία όλες οι CPU είναι ισότιμες και μπορούν όλες να αναλάβουν την εκτέλεση του λειτουργικού συστήματος ονομάζονται «συμμετρικοί πολυεπεξεργαστές» (SMP). Πάντως ακόμη και οι πολυεπεξεργαστές μεταγωγής στην πράξη έχουν περιορισμένη κλιμακωσιμότητα λόγω τετραγωνικά αυξανόμενου ως προς το πλήθος των επεξεργαστών κόστους κατασκευής του δικτύου διασύνδεσης, με αποτέλεσμα αν χρειαζόμαστε ένα σύστημα με παραπάνω από 64 CPU συνήθως να καταφεύγουμε σε πολυυπολογιστές.