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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Βασικές έννοιες αλγορίθμων
Advertisements

Προχωρημένα θέματα βάσεων δεδομένων
5 Οργάνωση υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών ã Εκδόσεις Κλειδάριθμος.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
Ο Ηλεκτρονικός Υπολογιστής
ΚΕΦΑΛΑΙΟ 4. Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού και αξιοποιούν τις δυνατότητές του.
Συνάφεια Κρυφής Μνήμης σε Επεκτάσιμα Μηχανήματα. Συστήματα με Κοινή ή Κατανεμημένη Μνήμη  Σύστημα μοιραζόμενης μνήμης  Σύστημα κατανεμημένης μνήμης.
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Ανακτηση Πληροφοριασ σε νεφη Υπολογιστων
Ημιαγωγοί – Τρανζίστορ – Πύλες - Εξαρτήματα
Λογισμικο συστηματοσ Κεφάλαιο 4ο
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
Message Passing Interface (MPI)
ΜΑΘ-3122/106 Προγραμματισμός
24/11/2003Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
22/11/2004Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2004 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
Πανεπιστήμιο Ιωαννίνων Ανάκτηση Πληροφορίας Τμήμα Πληροφορικής Ακαδημαϊκό Έτος MapReduce: Simplified Data processing on Large Clusters Φώτης.
Βάσεις Δεδομένων (ΚΒΔ)
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
Νήματα Οι διεργασίες έχουν τα παρακάτω συστατικά:
Λειτουργικά συστήματα ΙΙ
Στο λειτουργικό σύστημα Windows, υπάρχουν εικονίδια (icons) τα οποία αναπαριστούν τις διάφορες οντότητες (φυλαγμένες πληροφορίες, προγράμματα που κάνουν.
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.
ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑ 1.
1 Content Addressable Network Λίλλης Κώστας Καλλιμάνης Νικόλαος Αγάθος Σπυρίδων – Δημήτριος Σταθοπούλου Ευγενία Γεωργούλας Κώστας.
ΠΡΟΓΡΑΜΜΑΤΙΖΟΜΕΝΟΙ ΛΟΓΙΚΟΙ ΕΛΕΓΚΤΕΣ (PLCs).
Διαχείριση μνήμης Υπόβαθρο Εναλλαγή Συνεχής κατανομή Σελιδοποίηση
Α’ Γυμνασίου Βιβλίο «Σημειώσεις» σελίδες Α2
ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
1 Εισαγωγή στις Βάσεις Δεδομένων  Ανάγκη Αποθήκευσης και Διαχείρισης Δεδομένων  Συστήματα Αρχείων  Συστήματα Βάσεων Δεδομένων  Παραδοσιακές και Σύγχρονες.
Message Passing Interface (MPI) Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων Αθήνα, Δεκέμβριος 2002.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
Λειτουργικά Συστήματα Πολλών Χρηστών
University of Crete HY566-Semantic Web CS566 – Semantic Web Computer Science Department - UoC Heraklion 1 April, 2003 Παπαγγελής Μάνος, Κοφφινά Ιωάννα,
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
Επιστημονικός Υπολογισμός Ι Πρώτο Εργαστήριο Εισαγωγή στο matlab 15 Οκτωβρίου 2010 Γιώργος Δρακόπουλος ΤΜΗΥΠ.
ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language.
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
Βασικά στοιχεία της Java
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις (μέρος δεύτερο) και Μεταβλητές.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΣΥΛΟΓΗΣ ΔΕΔΟΜΕΝΩΝ ΑΠΟ ΔΥΚΤΙΑ ΚΟΙΝΩΝΙΚΟΥ ΙΣΤΟΥ Ανέστης Κυβράνογλου(1281) Επιβλέπων : Κ. Πεταλίδης Νικόλαος.
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 5: Γνωριμία με το Λογισμικό
Η Κεντρική Μονάδα Συστήματος Εισαγωγή στην Πληροφορκή 1 Η κεντρική μονάδα του συστήματος (base unit ή system unit) αποτελεί τον πυρήνα ενός υπολογιστή.
ΠΑΡΑΔΕΙΓΜΑ: ΤΑ ΕΠΙΠΕΔΑ ΥΛΙΚΟΥ – ΛΟΓΙΣΜΙΚΟΥ ΣΕ ΕΝΑΝ ΥΠΟΛΟΓΙΣΤΗ.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
A’ ΕΠΑ.Λ. Εφαρμογές Πληροφορικής Γεωργιλά Χιονία 1.
Συγγράμματα Γκιμπερίτης Βαγγέλης Δεξιότητες στην Κοινωνία της Πληροφορίας – Εφαρμογές Πληροφορικής. Γουλτίδης, Χρήστος ECDL /10/2009.
Ευρετήρια Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Java DataBase Connectivity
Εφαρμογές Υπολογιστών
Γνωριμία με το Λογισμικό του Υπολογιστή
Κατηγορίες και Προδιαγραφές Λογισμικού Η/Υ (Software)
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ (ΕΡΓΑΣΤΗΡΙΟ)
ΜΝΗΜΗ ΥΠΟΛΟΓΙΣΤΗ Ο υπολογιστής κατασκευάστηκε από τον άνθρωπο για να τον “διευκολύνει” σε κάποιες δύσκολες και επίπονες σωματικές μα πιο πολύ νοητικές.
Εισαγωγή στη Java Χαρακτηριστικά της Java Εργαλεία της Java
Πληροφοριακό σύστημα Πληροφοριακό Σύστημα μιας επιχείρησης/οργανισμού είναι ένα σύστημα που αποτελείται από ανθρώπους, διαδικασίες και εξοπλισμό (Υλικό,
Κεφάλαιο 10 Streams.
ΑΛΓΟΡΙΘΜΟΣ.
ΕΚΣΤΡΑΤΕΙΑ ΕΝΗΜΕΡΩΣΗΣ ΓΙΑ ΤΗΝ ΧΡΗΣΗ ΨΗΦΙΑΚΩΝ ΤΕΧΝΟΛΟΓΙΩΝ
Κατανεμημένα Συστήματα
Εξαιρέσεις [Exceptions]
ΕΚΦΡΑΣΕΙΣ, ΑΝΑΜΟΝΕΣ (DELAYS), ΗΧΟΙ
Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
UNIT 1 Τα Πρώτα Προγράμματα.
Μεταγράφημα παρουσίασης:

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

Το πρόβλημα Επεξεργασία μεγάλων συνόλων δεδομένων(TB) Τα δεδομένα είναι κατανεμημένα σε διαφορετικές τοποθεσίες Μεσαίας ισχύος υλικό με συχνές βλάβες Έλλειψη αποδοτικού τρόπου επεξεργασίας των δεδομένων Η λύση: MapReduce

Τι είναι το MapReduce; Τα προγράμματα παραλληλοποιούνται αυτόματα Είναι ένα μοντέλο προγραμματισμού και μία σχετιζόμενη υλοποίηση για την επεξεργασία και παραγωγή μεγάλων συνόλων δεδομένων. Google Ο χρήστης μπορεί να ορίσει δύο συναρτήσεις Map Reduce Τα προγράμματα παραλληλοποιούνται αυτόματα Το σύστημα φροντίζει για: κατανομή των δεδομένων χρονοπρογραμματισμό βλάβες επικοινωνία

Το μοντέλο προγραμματισμού Είσοδος/Έξοδος Ζεύγη <key,value> Map Δέχεται ως είσοδο ένα ζεύγος και παράγει ένα σύνολο ενδιάμεσων ζευγών Reduce Δέχεται ως είσοδο ένα key και ένα σύνολο values που του αντιστοιχούν Συγχωνεύει αυτές τις τιμές Συναρτησιακές γλώσσες προγραμματισμού

GFS Ένα κατανεμημένο κλιμακώσιμο σύστημα αρχείων για εφαρμογές που διαχειρίζονται μεγάλα κατανεμημένα σύνολα δεδομένων. Παρέχει ανοχή σε σφάλματα, ενώ εκτελείται σε μεσαίας ισχύος υλικό. Χρησιμοποιείται σαν είσοδος και έξοδος από το MapReduce to be continued…

Πριν ξεκινήσουμε Η είσοδος “χωρίζεται” σε M κομμάτια, μεγέθους 16 έως 64 MB Κάθε μηχάνημα που συμμετέχει στον υπολογισμό εκτελεί ένα αντίγραφο του προγράμματος Ένα από όλα τα μηχανήματα αναλαμβάνει το ρόλο του master. Αυτός αναθέτει εργασίες στα υπόλοιπα(εργάτες). Αυτές μπορεί να είναι map ή reduce εργασίες.

Map εργασία Για έναν εργάτη που του έχει ανατεθεί μία map εργασία Διαβάζει από το GFS το κομμάτι της εισόδου(input split) που του αντιστοιχεί, αναλύει τα ζεύγη <key, value> που προκύπτουν και τα δίνει σαν είσοδο στη map συνάρτηση. Η map συνάρτηση επεξεργάζεται τα ζεύγη και παράγει ενδιάμεσα ζεύγη και τα συσσωρεύει στη μνήμη. Περιοδικά εκτελείται μία συνάρτηση διαίρεσης(partition function). Αυτή αποθηκεύει τα ενδιάμεσα ζεύγη στον τοπικό δίσκο. Επιπλεόν τα χωρίζει σε R ομάδες. Η συνάρτηση αυτή μπορεί να προσδιοριστεί από τον χρήστη. Όταν η συνάρτηση διαίρεσης ολοκληρώσει την αποθήκευση των ζευγών ενημερώνει τον master για το που βρίσκονται τα δεδομένα. Ο master προωθεί αυτή την πληροφορία στους εργάτες που εκτελούν reduce εργασίες.

Map εργασία public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String[] line = value.toString().split("\\s"); Text out_key = null; for(int i=0; i<line.length; i++){ out_key = new Text(line[i]); context.write(out_key, one); }

Reduce εργασία Για έναν εργάτη που του έχει ανατεθεί μία reduce εργασία Διαβάζει από κάθε εργάτη που έχει εκτελεσθεί τα ζεύγη που του αντιστοιχούν από τις τοποθεσίες που του υποδεικνύει ο master. Όταν όλα τα ενδιάμεσα ζεύγη έχουν ανακτηθεί ταξινομούνται βάση του key. Όσα values έχουν κοινό key ομαδοποιούνται. Εκτελείται η συνάρτηση reduce με είσοδο τα ζεύγη <key, group_of_values> που προέκυψαν στην προηγούμενη φάση. Η reduce επεξεργάζεται τα δεδομένα εισόδου και παράγει τα τελικά ζεύγη. Τα ζεύγη εξόδου προσαρτώνται σε ένα αρχείο στο τοπικό σύστημα αρχείων. Όταν ολοκληρωθεί η reduce το αρχείο γίνεται διαθέσιμο στο κατανεμημένο σύστημα αρχείων.

Reduce εργασία public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { Iterator<IntWritable> val = values.iterator(); int count = o; while (val.hasNext()) { count += val.next().get(); } IntWritable c = new IntWritable(count); Text out_val = new Text(c.toString()); context.write(key, out_val);

Ολοκλήρωση εργασιών Όταν ένας εργάτης ολοκληρώσει την εργασία του ενημερώνει τον master. Όταν όλοι ενημερωσουν τον master τότε αυτός επιστρέφει τη λειτουργία στο αρχικό πρόγραμμα του χρήστη.

Master Map worker Reduce worker Input Part 1 Part 2 Part 3 Output

Παράδειγμα Ένα απλό παράδειγμα είναι ο υπολογισμός της συχνότητας των λέξεων σε ένα σύνολο κειμένων. To be, or not to be map map <to,1 >,<be,1 >,<or,1 > <not,1 >,<to,1 >,<be,1 > <be,<1,1>>,<not,<1>> <or,<1>>,<to,<1,1>> reduce reduce <be,2>,<not,1>,<or,1>,<to,2>

Παράδειγμα 2 Ένα άλλο παράδειγμα είναι ο εντοπισμός κειμένου σε σύνολα αρχείων. banana apple pineapple orange map map <apple,null> <pineapple,null> Η φάση του reduce μπορεί να παραλειφθεί <apple,<null>> <pineapple,<null>> reduce reduce apple,pineapple

Παράδειγμα 3 Επιπλέον παράδειγμα είναι η δημιουγία ενός ανεστραμένου ευρετηρίου To be, or not to be To be is to do map map <to,a>,<be,a>,<or,a>, <not,a>,<to,a>,<be,a> <to,b>,<be,b>,<is,b>, <to,b>,<do,b> <be,<a,a,b>>,<do,<b>>,<is,<b>> <not,<a>>,<or,<a>>, <to,<a,a,b,b>> reduce reduce <be,<a,b>>,<do,<b>>,<is,<b>>,<not,<a>>,<or,<a>>,<to,<a,b>>

Παράδειγμα 4 <200001011200,10> <200001011230,12>... Ένα πιο σύνθετο πρόβλημα είναι ο υπολογισμός της μέσης μέγιστης θερμοκρασίας για κάθε μέρα ενός χρόνου σε ένα μετεωρολογικό σταθμό. Σε αυτό θα πρέπει να εκτελεστούν παραπάνω από μία φάσεις. <200001011200,10> <200001011230,12>... <200101011500,21> <200101011530,21>... map map <20000101,10> <20000101,12>... <20010101,21> <20000101,<10,12,...>>... <20010101,<21,21,...>>... reduce reduce <20000101,15>,<20010101,23>...

Παράδειγμα 4 <20000101,15> <20010101,23>... <20000201,21> <20010201,22>... map map <0101,15> <0101,23>... <0201,21> <0201,22> <0101,<15,23,...>>... <0201,<21,22,...>>... reduce reduce <0101,17>,<0201,23>...

Master Ο master διατηρεί δομές δεδομένων όπως: Κατάσταση μίας εργασίας Τοποθεσίες των δεδομένων εισόδου, εξόδου και ενδιάμεσων αποτελεσμάτων Ο master είναι υπεύθυνος για το χρονοπρογραμματισμό της εκτέλεσης των εργασιών

Ανοχή στα σφάλματα Ο master επικοινωνεί με τους εργάτες περιοδικά. Εάν κάποιος δεν ανταποκριθεί για ένα χρονικό διάστημα τότε αναθέτει την εργασία του σε κάποιον άλλο. Ο master επιπλέον περιοδικά διατηρεί αντίγραφα ελέγχου των δομών του. Σε περίπτωση βλάβης ένας νέος μπορεί να ξεκινήσει άμεσα. Τα ενδιάμεσα αποτελέσματα που παράγονται από τις map και reduce εργασίες διατηρούνται σε προσωρινά αρχεία σε τοπικά συστήματα αρχείων έως όλη η είσοδος να έχει επεξεργαστεί. Στη συνέχεια ενημερώνεται ο master και η πληροφορία γίνεται διαθέσιμη σε όλους.

Τοπικότητα Τα δεδομένα αποθηκευονται στους δίσκους των εργατών. Χωρίζονται σε block(64MB συνήθως) με αντίγραφα σε άλλους εργάτες. Ο master προσπαθεί να εκτελέσει μία εργασία σε ένα εργάτη “κοντά” στα δεδομένα εισόδου, ώστε να μειωθεί το εύρος δικτύου που θα καταναλωθεί.

Διακριτότητα εργασιών Ο αριθμός των προς εκτέλεση εργασιών είναι συνήθως μεγαλύτερος από το πλήθος των διαθέσιμων εργατών Ένας εργάτης μπορεί να εκτελέσει περισσότερες από μία εργασίες Έτσι η ισορροπία φόρτου βελτιώνεται και σε περίπτωση που υπάρξει βλάβη σε έναν εργάτη υπάρχει γρηγορότερη ανάρρωση με την επανακατανομή των εργασιών του σε άλλους

Εφεδρικές εργασίες Μερικές εργασίες καθυστερούν την ολοκλήρωση τους και μαζί και την ολοκλήρωση της συνολικής δουλειάς Η λύση στο πρόβλημα είναι η δημιουργία αντιγράφων της εργασίας Μία εργασία θεωρείται ολοκληρωμένη όταν ενημερώσει τον master αυτή ή ένα αντίγραφο της

Ένας χρήστης μπορεί να ορίσει μία δική του συνάρτηση διαίρεσης. Μία συνάρτηση combiner μπορεί να οριστεί για να επεξεργαστεί τα δεδομένα εξόδου μίας εργασίας map πριν αυτά γίνουν διαθέσιμα στους reducers. Εκτελείται από τον ίδιο εργάτη που εκτελεί τη map εργασία και συνήθως είναι παρόμοια με τη συνάρτηση reduce Ο τύπος των δεδομένων εισόδου και εξόδου μπορεί να καθοριστεί από το χρήστη και δεν έχει περιορισμούς του τι μορφής μπορεί να είναι.

Η είσοδος ενός reducer είναι πάντα ταξινομημένη Υπάρχει δυνατότητα τοπικής εκτέλεσης που εκτελεί όλες τις εργασίες σειριακά Ο master προσφέρει ένα web interface όπου ο χρήστης μπορεί να παρακολουθεί την εκτέλεση των εργασιών Παρέχεται η δυνατότητα στον χρήστη να ορίσει καθολικούς μετρητές

Hadoop Οpen-source υλοποίηση του MapReduce. Java HDFS http://hadoop.apache.org/ http://wiki.apache.org/hadoop/ Ποιοι το χρησιμοποιούν: Yahoo! Amazon Facebook Twitter και πολλοί άλλοι...

Περισσότερες πληροφορίες Dean, Jeff and Ghemawat, Sanjay. MapReduce: Simplified Data Processing on Large Clusters http://labs.google.com/papers/mapreduce-osdi04.pdf