Διπλωματική Εργασία Τροποποίηση της υλοποίησης διαδικτυακών πρωτοκόλλων λειτουργικού συστήματος για την εκμετάλλευση πολλαπλών επεξεργαστικών μονάδων.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΑΚΙΝΗΣΗ ΑΓΑΘΩΝ & ΚΡΥΠΤΟΓΡΑΦΙΑ ΑΘΑΝΑΣΙΟΣ ΒΑΣΙΛΟΠΟΥΛΟΣ - ΓΟΥΤΑΣ ΔΗΜΗΤΡΙΟΣ PeLAB - Τμ. Η.Υ.Σ. - Τ.Ε.Ι. ΠΕΙΡΑΙΑ : Μάρτιος 1998.
Advertisements

ΠΡΟΓΡΑΜΑΤΙΖΟΜΕΝΑ ΔΙΚΤΥΑ Software Defined Networks (SDN)
Java: Socket API (Υποδοχές)
Ανάπτυξη Δικτύων Καθηγητής: Φουληράς Παναγιώτης
Ειδικά Θέματα Κώδικες Ιστορικά - Εισαγωγή Αρχική σελίδα 16/8/2014 WinSock σε C Επιμέλεια παρουσίασης : Ζδράγκας Σωτήρης Κονταξής Αναστάσιος Ντακούλας.
Σύνοψη 1 Αρχές διαδικτύου 1.1 Αναδρομή – εισαγωγή
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 19 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 1.
ΜΟΝΤΕΛΟ ΕΞΥΠΗΡΕΤΟΥΜΕΝΟΥ – ΕΞΥΠΗΡΕΤΗΤΗ ( CLIENT – SERVER )
ΤCP/IP Τι είναι; Σύντομο Ιστορικό
Κεφάλαιο 11.2 Sockets.
Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4 1.
Socket API (σε γλώσσα C) Σύντομη Εισαγωγή Παναγιώτης Φουληράς.
Open Source από την μεριά του ΙΤ provider Μάνος Μαργαρίτης CTO EXODUS AE.
P ERL One of the most respectable general-purpose scripting languages Δημητρίου Νίκος Δημητρίου Θεόδωρος Ζαβού Έλλη.
Overview of IEEE Standard. Η οικογένεια προτύπων 802.x... IEEE CSMA/CD IEEE Token Bus IEEE Token Ring IEEE Wireless IEEE.
University of Cyprus Department of Computer Science Presenter : Yiannos Mylonas EPL475: Advanced Networks TCP/IP Socket Programming in C.
ΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ201:
Κωνσταντίνος Αντωνής © 2014Διαδικτυακός και Ταυτόχρονος Προγραμματισμός Ζητήματα Σχεδίασης Λογισμικού Πελάτη 1.
ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Ευφυείς Προγραμματιζόμενες Δικτυακές Υποδομές (Ι) Κίνητρα για Software Defined Networking – SDN Το Πρωτόκολλο OpenFlow Εφαρμογές σε.
ΠΡΩΤΟΒΑΘΜΙΑ ΕΚΠΑΙΔΕΥΣΗ «ΔΙΔΑΚΤΙΚΗ ΜΕΘΟΔΟΛΟΓΙΑ ΣΤΟ ΠΟΔΟΣΦΑΙΡΟ»
TCP/IP Protocol Suite 1 Διάλεξη 2 η Με την ολοκλήρωση της ενότητας θα μπορείτε να: Το μοντέλο OSI και η σουίτα TCP/IP κατανοήσετε την αρχιτεκτονική του.
ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -- Δ. Σερπάνος 1 Κεφάλαιο 5.
Calvin:Fast Distributed Transactions for Partitioned Database System Ηλίας Σπανός Αντωνία Νικολάου Calvin: Fast Distributed Transactions for Partitioned.
Β2.Μ6 Άλλες Περιφερειακές Συσκευές και Κάρτες Επέκτασης Σαββίδου Στέλλα.
Δίκτυα Επικοινωνιών Ενότητα # 5: Επίπεδο Δικτύου Διδάσκων: Θεόδωρος Αποστολόπουλος Τμήμα: Πληροφορικής.
- Έλα Αναστασια πάμε βόλτα να δούμε τις βιτρίνες είναι Χριστούγεννα, θα περάσουμε τέλεια θα ψωνίσουμε ρούχα, θα πάμε στα jumbo και το κυριότερο θα πάμε.
Δίκτυα Επικοινωνιών Ενότητα 5: Επίπεδο Ζεύξης Ζεύξεις, Δίκτυα Πρόσβασης, Δίκτυα Τοπικής Περιοχής Διδάσκων: Λάζαρος Μεράκος Τμήμα Πληροφορικής και Τηλεπικοινωνιών.
Βασικές έννοιες και τεχνολογίες δικτύων Ιάκωβος Αλεξανδρής Ηλεκ/γος Μηχ/κος & Μηχ/κος Η/Υ Τεχνικός Υπεύθυνος ΚΕΠΛΗΝΕΤ Χαλκιδικής Cisco CCNA.
Διαχείριση Διεργασιών (1/5)
Δίκτυα Υπολογιστών Ι.
Εισαγωγικά Θέματα Διαχείρισης Δικτύων
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΚΑΙ ΔΙΑΣΥΝΔΕΣΗΣ ΔΙΚΤΥΩΝ
Διαχείριση Δικτύων - Ευφυή Δίκτυα,
Ερώτηση 2.6 Υποθέστε ότι θέλετε να κάνετε μια συναλλαγή από έναν απομακρυσμένο πελάτη προς έναν εξυπηρέτη, όσο το δυνατόν ταχύτερα. Θα χρησιμοποιούσατε.
Διδάσκων: Δρ. Γενειατάκης Δημήτρης
Κατανεμημένα Συστήματα
Ενότητα 7 : Δίκτυα Υπολογιστών Δρ. Γκόγκος Χρήστος
Παρουσίαση Πτυχιακής Εργασίας
ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Ευφυείς Προγραμματιζόμενες Δικτυακές Υποδομές Κίνητρα για Software Defined Networking – SDN Το Πρωτόκολλο OpenFlow Εφαρμογές σε Κατανεμημένες.
Κατανεμημένα Συστήματα
ΗΜΥ 007 – Τεχνολογία Πληροφορίας Διάλεξη 6
Είδη των Cache Misses: 3C’s
Κατανεμημένα Συστήματα
Άθλημα Πετοσφαίρισης Βογιατζή Ίριδα-Βοϊλα Έφη.
Δίκτυα Επικοινωνιών Ενότητα # 6: Επίπεδο Μεταφοράς TCP/UDP
Βάσεις Δεδομένων ΙΙ 5η διάλεξη
IPSec Χαρακτηριστικά Η IPSec (IP Security) προδιαγραφή περιγράφει ένα γενικό πλαίσιο ασφάλειας και καθορίζει μία σειρά από διαδικασίες και πρωτόκολλα,
Κεφάλαιο 7 Διαδικτύωση-Internet
Κεφάλαιο 7 Διαδικτύωση- Internet
Διαδίκτυα και το Διαδίκτυο (Internetworking and the Internet)
ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ (Κ105)
Κεφάλαιο 7: Διαδικτύωση-Internet
«Γιατί ξένος δεν είσαι, ξένος νοιώθεις…» :
Τεχνολογία Πολυμέσων Ενότητα # 17: Πρωτόκολλα μετάδοσης
Θέμα: Διακομιστές Διαμεσολάβησης
OI TΡEIΣ ΙΕΡΑΡΧΕΣ Οι τρεις Ιεράρχες ,προστάτες των γραμμάτων και των εκπαιδευτικών, γιορτάζουν στις 30 Ιανουαρίου.
Βιωματικές δράσεις Β΄ Γυμνασίου Τμήμα Β2
Εντολές Δικτύων Command Line.
Κεφάλαιο 4. Επίπεδο μεταφοράς
ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ RACES
Δίκτυα Επικοινωνιών Ενότητα 5: Επίπεδο Ζεύξης:
Είδη των Cache Misses: 3C’s
الباب الرابع : الارتباط و الانحدار الخطي البسيط
Υλικό/ Αρχιτεκτονική Ηλεκτρονικών Υπολογιστών
Είδη των Cache Misses: 3C’s
Παρουσίαση του νέου διδακτικού πακέτου
Έννοιες της Λογιστικής
Είδη των Cache Misses: 3C’s
ΑΣΦΑΛΗΣ ΧΡΗΣΗ ΔΙΑΔΙΚΤΥΟΥ
ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ (Κ105)
Μεταγράφημα παρουσίασης:

Διπλωματική Εργασία Τροποποίηση της υλοποίησης διαδικτυακών πρωτοκόλλων λειτουργικού συστήματος για την εκμετάλλευση πολλαπλών επεξεργαστικών μονάδων

Επισκόπηση ● Πολλαπλοί επεξεργαστές ● Fine-grained locking ● Στοιβα πρωτοκόλλων BSD ● Οργάνωση της στοίβας πρωτοκόλλων στο DragonFlyBSD ● Ζητήματα ● Μετρήσεις

Το πρώτο βήμα: η BGL ● Ένα μόνο νήμα στον πυρήνα κάθε φορά

Το πρώτο βήμα: η BGL ● Ένα μόνο νήμα στον πυρήνα κάθε φορά ● Κλιμάκωση μόνο για αμιγώς υπολογιστικές εφαρμογές

Το επόμενο βήμα: περισσότερα κλειδώματα ● 1Ζ Εντοπισμός συχνά διεκδικούμενου κλειδώματος ● 2. Αντικατάσταση με περισσότερα κλειδώματα

Προβλήματα ● LOR

Προβλήματα ● LOR ● Κλιμάκωση προς τα κάτω ● Bus contention

Οργάνωση της στοίβας πρωτοκόλλων στο DragonFlyBSD Η πρώτη ύλη

