9. ΚΑΤΑΝΕΜΗΜΕΝΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ



Σχετικά έγγραφα
Τεχνολογικά Επιτεύγµατα. Πλεονεκτήµατα. Ορισµός Κατανεµηµένου Συστήµατος. Μειονεκτήµατα. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο

Συστήµατα Πολλών Επεξεργαστών

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

Λειτουργικά Συστήματα (Λ/Σ)

Εισαγωγή Θέματα H/W. Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης. Κατανεμημένα Συστήματα (Ε) Εισαγωγή: Θέματα H/W 1

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112

Λειτουργικά Συστήματα Η/Υ

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Πολυπύρηνοι επεξεργαστές Multicore processors

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ

Κατανεµηµένασυστήµατα αρχείων

Λιβανός Γιώργος Εξάμηνο 2017Β

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ

Αρχιτεκτονική Υπολογιστών

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή

Διαχείριση Πολιτισμικών Δεδομένων

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

Κεφάλαιο 4: Λογισμικό Συστήματος

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων

Εικονική Μνήμη (Virtual Μemory)

ΕΙΣΑΓΩΓΗ. Παρέχει µια διεπαφή (interface) ανάµεσα στο υλισµικό και στα προγράµµατα εφαρµογών/χρηστών.

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Αρχιτεκτονική Υπολογιστών

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Εισαγωγή στην Πληροφορική

Διαφορές single-processor αρχιτεκτονικών και SoCs

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»

Σχεδιασµός βασισµένος σε συνιστώσες

Θέματα διπλωματικών εργασιών σε. Συστοιχίες παράλληλης εξυηρέτησης εφαρμογών Διαδικτύου

Δίκτυα Υπολογιστών I

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Κεφάλαιο 13. Λογισµικό Υλικό. Λειτουργικό σύστηµα υποστήριξης δικτύου. Ανακεφαλαίωση Ερωτήσεις

Επιτεύγµατα των Λ.Σ.

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική. Τυπικοί χρόνοι πρόσβασης. Μέσος χρόνος πρόσβασης. Ταχύτητα µεταφοράς δεδοµένων

Διάρθρωση. Δίκτυα Υπολογιστών I Βασικές Αρχές Δικτύωσης. Διάρθρωση. Δίκτυο Υπολογιστών: ένας απλός ορισμός. Ευάγγελος Παπαπέτρου

Εισαγωγή στην Πληροφορική

Linux Terminal Server Project

Χαρακτηρισµός Κατανεµηµένων Συστηµάτων

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 7: Τοπικά δίκτυα

ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Κεφάλαιο 3. Διδακτικοί Στόχοι

Πανεπιστήµιο Θεσσαλίας

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 3 η : Παράλληλη Επεξεργασία. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

Λειτουργικά Συστήματα (Λ/Σ)

Λειτουργικά Συστήματα

Κεφάλαιο 5: Τοπικά ίκτυα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

Δίκτυα Υπολογιστών I

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Chapter 4 (1) Αξιολόγηση και κατανόηση της απόδοσης

Κατανεμημένα Συστήματα

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Παραλληλισµός Εντολών (Pipelining)

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

EM 361: Παράλληλοι Υπολογισμοί

ίκτυα ίκτυο υπολογιστών: Ένα σύνολο από υπολογιστικές συσκευές που συνδέονται µεταξύ τους για σκοπούς επικοινωνίας και χρήσης πόρων. Συνήθως, οι συσκε

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Λειτουργικά Συστήματα (Λ/Σ)

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Συσκευές Τηλεπικοινωνιών και Δικτύωσης. Επικοινωνίες Δεδομένων Μάθημα 9 ο

Λειτουργικά Συστήματα Η/Υ

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

Επαναληπτικές Ασκήσεις Μαθήματος

Λειτουργικά Συστήματα Ι. Κεφάλαιο 1 Βασικές Έννοιες Λειτουργικών Συστημάτων

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Ηλεκτρονικό Εμπόριο

Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1

Αρχιτεκτονική υπολογιστών

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Ι. Σημειώσεις Θεωρίας

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Εισαγωγή Έννοιες Σχετικές Με S/W

Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης

7.11 Πρωτόκολλα εφαρµογής

Κεφάλαιο 10 ο Υποπρογράµµατα

Transcript:

9. ΚΑΤΑΝΕΜΗΜΕΝΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Στέφανος Γκρίτζαλης Αναπληρωτής Καθηγητής Κωνσταντίνος Καραφασούλης ιδάσκων (Π 407) 1

9.0 EIΣAΓΩΓ ΓΩΓH ΣTA KATANEMHMENA ΣYΣTHMATA Μέχρι τα µέσα της δεκαετίας του '80, οι υπολογιστές χαρακτηρίζονταν από µεγάλο µέγεθος και υψηλό κόστος. Το γεγονός αυτό είχε ως αποτέλεσµα, οι περισσότεροι οργανισµοί να επένδυαν στην προµήθεια µικρού αριθµού υπολογιστών που λειτουργούσαν συνήθως ανεξάρτητα, λόγω της ανυπαρξίας τρόπου διασύνδεσης µεταξύ τους. Αργότερα, δύο τεχνολογικά επιτεύγµατα άρχισαν να διαφοροποιούν αυτήν την κατάσταση: η ανάπτυξη ισχυρών µικροεπεξεργαστών (microprocessors) η δηµιουργία τοπικών δικτύων υψηλών ταχυτήτων (high speed Local Area Networks) 2 2

Το τελικό αποτέλεσµα των δύο αυτών επιτευγµάτων, είναι η δυνατότητα να λειτουργήσουν µαζί υπολογιστικά συστήµατα που αποτελούνται από µεγάλο αριθµό CPU συνδεοµένων µέσω δικτύων υψηλών ταχυτήτων. Τα συστήµατα αυτά αποκαλούνται συνήθως κατανεµηµένα συστήµατα (distributed systems). Τα προηγούµενα παραδοσιακά συστήµατα καλούνται κεντρικοποιηµένα συστήµατα (centralized systems) αποτελούµενα από µία µοναδική CPU, την κεντρική µνήµη, τα περιφερειακά και τα τερµατικά. 3 3

Στη διεθνή βιβλιογραφία εµφανίζεται διάκριση, σε κάποιο βαθµό, ανάµεσα στα κατανεµηµένα συστήµατα όπως αυτά παρουσιάσθηκαν παραπάνω και στα παράλληλα συστήµατα (parallel systems), των οποίων µοναδικός σκοπός είναι η επίτευξη µεγαλύτερης επιτάχυνσης κατά την επίλυση ενός µοναδικού προβλήµατος. 4 4

9.1.ΣΤΟΧΟΙ ΗΜΙΟΥΡΓΙΑΣ ΚΑΤΑΝΕΜΗΜΕΝΩΝ ΣΥΣΤΗΜΑΤΩΝ 9.1.1. Πλεονεκτήµατα Κατανεµηµένων έναντι Κεντρικοποιηµένων Συστηµάτων Χαρακτηριστικό Περιγραφική επεξήγηση Οικονοµία προσέγγιση Ι Οι µικροεπεξεργαστές σε ένα κατανεµηµένο σύστηµα παρέχουν καλύτερο λόγο κόστους/απόδοσης (price/performance performance ratio) από τα κεντρικοποιηµένα υπολογιστικά συστήµατα, δηλαδή καλύτερη αξιοποίηση της πραγµατοποιηθείσας επένδυσης 5 5

Οικονοµία προσέγγιση ΙΙ Ταχύτητα Μία συλλογή από µικροεπεξεργαστές είναι δυνατό να εµφανίσει απόλυτη τιµή απόδοσης, την οποία δεν είναι δυνατό να επιτύχει κανένα κεντρικοποιηµένο υπολογιστικό σύστηµα Ένα κατανεµηµένο σύστηµα µπορεί να έχει συνολικά µεγαλύτερη υπολογιστική ισχύ από ένα κεντρικοποιηµένο υπολογιστικό σύστηµα 6 6

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

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

9.1.3. Μειονεκτήµατα Κατανεµηµένων Συστηµάτων Χαρακτηριστικό Λογισµικό ικτύωση Περιγραφική επεξήγηση εν υπάρχει ακόµη σηµαντική εµπειρία στη σχεδίαση, υλοποίηση αλλά και χρήση του απαιτούµενου λογισµικού (systems & application software) για αποδοτική λειτουργία κατανεµηµένων συστηµάτων Υπάρχει το ενδεχόµενο κορεσµού του δικτύου, ενώ πρέπει να επιλυθεί το πρόβληµα της αξιοπιστίας του Ασφάλεια Υπάρχει ιδιαίτερος κίνδυνος πρόσβασης στο δίκτυο και προσπέλασης σε δεδοµένα, από µη εξουσιοδοτηµένους χρήστες 9 9

