Upload
ray-weaver
View
22
Download
0
Embed Size (px)
DESCRIPTION
Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερικ ή Μνήμη. Εσωτερικ ή Μνήμη. Κρυφή Μνήμη (Cache). Καταχωρητές (Registers). μεγαλύτερη χωρητικότητα. μεγαλύτερη ταχύτητα. Κεντρική Μονάδα ( CPU). TexPoint fonts used in EMF. - PowerPoint PPT Presentation
Citation preview
Εξωτερική Αναζήτηση
Ιεραρχία Μνήμης Υπολογιστή
Εξωτερική Μνήμη
Εσωτερική Μνήμη
Κρυφή Μνήμη (Cache)
Καταχωρητές (Registers)
Κεντρική Μονάδα(CPU)
μεγαλύτερηχωρητικότητα
μεγαλύτερηταχύτητα
Εξωτερική Αναζήτηση
Πολλές σημαντικές εφαρμογές διαχειρίζονται ένα μεγάλο όγκο δεδομένων που
είναι αποθηκευμένα σε εξωτερική μνήμη.
Στις περιπτώσεις αυτές πρέπει να λάβουμε υπόψη το χρόνο που απαιτείται για
τη μεταφορά δεδομένων από/προς την εξωτερική μνήμη.
Μοντέλο Εξωτερικής Μνήμης
Απλοποιημένο μοντέλο ανάλυσης αλγορίθμων :
Η εξωτερική μνήμη διαιρείται σε σελίδες και μία σελίδα
περιέχει ένα μεγάλο αριθμό δεδομένων. Θεωρούμε ότι ο
χρόνος των λειτουργιών εισόδου/εξόδου που απαιτείται
για την ανάγνωση μιας σελίδας από την εξωτερική μνήμη
είναι πολύ μεγαλύτερος από το χρόνο επεξεργασίας των
δεδομένων της σελίδας.
……
CPU
εξωτερική μνήμη
εσωτερική μνήμη
Εξωτερική Αναζήτηση
……Απλοποιημένο μοντέλο ανάλυσης αλγορίθμων :
Η εξωτερική μνήμη διαιρείται σε σελίδες και μία σελίδα
περιέχει ένα μεγάλο αριθμό δεδομένων. Θεωρούμε ότι ο
χρόνος των λειτουργιών εισόδου/εξόδου που απαιτείται
για την ανάγνωση μιας σελίδας από την εξωτερική μνήμη
είναι πολύ μεγαλύτερος από το χρόνο επεξεργασίας των
δεδομένων της σελίδας.
CPU
εξωτερική μνήμη
Διερεύνηση : Η πρώτη πρόσβαση σε μία σελίδα
Εξωτερική Αναζήτηση : Μας ενδιαφέρουν δομές αναζήτησης που απαιτούν λίγες διερευνήσεις
εσωτερική μνήμη
Μια τυχαία προσπέλαση στην εξωτερική μνήμη είναι πολύ ακριβή σε σχέση με μια τυχαία προσπέλαση στην εσωτερική μνήμη (π.χ. 100000 φορές πιο αργή σε τυπικά συστήματα).
Μοντέλο Εξωτερικής Μνήμης
Εξωτερική Αναζήτηση706176601153513773742373524766275737574434641207001277061736526562017107147
001153373562737
001017061107147
153176207275277
373434513524526
562574601706736
737741742766773
κλειδιά
Ακολουθιακή δομή αρχείου με ευρετήριο
ευρετήριο
Τα κλειδιά βρίσκονται σε ακολουθιακή διάταξη στις σελίδες. Το ευρετήριο οδηγεί προς το μικρότερο κλειδί κάθε σελίδας.
Για να προσθέσουμε ένα νέο κλειδί πρέπει να ανακατασκευάσουμε ολόκληρη τη δομή.
Εξωτερική Αναζήτηση
Β-δένδρο (βαθμού 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) : Αντιστοιχεί σε (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 παιδιά να γεμίζουν μία σελίδα.
Επειδή για κάθε κλειδί πρέπει να αποθηκεύουμε δείκτη προς το αντίστοιχο στοιχείο αποθηκεύουμε τους δείκτες προς τα στοιχεία στους κόμβους του τελευταίου επιπέδου. Στους εσωτερικούς κόμβους διατηρούμε αντίγραφα των κλειδιών.
Εξωτερική Αναζήτηση
000524
001017061
107147153
207275277
373434513
524526562574
601641706736737
742766773
000107207373
524601742
B-δένδρα
Παράδειγμα για m=5
Εξωτερική Αναζήτηση
153176513601706
B-δένδρα
706176601153513773742373524766275737574434641207001277061736526562017107147
κλειδιά
Ακολουθία εισαγωγών με m=5
Εξωτερική Αναζήτηση
B-δένδρα
000601
153176513
601706773
706176601153513773742373524766275737574434641207001277061736526562017107147
κλειδιά
ελάχιστο δυνατό κλειδί
Ακολουθία εισαγωγών με m=5
Εξωτερική Αναζήτηση
B-δένδρα
000601
153176373513524
601706742766773
706176601153513773742373524766275737574434641207001277061736526562017107147
κλειδιά
Ακολουθία εισαγωγών με m=5
Εξωτερική Αναζήτηση
B-δένδρα
000373601
153176275
601706742766773
373513524
706176601153513773742373524766275737574434641207001277061736526562017107147
κλειδιά
Ακολουθία εισαγωγών με m=5
Εξωτερική Αναζήτηση
B-δένδρα
000373601742
153176275
601706737
373513524
742766773
706176601153513773742373524766275737574434641207001277061736526562017107147
κλειδιά
Ακολουθία εισαγωγών με m=5
Εξωτερική Αναζήτηση
B-δένδρα
000207373601742
001153176
373434513524574
207275277
601641706737
742766773
706176601153513773742373524766275737574434641207001277061736526562017107147
κλειδιά
Ακολουθία εισαγωγών με m=5
Εξωτερική Αναζήτηση
B-δένδρα
000524
001061153176
207275277
373434513
524526574
601641706736737
742766773
000207373
524601742
706176601153513773742373524766275737574434641207001277061736526562017107147
κλειδιά
Ακολουθία εισαγωγών με m=5
Εξωτερική Αναζήτηση
B-δένδρα
000524
001017061
107147153176
207275277
373434513
524526562574
601641706736737
742766773
000107207373
524601742
706176601153513773742373524766275737574434641207001277061736526562017107147
κλειδιά
Ακολουθία εισαγωγών με m=5
Εξωτερική Αναζήτηση
Επεκτάσιμος κατακερματισμός
Επιτρέπει την επαύξηση ή τη συρρίκνωση ενός πίνακα κατακερματισμού, διατηρώντας παράλληλα τους χρόνους πρόσβασης στη δομή χαμηλούς.• Χρήσιμη μέθοδος για την αποθήκευση δεδομένων στη δευτερεύουσα μνήμη.• Μπορεί να χρησιμοποιηθεί εναλλακτικά αντί ενός Β-δένδρου.
Δομή 2 επιπέδων:• Κατάλογος (πίνακας από δείκτες) που αποτελεί τη δομή υψηλού επιπέδου.• Ένα σύνολο από σελίδες στις οποίες αποθηκεύονται (δείκτες προς) δεδομένα.
00011011
κατάλογος
Εξωτερική Αναζήτηση
Χρησιμοποιούμε μια συνάρτηση κατακερματισμού για τη μετατροπή των κλειδιών σε ακέραιους.
Για την αναζήτηση ενός στοιχειού, πρώτα υπολογίζουμε την ακέραια τιμή της συνάρτησης κατακερματισμού και στη συνέχεια χρησιμοποιούμε τα πρώτα ψηφία της δυαδικής αναπαράστασης αυτού του ακέραιου για να εντοπίσουμε τη σελίδα που περιέχει το ζητούμενο στοιχείο.
Επεκτάσιμος κατακερματισμός
Αν τα δεδομένα βρίσκονται σε σελίδες, όπου
τότε χρησιμοποιούμε τα πρώτα ψηφία00011011
κατάλογος
πρώτα δυαδικά ψηφία του
Εξωτερική Αναζήτηση111000110001111110110000001001101011101001011111111011111100010011111011101010100111110110010111101111011111101111100100011100110100001010000111000000001010111111000110001111011110101010110101110010000001111001000111001100111
000001010011100
000000001000001111000110001
001000111001100111001101011001111101
010000111010111101010111111
100011100
101001011101010100101010110101110010101111100
110000001110100001
111000110111011110111011111111100010111110110
101110111
τιμές συνάρτησης κατακερματισμού των κλειδιών
Εξωτερική Αναζήτηση111000110001111110110000001001101011101001011111111011111100010011111011101010100111110110010111101111011111101111100100011100110100001010000111000000001010111111000110001111011110101010110101110010000001111001000111001100111
τιμές συνάρτησης κατακερματισμού των κλειδιών
000000001000001111000110001
001000111001100111001101011001111101
010000111010111101010111111011111011
100011100
101001011101010100101010110101110010101111100
110000001110100001
111000110111011110111011111111100010111110110
Αν κάποιες σελίδες δεν έχουν γεμίσει μπορούμε να μειώσουμε το πλήθος των σελίδων διατηρώντας πολλούς δείκτες του καταλόγου σε μια σελίδα
000001010011100101110111
Εξωτερική Αναζήτηση000000001000001111000110001
001000111001100111001101011001111101
010000111010111101010111111011111011
100011100
101001011101010100101010110101110010101111100
110000001110100001
111000110111011110111011111111100010111110110
0000000100100011010001010110011110001001101010111100110111101111
Διπλασιασμός καταλόγου
Μπορεί να εξυπηρετήσει την εισαγωγή περισσότερων στοιχείων
Επεκτάσιμος κατακερματισμός
Εξωτερική Αναζήτηση
Μια σελίδα περιέχει όλα εκείνα τα κλειδιά των οποίων η τιμή κατακερματισμού έχει
ένα συγκεκριμένο πρόθεμα από δυαδικά ψηφία. Το μήκος αυτού του προθέματος
ονομάζεται βάθος της σελίδας. Το μέγιστο βάθος κάθε σελίδας ονομάζεται
βάθος του πίνακα κατακερματισμού.
Ο κατάλογος είναι ένας πίνακας με δείκτες σε σελίδες, όπου το
βάθος του πίνακα κατακερματισμού.
Εύρεση σελίδας που περιέχει το κλειδί
1. Υπολογίζουμε το
2. Ακολουθούμε τον δείκτη
Αν μια σελίδα έχει βάθος , τότε δείκτες σε συνεχόμενες θέσεις του
πίνακα θα δείχνουν στη σελίδα αυτή.
Επεκτάσιμος κατακερματισμός
Εξωτερική Αναζήτηση000000001000001111000110001
001000111001100111001101011001111101
010000111010111101010111111011111011
100011100
101001011101010100101010110101110010101111100
110000001110100001
111000110111011110111011111111100010111110110
0000000100100011010001010110011110001001101010111100110111101111
βάθοςσελίδας = 3
βάθοςσελίδας = 2
βάθος πίνακα κατακερματισμού
Επεκτάσιμος κατακερματισμός
Εξωτερική Αναζήτηση
Εισαγωγές
Μια σελίδα χωράει μόνο m κλειδιά. Αν συμβεί υπερχείλιση μιας σελίδας με
βάθος d, η σελίδα χωρίζεται σε δύο σελίδες:
• Δημιουργία μιας νέας σελίδας, που ονομάζεται φιλική σελίδα (buddy page)
και
• Αύξηση του βάθους των σελίδων σε d+1.
Περιπτώσεις
1. d < D : Αλλαγή απλά μερικών δεικτών στον κατάλογο, ώστε αυτοί να δείχνουν
στη νέα σελίδα.
2. d = D : Διπλασιασμός του μεγέθους του καταλόγου και κατάλληλη
αρχικοποίηση των δεικτών.
Επεκτάσιμος κατακερματισμός
Εξωτερική Αναζήτηση
001101011001111110101001110110000001111000110
Επεκτάσιμος κατακερματισμός
Εισαγωγές
111000110001111110110000001001101011101001011111111011111100010011111011101010100111110110010111101111011111101111100100011100010000111000000001
Εξωτερική Αναζήτηση
001101011001111110
01
101001011110000001111000110111111110
βάθος 1
βάθος 1
Επεκτάσιμος κατακερματισμός
Εισαγωγές
111000110001111110110000001001101011101001011111111011111100010011111011101010100111110110010111101111011111101111100100011100010000111000000001
Εξωτερική Αναζήτηση
001101011001111110011111011
0001 101001011
1010101001011
110000001111000110111100010111111110
βάθος 1
βάθος 2
βάθος 2
Επεκτάσιμος κατακερματισμός
Εισαγωγές
111000110001111110110000001001101011101001011111111011111100010011111011101010100111110110010111101111011111101111100100011100010000111000000001
Εξωτερική Αναζήτηση001101011001111110010111101011111011
101001011101010100
111000110111011111111100010111110110111111110
βάθος 1
βάθος 2
βάθος 3
000001010011100101110111
110000001
βάθος 3
Επεκτάσιμος κατακερματισμός
Εισαγωγές
111000110001111110110000001001101011101001011111111011111100010011111011101010100111110110010111101111011111101111100100011100010000111000000001
Εξωτερική Αναζήτηση000000001001101011001111110
010000111010111101011111011
βάθος 2
βάθος 2000001010011100101110111
100011100101001011101010100101111100
βάθος 2
111000110111011111111100010111110110111111110
βάθος 3
110000001
βάθος 3
111000110001111110110000001001101011101001011111111011111100010011111011101010100111110110010111101111011111101111100100011100010000111000000001
Επεκτάσιμος κατακερματισμός
Εισαγωγές
Εξωτερική Αναζήτηση
Διαγραφές
Αν η διαγραφή κάποιων κλειδιών από μια σελίδα 2i, για κάποιο i, έχει ως αποτέλεσμα αυτή μαζί με την (2i+1) να έχει συνολικά το πολύ m κλειδιά, θα μπορούσε να γίνει συνένωση των 2 σελίδων σε 1.
Γενικά αυτή η λειτουργία είναι ακριβή και δεν είναι συνετό να γίνεται συχνά.
Επεκτάσιμος κατακερματισμός
Εξωτερική Αναζήτηση
Αποδοτικότητα
(+) Είναι αποδοτικός σε χρόνο προσπέλασης : Απαιτείται μόνο μια πρόσβαση στην κύρια μνήμη και μια στην εξωτερική για να επιτευχθεί η προσπέλαση του ζητούμενου κλειδιού (και δεδομένου). (-) Δεν είναι αρκετά αποδοτική σε μνήμη : Πολλές από τις σελίδες μπορεί να είναι σχεδόν άδειες και ο κατάλογος συνήθως περιέχει παραπάνω από έναν δείκτες που δείχνουν στην ίδια σελίδα.
Επεκτάσιμος κατακερματισμός