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

Σχετικά έγγραφα

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

Κεφ. 10: Δομές Αποθήκευσης

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

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

Προχωρηµένα Θέµατα Αρχιτεκτονικής Η/Υ. Storage Systems.. Λιούπης

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα αρχείων, δίσκοι

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Ερµήνευση Boot Sector :

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

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

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

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Μάθημα 2 ο ΟΡΓΑΝΩΣΗ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ

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

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

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

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

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

Αρχιτεκτονική υπολογιστών

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

ΠΛΗΡΟΦΟΡΙΚΗ I. 3 η ΔΙΑΛΕΞΗ Περιφερειακές Μνήμες

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ,

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

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

Λειτουργικά Συστήματα Ι. Συστήματα Εισόδου/Εξόδου (I/O --- Input/Output)

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

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

Αρχιτεκτονική Υπολογιστών

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

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

ΠΛΕ- 027 Μικροεπεξεργαστές 11ο μάθημα: Είσοδος- Εξοδος (Ε/Ε)

I/O: Λίγη θεωρία ουρών, RAID

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

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

ΠΛΗΡΟΦΟΡΙΚΗ I. 3 η ΔΙΑΛΕΞΗ Περιφερειακές Μνήμες

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

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

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

ΣΥΣΤΗΜΑΤΑ ΔΕΥΤΕΡΕΥΟΥΣΑΣ ΜΝΗΜΗΣ

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

Λιβανός Γιώργος Εξάμηνο 2017Β

Μέσα Αποθήκευσης. Ιεραρχία μνήμης Μαγνητικοί δίσκοι Συστοιχίες δίσκων RAID Οπτικοί δίσκοι Μαγνητικές ταινίες Άλλα μέσα αποθήκευσης

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα αρχείων, δίσκοι, Ε/Ε

Σύστηµα Αρχείων και Καταλόγων

Κεφάλαιο 2.4: Εργασία με εικονίδια

Κύρια & Περιφερειακή Μνήµη

Ασκήσεις Caches

Μαγνητικά αποθηκευτικά μέσα: Απαιτητική πληροφορία Ευρύτερη αγορά Μεταφερόμενο αποθηκευτικό μέσο

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

Εισαγωγή στους Η/Υ. Ενότητα 5: Λειτουργικά Συστήματα ΙΙ. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

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

Λειτουργικά Συστήματα (ΗΥ321)

Συστήματα Αρχείων (Σ.Α.)

Λειτουργικά Συστήματα (ΗΥ321)

Σύστηµα Αρχείων File System

Ασκήσεις Caches

Άσκηση 1η. Θεωρήστε ένα σύστημα μνήμης με μία cache: 4 way set associative μεγέθους 256ΚΒ,

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Εικονική Μνήμη (Virtual Μemory)

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

Υπολογιστικά Συστήματα Λογική Σχεδίαση Αρχιτεκτονική Η/Υ Διδάσκοντες: Δρ. Ευγενία Αδαμοπούλου, Δρ. Κώστας Δεμέστιχας

Εισαγωγή στα Λειτουργικά

Ηλεκτρονικοί Υπολογιστές και Επεξεργασία Πληροφοριών

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΕΡΩΤΗΣΕΙΣ ΓΙΑ ΕΠΑΝΑΛΗΨΗ

Με τον όρο μνήμη αναφερόμαστε στα μέσα που χρησιμοποιούνται για την αποθήκευση προγραμμάτων και δεδομένων σε έναν υπολογιστή ή άλλη ψηφιακή

Λειτουργικά Συστήματα (ΗΥ321)