9.2. ΖΗΤΗΜΑΤΑ ΥΛΙΚΟΥ Θα µελετήσουµε µεθόδους κατηγοριοποίησης συστηµάτων: ΜΕΘΟ ΟΣ 1: ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ FLYNN Η περισσότερο γνωστή µέθοδος ταξινόµησης προτάθηκε από τον Flynn, µε κριτήριο επιλογής για κατάταξη: το πλήθος των ροών εντολών (instruction streams) το πλήθος των ροών δεδοµένων (data streams). 10 10

Ταξινόµηση Flynn Εντολή Εντολή Εντολή Εντολή CPU CPU CPU Εντολή Εντολή CPU CPU CPU εδοµένα CPU CPU CPU εδοµένα εδοµένα εδοµένα εδοµένα εδοµένα SISD SIMD MISD MIMD 11 11

Με τα στοιχεία αυτά κατηγορίες σύνδεσης: προκύπτουν, κατά Flynn, τέσσερις 1. Υπολογιστής µε µοναδική ροή εντολών και µοναδική ροή δεδοµένων ονοµάζεται µοναδικής εντολής - µοναδικών δεδοµένων (SISD). Όλοι οι παραδοσιακοί µονοεπεξεργαστικοί υπολογιστές ανήκουν σε αυτή την κατηγορία. 2. Υπολογιστές µοναδικής εντολής - πολλαπλών δεδοµένων (SIMD) έχουν µία µοναδική ροή εντολών και πολλαπλές ροές δεδοµένων. Η κατηγορία αυτή αναφέρεται στους επεξεργαστές σε παράθεση (array processors) µε µία µονάδα εντολών (instruction unit), η οποία διαβάζει µια εντολή και στη συνέχεια δίνει εντολή σε πολλές µονάδες δεδοµένων (data units) να την εκτελέσουν παράλληλα, κάθε µία µε τα δικά της δεδοµένα. Κάποιοι υπερυπολογιστές (supercomputers) ανήκουν στην κατηγορία SIMD. 12 12

3. Υπολογιστές πολλαπλών εντολών - µοναδικών δεδοµένων (MISD) έχουν πολλαπλές ροές εντολών και µοναδική ροή δεδοµένων. Η/Υ σε συστήµατα πλοήγησης αεροσκαφών, πολλοί υπολογιστές µε µοναδική ροή σε περίπτωση που κάποιος από αυτούς καταστραφεί. 4. Υπολογιστές πολλαπλών εντολών - πολλαπλών δεδοµένων (MIMD), που ουσιαστικά αναφέρεται σε µια οµάδα ανεξαρτήτων υπολογιστών, ο καθένας από τους οποίους έχει το δικό του δείκτη εντολών προγράµµατος (program counter), πρόγραµµα και δεδοµένα. Όλα τα κατανεµηµένα κατηγορία των MIMD. συστήµατα εντάσσονται στην 13 13

MIMD : πολυεπεξεργαστές πολυυπολογιστές πολυεπεξεργαστές (multiprocessors): έχουν διαµοιραζόµενη µνήµη (shared memory) και συνήθως αποκαλούνται σε αυτούς που πολυυπολογιστές (multicomputers): δεν έχουν διαµοιραζόµενη µνήµη H ειδοποιός διαφορά, είναι η ύπαρξη σε έναν πολυεπεξεργαστή ενός µοναδικού ιδεατού χώρου διευθύνσεων (virtual address space) ο οποίος είναι προσπελάσιµος από όλες τις CPUs. Αντίθετα, σε έναν πολυυπολογιστή κάθε µηχανή έχει τη δική της ιδιωτική µνήµη (private memory). 14 14

Εντολή Εντολή Εντολή Εντολή CPU CPU CPU CPU Data Memory Data Memory Virtual Addresses Data Data Shared Memory Πολυυπολογιστές Πολυεπεξεργαστές 15 15

Κάθε µία από τις παραπάνω κατηγορίες µπορεί να διαιρεθεί περαιτέρω µε βάση την αρχιτεκτονική του δικτύου διασύνδεσης. Η έννοια της αρτηρίας (bus) αναφέρεται στην ύπαρξη ενός µοναδικού δικτύου, κεντρικού σκελετού (backplane), αρτηρίας, καλωδίου ή άλλου µέσου που συνδέει όλες τις µηχανές (π.χ. εµπορική καλωδιακή τηλεόραση). Τα συστήµατα µεταγωγής (switched) περιλαµβάνουν ανεξάρτητους αγωγούς από µηχανή σε µηχανή, χρησιµοποιώντας πολλά και διαφορετικά πρότυπα διασύνδεσης. Τα µηνύµατα µεταφέρονται µέσω των αγωγών και σε κάθε βήµα λαµβάνεται µια σαφής απόφαση µεταγωγής προκειµένου να δροµολογηθεί το µήνυµα µέσω ενός από τους εξερχόµενους αγωγούς (π.χ. παγκόσµιο σύστηµα δηµόσιας τηλεφωνίας). 16 16

Αρχιτεκτονική διασύνδεσης Εντολή Εντολή Εντολή ίκτυο µεταγωγής Εντολή CPU CPU CPU CPU Data Μνήµη Data Μνήµη Data Μνήµη Data Μνήµα Αρτηρία στενά συνδεδεµένες µηχανές: Υψηλή Ταχύτητα Μεταγωγή χαλαρά συνδεδεµένες µηχανές: Χαµηλής Ταχύτητας 17 17

ΜΕΘΟ ΟΣ 2: ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΒΑΣΗ ΤΟ ΒΑΘΜΟ ΙΑΣΥΝ ΕΣΗΣ ΑΝΑΜΕΣΑ ΣΤΙΣ ΜΗΧΑΝΕΣ Η µέθοδος αυτή κατηγοριοποίησης συστηµάτων, βασίζεται στο βαθµό διασύνδεσης ανάµεσα στις επιµέρους µηχανές, ώστε αυτές διακρίνονται σε: στενά συνδεδεµένες µηχανές (tightly coupled) η µικρή χρονική καθυστέρηση στη µεταφορά µηνύµατος από έναν υπολογιστή σε έναν άλλο ο υψηλός ρυθµός µετάδοσης των δεδοµένων χαλαρά συνδεδεµένες µηχανές (loosely coupled) Μεγαλύτερη χρονική καθυστέρηση στη µεταφορά µηνυµάτων Χαµηλός ρυθµός δεδοµένων 18 18

Παραδείγµατα: Στενά Συνδεδεµένα: δύο ολοκληρωµένα κυκλώµατα CPU που βρίσκονται στην ίδια τυπωµένη πλακέτα κυκλωµάτων και συνδέονται µέσω αποτυπωµένων στην πλακέτα αγωγών, θεωρείται ότι είναι στενά συνδεδεµένα παράλληλα συστήµατα, συνεργαζόµενα για την επίλυση ενός µοναδικού προβλήµατος, θεωρείται ότι είναι στενά συνδεδεµένα Χαλαρά Συνδεδεµένα: δύο υπολογιστές που συνδέονται µέσω ενός διαµορφωτή/αποδιαµορφωτή αποδιαµορφωτή (modem) ταχύτητας 1200 bit/sec και ενός τηλεφωνικού συστήµατος, είναι χαλαρά συνδεδεµένοι. 19 19

Γενικά: Οι πολυεπεξεργαστές τείνουν να είναι περισσότερο στενά συνδεδεµένοι από τους πολυ υπολογιστές, γιατί µπορούν να ανταλλάσσουν δεδοµένα σε χρόνους αντίστοιχους της ταχύτητας πρόσβασης στη µνήµη. Όµως: µερικοί πολυυπολογιστές που βασίζονται σε οπτικές ίνες (fiber optics) µπορούν επίσης να λειτουργήσουν σε ανάλογες ταχύτητες. 20 20

Συνοπτικά προκύπτουν τέσσερις κατηγορίες, δηλαδή: 1. πολυεπεξεργαστές αρτηρίας (bus multiprocessors) 2. πολυεπεξεργαστές µεταγωγής (switched multiprocessors) 3. πολυυπολογιστές αρτηρίας (bus multicomputers) 4. πολυυπολογιστές µεταγωγής (switched multicomputers). 21 21

9.2.1. Πολυεπεξεργαστές Βασισµένοι σε Αρτηρία CPU CPU CPU Μνήµη Αρτηρία ΟιΟι βασισµένοι σε αρτηρία πολυεπεξεργαστές (bus-based based multiprocessors), αποτελούνται από έναν αριθµό CPUs, όπου όλες συνδέονται σε µια κοινή αρτηρία, καθώς και ένα τµήµα µνήµης (memory module). ΕπειδήΕπειδή υπάρχει µόνο µία µνήµη, αν µία CPU γράψει µια λέξη στη µνήµη και µετά µία άλλη CPU διαβάσει αυτή τη λέξη λίγο αργότερα, η δεύτερη θα διαβάσει την τιµή που µόλις εγγράφηκε. Η µνήµη που έχει αυτή την ιδιότητα χαρακτηρίζεται ως συνεπής (coherent). 22 22

