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

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

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

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

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

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

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


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

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

Προγραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

Κεφάλαιο 12: Είσοδος και έξοδος δεδομένων σε αρχεία

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

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

Εργαστήριο 9: Αρχεία

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

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα αρχείων

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

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

./mydiz {-c -a -x -m -d -p -j} <archive-file> <list-of-files/dirs>

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

ΚΕΦΑΛΑΙΟ 1 Ψηφιακός Κόσμος

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

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

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

[5] Στόχοι. Σύστημα αρχείων. Υπολογιστικά συστήματα: Στρώματα

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

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

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

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

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

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

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

Μεθόδων Επίλυσης Προβλημάτων

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στο Unix

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

Ενότητα 5: ΜΕΤΑΒΛΗΤΕΣ

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

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

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

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

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

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

Εισαγωγή στην Access 2007

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

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

1. Τα τμήματα της επιφάνειας εργασίας των Windows

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 6 : Δομές αρχείων. Δρ. Γκόγκος Χρήστος

Σημειωματάριο Τετάρτης 25 Οκτ. 2017

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

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (TP-105)

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

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

Λίγα λόγια από το συγγραφέα...7

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Αρχεία Δεδομένων. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

FTP - (File Transfer Protocol ) Πρωτόκολλο Μεταφοράς Αρχείων

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

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

Άνοιγμα (και κλείσιμο) της εφαρμογής Εγγράφου Κειμένου

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

ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο

Σύντοµο Εγχειρίδιο Χρήσης. του Λογισµικού Στατιστικής Επεξεργασίας. SPSS for Windows v. 8.0

ΕΙΣΑΓΩΓΗ ΣΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ Microsoft WINDOWS (95-98-NT-2000-XP)

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

Βασικές Έννοιες της Πληροφορικής

ΤΟ ΕΣΩΤΕΡΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ

3ο Εργαστήριο Βασικές εντολές διαχείρισης αρχείων σε LINUX

Αρχεία. Προγραμματισμός II 1

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

ΦΥΛΛΟ ΠΛΗΡΟΦΟΡΙΩΝ. Μονάδες μέτρησης χωρητικότητας μνήμης - Η περιφερειακή μνήμη

Δομημένος Προγραμματισμός

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

Transcript:

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

Λειτουργικά Συστήματα & Γλώσσες Προγραμματισμού Διαφάνειες σύμφωνα με τις Πανεπιστημιακές Σημειώσεις του Καθηγητή Κ. Γιαννάκογλου Επιμέλεια: Επικ. Καθηγητής Ν. Πετρόπουλος Παρουσίαση 3 2

Περιεχόμενα Παρουσίασης 3 "ΑΡΧΕΙΑ" 1. Ορισμός & Ανάγκη Αρχείων 2. Κατάλογοι ή Φάκελοι Αρχείων 3. Ονοματολογία Αρχείων & Καταλόγων 4. Δομή & Τύποι Αρχείων 5. Δομή Καταλόγων 6. Διαχείριση Αρχείων & Καταλόγων 7. Υλοποίηση Συστήματος Αρχείων Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 3

Ορισμός & Ανάγκη Αρχείων (1) Ως Αρχείο (file) ορίζεται ένας Πόρος (resource) του Η/Υ, που είναι συνήθως κάποιο τμήμα του δευτερεύοντος αποθηκευτικού χώρου (ΔΑΧ) και χρησιμοποιείται για την μόνιμη ηλεκτρονική αποθήκευση πληροφοριών. Ο πληροφορίες εντός του χώρου αυτού είναι προσβάσιμες για χρήση από Διεργασίες (π.χ. δεδομένα για ένα Πρόγραμμα) ή είναι αποτελέσματα Διεργασιών (π.χ. αποτελέσματα Προγραμμάτων Εφαρμογών, λ.χ. το κείμενο ενός Επεξεργαστή Κειμένου) Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 4

Ορισμός & Ανάγκη Αρχείων (2) Ένα Αρχείο είναι "μόνιμο" (durable) με την έννοια ότι παραμένει διαθέσιμο στον ΔΑΧ, προς χρήση και από άλλες Διεργασίες, όταν αυτή που το χρησιμοποιούσε ή το δημιούργησε τελειώσει ή ακόμα και από πολλές Διεργασίες παράλληλα. Η ύπαρξη ενός Αρχείου στον ΔΑΧ διατηρείται ανεξάρτητα αν ο Η/Υ τροφοδοτείται με ισχύ ή όχι. Ένα Αρχείο διαγράφεται μόνο με συγκεκριμένες οδηγίες προς το Λ/Σ. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 5

