Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΣταματία Μητσοτάκης Τροποποιήθηκε πριν 9 χρόνια
1
Κωνσταντίνος Αντωνής © 2014Διαδικτυακός και Ταυτόχρονος Προγραμματισμός Ομοιόμορφη Αποδοτική Διαχείριση του Ταυτοχρονισμού των Εξυπηρετητών 1
2
Διαδικτυακός και Ταυτόχρονος ΠρογραμματισμόςΚωνσταντίνος Αντωνής © 2014 Επαναληπτικός ή Ταυτόχρονος Εξυπηρετητής; Είναι ο ταυτοχρονισμός εγγυημένος; Ποιος σχεδιασμός εξυπηρετητή είναι βέλτιστος; Πώς μπορεί να γίνει μια εκτίμηση για το φόρτο των αιτήσεων ή τους χρόνους εξυπηρέτησης; Οι αλλαγές στα δίκτυα κάνουν αυτά τα ερωτήματα δύσκολα να απαντηθούν. 2
3
Διαδικτυακός και Ταυτόχρονος ΠρογραμματισμόςΚωνσταντίνος Αντωνής © 2014 Επίπεδο Ταυτοχρονισμού Είναι το συνολικό πλήθος νημάτων εκτέλεσης που ο εξυπηρετητής έχει εκτελέσει σε μια δεδομένη χρονική στιγμή. Το ενδιαφέρον εστιάζεται στο ανώτατο όριο ταυτοχρονισμού Κάθε TCP υλοποίηση θέτει ένα όριο στον αριθμό των ενεργών συνδέσεων και κάθε λειτουργικό σύστημα θέτει ένα όριο στο πλήθος των διαθέσιμων νημάτων 3
4
Διαδικτυακός και Ταυτόχρονος ΠρογραμματισμόςΚωνσταντίνος Αντωνής © 2014 Ταυτοχρονισμός Οδηγούμενος από τη Ζήτηση Οι περισσότεροι από τους σχεδιασμούς χρησιμοποιούν τα εισερχόμενα μηνύματα για να προκληθεί αύξηση στον ταυτοχρονισμό Αυτά τα σχήματα λέγονται demand-driven Παίρνουν πόρους από το σύστημα μόνο εφόσον τους χρειάζονται, οπότε δεν καταναλώνουν πόρους άσκοπα Παρέχουν χαμηλούς χρόνους απόκρισης 4
5
Διαδικτυακός και Ταυτόχρονος ΠρογραμματισμόςΚωνσταντίνος Αντωνής © 2014 Κόστος ταυτοχρονισμού Πολλές φορές οι demand driven εξυπηρετητές μπορεί να μην παράγουν βέλτιστα αποτελέσματα Σε αυτή την περίπτωση πρέπει να εξεταστεί το θέμα της δημιουργίας νημάτων ή διεργασιών και του χρονοπρογραμματισμού 5
6
Διαδικτυακός και Ταυτόχρονος ΠρογραμματισμόςΚωνσταντίνος Αντωνής © 2014 Φόρτος και Καθυστέρηση Η δημιουργία ενός slave για κάθε νέα αίτηση μπορεί να κοστίζει. Αυτές οι μικρές καθυστερήσεις γίνονται πολύ μεγάλες όταν αυξάνει κατά πολύ ο αριθμός των αιτήσεων 6 ταυτόχρονος 02cc2c+p Δημιουργία slave 1Δημιουργία slave 2 Επεξεργασία αίτησης 1 Επεξεργασία αίτησης 2 επαναληπτικός 02pp Επεξεργασία αίτησης 1Επεξεργασία αίτησης 2
7
Διαδικτυακός και Ταυτόχρονος ΠρογραμματισμόςΚωνσταντίνος Αντωνής © 2014 Φόρτος και Καθυστέρηση (2) Βραχυπρόθεσμα, μικρές καθυστερήσεις σ’ έναν εξυπηρετητή έχουν επιπτώσεις στον αντιληπτό χρόνο απόκρισης, αλλά όχι στο throughput. Μακροπρόθεσμα, οι καθυστερήσεις αυτές μπορούν να προκαλέσουν απώλεια αιτήσεων. Λύση όταν το κόστος δημιουργίας διεργασίας/νήματος είναι μεγάλο: προεκχώρηση. 7
8
Διαδικτυακός και Ταυτόχρονος ΠρογραμματισμόςΚωνσταντίνος Αντωνής © 2014 Προεκχώρηση Εξαρτημένων Νημάτων Τα νήματα αφού δημιουργηθούν παραμένουν και δεν τερματίζονται Όταν φτάσει ένα αίτημα ένα από τα νήματα που βρίσκονται σε αναμονή χειρίζεται το αίτημα. Όταν τελειώσει, επιστρέφει στον κώδικα και περιμένει άλλο αίτημα. 8
9
Διαδικτυακός και Ταυτόχρονος ΠρογραμματισμόςΚωνσταντίνος Αντωνής © 2014 Προεκχώρηση στο Linux Όταν μια διεργασία καλεί τη fork, η διεργασία παιδί λαμβάνει ένα αντίγραφο όλων των ανοικτών περιγραφέων, συμπεριλαμβανομένων και αυτών που αντιστοιχούν σε sockets – Εξυπηρετητής με σύνδεση: οι slaves επιστρέφουν και ελέγχουν την ουρά εισόδου για νέο αίτημα και το χειρίζονται από το νέο socket που επιστρέφει η accept Απαιτείται έλεγχος συγχρονισμού – Εξυπηρετητής χωρίς σύνδεση: η ιδέα είναι ίδια, ο έλεγχος συγχροσνιμού γίνεται πάνω στη recvfrom(). 9
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.