ΗΥ460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2016 Διδάσκοντες: Βασίλης Χριστοφίδης, Δημήτρης Πλεξουσάκης, Χαρίδημος Κονδυλάκης

Σχετικά έγγραφα
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Κεφ.11: Ευρετήρια και Κατακερματισμός

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα

ΗΥ460 Συστήµατα Διαχείρισης Βάσεων Δεδοµένων Χειµερινό Εξάµηνο 2016 Διδάσκοντες: Βασίλης Χριστοφίδης

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ονοματεπώνυμο: Αριθμός Μητρώου:

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Άσκηση 1 (15 μονάδες) (Επεκτατός Κατακερματισμός)

Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Αποθήκευση Δεδομένων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

Οργάνωση Αρχείων. Διάγραμμα Σχεσιακού σχήματος. Ευρετήρια. Ταξινομημένα ευρετήρια B + δένδρα Ευρετήρια κατακερματισμού

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Το εσωτερικό ενός Σ Β

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση, Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14-1

Κεφάλαιο 14. Δομές Ευρετηρίων για Αρχεία. Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση,

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΑΣΚΗΣΗ ΔΕΥΤΕΡΗ

Επεξεργασία Ερωτήσεων

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

Επεξεργασία Ερωτήσεων

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Επεξεργασία Ερωτήσεων

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών. ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

Αποθήκευση εδομένων. ομή ενός Σ Β. Εισαγωγή Το «εσωτερικό» ενός ΜΕΡΟΣ Β : Η (εσωτερική) αρχιτεκτονική ενός Σ Β είναι σε επίπεδα

Οργάνωση Αρχείων. Ευρετήρια. Ταξινοµηµένα ευρετήρια B + -δένδρα Ευρετήρια κατακερµατισµού. Αρχεία σωρού ιατεταγµένα αρχεία Αρχεία κατακερµατισµού

Επεξεργασία Ερωτήσεων

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

Οι πράξεις της συνένωσης. Μ.Χατζόπουλος 1

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

Κεφάλαιο 14. οµές Ευρετηρίων για Αρχεία. ιαφάνεια 14-1

Βάσεις Δεδομένων. Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων, κατακερματισμός και δομές ευρετηρίων για αρχεία. Φροντιστήριο 7 o

ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

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

Δυναμικός Κατακερματισμός

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ. Επίπεδα Αφαίρεσης Σ Β. Αποθήκευση Εγγραφών - Ευρετήρια. ρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, Επίπεδο Όψεων.

Κατακερματισμός (Hashing)

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Οργάνωση Υπολογιστών (IΙI)

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

Οργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ B.2.M3 Κύρια και Βοηθητική Μνήμη

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης Εργαστηριακές Ασκήσεις

Βάσεις Δεδομένων ΙΙ Ενότητα 5

Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο

Αποθήκευση εδοµένων. Μαγνητικοί ίσκοι. Μαγνητικές ταινίες για. Εισαγωγή

Αλγόριθμοι Ταξινόμησης Μέρος 4

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 6: Δομές ευρετηρίων για αρχεία

9. Φυσική Οργάνωση Αρχείων στο Δίσκο & Ευρετήρια

Ευρετήρια. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια. Ευρετήρια. Ευρετήρια

Ευρετήρια. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια. Ευρετήρια. Ευρετήρια

Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Οργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs

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

Αποθήκευση Δεδομένων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Αποθήκευση και Οργάνωση αρχείων. Βάσεις Δεδομένων Μάθημα 2ο Διδάσκων: Μαρία Χαλκίδη

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

ΗΥ460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2018 Project

Αποθήκευση εδομένων. Μαγνητικοί ίσκοι. Μαγνητικές ταινίες για. Εισαγωγή

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

ΗΥ360 Αρχεία και Βάσεις εδοµένων

Ευρετήρια. Το ευρετήριο αρχείου είναι ένα διατεταγµένο αρχείο µε σταθερού µήκους εγγραφές

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρα 1. Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου. Ευρετήρια.

Οργάνωση Υπολογιστών

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

Ευρετήρια. Ευρετήρια. Βάσεις εδοµένων :ευρετήρια 1

Τεχνολογία μνημών Ημιαγωγικές μνήμες Μνήμες που προσπελαύνονται με διευθύνσεις:

Δομές Δεδομένων και Αλγόριθμοι

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Βελτιστοποίηση επερωτημάτων

Αποθήκευση Δεδομένων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Αποθήκευση Δεδομένων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

Επεξεργασία ερωτημάτων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Advanced Data Indexing

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

ΤΜΗΜΑ ΜΗΥΤΔ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (ΗΥ222) ΔΙΔΑΣΚΩΝ: ΧΡΗΣΤΟΣ Δ. ΑΝΤΩΝΟΠΟΥΛΟΣ Τελική Εξέταση Σεπτεμβρίου 2009, Χρόνος: 2:30

Transcript:

ΗΥ460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Χειμερινό Εξάμηνο 2016 Διδάσκοντες: Βασίλης Χριστοφίδης, Δημήτρης Πλεξουσάκης, Χαρίδημος Κονδυλάκης Λύσεις 1 ης σειράς Ασκήσεων Ημερομηνία Παράδοσης: 14/10/2016 Άσκηση 1 (10 μονάδες) Αποθήκευση στο δίσκο Θεωρείστε έναν δίσκο με ταχύτητα περιστροφής (revolution speed) 7200 rpm. Ο δίσκος αυτός έχει 5 πλατό (platters). Κάθε πλατό μπορεί να αποθηκεύει πληροφορίες και στις δύο επιφάνειες του. Κάθε επιφάνεια περιέχει 500 τροχιές (tracks) και κάθε τροχιά έχει 100 μπλοκ. Κάθε τροχιά έχει 25 τομείς των 2400 bytes ο κάθε ένας. α) Υπολογίστε την μέση καθυστέρηση περιστροφής (rotational latency) Η καθυστέρηση περιστροφής (rotational latency ή rotational delay) είναι ο χρόνος αναμονής για το επιθυμητό block να περιστραφεί, ώστε να φτάσει κάτω από την κεφαλή του δίσκου. Κατά μέσο όρο, πρόκειται για τον μέσο χρόνο αναμονής που απαιτείται για μισή περιστροφή του δίσκου. Γνωρίζουμε ότι το revolution speed είναι 7200rpm, επομένως ο χρόνος που απαιτείται για να εκτελεστούν 7200 περιστροφές είναι 1 λεπτό ή 60 δευτερόλεπτα για μία 60 περιστροφή απατούνται secondsσύμφωνα με την απλή μέθοδο των τριών. 7200 Επομένως έχουμε ότι: rotation latency = 60 s = 0.000833 s = 8.33 7200 10 3 s = 8.33 ms Το παραπάνω rotation latency πρόκειται για τον μεγαλύτερο χρόνο αναμονής περιστροφής. Λαμβάνοντας όμως υπόψη ότι κατά μέσο όρο απαιτείται μόνο μισή περιστροφή υπολογίζουμε και τον μέσο χρόνο αναμονής περιστροφής: average rotation latency = = 4.16 ms 60 7200 0.5 = 0.00833 0.5 = 0.00416 s = 4.16 10 3 s β) Πόσοι κύλινδροι υπάρχουν? Οι κύλινδροι σχηματίζονται πάνω στον δίσκο εικονικά και απαρτίζονται από το σύνολο των «αντίστοιχων» τροχιών πάνω σε κάθε πλατό. Εφόσον οι συνολικές τροχιές που υπάρχουν πάω στη μία επιφάνεια ενός πλατό είναι 500, συμπεραίνουμε ότι ο συνολικός αριθμός από κυλίνδρους θα είναι 500

γ) Πόσα μπλοκ υπάρχουν σε κάθε κύλινδρο? Όπως αναφέρθηκε και παραπάνω οι κύλινδροι σχηματίζονται εικονικά από τις αντίστοιχες τροχιές των πλατό που τα απαρτίζουν. Επομένως για να υπολογιστεί ο συνολικός αριθμός από blocks που θα έχει ένας κύλινδρος αρκεί να βρούμε πόσα μπλοκ υπάρχουν συνολικά σε όλες τις τροχιές που απαρτίζουν τον κύλινδρο: block = 5 πλατό 2 επιφάνειες 100 μπλοκ (η κάθε τροχιά) = 1000 cylinder δ) Ποιος είναι ο μέσος χρόνος που απαιτείται για τη μεταφορά ενός μπλοκ (block transfer time)? Ο χρόνος μεταφοράς (transfer time) είναι ο απαιτούμενος χρόνος για την μεταφορά των δεδομένων μιας τροχιάς, δηλαδή ο χρόνος που χρειάζεται ο δίσκος για να περιστραφεί πάνω στα επιθυμητά δεδομένα (ολόκληρο το track). Αντίστοιχα ο χρόνος μεταφοράς ενός block είναι ο απαιτούμενος χρόνος για την μεταφορά των δεδομένων ενός block, δηλαδή ο χρόνος που απαιτείται για την περιστροφή του δίσκου πάνω στα δεδομένα ενός block. Για τον υπολογισμό του block transfer time πρέπει πρώτα να υπολογίσουμε την ταχύτητα μεταφοράς των δεδομένων Για τον υπολογισμό του transfer rate έχουμε: transfer rate = size of track χρόνος μίας πλήρης περιστροφής του δίσκού Σύμφωνα με την εκφώνηση έχουμε ότι μία τροχιά περιέχει 25 sectors των 2400 bytes. Επομένως: size of track = 25 2400 = 60000 bytes Ο χρόνος για μία πλήρη περιστροφή του δίσκου είναι όπως αναφέρθηκε παραπάνω Χρόνος πλήρηςη περιστροφής = Συνοψίζοντας: 1 = 60 rotation speed 7200 transfer rate = 60000 8.33 s = 0.00833 s = 8.33 ms = 7202.8 bytes ms Για να υπολογιστεί στην συνέχεια το block transfer time έχουμε: size of block block transfer time = transfer rate Γνωρίζουμε ότι μία τροχιά έχει 100 blocks, όπως και 25 sectors, άρα 4 blocks = 1 sector επομένως: Τέλος έχουμε: size of block = 1 4 size of sector = 1 2400 = 600 bytes 4 Block transfer time = 600 = 0.083 ms 7202.8