Ορισμός & Ανάγκη Αρχείων (3) Τα Αρχεία επιτρέπουν την αποθήκευση μεγάλων ποσοτήτων πληροφοριών. Ένα και μόνο Αρχείο δυνατόν να είναι τόσο μεγάλο που να καταλαμβάνει όλο το διαθέσιμο ΔΑΧ (δηλ. τον σκληρό δίσκο, το USB stick ή μία κάρτα μνήμης). Αν από ένα Αρχείο αφαιρεθεί πληροφορία τότε ο χώρος που αυτό καταλαμβάνει στον ΔΑΧ μειώνεται και αντίστροφα. Την ευθύνη διαχείρισης των Αρχείων έχει το Λ/Σ, το οποίο αναλαμβάνει να τα "τακτοποιεί" εντός του ΔΑΧ, ώστε ιδανικά να καταλαμβάνουν σειριακά τα μικρότερα δυνατά τμήματα. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 6

Ορισμός & Ανάγκη Αρχείων (4) Το τμήμα (πρόγραμμα) του Λ/Σ που διεκπεραιώνει τη διαχείριση Αρχείων ονομάζεται Σύστημα Αρχείων (file system). Ανάλογα πως έχει σχεδιαστεί το Σύστημα Αρχείων καθορίζονται οι κανόνες που διέπουν: τη δομή // το όνομα // τα δικαιώματα προσπέλασης // την προστασία κλπ των Αρχείων. Με το Σύστημα Αρχείων επιτυγχάνεται και η φιλικότητα προς το χρήστη, ο οποίος μπορεί να αδιαφορεί για λεπτομέρειες όπως για το που και πως αποθηκεύονται οι πληροφορίες σε ένα Αρχείο. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 7

Κατάλογοι ή Φάκελοι Αρχείων (1) Ένας Κατάλογος (directory) ή αλλιώς ένας Φάκελος (folder) είναι ένα τμήμα του ΔΑΧ στο οποίο αποθηκεύονται πληροφορίες για ένα υποσύνολο από τα αρχεία του ΔΑΧ. Ο χρήστης αντιλαμβάνεται έναν Κατάλογο ως τον ενιαίο, συνεχή χώρο του ΔΑΧ στον οποίο ανήκει και βρίσκεται φυσικά η ομάδα των αρχείων του Καταλόγου. Στην πραγματικότητα στον Κατάλογο ανήκει η ομάδα των αρχείων του Καταλόγου, αλλά ο χώρος που αυτά καταλαμβάνουν, ούτε ενιαίος είναι ούτε συνεχής. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 8

Κατάλογοι ή Φάκελοι Αρχείων (2) Σε έναν Κατάλογο επιτρέπεται να ανήκουν εκτός από Αρχεία και άλλοι εσωτερικοί Κατάλογοι. Σήμερα (2015), το επιτρεπόμενο "βάθος" ενός Συστήματος Αρχείων υπό την έννοια "Κατάλογοι μέσα σε Κατάλογο" δεν γνωρίζει πρακτικούς περιορισμούς. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 9

Ονοματολογία Αρχείων & Καταλόγων (1) To όνομα ενός Αρχείου (δηλ. το όνομα του χώρου που αυτό καταλαμβάνει σε έναν ΔΑΧ) είναι μια σειρά χαρακτήρων (συμβολοσειρά ή character string ή μόνο string). Σε ορισμένα Λ/Σ τίθενται περιορισμοί ως προς τον επιτρεπόμενο πλήθος χαρακτήρων. Πολλά Λ/Σ δέχονται ονόματα Αρχείων με περισσότερα του ενός τμήματα, τα οποία χωρίζονται μεταξύ τους από μία τελεία. Το τμήμα του ονόματος ΜΕΤΑ την τελευταία τελεία ονομάζεται επέκταση (extension). Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 10

