30
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη Εσωτερική Μνήμη Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) Κεντρική Μονάδα (CPU) μεγαλύτερη χωρητικότητα μεγαλύτερη ταχύτητα

Εξωτερική Αναζήτηση

Embed Size (px)

DESCRIPTION

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερικ ή Μνήμη. Εσωτερικ ή Μνήμη. Κρυφή Μνήμη (Cache). Καταχωρητές (Registers). μεγαλύτερη χωρητικότητα. μεγαλύτερη ταχύτητα. Κεντρική Μονάδα ( CPU). TexPoint fonts used in EMF. - PowerPoint PPT Presentation

Citation preview

Page 1: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

Ιεραρχία Μνήμης Υπολογιστή

Εξωτερική Μνήμη

Εσωτερική Μνήμη

Κρυφή Μνήμη (Cache)

Καταχωρητές (Registers)

Κεντρική Μονάδα(CPU)

μεγαλύτερηχωρητικότητα

μεγαλύτερηταχύτητα

Page 2: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

Πολλές σημαντικές εφαρμογές διαχειρίζονται ένα μεγάλο όγκο δεδομένων που

είναι αποθηκευμένα σε εξωτερική μνήμη.

Στις περιπτώσεις αυτές πρέπει να λάβουμε υπόψη το χρόνο που απαιτείται για

τη μεταφορά δεδομένων από/προς την εξωτερική μνήμη.

Μοντέλο Εξωτερικής Μνήμης

Απλοποιημένο μοντέλο ανάλυσης αλγορίθμων :

Η εξωτερική μνήμη διαιρείται σε σελίδες και μία σελίδα

περιέχει ένα μεγάλο αριθμό δεδομένων. Θεωρούμε ότι ο

χρόνος των λειτουργιών εισόδου/εξόδου που απαιτείται

για την ανάγνωση μιας σελίδας από την εξωτερική μνήμη

είναι πολύ μεγαλύτερος από το χρόνο επεξεργασίας των

δεδομένων της σελίδας.

……

CPU

εξωτερική μνήμη

εσωτερική μνήμη

Page 3: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

……Απλοποιημένο μοντέλο ανάλυσης αλγορίθμων :

Η εξωτερική μνήμη διαιρείται σε σελίδες και μία σελίδα

περιέχει ένα μεγάλο αριθμό δεδομένων. Θεωρούμε ότι ο

χρόνος των λειτουργιών εισόδου/εξόδου που απαιτείται

για την ανάγνωση μιας σελίδας από την εξωτερική μνήμη

είναι πολύ μεγαλύτερος από το χρόνο επεξεργασίας των

δεδομένων της σελίδας.

CPU

εξωτερική μνήμη

Διερεύνηση : Η πρώτη πρόσβαση σε μία σελίδα

Εξωτερική Αναζήτηση : Μας ενδιαφέρουν δομές αναζήτησης που απαιτούν λίγες διερευνήσεις

εσωτερική μνήμη

Μια τυχαία προσπέλαση στην εξωτερική μνήμη είναι πολύ ακριβή σε σχέση με μια τυχαία προσπέλαση στην εσωτερική μνήμη (π.χ. 100000 φορές πιο αργή σε τυπικά συστήματα).

Μοντέλο Εξωτερικής Μνήμης

Page 4: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση706176601153513773742373524766275737574434641207001277061736526562017107147

001153373562737

001017061107147

153176207275277

373434513524526

562574601706736

737741742766773

κλειδιά

Ακολουθιακή δομή αρχείου με ευρετήριο

ευρετήριο

Τα κλειδιά βρίσκονται σε ακολουθιακή διάταξη στις σελίδες. Το ευρετήριο οδηγεί προς το μικρότερο κλειδί κάθε σελίδας.

Για να προσθέσουμε ένα νέο κλειδί πρέπει να ανακατασκευάσουμε ολόκληρη τη δομή.

Page 5: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

Β-δένδρο (βαθμού m) : Αντιστοιχεί σε (a,b)-δένδρο με