Το πρόβληµα µε το προταθέν σχεδιαστικό µοντέλο είναι ότι µόλις µε 4 ή 5 το πολύ CPUs, η αρτηρία υπερφορτώνεται και η απόδοση ελαττώνεται σε σηµαντικό βαθµό. Η λύση σε αυτό το πρόβληµα είναι η πρόσθεση µιας γρήγορης κρυφής µνήµης (cache memory) ανάµεσα στην CPU και την αρτηρία. Η λειτουργία της κρυφής µνήµης βασίζεται στην αρχή της προσφατότητας (principle of recentness). Αν η κρυφή µνήµη έχει µεγάλο µέγεθος, το ποσοστό επιτυχίας (hit rate), θα είναι υψηλό και το µέγεθος της κυκλοφορίας στην αρτηρία ανά CPU θα µειωθεί δραµατικά, επιτρέποντας την ύπαρξη περισσοτέρων CPUs στο σύστηµα. 23 23

Παράλληλα όµως η ύπαρξη της κρυφής µνήµης προκαλεί ένα σηµαντικό πρόβληµα: Αν δύο CPU αντιγράψουν την ίδια λέξη στις αντίστοιχες κρυφές τους µνήµες και στη συνέχεια η µία εγγράψει νέα τιµή στη λέξη, τότε όταν η άλλη διαβάσει αυτή τη λέξη βρίσκει την παλαιά της τιµή και όχι αυτήν που η CPU µόλις έγγραψε. Η µνήµη είναι µη συνεπής οπότε και ο προγραµµατισµός του συστήµατος δύσκολος. Μία προταθείσα λύση είναι οι κρυφές µνήµες να είναι σχεδιασµένες έτσι ώστε όταν µια λέξη εγγράφεται στην κρυφή µνήµη, να εγγράφεται ταυτόχρονα και στην κύρια µνήµη. Αυτή η κρυφή µνήµη, ονοµάζεται κρυφή µνήµη ταυτόχρονης εγγραφής (write-through through cache). 24 24

ΜεΜε αυτήν τη σχεδίαση, οι αποτυχηµένες προσπελάσεις στην κρυφή µνήµη για ανάγνωση, προκαλούν αυξηµένη κυκλοφορία στην αρτηρία, όλες οι εγγραφές, είτε επιτυχηµένες - είτε αποτυχηµένες, προκαλούν αύξηση κυκλοφορίας στην αρτηρία. Εναλλακτική λύση είναι όλες οι κρυφές µνήµες να παρακολουθούν συνεχώς την αρτηρία. Όταν µια κρυφή µνήµη εντοπίσει µια εγγραφή προς µια διεύθυνση µνήµης που είναι εφικτή σε αυτήν, είτε διαγράφει αυτή τη θέση από την κρυφή µνήµη είτε την ενηµερώνει µε τη νέα τιµή. Αυτή η κρυφή µνήµη ονοµάζεται κατοπτεύουσα κρυφή µνήµη (snoopy cache), αφού κατοπτεύει διαρκώς την αρτηρία. 25 25

Μια αποτελεσµατική σχεδίαση, αποτελείται από κατοπτεύουσες κρυφές µνήµες ταυτόχρονης εγγραφής, είναι συνεπής και µη ορατή (transparent) στον προγραµµατιστή. Σχεδόν όλοι οι πολυεπεξεργαστές που βασίζονται σε αρτηρία χρησιµοποιούν τη συγκεκριµένη αρχιτεκτονική ή κάποια συναφή µε αυτή. Με αυτό το σχήµα, είναι δυνατό να λειτουργήσουν περίπου 32 έως 64 το πολύ CPUs σε µια µοναδική αρτηρία. 26 26

9.2.2. Πολυεπεξεργαστές Μεταγωγής Για την κατασκευή πολυεπεξεργαστή µε περισσότερους από 64 επεξεργαστές ιαιρούµε τη µνήµη σε τµήµατα και να τα συνδέσουµε µε τη CPU µέσω ενός πίνακα µεταγωγής (crossbar switch) Κάθε CPU και κάθε µνήµη έχουν µια εξερχόµενη γραµµή σύνδεσης. Σε κάθε διασταύρωση υπάρχει ένα πολύ µικρό ηλεκτρονικό σηµείο µεταγωγής (crosspoint switch) που µπορεί να ανοίξει και να κλείσει µε χρήση υλικού. 27 27

Το πλεονέκτηµα του πίνακα µεταγωγής είναι ότι πολλές CPUs µπορούν να έχουν πρόσβαση στη µνήµη την ίδια χρονική στιγµή, αν και στην περίπτωση που δύο CPUs επιχειρήσουν να προσπελάσουν την ίδια µνήµη ταυτόχρονα, η µία από αυτές θα πρέπει να περιµένει. Το µειονέκτηµα του πίνακα µεταγωγής είναι ότι έχοντας ν CPUs και ν µνήµες χρειάζονται ν 2 σηµεία µεταγωγής, αριθµός ο οποίος µπορεί να είναι απαγορευτικός για µεγάλες τιµές του ν. 28 28

Για την επίλυση του προβλήµατος αυτού έχουν προταθεί εναλλακτικά δίκτυα µεταγωγής, τα οποία απαιτούν µικρότερο αριθµό µεταγωγών. Το δίκτυο ωµέγα (omega network) περιέχει τέσσερις 2x22 2 µεταγωγές, κάθε µια από τις οποίες έχει 2 εισόδους και 2 εξόδους. Κάθε µεταγωγή µπορεί να δροµολογήσει οποιαδήποτε είσοδο προς οποιαδήποτε έξοδο Με την κατάλληλη τοποθέτηση των µεταγωγών, κάθε CPU µπορεί να έχει πρόσβαση σε κάθε µνήµη. Στη γενική περίπτωση, µε ν CPUs και ν µνήµες το ωµέγα δίκτυο απαιτεί ν στάδια µεταγωγής, κάθε ένα από τα οποία περιέχει log 2 ν µεταγωγές, µε ένα σύνολο νlog 2 ν µεταγωγών. 29 29

Το δίκτυο ωµέγα έχει δύο σηµαντικά µειονεκτήµατα: Το πλήθος των µεταγωγών: Για µεγάλες τιµές ν, το πλήθος νlog 2 ν των µεταγωγών είναι αναµφισβήτητα καλύτερο από το ν 2, συνεχίζει όµως να θεωρείται ιδιαίτερα µεγάλο. Την καθυστέρηση: Για ν=1024 υπάρχουν 10 στάδια µεταγωγής από την CPU µέχρι τη µνήµη και ακόµα 10 προκειµένου να επιστρέψει η ζητούµενη λέξη. Αν υποτεθεί ότι η CPU είναι 50 MHz, προκύπτει ότι ο χρόνος εκτέλεσης της εντολής είναι 20 nsec. Αν η απαίτηση της µνήµης χρειάζεται να διασχίσει 20 στάδια µεταγωγής σε 20 nsec, τότε ο χρόνος µεταγωγής πρέπει να είναι 1 nsec. Ολόκληρος ο πολυεπεξεργαστής θα χρειαστεί 10.240 µεταγωγές του 1 nsec, οπότε η υλοποίηση αυτή, δε φαίνεται να είναι ιδιαίτερα φθηνή. 30 30

Για τη µείωση του κόστους προτάθηκε (LaRowe et al. 1991) µία άλλη σχεδίαση: Mία µνήµη συσχετίζεται µε κάθε CPU. Κάθε CPU µπορεί να προσπελάσει τη δική της µνήµη γρήγορα, αλλά η πρόσβαση σε οποιαδήποτε άλλη µνήµη είναι πιο αργή. Αυτή η σχεδίαση οδήγησε στη δηµιουργία της µηχανής που είναι γνωστή ως NUMA (Μη Οµοιόµορφη Πρόσβαση Μνήµης - NonUniform Memory Access). Στις µηχανές NUMA παρουσιάζεται µία νέα επιπλοκή, η τοποθέτηση του προγράµµατος και των δεδοµένων στην τοπική µνήµη. Συνοψίζοντας διαφαίνεται ότι η κατασκευή ενός µεγάλου, στενά συνδεδεµένου, διαµοιράσιµης µνήµης πολυεπεξεργαστή είναι σχεδιαστικά δύσκολη, αλλά και ακριβή επιλογή. 31 31