Άσκηση 2 (10 μονάδες) Μέθοδοι Προσπέλασης Το παρακάτω σχεσιακό σχήμα χρησιμοποιείται για την καταχώρηση δεδομένων που σχετίζονται με την αποπληρωμή δανείων. Repayment(borrower_id, name, address, loanamount, requestdate, repayment_date) Ο δανειολήπτης αναγνωρίζεται από ένα μοναδικό κωδικό (borrower_id) και έχει μόνο μια διεύθυνση (address). Οι δανειολήπτες μπορούν να δανειστούν διαφορετικά (requestdate) ποσά (loanamount) τα οποία όμως θα πρέπει να αποπληρωθούν σε διαφορετικές ημερομηνίες (repayment_date). Ο δανειολήπτης έχει την δυνατότητα να κάνει πολλαπλές πληρωμές την ίδια ημέρα, αλλά δεν μπορεί να κάνει περισσότερες από μια πληρωμές για το ίδιο δάνειο την ίδια ημέρα. Υποθέστε ότι το παρακάτω φορτίο (workload) ερωτημάτων και ενημερώσεων SQL που χρησιμοποιούνται συχνά (δίνοντας πραγματικούς αριθμούς στην θέση της παραμέτρου «?»): i. (2.5 μονάδες) SELECT DISTINCT name, address FROM Repayment WHERE borrower_id =?; ii. (2.5 μονάδες) SELECT * FROM Repayment WHERE borrower_id =? AND repayment_date >?; iii. (2.5 μονάδες) SELECT borrower_id, loanamount FROM Repayment WHERE loanamount BETWEEN? AND?; iv. (2.5 μονάδες) INSERT INTO Request VALUES (?,?,?,?,?,?); Προτείνετε ένα ή παραπάνω ευρετήρια που μπορούν να βελτιστοποιήσουν τον χρόνο εκτέλεσης του παραπάνω φορτίου λαμβάνοντας υπόψη τα παραπάνω χαρακτηριστικά της βάσης δανειοληπτών. Αναφέρεται τα χαρακτηριστικά του ευρετηρίου καθώς και τον τύπο του (σύμφωνα με την τυπολογία που κάναμε στο μάθημα). Εξηγήστε σύντομα τις επιλογές σας (λύσεις χωρίς αιτιολόγηση μηδενίζονται!). Δεδομένων των συνθηκών διαστήματος που χρησιμοποιούν τα ερωτήματα i, ii και iii θα πρέπει να ορίσουμε: Ένα συσταδοποιμένο B-tree ευρετήριο με σύνθετο κλειδί αναζήτησης borrower_id και repayment_date (τα οποία χρησιμοποιούνται και στα δύο ερωτήματα i και ii). Ένα μη συσταδοποιμένο B-tree ευρετήριο με σύνθετο κλειδί αναζήτησης loanamaount και borrower_id (το οποίο χρησιμοποιείται στο iii). Το πρώτο δενδρικό ευρετήριο είναι συσταδοποιημένο γιατί διευκολύνει την ανάκτηση μεγάλου πλήθους εγγραφών (από την συνθήκη διαστήματος στο ii. Η απαλειφή

διπλοεγγραφών στο ι δεν απαιτεί κάποια επιπλέον επεξεργασία γιατί κάθε δανειολήπτης (borrower_id) έχει μοναδικό όνομα (name) και διεύθυνση (address). Κατά συνέπεια το δεύτερο δενδρικό ευρετήριο δεν μπορεί να είναι και αυτό συσταδοποιημένο. Επειδή το πρώτο ευρετήριο ορίζεται στο πρωτεύον κλειδί (borrower_id) η εναλλακτική 1 είναι αποδοτική ενώ το δεύτερο ευρετήριο για οποίο υπάρχουν διπλοεγγραφές πρέπει να υλοποιηθεί με την εναλλακτική 3. Και τα δύο ευρετήρια είναι πυκνά μιας και έχουν καταχωρήσεις για όλες τις τιμές του κλειδιού αναζήτησης. Άσκηση 3 (20 μονάδες) Επεξεργασία Αρχείων Θεωρείστε δύο ταξινομημένα αρχεία F1 και F2 τα οποία περιέχουν το ίδιο πλήθος εγγραφών n. Υποθέστε ότι ο συντελεστής μπλοκ στον δίσκο (blocking factor) είναι Bfr, η πραγματική ταχύτητα μεταφοράς ενός μπλοκ (effective block transfer time) είναι Ebtt (δηλαδή λαμβάνοντας υπόψη πέρα από τα δεδομένα και τα κενά μεταξύ των τομέων) και η διαθέσιμη μνήμη M bytes. Υπάρχει ένα ποσοστό p% κοινών εγγραφών μεταξύ των δύο αρχείων. Σε αυτό το πλαίσιο μας ενδιαφέρει η ένωση των εγγραφών των δύο αρχείων σε ένα καινούργιο αρχείο με όνομα F12 απαλείφοντας τις διπλοεγγραφές. (α) (5 μονάδες) Δώστε έναν αλγόριθμο ένωσης σε μορφή ψευδοκώδικα. Διάβασε στην μνήμη M bytes από το αρχείο F2 (στο δίσκο) 1. Για κάθε εγγραφή που περιέχεται στα Μ bytes που διαβάστηκαν αναζήτησε αν υπάρχει στο F1 a. Αν υπάρχει, αγνόησε την εγγραφή (ώστε να μην γραφτεί στο δίσκο) b. Αν δεν υπάρχει, απομνημόνευσε την εγγραφή για να εισαχθεί στο αρχείο της ένωσης F12 2. Γράψε στο αρχείο της ένωσης M bytes με εγγραφές του αρχείου F2 που δεν περιέχονται στο αρχείο F1 3. Εάν υπάρχουν κι άλλες εγγραφές στο αρχείο F2 (μετά από όσες έχουν ήδη διαβαστεί) επανέλαβε το βήμα 1 4. Όταν ολοκληρωθεί η ανάγνωση όλου του αρχείου F2, τότε, μεταφορά των δεδομένων του αρχείου F1 στο αρχείο της ένωσης F12 a. Μετέφερε στην μνήμη M ΜΒ από το αρχείο F1 b. Γράψε στο αρχείο F12 τα M MB της μνήμης c. Όσο υπάρχουν ακόμα δεδομένα στο F1 (μέχρι εκεί που έχει γίνει ανάγνωση) επανέλαβε το βήμα 5.a Περιγραφικά: όλα τα δεδομένα του αρχείου F2 μεταφέρονται σταδιακά (ανά M bytes) στην μνήμη και ελέγχονται με τα αντίστοιχα του F1 αν είναι κοινά. Ανάλογα με το αποτέλεσμα γράφονται στο κοινό αρχείο F12 (δεν είναι κοινά). Στην συνέχεια όλο το αρχείο F1 διαβάζεται στην μνήμη και στην συνέχεια στο κοινό αρχείο F12. Μια κρίσιμη για τις επιδώσεις του αλγορίθμου παράμετρος είναι το πώς υλοποιείται η αναζήτηση των εγγραφών του αρχείου F1 στο αρχείο F2. Δεδομένης της ταξινόμησης των αρχείων η βέλτιστη μέθοδος είναι η δυαδική αναζήτηση.

Ψευδοκώδικας: Open_File(F2, read); Open_File(F1,read); Open_File(F12, write); while(f1!= EOF){ Get_Next(x records of F2); for(x records in F2){ if! F1.contains(record) { Keep(record); } } for(all records kept){ Copy_Record(record, F12); } } for(all records in F1){ Copy_Record(record, F12); } (β) (10 μονάδες) Κάντε μια αναλυτική εκτίμηση του κόστους του αλγορίθμου που προτείνετε Για τη μεταφορά όλων των δεδομένων του F2 στη μνήμη απαιτεί χρόνο: όσα blocks πρέπει να μεταφερθούν (σύμφωνα με το σύνολο των εγγραφών) επί τον effective transfer time: F2 Memory = ( n Bfr ) Ebtt Αντίστοιχα ο χρόνος που χρειάζεται το αρχείο F1 για να μεταφερθεί στο αρχείο F12 μοιράζεται στον χρόνο που απαιτείται για να μεταφερθεί στη μνήμη (γίνεται σταδιακά ανά M bytes): F1 Memory = ( n Bfr ) Ebtt και στη συνέχεια στο κοινό αρχείο F12: Memory(F1) F12 = ( n Bfr ) Ebtt Όσον αφορά την μεταφορά των δεδομένων του αρχείου F2 στο δίσκο (μετά από τον έλεγχο με το αρχείο F1 όπου έχουν μειωθεί κατά ένα ποσοστό {1-p} <- μη κοινά δεδομένα) έχουμε χρόνο: Memory(F2) F12 = (1 p) ( n Bfr ) Ebtt Τέλος έχουμε τη καθυστέρηση που δημιουργείται με την διαδικασία της σύγκρισης των δεδομένων του αρχείου F2 (αυτά που έχουν μεταφερθεί στην μνήμη) με τα δεδομένα του αρχείου F1. Σε αυτή συμπεριλαμβάνεται και ο χρόνος πρόσβασης στο αρχείο F1 για τις επικείμενες συγκρίσεις (σε κοινά και μη στοιχεία) καθώς και η καθυστέρηση αναζήτησης όπου στην περίπτωση ταξινομημένου αρχείου έχει την πολυπλοκότητα που εμφανίζει η δυαδική αναζήτηση log 2 n. Λαμβάνοντας υπόψη μας τα παραπάνω έχουμε τις ακόλουθες δύο κατηγορίες:

i. Αναζητήσεις όπου τα records είναι κοινά στα αρχεία F2 και F1 F1 F2 (κοινά στοιχεία) = p ( n ) Ebtt log Bfr 2 n ii. Αναζητήσεις όπου τα records δεν είναι κοινά μεταξύ των F2 και F1 F1 F2 (μη κοινά στοιχεία) = (1 p) ( n ) Ebtt log Bfr 2 n Αθροίζοντας όλα τα κόστη μαζί βρίσκουμε το συνολικό χρόνο εκτέλεσης: F_union = F2 Memory F1 F2 (κοινά στοιχεία) F1 F2 (μη κοινά στοιχεία) Memory(F2) F12 F1 Memory Memory(F1) F12 (γ) (5 μονάδες) Μπορούμε να αυξήσουμε την ταχύτητα επεξεργασίας των αρχείων εάν χρησιμοποιήσουμε δυο οδηγούς δίσκων (disk drives); Εξηγήστε συνοπτικά. Μπορούμε να υπερκαλύψουμε τον χρόνο εγγραφής με της ανάγνωσης και μπορούμε να αυξήσουμε την ταχύτητα της λειτουργίας αλλά δεν μπορούμε να αποφύγουμε τις συγκρίσεις μεταξύ των δυο αρχείων. Γι αυτόν τον λόγο δεν θα έχουμε μεγάλο κέρδος. Άσκηση 4 (20 μονάδες) Αρχεία Κατακερματισμού Έχουμε έναν δίσκο με τα παρακάτω χαρακτηριστικά: Μέσος Χρόνος Τυχαίας Προσπέλασης (Seek time) 14,3 ms Μέση Καθυστέρηση Περιστροφής (Rotational Latency) 10 ms Χρόνος Μεταφοράς Μπλοκ (Block Transfer Time) 0,8 ms Μας ενδιαφέρει η αποθήκευση σε ένα στατικό πίνακα κατακερματισμού όπου 2 εγγραφές χωρούν σε ένα κάδο (bucket factor Bkfr) και η συνάρτηση κατακερματισμού είναι HF(key)= mod(key, 3). Ως συνήθως ένας κάδος έχει την χωρητικότητα ενός μπλοκ στον δίσκο. α) (5 μονάδες) Δείξτε τα περιεχόμενα του πίνακα κατακερματισμού μετά την εισαγωγή των ακόλουθων κλειδιών: (27, 5, 18, 30, 10, 32, 38). Στην απάντησή σας χρησιμοποιήστε ξεχωριστούς κάδους υπερχείλισης (separate chaining). Οι πίνακες κατακερματισμού, μπορούν να χρησιμοποιηθούν ως ευρετήρια, καθώς κάθε κλειδί δίνεται σαν παράμετρο σε μία hash function η οποία στην συνέχεια παράγει ένα αντιπροσωπευτικό αριθμό που αντιστοιχεί την θέση του index (πίνακα) όπου εισάγεται. Στην δική μας περίπτωση γνωρίζουμε ότι η hash function είναι η ΗF(key) = mod (key, 3) Επίσης γνωρίζουμε ότι κάθε bucket του πίνακα κατακερματισμού, χωράει 2 εγγραφές, λαμβάνοντας υπόψιν όλα τα παραπάνω έχουμε τον ακόλουθο πίνακα:

index Key Record 1 Key Record 2 Overflow area 0 - - n/a 1 - - n/a 2 - - n/a Είσοδος: {27, 5, 18, 30, 10, 32, 38} HF(27) = mod(27, 3) = 0 index Key Record 1 Key Record 2 Overflow area 0 27 - n/a 1 - - n/a 2 - - n/a Είσοδος: {27, 5, 18, 30, 10, 32, 38} HF(5) = mod(5, 3) = 2 index Key Record 1 Key Record 2 Overflow area 0 27 - n/a 1 - - n/a 2 5 - n/a Είσοδος: {27, 5, 18, 30, 10, 32, 38} HF(18) = mod(18, 3) = 0 index Key Record 1 Key Record 2 Overflow area 0 27 18 n/a 1 - - n/a 2 5 - n/a Είσοδος: {27, 5, 18, 30, 10, 32, 38} HF(30) = mod(30, 3) = 0 index Key Record 1 Key Record 2 Overflow area 0 27 18 30 1 - - n/a 2 5 - n/a Είσοδος: {27, 5, 18, 30, 10, 32, 38} HF(10) = mod(10, 3) = 1 index Key Record 1 Key Record 2 Overflow area 0 27 18 30 1 10 - n/a 2 5 - n/a Είσοδος: {27, 5, 18, 30, 10, 32, 38} HF(32) = mod(32, 3) = 2 index Key Record 1 Key Record 2 Overflow area 0 27 18 30 1 10 - n/a 2 5 32 n/a