Ένα (a,b)-δένδρο είναι δένδρο αναζήτησης πολλαπλής διακλάδωσης όπου:

• a ≥ 2 και b > a (συνήθως b ≥ 2·a)

• η ρίζα έχει d-1 κλειδιά και d παιδιά, 2 ≤ d ≤ b

• οι υπόλοιποι εσωτερικοί κόµβοι έχουν t-1 κλειδιά και t παιδιά, a ≤ t ≤ b

• οι κενοί κόμβοι (φύλλα) ισαπέχουν από τη ρίζα (δηλ. βρίσκονται στο ίδιο επίπεδο)

B-δένδρα

Το ύψος του δένδρου με κλειδιά είναι μεταξύ και

Page 6: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

Β-δένδρο (βαθμού m) : Αντιστοιχεί σε (a,b)-δένδρο με

Ένα (a,b)-δένδρο είναι δένδρο αναζήτησης πολλαπλής διακλάδωσης όπου:

• a ≥ 2 και b > a (συνήθως b ≥ 2·a)

• η ρίζα έχει d-1 κλειδιά και d παιδιά, 2 ≤ d ≤ b

• οι υπόλοιποι εσωτερικοί κόµβοι έχουν t-1 κλειδιά και t παιδιά, a ≤ t ≤ b

• οι κενοί κόμβοι (φύλλα) ισαπέχουν από τη ρίζα (δηλ. βρίσκονται στο ίδιο επίπεδο)

B-δένδρα

Επιλέγουμε αρκετά μεγάλο m ώστε οι κόμβοι με m παιδιά να γεμίζουν μία σελίδα.

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

Page 7: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

000524

001017061

107147153

207275277

373434513

524526562574

601641706736737

742766773

000107207373

524601742

B-δένδρα

Παράδειγμα για m=5

Page 8: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

153176513601706

B-δένδρα

706176601153513773742373524766275737574434641207001277061736526562017107147

κλειδιά

Ακολουθία εισαγωγών με m=5

Page 9: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

B-δένδρα

000601

153176513

601706773

706176601153513773742373524766275737574434641207001277061736526562017107147

κλειδιά

ελάχιστο δυνατό κλειδί

Ακολουθία εισαγωγών με m=5

Page 10: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

B-δένδρα

000601

153176373513524

601706742766773

706176601153513773742373524766275737574434641207001277061736526562017107147

κλειδιά

Ακολουθία εισαγωγών με m=5

Page 11: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

B-δένδρα

000373601

153176275

601706742766773

373513524

706176601153513773742373524766275737574434641207001277061736526562017107147

κλειδιά

Ακολουθία εισαγωγών με m=5

Page 12: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

B-δένδρα

000373601742

153176275

601706737

373513524

742766773

706176601153513773742373524766275737574434641207001277061736526562017107147

κλειδιά

Ακολουθία εισαγωγών με m=5

Page 13: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

B-δένδρα

000207373601742

001153176

373434513524574

207275277

601641706737

742766773

706176601153513773742373524766275737574434641207001277061736526562017107147

κλειδιά

Ακολουθία εισαγωγών με m=5

Page 14: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

B-δένδρα

000524

001061153176

207275277

373434513

524526574

601641706736737

742766773

000207373

524601742

706176601153513773742373524766275737574434641207001277061736526562017107147

κλειδιά

Ακολουθία εισαγωγών με m=5

Page 15: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

B-δένδρα

000524

001017061

107147153176

207275277

373434513

524526562574

601641706736737

742766773

000107207373

524601742

706176601153513773742373524766275737574434641207001277061736526562017107147

κλειδιά

Ακολουθία εισαγωγών με m=5

Page 16: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

Επεκτάσιμος κατακερματισμός

Επιτρέπει την επαύξηση ή τη συρρίκνωση ενός πίνακα κατακερματισμού, διατηρώντας παράλληλα τους χρόνους πρόσβασης στη δομή χαμηλούς.• Χρήσιμη μέθοδος για την αποθήκευση δεδομένων στη δευτερεύουσα μνήμη.• Μπορεί να χρησιμοποιηθεί εναλλακτικά αντί ενός Β-δένδρου.