Η στοίβα πρωτοκόλλων στο BSD ● Αρκετά γρήγορο

Η στοίβα πρωτοκόλλων στο BSD ● Αρκετά γρήγορο ● Αξιόπιστο

Η στοίβα πρωτοκόλλων στο BSD ● Αρκετά γρήγορο ● Αξιόπιστο ● Τεκμηριωμένο

Η στοίβα πρωτοκόλλων στο BSD ● Αρκετά γρήγορο ● Αξιόπιστο ● Τεκμηριωμένο ● 20+ χρόνια ανάπτυξης (το τελευταίο δεν είναι απαραίτητα καλό)

tcp_input() ● 4.4BSD (Net/2 Release): 1100 SLOC

tcp_input() ● 4.4BSD (Net/2 Release): 1100 SLOC ● DragonFly 1.0: SLOC

tcp_input() ● 4.4BSD (Net/2 Release): 1100 SLOC ● DragonFly 1.0: SLOC ● 2η σε κυκλωματική πολυπλοκότητα σε όλο τον πυρήνα ● Πολύ εύθραυστη

Οργάνωση της στοίβας πρωτοκόλλων στο DragonFlyBSD Αλλαγές στο DragonFly

Τα νήματα

Επικοινωνία με τα νήματα πρωτοκόλλου ● abort ● accept ● attach ● bind ● connect ● connect2 ● control ● detach ● disconnect ● listen ● peeraddr ● recvd ● recvoob ● send ● κλπ

Λήψη δεδομένων

Αποστολή δεδομένων

Ζητήματα (1) Το PCB

Protocol Control Block

TCP hash

UDP hash

Λύσεις για το UDP ● Χρήση μόνο της τοπικής πόρτας

Λύσεις για το UDP ● Χρήση μόνο της τοπικής πόρτας ● Migration + tombstones

Λύσεις για το UDP ● Χρήση μόνο της τοπικής πόρτας ● Migration + tombstones ● Inpcb replication ● NxN?

Ζητήματα (2) Sockbuf

● Ενταμιευτής αποστολής (MPSC) ● Ενταμιευτής λήψης (SPMC)

Draw me a picture

Lamport