Ονοματολογία Αρχείων & Καταλόγων (2) Extension (a): Το τι περιλαμβάνει μια επέκταση άλλες φορές είναι αυθαίρετο (το ορίζει για κάποιο σκοπό ο χρήστης, για το Λ/Σ όμως μπορεί να μην σημαίνει τίποτα το ιδιαίτερο) και άλλες φορές είναι δεσμευτικό και δηλώνει συγκεκριμένη πληροφορία ως προς το είδος του Αρχείου. Για παράδειγμα, το αρχείο text.doc είναι ένα Αρχείο που έχει δημιουργηθεί για τον Επεξεργαστή Κειμένου MS Word (και η επέκταση αυτή είναι δεσμευτική, δηλαδή το Word δεν θα προβεί κανονικά σε επεξεργασία του αρχείου αν δε συναντήσει αυτή την επέκταση). Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 11

Ονοματολογία Αρχείων & Καταλόγων (3) Extension (b): Αντίθετα, η επέκταση ενός Αρχείου με όνομα diary.2000 δε σημαίνει κάτι για το Λ/Σ, ενώ για το χρήστη είναι ένας χρήσιμος προσδιορισμός. Ονοματολογία Καταλόγων: Σημειώνεται γενικά ότι οι Κατάλογοι ονομάζονται με τους ίδιους κανόνες που ονομάζονται και τα Αρχεία. Η απόδοση ονόματος σε ένα τμήμα του ΔΑΧ, σημαίνει και την ταυτόχρονη δημιουργία του αντίστοιχου Αρχείου ή Καταλόγου. Η αλλαγή ονόματος είναι αργότερα δυνατή. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 12

Ονοματολογία Αρχείων & Καταλόγων (4) Ιδιοχαρακτηριστικά (attributes) Αρχείων (1): Είναι το σύνολο των οργανωτικών πληροφοριών που συνδέονται με ένα Αρχείο. Τα κυριότερα ιδιοχαρακτηριστικά αποδίδονται αυτόματα από το Λ/Σ στο Αρχείο τη στιγμή που αυτό δημιουργείται (ονομάζεται), όπως π.χ. η ημερομηνία δημιουργίας του. Άλλα ιδιοχαρακτηριστικά είναι η ημερομηνία τελευταίας προσπέλασης (π.χ. για ανάγνωση), η ημερομηνία τελευταίας τροποποίησης, ποιοι μπορούν να το διαβάσουν (read permission), ποιοι να το τροποποιήσουν (write permission) και ποιοι να το εκτελέσουν (execute permission), αν είναι εκτελέσιμο. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 13

Ονοματολογία Αρχείων & Καταλόγων (5) Ιδιοχαρακτηριστικά (attributes) Αρχείων (2): Άλλα ιδιοχαρακτηριστικά είναι ακόμα το μέγεθος του Αρχείου και διάφορες άλλες ενδείξεις (ένδειξη ASCII / binary Αρχείου, ένδειξη προσωρινού αρχείου, κλπ.) Τα περισσότερα από τα ιδιοχαρακτηριστικά ενός Αρχείου μπορούν να μεταβληθούν με διαφανείς ενέργειες του Λ/Σ ή άλλες του χρήστη με κατάλληλες Κ/Σ. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 14

Ονοματολογία Αρχείων & Καταλόγων (6) Ιδιοχαρακτηριστικά (attributes) Καταλόγων (1): Όπως και με τα Αρχεία, τα κυριότερα ιδιοχαρακτηριστικά αποδίδονται στον Κατάλογο τη στιγμή που δημιουργείται (ονομάζεται), όπως π.χ. η ημερομηνία δημιουργίας του. Άλλα ιδιοχαρακτηριστικά είναι η ημερομηνία τελευταίας προσπέλασης (π.χ. για ανάγνωση), η ημερομηνία τελευταίας τροποποίησης, ποιοι μπορούν να τον διαβάσουν (read permission), ποιοι να τον τροποποιήσουν (write permission) και ποιοι να τον εκτελέσουν (execute permission). Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 15

Ονοματολογία Αρχείων & Καταλόγων (7) Ιδιοχαρακτηριστικά (attributes) Καταλόγων (2): Ένας χρήστης που χρειάζεται να διαβάσει έναν Κατάλογο, πρέπει να έχει απαραίτητα και δικαίωμα εκτέλεσης, διότι ένας Κατάλογος είναι στην ουσία τμήμα του Λογισμικού του Λ/Σ που ονομάσθηκε file system που δίνει πληροφορίες σχετικά με το ποια Αρχεία βρίσκονται στο ίδιο υποσύνολο, όπως αυτό έχει ορισθεί από τον χρήστη ή το Λ/Σ. Τα περισσότερα από τα ιδιοχαρακτηριστικά ενός Καταλόγου μπορούν να μεταβληθούν με διαφανείς ενέργειες του Λ/Σ ή άλλες του χρήστη με κατάλληλες Κ/Σ. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 16