Δομή 2 επιπέδων:• Κατάλογος (πίνακας από δείκτες) που αποτελεί τη δομή υψηλού επιπέδου.• Ένα σύνολο από σελίδες στις οποίες αποθηκεύονται (δείκτες προς) δεδομένα.

00011011

κατάλογος

Page 17: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

Χρησιμοποιούμε μια συνάρτηση κατακερματισμού για τη μετατροπή των κλειδιών σε ακέραιους.

Για την αναζήτηση ενός στοιχειού, πρώτα υπολογίζουμε την ακέραια τιμή της συνάρτησης κατακερματισμού και στη συνέχεια χρησιμοποιούμε τα πρώτα ψηφία της δυαδικής αναπαράστασης αυτού του ακέραιου για να εντοπίσουμε τη σελίδα που περιέχει το ζητούμενο στοιχείο.

Επεκτάσιμος κατακερματισμός

Αν τα δεδομένα βρίσκονται σε σελίδες, όπου

τότε χρησιμοποιούμε τα πρώτα ψηφία00011011

κατάλογος

πρώτα δυαδικά ψηφία του

Page 18: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση111000110001111110110000001001101011101001011111111011111100010011111011101010100111110110010111101111011111101111100100011100110100001010000111000000001010111111000110001111011110101010110101110010000001111001000111001100111

000001010011100

000000001000001111000110001

001000111001100111001101011001111101

010000111010111101010111111

100011100

101001011101010100101010110101110010101111100

110000001110100001

111000110111011110111011111111100010111110110

101110111

τιμές συνάρτησης κατακερματισμού των κλειδιών

Page 19: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση111000110001111110110000001001101011101001011111111011111100010011111011101010100111110110010111101111011111101111100100011100110100001010000111000000001010111111000110001111011110101010110101110010000001111001000111001100111

τιμές συνάρτησης κατακερματισμού των κλειδιών

000000001000001111000110001

001000111001100111001101011001111101

010000111010111101010111111011111011

100011100

101001011101010100101010110101110010101111100

110000001110100001

111000110111011110111011111111100010111110110

Αν κάποιες σελίδες δεν έχουν γεμίσει μπορούμε να μειώσουμε το πλήθος των σελίδων διατηρώντας πολλούς δείκτες του καταλόγου σε μια σελίδα

000001010011100101110111

Page 20: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση000000001000001111000110001

001000111001100111001101011001111101

010000111010111101010111111011111011

100011100

101001011101010100101010110101110010101111100

110000001110100001

111000110111011110111011111111100010111110110

0000000100100011010001010110011110001001101010111100110111101111

Διπλασιασμός καταλόγου

Μπορεί να εξυπηρετήσει την εισαγωγή περισσότερων στοιχείων

Επεκτάσιμος κατακερματισμός

Page 21: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

Μια σελίδα περιέχει όλα εκείνα τα κλειδιά των οποίων η τιμή κατακερματισμού έχει

ένα συγκεκριμένο πρόθεμα από δυαδικά ψηφία. Το μήκος αυτού του προθέματος

ονομάζεται βάθος της σελίδας. Το μέγιστο βάθος κάθε σελίδας ονομάζεται

βάθος του πίνακα κατακερματισμού.

Ο κατάλογος είναι ένας πίνακας με δείκτες σε σελίδες, όπου το

βάθος του πίνακα κατακερματισμού.

Εύρεση σελίδας που περιέχει το κλειδί

1. Υπολογίζουμε το

2. Ακολουθούμε τον δείκτη

Αν μια σελίδα έχει βάθος , τότε δείκτες σε συνεχόμενες θέσεις του

πίνακα θα δείχνουν στη σελίδα αυτή.

Επεκτάσιμος κατακερματισμός

Page 22: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση000000001000001111000110001

001000111001100111001101011001111101

010000111010111101010111111011111011

100011100

101001011101010100101010110101110010101111100

110000001110100001

111000110111011110111011111111100010111110110