9.2.3. Πολυυπολογιστές Βασισµένοι σε Αρτηρία Η κατασκευή ενός πολυυπολογιστή είναι σχετικά εύκολη διαδικασία, αφού κάθε CPU έχει µια άµεση σύνδεση µε τη δική της µόνον τοπική µνήµη. Τοπολογικά ο πολυυπολογιστής βασισµένος σε αρτηρία, φαίνεται ίδιος µε έναν πολυεπεξεργαστή βασισµένο σε αρτηρία. Στην πραγµατικότητα όµως η κεντρική αρτηρία, µπορεί να είναι ένα πολύ χαµηλότερης ταχύτητας LAN (τυπικά 10-100 100 Mbps συγκριτικά µε τα 300 Mbps, τουλάχιστον, µιας κεντρικής αρτηρίας). Ο κυκλοφοριακός φόρτος θα είναι αρκετές τάξεις µεγέθους χαµηλότερος από την περίπτωση όπου το δίκτυο διασύνδεσης χρησιµοποιείται και για την κυκλοφορία από τη CPU στη µνήµη. 32 Η κατασκευή ενός πολυυπολογιστή είναι σχετικά εύκολη διαδικασία, αφού κάθε CPU έχει µια άµεση σύνδεση µε τηδικήτηςµόνον τοπική µνήµη. Το µόνο πρόβληµα πουπαραµένει αφορά στον τρόπο µε τον οποίο οι CPUs επικοινωνούν µεταξύ τους, αλλά µε βάση το γεγονός ότι αφορά µόνο στην επικοινωνία από CPU προς CPU, ο κυκλοφοριακός φόρτος θα είναι αρκετές τάξεις µεγέθους χαµηλότερος από την περίπτωση όπου το δίκτυο διασύνδεσης χρησιµοποιείται και για την κυκλοφορία από τη CPU στη µνήµη. Τοπολογικά ο πολυυπολογιστής βασισµένος σε αρτηρία, φαίνεται ίδιος µε έναν πολυεπεξεργαστή βασισµένο σε αρτηρία. Στην πραγµατικότητα όµως η κεντρική αρτηρία, µπορεί να είναι ένα πολύ χαµηλότερης ταχύτητας LAN (τυπικά 10-100 Mbps συγκριτικά µε τα300 Mbps, τουλάχιστον, µιας κεντρικής αρτηρίας). 32

9.2.4. Πολυυπολογιστές Μεταγωγής Πολλά δίκτυα διασύνδεσης έχουν κατασκευαστεί µε κοινό χαρακτηριστικό ότι κάθε CPU έχει άµεση και αποκλειστική πρόσβαση στη δική της ιδιωτική µνήµη. Οι δηµοφιλέστερες τοπολογίες είναι: του πλέγµατος (grid) του υπερκύβου (hypercube). Η τοπολογία του πλέγµατος εφαρµόζεται σε πλακέτες τυπωµένων κυκλωµάτων και επιλέγεται για την επίλυση προβληµάτων που έχουν έµφυτη δισδιάσταστη φύση (θεωρία γράφων, τεχνητή όραση κλπ.). 33 Ένας υπερκύβος είναι ένας κύβος ν διαστάσεων. Ο συνηθισµένος υπερκύβος είναι 4 διαστάσεων. Μπορεί να γίνει αντιληπτός σα δύο συνηθισµένοι κύβοι, έχοντας ο καθένας 8 κορυφές και 12 ακµές. Κάθε κορυφή είναι µια CPU. Κάθε ακµή είναι µια σύνδεση ανάµεσα σε δύο CPU. Οι αντίστοιχες κορυφές ανάµεσα στους δύο κύβους συνδέονται µεταξύ τους. Για την επέκταση του υπερκύβου στις ν διαστάσεις, κάθε CPU έχει ν συνδέσεις µε άλλες CPU. Έτσι η πολυπλοκότητα των συνδέσεων αυξάνει λογαριθµικά ανάλογα µε το µέγεθος. Οι υπερκύβοι µε 1024 CPUs είναι διαθέσιµοι στο εµπόριο εδώ και αρκετά χρόνια, ενώ υπερκύβοι ακόµα και µε 16.384 CPUs αρχίζουν σήµερα και γίνονται διαθέσιµοι. 33

9.3. ΖΗΤΗΜΑΤΑ ΛΟΓΙΣΜΙΚΟΥ Το χαλαρά συνδεδεµένο λογισµικό επιτρέπει στις µηχανές και τους χρήστες ενός κατανεµηµένου συστήµατος να είναι θεµελιωδώς ανεξάρτητοι µεταξύ τους, αλλά να αλληλεπιδρούν σε κάποιο περιορισµένο βαθµό, όπου αυτό είναι απαραίτητο. Παράδειγµα χαλαρά συνδεδεµένου συστήµατος: µία οµάδα προσωπικών υπολογιστών πάνω σε ένα LAN, κάθε ένας από τους οποίους έχει τη δική του CPU, τη δική του µνήµη, το δικό του σκληρό δίσκο και το δικό του λειτουργικό σύστηµα, αλλά µοιράζονται κοινούς πόρους, όπως εκτυπωτές και βάσεις δεδοµένων. 34 34

Αν το δίκτυο καταρρεύσει για κάποιο λόγο: οι ανεξάρτητες µηχανές µπορούν να συνεχίσουν την εκτέλεση της εργασίας τους σε ένα σηµαντικό βαθµό, έστω και αν απολεστεί µέρος της λειτουργικότητάς τους (π.χ. η δυνατότητα εκτύπωσης αρχείων). Ένας πολυεπεξεργαστής που αφιερώνεται στην παράλληλη εκτέλεση ενός συγκεκριµένου προγράµµατος σκακιού. Σε κάθε CPU ανατίθεται η εκτίµηση των θέσεων µιας σκακιέρας και συνεπώς αναλώνει το χρόνο της στην εξέταση αυτών καθώς και όλων των θέσεων που µπορεί να προκύψουν. Το λογισµικό για αυτό το σύστηµα, δηλαδή τόσο το λογισµικό εφαρµογής όσο και το λειτουργικό σύστηµα που απαιτείται για να το υποστηρίξει, είναι φανερά πολύ περισσότερο στενά συνδεδεµένα σε σχέση µε το προηγούµενο παράδειγµα. 35 35

9.3.1. Λειτουργικά Συστήµατα ικτύου και NFS Σε πολλούς οργανισµούς, χαλαρά συνδεδεµένο λογισµικό και χαλαρά συνδεδεµένο υλικό, είναι η περισσότερο συνηθισµένη υλοποίηση. Παράδειγµα αντίστοιχης περίπτωσης αποτελεί ένα δίκτυο που αποτελείται από σταθµούς εργασίας που συνδέονται µέσω ενός LAN. Σε αυτό το µοντέλο: κάθε χρήστης έχει ένα σταθµό εργασίας για αποκλειστικά δική του χρήση ο ο σταθµός εργασίας µπορεί να διαθέτει ή να µη διαθέτει σκληρό δίσκο κάθε σταθµός εργασίας έχει οπωσδήποτε το δικό του λειτουργικό σύστηµα στηµα όλες οι εντολές εκτελούνται τοπικά στο σταθµό εργασίας. 36 36

Υπάρχει όµως η δυνατότητα για ένα χρήστη να συνδεθεί αποµακρυσµένα µε κάποιο άλλο σταθµό εργασίας, χρησιµοποιώντας εντολή της µορφής: rlogin machine1 Το αποτέλεσµα αυτής της εντολής είναι η µετατροπή του σταθµού εργασίας του χρήστη, σε αποµακρυσµένο τερµατικό (remote terminal) που συνδέεται µε την αποµακρυσµένη µηχανή. 37 37

Τα δίκτυα σταθµών εργασίας διαθέτουν επίσης, στις περισσότερες περιπτώσεις, µια εντολή αποµακρυσµένης αντιγραφής, προκειµένου να αντιγράφονται αρχεία από µια µηχανή σε µια άλλη, όπως rcp machine1:file1 machine2:file2 Ο τρόπος αυτός επικοινωνίας είναι, υπό µία έννοια, σχετικά παλαιός και έχει οδηγήσει τους σχεδιαστές συστηµάτων στην αναζήτηση περισσότερο εύχρηστων τρόπων επικοινωνίας και διαµοιρασµού της πληροφορίας. 38 38

Μια προσέγγιση είναι να παρέχεται ένα διαµοιράσιµο και καθολικό σύστηµα αρχείων (file system), προσπελάσιµο από όλους τους σταθµούς εργασίας. Το σύστηµα αρχείων υποστηρίζεται από µία ή περισσότερες µηχανές που ονοµάζονται εξυπηρέτες αρχείων (file servers). Οι εξυπηρέτες αρχείων δέχονται αιτήσεις από τα προγράµµατα των χρηστών, τα οποία εκτελούνται σε άλλες µηχανές που ονοµάζονται εξυπηρετούµενοι (clients). Κάθε αίτηση, στα πλαίσια λειτουργίας της: εξετάζεται εκτελείται αποστέλλεται η απάντηση στον εξυπηρετούµενο. 39 39

