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



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

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

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

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

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

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

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

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

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

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

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

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

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

ENOTHTA 8 IAXEIPIΣH KAI ΣYΣTHMATA APXEIΩN

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

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

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

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

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

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

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

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

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

Διαχείριση αρχείων. Τυπικές πράξεις με αρχεία. Δομή και οργάνωση αρχείων

Μάθημα 8: Διαχείριση Μνήμης

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

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

Πανεπιςτήμιο Πελοποννήςου Τμήμα Επιςτήμησ και Τεχνολογίασ Τηλεπικοινωνιών. Λειτουργικά Συςτήματα Προγραμματιςμόσ Συςτήματοσ.

Λειτουργικά Συστήματα Ι. Συστήματα Αρχείων (File Systems)

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 10

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

Εισαγωγή στην Πληροφορική

Κεφάλαιο 2. Διδακτικοί Στόχοι

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

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

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

Εισαγωγή στην Πληροφορική

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

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 5

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

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

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1

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

Λειτουργικά Συστήματα. Ενότητα # 4: Συστήματα Αρχείων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής


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

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

Εισαγωγή στην Πληροφορική. Α σ κ ή σ ε ι ς σ τ η ν ι α χ ε ί ρ ι σ η Μ ν ή µ η ς. Αντώνης Σταµατάκης

Διαχείριση Κύριας Μνήμης

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

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

Κατανεμημένα Συστήματα Αρχείων

Εισαγωγή στον Προγραμματισμό Θεωρία 2 η Διάλεξη: Λογισμικό ΗΥ και Αποθήκευση Αρχείων

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

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

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 9

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

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 9

Το Λειτουργικό Σύστημα MS-DOS

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

1ο Εργαστήριο Σύστημα Αρχείων

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

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

Προηγμένοι Μικροεπεξεργαστές. Paging & Segmentation

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

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

Εισαγωγή στο λειτουργικό σύστηµα Unix

ημιουργία εφεδρικών αντιγράφων ασφαλείας για Lenovo T410-T510

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

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

Θεωρητική Μελέτη των Journaling Filesystems

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

Μόνιμη Αποθήκευση Δεδομένων στον Η/Υ

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Πληροφορική 2. Δομές δεδομένων και αρχείων

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

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

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

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

Κεφάλαιο 4: Λογισμικό Συστήματος

ιαχείριση Μνήµης (Memory Management)

Τα µπιτ και η σηµασία τους. Σχήµα bit. ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) 1.7 Αποθήκευση κλασµάτων 1.8 Συµπίεση δεδοµένων 1.9 Σφάλµατα επικοινωνίας

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

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

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

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ

ΛΟΓΙΣΜΙΚΟ (software)

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

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

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

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

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

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

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

Transcript:

Σύστηµα Αρχείων File System Περίληψη Το σύστηµα αρχείων από την σκοπιά του χρήστη Ονοµασία αρχείων και επιτρεπόµενες λειτουργίες Κατάλογος αρχείων (directories) Το σύστηµα αρχείου από την σκοπιά του σχεδιαστή Πως αποθηκεύονται τα αρχεία και οι κατάλογοι ιαχείριση του χώρου του δίσκου Αποδοτική και αξιόπιστη λειτουργία Παραδείγµατα CD-ROM MS-DOS & Windows Linux 1

Αρχεία Αρχεία (files) είναι ένας «µηχανισµός» µε το οποίο Αποθηκεύονται πληροφορίες σε συσκευές αποθήκευσης έτσι που να µπορούν εύκολα να διαβαστούν σε µεταγενέστερο χρόνο. Χωρίς ο χρήστης να πρέπει να ξέρει που ακριβώς αποθηκεύθηκαν τα δεδοµένα ή πως ακριβώς λειτουργεί ο δίσκος. Οργάνωση εδοµένων Πεδία (fields) Καταχωρήσεις (records): Συλλογή από σχετικά πεδία Αρχεία (files): Συλλογή από σχετικές καταχωρήσεις Βάσεις εδοµένων (databases) Απώτεροι Στόχοι του Συστήµατος ιαχείρισης Αρχείων Να ικανοποιεί τις ανάγκες του χρήστη Να «εγγυάται» (στο δυνατό βαθµό) την αξιοπιστία των δεδοµένων Τα δεδοµένα είναι ορθά Τα δεδοµένα δεν έχουν χαθεί Να Βελτιστοποιεί την απόδοση Ρυθµός διεκπεραίωσης καθώς και χρόνος απόκρισης Να υποστηρίζει τις συσκευές αποθήκευσης δεδοµένων Να παρέχει τυποποιηµένη και εύκολη πρόσβαση στις συσκευές Ε/Ε Να υποστηρίζει πολλαπλούς χρήστες (σε περίπτωση συστηµάτων µε πολλαπλούς χρήστες) 2