0000000100100011010001010110011110001001101010111100110111101111

βάθοςσελίδας = 3

βάθοςσελίδας = 2

βάθος πίνακα κατακερματισμού

Επεκτάσιμος κατακερματισμός

Page 23: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

Εισαγωγές

Μια σελίδα χωράει μόνο m κλειδιά. Αν συμβεί υπερχείλιση μιας σελίδας με

βάθος d, η σελίδα χωρίζεται σε δύο σελίδες:

• Δημιουργία μιας νέας σελίδας, που ονομάζεται φιλική σελίδα (buddy page)

και

• Αύξηση του βάθους των σελίδων σε d+1.

Περιπτώσεις

1. d < D : Αλλαγή απλά μερικών δεικτών στον κατάλογο, ώστε αυτοί να δείχνουν

στη νέα σελίδα.

2. d = D : Διπλασιασμός του μεγέθους του καταλόγου και κατάλληλη

αρχικοποίηση των δεικτών.

Επεκτάσιμος κατακερματισμός

Page 24: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

001101011001111110101001110110000001111000110

Επεκτάσιμος κατακερματισμός

Εισαγωγές

111000110001111110110000001001101011101001011111111011111100010011111011101010100111110110010111101111011111101111100100011100010000111000000001

Page 25: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

001101011001111110

01

101001011110000001111000110111111110

βάθος 1

βάθος 1

Επεκτάσιμος κατακερματισμός

Εισαγωγές

111000110001111110110000001001101011101001011111111011111100010011111011101010100111110110010111101111011111101111100100011100010000111000000001

Page 26: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

001101011001111110011111011

0001 101001011

1010101001011

110000001111000110111100010111111110

βάθος 1

βάθος 2

βάθος 2

Επεκτάσιμος κατακερματισμός

Εισαγωγές

111000110001111110110000001001101011101001011111111011111100010011111011101010100111110110010111101111011111101111100100011100010000111000000001

Page 27: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση001101011001111110010111101011111011

101001011101010100

111000110111011111111100010111110110111111110

βάθος 1

βάθος 2

βάθος 3

000001010011100101110111

110000001

βάθος 3

Επεκτάσιμος κατακερματισμός

Εισαγωγές

111000110001111110110000001001101011101001011111111011111100010011111011101010100111110110010111101111011111101111100100011100010000111000000001

Page 28: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση000000001001101011001111110

010000111010111101011111011

βάθος 2

βάθος 2000001010011100101110111

100011100101001011101010100101111100

βάθος 2

111000110111011111111100010111110110111111110

βάθος 3

110000001

βάθος 3

111000110001111110110000001001101011101001011111111011111100010011111011101010100111110110010111101111011111101111100100011100010000111000000001

Επεκτάσιμος κατακερματισμός

Εισαγωγές

Page 29: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

Διαγραφές

Αν η διαγραφή κάποιων κλειδιών από μια σελίδα 2i, για κάποιο i, έχει ως αποτέλεσμα αυτή μαζί με την (2i+1) να έχει συνολικά το πολύ m κλειδιά, θα μπορούσε να γίνει συνένωση των 2 σελίδων σε 1.

Γενικά αυτή η λειτουργία είναι ακριβή και δεν είναι συνετό να γίνεται συχνά.

Επεκτάσιμος κατακερματισμός

Page 30: Εξωτερική Αναζήτηση

Εξωτερική Αναζήτηση

Αποδοτικότητα

(+) Είναι αποδοτικός σε χρόνο προσπέλασης : Απαιτείται μόνο μια πρόσβαση στην κύρια μνήμη και μια στην εξωτερική για να επιτευχθεί η προσπέλαση του ζητούμενου κλειδιού (και δεδομένου). (-) Δεν είναι αρκετά αποδοτική σε μνήμη : Πολλές από τις σελίδες μπορεί να είναι σχεδόν άδειες και ο κατάλογος συνήθως περιέχει παραπάνω από έναν δείκτες που δείχνουν στην ίδια σελίδα.

Επεκτάσιμος κατακερματισμός