Δομή & Τύποι Αρχείων (1) Εσωτερική Δομή, χονδρικά (1): Η πιο απλή και συνηθισμένη Δομή είναι αυτή που ακολουθεί και το UNIX (και το LINUX) και τα Windows, δηλαδή το να είναι το αρχείο μια μη δομημένη ακολουθία από bytes. Είναι απλή Δομή, μέγιστης ευελιξίας και απαλλάσσει το Λ/Σ από το να ενδιαφέρεται για το περιεχόμενο του Αρχείου αφού τα Προγράμματα του Χρήστη μπορούν να τοποθετήσουν οτιδήποτε μέσα στα Αρχεία. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 17

Δομή & Τύποι Αρχείων (2) Εσωτερική Δομή, χονδρικά (2): Παλαιότερα, την εποχή των διάτρητων καρτών (που είχε 80 στήλες) και του εκτυπωτή γραμμής (line printer, με 132 στήλες), τα Συστήματα Αρχείων σε πολλά Λ/Σ χειρίζονταν αρχεία που το καθένα αποτελούνταν από εγγραφές των 80 ή 132 χαρακτήρων. Στα Λ/Σ αυτά, κάθε Αρχείο θεωρείτο μία ακολουθία εγγραφών σταθερού μήκους με εσωτερική δομή. Σε τέτοια συστήματα, μια πράξη ανάγνωσης επιστρέφει μία εγγραφή, ενώ μία πράξη γραψίματος γράφει επάνω σε μία εγγραφή ή προσθέτει μία άλλη στο τέλος του Αρχείου. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 18

Δομή & Τύποι Αρχείων (3) Εσωτερική Δομή, χονδρικά (3): Ειδικά για συστήματα που υποστηρίζουν τη διαχείριση και επεξεργασία εμπορικών δεδομένων, επιτρέπονται Αρχεία που αποτελούνται από δέντρα εγγραφών, οι οποίες δεν είναι απαραίτητο να έχουν όλες το ίδιο μήκος. Είναι λογικό, μια τέτοια Δομή να χαρακτηρίζεται επίσης από την αποθήκευση εκείνης της βοηθητικής πληροφορίας (πίνακας περιεχομένων ή index) που συνεισφέρει στη γρήγορη αναζήτηση εγγραφών (direct access, random access). Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 19

Δομή & Τύποι Αρχείων (4) Κύριοι Τύποι "Κανονικά Αρχεία": Τα Κανονικά Αρχεία (regular files) είναι ο πιο συνηθισμένος τύπος Αρχείων. Μπορεί να είναι είτε Αρχεία ASCII (ASCII files) είτε Αρχεία Δυαδικών Πληροφοριών (binary files). Τα Αρχεία ASCII (1): Τα Αρχεία ASCII αποτελούνται από ASCII χαρακτήρες που συγκροτούν γραμμές κειμένου (records). Κάθε γραμμή τους μπορεί να έχει το δικό της μήκος και τελειώνει με το χαρακτήρα CR (carriage return) ή το χαρακτήρα LF (line feed) ή και τους δύο. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 20

Δομή & Τύποι Αρχείων (4) Τα Αρχεία ASCII (2): Τα Αρχεία ASCII μπορούν να εμφανιστούν στην οθόνη του Τερματικού, να τα επιμεληθεί ο χρήστης με τη βοήθεια ενός απλού κειμενογράφου (text editor) και να τυπωθούν ως έχουν. Τα binary Αρχεία (1): Τα binary Αρχεία που περιέχουν δυαδικές πληροφορίες δεν εμφανίζονται σε οθόνη παρά ως μία λίστα από ακατανόητα σύμβολα, και γενικά ο χρήστης δεν μπορεί να τα επιμεληθεί χωρίς να τα καταστρέψει. Για το Λ/Σ όμως τα Αρχεία αυτά είναι απολύτως κατανοητά. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 21