Είσοδος: {27, 5, 18, 30, 10, 32, 38} HF(38) = mod(38, 3) = 2 index Key Record 1 Key Record 2 Overflow area 0 27 18 30 1 10 - n/a 2 5 32 38 β) (2.5 μονάδες) Πόσο κοστίζει σε ms η προσπέλαση της εγγραφής με κλειδί 30; Παρατηρούμε ότι η εγγραφή με κλειδί 30 βρίσκεται στην περιοχή υπερχείλισης της πρώτης θέσης του κατακερματισμένου πίνακα. Επομένως απαιτούνται δύο προσβάσεις στον δίσκο. Μία για την προσπέλαση στο αντίστοιχο bucket του πίνακα κατακερματισμού, και άλλη μία για να ακολουθήσουμε την σύνδεση στην περιοχή υπερχείλισης. Επομένως έχουμε ότι ο χρόνος προσπέλασης της εγγραφής με κλειδί 30 είναι: T 30acceess = T prime data access + T overflow area access = (seek time + rotational latency + block transfer time) + (seek time + rotational latency + block tranfer time) = (14.3 + 10 + 0.8) + (14.3 + 10 + 0.8) = 50.2 ms γ) (2.5 μονάδες) Πόσο κοστίζει σε ms η προσπέλαση της εγγραφής με κλειδί 32; Η προσπέλαση στην εγγραφή με κλειδί 32 είναι πιο απλή σε σχέση με την το ερώτημα β, καθώς η εγγραφή βρίσκεται στην δεύτερη θέση του bucket του πίνακα κατακερματισμού και όχι στην περιοχή υπερχείλισης (για να απαιτούνται επιπλέον προσπελάσεις). Πιο αναλυτικά έχουμε: T 30acceess = T prime data access = (seek time + rotational latency + block transfer time) = (14.3 + 10 + 0.8) = 25.1 ms δ) (5 μονάδες) Ποιος είναι ο μέσος αριθμός Ε/Ε μιας αποτυχημένης αναζήτησης? Για να υπολογίσουμε τον μέσο αριθμό E/E για μία αποτυχημένη αναζήτηση στον πίνακα κατακερματισμού, αρκεί να μελετήσουμε το μέγεθος του και τον τρόπο που είναι οργανωμένα τα δεδομένα. Πιο συγκεκριμένα ο πίνακας παρατηρούμε ότι ο πίνακας έχει τρία buckets (ως κύρια στοιχεία), εκ των οποίων τα δύο έχουν ξεχωριστές περιοχές υπερχείλισης. Επομένως για κάθε ένα από τα δύο bucket που έχουν και περιοχή υπερχείλισης απαιτούνται δύο προσβάσεις, δηλαδή συνολικά τέσσερις προσβάσεις. Τέλος έχουμε το μεσαίο bucket (χωρίς περιοχή υπερχείλισης) το οποίο απαιτεί μονάχα μία πρόσβαση. Συνολικά λοιπόν για όλα τα buckets του πίνακα απαιτούνται πέντε προσβάσεις. Υπολογίζοντας τον μέσο όρο έχουμε: Μέσος αριθμός προσβάσεων σε αποτυχημένη αναζήτηση = 5 3 = 1.67