Ανάγκες χρηστών Οκάθε χρήστης θέλει να µπορεί να δηµιουργήσει και να διαγράψει, να διαβάζει, να γράφει ή να µεταβάλλει ένα αρχείο. Ο κάθε χρήστης θέλει να ελέγχει την πρόσβαση στα δικά του αρχεία καθώς και να έχει ελεγχόµενη πρόσβαση στα αρχεία άλλων χρηστών Η πρόσβαση να γίνεταί µε συµβολικά ονόµατα (όχι απλούς αριθµούς) Ο κάθε χρήστης θέλει να µπορεί να αναδιοργανώνει τα αρχεία του ανάλογα µε το πρόβληµα Ο κάθε χρήστης θέλει να µπορεί να µεταφέρει δεδοµένα µεταξύ αρχείων Ο κάθε χρήστης θέλει να έχει πρόσβαση στα δεδοµένα του ακόµα και µετά από κάποιο καταστροφικό γεγονός ή και «βλακεία» (backup) Ονόµατα Αρχείων Το ΛΣ µπορεί να διάφορους κανόνες σχετικούς µε τα ονόµατα των αρχείων Το µέγεθος ενός ονόµατος (π.χ. 8 χαρακτήρες) Τη χρήση ειδικών χαρακτήρων (π.χ.!.#$%) Τη δοµή του ονόµατος (π.χ. Filename.ext) Η προέκταση του ονόµατος (.ext) µπορεί να δηλώνει το τύπο του αρχείου fn.txt, fn.c, fn.hlp, fn.pdf, fn.exe Τη χρήση κεφαλαίων ή µικρών χαρακτήρων (fn.txt ή Fn.txt) 3

Βασική οµή Αρχείων 1 byte 1 record Συνεχόµενη σειρά από bytes (Unix and Windows) Συνεχόµενη σειρά από καταχωρήσεις έντρο (tree) Τύποι Αρχείων Κανονικά αρχεία (regular files) περιέχουν δεδοµένα του χρήστη ASCII or Binary Κατάλογοι αρχείων (directories) Ειδικά αρχεία (Character and block special files) Τα διάφορα αρχεία έχουν δοµή η οποία εξαρτάται από το ΛΣ. Κάθε ΛΣ πρέπει να αναγνωρίζει τουλάχιστον τα αρχεία προγραµµάτων (executables) Header Magic number Text size Data size BSS size Entry point Flags Text Data Relocation Bits Symbol Table (Debugging) 4

Πρόσβαση στα Αρχεία Σειριακή Πρόσβαση (sequential access) Όλα τα bytes ή όλες οι καταχωρήσεις διαβάζονται µε την σειρά Εάν από ένα αρχείο χρειαζόµαστε µόνο την τελευταία γραµµή, πρέπει να διαβάσουµε ολόκληρο το αρχείο! Τυχαία Πρόσβαση Αρχείων (Random Access Files) Τα αρχεία µπορούν να διαβαστούν από οποιοδήποτε σηµείο Η τυχαία πρόσβαση είναι πολύ σηµαντική για πολλές εφαρµογές όπως π.χ. τις βάσεις δεδοµένων Μέθοδοι για τυχαία πρόσβαση Read: παίρνει σαν παράµετρο τη διεύθυνση του σηµείου απ όπου να ξεκινήσει η πρόσβαση. Seek: Ειδική εντολή η οποία τοποθετεί το «δείκτη» του αρχείου σε οποιοδήποτε σηµείο. Πρόσβαση χρησιµοποιώντας Συστηµικές κλήσεις Memory map (Το αρχείο φορτώνεται στο χώρο της διεργασίας) Ιδιότητες Αρχείων (File Attributes) 5

Λειτουργίες Αρχείων (File Operations) Create: ηµιουργία αρχείου Delete: ιαγραφή αρχείου και ελευθέρωση µνήµης Open: Φόρτωση ιδιοτήτων και διευθύνσεων του αρχείου στην κύρια µνήµη Close: Ελευθέρωση της κύριας µνήµης Read / Write / Append είκτης (current position) Seek: Μετακινεί το δείκτη στο σηµείο που θέλει ο χρήστης Get/Set Attributes: ιαβάζουν ή αλλάζούν τις ιδιότητες του αρχείου Rename: Αλλάζει το όνοµα του αρχείου Κατάλογοι Αρχείων (Directories) Χρησιµοποιούνται για την καλύτερη οργάνωση των αρχείων Συστήµατα µε ένα µόνο φάκελο (root directory) δεν είναι πρακτικά Όλοι οι χρήστες πρέπει να αποθηκεύουν τα αρχεία τους στο ίδιο φάκελο εν µπορεί να χρησιµοποιηθεί το ίδιο όνοµα αρχείου Ιεραρχικοί κατάλογοι αρχείων Κάθε φάκελος µπορεί να περιέχει αρχεία και φακέλους Πρόσβαση στα αρχεία παρέχεται µε το όνοµα του µονοπατιού (path name) Απόλυτο (ολόκληρο) µονοπάτι (Absolute path name) Σχετικό µονοπάτι (Relative path name) 6

Λειτουργίες Καταλόγων (Directory Operations) Create: ηµιουργία ενός καταλόγου Delete: ιαγραφή Καταλόγου (Μόνο άδειοι κατάλογοι µπορούν να διαγραφούν) Opendir: Φόρτωση ιδιοτήτων και διευθύνσεων του καταλόγου στην κύρια µνήµη Closedir: Ελευθέρωση της κύριας µνήµης Readdir: Επιστρέφει την επόµενη καταχώρηση στον κατάλογο Rename: Αλλάζει το όνοµα του αρχείου Link / unlink: Συνδέει αρχεία έτσι που το ίδιο αρχείο να εµφανίζεται στο κατάλογο περισσοτέρων χρηστών Ένα πρόγραµµα µπορεί να το βλέπουν όλοι οι χρήστες αλλά να υπάρχει ένα µόνο αντίγραφο στο δίσκο ιαρρύθµιση του Συστήµατος Αρχείων Σύστηµα Αρχείων MBR Partition 1 Partition 2 Partition 3 Partition 4 Partition Table Master Boot Record οµή ενός Partition (εξαρτάται από σύστηµα αρχείων) Boot Block Super Block Free space management i-nodes Root Directory Files & Directories Super Block: Παράµετροι του συστήµατος αρχείων Free Space Management: Τρόπος διαχείρισης των ελεύθερων τοµέων i-nodes: δοµή δεδοµένων που χαρακτηρίζει κάθε κατάλογο και αρχείο (UNIX) 7

Αποθήκευση Αρχείων Ένα αρχείο µπορεί να αποθηκευτεί σε µια σειρά από συνεχόµενους τοµείς (blocks) Σηµειώστε πως τα blocks ορίζονται από το ΛΣ και πιθανότατα είναι διαφορετικά από του τοµείς (sectors) του δίσκου. Για παράδειγµα ένα sector µπορεί να είναι 512 bytes ενώ το ΛΣ µπορεί να ορίσει το block σαν 2K (δηλαδή 4 sectors). Απλή µέθοδος διαχείριση Για ένα αρχείο το µόνο που χρειάζεται είναι η αρχική διεύθυνση και το µέγεθος του αρχείου. Έχει εξαιρετική απόδοση αφού µε µια µόνο αναζήτηση µπορούµε να διαβάσουµε ολόκληρο το αρχείο Το σηµαντικό µειονέκτηµα της µεθόδου είναι ότι οδηγεί σε κατακερµατισµό (fragmentation) της χωρητικότητας του δίσκου Όταν διαγραφεί ένα αρχείο αφήνει πίσω του τρύπες Χρησιµοποιείται στα CD-ROMS Αποθήκευση Αρχείων Τα blocks συνδέονται µεταξύ τους σε διάταξη συνδεδεµένης λίστας Η πρώτη καταχώρηση κάθε block είναι ο δείκτης στο επόµενο block File A Block 0 Locat. 4 Block 1 Locat. 7 Block 2 Locat. 2 Block 3 Locat. 10 Block 4 Locat. 12 File B Block 0 Locat. 6 Block 1 Locat. 3 Block 2 Locat. 11 Block 3 Locat. 14 Η µέθοδος αυτή έχει σοβαρό πρόβληµα απόδοσης Εάν χρειαζόµαστε κάποιες πληροφορίες από το block 4 του Αρχείου Α, τότε θα πρέπει να διαβάσουµε τουλάχιστον την επικεφαλίδα κάθε block 0-3 για να βρούµε το block 4. Επίσης το µέγεθος του block δεν είναι πλέον δύναµη του 2. 8

Αποθήκευση Αρχείων Εναλλακτικά η λίστα φορτώνεται ολόκληρη στην κύρια µνήµη (File Allocation Table (FAT)) Το πρόβληµα µε αυτή τη µέθοδο είναι το µέγεθος του FAT Αν ένας δίσκος είναι 20GB και εάν τα blocks είναι 1KB, τότε χρειαζόµαστε περίπου 60-80MB Θα µπορούσε να χρησιµοποιηθεί σύστηµα σελίδωσης οπόταν µόνο µέρος του FAT θα είναι φορτωµένο στην κύρια µνήµη File A File B 0 2 4 6 8 10 12 10 11 7 3 2 12 14-1 14-1 Αποθήκευση Αρχείων i-nodes (index-nodes) οµές δεδοµένων που κρατούν πληροφορίες για κάθε αρχείο και κάθε κατάλογο Κρατούν επίσης µια σειρά µε δείκτες σε όλα τα blocks του αρχείου Η τελευταία καταχώρηση της σειράς κρατείται σε περίπτωση που το µέγεθος του αρχείου είναι µεγαλύτερο από το µέγιστο χώρο της σειράς. Σε τέτοια περίπτωση, η τελευταία καταχώρηση δείχνει σε ένα άλλο i-node. Όταν χρησιµοποιούµε i-nodes µπορούµε να φορτώσουµε στην κύρια µνήµη µόνο τα i-nodes των ανοικτών αρχείων. File attributes Address of block 0 Address of block n-1 Address of block n Other table 9

Ιδιότητες Αρχείων Που αποθηκεύουµε το όνοµα (συµπεριλαµβανοµένου και του µονοπατιού) και τις ιδιότητες (attributes) κάθε αρχείου Μια πιθανή λύση είναι στην καταχώρηση του καταλόγου Σε περίπτωση που χρησιµοποιούνται i-nodes τότε αποθηκεύουµε το όνοµα στην καταχώρηση του καταλόγου και τις υπόλοιπες ιδιότητες στο i-node. Πόσο χώρο δεσµεύουµε για την κάθε ιδιότητα; Π.χ., πόσο χώρο να αφιερώσουµε για το όνοµα του αρχείου; Σε περίπτωση σταθερού χώρου MS-DOS: 8 χαρακτήρες συν 3 χαρακτήρες για προέκταση. Αυτή η λύση είναι περιοριστική, όµως δεν σπαταλά µνήµη. Κάποιος θα µπορούσε να επιτρέψει ονόµατα µέχρι 255 χαρακτήρες, όµως στα πλείστα αρχεία ο χώρος θα έµενε αχρησιµοποίητος Σε περίπτωση µεταβαλλόµενου χώρου, πρέπει από την αρχή να δηλώνουµε το µέγεθος του ονόµατος Τι θα συµβεί αν µεγαλώσει το όνοµα ή αν διαγράψουµε το αρχείο; Αρχεία που Χρησιµοποιούνται από Πολλαπλούς Χρήστες (sharing) Σε περιπτώσεις που ένα αρχείο χρησιµοποιείται από περισσότερους από ένα χρήστες δηµιουργούνται διάφορα προβλήµατα Εάν ένα αρχείο εµφανίζεται στο σύστηµα αρχείων δύο χρηστών (A-B) τότε αν ο Α προσθέσει κάποια δεδοµένα (append) τότε η αλλαγές θα εµφανιστούν στο σύστηµα του Α αλλά όχι του Β. Η λίστα µε τα blocks του αρχείου να µην αποθηκεύεται στον κατάλογο αλλά σε µια δοµή συνδεδεµένη µε το αρχείο (π.χ. i-node). Χρησιµοποιώντας Link αρχεία (symbolic linking) Εάν ένα αρχείο ανήκει στον χρήστη Α και το χρησιµοποιεί και ο Β. Τι θα συµβεί αν αποφασίσει ο Α να το διαγράψει; Κάθε αρχείο έχει και ένα µετρητή που µετρά τους χρήστες που το χρησιµοποιούν. Όταν ένας νέος χρήστης θέλει το αρχείο, ο µετρητής αυξάνεται κατά ένα Όταν ένας χρήστης θέλει να το διαγράψει, τότε αφαιρείται ένα από το µετρητή Εάν η τιµή του µετρητή είναι 0, τότε ο αρχείο διαγράφεται 10

Μέγεθος των Blocks Εάν χρησιµοποιείται σελίδωση (paging), τότε το µέγεθος της κάθε σελίδας (page) είναι το ίδιο µε το µέγεθος των blocks. Σε περίπτωση που χρησιµοποιούνται µεγάλα blocks τότε γίνεται σπατάλη της µνήµης αφού µεγάλο µέρος του block µπορεί να µείνει κενό. Μεγάλα blocks όµως διαβάζονται σχετικά πιο γρήγορα (λιγότερες αναζητήσεις - seek) και χρειάζονται λιγότερο χώρο για τον πίνακα αρχείων ιαχείριση Αχρησιµοποίητων Blocks Bit-map: Σε κάθε block αντιστοιχεί ένα bit το οποίο υποδηλώνει κατά πόσο το block είναι ελεύθερο ή όχι. Πίνακας µε δείκτες (index table): Το ΛΣ διατηρεί ένα πίνακα στον οποίο αναγράφονται οι διευθύνσεις όλων των ελεύθερων blocks. Συνεχόµενα blocks: Το ΛΣ διατηρεί, ένα πίνακα στον οποίο αναγράφεται η διεύθυνση του πρώτου ελεύθερου block καθώς και ο αριθµός των συνεχόµενων ελεύθερων που ακολουθούν 11

Αξιοπιστία του Συστήµατος Αρχείων Οι πληροφορίες ενός συστήµατος αρχείων πρέπει να αποθηκεύονται τακτικά σε εναλλακτικά µέσα αποθήκευσης, π.χ. µαγνητικές ταινίες (Backup). Τα αντίγραφα (backup) θα πρέπει να φυλάγονται σε διαφορετικούς χώρους για αποφυγή καταστροφικών γεγονότων (π.χ. φωτιά σε κτίριο). Physical Dump Αντιγράφονται όλοι οι τοµείς (sectors) του δίσκου εν υπάρχει λόγος να αντιγράψουµε άδειους ή χαλασµένου τοµείς Ποια αρχεία αποθηκεύονται Αρχεία µε δεδοµένα εν υπάρχει λόγος αποθήκευσης προγραµµάτων (εφόσον έχουµε το CD εγκατάστασης) εν υπάρχει λόγος αποθήκευσης προσωρινών αρχείων Αρχικά αποθηκεύονται όλα τα αρχεία και στη συνέχεια µόνο τα αρχεία τα οποία έχουν µεταβληθεί (incremental dump) Έλεγχος της συνέπειας (consistency) των δεδοµένων Ελέγχουµε κατά πόσο οι πίνακες αρχείων και αχρησιµοποίητων αρχείων είναι σωστοί (π.χ., ένα block δεν εµφανίζεται και σαν άδειο αλλά και σαν καταχωρηµένο) Απόδοση του Συστήµατος Αρχείων Caching: Αρχεία (ή blocks) τα οποία έχουν χρησιµοποιηθεί στο παρελθόν φυλάγονται στην µνήµη εάν υπάρχει περίπτωση να ξαναχρησιµοποιηθούν στο άµεσο µέλλον Κάποια blocks µπορεί να φορτωθούν στην µνήµη πριν ακόµα ζητηθούν π.χ. εάν ζητηθεί το n µπορεί να φορτωθεί και το n+1 σε περίπτωση που χρειαστεί. Πόσο συχνά φυλάγεται block από το cache στο δίσκο; Κάθε φορά που γίνεται κάποια αλλαγή, αυτή αποθηκεύεται αµέσως στο δίσκο (write-through caches) ηµιουργεί πολλές συστηµικές κλήσεις αλλά αποφεύγει πιθανόν απώλειες δεδοµένων λόγω οποιασδήποτε βλάβης MS-DOS Οι αλλαγές αποθηκεύονται περιοδικά (π.χ. κάθε 30 δευτερόλεπτα) Υπάρχει περίπτωση να χαθούν δεδοµένα UNIX 12

Σύστηµα Αρχείων CD-ROM Το σύστηµα αρχείων του CD-ROM (π.χ. ISO 9660) είναι από τα πιο απλά και στόχο έχει να µπορεί να χρησιµοποιείται σε διαφορετικά συστήµατα (π.χ. Linux, Windows, Mac κλπ). Το πρότυπο ISO 9660 υποστηρίζει µέχρι 2 16-1 = 65535 Το µέγεθος ενός block µπορεί να είναι 2048, 4096 ή 8192 bytes. Σε ειδικές περιπτώσεις µπορεί να είναι µεγαλύτερο. Τα πρώτα 16 blocks δεν ορίζονται από το πρότυπο. Ο κατασκευαστής µπορεί να τα χρησιµοποιήσει για κάποιο πρόγραµµα ή για να αρχικοποιήσει το σύστηµα (boot up) Primary Volume Descriptor περιέχει γενικές πληροφορίες για το CR- ROM Βlock size, number of blocks on the CD-ROM, address of the root directory (its block number) System, volume, publisher, and data preparer identifiers Abstract, copyright notice, bibliographic information Σύστηµα Αρχείων CD-ROM Directory entry length padding 11 8 8 7 1 2 4 1 4-15 Location of file File size Date & Time CD # L File name sys Extended Attribute Length Flags Interleave Καταχωρήσεις καταλόγου (directory entries) Location of File: αρχικό block του αρχείου Flags: Κρυµµένα αρχεία (hidden entries), προεκτάσεις (extended entries) κλπ. CD #: ο αριθµός του CD στο οποίο είναι καταχωρηµένο το αρχείο L: το µέγεθος του ονόµατος του αρχείου File name: basename.ext;ver Padding: χρησιµοποιείται εάν χρειαστεί για να κάνει το συνολικό αριθµό των bytes άρτιο. Sys: προεκτάσεις στο πρότυπο 13

Σύστηµα Αρχείων CD-ROM Στο πρότυπο ορίζονται 3 επίπεδα Το Επίπεδο 1 (level 1) είναι το πιο περιοριστικό αλλά έχει τις περισσότερες πιθανότητες να δουλεύει µε όλα τα συστήµατα Ονόµατα αρχείων µε µόνο 8+3 χαρακτήρες και καταλόγων µέχρι 8 χαρακτήρες. Το δέντρο του καταλόγου εκτείνεται µόνο µέχρι οκτώ επίπεδα Τα αρχεία πρέπει να είναι συνεχόµενα Το Επίπεδο 2 επιτρέπει ονόµατα µέχρι 31 χαρακτήρες Το Επίπεδο 3 Επιτρέπει αρχεία τα οποία να είναι µερικώς κατακερµατισµένα Προεκτάσεις (Extensions) Rock Ridge Extension (UNIX) Επιτρέπει µεγαλύτερα ονόµατα κλπ Joliet Extension (Windows) Control Program for Microcomputers (CP/M) ΛΣ για τον Intel 8080 και αργότερα για τον Zilog Z80 Προποµπός του MS-DOS Απλό ΛΣ οι βάσεις του οποίου µπορούν να χρησιµοποιηθούν για το σχεδιασµό ΛΣ για ενθυλακωµένα συστήµατα (embedded systems) Υποστηρίζει floppy drives αρχικά 180ΚΒ και αργότερα 720ΚΒ (µέχρι 64ΚΒ RAM). Υποστήριζε µόνο ένα κατάλογο (root directory) Για εξοικονόµηση µνήµης, ο κατάλογος δεν διατηρείται στην κύρια µνήµη Κατά τη αρχικοποίηση το ΛΣ δηµιουργεί ένα bit-map όλων των blocks το οποίο διατηρείται στην κύρια µνήµη 14

Control Program for Microcomputers (CP/M) User Code Extent Disk block numbers 1 8 3 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 File Name File Type (extension) Block count Καταχωρήσεις καταλόγου (directory entries) Παρόλο που το σύστηµα δεν υποστηρίζει ταυτόχρονους πολλαπλούς χρήστες, υποστηρίζει πολλαπλούς χρήστες οι οποίοι έχουν πρόσβαση ένας κάθε φορά. Το µέγεθος κάθε block είναι 1 ΚΒ (8 sectors των 128 bytes) To block count µετρά το συνολικό αριθµό blocks του αρχείου Σε περίπτωση που το αρχείο είναι µεγαλύτερο από 16ΚΒ (ο µέγιστος αριθµός από δείκτες σε blocks) µπορεί ένας δείκτης να δείχνει σε άλλο πίνακα ο οποίος περιέχει επιπρόσθετους δείκτες. Σε αυτή την περίπτωση το πεδίο extent κρατά τη σειρά των πινάκων MS-DOS Όπως και το CP/M χρησιµοποιεί ονόµατα 8+3 κεφαλαίων χαρακτήρων Αρχικά (έκδοση 1) υποστήριζε µόνο ένα κατάλογο (root directory) αλλά από την έκδοση 2 και µετά υποστηρίζει ιεραρχικούς καταλόγους Οι καταχωρήσεις των αρχείων στους καταλόγους είναι σταθερού µήκους 32 bytes Attributes Date File Name 8 3 1 10 2 2 2 Reserved 4 File Size File Type (extension) Time First Block Number Στην καταχώρηση δεν αποθηκεύονται οι διευθύνσεις όλων των block του αρχείου. Αποθηκεύει µόνο τη διεύθυνση του πρώτου block του αρχείου. Οι διευθύνσεις όλων block του αρχείου αποθηκεύονται στο File Allocation Table (FAT) το οποίο είναι φορτωµένο στην κύρια µνήµη 15

MS-DOS File Allocation Table (FAT) Blocks έρχονται σε πολλαπλάσια µεγέθη των 512 bytes (cluster sizes). Ανάλογα µε το µέγεθος του κάθε block και τον αριθµό των bits που χρησιµοποιούνται για τις διευθύνσεις των blocks στο δίσκο καθορίζεται το µέγιστο µέγεθος ενός partition. FAT-12 Χρησιµοποιεί blocks 512 bytes, 1ΚΒ, 2ΚΒ ή 4ΚΒ Χρησιµοποιεί 12 bits για τις διευθύνσεις του κάθε block στο δίσκο FAT-16 Χρησιµοποιεί blocks 2ΚΒ, 4ΚΒ, 8ΚΒ, 16KB, 32KB Χρησιµοποιεί 16 bits για τις διευθύνσεις του κάθε block στο δίσκο FAT-32 Χρησιµοποιεί blocks 4ΚΒ, 8ΚΒ, 16KB, 32KB Χρησιµοποιεί 28 bits για τις διευθύνσεις του κάθε block στο δίσκο MS-DOS Μέγιστο µέγεθος ενός partition στις διάφορες εκδόσεις του FAT Block Size 0.5 KB 1 KB 2 KB 4 KB 8 KB 16 KB 32 KB FAT-12 2 MB 4 MB 8 MB 16 MB FAT-16 128 MB 256 MB 512 MB 1024 MB 2048 MB FAT-32 1 TB 2 TB 2 TB 2 TB To MS-DOS βρίσκει τα ελευθέρα blocks απευθείας από το FAT, οπόταν δεν χρειάζεται επιπρόσθετη δοµή 16

Windows NTFS Βασικό στοιχείου του NTFS είναι η ικανότητα της αποκατάστασης του συστήµατος αρχείων (όχι κατ ανάγκη όλων των αρχείων) σε περίπτωση που χαλάσει ο δίσκος Κάθε αλλαγή στο σύστηµα αρχείων αντιµετωπίζεται σαν «ατοµική» αλλαγή (δηλαδή πρέπει να συµπληρωθεί ή δεν εκτελείται καθόλου). Κάθε σηµαντική αλλαγή (cut-paste ενός φακέλου) καταχωρείται πρώτα σε ένα αρχείο (log-file). Εάν η αλλαγή δεν διεκπεραιωθεί κανονικά, τότε το σύστηµα αρχείων θα αποκατασταθεί από το log-file. Ένα αρχείο στο NTFS δεν αποτελείται µόνο από µια σειρά από bytes, αλλά µπορεί να έχει πολλαπλές σειρές (multiple data streams). Μια σειρά µπορεί να έχει τα δεδοµένα του αρχείου (π.χ. µια φωτογραφία), άλλη ροή µπορεί να έχει πληροφορίες για το αρχείο. Στην περίπτωση της φωτογραφίας άλλη σειρά µπορεί να έχει τη φωτογραφία σε σµίκρυνση. Γιατί; Windows NTFS Το NTFS υποστηρίζει µεγάλους (και πολύ µεγάλους) δίσκους πολύ αποδοτικά. Οργανώνει τους τοµείς (sectors) του δίσκου σε clusters (συνεχόµενοι τοµείς). Το NTFS αναγνωρίζει µόνο clusters. Εάν χρησιµοποιούνται clusters των 32ΚΒ, ένα αρχείο 2ΚΒ θα κρατήσει ολόκληρο το cluster! Το NTFS χρησιµοποιεί τον ακόλουθο πίνακα για να καθορίσει το µέγεθος του cluster Volume Size Volume Size < 512MB 512MB-1GB 1GB-2GB 2GB-4GB Sectors per Cluster 1 2 4 8 Cluster Size 512b 1K 2K 4K 4GB-8GB 8GB-16GB 16GB-32GB >32GB Sectors per Cluster 16 32 64 128 Cluster Size 8K 16K 32K 64K 17

Windows NTFS Partition boot sector MFT & MFT2 System Files File Area Partition boot sector: πληροφορίες για την διαρρύθµιση του partition, τη δοµή του συστήµατος αρχείων, κώδικα για αρχικοποίηση MFT (Master File Table): Περιέχει πληροφορίες για όλους τους φακέλους και αρχεία του partition. Περιέχει δείκτες στα clusters στα οποία είναι αποθηκευµένο το κάθε αρχείο. Περιέχει επίσης ιδιότητες του κάθε αρχείου καθώς και ένα bit-map µε τα ελεύθερα clusters MFT2: αντίγραφο του MFT για αξιοπιστία Linux The Linux Virtual File System VFS Ο στόχος του είναι να καταστήσει το σύστηµα αρχείων του Linux συµβατό µε διάφορα άλλα συστήµατα αρχείων (π.χ. FAT, NTFS, IBM JFS). Όταν µια διεργασία καλέσει µια συστηµική κλήση τότε το VFS χειρίζεται την κλήση µέχρι ενός σηµείου και µετά καλεί την κατάλληλη ρουτίνα του συστήµατος αρχείων στο οποίο ανήκει το αρχείο Τα βασικά στοιχεία ενός partition του Linux είναι Superblock object I-node Object D-entry Object File Object 18

Linux Superblock object: Περιέχει σηµαντικές πληροφορίες του συστήµατος αρχείων Συσκευή στην οποία είναι εγκατεστηµένο το σύστηµα αρχείων Το µέγεθος των blocks Λίστα µε τα ανοικτά αρχεία είκτη στο root directory Σηµατοφόρους ελέγχου πρόσβασης στο σύστηµα αρχείων ιάφορα bits που δείχνουν ποια αρχεία έχουν αλλάξει, ποια είναι µόνο για διάβασµα κλπ. Λίστα µε τις λειτουργίες στο Superblock *read_inode, *write_inode, *delete_inode, κλπ. I-node Object Κάθε αρχείο ή κατάλογος (directory) έχει το δικό του i-node. Περιέχει ιδιότητες του αρχείου και δείκτες στα blocks στα οποία είναι αποθηκευµένο το αρχείο Linux Λειτουργίες σε I-node Objects create: ηµιουργεί νέο i-node για ένα νέο αρχείο lookup: Ψάχνει για το i-node που αντιστοιχεί σε κάποιο αρχείο mkdir: ηµιουργεί ένα νέο i-node για ένα νέο κατάλογο D-entry Object Υποστηρίζουν την πρόσβαση στα αρχεία και καταλόγους (directories) File Object Κρατούν πληροφορίες των ανοικτών αρχείων D-entry του αρχείου Το σύστηµα αρχείων στο οποίο βρίσκεται το αρχείο Ταυτότητες του χρήστη και της οµάδας είκτης στο σηµείο που θα γίνει η επόµενη λειτουργία 19