Δομή & Τύποι Αρχείων (4) Τα binary Αρχεία (2): Ένα binary Αρχείο μπορεί να είναι ένα εκτελέσιμο πρόγραμμα, ή μπορεί να χρειάζεται ένα Πρόγραμμα Εφαρμογής για να διαβασθεί (εικόνα, ήχος, βίντεο κλπ). Τα binary Αρχεία έχουν και αυτά εσωτερική δομή, το σημαντικότερο τμήμα της οποίας είναι η επικεφαλίδα (header) και τα μεταδεδομένα (metadata) με τη βοήθεια των οποίων το κατάλληλο Πρόγραμμα Εφαρμογής μπορεί να αποδώσει το περιεχόμενο τους. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 22

Δομή & Τύποι Αρχείων (5) Δύο είδη Προσπέλασης στα Αρχεία, Σειριακή Προσπέλαση: Η σειριακή προσπέλαση (sequential access) είναι ο τρόπος κατά τον οποίο μία Διεργασία διαβάζει όλα τα bytes ενός Αρχείου στη σειρά, ξεκινώντας από την αρχή, χωρίς να παραλείπει τίποτα. Με τέτοιο τρόπο προσπέλασης, όταν τα Αρχεία πρέπει να ξαναδιαβαστούν πρέπει να επανέλθουμε στην αρχή τους και το διάβασμα να αρχίσει από την αρχή. Τα σειριακά αρχεία βολεύουν (και χαρακτηρίζουν) σειριακά αποθηκευτικά μέσα όπως τη μαγνητική ταινία αλλά όχι το σκληρό δίσκο. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 23

Δομή & Τύποι Αρχείων (6) Δύο είδη Προσπέλασης στα Αρχεία, Τυχαία Προσπέλαση: Η τυχαία προσπέλαση (random access) επιτρέπει τα Αρχεία να διαβάζονται χωρίς συγκεκριμένη σειρά. Τα Αρχεία τυχαίας προσπέλασης είναι απαραίτητα για εφαρμογές όπως είναι οι βάσεις δεδομένων, για προφανείς λόγους ταχύτητας. Ο σκληρός δίσκος ή άλλες ψηφιακές μνήμες είναι ΔΑΧ τυχαίας προσπέλασης. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 24

Δομή Καταλόγων (1) Με τους Καταλόγους, οργανώνεται η αποθήκευση των Αρχείων και άλλων Καταλόγων, υιοθετώντας μια ιεραρχία από Αρχεία και Καταλόγους, που ανήκουν (ποιοτικά) στο ίδιο υποσύνολο του ΔΑΧ. Η ιεραρχία αυτή έχει δενδρική μορφή και αποτελείται από Αρχεία ή Καταλόγους ή και τα δύο μαζί. Κάθε χρήστης ενός Η/Υ μπορεί να έχει (σήμερα) όσους Καταλόγους χρειάζεται ο τρόπος οργάνωσης Αρχείων-Καταλόγων που αποφάσισε. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 25

Δομή Καταλόγων (2) Δένδρο Καταλόγων και Αρχείων σε Σχήμα: Με "τετράγωνα" οι Κατάλογοι με "ελλείψεις" τα Αρχεία Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 26

Δομή Καταλόγων (3) Η δενδρική οργάνωση απαιτεί μία μέθοδο για το μονοσήμαντο καθορισμό της θέσης κάθε Αρχείου ή Καταλόγου που βρίσκεται σε μια θέση στο δένδρο αυτό. # Η θέση ενός Αρχείου στο δένδρο μπορεί να περιγραφεί μονοσήμαντα με το απόλυτο όνομα διαδρομής (absolute path name), παραθέτοντας την μοναδική (διότι ΔΕΝ υπάρχει άλλη) ακολουθία από ονόματα Καταλόγων που οδηγεί στο Αρχείο αυτό με αφετηρία τον πρώτο Κατάλογο στη σειρά (root directory). Το τελευταίο μέρος της διαδρομής είναι το όνομα του Αρχείου αυτού καθεαυτού. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 27

Δομή Καταλόγων (4) Τα ονόματα στην ακολουθία χωρίζονται από σύμβολα που αλλάζουν από Λ/Σ σε Λ/Σ. Έτσι, στο UNIX (ή το LINUX) χρησιμοποιείται το σύμβολο / (slash), ενώ στο Λ/Σ Windows το σύμβολο \ (backslash). # Αν μιλάμε για το UNIX, τότε σύμφωνα με το Σχήμα το Αρχείο File5 περιγράφεται με το απόλυτο όνομα διαδρομής /Root/DirA/DirC/File5 Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 28