Άσκηση 5 (20 μονάδες) Δενδρικά Ευρετήρια Έστω ότι έχουμε έναν πίνακα Ρ με 200000 εγγραφές τραπεζικών λογαριασμών. Το μέγεθος κάθε εγγραφής της R είναι 400 bytes και το μέγεθος ενός μπλοκ είναι 2400 bytes. Σε αντίθεση με τις συνήθης υποθέσεις που κάνουμε για τα B+ δεντρικά ευρετήρια οι κόμβοι που περιέχουν τα δεδομένα δεν είναι συνδεδεμένοι μεταξύ τους. Έκτος αυτής της παρέκκλισης υποθέτουμε ότι δουλεύουμε με ένα τυπικό B+ δεντρικά ευρετήριο όπου το κλειδί κάθε εγγραφής έχει μέγεθος 8 bytes και ο δείκτης 4 bytes. Δίνεται ότι s(average seek time)=15ms, r(averαage rotational latency time)=10ms, btt(block transfer time)=0.1ms και ebt(effective block transfer time in sequential reading)=0.84ms. α) (10 μονάδες) Βρείτε τον απαιτούμενο χρόνο για την εύρεση του μέσου υπόλοιπου του λογαριασμού και υπολογίστε τα T F, και T N (όπου T F ο χρόνος ανάκτησης μιας εγγραφής και T N ο χρόνος εύρεσης της επόμενης εγγραφής). Υποθέστε ότι κατά μέσο όρο οι κόμβοι είναι 70% γεμάτοι (ln2= 0.7 προσεγγιστικά). Δικαιολογήστε την απάντησή σας. O χρόνος που απαιτείται για την εύρεση του μέσου υπόλοιπου του λογαριασμού με ένα B+ tree στο οποίο οι κόμβοι που περιέχουν τα δεδομένα δεν είναι συνδεδεμένοι μεταξύ τους υπολογίζεται ως εξής: Blocking Factor Bkfr = 2400/400=6 Fun-Out fo= (2400/12)*0,7=140 Ο αριθμός από Data nodes είναι bk=n/(2* l *0,7) όπου το n είναι ο αριθμός των δεδομένων και l είναι το επίπεδο του δέντρου. Ο αριθμός των disk accesses που χρειάζονται για την εύρεση του μέσου υπόλοιπου του λογαριασμού είναι κατά προσέγγιση 2* bk. Αυτό όμως δεν είναι μια σωστή εκτίμηση γιατί όταν έχουμε πρόσβαση σε έναν κόμβο ευρετηρίου στον δίσκο αυτός θα μείνει στην κύρια μνήμη από το operating system για όσο το χρειαζόμαστε. Επίσης κάθε κόμβος ευρετηρίου έχει έναν fo αριθμό από κόμβους που δείχνουν σε δεδομένα και έτσι με κάθε κόμβο ευρετηρίου μπορούμε να έχουμε πρόσβαση σε fo κόμβους δεδομένων. Με όλα τα παραπάνω καταλήγουμε ότι χρειαζόμαστε bk/fo +bk disk accesses. O υπολογισμός του μέσου υπόλοιπου του λογαριασμού απαιτεί εξαντλητική ανάγνωση του αρχείου άρα: Τ x =(bk / fo) * (s + r + btt) + bk * (s + r + btt) #of data nodes(bk)=200000/ (ln2 * Bkr)= 200000 / (0,7 * 6)= 47,619 (κατά μέσο όρο κάθε κόμβος δεδομένων είναι κατά 70% γεμάτος, για αυτόν τον λόγο διαιρούμε τον αριθμό των δεδομένων δια 0,7). Άρα ο χρόνος που απαιτείται για την εύρεση του μέσου υπόλοιπου του λογαριασμού είναι: Τ x =(47,619 / 140)* ( 15+10+0,1) + 47,619 * ( 15+10+0,1)= 0,34 * 25,1+ 47,619* 25,1=1203,7774 msec= 1,203 sec= 20 minutes T F = s + r + btt + s + r + btt = 2s + 2r + 2btt= 30+ 20+ 0,2= 50,2 msec

