Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

1 Λειτουργικά Συστήματα ΙΙ Κεφάλαιο 2ο: Αρχιτεκτονική Λογισμικού και Συστήματος Καθ. Παναγιώτης Τριανταφύλλου 2009.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "1 Λειτουργικά Συστήματα ΙΙ Κεφάλαιο 2ο: Αρχιτεκτονική Λογισμικού και Συστήματος Καθ. Παναγιώτης Τριανταφύλλου 2009."— Μεταγράφημα παρουσίασης:

1 1 Λειτουργικά Συστήματα ΙΙ Κεφάλαιο 2ο: Αρχιτεκτονική Λογισμικού και Συστήματος Καθ. Παναγιώτης Τριανταφύλλου 2009

2 2 Αρχιτεκτονική Λογισμικού, Συστήματος και Μοντέλα Διεργασιών  Αρχιτεκτονική Λογισμικού oLayered, object-based, data-centered, event-based  Αρχιτεκτονική Συστήματος oΚεντρικοποιημένες (πελάτη-εξυπηρέτη)  Επίπεδα εφαρμογών  Αρχιτεκτονικές multi-tiered oΑποκεντρωμένες  P2P oΥβριδικές Αρχιτεκτονικές

3 Αρχιτεκτονική Λογισμικού, Συστήματος και Μοντέλα Διεργασιών  Νήματα Ελέγχου (Threads) oΕισαγωγή oΔόμηση πολύ-νηματικών (multi- threaded) διεργασιών oΈλεγχος σε ταυτόχρονη πρόσβαση oΠρόσβαση σε global variables oΥλοποίηση νημάτων (threads) oΤο Πακέτο (OSF-DCE Threads Package) 3

4 Αρχιτεκτονική Λογισμικού  Το σύστημα ιδωμένο μέσα από τα δομικά του στοιχεία (components) και πως oτα (δομο)στοιχεία οργανώνονται (λογικά) oεπικοινωνούν και πως oδιαρθρώνουν (λειτουργικά) το σύστημα συνολικά  (Δομο)Στοιχείο/Component: oμια λειτουργική μονάδα, ξεχωριστή, με καθαρό interface oπου μπορεί να αντικατασταθεί μες στο περιβάλλον της.  Συνδετήρας (connector): μηχανισμός που επιτυγχάνει την επικοινωνία, το συντονισμό και τη συνεργασία των στοιχείων. 4

5 Αρχιτεκτονική Λογισμικού: Διαστρωμένη (Layered)  Το σύστημα οργανώνεται σαν μια δομή με στρώματα.  Κάθε στρώμα αποτελείται από ένα στοιχείο.  Η επιτρεπόμενη επικοινωνία καθορίζεται ως: oΚάθε στοιχείο στο στρώμα Σ(ν) μπορεί να καλεί το στοιχείο (δηλ. συναρτήσεις του) στο στρώμα Σ(ν-1). oΑποτελέσματα περνιούνται στην αντίθετη κατεύθυνση [ Σ(ν-1)  Σ(ν) ]. o  ο έλεγχος ‘ρέει’ από στρώμα σε στρώμα.  Γνωστό παράδειγμα: πρωτόκολλα επικοινωνίας (βλέπε ISO / OSI στάνταρντ). 5

6 Αρχιτεκτονική Λογισμικού: Οντοκεντρική  Πιο «ελεύθερη» αρχιτεκτονική  Κάθε στοιχείο ορίζεται ως ένα αντικείμενο με γνωστές μεθόδους, καθεμιά με συγκεκριμένο interface.  Αντικείμενα καλούν άλλα αντικείμενα μέσω συγκεκριμένου τρόπου επικοινωνίας (π.χ. RPC / RMI,…). oΑκριβέστερα, αντικείμενα καλούν μεθόδους αντικειμένων...  Η οντοκεντρική και η πολυεπίπεδη αρχιτεκτονικές είναι ίσως οι πιο ευρέως χρησιμοποιούμενες. 6