Δομή Καταλόγων (5) Η θέση ενός Αρχείου στο δένδρο μπορεί επίσης να περιγραφεί μονοσήμαντα με το σχετικό όνομα διαδρομής (relative path name), παραθέτοντας την μοναδική (διότι ΔΕΝ υπάρχει άλλη) ακολουθία από ονόματα Καταλόγων που οδηγεί στο Αρχείο αυτό με αφετηρία τον Κατάλογο Εργασίας (working directoryή αλλιώς τον Τρέχοντα Κατάλογο (current directory). Ως Κατάλογος Εργασίας (Τρέχων) ορίζεται o Κατάλογος στον οποίο εργάζεται ο χρήστης (π.χ. έχει μετακινηθεί εκεί για να διαβάσει ένα Αρχείο). Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 29

Δομή Καταλόγων (7) Αν μιλάμε για το UNIX, και σύμφωνα με το Σχήμα ο Κατάλογος Εργασίας είναι ο DirB, το Αρχείο File5 περιγράφεται με το σχετικό όνομα διαδρομής../dira/dirc/file5 όπου ".." σημαίνει "πατρικός" Κατάλογος Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 30

Διαχείριση Αρχείων & Καταλόγων (1) Απαιτούνται Κλήσεις Συστήματος (1): Οι Κ/Σ που καλύπτουν την αποθήκευση και την ανάκτηση πληροφοριών στα Αρχεία και στους Καταλόγους αλλά και τη γενικότερη διαχείρισή τους διαφέρουν από Λ/Σ σε Λ/Σ. Οι βασικές κοινές Κ/Σ είναι: 1.Η Κ/Σ CREATE δημιουργεί ένα Αρχείο χωρίς δεδομένα ή ένα Κατάλογο χωρίς Αρχεία (κενά, άδεια) και ως αναγκαστική αφετηρία καθορίζει τα πιο βασικά από τα ιδιοχαρακτηριστικά τους. 2.Για να διαγραφεί ένα Αρχείο ή ένας Κατάλογος που δε χρειάζεται πλέον χρησιμοποιείται η Κ/Σ DELETE Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 31

Διαχείριση Αρχείων & Καταλόγων (2) Απαιτούνται Κλήσεις Συστήματος (2): 3.ΠΡΟΣΟΧΗ: Η Κ/Σ DELETE διαγράφει έναν Κατάλογο μόνο όταν αυτός είναι άδειος από αρχεία και άλλους Καταλόγους. 4.Με την Κ/Σ RENAME μια Διεργασία μπορεί να αλλάξει το όνομα ενός ήδη υπάρχοντος Αρχείου ή Καταλόγου Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 32

Διαχείριση Αρχείων & Καταλόγων (3) Απαιτούνται Κλήσεις Συστήματος (3): 5.Με την Κ/Σ OPEN για Αρχείο (ή OPENDIR για Κατάλογο), που αναγκαστικά καλείται πριν κάποια Διεργασία χρησιμοποιήσει ένα Αρχείο (ή ένα Κατάλογο), το Λ/Σ πληροφορείται τα ιδιοχαρακτηριστικά του Αρχείου (ή του Καταλόγου) και τις διευθύνσεις στον ΔΑΧ όπου είναι αποθηκευμένο το Αρχείο (ή ο Κατάλογος), πληροφορία που φυλάγεται στη μνήμη για γρήγορη τυχαία προσπέλαση του Αρχείου (ή του Καταλόγου). Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 33

Διαχείριση Αρχείων & Καταλόγων (4) Απαιτούνται Κλήσεις Συστήματος (4): 6.Ανάποδα, μόλις παύσει να χρειάζεται το Αρχείο (ή Κατάλογο), με την Κ/Σ CLOSE (ή CLOSEDIR για Κατάλογο) το Αρχείο (ο Κατάλογος) κλείνει. 7.Με την Κ/Σ READ διαβάζονται τα δεδομένα από ένα Αρχείο ενώ με την Κ/Σ WRITE γράφονται δεδομένα στην τρέχουσα θέση ενός Αρχείου. Αν η τρέχουσα θέση είναι στο μέσο του Αρχείου τότε νέες πληροφορίες γράφονται πάνω στις παλιές, οι οποίες με τον τρόπο αυτό χάνονται. 8.Με μια παραλλαγή της READ, την Κ/Σ APPEND, προστίθενται δεδομένα στο τέλος του Αρχείου. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 34

Διαχείριση Αρχείων & Καταλόγων (4) Απαιτούνται Κλήσεις Συστήματος (4): 9.Με τις Κ/Σ GET_ATTRIBUTES και SET_ATTRIBUTES διαβάζονται ή αλλάζονται αντίστοιχα από μια Διεργασία τα ιδιοχαρακτηριστικά ενός Αρχείου ή ενός Καταλόγου Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 35

Υλοποίηση Συστήματος Αρχείων - (1) Αλλιώς: ο τρόπος με τον οποίο τα μέρη του ΔΑΧ αντιστοιχούν σε ένα Αρχείο 1.ΑΠΛΟ ΣΥΣΤΗΜΑ ΑΡΧΕΙΩΝ (α): Η αποθήκευση Αρχείου σε μια αλληλουχία διαδοχικών μερών (ίσης χωρητικότητας ή block) στον ΔΑΧ. Το επόμενο Αρχείο στον ΔΑΧ αποθηκεύεται με τον ίδιο τρόπο και -αν είναι δυνατόντοποθετείται διαδοχικά με το προηγούμενο. Η λεγόμενη συνεχής κατανομή Αρχείων είναι απλή στην υλοποίηση αφού αρκεί να θυμόμαστε τη διεύθυνση στον ΔΑΧ του πρώτου block του Αρχείου και το μήκος του σε block ώστε να εντοπίζεται πλήρως ένα Αρχείο. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 36

Υλοποίηση Συστήματος Αρχείων - (2) 1. ΑΠΛΟ ΣΥΣΤΗΜΑ ΑΡΧΕΙΩΝ (β): Η διαχείριση Αρχείων γίνεται με την καλύτερη απόδοση, αφού όλο το Αρχείο μπορεί να διαβαστεί από τον ΔΑΧ σαρώνοντας σειριακά τα block. Όμως δεν είναι ευέλικτη, εκτός αν είναι γνωστό το μέγιστο μέγεθος του Αρχείου (άρα ο μέγιστος αριθμός block που θα απαιτηθούν) την ώρα που δημιουργείται κάποιο Αρχείο, ώστε το Λ/Σ να γνωρίζει πόσο χώρο πρέπει να κρατήσει στον Δίσκο. Παράλληλα, προκαλείται μεγάλος κατακερματισμός (fragmentation) του ΔΑΧ με πολλά κενά block, στην περίπτωση που σβήνονται και γράφονται συνεχώς αρχεία ποικίλων μεγεθών. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 37

Υλοποίηση Συστήματος Αρχείων - (3) 2. ΚΑΤΑΝΟΜΗ block ΜΕ ΟΔΗΓΟ (α): Ένα Αρχείο αρχίζει τυχαία από το πρώτο ελεύθερο block στο ΔΑΧ, ενώ μία πληροφορία που γράφεται στην αρχή κάθε block χρησιμοποιείται για να δείξει ποιό είναι το επόμενο ελεύθερο block. Το πλεονέκτημα είναι ότι έτσι μπορεί να χρησιμοποιηθεί κάθε block του ΔΑΧ και αποφεύγεται ο κατακερματισμός του. Επίσης, αποθηκεύει κανείς και διαχειρίζεται απλά τις διευθύνσεις των πρώτων block και στη συνέχεια εντοπίζει τα υπόλοιπα (βήμα-βήμα, το κάθε block δείχνει το επόμενο και ένα ειδικό σύμβολο τοποθετείται στο τελευταίο μπλοκ για να καθορίσει ότι δεν ακολουθεί άλλο). Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 38

Υλοποίηση Συστήματος Αρχείων - (4) 2. ΚΑΤΑΝΟΜΗ block ΜΕ ΟΔΗΓΟ (β): Δυστυχώς όμως, έτσι, η τυχαία προσπέλαση είναι πάρα πολύ αργή. Επίσης, αφού ο δείκτης (που δείχνει το επόμενο ελεύθερο block) καταλαμβάνει ορισμένα bytes του μπλοκ, η ποσότητα των δεδομένων που μπορούν να αποθηκευτούν σε αυτό παύει να είναι πλέον μία δύναμη του δύο. 3. ΚΑΤΑΝΟΜΗ block ΜΕ ΣΥΝΟΔΕΥΤΙΚΗ ΛΙΣΤΑ: Δημιουργείται και συντηρείται χωριστός κατάλογος με τους δείκτες που προηγούμενα βρίσκονταν σε κάθε block. Χρησιμοποιώντας τον κατάλογο, κάθε block είναι ολόκληρο ελεύθερο για δεδομένα. Επιπλέον, η τυχαία προσπέλαση είναι πολύ πιο εύκολη. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 39

Υλοποίηση Συστήματος Αρχείων - (5) 4. ΜΕΘΟΔΟΣ ΚΟΜΒΩΝ (α): Είναι η πιο σύγχρονη μέθοδος για να γνωρίσουμε ποια block ανήκουν σε ποιο Αρχείο και χρησιμοποιείται στο UNIX (και στο LINUX). Σε αυτή συσχετίζεται κάθε Αρχείο με ένα μικρό πίνακα, ο οποίος ονομάζεται κόμβος-δείκτης ή κόμβος-δ (i-node, index-node), και ο οποίος περιέχει τα ιδιοχαρακτηριστικά και τις διευθύνσεις στο ΔΑΧ για τα block του Αρχείου. Οι πρώτες διευθύνσεις στο ΔΑΧ, αποθηκεύονται στον ίδιο κόμβο-δ, έτσι ώστε για μικρά αρχεία όλες οι απαραίτητες πληροφορίες να βρίσκονται ακριβώς στον κόμβο-δ, τον οποίο φορτώνουμε από το ΔΑΧ στη μνήμη όταν ανοίγει το Αρχείο. Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 40

Υλοποίηση Συστήματος Αρχείων - (6) 4. ΜΕΘΟΔΟΣ ΚΟΜΒΩΝ (β): Για μεγαλύτερα Αρχεία χρησιμοποιούνται δομές έμμεσων block. Μία από τις διευθύνσεις στον κόμβο-δ είναι η διεύθυνση ενός block στο ΔΑΧ (το απλά έμμεσο block ή single indirect block). Το block αυτό περιέχει (παραπέμπει σε) άλλες διευθύνσεις blocks. Για ακόμα μεγαλύτερα Αρχεία, μία διεύθυνση στον κόμβο-δ περιέχει τη διεύθυνση ενός block, το οποίο καλείται διπλά έμμεσο μπλοκ (double indirect block) και το οποίο περιέχει μία λίστα από απλά έμμεσα block. Κάθε από αυτά τα απλά έμμεσα block παρέχουν πρόσβαση σε μερικές εκατοντάδες μπλοκ δεδομένων. Αν και αυτό δεν είναι αρκετό, τότε μπορεί να χρησιμοποιηθεί ένα τριπλά έμμεσο block (triple indirect block). Λειτουργικά Συστήματα και Γλώσσες Προγραμματισμού 41

Block εκκίνησης Υλοποίηση Συστήματος Αρχείων του UNIX Κόμβοι-δ Block Δεδομένων υπέρ-block Αρχεία - Κατάλογοι Το block 0 δεν χρησιμοποιείται από το UNIX και συχνά περιέχει κώδικα για την εκκίνηση του Η/Υ Το υπέρ-block (1) περιέχει σημαντικές πληροφορίες που αφορούν τη δομή του συστήματος αρχείων, συμπεριλαμβανομένου του αριθμού των κόμβων-δ, του πλήθους των blocks, και την αρχή των ελεύθερων block του δίσκου. Οι κόμβοι-δ μήκους 64 bytes. Προσδιορίζει τη θέση των block στα οποία αποθηκεύονται τα δεδομένα του αρχείου.

Υλοποίηση Συστήματος Αρχείων του UNIX Κόμβος-δ Είδος/Προστασία Αρ. Συνδέσμων Ταυτότητα Χρήστη Μέγεθος Αρχείου Χρόνος προσπέλασης/ τροποποίησης Δ/σεις 10 πρώτων block Δείκτης απλά έμμεσου block Δείκτης διπλά έμμεσου block Δείκτης τριπλά έμμεσου block Διπλά έμμεσο Απλά block έμμεσο block Τριπλά έμμεσο block Δείκτες στα blocks του δίσκου