T N = 1/(Bkfr * ln2) * [(s +r + btt) + 1/fo * (s +r + btt)] = 25.1/4.2 * (1+1/140)= 6 msec (με πιθανότητα 1/(Bkfr * ln2) το επόμενο δεδομένο δεν θα είναι στο ίδιο data bucket με αυτό που έχουμε ήδη διαβάσει και με πιθανότητα 1/fo θα χρειαστούμε να έχουμε πρόσβαση σε ένα άλλο index node ) β) (10 μονάδες) Υποθέστε τώρα ότι έχουμε ένα σειριακό (ταξινομημένο) αρχείο για τις παραπάνω εγγραφές. Βρείτε τον απαιτούμενο χρόνο για την εύρεση του μέσου υπόλοιπου του λογαριασμού και υπολογίστε τα T F και T N. Δικαιολογήστε την απάντησή σας. O χρόνος που απαιτείται για την εύρεση του μέσου υπόλοιπου του λογαριασμού με ένα σειριακό (ταξινομημένο) αρχείο υπολογίζεται ως εξής: #of data blocks b= 200.000 / Bkfr = 200.000/6 = 33.334 T F = b/2 * ebt = 33.334 / 2* 0,84 = 14.000 msec = 14 sec T N = T F = 14 sec T x = s+r+b* ebt= 15 + 10 + 33.334 * 0,84= 28.025,56 msec = 28 sec Άσκηση 6 (20 μονάδες) Διαχείριση Ενδιάμεσης Μνήμης Στην πράξη οι περισσότεροι διαχειριστές απομονοτών (buffer managers) χρησιμοποιούν παραλλαγές των στρατηγικών αντικατάστασης σελίδων (replacement strategies) που κάναμε στο μάθημα : LRU, MRU και CLOCK. Για να προσομοιώσουμε αυτές τις στρατηγικές, θεωρούμε ένα σταθερό αριθμό από σελίδες ενδιάμεσης μνήμης (buffer pages) και μια ακολουθία μπλοκ στο δίσκο που πρέπει να διαβαστούν. Στο παρακάτω παράδειγμα, έχουμε σαν είσοδο 4 σελίδες (B1-B4) και 6 διαφορετικά μπλοκ (a-f). Αρχικά, οι σελίδες ενδιάμεσης μνήμης είναι κενές. Κατά την σειριακή ανάγνωση των μπλοκ αγνοούμε τις τροποποιήσεις των περιεχομένων των σελίδων στην μνήμη και συνεπώς δεν μας ενδιαφέρει ούτε η γραφή τους πίσω στο δίσκο ούτε η σημείωσή τους στον διαχειριστή (pinning). Ο ακόλουθος πίνακας δείχνει πώς η κάθε στρατηγική αντικατάστασης σελίδων χειρίζεται τις αιτήσεις ανάγνωσης στην είσοδο: Input a b c d e f e d b a LRU B1 B2 B3 B4 B1-α B2-b B3-c B2-f MRU B1 B2 B3 B4 B4-d B4-e B4-f B4-e Clock B1 B2 B3 B4 B1-α B2-b B3-c B4-d Μέχρι να γεμίσουν και οι τέσσερεις σελίδες ενδιάμεσης μνήμης οι τρείς στρατηγικές συμπεριφέρονται παρόμοια. Για την ανάγνωση του πέμπτου μπλοκ οι στρατηγικές μπορεί να διαφοροποιούνται ως προς την σελίδα της οποίας τα περιεχόμενα θα αντικατασταθούν. Σημειώνουμε με πρόθεμα τον χαρακτήρα «-» τα παλαιά περιεχόμενα μιας σελίδας που επιλέχτηκε προς αντικατάσταση. Μας ενδιαφέρει να εξετάσουμε την συμπεριφορά των τριών στρατηγικών για 5 σελίδες (B1-B5) και 7 διαφορετικά μπλοκ (ag). Συμπληρώστε τον ακόλουθο πίνακα χρησιμοποιώντας τον παραπάνω συμβολισμό.