Ψηφιακά Κυκλώματα (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

Εργαστήριο Λειτουργικών Συστημάτων. File Systems

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

1. Οργάνωση της μνήμης 2. Κύρια μνήμη 3. Κρυφή μνήμη 4. Κώδικες διόρθωσης λαθών 5. Δευτερεύουσα μνήμη 6. Μονάδες εισόδου/εξόδου

Μνήμη. Μνήμη. Κύρια μνήμη Δευτερεύουσα ή βοηθητική

Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική. Τυπικοί χρόνοι πρόσβασης. Μέσος χρόνος πρόσβασης. Ταχύτητα µεταφοράς δεδοµένων

Ασκήσεις Caches. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Περιεχόμενα. Κατηγορίες συσκευών Ε/Ε

Ενότητα 4. Εισαγωγή στην Πληροφορική. ίαυλος συστήµατος. Κεφαλαίο 4Β. ίαυλοι δεδοµένων και διευθύνσεων. Χειµερινό Εξάµηνο

Λειτουργικά Συστήματα (ΗΥ222)

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

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

Αρχιτεκτονική υπολογιστών

Αποκατάσταση συστήματος Βάσεις Δεδομένων

Εικονική Μνήμη (Virtual Μemory)

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ΚΕΦΑΛΑΙΟ 4ο ΜΝΗΜΕΣ. (c) Αμπατζόγλου Γιάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ΠΕ17

Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών

Εικονική Μνήμη (virtual memory)

Processor-Memory (DRAM) ιαφορά επίδοσης

Μάθημα 4.10: Οπτικά Αποθηκευτικά Μέσα

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΩΤΑΠΑΝΤΗΣΕΙΣ

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

Εισαγωγή στα Λειτουργικά Συστήματα (Λ/Σ) Το UNIX και οι εντολές του Παρουσίαση 3

Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Εισαγωγή στους Η/Υ. Ενότητα 4: Λειτουργικά Συστήματα Ι. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Transcript:

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

Αποθήκευση δεδομένων Μαγνητικοί δίσκοι Σκληρός δίσκος/hard disk Μαλακός δίσκος/floppy disk (δισκέττα) Οπτικοί δίσκοι CD-ROM (WORM Write Once Read Many) CD-RW Δίσκοι «στερεάς κατάστασης» (πυριτίου) Flash memory Ramdisk (κύριας μνήμης) Network file system File server Network disk

Μαγνητικοί δίσκοι track sector Tracks = cylinders * heads Capacity = sector_size * Tracks * sectors_per_track cylinder heads

Timing parameters Rotation speed: R = 3000 10000 rpm (rot./min) Rotation latency: t r = 1 / 2R Seek time: t s = 1-15 msec Track-to-track time: t tt Average Access time: t a = t s + t r Bandwidth: B = BytesPerTrack / ( 1/R + t tt )

Παράδειγμα Παράμετρος Western Digital WD 18300 Cylinders 10601 Tracks/cylinder 12 Sectors/track (μέση τιμή) 281 Sectors (συνολικά) 35,742,000 Μέγεθος sector 512 byte Χωρητικότητα 18.3 GB Seek time (track-to-track) 0.8 msec Seek time (average) 6.9 msec Rotation time 8.33 msec (7,200 rpm) Transfer rate (max) 32 MByte/sec Χρόνος μεταφοράς 1 sector 17 μsec

Formatting Low-level / high level Low-level: Διαμόρφωση και αρίθμηση sectors πάνω στο μαγνητικό υλικό High-level: Διαμόρφωση partitions Sector formatting Cylinder skew Interleaving

Sector formatting sector Preamble data ECC 32 bytes 512 bytes 16 bytes Preamble: bit-pattern για να μαρκάρεται η αρχή του sector ECC: Error-Correcting Code

Sector numbering Disk geometry (cylinders, heads, sectors) Zones LBA (Logical Block Addressing) Cylinder skew Το «sector 0» κάθε track μετατοπίζεται κατά μια γωνία θ σε διαδοχικά tracks. Εξασφαλίζει ταχύτερη ανάγνωση διαδοχικών tracks Interleaving Για ομαλή ροή μεταφοράς.

Caching/prefetching Caching: γίνεται σε δύο μέρη Disk controller (από το firmware του δίσκου) Στη RAM (από το ΛΣ) OS Cache (RAM) 0-90% της RAM. OS Cache Προηγούμενες προσπελάσεις, που μπορεί να ξαναζητηθούν (temporal locality) Controller cache Disk Controller cache 1-8 MB Prefetching: όταν διαβάζεται ένας sector, προ-διαβάζονται οι γειτονικοί του. Spatial locality

Scheduling Διεργασίες -> αιτήσεις Ι/Ο Οδήγηση δίσκου read_sector(sid, buffer) write_sector(sid, buffer) Scheduling = επιλογή επόμενης αίτησης proc1 Ουρά αιτήσεων proc2 R W R Disk scheduler Disk driver proc3

Αλγόριθμοι First Come First Served (FCFS) Πλεονέκτημα: δίκαιη εξυπηρέτηση. Μειονέκτημα: κακή απόδοση. Shortest Seek First (SSF) Άπληστη λύση. Πλεονέκτημα: πολύ καλή απόδοση. Μειονέκτημα: άδικη συμπεριφορά προς κάποιες διεργασίες. Elevator Δίκαιος και με καλή απόδοση.

Αλγόριθμος ασανσέρ (elevator) Πρόβλημα Σε ένα ψηλό κτίριο, ένας αριθμός από ορόφους έχει καλέσει το ασανσέρ. Ποιος θα εξυπηρετηθεί μετά? Αλγόριθμος: το ασανσέρ θα συνεχίσει να κινείται προς την ίδια διεύθυνση, όσο το δυνατόν περισσότερο. Πρόβλημα: Σε ένα δίσκο, ένας αριθμός από αιτήσεις απαιτούν να κινηθεί η κεφαλή του δίσκου σε διάφορα tracks. Ποια αίτηση θα εξυπηρετηθεί μετά? Αλγόριθμος: η κεφαλή θα συνεχίσει να κινείται προς την ίδια διεύθυνση όσο το δυνατόν περισσότερο.

RAID Redundant Array of Inexpensive Disks Patterson et al. 1988 Ιδέα: πολλοί μικροί δίσκοι δουλεύουν παράλληλα Αυξημένη ταχύτητα?αυξημένη αξιοπιστία? Αξιοπιστία: MTBF: Mean Time Between Failures Ενδεικτικά για δίσκους: 10,000-50,000 ώρες Για M δίσκους, ΜΤBF(M) = MTBF(1) / M!!!

RAID level 0: Striping 1 stripe = k sectors (k>=1) Stripe i = sectors i*k i*k + (k-1) Απόδοση: καλή (για μεγάλες προσπελάσεις, εξαιρετική) Αξιοπιστία: κακή 4 δίσκοι Stripe 0 Stripe 1 Stripe 2 Stripe 3 Stripe 4 Stripe 5 Stripe 6 Stripe 7 Stripe 8 Stripe 9 Stripe 10 Stripe 11

RAID level 1: Mirroring Mirroring: διπλάσιοι δίσκοι, ο κάθε δίσκος έχει αντίγραφο. Απόδοση: όπως για RAID-0 Αξιοπιστία: άριστη Stripe 0 Stripe 1 Stripe 2 Stripe 3 Stripe 0 Stripe 1 Stripe 2 Stripe 3 Stripe 4 Stripe 5 Stripe 6 Stripe 7 Stripe 4 Stripe 5 Stripe 6 Stripe 7 Stripe 8 Stripe 9 Stripe 10 Stripe 11 Stripe 8 Stripe 9 Stripe 10 Stripe 11

RAID level 2 Nibble-level splitting Hamming coding: Hamming distance = 3 0000 000 0001 011 0010 101 0011 110 Bit 0 Bit 1 Bit 2 Bit 3 0100 110 0101 101 0110 011 0111 000 1000 111 1001 100 1010 010 Bit 4 Bit 5 Bit 6 1011 001 1100 001 1101 010 1110 100 1111 111

RAID level 3 Nibble-level splitting Parity Bit 0 Bit 1 Bit 2 Bit 3 Parity

RAID level 4 Striping with parity Parity disk is a bottleneck! Stripe 0 Stripe 1 Stripe 2 Stripe 3 Parity 0-3 Stripe 4 Stripe 5 Stripe 6 Stripe 7 Parity 4-7 Stripe 8 Stripe 9 Stripe 10 Stripe 11 Parity 8-11

RAID level 5 No bottleneck! Stripe 0 Stripe 1 Stripe 2 Stripe 3 Parity 0-3 Stripe 4 Stripe 5 Stripe 6 Parity 4-7 Stripe 7 Stripe 8 Stripe 9 Parity 8-11 Stripe 10 Stripe 11 Stripe 12 Parity 12-15 Stripe 13 Stripe 14 Stripe 15 Parity 16-19 Stripe 16 Stripe 17 Stripe 18 Stripe 19

Βασική οργάνωση δίσκων Sector addressing: linear Partitions Σταθερού μεγέθους Σταθερής θέσης Περιορίζονται σε ένα δίσκο Volumes Μεταβλητού μεγέθους Μεταβλητής θέσης Εκτείνονται σε πιθανόν περισσότερους δίσκους Ένα filesystem ανά partition/volume.

Booting (Wintel hardware) Master Boot Record = Sector 0 του δίσκου. Περιέχει 1. Κώδικα για boot 2. Partition table Εκτελείται κατά την εκκίνηση Εντοπίζει το active partition Φορτώνει και εκτελεί το block 0 (boot block).

Blocks Sectors = η μικρότερη μονάδα μνήμης του δίσκου. Blocks = η μικρότερη μονάδα μνήμης των αρχείων ενός filesystem. Block size = k * Sector size (επιθυμητό: k=2 m ) Μικρά blocks Καλύτερη αξιοποίηση χώρου (internal fragmentation) Μεσαίο μέγεθος αρχείων ¼ 2 KB!!! Μεγάλα blocks Καλύτερος ρυθμός μεταφοράς σε random accesses. block size transfer rate = access time + transfer time

Block size tradeoff KB/sec t s b b B ts B 11m sec 16 MB sec Block size (KB)

Μορφοποίηση filesystem boot block superblock Διαχείριση ελεύθερου χώρου Μέθοδοι: bitmap free list Αρχεία και directories Μέθοδοι: File Allocation Table (FAT) i-nodes

Διαχείριση ελεύθερου χώρου bitmap boot block superblock 011010 101000 111110 010101 100111 freelist boot block superblock Αρχεία και directories Αρχεία και directories

Αναπαράσταση αρχείων και directories Αρχείο = metadata + data Metadata: User and group ownership Permissions Creation, update, last access times Flags (hidden, archive, ) Type (Text/Binary/PDF/C/ ) Άλλα (πχ. σχετικά με GUI κλπ) Data = ακολουθία από blocks Directory: ένα αρχείο Metadata: ίσως διαφορετικά από των απλών αρχείων Data = το mapping: όνομα αντικείμενο

File Allocation Table Ακολουθίες των data blocks των αρχείων λίστες. Το FAT φορτώνεται στη RAM. Metadata: αποθηκεύονται μέσα στα directories. Δεν απαιτεί χωριστή διαχείριση του ελεύθερου χώρου. Χρήση στο MS-DOS, δεν χρησιμοποιείται πια. boot block superblock...fat... Χώρος αρχείων 4-1 -1-1 6 7-8 - -1-1 -1...

i-nodes Για κάθε αρχείο, ένας i-node (index node). Data blocks των αρχείων δέντρα. boot block superblock Διαχ. ελεύθ. χώρου i-nodes Χώρος αρχείων

Δομή i-node owner group permissions last access time last update time size Level-2 Level-3

Υλοποίηση Unix filesystem Βασισμένο σε i-nodes. Διαχείριση ελεύθερου χώρου με free-lists. Τα i-nodes είναι «σκορπισμένα» σε όλο το δίσκο. i-node παράμετροι????? level-1 blocks????? level-2/3???? Directories: mappings όνομα i-node i-nodes για μη-αρχεία Περιέχουν τα αντίστοιχα metadata.

Metadata (μεταδεδομένα) Ορισμός: είναι δεδομένα που περιγράφουν άλλα δεδομένα (data about the data!) Εξίσου σημαντικά (ή περισσότερο!) με τα data. Σημαντική ποσότητα μνήμης. Δύο προβλήματα 1. Integrity (ακεραιότητα): σε περίπτωση crash, θα πρέπει τα δεδομένα που είναι γραμμένα στο δίσκο να είναι «συνεπή» (consistent). 2. Απόδοση: κάθε πράξη στο αρχείο (προσπέλαση, εγγραφή...) πρέπει να ενημερώνει τα metadata (εγγραφή στο i-node). 1 file write 2 disk writes!!!!!

Integrity Εξασφαλίζεται από την ατομικότητα (atomicity). Μπορεί να παραβιαστεί από Crash του συστήματος Bugs! (πχ. Race conditions) Παραδείγματα προβλημάτων Inode που δεν απεικονίζεται από direntry. Inode ορίζει μεγαλύτερο μέγεθος αρχείου από τα blocks. Block και στη freelist και σε κάποιο αρχείο Block ούτε στη freelist ούτε σε κάποιο αρχείο.... Λύσεις Off-line: το «καθάρισμα» του file system κατά την εκκίνηση. On-line: journalling.

Καθάρισμα του file system Integrity Εντολή fsck Πρέπει να μπορεί να υπολογιστεί η θέση όλων των i- nodes. Αντίγραφα του superblock. Έλεγχος συνέπειας των i-nodes. Blocks που μπορεί να περιέχουν χρήσιμα δεδομένα επιστρέφονται στο χρήστη Πχ. ούτε στη freelist ούτε σε inode. Φάκελος lost+found Defragmentation: αναδιάταξη των blocks ώστε να έχουμε ακολουθιακά αποθηκευμένα αρχεία. Πρόβλημα: πολύ αργή εκκκίνηση μετά από crash.

Journalling Βασική ιδέα: τηρούμε journal (ημερολόγιο) για όλες τις πράξεις που αφορούν metadata, δηλ. Creat/unlink/mkdir/rmdir/ Open/close/read/write/truncate Chown/chmod/ Σε περίπτωση crash, διαβάζουμε το journal για να επαναφέρουμε το integrity. Τήρηση journal: Write-Ahead Log (WAL). Οι εγγραφές του journal σώζονται πριν (ahead) το αντίστοιχο metadata update. Απόδοση: ελάχιστη επιβάρυνση. Πλεονέκτημα: πολύ γρήγορη εκκίνηση μετά από crash.

Δομή journal Σειριακό αρχείο (συστήματος). Ακολουθία από εγγραφές Πεδία εγγραφής: Αύξων αριθμός, χρονοσφραγίδα (timestamp) Περιγραφή πράξης: είδος, αρχείο, θέση κλπ. Εγγύηση: 1. Κάθε ανανέωση metadata στο δίσκο πρέπει ήδη να αναφέρεται στο journal πριν εκτελεσθεί. 2. Αφού εκτελεσθεί η ανανέωση, πρέπει το journal να περιέχει την επιβεβαίωση της εκτέλεσης. Ανάνηψη από crash: όσες πράξεις αναφέρονται αλλά δεν επιβεβαιώνονται θεωρούνται ως μη γενόμενες. Αν χρειάζεται, αναιρούνται.

Metadata και performance Παραδείγματα προβλήματος. 1. Αρχεία database: πολύ συχνή ενημέρωση του ίδιου αρχείου. Μεγάλο κόστος ενημέρωσης, αλλά τα metadata δεν χρησιμοποιούνται! 2. Πολύ μικρά αρχεία Λύσεις Ένα seek επιπλέον για να ενημερωθεί ο i-node. Ειδικές κλήσεις συστήματος, ρυθμίζουν τον τρόπο ενημέρωσης metadata. Fsync/fdatasync/msync Δε βοηθούν για μικρά αρχεία. Log-structured file systems

Log-structured Filesystems (LFS) Berkeley, 1993(?) Εφαρμογή: file servers όπου γράφονται συχνά πολλά μικρά αρχεία. Βασική ιδέα: επέκταση του journalling και στο γράψιμο μικρών αρχείων. 1. Καθυστερεί το γράψιμο των μικρών αρχείων. Τα περιεχόμενά τους συλλέγονται και διατηρούνται στη μνήμη. 2. Όταν μαζευτούν κάμποσα μικρά αρχεία, γράφονται όλα μαζί, i-node και δεδομένα, ακολουθιακά. Εκτεταμένη χρήση journalling για να μειωθεί το overhead.

Backups Περιοδική δημιουργία αντιγράφων ασφαλείας για την αντιμετώπιση καταστροφικής απώλειας δεδομένων. Restore (επαναφορά): η ανάκτηση μιας συνεπούς κατάστασης του filesystem από αντίγραφα backup. Global (γενικό) backup. Αποθηκεύει ένα πλήρες αντίγραφο (στιγμιότυπο) της κατάστασης του filesystem σε μια δεδομένη στιγμή. Differential backup (με βάση κάποιο στιγμιότυπο). Αποθηκεύει τα αρχεία που μεταβλήθηκαν από τη λήψη του στιγμιοτύπου. Incremental backup (με βάση κάποιο στιγμιότυπο). Αποθηκεύει τα αρχεία που μεταβλήθηκαν από τη λήψη του τελευταίου global ή incremental backup.

Archive bit Αντιστοιχεί ένα bit A σε κάθε αρχείο. Όταν το αρχείο μεταβάλλεται, A=1. Global backup: Αντιγράφει όλα τα αρχεία. Θέτει Α=0. Differential backup: Αντιγράφει τα αρχεία με Α=1. ΔΕΝ αλλάζει το Α. Incremental backup: Αντιγράφει τα αρχεία με Α=1. Θέτει Α=0. Στην πράξη, χρησιμοποιούνται και οι 3 τρόποι: Global: Μια φορά το μήνα. Incremental: Μια φορά την εβδομάδα. Differential: Κάθε μέρα.