Συστήµατα Αρχείων & Αποθήκευση
Για τη δηµιουργία των διαφανειών έχει χρησιµοποιηθεί υλικό από τις διαφάνειες παραδόσεων που βασίζονται στο βιβλίο, Silberschatz, Galvin and Gagne, Operating Systems Concepts, 7 th Edition. Οι διαφάνειες αυτές βρίσκονται στο δικτυακό τόπο: http://www.cs.purdue.edu/homes/yau/cs503/
Εισαγωγή Επικοινωνία µε περιφερειακά (επανάληψη) Συστήµατα µαζικής αποθήκευσης και αξιοπιστία Πρόσβαση και χρονοπρογραµµατισµός δίσκου Βασικές αρχές συστηµάτων αρχείων Υλοποίηση συστηµάτων αρχείων Σελίδα 3
Χειρισµός ιακοπών (συνοπτική επανάληψη)
οµή Υλικού ενός Τυπικού ΥΣ Σελίδα 5
ΛΣ και Περιφερειακές Συσκευές Οι συσκευές Ε/Ε καιηκμεµπορούν να λειτουργούν ταυτόχρονα Κάθε ελεγκτής συσκευής (controller) είναι υπεύθυνος για κάποιο συγκεκριµένο τύπο συσκευής Κάθε ελεγκτής συσκευής έχει µια µνήµη προσωρινής τοπικής αποθήκευσης (buffer) Σελίδα 6
ΛΣ και Περιφερειακές Συσκευές Η ΚΜΕ µετακινεί δεδοµένα από/προς την κύρια µνήµη προς/από τη µνήµη τοπικής αποθήκευσης του ελεγκτή H E/E γίνεται από τη συσκευή στην τοπική µνήµη του ελεγκτή Ο ελεγκτής της συσκευής ενηµερώνει την ΚΜΕ ότι η συσκευή είναι έτοιµη ναεπικοινωνήσειµε τολσήότι ολοκληρώθηκε µια λειτουργία προκαλώντας µια διακοπή (interrupt) Σελίδα 7
Χειρισµός E/E µε Αναµονή Η µεταφορά των δεδοµένων γίνεται από την ρουτίνα εξυπηρέτησης της αντίστοιχης διακοπής Αφού ξεκινήσει η Ε/Ε, ο έλεγχος επιστρέφει στο πρόγραµµα χρήστηµόνο µετά την ολοκλήρωση της Ε/Ε Αφού ξεκινήσει η Ε/Ε, ο µόνος τρόπος να λάβει τον έλεγχο το ΛΣ πριν ολοκληρωθεί η µεταφορά δεδοµένων είναι µια άλλη διακοπή (µε µεγαλύτερη προτεραιότητα) Το πολύ µια αίτηση Ε/Ε «τρέχει» κάθε φορά στο ΛΣ (δεν υπάρχει ταυτόχρονη/παράλληλη επεξεργασία Ε/Ε) Σελίδα 8
Χειρισµός Ε/Ε χωρίς Αναµονή Η µεταφορά των δεδοµένων γίνεται από την συσκευή Αφού ξεκινήσει η Ε/Ε, ο έλεγχος επιστρέφει απ ευθείας στο ΛΣ (και πιθανόν στο πρόγραµµα χρήστη) Η ολοκλήρωση της Ε/Ε σηµατοδοτείται µέσω νέας διακοπής Το ΛΣ διατηρεί τον έλεγχο κατά την µεταφορά δεδοµένων και µπορεί συνεπώς να εξυπηρετήσει άλλες διεργασίες και διακοπές Πολλές αιτήσεις Ε/Ε «τρέχουν» κάθε φορά στο ΛΣ, οπότε υπάρχει ταυτόχρονη/παράλληλη επεξεργασία Ε/Ε Σελίδα 9
Αναπαράσταση των δύο Μεθόδων Ε/Ε µε αναµονή χωρίς αναµονή Σελίδα 10
Χειρισµός ιακοπών Ι Ο ελεγκτής συσκευής ενεργοποιεί το κύκλωµα διακοπής της ΚΜΕ Η ΚΜΕ αντιλαµβάνεται την διακοπή, διακόπτει την εκτέλεση της τρέχουσας διεργασίας και µεταφέρει τον έλεγχο στον κώδικα της ρουτίνας εξυπηρέτησης διακοπών (interrupt handler) Η µεταφορά αυτή είναι όµοια (αλλά όχι πανοµοιότυπη) µε τηνµεταφορά ελέγχου που γίνεται σε µια κλήση συστήµατος (µε εναλλαγή από user stack σε system stack) Σελίδα 11
Χειρισµός ιακοπών ΙΙ Όταν ολοκληρωθεί η ρουτίνα εξυπηρέτησης διακοπών, ο έλεγχος επιστρέφει στο ΛΣ (και πιθανόν στην διεργασία που διακόπηκε) Ο αποδοτικός και άµεσος χειρισµός διακοπών είναι από τα πιο κρίσιµα σηµεία ενός λειτουργικού συστήµατος (µια και µέσω αυτών λειτουργεί όλη η Ε/ΕτουΥΣ) Σελίδα 12
ιάγραµµα Ροής Χειρισµού ιακοπών Σελίδα 13
ιαχείριση ιακοπών Ι Το ΛΣ προσδιορίζει τον τύπο της διακοπής που συνέβη: Ρωτώντας (polling) τις συσκευές µε τηνσειρά Με βάση τον αριθµό της διακοπής (vectored interrupts) Συνδυάζοντας τις δύο µεθόδους Σελίδα 14
ιαχείριση ιακοπών ΙΙ Τα τµήµατα του κώδικα που αναλαµβάνουν να εξυπηρετήσουν τους διαφορετικούς τύπους διακοπών αποθηκεύονται σε προστατευµένο µέρος της µνήµης του ΛΣ Οι εισερχόµενες διακοπές µπορεί να αποτραπούν (disabled) για να µην υπάρξει αλυσιδωτή διακοπή Οι εισερχόµενες διακοπές µπορεί να αποθηκευτούν (buffered) για να µην χαθούν (οπότε θα εξυπηρετηθούν καθυστερηµένα ή ποτέ) Σελίδα 15
Πολλαπλές ιακοπές Τι συµβαίνει στην περίπτωση όπου συµβαίνουν χρονικά επικαλυπτόµενες διακοπές (π.χ. ένα πρόγραµµα που λαµβάνει δεδοµένα από µια σύνδεση δικτύου ενώ ταυτόχρονα τυπώνει και αποτελέσµατα) Απενεργοποίηση ιακοπών Ορισµός προτεραιοτήτων διακοπών Σελίδα 16
Γραφική Παράσταση ιακοπών ιεργασίας που κάνει Ε/Ε Σελίδα 17
οµή Άµεσης Πρόσβασης στη Μνήµη (Direct Memory Access Structure) Χρησιµοποιείται για συσκευές Ε/Ε υψηλήςταχύτητας που µπορούν να µεταδώσουν πληροφορία σε ταχύτητες συγκρίσιµες µε αυτές της µνήµης Ο ελεγκτής συσκευής µεταφέρει µεγάλα τµήµατα δεδοµένων από την τοπική του µνήµη κατευθείαν στην κύρια µνήµη χωρίς την παρέµβαση της ΚΜΕ Μόνο µια διακοπή δηµιουργείται ανά κάθε τµήµα που µεταφέρεται, παρά µια διακοπή για κάθε byte Αποδοτική χρήση της ΚΜΕ, ταχύτερη µεταφορά δεδοµένων, παραλληλισµός στην Ε/Ε Σελίδα 18
Τα Βήµατα Υλοποίησης του DMA Σελίδα 19
Ταχύτητες Μεταφοράς εδοµένων Συσκευών σε Sun Enterprise 6000 Σελίδα 20
Οδηγοί Συσκευών Για κάθε συσκευή, το ΛΣ καταγράφει την κατάστασή της, και υλοποιεί τις συναρτήσεις πρόσβασης καθώς και τη ρουτίνα εξυπηρέτησης διακοπών Το σύνολο του κώδικα (συναρτήσεις πρόσβασης και ρουτίνα εξυπηρέτησης διακοπών) ονοµάζεται οδηγός (driver) της συσκευής Σελίδα 21
Οδηγοί Συσκευών (συνέχεια) Ο προγραµµατιστής βλέπει µόνο τις ρουτίνες πρόσβασης (µερικές φορές ούτε καν αυτές γιατί χρησιµοποιεί ακόµα πιο αφαιρετικούς µηχανισµούς χρήσης των συσκευών, π.χ. αρχεία αντί για δίσκο) Ο προγραµµατιστής δεν έχει πρόσβαση στη ρουτίνα εξυπηρέτησης διακοπών για καµία συσκευή του συστήµατος Σελίδα 22
Συσκευές Μπλοκ και Χαρακτήρων Συσκευές µπλοκ: Μαγνητικοί δίσκοι, ταινίες, οπτικά µέσα αποθήκευσης, κλπ Προσπέλαση µέσω λειτουργιών: readblock, writeblock, setpos Απ ευθείας πρόσβαση ή µέσω αφαιρετικών µηχανισµών, όπως π.χ. αρχεία, βάσεις δεδοµένων, κλπ Συσκευές χαρακτήρων: Πληκτρολόγιο, ποντίκι, σειριακή πόρτα, κλπ Προσπέλαση µέσω λειτουργιών: get, put Απ ευθείας πρόσβαση ή µέσω βιβλιοθηκών Σελίδα 23
E/E µε/χωρίς Αναµονή E/E µε αναµονή: διεργασία περιµένει µέχρι να ολοκληρωθεί η Ε/Ε εύκολη χρήση και κατανόηση αλλά περιοριστικό E/E χωρίς αναµονή: κλήσεις επιστρέφουν (αµέσως) όσα δεδοµένα είναι διαθέσιµα τη συγκεκριµένη στιγµή εσωτερική υλοποίηση µε ενδιάµεση αποθήκευση δεδοµένων E/E µε ασύγχρονη µεταφορά δεδοµένων: διεργασία εκτελείται ενώ πραγµατοποιείται η Ε/Ε ολοκλήρωση Ε/Ε σηµατοδοτείται µέσω σηµάτων δύσκολος προγραµµατισµός Σελίδα 24
Υποσύστηµα ΛΣγιαE/E Χρονοπρογραµµατισµός: δροµολόγηση αιτήσεων ανά συσκευή κάποιες υλοποιήσεις επιχειρούν να είναι «δίκαιες» Ενδιάµεση αποθήκευση (buffering): χρήση αποθήκης στην κύρια µνήµη για την προσωρινή αποθήκευση δεδοµένων από/προς της συσκευή απόκρυψη διαφοράς σε ταχύτητα απόκρυψη διαφοράς στο «ατοµικό» τµήµα δεδοµένων προβλήµατα συνέπειας µεταξύ αντιγράφων της µνήµης και δεδοµένων που βρίσκονται στο αποθηκευτικό µέσο Σελίδα 25
Υποσύστηµα ΛΣγιαE/E (συνέχεια) Κρυφή µνήµη (caching): αποθήκευση αντιγράφων σε γρήγορα προσπελάσιµη µνήµη κρίσιµο για απόδοση Spooling: τοποθέτηση αιτήσεων σε ουρά (µε χρονολογική σειρά) όταν η συσκευή δεν µπορεί να εξυπηρετήσει παραπάνω από µια αίτηση τη φορά, π.χ. εκτυπωτής Κράτηση συσκευών: αποκλειστική πρόσβαση σε συσκευή (αδιέξοδα!) όταν µια διεργασία πρέπει να ελέγχει µια συσκευή για αρκετό χρονικό διάστηµα, π.χ. ταινία αποθήκευσης Σελίδα 26
Κύκλος µιας Αίτησης E/E Σελίδα 27
Απόδοση E/E H E/E είναι συνήθως πολύ κρίσιµη για τη συνολική απόδοση του ΥΣ Απαιτεί συνδυασµένη εκτέλεση κώδικα προγραµµάτων χρήστη, κώδικα οδηγού συσκευής και κώδικα χειρισµού διακοπών Ελαχιστοποίηση εναλλαγών περιβάλλοντος εκτέλεσης Σελίδα 28
Απόδοση E/E (συνέχεια) Ελαχιστοποίηση διακοπών (έξυπνοι ελεγκτές συσκευών, µεταφορά µεγάλων τµηµάτων δεδοµένων) Ελαχιστοποίηση αντιγραφής δεδοµένων ανάµεσα στις διάφορες περιοχές µνήµης (χρήστη, συστήµατος) Ελαχιστοποίηση κώδικα και µεταφοράς δεδοµένων που εκτελείται µέσα σε χειριστές διακοπών για την αποφυγή µπλοκαρίσµατος Σελίδα 29
Συστήµατα Αποθήκευσης και Θέµατα Αξιοπιστίας
οµή ίσκου Ο δίσκος αποτελείται από πολλές κυκλικές µαγνητικές επιφάνειες τοποθετηµένες η µια πάνω στην άλλη (σε µικρή απόσταση) Ο δίσκος χωρίζεται σε έναν αριθµό απόοµοαξονικούς κυλίνδρους (cylinders) που «κόβουν» τις επιφάνειες σε διαδροµές (tracks) Κάθε διαδροµή χωρίζεται σε διακριτούς τοµείς (sectors) που είναι διατεταγµένοι σειριακά (και κυκλικά) κατά µήκος της Σελίδα 31
οµή ίσκου(συνέχεια) Ο δίσκος αναπαρίσταται ως ένας µονοδιάστατος πίνακας από µπλοκ, όπου το µπλοκ είναι και η µονάδα µεταφοράς δεδοµένων Το µπλοκ µε τοναριθµό 0 αντιστοιχεί στον πρώτο τοµέα της πρώτης διαδροµής του εξωτερικού κυλίνδρου, και συνεχίζεται σειριακά για τα υπόλοιπα τµήµατα της διαδροµής, µετά για τις υπόλοιπες διαδροµές (από πάνω προς τα κάτω) του κυλίνδρου, και µετά για τους υπόλοιπους κυλίνδρους (από έξω προς τα µέσα) του δίσκου Σελίδα 32
Αναπαράσταση ίσκου Σελίδα 33
ροµολόγηση ίσκου Ο χρόνος πρόσβασης έχει δύο συνιστώσες: Χρόνος αναζήτησης: Ο χρόνος που χρειάζεται για να τοποθετηθούν οι κεφαλές πάνω από το σωστό κύλινδρο Καθυστέρηση περιστροφής: Ο χρόνος που χρειάζεται για να γυρίσει ο δίσκος έτσι ώστε ο επιθυµητός τοµέας να βρεθεί κάτω από την κεφαλή Σελίδα 34
ροµολόγηση ίσκου (συνέχεια) Κύριος στόχος είναι η ελαχιστοποίηση του χρόνου αναζήτησης Υποθέτουµε πως: χρόνος αναζήτησης απόσταση αναζήτησης Εύρος δίσκου (disk bandwidth) ονοµάζεται ο συνολικός αριθµός bytes που µεταφέρονται προς το συνολικό χρόνο που περνά από την αίτηση µέχρι και την ολοκλήρωση της µεταφοράς δεδοµένων Σελίδα 35
First-Come-First-Served (FCFS) Οι αιτήσεις εξυπηρετούνται σειριακά Απόσταση: 640 κύλινδροι Σελίδα 36
SSTF (SSTF) Επιλέγεταιηαίτησηπουβρίσκεταιπιοκοντά Απόσταση: 236 κύλινδροι Σελίδα 37
Scan (Elevator Algorithm) Η κεφαλή κινείται µπρος πίσω και εξυπηρετούνται αιτήσεις που βρίσκονται στη διαδροµή Απόσταση: 208 κύλινδροι Σελίδα 38
C-Scan (Cycle Scan) Όπως η Scan αλλά όταν η κεφαλή φτάσει στο τέλος, επιστρέφει πάλι στην αρχή χωρίς να εξυπηρετηθούν αιτήσεις (κυκλική µετακίνηση) Σελίδα 39
C-Look Όπως η C-Scan αλλά η κεφαλή φτάνει µόνο όσο µακριά χρειάζεται (και από τις δύο µεριές) για να εξυπηρετήσει αιτήσεις Σελίδα 40
Επιλέγοντας Αλγόριθµο Η απόδοση εξαρτάται από τη συχνότητα και τον τύπο των αιτήσεων Οι αιτήσεις εξαρτώνται και από την υλοποίηση του συστήµατος πρόσβασης αρχείων Οκώδικαςδροµολόγησης του δίσκου οφείλει να υλοποιηθεί ως ξεχωριστό τµήµα του ΛΣ, που µπορεί εύκολα να αντικατασταθεί µε άλλες(καταλληλότερες) υλοποιήσεις Σελίδα 41
Επιλέγοντας Αλγόριθµο (συνέχεια) Ο SSTF είναι συνήθης και είναι διαισθητικά ελκυστικός, µπορεί όµως να παρουσιάσει φαινόµενα λιµοκτονίας (γιατί;) Οι SSTF και C-Look είναι λογικές επιλογές για ένα συνηθισµένο σύστηµα Οι Scan και C-Scan αποδίδουν καλύτερα όταν ο φόρτος τουδίσκουείναιµεγάλος (γιατί;) Σελίδα 42
ιαχείριση ίσκου Φυσικό φορµάρισµα ή φορµάρισµα χαµηλού επιπέδου (physical formatting): υποδιαίρεση του δίσκου σε τοµείς που µπορεί να διαβάσει και να γράψει η κεφαλή του δίσκου Λογικό φορµάρισµα (logical formatting): Το ίδιο το ΛΣ αποθηκεύει δοµές διαχείρισης στο δίσκο Τα περιεχόµενα των δοµών διαχείρισης αλλάζουν κατά τη λειτουργία του ΛΣ και πρέπει να αποθηκεύονται Το λεγόµενο boot µπλοκ αρχικοποιεί το σύστηµα ιαβάζεται στη µνήµη τουη/υ απότονbootloader (ROM) Σελίδα 43
ιαχείριση ίσκου (συνέχεια) Το ΛΣ πρέπει να έχει γνώση των τοµέων που είναι δεσµευµένοι και ελεύθεροι Σε πολλά συστήµατα το Ι/Ο στο σύστηµα τωναρχείων γίνεται µε χρήσηοµάδων από µπλοκ (clusters) ιαχείριση προβληµατικών µπλοκ µε sector sparing ή sector slipping Η επισκευή ενός αρχείου σε έναν προβληµατικό δίσκο µπορεί να απαιτεί την ανάκτησή του από τη βοηθητική αποθήκευση (backup) Σελίδα 44
ιαχείριση Ελεύθερου Χώρου Σε κάθε µπλοκ αντιστοιχεί ένα bit, από την τιµή του οποίου φαίνεται κατά πόσο ένα µπλοκ είναι δεσµευµένο ή ελεύθερο (bitmaps) Χρειάζεται χώρος για την αποθήκευση του πίνακα (και στο δίσκο) block size = 2 12 bytes (4Κ), disk size = 2 30 bytes (1G) bitmap size 2 18 bits (256Kbits, 32Kbytes) εν πρέπει ποτέ ο πίνακας bit στη µνήµη ναέχειdisk[i]=1 ενώ ο πίνακας στο δίσκο να έχει disk[i]=0 (κίνδυνος απώλειας δεδοµένων) θέσε disk[i]=1 στον πίνακα του δίσκου δέσµευσε block[i] θέσε disk[i]=1 στον πίνακα της µνήµης Σελίδα 45
ιαχείριση Ελεύθερου Χώρου (συνέχεια) Λίστα ελευθέρων µπλοκ (free list): Στην κύρια µνήµη διατηρείται λίστα µε όλαταελεύθεραµπλοκ Στο δίσκο, κάθε ελεύθερο µπλοκ περιέχει δείκτη στο επόµενο ελεύθερο µπλοκ Η αρχή της λίστας πρέπει να αποθηκευτεί σε συγκεκριµένο µέρος του δίσκου (µέρος της αρχικοποίησης/φορµαρίσµατος) Συγκριτικά µε πίνακα bits, πιο δύσκολη (αργή) ανεύρεση διαδοχικών µπλοκ στο δίσκο Σελίδα 46
ΛίσταΕλεύθερωνΜπλοκστο ίσκο Σελίδα 47
ιαχείριση Χώρου Μετακίνησης (Swap Space) Η εικονική µνήµη χρησιµοποιεί το δίσκο ως επέκταση της κύριας µνήµης Το Linux χρησιµοποιεί πολλαπλούς χώρους µετακίνησης σε διαφορετικούς δίσκους για εξισορρόπηση φόρτου Ι/Ο ύο τρόποι υλοποίησης: µέρος του συστήµατος αρχείων εύκολη αλλά όχι αποδοτική υλοποίηση ξεχωριστή διαµέριση (raw partition) υπάρχει χωριστή διαχείριση του χώρου µετακίνησης βελτιστοποιηµένη για ταχύτητα Σελίδα 48
Βλάβες και Αξιοπιστία Οι δίσκοι παρουσιάζουν βλάβες: ηλεκτρονικά προβλήµατα (communication errors) µαγνητικά προβλήµατα (bad blocks) µηχανικά προβλήµατα (head crash) Το ΛΣ προσπαθεί να ξεπεράσει κάποια από αυτά τα προβλήµατα, συνήθως µε πολλαπλές προσπάθειες ανάγνωσης/εγγραφής Σελίδα 49
Βλάβες και Αξιοπιστία (συνέχεια) Μπορεί και να χρησιµοποιηθούν συστοιχίες δίσκων (disk arrays) για αύξηση της αξιοπιστίας του συστήµατος και της διαθεσιµότητας των δεδοµένων Πολλοί δίσκοι ως ένας εικονικός δίσκος (disk stripping) Κάποιοι δίσκοι ως αντίγραφα άλλων δίσκων (disk mirroring/shadowing) Αποθήκευση επιπλέον πληροφορίας (parity) για ανάκαµψη σε περίπτωση που παρουσιαστεί βλάβη σε δίσκο Σελίδα 50
Συστήµατα RAID Σελίδα 51
Σύστηµα RAID (0+1) και (1+0) Σελίδα 52
Υλοποίηση Σταθερής Αποθήκευσης (Stable Storage) Η σταθερή αποθήκευση (stable storage) είναι µια ιδανική αποθήκη που δεν χάνει ποτέ δεδοµένα που έχουν καταχωρηθεί σε αυτή Πολλοί µηχανισµοί συστηµάτων προϋποθέτουν σταθερή αποθήκευση Μπορεί να υλοποιηθεί αντιγράφοντας τα δεδοµένα σε πολλά διαφορετικά µέσα µόνιµης αποθήκευσης, τα οποία παρουσιάζουν βλάβες ανεξάρτητα το ένα από το άλλο Σελίδα 53
Υλοποίηση Σταθερής Αποθήκευσης (συνέχεια) Η εγγραφή των δεδοµένων πρέπει να γίνεται µε τρόπο που επιτρέπει την ανάκτησή τους, ανεξάρτητα από το µέσο και τη χρονική στιγµή πουσυµβεί η βλάβη Η αξιοπιστία της σταθερής αποθήκευσης µπορεί να µεγιστοποιηθεί όσο θέλουµε (φυσικά µε αντίστοιχο κόστος σε υλικό αλλά πολλές φορές και καθυστερήσεις στην Ε/Ε του συστήµατος) Σελίδα 54
Φτηνά Μέσα Αποθήκευσης floppy disk: 1MB, ίδια τεχνολογία φτάνει µέχρι και 1GB, παρόµοια ταχύτητα µε σταθερούς σκληρούς δίσκους CD: οπτική τεχνολογία, µικρότερη ταχύτητα από σκληρό δίσκο, καλό για σειριακή πρόσβαση (υποστηρίζεται και εγγραφή) WORM disk: κάθε σηµείο δέχεται µια µοναδική εγγραφή, µπορεί να διαβαστεί πολλές φορές, µεγάληαντοχήκαι διάρκεια ζωής Σελίδα 55
Φτηνά Μέσα Αποθήκευσης Ταινίες: µαγνητική τεχνολογία, όπως οι κλασικές κασέτες, µεγάλη χωρητικότητα, αργή και σειριακή πρόσβαση Για αποθήκευση πολλών δεδοµένων χρησιµοποιούνται πολλές ταινίες/δίσκοι (racks, stacks, silos), όπου πρόσβαση γίνεται µέσω ειδικών µηχανηµάτων (robots) που βρίσκουν και τοποθετούν την κατάλληλη ταινία/δίσκο στο µηχάνηµα ανάγνωσης Σελίδα 56
Κόστος (ανά MB) Ηκύριαµνήµη (RAM) είναι πολύ πιο ακριβή απ ότι οι δίσκοι Το κόστος (προς τη χωρητικότητα) των δίσκων είναι συγκρίσιµο µε αυτότωνταινιών Οι φτηνοί δίσκοι και οι φτηνές ταινίες έχουν περίπου την ίδια χωρητικότητα σε δεδοµένα Σελίδα 57
Κόστος Μνήµης (ανά MB) Σελίδα 58
Κόστος ίσκων (ανά MB) Σελίδα 59
Κόστος Ταινιών (ανά MB) Σελίδα 60
Αξιοπιστία και Αντοχή Τα συστήµατα σκληρών δίσκων είναι συνήθως πιο αξιόπιστα (παρουσιάζουν βλάβες πιο σπάνια) απ ότι αυτά που χρησιµοποιούν κινητούς δίσκους ή ταινίες Ένας οπτικός δίσκος είναι πιο αξιόπιστος και πιο ανθεκτικός από ένα µαγνητικό δίσκο ή ταινία Μια πτώση κεφαλής (head crash) σε δίσκο συνήθως καταστρέφει όλα τα δεδοµένα Μιαβλάβησεένασύστηµα ταινίας ή οπτικού δίσκου συνήθως δεν καταστρέφει το µέσο αποθήκευσης Σελίδα 61
Απόδοση/Ταχύτητα Εύρος µεταφοράς (bandwidth): # bytes ανά µονάδα χρόνου sustained bandwidth: καθαρός µέσος ρυθµός µεταφοράς δεδοµένων όταν τα δεδοµένα «ρέουν» ανεµπόδιστα effective bandwidth: µικτός µέσος ρυθµός µεταφοράς δεδοµένων συµπεριλαµβανοµένων και των καθυστερήσεων που οφείλονται στα διάφορα µηχανικά µέρη Σελίδα 62
Απόδοση/Ταχύτητα (συνέχεια) Καθυστέρηση πρόσβασης (access latency): Χρόνος που χρειάζεται για να εντοπιστεί το σηµείο όπου αρχίζει το τµήµα των δεδοµένων Για δίσκους: χρόνος µετακίνησης κεφαλής και χρόνος περιστροφής (< 35 milliseconds) Για ταινίες: χρόνος (ξε)τυλίγµατος ταινίας (10-100 seconds) Γενικά, η διαφορά του χρόνου πρόσβασης ανάµεσα σε δίσκους και ταινίες είναι τάξης µεγέθους 1000 Σελίδα 63
Ιεραρχικά Συστήµατα Αποθήκευσης Ένα ιεραρχικό σύστηµα αποθήκευσης επεκτείνει την ιεραρχία µνήµης πέρα από τα όρια της κύριας και της δευτερεύουσας µνήµης ώστε να συµπεριλαµβάνει συστήµατα µαζικής αποθήκευσης Σαν επέκταση της δευτερεύουσας µνήµης χρησιµοποιούνται συνήθως βιβλιοθήκες ταινιών ή/και κινητών δίσκων Σελίδα 64
Ιεραρχικά Συστήµατα Αποθήκευσης (συνέχεια) Η επέκταση γίνεται συνήθως στο επίπεδο αρχείων: µικρά και δηµοφιλή αρχεία µένουν στο δίσκο µεγάλα και σπανίως προσπελάσιµα αρχεία τοποθετούνται σε ταινίες Παρόµοια συστήµατα συναντά κανείς σε υπολογιστικά κέντρα, αρχειοθήκες, και κέντρα πολύ µεγάλων βάσεων δεδοµένων Σελίδα 65
ίκτυο (Υπηρεσιών) Αποθήκευσης Σελίδα 66
Συστήµατα Αρχείων
Αρχεία Ο δίσκος είναι συσκευή «χαµηλού» επιπέδου Τα προγράµµατα χρειάζονται ένα πιο αφαιρετικό µηχανισµό για τη διαχείριση των δεδοµένων Αυτός ο µηχανισµός είναι τα αρχεία Ιδιαίτερα χρήσιµες ιδιότητες: Γραµµικός αποθηκευτικός χώρος Ανεξαρτησία από αποθηκευτική συσκευή Ταυτόχρονη υποστήριξη από ξεχωριστούς χώρους Ονοµατολογία για εύκολη αναζήτηση (και από το χρήση) Ευελιξία όσον αφορά τα δεδοµένα προς αποθήκευση Σελίδα 68
οµή Αρχείων εν υπάρχει, ένα αρχείο είναι ένας γραµµικός αποθηκευτικός χώρος εδοµένα µπορεί να δοµηθούν µε πολλούς τρόπους: Ξεχωριστή εγγραφή σε κάθε γραµµή Συνεχόµενες εγγραφές συγκεκριµένου µεγέθους Συνεχόµενες εγγραφές µεταβλητού µεγέθους Πολύπλοκη «γραµµατική» δοµής (SGML, XML) Σελίδα 69
οµή Αρχείων (συνέχεια) εδοµένα µπορεί να είναι σε δυαδική µορφή ή ASCII Αρχεία µπορεί να έχουν ιδιαίτερη «σηµασία»: Εκτελέσιµα αρχεία Αρχεία δεδοµένων εφαρµογών Σηµασία και δοµή τωνδεδοµένων ορίζεται από το πρόγραµµα πουδηµιουργεί το αρχείο Σελίδα 70
Πληροφορίες Αρχείων Όνοµα: περισσότερο για το χρήστη Τύπος: για καλύτερο έλεγχο χρήσης (οτύπος µπορεί και να ορίζεται έµµεσα, π.χ. µέσω ειδικής κατάληξης) Τοποθεσία: θέση των δεδοµένων στο δίσκο Μέγεθος: τρέχον µέγεθος του αρχείου Σελίδα 71
Πληροφορίες Αρχείων (συνέχεια) Προστασία: ρύθµιση πρόσβασης και χρήσης Χρονοσφραγίδα (timestamp): ώρα δηµιουργίας/τελευταίας αλλαγής/πρόσβασης Αυτές οι πληροφορίες (πρόκειται στην πράξη για µεταδεδοµένα) κρατιούνται σε ειδικές δοµές που περιγράφουν ένα αρχείο Σελίδα 72
Ονόµατα και Τύποι Αρχείων Σελίδα 73
Πράξεις/Λειτουργίες Αρχείων ηµιουργία (κενού) αρχείου Σβήσιµο (υπάρχοντος) αρχείου Αλλαγή ονόµατος αρχείου Περικοπή αρχείου Γράψιµο / ιάβασµα Σελίδα 74
Πράξεις/Λειτουργίες Αρχείων (συνέχεια) Μετακίνηση δείκτη ανάγνωσης/εγγραφής Αποθήκευση αλλαγών Άνοιγµα: δηµιουργία δοµών πρόσβασης Κλείσιµο: απελευθέρωση δοµών πρόσβασης Σελίδα 75
Μέθοδοι Πρόσβασης Σειριακή πρόσβαση: διάβασµα καιµετακίνηση προς τα εµπρός γράψιµο και µετακίνηση προς τα εµπρός επιστροφή στην αρχή του αρχείου Άµεση πρόσβαση: διάβασµα γράψιµο τοποθέτηση δείκτη σε συγκεκριµένο µέρος του αρχείου Σελίδα 76
Σειριακή Πρόσβαση Σελίδα 77
Άµεση Πρόσβαση Ένα αρχείο αποτελείται από λογικές εγγραφές σταθερού µεγέθους Το αρχείο θεωρείται ως µια αριθµηµένη ακολουθία από µπλοκ ή εγγραφές Συνήθως χρησιµοποιούνται στις βάσεις δεδοµένων για άµεσηπρόσβασηστηνπληροφορία(υπολογίζεται από το ερώτηµα το µπλοκ στο οποίο περιέχεται η απάντηση) Για µεγαλύτερα σύνολα µπορούµε ναχρησιµοποιούµε συναρτήσεις hash ή αρχεία δεικτών Σελίδα 78
Άµεση Πρόσβαση (συνέχεια) Οαριθµός του µπλοκ που παρέχεται από το χρήστη είναι σχετικός µε τηναρχήτου αρχείου Προφανώς η πραγµατική διεύθυνση του µπλοκ στο δίσκο είναι διαφορετική Με βάση την άµεση πρόσβαση µπορούν να δηµιουργηθούν και άλλες µέθοδοι που συνήθως συνεπάγονται τη δηµιουργία ενός δείκτη για το αρχείο Οι δείκτες περιέχουν παραποµπές στα διάφορα µπλοκ Σελίδα 79
Προσοµοίωση Σειριακής Πρόσβασης σε Αρχείο Άµεσης Πρόσβασης Σελίδα 80
Κατάλογοι Οµαδοποίηση αρχείων Ένας κατάλογος µπορείναπεριέχειπολλάαρχεία Για κάθε κατάλογο κρατιέται πληροφορία (όνοµα, πρόσβαση, χρονοσφραγίδα, κλπ) ανάλογη µε αυτή ενός αρχείου Ουσιαστικά ένας κατάλογος µπορεί να θεωρηθεί σαν ειδικό αρχείο τα περιεχόµενα του οποίου είναι οι πληροφορίες που αντιστοιχούν στα αρχεία που περιέχει ο κατάλογος Σελίδα 81
Πράξεις/Λειτουργίες Καταλόγων ηµιουργία (κενού) κατάλογου Σβήσιµο (υπάρχοντος) κατάλογου Αλλαγή ονόµατος καταλόγου Πρόσβαση στα περιεχόµενα του καταλόγου ηµιουργία αρχείου στον κατάλογο Σβήσιµο αρχείου από τον κατάλογο Αλλαγή ονόµατος αρχείου του καταλόγου Σελίδα 82
Συστήµατα Καταλόγων Επίπεδο σύστηµα: ένας µοναδικός κατάλογος απλό... αλλά προβλήµατα ονοµατολογίας και οµαδοποίησης των αρχείων Ιεραρχικό σύστηµα: ένας κατάλογος µπορεί να περιέχει άλλους καταλόγους δεν υπάρχει πρόβληµα µε ταονόµατα, εύκολη οµαδοποίηση, εύκολη διαχείριση και αναζήτηση, ευκολότερα κατανοητό στο χρήστη Σελίδα 83
Συστήµατα Καταλόγων (συνέχεια) Ιεραρχικό σύστηµα µε κοινάαρχεία: ένα αρχείο µπορεί να ανήκει σε πολλούς καταλόγους ευελιξία... αλλά πρόβληµα στο σβήσιµο αρχείων(λύνεται µε λίστες αναφορών ή µετρητές αναφορών) Σύστηµα µε µορφή γράφου: ένας κατάλογος µπορεί να ανήκει σε πολλούς καταλόγους αποφυγή κύκλων ή σύστηµα garbage collection Σελίδα 84
Επίπεδο Σύστηµα Αρχείων Σελίδα 85
Ιεραρχικό Σύστηµα Αρχείων Σελίδα 86
Ιεραρχικό Σύστηµα µε Κοινά Αρχεία Σελίδα 87
Σύστηµα µε ΜορφήΓράφου Σελίδα 88
Προστασία (Protection) Επιθυµητή η κοινή χρήση αρχείων, αλλά πρέπει να υπάρχει προστασία ανάµεσα στους χρήστες ενός αρχείου/καταλόγου O ιδιοκτήτης του αρχείου/καταλόγου προσδιορίζει το πως µπορεί να χρησιµοποιηθεί το αρχείο/κατάλογος και από ποιους Κατηγορίες πρόσβασης: ορατότητα διάβασµα γράψιµο / επέκταση /σβήσιµο εκτέλεση Σελίδα 89
Λίστες Πρόσβασης στο Unix 3 επίπεδα πρόσβασης: (r)ead, (w)rite, e(x)ecute 3 κατηγορίες χρηστών: (o)wner, (g)roup, (a)ll 3 bits πρόσβασης ανά κατηγορία χρήστη, που προσδιορίζονται µέσω της εντολής chmod π.χ. chmod 761 my_file: r w x owner access 7 1 1 1 group access 6 1 1 0 all (public) access 1 0 0 1 Οι οµάδες (groups) δηµιουργούνται από το διαχειριστή του συστήµατος και συνδέονται µε αρχεία µέσω της εντολής chgrp Σελίδα 90
Υλοποίηση Συστηµάτων Αρχείων Η υλοποίηση ενός συστήµατος αρχείων γίνεται συνήθως σε επίπεδα, όπου κάθε επίπεδο λύνει και ένα πρόβληµα Συνηθίζεται να χρησιµοποιείται µια οντοκεντρική προσέγγιση, όπου οι πράξεις πρόσβασης σε αρχεία και καταλόγους γίνεται µέσααπόένααφηρηµένο (γενικό/εικονικό) σύστηµα αρχείων(virtual file system) Σελίδα 91
Υλοποίηση Συστηµάτων Αρχείων (συνέχεια) Ένα συγκεκριµένο σύστηµα αρχείωνµπορεί εύκολα να προσαρτηθεί στο σύστηµα µέσω του εικονικού συστήµατος αρχείων ιαφορετικά συστήµατα αρχείων (µε διαφορετικούς αλγορίθµους και υλοποιήσεις) µπορεί να συνυπάρχουν ταυτόχρονα στο σύστηµα Ο κώδικας των προγραµµάτων δεν αλλάζει µια και είναι ανεξάρτητος όχι µόνο συσκευής αποθήκευσης αλλά και συστήµατος αρχείων Σελίδα 92
Επίπεδα Συστήµατος Αρχείων Σελίδα 93
Εικονικά Συστήµατα Αρχείων (Virtual File Systems VFS) Τα Virtual File Systems (VFS) παρέχουν έναν αντικειµενοστραφή τρόπο για την υλοποίηση συστηµάτων αρχείων Τα VFS επιτρέπουν να χρησιµοποιείται η ίδια διεπαφή κλήσεων συστήµατος (το ΑΡΙ) για διαφορετικούς τύπους συστηµάτων αρχείων To API είναι προς τη διεπαφή VFS, αντί για κάποιο συγκεκριµένο τύπο συστήµατος αρχείων Σελίδα 94
Εικονικά Συστήµατα Αρχείων Ανάγκη για ενιαία υποστήριξη διαφορετικών συστηµάτων αρχείων Εικονικό σύστηµα αρχείων: ιαχωρίζει τις γενικές λειτουργίες (open(), read(), write(), close()) από την υλοποίησή τους Μηχανισµός για µοναδικό προσδιορισµό αρχείου µέσα στο δίκτυο Το VFS ενεργοποιεί συγκεκριµένες λειτουργίες για το σύστηµα αρχείων για το χειρισµό αιτήσεων Σελίδα 95
Εικονικό Σύστηµα Αρχείων Σελίδα 96
Αντιστοίχιση Υλοποίησης σε Εικονικό Σύστηµα Αρχείων Το εικονικό σύστηµα αρχείωνορίζει γενικές ρουτίνες που πρέπει να υλοποιήσουν τα πραγµατικά συστήµατα αρχείων Οι ρουτίνες είναι συνήθως 2 κατηγοριών: ιαχείρισης: για την πρόσβαση του συστήµατος αρχείων από το ίδιο το εικονικό σύστηµα αρχείων Πρόσβασης: για την προσπέλαση των δεδοµένων των καταλόγων και αρχείων Σελίδα 97
Αντιστοίχιση Υλοποίησης σε Εικονικό Σύστηµα Αρχείων (συνέχεια) Κάθε πραγµατικό σύστηµα αρχείων υλοποιεί αυτές τις ρουτίνες, µε βάσητην(ιδιωτική) µέθοδο αποθήκευσης δεδοµένων στο δίσκο, και χρησιµοποιώντας κατάλληλες δοµές στην κύρια µνήµη Η αντιστοίχιση των λειτουργιών ενός πραγµατικού συστήµατος αρχείων στις λειτουργίες του εικονικού συστήµατος γίνεται συνήθως «γεµίζοντας» µια δοµή από δείκτες στις ρουτίνες που υλοποιήθηκαν Σελίδα 98
Υλοποίηση Συστήµατος Αρχείων οµές δεδοµένων που τηρούνται στη µνήµη και το δίσκο για την υλοποίηση ενός συστήµατος αρχείων: Στο δίσκο, πληροφορίες για την εκκίνηση ΛΣ, το πλήθος των µπλοκ, το πλήθος και τη θέση των ελεύθερων µπλοκ, τη δοµή των καταλόγων, κ.λπ. Στη µνήµη, µε την προσάρτηση φορτώνονται πληροφορίες για τη διαχείριση του συστήµατος αρχείων και τη βελτίωση της απόδοσης (caching) Σελίδα 99
οµές εδοµένων που Τηρούνται στο ίσκο Boot control block πληροφορίες που χρειάζονται για την εκκίνηση ενός λειτουργικού συστήµατος Volume control block λεπτοµέρειες της διαµέρισης (partition): πλήθος µπλοκ, µέγεθος µπλοκ, πλήθος και θέση ελεύθερων µπλοκ, κ.λπ. Directory structure οργάνωση αρχείων (UFS: inodes, NTFS: master file table) File control block (FCB) δικαιώµατα, κάτοχος, µέγεθος, θέση στο δίσκο Σελίδα 100
οµές εδοµένων στη Μνήµη Κάθε σύστηµα αρχείων διατηρεί κατάλληλες δοµές στην κύρια µνήµη, µέσω των οποίων διευκολύνεται η πρόσβαση στους καταλόγους και στα αρχεία του συστήµατος Συνήθως υπάρχουν τουλάχιστον δύο διαφορετικές δοµές: οµή καταλόγου: µέσω της οποίας γίνεται πρόσβαση στα δεδοµένα του αντίστοιχου καταλόγου οµή αρχείου: µέσω της οποίας γίνεται πρόσβαση στα δεδοµένα του αντίστοιχου αρχείου Σελίδα 101
οµές εδοµένων στη Μνήµη (συνέχεια) Αυτές οι δοµές δηµιουργούνται όταν ανοίγεται ένας κατάλογος ή/και αρχείο, διαβάζοντας τα δεδοµένα που βρίσκονται στο δίσκο Για τη γρήγορη αναζήτηση των αρχείων ενός καταλόγου χρησιµοποιούνται ταξινοµηµένες λίστες ή hash tables Σελίδα 102
File Control Block Σελίδα 103
οµές Συστήµατος Αρχείων στη Μνήµη (συνέχεια) Σελίδα 104
Υλοποίηση Καταλόγου Γραµµική λίστα των ονοµάτων αρχείων µε δείκτη στα µπλοκ των δεδοµένων εύκολο στον προγραµµατισµό χρειάζεται πολύ χρόνο για να εκτελεστεί Hash Table γραµµική λίστα µε δοµή δεδοµένων hash µειώνει το χρόνο αναζήτησης του καταλόγου συγκρούσεις καταστάσεις όπου δύο ονόµατα αρχείων κάνουν hash στην ίδια θέση συγκεκριµένο µέγεθος Σελίδα 105
έσµευση Μπλοκ για την Αποθήκευση Καταλόγων και Αρχείων Υπάρχουν 3 βασικά συστήµατα: Συνεχόµενη αποθήκευση (contiguous allocation) ιασυνδεδεµένη αποθήκευση (linked allocation) Αποθήκευση µε ευρετηρίαση(indexed allocation) Σελίδα 106
Συνεχόµενη Αποθήκευση Κάθε αρχείο καταλαµβάνει συνεχόµενα µπλοκ στο δίσκο Μοναδική πληροφορία που χρειάζεται να αποθηκεύσει κανείς για κάθε αρχείο είναι ο αριθµός του πρώτου µπλοκ και το µήκος του αρχείου Άµεση πρόσβαση µπορεί να υλοποιηθεί πολύ αποδοτικά (γιατί;) Σελίδα 107
Συνεχόµενη Αποθήκευση (συνέχεια) Μειονεκτήµατα: Σπατάλη χώρου: κάποια µπλοκ που έχουν δεσµευτεί προκαταβολικά για το αρχείο παραµένουν αχρησιµοποίητα (πρόβληµα όπωςκαιγιατη δυναµική µνήµη) Επέκταση αρχείου: πρόβληµα αντοαρχείο µεγαλώσει και το αµέσως επόµενο µπλοκ δεν είναι ελεύθερο Σελίδα 108
Αναπαράσταση Συνεχόµενης Αποθήκευσης Σελίδα 109
Συνεχόµενη Αποθήκευση µε Επέκταση Μερικά συστήµατα χρησιµοποιούν µια παραλλαγή της συνεχόµενης αποθήκευσης Ηδέσµευση γίνεται σε συνεχόµενα τµήµατα δίσκου (extents) Ένα αρχείο (µπορεί να) αποτελείται από πολλά τέτοια τµήµατα Σελίδα 110
ιασυνδεδεµένη Αποθήκευση Κάθε αρχείο αποτελείται από πολλά µπλοκ Τα µπλοκ του αρχείου δεν είναι απαραίτητα συνεχόµενα Κάθε µπλοκ περιέχει δείκτη στο επόµενο µπλοκ του αρχείου Μοναδική πληροφορία που χρειάζεται να αποθηκευτεί για κάθε αρχείο είναι ο αριθµός του πρώτου µπλοκ του αρχείου Σελίδα 111
ιασυνδεδεµένη Αποθήκευση (συνέχεια) Εύκολη επέκταση αρχείου εν υπάρχει σπατάλη σε επίπεδο µπλοκ Όµως: εν υπάρχει φυσική υποστήριξη για άµεση πρόσβαση (µπορεί να υλοποιηθεί µέσω ειδικών δοµών στη µνήµηπουόµως απαιτούν να διαβαστούν τουλάχιστον µια φορά όλα τα µπλοκ του αρχείου) Σελίδα 112
Αναπαράσταση ιασυνδεδεµένης Αποθήκευσης Σελίδα 113
οµή ΠρόσβασηςΑρχείων(File Allocation Table - FAT) Σελίδα 114
File Allocation Table - FAT Σελίδα 115
Αποθήκευση µε Ευρετηρίαση Κάθε αρχείο αποτελείται από πολλά µπλοκ, που δεν είναι απαραίτητα συνεχόµενα ιατηρείται ειδικό µπλοκ (ευρετήριο index) που περιέχει τους αριθµούς των µπλοκ του αρχείου Μοναδική πληροφορία που χρειάζεται να αποθηκευτεί για κάθε αρχείο είναι ο αριθµός του µπλοκ ευρετηρίου (index block) Σελίδα 116
Αποθήκευση µε Ευρετηρίαση (συνέχεια) Εύκολη επέκταση αρχείου, και χωρίς σπατάλη σε επίπεδο µπλοκ Άµεση πρόσβαση απαιτεί ανάγνωση 1 µπλοκ (που µπορεί να κρατιέται και στη µνήµη) Όµως: Αν χαθεί το ευρετήριο, χάνεται το αρχείο Σελίδα 117
Αναπαράσταση Αποθήκευσης µε Ευρετηρίαση Σελίδα 118
Ευρετήρια Πολλών Επιπέδων Με τη µέθοδο της ευρετηρίασης το µέγεθος του αρχείου περιορίζεται από το µέγεθος του µπλοκ: Μέγεθος µπλοκ 2 n bytes και µέγεθος αριθµού µπλοκ 2 bytes => µέγιστο µέγεθος αρχείου 2 2n-1 bytes Για µεγαλύτερα αρχεία χρειάζεται ευρετήριο 2 επιπέδων όπου ένα µπλοκ χρησιµοποιείται για την αποθήκευση του εξωτερικού ευρετηρίου που περιέχει τους αριθµούς των µπλοκ του ευρετηρίου Σελίδα 119
Ευρετήρια Πολλών Επιπέδων (συνέχεια) Μοναδική πληροφορία που χρειάζεται να αποθηκευτεί για κάθε αρχείο είναι ο αριθµός του µπλοκ εξωτερικού ευρετηρίου Όµως: Άµεση πρόσβαση απαιτεί ανάγνωση 2 µπλοκ Αν χαθεί το εξωτερικό ευρετήριο, χάνεται το αρχείο Σελίδα 120
Ευρετήριο 2 Επιπέδων file pointer M outer-index index table file Σελίδα 121
Συνδυασµός Μεθόδων στο Unix µε Μπλοκ 4Κ bytes Σελίδα 122
Ανάκαµψη από Λάθη Τόσο ο οδηγός του δίσκου όσο και ένα σύστηµα αρχείων µπορεί να διατηρούν κρυφές µνήµες από µπλοκ Αν το σύστηµα «πέσει» χωρίς να γραφτούν αλλαγές σε µπλοκ στο δίσκο, τότε χάνεται πληροφορία Περιεχόµενα αρχείων Περιεχόµενα καταλόγων Εσωτερική διαχείριση αρχείων και καταλόγων (!) Σελίδα 123
Ανάκαµψη από Λάθη (συνέχεια) Ανάλογα µετη µέθοδο αποθήκευσης, µπορεί να χαθεί αρκετό µέρος από ένα αρχείο/κατάλογο Αν το σύστηµα αρχείων έχει υλοποιηθεί κατάλληλα, µέρος της χαµένης πληροφορίας µπορεί να ανακτηθεί διαβάζοντας όλα τα µπλοκ του δίσκου και συνδυάζοντας τα περιεχόµενα τους Σελίδα 124
Έλεγχος Συνέπειας Σε γενικές γραµµές η πληροφορία που τηρείται στην κύρια µνήµη είναιπερισσότερο ενηµερωµένη από την αντίστοιχη πληροφορία στο δίσκο Το σύστηµα αρχείωνµπορείναβρεθείσεασυνεπή κατάσταση (inconsistent state) Ένα ειδικό πρόγραµµα ελέγχει και διορθώνει ασυνέπειες Συγκρίνονται τα δεδοµένα στη δοµή καταλόγου µε τα µπλοκ δεδοµένων στο δίσκο (οι αλγόριθµοι ανάθεσης και διαχείρισης ελεύθερου χώρου καθορίζουν το είδος των προβληµάτων και το εύρος της επιτυχίας στη διόρθωση) Σελίδα 125
Έλεγχος Συνέπειας (συνέχεια) Στη διασυνδεδεµένη ανάθεση αν υπάρχει δείκτης από το κάθε µπλοκ στο επόµενό του, µπορεί να αναδηµιουργηθεί το αρχείο και η εγγραφή του καταλόγου Αντίθετα, η απώλειαµιας εγγραφής καταλόγου σε αποθήκευση µε ευρετηρίασηµπορεί να είναι καταστροφική (τα µπλοκ δεδοµένων δε «γνωρίζονται») Στο UNIX κάθε αλλαγή που οδηγεί σε ανάθεση χώρου ή τροποποίηση των µεταδεδοµένων γίνεται σύγχρονα, πριν γραφούν τα αντίστοιχα µπλοκ δεδοµένων Πρόβληµα: διακοπή σύγχρονης εγγραφής από πτώση Σελίδα 126
Αποτελεσµατικότητα και Απόδοση Unix: προεκχώρηση inodes Ένας άδειος δίσκος διαθέτει διεσπαρµένα inodes Τα µπλοκ δεδοµένων όσο πιο κοντά γίνεται στο µπλοκ inode Μεγάλα και µικρά clusters (για την επίλυση του προβλήµατος του εσωτερικού κατακερµατισµού στη διασυνδεδεµένη ανάθεση) υναµική ανάθεση δοµών του πυρήνα: µεγαλύτερη ευελιξία αλλά και πολυπλοκότητα (το ΛΣ γίνεται πιο «αργό» αλλά και περισσότερο λειτουργικό) Σελίδα 127
Βελτίωση της Απόδοσης Κρυφή µνήµη δίσκου(disk cache) στην κύρια µνήµη γιατην αποθήκευση των µπλοκ στα οποία γίνεται συχνή πρόσβαση Χρήση εικονικού δίσκου (RAM disk) στην κύρια µνήµη Υποστήριξη διαφορετικών µεθόδων πρόσβασης ανά κατηγορία εφαρµογών που χρησιµοποιούν το δίσκο Έξυπνη υλοποίηση συστήµατος αρχείων: Εγγραφή δεδοµένων σε διαδοχικά µπλοκ/τοµείς Πρόωρη ανάγνωση µπλοκ ενός αρχείου Καθυστερηµένη εγγραφή µπλοκ των οποίων τα περιεχόµενα έχουν αλλάξει Σελίδα 128
ιάφορες Θέσεις Ενδιάµεσης Αποθήκευσης Περιεχοµένων ίσκου Σελίδα 129
ίσκος και Σελιδοποίηση Οι σελίδες (εικονικής µνήµης) των προγραµµάτων αποθηκεύονται στο δίσκο Οχώρος(swap space) που χρησιµοποιείται για την αποθήκευση σελίδων µπορεί να χρησιµοποιεί: Την ήδη υπάρχουσα δοµή δίσκου µέσω συστήµατος αρχείων Μια ξεχωριστή περιοχή του δίσκου (disk partition) που χρησιµοποιείται ειδικά για αυτό το σκοπό, και για την οποία γίνεται ξεχωριστή (ειδική) διαχείριση Ξεχωριστή κρυφή µνήµη; Σελίδα 130
Κρυφές Μνήµες για Σελίδες και Μπλοκ Virtual Memory File System Virtual Memory File System Page Cache Buffer Cache Page Cache Buffer Cache Disk Disk A Disk B Κοινό τµήµα δίσκου Κοινή (ή ξεχωριστή) κρυφή µνήµη Ξεχωριστό τµήµα δίσκου Ξεχωριστή κρυφή µνήµη Σελίδα 131
Απόδοση On-board cache και OS cache Buffer cache / page cache: ενοποιηµένη εικονική µνήµη Linux/UNIX: ενοποιηµένη buffer cache Εγγραφές: Synchronous / Asynchronous Synchronous: συµβαίνουν µε τη σειρά που το υποσύστηµα του δίσκου τις λαµβάνει (π.χ. metadata, Σ Β ) Asynchronous: Τα δεδοµένα αποθηκεύονται στην cache και ο έλεγχος επιστρέφει στον καλούντα Σελίδα 132
Απόδοση (συνέχεια) Αλγόριθµοι αντικατάστασης ανάλογα µε τοντύπο πρόσβασης στο αρχείο Free-behind, read-ahead Page cache σύστηµα αρχείων οδηγός δίσκου (οι εγγραφές τοποθετούνται προσωρινά στην cache και ο οδηγός διατάσσει την ουρά εξόδου σύµφωνα µε τη διεύθυνση του δίσκου Οι εγγραφές βελτιστοποιούνται για την περιστροφή του δίσκου, η απόκριση γίνεται γρήγορη! Οι αναγνώσεις είναι πιο αργές και όχι τόσο ασύγχρονες Σελίδα 133
E/E µε χρήση ενοποιηµένης buffer cache Σελίδα 134
Συστήµατα Αρχείων µε Ηµερολόγιο (Log/Journal) Κάθε πρόσβαση στο σύστηµα αρχείων καταγράφεται σε ηµερολόγιο Κάθε αλλαγή στο σύστηµα αρχείων θεωρείται ότι έχει γίνει µόνο από τη στιγµή που έχει περαστεί στο ηµερολόγιο (όχι πιο πριν) ανεξάρτητα από το αν το σύστηµα αρχείων έχει ενηµερώσει το δίσκο Τα περιεχόµενα του ηµερολογίου γράφονται ανεξάρτητα από τις λειτουργίες του συστήµατος αρχείων σε σταθερή αποθήκευση (stable storage) Σελίδα 135
Συστήµατα Αρχείων µε Ηµερολόγιο (συνέχεια) Όταν ολοκληρωθεί µια αλλαγή στο σύστηµα αρχείων, τότε σβήνεται η αντίστοιχη εισαγωγή από το ηµερολόγιο Αν το σύστηµα αρχείων«πέσει», όταν το σύστηµα επανέλθει ελέγχεται το ηµερολόγιο και εκτελούνται όλες οι λειτουργίες που εκκρεµούν Σελίδα 136
Προσάρτηση Συστηµάτων Αρχείων Για να χρησιµοποιηθεί ένα σύστηµα αρχείων πρέπει να προσαρτηθεί στο τοπικό σύστηµα αρχείων(mounting a file system) Η προσάρτηση γίνεται σε συγκεκριµένο κατάλογο της ιεραρχίας του εικονικού συστήµατος, που προσδιορίζει ο διαχειριστής Τα περιεχόµενα του καταλόγου αντικαθίστανται από τα περιεχόµενα του συστήµατος που προσαρτήθηκε Σελίδα 137
Προσάρτηση Συστηµάτων Αρχείων (συνέχεια) Η προσάρτηση είναι ουσιαστικά µια δήλωση, έτσι ώστε το σύστηµα να ανακτήσει και να χρησιµοποιεί τις κατάλληλες ρουτίνες διαχείρισης/πρόσβασης του συστήµατος που προσαρτάται κάθε φορά που επιχειρείται πρόσβαση στη δική του περιοχή Το σηµείο προσάρτησης δεν επηρεάζει το σύστηµα που προσαρτάται, το οποίο απλά παρέχει τις υπηρεσίες του µέσω των κλήσεων του εικονικού συστήµατος αρχείων Σελίδα 138
Υπάρχων Σύστηµα Αρχείων και Μη Προσαρτηµένο Σύστηµα Αρχείων Σελίδα 139
Μετά την Προσάρτηση στο Σηµείο /users Σελίδα 140
Σύστηµα NFS (Network File System) Ένας ειδικός φλοιός συστήµατος αρχείων µέσω του οποίου υποστηρίζεται η αποµακρυσµένηπρόσβασησε αρχεία που βρίσκονται σε άλλους υπολογιστές Επιτρέπει την εξαγωγή ενός τοπικού συστήµατος αρχείων για αποµακρυσµένη χρήση από άλλους σταθµούς εργασίας Σελίδα 141
Σύστηµα NFS (συνέχεια) Ένας αποµακρυσµένος κατάλογος προσαρτάται σε έναν τοπικό κατάλογο, χωρίς να καταλαβαίνει κανείς τη διαφορά (κατά την προσάρτηση πρέπει να δοθεί η ακριβής διεύθυνση του αποµακρυσµένου συστήµατος αρχείων) Το NFS είναι ανεξάρτητο λειτουργικού συστήµατος και αρχιτεκτονικής υλικού Αυτό επιτυγχάνεται µέσω πρωτοκόλλου κωδικοποίησης δεδοµένων (External Data Representation XDR) Σελίδα 142
Πρωτόκολλο NFS Παρέχει µια σειρά από αποµακρυσµένες κλήσεις διαδικασίας (Remote Procedure Call - RPC) για τις βασικές λειτουργίες αρχείων: αναζήτηση αρχείου µέσα σε κατάλογο ανάγνωση περιεχοµένων καταλόγου πρόσβαση σε πληροφορίες αρχείων ανάγνωση και εγγραφή δεδοµένων σε αρχείο Σελίδα 143
Πρωτόκολλο NFS (συνέχεια) Οι εξυπηρετητές NFS δεν κρατάνε κατάσταση (statelessκάθε αίτηση πρέπει να προσδιορίζει όλες τις απαραίτητες πληροφορίες πρόσβασης) Κάθε αλλαγή πρέπει να περνάει στο αποµακρυσµένο σύστηµα πριν επιτρέψει η αντίστοιχη κλήση (χάνεται το πλεονέκτηµα της κρυφής µνήµη καιυπάρχειαναµονή σε περίπτωση διακοπών στο δίκτυο) εν ελέγχεται/περιορίζεται η ταυτόχρονη πρόσβαση Σελίδα 144
Ενσωµάτωση NFS µέσω VFS Σελίδα 145