Οι εξυπηρέτες αρχείων συνήθως διατηρούν ιεραρχικά συστήµατα αρχείων Το λειτουργικό σύστηµα που χρησιµοποιείται σε αυτό το περιβάλλον πρέπει να διαχειρίζεται τους ανεξάρτητους σταθµούς εργασίας, τους εξυπηρέτες αρχείων και επίσης να φροντίζει για την επικοινωνία 40 ανάµεσά τους. Οι εξυπηρέτες αρχείων συνήθως διατηρούν ιεραρχικά συστήµατα αρχείων, έχοντας το καθένα ένα πρωταρχικό κατάλογο που περιέχει υποκαταλόγους και αρχεία. Οι σταθµοί εργασίας µπορούν να εισάγουν (import) ή να προσαρτήσουν (mount) αυτά τα συστήµατα αρχείων προσαυξάνοντας τα δικά τους τοπικά συστήµατα αρχείων µε αυτά που βρίσκονται στους εξυπηρέτες. Ενώ δεν έχει σηµασία αν ένας εξυπηρετούµενος προσαρτήσει έναν εξυπηρέτη στη δική του ιεραρχία καταλόγων, είναι σηµαντικό να παρατηρήσουµε ότι διαφορετικοί εξυπηρετούµενοι µπορεί να έχουν µια διαφορετική όψη του συστήµατος αρχείων. Κάθε σταθµός εργασίας λειτουργεί σχετικά ανεξάρτητα από τους υπολοίπους, το πιθανότερο είναι ότι δεν παρουσιάζουν όλοι την ίδια ιεραρχία καταλόγων στα προγράµµατά τους. Το λειτουργικό σύστηµα που χρησιµοποιείται σε αυτό το περιβάλλον πρέπει να διαχειρίζεται τους ανεξάρτητους σταθµούς εργασίας, τους εξυπηρέτες αρχείων και επίσης να φροντίζει για την επικοινωνία ανάµεσά τους. 40

Είναι πιθανό ότι όλες οι µηχανές τρέχουν το ίδιο λειτουργικό σύστηµα, αλλά αυτό δεν αποτελεί απαίτηση. Αν οι εξυπηρέτες και οι εξυπηρετούµενοι τρέχουν πάνω σε διαφορετικά συστήµατα, τότε το ελάχιστο στο οποίο πρέπει να συµφωνούν, είναι η µορφή και το νόηµα των µηνυµάτων που µπορούν να ανταλλάξουν. Mία κατάσταση όπως η παραπάνω, όπου κάθε µηχανή έχει έναν υψηλό βαθµό αυτονοµίας και υπάρχουν λίγες απαιτήσεις που αφορούν στο σύνολο του συστήµατος, χαρακτηρίζεται ως λειτουργικό σύστηµα δικτύου (network operating system). 41 41

ΈναΈνα από τα περισσότερο γνωστά λειτουργικά συστήµατα δικτύου είναι το NFS Σύστηµα Αρχείων ικτύου (Network File System). ΤοΤο NFS αρχικά σχεδιάστηκε και υλοποιήθηκε από την Sun Μicrosystems για χρήση στους βασισµένους σε UΝIX σταθµούς εργασίας της. Σήµερα, το υποστηρίζουν και άλλοι κατασκευαστές, τόσο για UNIX όσο και για άλλα λειτουργικά συστήµατα Το NFS υποστηρίζει και ετερογενή συστήµατα. Είναι συνηθισµένο να υπάρχουν MS-DOS εξυπηρετούµενοι, που εκτελούνται σε Intel 386 CPU και εξυπηρετούνται από UNIX εξυπηρέτες αρχείων, που εκτελούνται σε Μotorola 68030 ή Sun SPARC CPU. 42 42

9.3.2. Πραγµατικά Κατανεµηµένα Συστήµατα ΤοΤο NFS αποτελεί ένα παράδειγµα χαλαρά συνδεδεµένου λογισµικού σε χαλαρά συνδεδεµένο υλικό. ΚάθεΚάθε χρήστης µπορεί να τρέχει το δικό του λειτουργικό σύστηµα και να κάνει ό,τι επιθυµεί ο ιδιοκτήτης του. εν εν υπάρχει ουσιαστικά κανένας συντονισµός, εκτός από τον κανόνα ότι η κυκλοφορία ανάµεσα στους εξυπηρέτες και εξυπηρετούµενους πρέπει να υπακούει στα πρωτόκολλα του NFS. ΣτηνΣτην πραγµατική διάσταση ενός κατανεµηµένου συστήµατος, υπάρχει µόνον ένα διαµοιραζόµενο σύστηµα αρχείων. 43 43

Το επόµενο βήµα της εξέλιξης είναι στενά συνδεδεµένο λογισµικό πάνω σε χαλαρά συνδεδεµένο υλικό (πολυυπολογιστές). Σκοπός ενός τέτοιου συστήµατος είναι η δηµιουργία της ψευδαίσθησης στους χρήστες ότι το όλο δίκτυο υπολογιστών είναι ένα µοναδικό σύστηµα διαµοιρασµού χρόνου (timesharing) και όχι µια συλλογή από διακριτές µηχανές. Με βάση τα παραπάνω θεωρούµε ότι: Κατανεµηµένο είναι ένα σύστηµα, το οποίο τρέχει σε µια συλλογή µηχανών που δεν έχουν διαµοιραζόµενη µνήµη, ενώ δίνει στους χρήστες την εντύπωση ενός µοναδικού υπολογιστή (virtual uniprocessor - single system image). 44 44

Τα κυριότερα χαρακτηριστικά συστήµατος είναι: ενός κατανεµηµένου 1. ένας µοναδικός και καθολικός µηχανισµός διαδιεργασιακής επικοινωνίας, είτε πρόκειται για τοπική είτε για αποµακρυσµένη επικοινωνία 2. καθολικό σχήµα προστασίας 3. οµοιόµορφη διαχείριση διεργασιών 45 45

4. εκτέλεση ταυτόσηµων πυρήνων σε όλες τις µηχανές, ώστε να έχουµε την ίδια διασύνδεση προς τις κλήσεις συστήµατος (system call) 5. καθολικό σύστηµα σηµασιολογία (semantics) αρχείων µε καλά ορισµένη 6. σηµαντικό βαθµό αυτοτέλειας του κάθε πυρήνα σε θέµατα διαχείρισης τοπικής µνήµης, χρονοδροµολόγησης κλπ. 46 46

9.3.3. Πολυεπεξεργαστικά Συστήµατα ιαµοιρασµού Χρόνου Ο τελευταίος συνδυασµός είναι στενά συνδεδεµένο λογισµικό σε στενά συνδεδεµένο υλικό. Κλασικές περιπτώσεις ανάλογων µηχανών είναι: 1. µηχανές ειδικού σκοπού (αφοσιωµένες µηχανές βάσεων δεδοµένων - dedicated data base machines) 2. µηχανές γενικού σκοπού - πολυεπεξεργαστές. 47 Περισσότερο ενδιαφέρον παρουσιάζουν οι πολυεπεξεργαστές (Sequent και Encore), οι οποίοι λειτουργούν σαν ένα χρονοδιαµοιραζόµενο σύστηµα UNIX, έχοντας απλώς πολλαπλές CPUs αντί για µόνο µία. 47