7 Αρχιτεκτονική Λογισμικού: Γεγονο-κεντρική (Event-based)  Στοιχεία επικοινωνούν μέσω (με την αποστολή και παραλαβή) γεγονότων.  Γεγονότα μπορεί να μεταφέρουν πληροφορία.  Συστήματα δημοσίευσης/συνδρομής: oΧρήστες γίνονται ‘συνδρομητές’ στο σύστημα (π.χ. ορίζουν ποια πληροφορία/γεγονότα τους ενδιαφέρουν) – καταναλωτές πληροφορίας / γεγονότων. oΠαραγωγοί πληροφορίας στέλνουν στο σύστημα γεγονότα (με την πληροφορία τους). oΤο σύστημα στέλνει το γεγονός/πληροφορία (ΜΟΝΟ) στους χρήστες που ενδιαφέρονται για αυτό. oΧαλαρή σύζευξη διεργασιών ! 7

8 Αρχιτεκτονική Λογισμικού: Πληροφορικο- κεντρική (Data-centered)  Το σύστημα ιδωμένο ως διεργασίες (στοιχεία) που επικοινωνούν μέσω μιας κοινής αποθήκης (repository) δεδομένων (π.χ. File System, Database,..)  Πλειάδες κατανεμημένων/δικτυακών εφαρμογών oΕπικοινωνία μέσω αρχείων oΕπικοινωνία μέσω ιστοσελίδων, ιστοεφαρμογών...  Υβριδική αρχιτεκτονική: Διαμοιραζόμενοι χώροι δεδομένων oΧαλαρή σύζευξη διεργασιών (reference decoupling -- από event-based) + ασύγχρονη επικοινωνία – ενεργά σε διάφορες στιγμές... oΣτοιχεία δημοσιεύουν γεγονότα/πληροφορία (που αποθηκεύεται) oΣτοιχεία παραλαμβάνουν σχετική πληροφορία. oΣύστημα αποθηκεύει και μεταδίδει γεγονότα. 8

9 Αρχιτεκτονική Συστημάτων: Κεντρικοποιημένη  Βασικά: μιλάμε για αρχιτεκτονική λογισμικού +... το πόσα είναι και που τοποθετούνται τα δομοστοιχεία (instantiation of a software architecture).  Κεντρικοποιημένη oΠελάτη-εξυπηρέτη oΑιτούμαι/απαντώ (request/reply) oΠελάτες: ζητούν υπηρεσίες από εξυπηρέτες oΕξυπηρέτες: προσφέρουν υπηρεσίες oΠελάτες/εξυπηρέτες επικοινωνούν μέσω ενός δεδομένου πρωτοκόλλου (π.χ. TCP/IP, UDP/IP,…) -- αξιόπιστο ή μη. 9

10 Αρχιτεκτονική Συστημάτων: Κεντρικοποιημένη  Διαστρωμάτωση εφαρμογών (application layering) oΛογικά στρώματα υπηρεσιών/λειτουργικότητας oΑνατεθημένα σε πελάτες/εξυπηρέτες oΔιαχωρισμός εννοιών πελάτη/εξυπηρέτη ;  Διαχωρισμός λειτουργικότητας σε 3 επίπεδα: oΔιεπαφή με το χρήστη (user interface level) oΚύριο σώμα εφαρμογήςεπεξεργασίας ερωτημάτων χρήστη/πελάτη (processing level) oΕπίπεδο δεδομένων/πληροφορίας (data level) 10

11 Αρχιτεκτονική Συστημάτων: Κεντρικοποιημένη  Στις μηχανές-πελάτες εγκαθίσταται/τρέχει το λογισμικό διεπαφής χρήστη-εφαρμογών/συστήματος – front-end.  Λογισμικό διεπαφής: συνήθως σε μοντέρνες εφαρμογές είναι πολύ σύνθετο oΓραφική παρουσίαση, παραθυρικά περιβάλλοντα, διεπαφή μέσω ποντικιού (drag&drop), …  Το επίπεδο επεξεργασίας/εφαρμογής εγκαθίσταται/τρέχει σε ξέχωρους σταθμούς / εξυπηρέτες εφαρμογής (application servers).  Το επίπεδο δεδομένων εγκαθίσταται/τρέχει σε ξέχωρους σταθμούς/εξυπηρέτες δεδομένων (data servers – back-end). 11