LRU Pos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Input A b c D a e f g a g f e a d c b a b c b LRU Β1 Β2 Β3 Β4 Β5 Β2- b B3- c Pos Σχόλια 1 Σελίδα B1 άδεια 2 Σελίδα B2 άδεια 3 Σελίδα B3 άδεια 4 Σελίδα B4 άδεια 5 H a υπάρχει στην λίστα και η B1 πηγαίνει στην ουρά της λίστας (συχνότερα 6 Σελίδα B5 άδεια 7 Η λιγότερο χρησιμοποιούμενη σελίδα είναι η Β2 οπότε αντικαθιστάται η προηγούμενη τιμή της (b) με f 8 Η λιγότερο χρησιμοποιούμενη σελίδα είναι η Β3 οπότε αντικαθιστάται η προηγούμενη τιμή της (c) με g 9 H a υπάρχει στην λίστα και η B1 πηγαίνει στην ουρά της λίστας (συχνότερα 10 H g υπάρχει στην λίστα και η B3 πηγαίνει στην ουρά της λίστας (συχνότερα 11 H f υπάρχει στην λίστα και η B2 πηγαίνει στην ουρά της λίστας (συχνότερα 12 H e υπάρχει στην λίστα και η B5 πηγαίνει στην ουρά της λίστας (συχνότερα 13 H a υπάρχει στην λίστα και η B1 πηγαίνει στην ουρά της λίστας (συχνότερα 14 H d υπάρχει στην λίστα και η B4 πηγαίνει στην ουρά της λίστας (συχνότερα 15 Η λιγότερο χρησιμοποιούμενη σελίδα είναι η Β3 οπότε αντικαθιστάται η προηγούμενη τιμή της (g) με c 16 Η λιγότερο χρησιμοποιούμενη σελίδα είναι η Β2 οπότε αντικαθιστάται η προηγούμενη τιμή της (f) με b 17 H a υπάρχει στην λίστα και η B1 πηγαίνει στην ουρά της λίστας (συχνότερα 18 H b υπάρχει στην λίστα και η B2 πηγαίνει στην ουρά της λίστας (συχνότερα 19 H c υπάρχει στην λίστα και η B3 πηγαίνει στην ουρά της λίστας (συχνότερα 20 H b υπάρχει στην λίστα και η B2 πηγαίνει στην ουρά της λίστας (συχνότερα B3- g B2- f

MRU Pos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Input A b c D a e f g a g f e a d c b a b c b MRU B1 B2 B3 B4 B5 B5- e B5- f B5- g B5- f Pos Σχόλια 1 Σελίδα B1 άδεια 2 Σελίδα B2 άδεια 3 Σελίδα B3 άδεια 4 Σελίδα B4 άδεια 5 H a υπάρχει στην λίστα και η B1 πηγαίνει στην ουρά της λίστας (συχνότερα 6 Σελίδα B5 άδεια 7 Η συχνότερα χρησιμοποιούμενη σελίδα είναι η Β5 οπότε αντικαθιστάται η προηγούμενη τιμή της (e) με f 8 Η συχνότερα χρησιμοποιούμενη σελίδα είναι η Β5 οπότε αντικαθιστάται η προηγούμενη τιμή της (f) με g 9 H a υπάρχει στην λίστα και η B1 πηγαίνει στην ουρά της λίστας (συχνότερα 10 H g υπάρχει στην λίστα και η B5 πηγαίνει στην ουρά της λίστας (συχνότερα 11 Η συχνότερα χρησιμοποιούμενη σελίδα είναι η Β5 οπότε αντικαθιστάται η προηγούμενη τιμή της (g) με f 12 Η συχνότερα χρησιμοποιούμενη σελίδα είναι η Β5 οπότε αντικαθιστάται η προηγούμενη τιμή της (f) με e 13 H a υπάρχει στην λίστα και η B1 πηγαίνει στην ουρά της λίστας (συχνότερα 14 H d υπάρχει στην λίστα και η B4 πηγαίνει στην ουρά της λίστας (συχνότερα 15 H c υπάρχει στην λίστα και η B3 πηγαίνει στην ουρά της λίστας (συχνότερα 16 H b υπάρχει στην λίστα και η B2 πηγαίνει στην ουρά της λίστας (συχνότερα 17 H a υπάρχει στην λίστα και η B1 πηγαίνει στην ουρά της λίστας (συχνότερα 18 H b υπάρχει στην λίστα και η B2 πηγαίνει στην ουρά της λίστας (συχνότερα 19 H c υπάρχει στην λίστα και η B3 πηγαίνει στην ουρά της λίστας (συχνότερα 20 H b υπάρχει στην λίστα και η B2 πηγαίνει στην ουρά της λίστας (συχνότερα

Clock Pos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Input A b c D a e f g a g f e a d c b A B c b Clock B1 B2 B3 B4 B5 Β1- a Β2- b B3- c B4- d B5- e