Το βασικό χαρακτηριστικό αυτής της κλάσης συστηµάτων είναι η ύπαρξη µιας µόνο ουράς εκτέλεσης (run( queue), µιας δοµής δεδοµένων που αποθηκεύεται στην υπάρχουσα διαµοιραζόµενη µνήµη. Ο µόνος παράγοντας που έχει κάποια µικρή επίδραση στην επιλογή της CPU είναι η ανεπαίσθητη αύξηση της απόδοσης όταν µια διεργασία ξεκινά να εκτελείται σε µια CPU που έχει στην κρυφή της µνήµη ένα τµήµα από το χώρο διευθύνσεων της. 48 Το βασικό χαρακτηριστικό αυτής της κλάσης συστηµάτων είναι η ύπαρξη µιας µόνο ουράς εκτέλεσης (run queue), µιας δοµής δεδοµένων που αποθηκεύεται στην υπάρχουσα διαµοιραζόµενη µνήµη. Επειδή καµία CPU δεν έχει τοπική µνήµη και όλα τα προγράµµατα αποθηκεύονται στην καθολική και διαµοιράσιµη µνήµη δεν έχει σηµασία σε ποια CPU εκτελείται µια διεργασία. Αν µια διεργασία χρονοδροµολογηθεί αρκετές φορές προτού ολοκληρωθεί, κατά µέσο όρο θα περάσει περίπου το ίδιο χρονικό διάστηµα τρέχονταςσεκάθεcpu. Ο µόνος παράγοντας που έχει κάποια µικρή επίδραση στην επιλογή της CPU είναι η ανεπαίσθητη αύξηση της απόδοσης όταν µια διεργασία ξεκινά να εκτελείται σε µια CPU που έχει στην κρυφή της µνήµη ένατµήµα από το χώρο διευθύνσεων της. Έτσι όταν µια διεργασία δεσµευθεί για είσοδο/έξοδο σε ένα πολυεπεξεργαστή, το λειτουργικό σύστηµα µπορεί να επιλέξει να αναστείλει τη διεργασία ή να την αφήσει σε κατάσταση ενεργούς αναµονής (busy waiting). Αν οι περισσότερες εργασίες εισόδου/εξόδου ολοκληρώνονται σε χρόνο µικρότερο από ό,τι χρειάζεται για να πραγµατοποιηθεί εναλλαγή διεργασίας (process switch), τότε η ενεργός αναµονή είναι προτιµότερη. Μια περιοχή στην οποία αυτό το είδος πολυεπεξεργαστή διαφέρει σηµαντικά από ένα δίκτυο ή ένα κατανεµηµένο σύστηµα είναι η οργάνωση του συστήµατος αρχείων. Το λειτουργικό σύστηµα συνήθως περιέχει ένα παραδοσιακό σύστηµα αρχείων, που περιλαµβάνει ένα µοναδικό και ενοποιηµένο µπλοκ µνήµης παρακράτησης. Όταν µια διεργασία εκτελέσει µια κλήση συστήµατος: δηµιουργείται µια παγίδα (trap) στο λειτουργικό σύστηµα, το λειτουργικό σύστηµα διεκπεραιώνει την κλήση χρησιµοποιώντας σηµαφόρους (semaphores), παρακολουθητές (monitors) ή κάτι παρόµοιο προκειµένου να κλειδώσει έξω τις άλλες CPUs για όσο χρόνο εκτελούνται κρίσιµα τµήµατα ή υπάρχει πρόσβαση σε κεντρικούς πίνακες. Με αυτόν τον τρόπο, όταν πραγµατοποιείται µια κλήση WRITE: κλειδώνεται το κεντρικό µπλοκ της µνήµης παρακράτησης τα νέα δεδοµένα εισάγονται στη µνήµη το κλείδωµα αποδεσµεύεται. Κάθε µεταγενέστερη κλήση READ θα αναγνώσει τα νέα δεδοµένα, ακριβώςόπωςσεένασύστηµα µε έναµοναδικό επεξεργαστή. 48

Μία σχεδιαστική επιλογή θα ήταν ο καθορισµός µιας από τις CPU στην εκτέλεση του λειτουργικού συστήµατος, ενώ οι άλλες να αφοσιώνονται σε προγράµµατα των χρηστών. Αυτή η κατάσταση, όµως, είναι µη επιθυµητή λόγω του ότι στη µηχανή του λειτουργικού συστήµατος συχνά προκαλείται συµφόρηση-bottleneck Οι µέθοδοι που χρησιµοποιούνται σε ένα πολυεπεξεργαστή προκειµένου να έχει την εµφάνιση ενός ιδεατού µονοεπεξεργαστή δεν είναι εφαρµόσιµες σε µηχανές που δεν έχουν διαµοιράσιµη µνήµη. Κεντρικοποιηµένες ουρές εκτέλεσης και µπλοκ µνήµης παρακράτησης µπορούν να λειτουργήσουν, µόνον όταν όλες οι CPUs έχουν πρόσβαση σε αυτές µε πολύ µικρή καθυστέρηση. 49 49

ΖΗΤΗΜΑΤΑ ΣΧΕ ΙΑΣΗΣ ΚΑΤΑΝΕΜΗΜΕΝΩΝ ΣΥΣΤΗΜΑΤΩΝ ιαφάνεια Ευελιξία Αξιοπιστία Απόδοση Ικανότητα Κλιµάκωσης 50 50

Στόχοι ιαφάνεια Απόκρυψη της λειτουργίας του συστήµατος από το χρήστη Απόκρυψη της αρχιτεκτονικής του από τους προγραµµατιστές Θέµατα Τοποθέτηση» Τα ονόµατα δε πρέπει να φανερώνουν την τοποθεσία Μετανάστευση» Οι πόροι πρέπει να µπορούν να µετακινηθούν χωρίς να αλλάζουν όνοµα ή να αναγκάζουν άλλους να αλλάζουν τις αναφορές τους Οµοιοτυπία» Οι χρήστες δε γνωρίζουν πόσα αντίγραφα ενός αρχείου υπάρχουν Ταυτοχρονισµός» Οι χρήστες µπορούν να διαµοιράζονται πόρους αυτόµατα Παραλληλισµός» Οι χρήστες δε γνωρίζουν αν είναι σε σύστηµα µε πολλούς 51 επεξεργαστές Το σηµαντικότερο σχεδιαστικό ζήτηµα είναι να βρεθούν οι τεχνικές και οι υλοποιήσεις, ώστε ένα κατανεµηµένο σύστηµα να εξασφαλίζει την ιδεατή εικόνα του ενός και µοναδικού συστήµατος. Ένα σύστηµα που επιτελεί αυτόν το σκοπό συχνά αποκαλείται διαφανές. Η έννοια της διαφάνειας µπορεί να εφαρµοστεί σε αρκετούς τοµείς των κατανεµηµένων συστηµάτων. Σύµφωνα µε το RM-ODP του ISO (1992) (International Standard Organization's Reference Model, for Open Distributed Processing) καθορίζονται επτά τοµείς διαφάνειας: 1. διαφάνεια δικτύου (network transparency), η οποία αναλύεται σε: διαφάνεια προσπέλασης (access transparency) διαφάνεια τοποθέτησης (location transparency) 2. διαφάνεια ταυτοχρονισµού (concurrency transparency) 3. διαφάνεια οµοιοτυπίας (replication transparency) 4. διαφάνεια σφαλµάτων (failure transparency) 5. διαφάνεια µετανάστευσης (migration transparency) 6. διαφάνεια απόδοσης (performance transparency) 7. διαφάνεια κλιµάκωσης (scaling transparency) Αναλυτικά, τα βασικότερα σηµεία του κάθε τοµέα διαφάνειας είναι: Η διαφάνεια δικτύου, επηρεάζει σε µεγάλο βαθµό τηχρησιµοποίηση (utilization) των πόρων του συστήµατος, ενώ η παρουσία της εξασφαλίζει ίδιου επιπέδου ανωνυµία πόρων, όπως και στα κεντρικοποιηµέναυπολογιστικάσυστήµατα. Κλασική περίπτωση απουσίας διαφάνειας δικτύου είναι η χρήση της εντολής rlogin στο περιβάλλον Unix. Αντίθετα, παράδειγµα υλοποίησης της διαφάνειας δικτύου αποτελεί η χρήση διεύθυνσης ηλεκτρονικού ταχυδροµείου στο Internet. Η διαφάνεια προσπέλασης, επιτρέπει τη δυνατότητα προσπέλασης σε αντικείµενα - οντότητες (information object), ενεργοποιώντας αντίστοιχες διαδικασίες, είτε υλοποιείται τοπική, είτε αποµακρυσµένη λειτουργία. Η διαφάνεια τοποθέτησης, αναφέρεται στο γεγονός ότι σε ένα πραγµατικό κατανεµηµένο σύστηµα οι χρήστες δε γνωρίζουν που βρίσκονται τοποθετηµένοι οι πόροι του συστήµατος (υλικό και λογισµικό). Αυτόδηλώνεισαφώςότιτο όνοµα του πόρου δεν πρέπει έµµεσαναυποδηλώνειτηντοποθεσίατου. Η διαφάνεια ταυτοχρονισµού, δίνει τη δυνατότητα σε περισσότερες από µία διεργασίες να λειτουργούν ταυτόχρονα, χρησιµοποιώντας διαµοιράσιµα αντικείµενα του συστήµατος. Για την αντιµετώπιση της περίπτωσης κατά την οποία δύο χρήστες θα προσπαθήσουν να προσπελάσουν τον ίδιο πόρο την ίδια χρονική στιγµή, ένας µηχανισµός υλοποίησης θα µπορούσε να είναι το αυτόµατο κλείδωµα του πόρου από το σύστηµα από τη στιγµή που κάποιος άρχισε να το χρησιµοποιεί, ενώ το σύστηµα θατονξεκλειδώνειµόνον όταν η πρόσβαση στο συγκεκριµένοπόροέχειολοκληρωθεί. Η διαφάνεια οµοιοτυπίας, εξασφαλίζει τη δυνατότητα σε ένα κατανεµηµένο σύστηµα να δηµιουργεί επιπρόσθετα οµοιότυπα αντικειµένων - οντοτήτων (π χ αρχείων κλπ) µε δική του πρωτοβουλία Με τον τρόπο 51

Ευελιξία Στόχοι Επιτρέπει την ανάπτυξη του συστήµατος και την ενσωµάτωση νέων τεχνολογιών Προσεγγίσεις Μονολιθικός πυρήνας» Κεντρικοποιηµένο Λ/Σ, προσαυξηµένο µε ευκολίες δίκτυο και αποµακρυσµένων υπηρεσιών Μικροπυρήνας» Ελάχιστες υπηρεσίες IPC, διαχείριση µνήµης, διαχείριση διεργασιών χαµηλού επιπέδου, είσοδος-έξοδος χαµηλού επίπέδου Όχι διαχείριση αρχείων, καταλόγων, κλήσεων συστήµατος» Παρέχει ένα κοινό και οµοιόµορφο µηχανισµό διαχείρισης µεταξύ των µηχανών Επιτρέπει την προσθήκη, διαγραφή, µετατροπή υπηρεσιών χωρίς την αλλαγή του πυρήνα» Επιτρέπει την προσθήκη, διαγραφή, µετατροπή υπηρεσιών χωρίς 52 την Ένα ιδιαίτερα βασικό ζήτηµα της σχεδίασης κατανεµηµένων συστηµάτων είναι η ύπαρξη ευελιξίας. Υπάρχουν δύο τάσεις - µοντέλα, τα οποία διακρίνονται από διαφορετικό προσανατολισµό, σε ό,τι αφορά στη δοµή των κατανεµηµένων συστηµάτων. 1. Η µία τάση, η οποία προωθεί το µοντέλο του µονολιθικού πυρήνα (monolithic kernel), υποστηρίζει ότι κάθε µηχανή πρέπει να τρέχει ένα παραδοσιακό πυρήνα, ο οποίος παρέχει τις περισσότερες υπηρεσίες. 2. Η άλλητάση, η οποία έχει προτείνει το µοντέλο του µικροπυρήνα (microkernel), υποστηρίζει ότι ο πυρήνας θα πρέπει να παρέχει όσον το δυνατόν λιγότερες υπηρεσίες, ενώ ο κύριος όγκος των υπηρεσιών του λειτουργικού συστήµατος θα είναι διαθέσιµος από εξυπηρέτες στο επίπεδο του χρήστη. Ο µονολιθικός πυρήνας είναι αντίστοιχος µε αυτόν του σηµερινού κεντρικοποιηµένου λειτουργικού συστήµατος, προσαυξηµένος µε ευκολίες δικτύου και ολοκλήρωσης αποµακρυσµένων υπηρεσιών. Οι περισσότερες κλήσεις συστήµατος πραγµατοποιούνται προκαλώντας παγιδεύσεις στον πυρήνα, πραγµατοποιώντας εκεί όλη την εργασία και επιβάλλοντας στη συνέχεια στον πυρήνα να επιστρέφει τα επιθυµητά αποτελέσµατα στη διεργασία του χρήστη. Όµως, τα περισσότερα κατανεµηµένα συστήµατα που έχουν σχεδιαστεί από την αρχή χρησιµοποιούν τη µέθοδο του µικροπυρήνα. Ο µικροπυρήνας είναι πιο ευέλικτος γιατί παρέχει απλώς και µόνον τέσσερις ελάχιστες υπηρεσίες: Ένα µηχανισµό επικοινωνίας ανάµεσα στις διεργασίες ιαχείριση της µνήµης σε κάποιο βαθµό Περιορισµένη διαχείριση διεργασιών σε χαµηλό επίπεδο & χρονοδροµολόγηση Είσοδο / έξοδο χαµηλού επιπέδου Αντίθετα µε τοµονολιθικό πυρήνα, ο µικροπυρήνας δεν παρέχει: το σύστηµα αρχείων το σύστηµα καταλόγων πλήρη διαχείριση των διεργασιών τη διαχείριση του µεγαλύτερου τµήµατος των κλήσεων συστήµατος. Στόχος είναι να κρατηθεί µικρό το µέγεθος του µικροπυρήνα, για το λόγο αυτό και οι υπηρεσίες που παρέχει περιλαµβάνονται σε αυτόν, επειδή είναι δύσκολο να παρέχονται οπουδήποτε αλλού, ή είναι ιδιαίτερα ακριβό. Όλες οι άλλες υπηρεσίες του λειτουργικού συστήµατοςσυνήθωςυλοποιούνταιωςεξυπηρέτεςστοεπίπεδοτουχρήστη. Για αναζήτηση ενός ονόµατος, ανάγνωση αρχείου, ήχρησιµοποίηση κάποιας άλλης υπηρεσίας, ο χρήστης στέλνει ένα µήνυµα στον κατάλληλο εξυπηρέτη, ο οποίος εκτελεί την εργασία και επιστρέφει το αποτέλεσµα. Το ιδιαίτερα σηµαντικό πλεονέκτηµα αυτής της διαδικασίας είναι ότι είναι τµηµατοποιηµένη (modular) σε µεγάλο βαθµό: 1. υπάρχει µια καλά ορισµένη διασύνδεση προς κάθε υπηρεσία, δηλαδή είναι καλά καθορισµένο το σύνολο των µηνυµάτων που καταλαβαίνει ο εξυπηρέτης 2. κάθε υπηρεσία εξασφαλίζει ισότιµη πρόσβασησεκάθεεξυπηρετούµενο, ανεξάρτητα από την τοποθεσία 3. είναι εύκολο να υλοποιηθούν και εγκατασταθούν νέες υπηρεσίες, αφού η τροποποίηση µιας υπηρεσίας δεν απαιτεί τη 52

Στόχοι Αξιοπιστία Αύξηση απόδοσης σε σχέση µε τα συστήµτα ενός επεξεργαστή Θέµατα Αξιοπιστία Αξιοπιστία» Μείωση πιθανότητας µη λειτουργίας του συστήµατος ιαθεσιµότητα» Το ποσοστό του χρόνου που είναι το σύστηµα σε χρήση Ακεραιότητα των δεδοµένων» Τα αντίγραφα πρέπει να είναι πανοµοιότυπα Ασφάλεια» Οι αποστολείς των µηνυµάτων πρέπει να πιστοποιούνται Ανεκτικότητα σε σφάλµατα» Κατάρρευση των εξυπηρετητών πρέπει να µην επιφέρει κατάρεση στους χρήστες 53 Ένας από τους πρωταρχικούς στόχους για την κατασκευή κατανεµηµένων συστηµάτων ήταν να γίνουν περισσότερο αξιόπιστα από τα συστήµατα µοναδικού επεξεργαστή. Η βασική ιδέα είναι ότι όταν καταρρεύσει µια µηχανή, κάποια άλλη µηχανή από τις διατιθέµενες αναλαµβάνει την εργασία της, οπότε αν η πιθανότητα να διακοπεί η λειτουργία ενός είναι 0,05 τότε τεσσάρων εξυπηρετών αρχείων η πιθανότητα είναι 0,054 = 0,000006, η οποία είναι πολύ καλύτερη από την αντίστοιχη οποιουδήποτε ανεξάρτητου εξυπηρέτη. Οι διάφορες όψεις της αξιοπιστίας είναι: Η διαθεσιµότητα (availability), αναφέρεται στο ποσοστό του χρόνου κατά το οποίο το σύστηµα είναι διαθέσιµο. Η διαθεσιµότητα µπορεί να επαυξηθεί µέσω µιας σχεδίασης που δεν απαιτεί την ταυτόχρονη λειτουργία ενός αριθµού κρίσιµων συστατικών τµηµάτων του συστήµατος. Ένα άλλο εργαλείο για τη βελτίωση της διαθεσιµότητας είναι ο πλεονασµός (redundancy). Θα πρέπει να δηµιουργούνται αντίγραφα κύριων τµηµάτων υλικού και λογισµικού, έτσι ώστε αν διακοπεί η λειτουργία κάποιου από αυτά, τα υπόλοιπα να είναι σε θέση να αναπληρώσουν το κενό που εµφανίζεται. Ένα θέµα που προάγει την υψηλή αξιοπιστία ενός συστήµατος σχετίζεται µε τη διατήρηση και ακεραιότητα των δεδοµένων (data integrity). Τα δεδοµένα δεν πρέπει να χαθούν ή να αλλοιωθούν µε οποιοδήποτε τρόπο. Μία µέθοδος που ακολουθείται είναι η αποθήκευση των αρχείωνσεπολλαπλούςεξυπηρέτες. Ο σχεδιαστής του συστήµατος πρέπει να εξασφαλίσει ότι όλαταοµοιότυπα κρατούνται συνεπή. Ένα άλλο ζήτηµα που σχετίζεται µε τη συνολική αξιοπιστία είναι η ασφάλεια (security). Τα αρχεία καθώς και οι άλλοι πόροι του συστήµατος πρέπει να προστατεύονται από µη εξουσιοδοτηµένη χρήση. Άµεση σχέση µε την αξιοπιστία έχει και η ανεκτικότητα σε σφάλµατα (fault tolerance). Πρέπει να µελετηθεί η συµπεριφορά του εξυπηρέτη σε περίπτωση κατάρρευσής του, καθώς και η δυνατότητα επανόρθωσης των εξελισσοµένων διεργασιών. 53

Στόχος Απόδοση ιατήρηση ταχύτητας ως προς τα συστήµατα ενός επεξεργαστή Μετρήσεις Χρόνος απόκρισης» Αίτηση απάντησης Ρυθµός απόδοσης» Εργασίες ανά ώρα» Μηνύµατα ανά εργασία Αξιοποίηση του συστήµατος» Χρόνος αναµονής για υπηρεσίες δικτύου Χρησιµοποιούµενη χωρητικότητα δικτύου» bps ανά δευτερόλεπτο 54 Εκτός των προαναφεροµένων χαρακτηριστικών για την επίτευξη ενός αξιόλογου κατανεµηµένου συστήµατος, σηµαντική επίδραση έχει η ταχύτητα µε την οποία εκτελείται µια συγκεκριµένη εφαρµογή. Αυτή δεν πρέπει να είναι αισθητά χαµηλότερη από την αντίστοιχη εκτέλεσης της εφαρµογής σε ένα σύστηµα µε µοναδικό επεξεργαστή. Για τη µέτρηση της απόδοσης µπορούν να χρησιµοποιηθούν πολλοί δείκτες, όπως: ο χρόνος απόκρισης (response time) ορυθµός απόδοσης (throughput), δηλαδή ο αριθµός εργασιών ανά ώρα οβαθµός αξιοποίησης του συστήµατος (system utilisation) ηχρησιµοποιούµενη χωρητικότητα (capacity) του δικτύου. Οι εργασίες που περιλαµβάνουν µεγάλο αριθµό υπολογισµών µικρού µεγέθους και ιδιαίτερα αυτές που χαρακτηρίζονται από µεγάλο βαθµό αλληλεπίδρασης, µπορεί να προκαλέσουν προβλήµατα σε ένα κατανεµηµένο σύστηµα µε σχετικά αργή επικοινωνία. Αυτές οι εργασίες λέγεται ότι επιδεικνύουν χαµηλής τάξης παραλληλισµό (fine-grained parallelism). Από την άλλη πλευρά, εργασίες που περιλαµβάνουν µεγάλους υπολογισµούς, χαµηλό ρυθµό αλληλεπίδρασης και λίγα δεδοµένα, δηλαδή εργασίες µε υψηλής τάξης παραλληλισµό (coarse-grain parallelism), είναι εφαρµογές που ιδιαίτερα αυξάνουν την απόδοσή τους σε κατανεµηµένο σύστηµα. 54

Τάξη µεγέθους: Απόδοση» Χαµηλή: µικροί υπολογισµοί, υψηλή αλληλεπίδραση, µεγάλος όγκος δεδοµένων» Υψηλή:µεγάλοι υπολογισµοί, µικρή αλληλεπίδραση, λίγα δεδοµένα Ανεκτικότητα σε σφάλµατα» Προσθήκη επιπλέον µηνυµάτων 55 55

9.4.5. Ικανότητα Κλιµάκωσης (scaling) Τα περισσότερα σηµερινά κατανεµηµένα συστήµατα έχουν σχεδιαστεί για να εργάζονται µε δεκάδες ή το πολύ µερικές εκατοντάδες CPUs. Είναι πιθανόν ότι τα µελλοντικά συστήµατα θα είναι κατά πολλές τάξεις µεγέθους µεγαλύτερα και λύσεις που αποδεικνύονται ικανοποιητικές για εκατοντάδες µηχανές ενδεχοµένως να αποτύχουν για συστήµατα µε χιλιάδες µικροεπεξεργαστές. Αν και υπάρχει σχετικά µικρή σχεδιαστική γνώση για θέµατα που σχετίζονται µε κατανεµηµένα συστήµατα µε πολλούς επεξεργαστές, είναι γνωστό ότι πρέπει να αποφευχθούν τα κεντρικοποιηµένα δοµικά τµήµατα, πίνακες και αλγόριθµοι. 56 56

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

9.4.6. Ανοιχτά συστήµατα (openness) Ανοιχτά κατανεµηµένα συστήµατα (open distributed systems) χαρακτηρίζονται εκείνα, τα οποία έχει προβλεφθεί να επικοινωνούν µε οποιοδήποτε άλλο όµοιο σύστηµα, υπακούοντας σε τυποποιηµένους κανόνες, οι οποίοι καθορίζουν τη µορφή, το περιεχόµενο και το νόηµα των µηνυµάτων, τα οποία αποστέλλονται και λαµβάνονται. Ένα σύστηµα χαρακτηρίζεται ως ανοιχτό ή κλειστό, µε προσανατολισµό: στο υλικό (νέα περιφερειακά, µνήµη, διασύνδεση επικοινωνιών - communication interfaces) στο λογισµικό (πρόσθεση νέων χαρακτηριστικών - features στο λειτουργικό σύστηµα, επικοινωνιακά πρωτόκολλα και υπηρεσίες διαµοιρασµού πόρων). 58 58

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

9.4.7 Συνοπτικά σχεδιαστικά θέµατα (basic design issues) Τα βασικά σχεδιαστικά θέµατα τα οποία προκύπτουν από την κατανεµηµένη φύση των συστηµάτων όπως αναλύθηκαν παραπάνω είναι: Ονοµασία (naming) Τα κατανεµηµένα συστήµατα βασίζονται στο διαµοιρασµό των πόρων και στη διαφάνεια της κατανοµής των. Τα ονόµατα που αντιστοιχούν στα αντικείµενα του συστήµατος, πρέπει να έχουν καθολική σηµασία και να είναι ανεξάρτητα από την πραγµατική θέση τους. Βασικός σχεδιαστικός στόχος είναι να προκύψουν υπηρεσίες (services) που υλοποιούν και υποστηρίζουν διερµηνευτικά σχήµατα (interpretation systems), τα οποία βοηθούν στην αποδοτική προσπέλαση και συνολική αξιοποίηση των πόρων. 60 60

Επικοινωνία (communication) Η αποδοτικότητα και αξιοπιστία των τεχνικών που χρησιµοποιούνται για την επικοινωνία, είναι ιδιαίτερα σηµαντικές για την απόδοση του κατανεµηµένου συστήµατος στο σύνολό του. Άρα βασικός σχεδιαστικός στόχος είναι η ανάπτυξη βελτιστοποιηµένων τεχνικών για επικοινωνία, λαµβάνοντας υπόψη την εγγενή πολυπλοκότητα του λογισµικού. Κυριότερη µέθοδος επικοινωνίας στα κατανεµηµένα συστήµατα είναι το µοντέλο εξυπηρετούµενου - εξυπηρέτη (client - server model). 61 61

οµή λογισµικού (software structure) Η υλοποίηση των ιδιοτήτων των ανοιχτών συστηµάτων επιτυγχάνεται µε το σχεδιασµό και την ανάπτυξη λογισµικού µε καλά ορισµένες αρχές διασύνδεσης (interfaces). Στα κατανεµηµένα συστήµατα οι σχεδιαστές προσανατολίζονται στη χρήση λειτουργικών συστηµάτων, τα οποία δεν έχουν χαρακτηριστικά µονολιθικού πυρήνα, αλλά µικροπυρήνα ο οποίος, όπως προαναφέρθηκε, υλοποιεί στο εσωτερικό του βασικά θέµατα διαχείρισης πόρων και συνοδεύεται από διάφορους εξυπηρέτες (servers) για την υλοποίηση των λοιπών διευκολύνσεων και παραπέρα επεκτάσεων του συστήµατος. 62 62

Κατανοµή φόρτου (workload allocation) Σχεδιαστικός στόχος στα κατανεµηµένα συστήµατα είναι η ανάπτυξη διαδικασιών και υλοποίηση λειτουργιών, οι οποίες αποσκοπούν στη βελτιστοποίηση της απόδοσης του συστήµατος, στο οποίο ο φόρτος διαρκώς µεταβάλλεται. Συνέπεια (consistency maintenance) Θέµατα συνέπειας προκύπτουν στα κατανεµηµένα συστήµατα, εξαιτίας του διαµοιρασµού των πόρων και εξαιτίας του φαινοµένου του ταυτοχρονισµού. 63 63

Κυριότερα σηµεία στα οποία εµφανίζεται το πρόβληµα της συνέπειας είναι: συνέπεια ενηµέρωσης δεδοµένων (update data consistency) συνέπεια αντιγράφων (replication consistency) συνέπεια γρήγορης-κρυφής µνήµης (cache consistency) συνέπεια αποτυχίας (failure consistency) συνέπεια χρόνου (clock consistency) συνέπεια περιβάλλοντος χρήστη (user interface consistency). 64 64