12 Αρχιτεκτονική Συστημάτων: Κεντρικοποιημένη  Παράδειγμα: Μηχανές αναζήτησης στον Παγκόσμιο Ιστό oΜηχανές πελάτη: διεπαφή δέχεται είσοδο-ερώτημα κλειδολέξεων και το μεταβιβάζει στον εξυπηρέτη. oΜηχανή εξυπηρέτη – εξυπηρέτης εφαρμογής: επεξεργάζεται ερώτημα και επικοινωνεί με back-end εξυπηρέτες (δεδομένων). o Μηχανές back-end εξυπηρέτες: αποθηκεύουν τα δεδομένα (ιστοσελίδες) και απαντούν στον εξυπηρέτη εφαρμογής, στέλνοντας ιστοσελίδες oΜηχανή εξυπηρέτη – εξυπηρέτης εφαρμογής: δέχεται ιστοσελίδες και τις ταξινομεί/διαβαθμίζει και τις επιστρέφει στη μηχανή πελάτη. oΜηχανές πελάτη: διεπαφή δέχεται ταξινομημένες σελίδες από εξυπηρέτη εφαρμογής και τις μεταβιβάζει στο χρήστη. o  multi-tiered architecture 12

13 Αρχιτεκτονική Συστημάτων: Κεντρικοποιημένη  2-tiered architecture: oΔιεπαφή στη μηχανή πελάτη. oΕφαρμογή και αποθήκευση στη μηχανή εξυπηρέτη.  3-tiered architecture: oΔιεπαφή στη μηχανή πελάτη. oΕπεξεργασία σε ξεχωριστή μηχανή εξυπηρέτη εφαρμογής. oΑποθήκευση σε ξεχωριστή μηχανή εξυπηρέτη δεδομένων/αποθήκη. 13

14 Αρχιτεκτονική Συστημάτων: Κεντρικοποιημένη  Πολλοί επιπλέον δυνατοί συνδυασμοί κατανομής λειτουργικότητας σε μηχανές: oΜέρος λειτουργικότητας εφαρμογής μπορεί να τρέχει στον πελάτη (π.χ. συμπλήρωση και έλεγχος φόρμας εισόδου, έλεγξε για καθολική συμπλήρωση). oΜέρος λειτουργικότητας αποθήκης μπορεί να τρέχει στον πελάτη, π.χ. προσωρινή αποταμίευση δεδομένων (data caching).  Φυλλομετρώντας τον ιστό: αποταμίευση στον τοπικό δίσκο του πελάτη των τελευταίων σελίδων που επισκέφτηκε – καλύτερη απόδοση. 14

15 Αρχιτεκτονική Συστημάτων: Κεντρικοποιημένη  Ευτραφείς / λεπτοί πελάτες (fat / thin clients): oΜεταφέροντας λειτουργικότητα στις μηχανές-πελάτη (ευτραφείς πελάτες).  + απόδοση (χρόνος απόκρισης)  + κλιμακωσιμότητα (αποφόρτιση εξυπηρέτη)  - διαχείριση (μη εμπιστεύσιμες μηχανές, ευάλωτες, λανθασμένη συμπεριφορά,...)  Τάση: υπέρ λεπτών πελατών  Τότε, πού είναι η κατανεμημένη επεξεργασία; oΚατανομή στον κώδικα του εξυπηρέτη:  Αντίγραφα (replication) για ανοχή σε σφάλματα και απόδοση  Τμηματοποίηση (partitioning) για κατανομή φορτίου,  3-tiered αρχιτεκτονικές, κλπ. 15

16 Αρχιτεκτονική Συστημάτων: Αποκεντρωμένη  Οι multi-tiered client-server αρχιτεκτονικές ακολουθούν τη λογική οργάνωση μιας εφαρμογής/συστήματος σε στρώματα oδιεπαφής, oεπεξεργασίας/εφαρμογής και oαποθήκης.  Κάθετη κατανομή (Vertical distribution) oΤοποθετούμε λογικά-διαφοροποιημένα στοιχεία σε διαφορετικές μηχανές.  Οριζόνται κατανομή (horizontal distribution) oΚατανομή των πελατών και εξυπηρετών oΠ.χ. Πελάτες / εξυπηρέτες διασπώνται σε (παρ)όμοια δομοστοιχεία που επεξεργάζονται διαφορετικά υποσύνολα πληροφορίας... 16