+/-Κυκλικού Ενταμιευτή ● Υπέρ ● Ελάχιστο cacheline thrashing ● Απλή υλοποίηση

+/-Κυκλικού Ενταμιευτή ● Υπέρ ● Ελάχιστο cacheline thrashing ● Απλή υλοποίηση ● Κατά ● Σπαταλά μνήμη

+/-Κυκλικού Ενταμιευτή ● Υπέρ ● Ελάχιστο cacheline thrashing ● Απλή υλοποίηση ● Κατά ● Σπαταλά μνήμη ● Προοπτική ● Μόνο με δυναμική αλλαγή μεγέθους

M_CORAL (1)

M_CORAL (2)

M_CORAL (3)

+/- M_CORAL ● Υπέρ ● Δυναμικό μέγεθος ● Δεν σπαταλά μνήμη για ανενεργά sockbuf ● Cache-friendly

+/- M_CORAL ● Υπέρ ● Δυναμικό μέγεθος ● Δεν σπαταλά μνήμη για ανενεργά sockbuf ● Cache-friendly ● Κατά ● Τα mbuf clusters είναι μεγάλα (2K) ● Περίπλοκο CFG

+/- M_CORAL ● Υπέρ ● Δυναμικό μέγεθος ● Δεν σπαταλά μνήμη για ανενεργά sockbuf ● Cache-friendly ● Κατά ● Τα mbuf clusters είναι μεγάλα (2K) ● Περίπλοκο CFG ● Προοπτική ● Θα χρησιμοποιηθεί μόλις λυθεί το πρόβλημα με τα mbuf clusters

cupholders

+/- cupholders ● Υπέρ ● Δυναμικό μέγεθος ● Απλός κώδικας

+/- cupholders ● Υπέρ ● Δυναμικό μέγεθος ● Απλός κώδικας ● Κατά ● Δέσμευση μνήμης ● Larger cache footprint

+/- cupholders ● Υπέρ ● Δυναμικό μέγεθος ● Απλός κώδικας ● Κατά ● Δέσμευση μνήμης ● Larger cache footprint ● Προοπτική ● Θα μείνουν για λίγο ακόμα

Απροσδιοριστία των δεδομένων ● «Πόσα bytes περιέχονται στο sockbuf;»

Απροσδιοριστία των δεδομένων ● «Πόσα bytes περιέχονται στο sockbuf;» ● Δεν μπορούμε να δώσουμε ένα νούμερο, αλλά μόνο ένα άνω ή κάτω όριο

Ζητήματα (3) Races

● Κάποια races τα αφήνουμε να εξελιχθούν ● π.χ socket options

Races ● Κάποια races τα αφήνουμε να εξελιχθούν ● π.χ socket options ● Κάποια άλλα είναι επικίνδυνα ● π.χ SS_CANTRCVMORE

Χαμένη αφύπνιση get_mplock(); […] again: if (have_data) break; if (exception) break; sleep_on_sockbuf(); goto again; again: if (have_data) break; if (exception) break; syncmsg(notify_me); goto again;

Μετρήσεις ● Θεωρητικά εύκολο να δείξουμε την κλιμάκωση, αλλά...

Μετρήσεις ● Θεωρητικά εύκολο να δείξουμε την κλιμάκωση, αλλά... ● Ιδέες: ● Πολλές συνδέσεις με μικρή ροή δεδομένων

Μετρήσεις ● Θεωρητικά εύκολο να δείξουμε την κλιμάκωση, αλλά... ● Ιδέες: ● Πολλές συνδέσεις με μικρή ροή δεδομένων ● loopback + hacks

Μετρήσεις ● Θεωρητικά εύκολο να δείξουμε την κλιμάκωση, αλλά... ● Ιδέες: ● Πολλές συνδέσεις με μικρή ροή δεδομένων ● loopback + hacks ● Χρήση 10G

10G ● mxge(4) ● + HW csum, vlan tagging ● - RSS, TSO, jumbo frames

Αποτελέσματα

Στό μέλλον ● Instrumentation ● mxge RSS / jumbo frames ● Ειδοποιήσεις και BGL

Τέλος