ΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ Στέφανος Γκρίτζαλης Αναπληρωτής Καθηγητής Κωνσταντίνος Καραφασούλης ιδάσκων (Π 407) Μαγνητικοί ίσκοι Τα δεδοµένα αποθηκεύονται στο µαγνητικό φιλµ του δίσκου Ο δίσκος περιστρέφεται µε σταθερή ταχύτητα (rpm) Τα δεδοµένα εγγράφονται / διαβάζονται από τη µαγνητική κεφαλή 2 1
Μαγνητικοί ίσκοι Οι µαγνητικοί δίσκοι οργανώνονται σε κυλίνδρους Ο κάθε κύλινδρος περιέχει τόσες τροχιές όσες και η κεφαλές στο κατακόρυφο άξονα Οι τροχιές διαιρούνται σε τοµείς,, συνήθως 8-328 ανά περιφέρεια 3 Σκληροί ίσκοι Παράµετροι δίσκου για τη δισκέτα IBM PC(των 360KB) και για το σκληρό δίσκο Western Digital WD 18300 4 2
Σκληροί ίσκοι Φυσική γεωµετρία δίσκου µε 2 ζώνες Πιθανή εικονική γεωµετρία για τον ίδιο δίσκο 5 Πιθανή εικονική γεωµετρία για τον ίδιο δίσκο ιαµόρφωση ίσκου (1) Ένας Τοµέας ίσκου Πριν χρησιµοποιηθεί ο δίσκος πρέπει να διαµορφωθεί σε χαµηλό επίπεδο (low level format) Η διαµόρφωση δηµιουργεί µια σειρά από οµόκεντρες τροχιές Η κάθε µια περιέχει συγκεκριµένο αριθµό από τοµείς που χωρίζονται µε κενό χώρο Το προοίµιο (preamble) περιέχει µια συγκεκριµένη ακολουθία από bit για τη διάκριση της αρχής του τοµέα καθώς και τον αριθµό του κυλίνδρου & τοµέα Το µέγεθος του τµήµατος δεδοµένων καθορίζεται από το πρόγραµµα διαµόρφωσης (συνήθως 512 byte) Το πεδίο EEC (Error Correcting Code) περιέχει πληροφορίες για την ανάκαµψη από σφάλµατα 6 3
ιαµόρφωση ίσκου (2) Σχεδιάγραµµατης στρέβλωσης του κυλίνδρου Ηθέση του τοµέα 0 σε κάθε τροχιά είναι µετατοπισµένη ώστε να επιτρέπει στο δίσκο να διαβάζει πολλές τροχιές µε µια συνεχόµενη ενέργεια Σύγχυση µε τη χωρητικότητα των δίσκων Οι κατασκευαστές αναφέρουν τη χωρητικότητα πριν τη διαµόρφωση και µάλιστα χρησιµοποιώντας δεκαδικές δυνάµεις (1GB = 2x10 9 byte) To Λ.Σ. Χρησιµοποιεί δυαδική µέτρηση Πρέπει να αφαιρεθεί ο χώρος του ECC, προοιµίου & κενού χώρου 7 ιαµόρφωση ίσκου (3) Η διαµόρφωση επηρεάζει την απόδοση Π.χ. ίσκος µε» ταχύτητα 10000rpm» 300 τοµείς ανά τροχιά (512 byte o καθένας) Έχει µέγιστο ρυθµό µεταγωγής δεδοµένων 300x512x10000/60 bytes/s = 25600000 byte/s ή 24,4 MB/s O δίσκος δε µπορεί αν διαβάσει δεδοµένα µε µεγαλύτερα ταχύτητα ακόµη και αν υπάρχει διασύνδεση SCSI (80MB/s) 8 4
ιαµόρφωση ίσκου (4) (a) Χωρίς παρεµβολή (b) Απλή παρεµβολή (c) ιπλή παρεµβολή Η ανάγνωση µε µεγάλο ρυθµό απαιτεί προσωρινή αποθήκευση στον ελεγκτή Αν η προσωρινή µνήµη είναι ενός τοµέα, τότε στη διάρκεια υπολογισµού διόρθωσης σφαλµάτων και µεταφοράς στη κύρια µνήµη ο δίσκος έχει περιστραφεί (αναµονή µιας περιστροφής) Επίλυση του προβλήµατος µέσω παρεµβολής 9 ιαµόρφωση ίσκου (5) ιαµόρφωση υψηλού επιπέδου Εφαρµόζεται από το λογισµικό σε κάθε διαµέρισµα (partition) ξεχωριστά ηµιουργεί ένα µπλόκ εκκίνησης Τη διαχειριστική µονάδα ελεύθερου χώρου (λίστα ή χάρτης δυαδικών ψηφίων) Το βασικό κατάλογο Το Σύστηµα αρχείων (αρχικά άδειο) 10 5
Χειρισµός Σφαλµάτων (a) Τροχιά δίσκου µε ελαττωµατικό τοµέα (b) Αντικατάσταση ελαττωµατικού τοµέα µε εφεδρικό (c) Ολίσθηση τοµέων για να τεθεί εκτός σειράς ο ελαττωµατικός 11 Συστήµατα Αρχείων 6.1 Αρχεία 6.2 Κατάλογοι 6.3 Υλοποίηση συστήµατος αρχείων 6.4 Παραδείγµατα Συστήµατος Αρχείων 6
Μακρόχρονη αποθήκευση πληροφοριών 1. Αποθήκευση µεγάλου όγκου δεδοµένων 2. Οι αποθηκευµένες πληροφορίες πρέπει να διατηρούνται και µετά το τερµατισµό των διεργασιών που τις χρησιµοποιούν 3. Πολλαπλές διεργασίες πρέπει να µπορούν να έχουν πρόσβαση στις αποθηκευµένες πληροφορίες ταυτόχρονα. 13 Αρχεία Τα αρχεία είναι ένας µηχανισµός αφαίρεσης. Παρέχουν ένα τρόπο για να αποθηκεύονται πληροφορίες στο δίσκο και να διαβάζονται από εκεί αργότερα µε τέτοιο τρόπο που ο χρήστης να µην ασχολείται µε τις λεπτοµέρειες του τρόπου αποθήκευσης 14 7
Ονοµασία Αρχείων Συνήθεις προεκτάσεις αρχείων Σε µερικά συστήµατα (π.χ. Unix) είναι απλές συµβάσεις: εν υπάρχουν περιορισµοί από το λειτουργικό σύστηµα, ενώ σε άλλα (π.χ. Windows) το λειτουργικό χειρίζεται µε συγκεκριµένο τρόπο τα αρχεία ανάλογα µε 15 την προέκταση τους οµή των αρχείων Τρία είδη αρχείων: Αλληλουχία από byte Ακολουθία εγγραφών (records) ένδρο 16 8
Τύποι Αρχείων (1) Κανονικά Αρχεία (regular( files) Κατάλογοι (Directories)( Ειδικά αρχεία χαρακτήρων (character special files) Μοντελοποίηση συσκευών εισόδου-εξόδου, εξόδου, π.χ. Τερµατικά, εκτυπωτές, κ.α Ειδικά αρχεία µπλοκ (block special files) Μοντελοποίηση δίσκων 17 Τύποι αρχείων (a) Εκτελέσιµο αρχείο (b) Αρχειοθήκη (archive) 18 9
Πρόσβαση στα αρχεία Σειριακή Πρόσβαση Ανάγνωση όλων των bytes/records από την αρχή του αρχείου Αδυναµία µεταφοράς σε οποιοδήποτε σηµείο, αλλά δυνατότητα επαναφοράς στην αρχή Εύχρηστα στην εποχή των µαγνητικών ταινιών Τυχαία Προσπέλαση Ανάγνωση bytes/records µε οποιαδήποτε σειρά Απαραίτητα σε συστήµατα βάσεων δεδοµένων (π.χ. Αεροπορικής εταιρείας) 19 Ιδιότητες αρχείων Μερικές ιδιότητες αρχείων 20 10
Ενέργειες σε αρχεία 1. Create ( ηµιουργία) 2. Delete ( ιαγραφή) 3. Open (Άνοιγµα) 4. Close (Κλείσιµο) 5. Read (Ανάγνωση) 6. Write (Εγγραφή) 7. Append (Προσάρτηση) 8. Seek (Αναζήτηση) 9. Get attributes (Λήψη Ιδιοτήτων) 10.Set Attributes (Καθορισµός Ιδιοτήτων) 11.Rename (Μετονοµασία) 21 Κατάλογοι Συστήµατα καταλόγων ενός επιπέδου Σύστηµα καταλόγων ενός επιπέδου Περιέχει 4 αρχεία Ανήκουν σε 3 διαφορετικούς ιδιοκτήτες A, B και C Απλή και εύκολη σχεδίαση Γρήγορη αναζήτηση Αδυναµία χρησιµοποίησης ίδιων ονοµάτων από διαφορετικούς χρήστες 22 11
Σύστηµα καταλόγων 2 επιπέδων Τα γράµµατα δηλώνουν τους ιδιοκτήτες των καταλόγων και των αρχείων Αδυναµία προσπέλασης αρχεία που ανήκουν σε άλλους χρήστες Τι γίνεται µε τα αρχεία του συστήµατος που είναι σε άλλους καταλόγους; Προβλήµατα µε τους χρήστες που έχουν πολλά αρχεία 23 Ιεραρχικά συστήµατα καταλόγων Ένα ιεραρχικό σύστηµα καταλόγων 24 12
Ονόµατα ιαδροµών Ένα δένδρο καταλόγων στο Unix 25 Ενέργειες σε καταλόγους 1. Create ( ηµιουργία) 2. Delete ( ιαγραφή) 3. Opendir (Άνοιγµα Καταλόγου) Για να δούµε όλα τα αρχεία που έχει ένας κατάλογος, πρέπει πρώτα να ανοίξει 4. Closedir (Κλείσιµο Καταλόγου) Όταν τελειώσει η ανάγνωση του καταλόγου αυτός πρέπει να κλείσει για να απελευθερωθεί χώρος στους εσωτερικούς πίνακες 26 13
Ενέργειες σε καταλόγους 5. Readdir (Ανάγνωση Καταλόγου) Επιστρέφει την επόµενη καταχώρηση από ένα κατάλογο 6. Rename (Μετονοµασία) 7. Link (Σύνδεση) Επιτρέπει ένα αρχείο να εµφανίζεται σε περισσότερους από έναν καταλόγους 8. Unlink (Αποσύνδεση) 27 Υλοποίηση συστήµατος αρχείων (1) Σύστηµα αρχείων Ο τοµέας 0 ονοµάζεται MBR (Master Boot Record)» Χρησιµοποιείται κατά την εκκίνηση.» Στο τέλος του MBR είναι το partition table Μπλοκ εκκίνησης: 1o µπλοκ του ενεργού partition Το πρόγραµµα που βρίσκεται στο µπλοκ εκκίνησης φορτώνει το Λ.Σ. αυτού του διαµερίσµατος (partition) 28 14
Υλοποίηση συστήµατος αρχείων (2) Boot Block (µπλόκ( εκκίνησης) Το πρόγραµµα που βρίσκεται στο µπλοκ εκκίνησης φορτώνει το Λ.Σ. αυτού του διαµερίσµατος (partition) Super Block (Υπερµπλόκ) Περιέχει πληροφορίες για τον τύπο του συστήµατος αρχείων, πλήθος των µπλόκ Free space Management Πληροφορίες για τα ελεύθερα µπλοκ i-nodes Πίνακας δοµών δεδοµένων µε πληροφορίες για όλα τα αρχεία του διαµερίσµατος Βασικό Κατάλογος (root directory) Αρχεία και Κατάλογοι 29 Υλοποίηση αρχείων (1) 1. Συνεχής Κατανοµή (a) Συνεχής κατανοµή χώρου στο δίσκο για 7 αρχεία (b) Η κατάσταση του δίσκου µετά τη διαγραφή των αρχείων D και F 30 15
Υλοποίηση αρχείων (2) 2. Κατανοµή Συνδεδεµένης Λίστας Αποθήκευση αρχείων σε µια συνδεδεµένη λίστα από µπλοκ δίσκου. Η πρώτη λέξη κάθε µπλοκ χρησιµοποιείται σαν δείκτης προς το επόµενο Όµως: Αργή τυχαία προσπέλαση Απώλεια χώρου από τους δείκτες σε κάθε µπλοκ Ο διαθέσιµος χώρος δεν είναι δύναµη του 2 31 Υλοποίηση αρχείων (3) 3. Κατανοµή Συνδεδεµένης Λίστας µε πίνακα στην κύρια µνήµη Ηλέξη µε το δείκτη από κάθε µπλοκ µεταφέρεται σε ένα πίνακα στη µνήµη ιαθέσιµο για αποθήκευση το σύνολο του µπλοκ Γρήγορη τυχαία προσπέλαση Πίνακας κατανοµής αρχείων File Allocation Table (FAT) Μειονέκτηµα: ιατηρείται στη µνήµη ολόκληρος ο πίνακας Απαιτείται ~ 60-80 MB για 20GB δίσκου Εξάρτηση του µεγέθους του πίνακα από το µέγεθος του δίσκου 32 16
Υλοποίηση αρχείων (4) 4. Κόµβοι i (i-node) Σε κάθε αρχείο αντιστοιχίζεται µια δοµή δεδοµένων: κόµβος i (index node) Περιέχει τις διευθύνσεις στο δίσκο των µπλοκ του αρχείου Τις ιδιότητες του αρχείου Ο κόµβος i βρίσκεται στη µνήµη µόνο όταν είναι ανοιχτό το αντίστοιχο αρχείο Αυτή η σχεδίαση απαιτεί στη µνήµη πίνακα µε µέγεθος που εξαρτάται από το µέγιστο επιτρεπόµενο αριθµό των ανοιχτών αρχείων και όχι το µέγεθος του δίσκου Παράδειγµα κόµβου i 33 Υλοποίηση Καταλόγων (1) Όταν ανοίγεται ένα αρχείο το Λ.Σ. χρησιµοποιεί το όνοµα της διαδροµής που παρέχει ο χρήστης για να εντοπίσει την καταχώρησει καταλόγου και από εκεί τη διέυθυσνη του στο δίσκο (π.χ. 1o block ή κόµβο-i) (a) Ένας απλός κατάλογος µε Καταχωρήσεις σταθερού µεγέθους ιευθύνσεις στο δίσκο και ιδιότητες στις καταχωρήσεις καταλόγου (b) Κατάλογος όπου κάθε καταχώρηση δείχνει σε άνα κόµβο-i 34 17
Κοινόχρηστα Αρχεία (1) Ησύνδεση ανάµεσα στον κατάλογο B και το κοινό αρχείο ονοµάζεται σύνδεσµος (link) Αν γίνεται αντιγραφή των διευθύνσεων µπλοκ του αρχείου στον πίνακα του καταλόγου B και προστεθούν νέα στοιχεία στο αρχείο, αυτά δε θα είναι διαθέσιµα από την αρχική του θέση Συµβολική σύνδεση (symbolic link): Νέο αρχείο τύπου link που περιέχει το όνοµα της διαδροµής του αρχείου µε το οποίο συνδέθηκε Σύστηµα αρχείων που περιέχει ένα κοινόχρηστο αρχείο 35 Κοινόχρηστα Αρχεία (2) (a) Κατάσταση πριν τη σύνδεση (link) (b) Κατάσταση µετά τη δηµιουργία της σύνδεσης (link( link) (c) Μετά την διαγραφή του αρχείου από τον αρχικό ιδιοκτήτη 36 18
ιαχείριση χώρου δίσκου (1) Αποθήκευση αρχείου σε συνεχή ακολουθία από byte» Οδηγεί στο πρόβληµα της µεταφοράς του αρχείου όταν αυτό µεγαλώσει Αποθήκευση αρχείου σε µπλοκ σταθερού µεγέθους Ποιο πρέπει να είναι το µέγεθος του µπλοκ» Μεγάλο µέγεθος µπλοκ: Απώλεια χώρου σε µικρά αρχεία Ταχύτερη µεταφορά δεδοµένων» Μικρό µέγεθος µπλοκ: Καλύτερη χρήση του χώρου του δίσκου Μικρότερος ρυθµός µεταφοράς δεδοµένων Κεντρική τιµή µεγέθους αρχείων: 1680 byte 37 ιαχείριση χώρου δίσκου (2) Block size Η συνεχής καµπύλη (αριστερή κλίµακα) δίνει το ρυθµό µεταφοράς δεδοµένων του δίσκου Η διακεκοµµένη καµπύλη (δεξιά κλίµακα) δίνει την αποδοτικότητα χρήσης του χώρου του δίσκου 38 Για αρχεία µεγέθους 2KB 19
ιαχείριση χώρου δίσκου (3) Παρακολούθηση των ελεύθερων µπλοκ (a) (b) Χρήση συνδεδεµένης λίστας από µπλοκ δίσκου για την αποθήκευση των αριθµών των ελεύθερων µπλοκ Χάρτης ψηφίων 39 ιαχείριση χώρου δίσκου (3) (a)ένα σχεδόν γεµάτο µπλοκ µε δείκτες προς τα ελεύθερα µπλοκ δίσκου βρίσκεται στη µνήµη και 3 µπλοκ δεικτών βρσίσκονται αποθηκευµένα στο δίσκο. (b) Το αποτέλεσµα της απελευθέρωσης ενός αρχείου µεγέθους 3 µπλοκ (c) Εναλλακτική στρατηγική: σκιασµένες καταχωρήσεις αναπαριστούν δείκτες προς ελεύθερα µπλοκ 40 20
ιαχείριση χώρου δίσκου (4) Έλεγχος χώρου δίσκου χρηστών (quotas) 41 Αξιοπιστία Συστήµατος Αρχείων (1) Εφεδρικά Αντίγραφα Φυσική Αντιγραφή Αντιγραφή όλων των µπλοκ του δίσκου ξεκινώντας από το µπλοκ 0 Αποφυγή αντιγραφής των ελεύθερων µπλοκ αν το πρόγραµµα αντιγραφής έχει πρόσβαση στις δοµές των ελεύθερων µπλοκ Απλή και γρήγορη µέθοδος Μειονεκτήµατα: Αδυναµία παράληψης καταλόγων Αδυναµία δηµιουργίας Αυξητικών αντιγράφων Αδυναµία ανάκτησης συγκεκριµένων καταλόγων 42 21
Αξιοπιστία Συστήµατος Αρχείων (2) Λογική Αντιγραφή Ξεκινά από ένα ή περισσότερους καταλόγους και αντιγράφει αναδροµικά όλα τα αρχεία που βρίσκονται εκεί υνατότητα επιλεκτικής Αντιγραφής υνατότητα επιλεκτικής ανάκτησης υνατότητα αυξητικών αντιγράφων 43 Αξιοπιστία Συστήµατος Αρχείων (3) 44 22
Αξιοπιστία Συστήµατος Αρχείων (4) Καταστάσεις Συστήµατος Αρχείων (a) Συνεπές (b) Χαµένο µπλοκ (c) ιπλή εγγραφή ίδιου µπλοκ στη λίστα των ελευθέρων (d) ιπλή εγγραφή ίδιου µπλοκ στη λίστα των εγγεγραµµένων 45 Απόδοση Συστήµατος Αρχείων (1) Οι Κόµβοι I- τοποθετούνται στην αρχή του δίσκου ίσκος διαιρεµένος σε οµάδες κυλίνδρων 46 Ο κάθε ένας µε τη δική του οµάδα κόµβων i. 23