17 Αρχιτεκτονική Συστημάτων: Αποκεντρωμένη  Αποκεντρωμένες αρχιτεκτονικές βασίζονται oστην έντονη εναλλαγή των ρόλων πελάτη/εξυπηρέτη στην ίδια μηχανή – δηλ. κανένας κόμβος δεν είναι μόνο πελάτης ή εξυπηρέτης. oΤο συνολικό φορτίο μοιράζεται σε όλες τις μηχανές: κάθε μηχανή-κόμβος είναι υπεύθυνη για ένα τμήμα του φορτίου, oπ.χ. Αποθηκεύει και εξυπηρετεί αιτήσεις για ένα τμήμα των δεδομένων στο σύστημα. o  δίκτυα/συστήματα ομοτίμων (peer-to-peer). 17

18 Αρχιτεκτονική Συστημάτων: Αποκεντρωμένη  Παράδειγμα: το δίκτυο Chord  Όλα τα αντικείμενα και όλοι οι κόμβοι λαμβάνουν ένα αναγνωριστικό (ID) μέσω μιας ψευδοτυχαίας συνάρτησης (π.χ. SHA-1). [είναι ασφαλές αυτό;]  Αναγνωριστικά ν δυαδικών ψηφίων, ορίζουν ένα χώρο (ID space) 0,...  Η συνάρτηση succ(ID) δίνει ως έξοδο τον κόμβο το αναγνωριστικό του οποίου είναι το μικρότερο με τιμή μεγαλύτερη ή ίση του ID.  Κάθε αντικείμενο με αναγνωριστικό ID, αποθηκεύεται στον κόμβο succ(ID).  Για να προσπελάσει οποιοσδήποτε κόμβος το αντικείμενο με αναγνωριστικό ID, εκδίδει την εντολή LOOKUP(ID).  Οι κόμβοι στο Chord χρησιμοποιούν ειδικούς αλγόριθμους δρομολόγησης και ειδικούς πίνακες δρομολόγησης. 18

19 κλειδιά ΚΛΕΙΔΙΑ • m=6 • ID space 2 m =64 Παράδειγμα αποθήκευσης στο Chord SHA-1( ) = 0 ΚΟΜΒΟΙ IP διευθύνσεις nodeIDs keyIDs “ShakeIt” “Memories” “Eden” “Monkey” “Money” “Yesterday” SHA-1(“ShakeIt”) = succ(20) = N

20 20 Αρχιτεκτονική Συστημάτων: Αποκεντρωμένη  Συστήματα P2P: Όλοι οι κόμβοι oκαταλαμβάνουν μια θέση στην τοπολογία του δικτύου oΣυμφωνούν να  προωθούν αιτήσεις για ανεύρεση πληροφορίας/δεδομένων  Αποθηκεύουν τα δεδομένα που τους αντιστοιχούν. oΤρέχουν πρωτόκολλα που κάνουν την προσπέλαση δεδομένων εύκολη  Δομημένα δίκτυα (σαν το Chord) oέχουν σε κάθε κόμβο πίνακες μεγέθους logN και oεπιτυγχάνουν την εύρεση αντικειμένων (lookup(ID)) μόνο με logN μηνύματα, σε δίκτυα με Ν κόμβους.  Περίπου 70% όλης της κίνησης στο Διαδίκτυο είναι P2P κίνηση !!!  Πιο πολλά στο μάθημα «Διανομή Περιεχομένου στο Διαδίκτυο»...


Κατέβασμα ppt "1 Λειτουργικά Συστήματα ΙΙ Κεφάλαιο 2ο: Αρχιτεκτονική Λογισμικού και Συστήματος Καθ. Παναγιώτης Τριανταφύλλου 2009."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google