close

Enter

Log in using OpenID

+1 - Πανεπιστήμιο Μακεδονίας

embedDownload
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ
E/E, Δίσκοι, Συστήματα αρχείων
Υλικό από:
Tanenbaum, Modern Operating Systems,Structured Computer Organization
Stallings, Operating Systems: Internals and Design Principles.
Silberschatz, Galvin and Gange, Operating Systems Concepts.
Deitel, Deitel and Choffnes, Operating Systems
Λειτουργικά Συστήματα, Γ.Α. Παπαδόπουλος, Πανεπιστήμιο Κύπρου
Λειτουργικά Συστήματα, Κ. Διαμαντάρας, ΤΕΙΘ
Systems Programming in C, A.D. Marshal, University of Cardiff
Σύνθεση
Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ
E/E, Δίσκοι, Συστήματα αρχείων
Ε/Ε
Δίσκοι
Συστήματα αρχείων
Υλοποίηση
Βελτίωση απόδοσης
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Λειτουργίες Ε/Ε και ΛΣ
Απεικόνιση / Προσπέλαση συσκευών Ε/Ε: Ποιές είναι οι διαθέσιμες
συσκευές Ε/Ε; πώς τις αναγνωρίζει το λ.σ.; Με ποιές εντολές γλώσσας
μηχανής προσπελαύνονται για ανάγνωση-εγγραφή; Σε ποιές διευθύνσεις
βρίσκονται οι ενταμιευτές των συσκευών Ε/Ε;
Επικοινωνία ελέγχου / δεδομένων E/E: Προγραμματισμένη Ε/Ε ή Ε/Ε με
Διακοπές; Με ποιο μηχανισμό μεταφέρονται τα δεδομένα από/προς τις
συσκευές Ε/Ε; Υπάρχουν ειδικοί δίαυλοι; Υποστήριξη DMA; Σύγχρονη ή
Ασύγχρονη επικοινωνία;
Στοίβα λογισμικού συστήματος για Ε/Ε: Λογισμικό εξαρτώμενο από τη
συσκευή Ε/Ε. Λογισμικό ανεξάρτητο από τη συσκευή Ε/Ε εκτελούμενο σε
kernel mode. Λογισμικό ανεξάρτητο από τη συσκευή Ε/Ε εκτελούμενο σε
user mode. Γενικευμένες διεπιφάνειες Ε/Ε.
Συσκευές Ε/Ε
Μερικές τυπικές συσκευές Ε/Ε,
κάρτες δικτύου και δίαυλοι καθώς
και οι αντίστοιχες ταχύτητες
μετάδοσης δεδομένων.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Προσπέλαση
συσκευών Ε/Ε (1)
Σχηματικό διαύλων και σύνδεση συσκευών Ε/Ε σε Pentium 4.
Φαίνονται
οι θύρες
των
και των συσκευών Ε/Ε.
Tanenbaum,
Modern Operating
Systems 3και
e, (c) ελεγκτές
2008 Prentice-Hall,
Inc. Allδιαύλων
rights reserved. 0-13-6006639
Προσπέλαση συσκευών Ε/Ε (2)
Θύρα (Port / Slot): η φυσική υποδοχή σύνδεσης της συσκευής Ε/Ε με τη
μητρική πλακέτα.
Ελεγκτής (Controller): το υλικό/λογισμικό (firmware) που είναι υπεύθυνο
για τη διασύνδεση μιας συσκευής E/E με το δίαυλο (και με το σύστημα).
Κάθε ελεγκτής συσκευής εξειδικεύεται στον έλεγχο ενός τύπου
συσκευής.
Ο ελεγκτής συσκευής διαθέτει ένα τοπικό buffer (ενταμιευτής μνήμης).
Η CPU μετακινεί δεδομένα από / προς την κύρια μνήμη (ή και CPU) προς
/από τα τοπικά buffers.
Οι λειτουργίες E/E γίνονται από τη συσκευή προς το τοπικό buffer του
ελεγκτή.
6
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Γλώσσα μηχανής και Ε/Ε
(a) Εξειδικευμένη Ε/Ε: Οι θύρες Ε/Ε έχουν δικό τους χώρο διευθύνσεων
και ειδικές εντολές γλώσσας μηχανής
(b) Χαρτογραφημένη Ε/Ε (Memory-mapped I/O): οι θύρες Ε/Ε
αντιμετωπίζονται ως θέσεις μνήμης και χρησιμοποιούνται απλές εντολές
μεταφοράς δεδομένων από/προς τη μνήμη
(c) Υβριδικό σχήμα.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Παράδειγμα διευθύνσεων Ε/Ε σε PC
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Προγραμματισμένη Ε/Ε - Περιόδευση
Πλήρης απασχόληση kernel και αναστολή προγράμματος χρήστη. Η
ρουτίνα εκτύπωσης (σε kernel mode) έχει καταλάβει τη CPU και την κρατά
μέχρι να τερματίσει τη λειτουργία Ε/Ε. Το πρόγραμμα χρήστη προφανώς
δεν μπορεί να εκτελεστεί. Το while εκτελεί ελέγχει συνεχώς τη κατάσταση
της συσκευής Ε/Ε. Όταν ο ενταμιευτής της συσκευής Ε/Ε είναι διαθέσιμος η
ρουτίνα μεταφέρει δεδομένα προς εκτύπωση.
Σε μικρο-ελεγκτές ή συστήματα πραγματικού χρόνου η διαδικασία λέγεται
περιόδευση (polling) και μπορεί να γίνεται με ειδικό λογισμικό, όπου η CPU
σε προκαθορισμένα χρονικά διαστήματα διακόπτει την εκτέλεση του
προγράμματος και ελέγχει τις πηγές διακοπών.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Ανάκληση-εκτέλεση με διακοπές
Στο τέλος κάθε κύκλου ανάκλησης-εκτέλεσης η CPU ελέγχει τo PSW.
Aν υπάρχει διακοπή, η CPU μεταπίπτει σε kernel mode και
ξεκινά μια σειρά ενεργειών με τη βοήθεια υλικού και λογισμικού για
την εξυπηρέτηση της διακοπής με την εκτέλεση της Ρουτίνας
Εξυπηρέτησης Διακοπής (Interrupt Service Routine, ISR).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Ελεγκτής Διακοπών (1)
Ο ελεγκτής διακοπών (interrupt controller) είναι ξεχωριστό ολοκληρωμένο
κύκλωμα που δέχεται αιτήσεις διακοπών από διάφορες συσκευές Ε/Ε,
καθορίζει ποια έχει τη μεγαλύτερη προτεραιότητα (με βάση
προκαθορισμένη ρύθμιση ή συνδεσμολογία) και τελικά παρέχει μια αίτηση
διακοπής στη CPU, δηλαδή θέτει τα κατάλληλα bits στο PSW της CPU.
Για την επιτάχυνση της διαδικασίας, κάθε πηγή διακοπής διαθέτει το δικό
της άνυσμα διακοπής (interrupt vector), δηλαδή ένα κώδικο που βοηθά
στην απευθείας πρόσβαση στην αντίστοιχη ρουτίνα εξυπηρέτησης
διακοπής (Interrupt Service Routine, ΙSR). Το άνυσμα αποστέλεται στη
CPU μόλις ζητηθεί (ack διακοπής από τη CPU).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Ελεγκτής Διακοπών (2)
PSW
Ακολουθία αρχικών βημάτων για την σύνδεση ελέγχου Ε/Ε μέσω ελεγκτή
διακοπών: μετά το βήμα 3 η CPU εκτελεί τη ρουτίνα εξυπηρέτησης
διακοπής.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Ε/Ε και διακοπές (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Ε/Ε και διακοπές (2)
Όλες οι εντολές Ε/Ε είναι προνομιούχες
εντολές. Έτσι ένα πρόγραμμα χρήστη δεν
μπορεί ποτέ να αποκτήσει τον πλήρη έλεγχο
ενός πόρου, και, από λάθος, να μην τον
επιστρέφει.
Ένα πρόγραμμα χρήστη ξεκινά λειτουργίες
Ε/Ε μέσω κλήσεων συστήματος, με τη μορφή
διακοπής λογισμικού (1). Ο έλεγχος περνά
στο λ.σ. και η CPU τίθεται σε kernel mode (2).
Ο πυρήνας εκτελεί την αίτηση (2) και
επιστρέφει τον έλεγχο στην εντολή που
ακολουθεί την κλήση συστήματος (3).
Οι συσκευές ξεκινούν λειτουργίες Ε/Ε μέσω
εξωτερικών διακοπών που διακόπτουν την
εκτέλεση των προγραμμάτων χρήστη ή λ.σ.
και εξυπηρετούνται από το λ.σ. αντίστοιχα.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Ε/Ε και διακοπές (3)
(a) Κώδικας που εκτελεί ο kernel όταν εξυπηρετεί τη κλήση συστήματος.
Προσοχή στην αναμονή στο while. Μόλις ληφθεί το ack από τον εκτυπωτή ο
kernel αποχωρεί.
(b) Κώδικας ρουτίνας εξυπηρέτησης διακοπής του εκτυπωτή. Τυπώνει -όποτε
του δίνεται χρόνος από το λ.σ.- και στο τέλος ενημερώνει το kernel και
τερματίζει.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Προτεραιότητα Διακοπών (1)
Προκαθορισμένη σειρά προτεραιότητας μεταξύ των διαφόρων πηγών
διακοπών που καθορίζει ποια θα εξυπηρετεί πρώτη όταν δύο ή
περισσότερες απαιτήσεις φθάσουν ταυτόχρονα.
Επίσης είναι προκαθορισμένο ποιες καταστάσεις θα μπορούν να
διακόπτουν τον υπολογιστή καθώς αυτός θα εξυπηρετεί μια άλλη διακοπή
(Maskable / Non-Maskable Interrupts). Το κατάλληλο Ιnterrupt Mask
εφαρμόζεται στο PSW ώστε καποια bits του δεν λαμβάνονται υπ' όψη.
Στο υψηλότερο επίπεδο προτεραιοτήτων βρίσκονται εκείνες οι απαιτήσεις
για τις οποίες οποιαδήποτε καθυστέρηση ή διακοπή μπορεί να επιφέρει
σημαντικές συνέπειες.
Οι συσκευές με υψηλές ταχύτητες μεταφοράς, όπως οι δίσκοι έχουν υψηλή
προτεραιότητα, ενώ αργές συσκευές, όπως το πληκτρολόγιο λαμβάνουν
χαμηλή προτεραιότητα.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Προτεραιότητα Διακοπών (2)
Προτεραιότητες Διακοπών.
Maskable – NonMaskable Interrupts.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Προτεραιότητα Διακοπών (3)
Στην αρχιτεκτονική x86 (Pentium) υπάρχουν 256 8-bit ανύσματα
διακοπών (0..255):
0..31 για Non-maskable interrupts : εξωτερικές διακοπές υλικου ή
παγιδεύσεις / εξαιρέσεις (traps / exceptions) λογισμικού.
32..47 για Maskable interrupts: τυπικές εξωτερικές διακοπές από
συσκευές Ι/Ο μέσω ελεγκτή διακοπών, IRQs.
48..255 για διακοπές λογισμικού (κλήσεις συστήματος).
Το Linux χρησιμοποιεί το άνυσμα 128 (0x80) για κλήσεις συστήματος.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Εξυπηρέτηση Διακοπών
1. Μετάπτωση σε supervisor/kernel mode. Λήψη ανύσματος διακοπής.
2. Προσωρινή ακύρωση όλων των διακοπών με κατάλληλο Interrupt Mask.
3. Αν η διακοπή προέρχεται από κάποιο πρόγραμμα δηλώνεται οτι αναμένει
εξυπηρέτηση. Αλλιώς απλά το πρόγραμμα διακόπτεται.
4. Αποθήκευση της κατάστασης (context) του προγράμματος που διακόπηκε.
5. Φόρτωση του PC με τη διεύθυνση εκκίνησης της ISR με βάση το άνυσμα
διακοπής.
6. Εκκίνηση ISR. Επανενεργοποίηση διακοπών με βάση τη προτεραιότητα
(Interrupt Mask) της εξυπηρετούμενης διακοπής.
7. Η ISR εκτελείται ως ρουτίνα συστήματος με κύκλο Ανάκλησης - εκτέλεσης
και έλεγχο για τυχόν διακοπές (με βάση το Interrupt Mask).
8. Σε περίπτωση νέας διακοπής: ξανά από το βήμα 1.
9. Μόλις η ISR τελειώσει την εκτέλεση εκτελεί Return from Interrupt: επιστροφή
σε προηγούμενη (διακοπείσα) διακοπή από το βήμα 6...
10. ..Ή (εν τέλει) Το πρόγραμμα που είχε προκαλέσει διακοπή ελευθερώνεται.
11. Επιστροφή στη κανονική εκτέλεση προγραμμάτων χρηστών από το λ.σ.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Direct Memory Access (DMA) (1)
5.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Direct Memory Access (DMA) (2)
1. Η CPU ζητά από τον ελεγκτή DMA να εκτελέσει Ε/Ε με μια συσκευή Ε/Ε.
2. Ο ελεγκτής DMA ειδοποιεί τον διαιτητή διαύλου και τη CPU (μέσω διακοπής).
3. H CPU στο τέλος του τρέχοντος κύκλου ανάκλησης-εκτέλεσης αποδέχεται
(ack μέσω ρουτίνας εξυπηρέτησης διακοπής).
4. O ελεγκτής DMA καταλαμβάνει το δίαυλο.
5. Η CPU ενημερώνεται για την κατάληψη και ετοιμάζει τη καταγραφή κίνησης
των δεδομένων (supervisor/kernel mode). Μπορεί να συνεχίσει σε λειτουργίες
που δεν απαιτούν κατάληψη διαύλου.
6. Η συσκευή DMA εκτελεί τη μεταφορά δεδομένων.
7. Κατά τη μεταφορά η CPU ελέγχει τις διευθύνσεις μνήμης που γράφονται (DMA
write) και σε περίπτωση που απαιτείται ενημερώνει τη κρυφή μνήμη
(supervisor/kernel mode).
8. Στο τέλος της μεταφοράς DMA η συσκευή ενημερώνει τον ελεγκτή DMA.
9. Ο ελεγκτής DMA ελευθερώνει το δίαυλο, ενημερώνει τον διαιτητή διαύλου και
τη CPU (μέσω διακοπής).
10. Η CPU ενημερώνεται και συνεχίζει τις επικοινωνίες διαύλου εκεί που είχε
σταματήσει (μέσω ρουτίνας εξυπηρέτησης διακοπής).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Direct Memory Access (DMA) (3)
(a) Κώδικας που εκτελεί ο kernel όταν εξυπηρετεί τη κλήση συστήματος.
(b) Κώδικας εξυπηρέτησης διακοπής για τον εκτυπωτή.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Ελεγκτές και Οδηγοί (1)
Οδηγός (Driver): το λογισμικό που είναι υπεύθυνο για τη διαχείριση της
συσκευής και του ελεγκτή Ε/Ε. Συνδέεται άμεσα με το πυρήνα (kernel)
του λ.σ. Εκτελείται σε supervisor mode.
Τρόποι σύνδεσης οδηγών στο λ.σ.:
Προεγκατάσταση, ενσωμάτωση στο λ.σ. (βασικοί οδηγοί συσκευών, πχ
generic keyboard, mouse, display drivers)

Κατά την εγκατάσταση του λ.σ. (διερεύνηση διαθέσιμου υλικού και
επιλογή από διαθέσιμους οδηγούς, πχ ανίχνευση ειδικής κάρτας οθόνης)

Κατά την εγκατάσταση της συσκευής (συνοδεύει τη συσκευή ή
μεταφορτώνεται από το διαδίκτυο, πχ εγκατάσταση νέου εκτυπωτή)

Ελεγκτές και
Οδηγοί (2)
Λογική θέση των
ελεγκτών και οδηγών
συσκευών Ε/Ε σε
σχέση με το λ.σ.
System call
Ορισμένοι οδηγοί
βρίσκονται μόνιμα στο
πυρήνα ενώ άλλοι
φορτώνονται με την
προσάρτηση της
συσκευής (πχ usb stick,
usb headset κλπ)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Στοίβα λογισμικού E/E (1)
User space
Kernel space
Device /
Hardware
dependend
Πχ: Κλήση συνάρτησης βιβλιοθήκης <stdio.h> fprintf
User mode
Κλήση συστήματος POSIX write
User- Kernel mode
Κλήση οδηγού δίσκου σε kernel mode
Kernel
mode
Κλήση ρουτίνας εξυπηρέτησης διακοπής
Kernel mode-Hardware
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Στοίβα
λογισμικού
E/E (2)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Στοίβα λογισμικού E/E (3)
Spooling, error reporting, logistics
Βασικές λειτουργίες των διαφόρων επιπέδων λογισμικού Ε/Ε. Προσοχή στη
παράκαμψη της κλήσης ρουτίνας διακοπής κατά τη 'κάθοδο' με την έννοια οτι
η συσκευή είναι συνεχώς διαθέσιμη για χρήση και η πρωτοβουλία είναι στο
λ.σ.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Λογισμικό Ε/Ε ανεξάρτητο συσκευής (1)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Λογισμικό Ε/Ε ανεξάρτητο συσκευής (2)
Ονομασία συσκευών Ε/Ε και συσχέτισή τους με τα υπόλοιπα τμήματα του
λ.σ. Για παράδειγμα, στο Unix οι συσκευές εμφανίζοναι ως ειδικού τύπου
αρχεία (βλ. επόμενη διαφάνεια).
Ενιαία διεπιφάνεια χρήσης διαφορετικών συσκευών ίδιας λειτουργικότητας,
πχ ενιαία διεπιφάνεια χρήσης εκτυπωτών CUPS (www.cups.org).
Δικαιώματα πρόσβασης /χρήσης: έλεγχος αδειών πρόσβασης / χρήσης
συσκευών Ε/Ε από χρήστες και εφαρμογές.
Aναφορά σφαλμάτων (Error reporting): κοινοί κωδικοί / μηνύματα
σφαλμάτων προς τα προγράμματα χρηστών.
Καταγραφή λειτουργιών (Logging) και καθορισμός ορίων χρήσης, πχ
ποσόστωση χώρου δίσκου, αριθμός σελίδων προς εκτύπωση κλπ
Παροχέτευση (Spooling): διατήρηση ουράς αιτημάτων Ε/Ε για συσκευές
που εξυπηρετούν μια λειτουργία Ε/Ε κάθε φορά (εκτύπωση).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Λογισμικό Ε/Ε ανεξάρτητο συσκευής (3)
Ενταμίευση (Buffering): αντιμετώπιση προβλημάτων ταχύτητας
μεταφοράς, μεθόδων κωδικοποίησης δεδομένων κλπ.
Επικοινωνία δεδομένων: αντιμετώπιση διαφορετικών τρόπων
επικοινωνίας (πχ σύγχρονη, ασύγχρονη), διαφορετικών μεγεθών
blocks μεταφοράς δεδομένων κλπ.
Κρυφή Μνήμη Ε/Ε (Ι/Ο Caching): διατήρηση αντιγράφων στη κύρια
μνήμη για αποφυγή συνεχούς αναφοράς στις συσκευές Ε/Ε.
Δέσμευση συσκευών / πόρων: έλεγχος για κατάληψη / ελευθέρωση
πόρων (δέσμευση / αποδέσμευση συσκευών) και αποφυγή
προβλημάτων αδιεξόδων.
Δρομολόγηση αιτημάτων Ε/Ε ανά διεργασία και ανά συσκευή Ε/Ε.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Συσκευές στο Unix
User Programs
User Programs
Trap
User level
Libraries
Kernel level
System Call Interface
File System Management
/dev
/cdrom
/media
...
IPC
Buffer Cache
Process
Mgt.
Scheduling
Memory Mgt.
Device Drivers
Hardware Control (Interrupts handling, etc)
Hardware
Στο Unix οι συσκευές Ε/Ε αντιμετωπίζονται ως ειδικά αρχεία.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Σύγχρονη Ε/Ε
• Αναστολή προγράμματος χρήστη.
user
requesting process
waiting
device driver
kernel
Interrupt handler
Hardware
data transfer
time
• Σε ορισμένες συσκευές μπορεί να
επιτρέπεται μόνο μια λειτουργία Ε/Ε
ανά συσκευή (όχι spooling).
• Σύγχρονη Ε/Ε: Σε ορισμένες
περιπτώσεις ή σε ειδικά συστήματα
ένα πρόγραμμα του χρήστη πρέπει να
περιμένει την ολοκλήρωση της
λειτουργίας Ε/Ε, δηλαδή τίθεται σε
κατάσταση αναστολής. Ο kernel
μπορεί να ελευθερώσει τη CPU και
πιθανώς να εκτελεστεί κάποιο άλλο
πρόγραμμα χρήστη, αλλά η Ε/Ε για το
συγκεκριμένο πρόγραμμα χρήστη
απαιτεί συγχρονισμό.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Ασύγχρονη Ε/Ε
user
requesting process
continuing
device driver
kernel
Interrupt handler
Hardware
data transfer
time
• Μη- αναστολή του προγράμματος χρήστη.
• Μετά την αρχική διακοπή λογισμικού
επιστρέφει τον έλεγχο στο πρόγραμμα του
χρήστη χωρίς να αναμένει την
ολοκλήρωση των Ε/Ε. Το πρόγραμμα
χρήστη μπορεί να ανασταλεί σε αναμονή
της Ε/Ε ή να εκτελέσει άλλη λειτουργία
(Ασύγχρονη Ε/Ε).
• Όταν ολοκληρωθεί η λειτουργία Ε/Ε,
προκαλείται μια διακοπή από τη συσκευή
προς την CPU που αναστέλλει προσωρινά
το πρόγραμμα χρήστη και διαχειρίζεται τη
συσκευή Ε/Ε.
• Το λ.σ. διατηρεί πίνακα με τη κατάσταση
των συσκευών Ε/Ε.
• Πολλαπλές λειτουργίες Ε/Ε ανά
πρόγραμμα και ανά συσκευή (spooling)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Παροχέτευση (Spooling) E/E
Ασύγχρονη Ε/Ε που επιτρέπει διαχείριση ουράς αιτημάτων Ε/Ε ανά συσκευή.
Τα προγράμματα χρηστών στέλνουν πολλά αιτήματα Ε/Ε και ο kernel τα
τοποθετεί σε ουρές ανά συσκευή (πιθανή χρήση προτεραιότητας).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Συσκευές block και χαρακτήρων
Συσκευές block: κυρίως δίσκοι (και ssd)
Ακολουθιακή (sequential) και τυχαία (random) προσπέλαση.
Ε/Ε ανά byte, χαρακτήρα ή δομή, εγγραφή (structure, record) από bytes.
Μεταφορά ολοκλήρων περιοχών (blocks) του δίσκου από / προς τη κύρια
μνήμη (λειτουργία ιδεατής μνήμης, virtual memory).
Επίσης ο δίσκος μπορεί να λειτουργεί ως 'επέκταση' της μνήμης (χώρος
εναλλαγής, swap space).
Συσκευές χαρακτήρων: πληκτρολόγια, ποντίκια, οθόνες χαρακτήρων
Ακολουθιακή προσπέλαση
Ε/Ε ανά byte, χαρακτήρα
Πρότυπες ροές (standrad streams): stdin (0), stdout(1), stderr(2). Αυτόματη
σύνδεση εκτελούμενων προγραμμάτων μέσω βιβλιοθήκης <stdio.h>
Δίαυλοι (pipes) και γενικευμένες ροές (streams): αμφίδρομη (in, out)
επικοινωνία μεταξύ προγραμμάτων στο ίδιο σε διαφορετικά συστήματα
(δίκτυο).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ
E/E, Δίσκοι, Συστήματα αρχείων
Ε/Ε
Δίσκοι
Συστήματα αρχείων
Υλοποίηση
Ζητήματα απόδοσης
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Δίσκοι (1)
Γεωμετρία:
Ίχνος (Track)
Επιφάνεια (Platter)
Κύλινδρος (Cylinder)
Τομέας (Sector)
(σταθερός αριθμός
bytes/τομέα).
Χρόνοι/Ταχύτητες:
Περιστροφή Δίσκων +
Μετακίνηση Κεφαλών
= Αναζήτηση
Μεταφορά Δεδομένων.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Δίσκοι (2)
Παράμετροι δισκέτας IBM PC 360-KB και δίσκου Western Digital WD 18300 .
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Δίσκοι (3)
(a) Φυσική γεωμετρία δίσκου με δύο ζώνες.
(b) Μια πιθανή εικονική γεωμετρία του ίδιου δίσκου.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Γεωμετρία δίσκου (1)
Τομέας δίσκου.
Τα δεδομένα (data) αντιστοιχούν συνήθως σε 1 φυσικό block.
Preable: δεδομένα ελέγχου για την αναγνώριση του τομέα.
ΕCC: Error Correcting Code.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Γεωμετρία
δίσκου (2)
Στρέβλωση
κυλίνδρων
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Γεωμετρία δίσκου (3)
(a) Χωρίς παρεμβολή τομέων. (b) Απλή παρεμβολή τομέων.
(c) Διπλή παρεμβολή τομέων.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Χειρισμός σφαλμάτων
(a) Τροχιά δίσκου με ελαττωματικό τομέα και δύο εφεδρικούς.
(b) Αντικατάσταση ελαττωματικού τομέα με εφεδρικό.
(c) Ολίσθηση τομέων για ορθή σειρά τομέων.
Διαμόρφωση χαμηλού επιπέδου (Low level format).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Redundant Array of Inexpensive Disks RAID (1)
0: Block level stripping. Διαμοιρασμός ζωνών (stripes) από blocks σε
πολλαπλoύς (n) δίσκους. Αύξηση χωρητικότητας. Δεν υπάρχει
πλεονασμός.
+: Ταχύτητα στη μεταφορά δεδομένων xn
-: Mηδενική ανοχή σε σφάλματα δίσκων.
1: Mirroring. Πλήρης αντιγραφή (ομοιότυπο) και πλεονασμός. Πολλαπλή
εγγραφή αλλά υποπολλαπλάσιος χρόνος ανάγνωσης.
+: Ταχύτητα ανάγνωσης xn, Πλήρης αξιοπιστία σε βλάβη δίσκου.
-: Ταχύτητα εγγραφής x1, Κόστος.
2: Bit level stripping. Κατανομή ανά bit με κωδικοποίηση Hamming.
Τεράστια διεκπεραιωτική ικανότητα, ανοχή σε απλά τυχαία σφάλματα.
+: Ταχύτητα αντίστοιχη με τον αριθμό δίσκων, κλιμάκωση.
-: Συγχρονισμός δίσκων, περίσσεια δίσκων, απαιτητικός ελεγκτής.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
RAID (2)
P1
P2
P3
Συστοιχίες δίσκων RAID, επίπεδα (levels) 0 έως 2.
Οι δίσκοι backup και parity φαίνονται γκρίζοι ή σημειώνονται.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Redundant Array of Inexpensive Disks RAID (3)
3: Byte level striping. Kατανομή ανά byte με κωδικοποίηση Parity.
Mεγάλη διεκπεραιωτική ικανότητα, προβλήματα σε συγκεντρωμένα
σφάλματα.
+: Ταχύτητα αντίστοιχη με τον αριθμό δίσκων, κλιμάκωση.
-: Συγχρονισμός δίσκων, απαιτητικός ελεγκτής.
4: Block level striping / dedicated Parity. Kατανομή ανά ζώνη όπως στο
Επίπεδο 0 αλλά με κωδικοποίηση Parity σε ξεχωριστό δίσκο. Ίδιες
ιδιότητες με το Επίπεδο 0, καλύτερη ανοχή σε σφάλαματα, αλλά εμφανίζει
συμφόρηση στο δίσκο με τα Parity bits.
5: Block level striping / distributed Parity. Οργάνωση όπως στο Επίπεδο 4
αλλά τα Parity bits κατανέμονται σε ζώνες όλων των δίσκων. Μικρότερη
συμφόρηση αλλά σύνθετη διαδικάσία δόρθωσης.
6: Block level striping / double distributed Parity. Οργάνωση όπως στο Επίπεδο 5
αλλά με 2 Parity bits ανά block να ακατανέμονται σε ζώνες όλων των δίσκων.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
RAID (4)
Συστοιχίες δίσκων RAID, επίπεδα (levels) 3 έως 5.
Οι δίσκοι backup και parity φαίνονται γκρίζοι.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Πληροφορίες δίσκου
$ fdisk ­l
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x752aa292
....
Πολλά εξειδικευμένα προγράμματα ανάλυσης/διαχείριση/επαναφοράς δίσκων
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ
E/E, Δίσκοι, Συστήματα αρχείων
Ε/Ε
Δίσκοι
Συστήματα αρχείων
Υλοποίηση
Ζητήματα απόδοσης
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Συστήματα αρχείων (1)
Βασικές απαιτήσεις για τη δευτερεύουσα μνήμη:
•
•
•
•
Μόνιμη αποθήκευση δεδομένων, ανεξάρτητη από τη παροχή
ρεύματος.
Πρακτικά απεριόριστος αποθηκευτικός χώρος.
Αποθήκευση δεδομένων ανεξάρτητα από τις διεργασίες που τα
δημιουργούν ή τα χρησιμοποιούν.
Ταυτόχρονη πρόσβαση στα δεδομένα από πολλές διεργασίες
(προστασία από ταυτόχρονη εγγραφή).
Συνηθέστερα μέσα: HDs, FlashDrives, CDs, DVDs
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Συστήματα αρχείων (2)
Θεωρούμε τη δευτερεύουσα μνήμη ως μια γραμμική ακολουθία από blocks
σταθερού μεγέθους, στα οποία το λ.σ. μπορεί να γράψει και να διαβάσει.
Βασικές ερωτήσεις:
• Πως βρίσκουμε / οργανώνουμε τα δεδομένα;
• Πώς γνωρίζουμε ποιά blocks είναι ελεύθερα και ποια κατηλειμμένα;
• Πώς προστατεύουμε τα δεδομένα μιας διεργασίας (ενός χρήστη) από τις
άλλες (άλλους χρήστες);
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Συστήματα αρχείων (3)
Σύστημα αρχείων: το τμήμα του λ.σ. που
• Διαχειρίζεται τη λογική οργάνωση της δευτερεύουσας μνήμης
• Συνδέει τη λογική οργάνωση με τη φυσική οργάνωση της δευτερεύουσας
μνήμης (τμήμα Eισόδου/Εξόδου)
Αρχείο: λογική αφαίρεση που επιτρέπει την ομαδοποίηση των δεδομένων
στη δευτερεύουσα μνήμη σε λογικές ενότητες και απεικονίζει τις λογικές
ενότητες σε φυσικά blocls δεδομένων.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Οργάνωση συστήματος αρχείων (1)
Υπηρεσία Καταλόγου (Directory Service)
• Λογικά ονόματα → Περιγραφείς Αρχείων
• Δικαιώματα Χρήσης (προστασία)
Υπηρεσία Αρχείων (File Service)
• Περιγραφείς Αρχείων → Ενταμιευτές Αρχείων
• Ιδιότητες (Τύποι) Αρχείων και αντίστοιχες Εφαρμογές
Υπηρεσία Αποθήκευσης (Block Service)

Ενταμιευτές Αρχείων → Φυσικά Βlocks δίσκου

Λειτουργίες Δίσκων και Ε/Ε
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Οργάνωση συστήματος αρχείων (2)
Kλήσεις Συστήματος από
Εφαρμογές
Υπηρεσία Καταλόγου
Λογική οργάνωση αρχείων
Υπηρεσία Αρχείων
Ενταμιευτές δίσκου/μνήμης
Υπηρεσία Αποθήκευσης
Διαχείριση αρχείων στο δίσκο
Είσοδος / Έξοδος
Οδηγοί Συσκευών / Διακοπές
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Δομή αρχείων
Tρείς τύποι αρχείων: (a) Ακολουθία bytes (μέγιστη ευελιξία).
(b) Ακολουθία εγγραφών (physical records). (c) Δένδρο εγγραφών.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Τύποι αρχείων (1)
Κανονικά (regular) αρχεία:
•
αρχεία χαρακτήρων (character files)
•
δυαδικά αρχεία (binary files)
Ειδικά (special) αρχεία: συσκευές Ε/Ε
•
αρχεία χαρακτήρων (streams) πχ stdin, stdout
•
αρχεία block (μοντελοποίηση δίσκων, ομάδων δεδομένων)
Εκτελέσιμα (executable) αρχεία - Αρχεία δεδομένων (data)
Συμπιεσμένα αρχεία (zip, rar) - Αρχειοθήκες (tar)
Κρυφά (Hidden) αρχεία (ή κατάλογοι) πχ .bashrc
Βιβλιοθήκες (so,sa) - Πακέτα (deb, rpm)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Τύποι αρχείων (2)
(a) Εκτελέσιμο αρχείο. (b) Βιβλιοθήκη
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Ονομασία αρχείων
Στα Windows η επέκταση έχει σημασία. Στο Unix είναι βοηθητική μόνο.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Προσπέλαση αρχείων
Ακολουθιακή (Sequential)
•
Ανάγνωση όλων των δεδομένων από την αρχή
•
Δεν επιτρέπεται η υπερπήδηση δεδομένων, αλλά επιτρέπεται
οπισθοδρόμηση -συνήθως στην αρχή (rewind)
•
Βολικό για μαγνητοταινίες (backup)
Τυχαία (Random)
•
Ανάγνωση δεδομένων σε οποιαδήποτε σειρά
•
Απαραίτητο σε βάσεις δεδομένων (δίσκοι)
Η ανάγνωση μπορεί να σημαίνει …
•
Μετακίνηση (fseek, ftell), και μετά ανάγνωση ή …
•
Ανάγνωση και μετά μετακίνηση
Ιδιότητες (attributes) αρχείων
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Κατάλογοι
Τυπικό σύστημα αρχείων με δενδρική δομή και πολυ-επίπεδους καταλόγους
(υπο-καταλόγους).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Όνομα διαδρομής (Path name)
You Are Here
Απόλυτο (Absolute) όνομα διαδρομής: /usr/lib/dict
Σχετικό (Relative) όνομα διαδρομής: ../lib/dict
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Σύνδεση (link)
(a) Δύο κατάλογοι πριν τη σύνδεση του αρχείου /usr/jim/memo με το
αρχείο /usr/ast/memo.
(b) Οι ίδιοι κατάλογοι μετά τη σύνδεση. Το αρχείο /usr/ast/note δείχνει
(συνδέεται με) το αρχείο /usr/jim/memo.
ln ­s /usr/bin/python /usr/bin/python2.7
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Προσάρτηση (mount) (1)
(a) Πριν από τη προσάρτηση (mount) τα αρχεία στο CD-ROM δεν είναι
προσπελάσιμα. (b) Μετά τη προσάρτηση, τα αρχεία του CD-ROM εισάγονται
στη δενδρική δομή του συστήματος αρχείων. Ισχύει και για απομακρυσμένους
καταλόγους (προσπέλαση μέσω δικτύου)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Προσάρτηση (mount) (2)
(a) Σύστημα αρχείων Linux πριν τη προσάρτηση.
(b) Σύστημα αρχείων Linux μετά τη προσάρτηση: στο ριζικό κατάλογο
υπάρχουν οι κατάλογοι mnt, media
$ mount
/dev/sda1 on / type ext3 /dev/sdc1 on /media/user/UDISK type vfat /dev/sr0 on /media/user/MATHWORKS_type iso9660 Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Κλήσεις συστήματος - αρχεία
Οι συνηθέστερες λειτουργίες σε αρχεία είναι οι εξής:
•
•
•
•
•
•
Create
Delete
Open
Close
Read
Write
•
•
•
•
•
Append
Seek
Get Attributes
Set Attributes
Rename / Move
Αντίστοιχες λειτουργίες Γραφικής Διεπιφάνειας Χρήστη;
Αντίστοιχες εντολές φλοιού (γραμμής εντολών);
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Κλήσεις συστήματος POSIX
Διαχείριση αρχείων: προσοχή, δεν υπάρχει delete...
s είναι κωδικός σφάλματος
fd είναι περιγραφέας αρχείου
position είναι file offset (δηλαδή αριθμός bytes για το δείκτη
ανάγνωσης / εγγραφής)
Κλήσεις συστήματος -stat, fstat (1)
Χαρακτηριστικά (attributes) που επιστρέφονται.
Ορισμένες έννοιες (πχ i-nodes) εξηγούνται παρακάτω.
Κλήσεις συστήματος -stat, fstat (2)
$ stat mpd.hosts
File: «mpd.hosts»
Size: 26 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 3524068 Links: 1
Access: (0644/­rw­r­­r­­) Uid:(1000/kmarg) Gid:(1000/kmarg)
Access: 2013­01­13 17:10:46.000000000 +0200
Modify: 2010­10­07 18:08:54.000000000 +0300
Change: 2010­10­07 18:08:54.000000000 +0300
Ενδεικτική εκτέλεση εντολής stat.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Παράδειγμα (1.1)
...
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Παράδειγμα (1.2)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Ροές και ανακατεύθυνση (1)
Πρότυπες ροές (Standard streams): Εικονικά αρχεία χαρακτήρων (read ή
write only) συνδεδέμενα με συσκευές Ε/Ε.
stdin (file descriptor 0), stdout (file descriptor 1),
stderr (file descriptor2).
Ανακατεύθυνση (Redirection): Σύνδεση των προτύπων ροών με
πραγματικά αρχεία τύπ χαρακτήρων. Παραδείγματα με τελεστές φλοιού:
$ls ­l > dir_list $ls ­l >> dir_list
$wc < text_file > text_fle_stats
$./my_program <in_file >out_file
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Ροές και ανακατεύθυνση (1)
Xρήση σε εφαρμογή:
(a) Χρήση εναλλακτικών συναρτήσεων
scanf(“%c”) == fscanf(stdin, “%c)
printf(“%c”) == fprintf(stdout, “%c”) ή fprintf(stderr, “%c)
(b) Χρήση συνάρτησης dup2 FILE *ifp, *ofp;
ifp = fopen("in.list", “r”) dup2 (ifp, stdin); /* ifp is duplicated with stdin*/
ofp = fopen(“out.list”, "w") dup2 (ofp, stdout); /* ofp is duplicated with stdout */
Κλήσεις συστήματος – κατάλογοι
Οι συνηθέστερες λειτουργίες για διαχείριση καταλόγων:
•
•
•
•
Create
Delete
Opendir
Closedir
•
•
•
•
Readdir
Rename
Link
Unlink
Αντίστοιχες λειτουργίες Γραφικής Διεπιφάνειας Χρήστη;
Αντίστοιχες εντολές φλοιού (γραμμής εντολών);
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Κλήσεις συστήματος POSIX
Διαχείριση καταλόγων
s είναι κωδικός σφάλματος
dir είναι όνομα/δείκτης καταλόγου
dirent είναι καταχώρηση καταλόγου
Κλήσεις συστήματος – παράδειγμα
/* Print names of files in current directory */
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
int main (void)
{
DIR *dp;
struct dirent *ep; dp = opendir ("./");
if (dp != NULL)
{
while (ep = readdir (dp))
puts (ep­>d_name);
(void) closedir (dp);
}
else
perror ("Couldn't open the directory");
return 0;
} Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Προστασία: άδειες και δικαιώματα (1)
Κάθε αρχείο και κάθε διεργασία έχουν ένα ιδιοκτήτη (τα του συστήματος έχουν
ως ιδιοκτήτη τον root ή administrator). Κάθε πρόγραμμα που ξεκινά ένας
.χρήστης 'κληρονομεί' τα δικαιώματα του χρήστη (συνήθως) και όχι του
διαχειριστή.
Κάθε χρήστης ανήκει σε μια ομάδα χρηστών (έστω και μονομελή)
Κάθε χρήστης ή διεργασία έχει την άδεια να προσπελάσει μόνο αρχεία ή
διεργασίες με βάση ένα σχήμα δικαιωμάτων που καθορίζεται κατά τη
δημιουργία του αρχείου ή της διεργασίας και μπορεί να τροποποιηθεί μόνο
από τον ιδιοκτήτη ή το διαχειριστή.
Σχήμα δικαιωμάτων αρχείων
Type User
Group
Other
d r w x r w x r w x
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Προστασία: άδειες και δικαιώματα (2)
$ ls ­l
...
­rw­­­­­­­ 1 kmarg kmarg 691 Δεκ 14 2009 gschem.log
­rw­r­­­­­ 1 kmarg kmarg 14510 Ιούν 17 2010 hp­check.log
lrwxrwxrwx 1 kmarg kmarg 57 Μάρ 30 2012 libnpjp2.so ­> /usr/lib/jvm/java­6­sun­1.6.0.26/jre/lib/i386/libnpjp2.so
drwxrwxr­x 2 kmarg kmarg 4096 Νοέ 14 20:44 logisim
drwx­­­­­­ 7 kmarg kmarg 4096 Απρ 4 2009 Mic1MMV
­rw­r­­r­­ 1 kmarg kmarg 567 Σεπ 15 2009 missfont.log
­rwxr­xr­x 1 kmarg kmarg 17475 Δεκ 3 2009 mpdboot.test
­rw­r­­r­­ 1 kmarg kmarg 26 Οκτ 7 2010 mpd.hosts
...
$ chmod og­x mpdboot.test
$ ls ­l mpdboot.test
­rwxr­­r­­ 1 kmarg kmarg 17475 Δεκ 3 2009 mpdboot.test
$ chmod 700 mpdboot.test
$ ls ­l mpdboot.test
­rwx­­­0­­ 1 kmarg kmarg 17475 Δεκ 3 2009 mpdboot.test
Προστασία: άδειες και δικαιώματα (3)
Εξήγηση του $chmod 700
rwx
a) User
7 111
rwx
b) Group
0 000
rwx
c) Other
0 000
'Αλλες σχετικές εντολές
$chgrp : αλλαγή ομάδας (group)
$chown : αλλαγή ιδιοκτήτη (user)
Οι άδειες και τα δικαιώματα ισχύουν και για καταλόγους και τα
περιεχόμενά τους (μπορεί να γίνει αναδρομική εφαρμογή με χρήση του
διακόπτη -r στην εκτέλεση σχετικής εντολής).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Προστασία: άδειες και δικαιώματα (4)
Παραδείγματα χρήσης του σχήματος αδειών και δικαιωμάτων.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Δομή συστήματος αρχείων Unix/Linux
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ
E/E, Δίσκοι, Συστήματα αρχείων
Ε/Ε
Δίσκοι
Συστήματα αρχείων
Υλοποίηση
Ζητήματα απόδοσης
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Εγκατάσταση λ.σ. (1)
Το λ.σ. πρέπει να είναι 'γραμμένο' για τη συγκεκριμένη αρχιτεκτονική
επιπέδου εντολών (system dependent part).
Πχ Linux ports για x86, ΑRM, MIPS, PowePC, SPARC, Μ68000 ...
Το αρχικό πρόγραμμα εγκατάστασης SYSGEN συλλέγει πληροφορίες για
τη διαμόρφωση του συγκεκριμένου συστήματος. Αναγνωρίζει πχ την
ύπαρξη άλλου λ.σ.
Στη συνέχεια διαμορφώνει (format) και διαμερίζει (partition) το δίσκο (ή
τμήμα του) και εγκαθιστά το λ.σ. Κατά την εκκίνηση το κάθε
διαμέρισμα προσαρτάται (is mounted) σε ένα κατάλογο του
συστήματος αρχείων (mount point).
Booting – εκκίνηση του εγκατεστημένου λ.σ. Πρόσφατα: Live-CD,
USB-flash boot.
Bootstrap program – πρόγραμμα που βρίσκεται στη ROM και βρίσκει το
Master Boot Record (MBR) ή το Boot Loader (πχ Grub, Lilo), ειδικό
πρόγραμμα που κρατά λογαριασμό για τη θέση του πυρήνα (ή των
πυρήνων, kernels) στο δίσκο.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Εγκατάσταση λ.σ. (2)
Aρχική διαμόρφωση δίσκου: πχ επιτρέπονται πολλαπλά λ.σ.; μεταβλητά
διαμερίσματα; διαφορετικά συστήματα αρχείων;
Μέγεθος δομής δεδομένων: πχ πόσες καταχωρήσεις επιτρέπει ο πίνακας
διαμερισμάτων = πόσα διαμερίσματα επιτρέπονται;
Μέγεθος καταχώρησης (σε bytes): πχ πόσα bytes αντιστοιχούν σε μια
καταχώρηση καταλόγου καθορίζει έμμεσα πόσοι χαρακτήρες επιτρέπονται
στο όνομα του αρχείου.
Τύπος δομής δεδομένων: πίνακας, συνδεδεμένη λίστα, πίνακας
κατακερματισμού, δένδρο..= καθορίζει ταχύτητα προσπέλασης, ευκολία
διαχείρισης, επέκτασης.
Άλλα: μέγεθος block, συνεχής/ασυνεχής κατανομή χώρου, μέγιστος
αριθμός καταλόγων/αρχείων, μέγιστο μέγεθος καταλόγων/αρχείων, θέματα
προστασίας (αδειοδότηση) κλπ.
Γνωστά συστήματα αρχείων: FAT, NTFS (Windows), ext2/3/4 (Unix,Linux)
Αρχική διαμόρφωση (1)
boot
O δίσκος με τη διαμόρφωση χωρίζεται σε λογικά διαμερίσματα. Το κάθε
διαμέρισμα μπορεί να έχει διαφορετικό σύστημα αρχείων (εδώ ntfs και ext3).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Αρχική διαμόρφωση (2)
Αναγνώριση δίσκου (/dev/sda)
Αποπροσάρτηση (umnount /dev/sda)
Διαμόρφωση και διαμέριση (fdisk /dev/sda)
Ορισμός αριθμού, μεγέθους και τύπου διαμερισμάτων
[P]rimary [B]oot Partition number ... First cylinder ... Using default value .. Last cylinder or +size or +sizeM or +sizeK ...
Ορισμός συστήματος αρχείων ανά διαμέρισμα (makefs.ext3 /dev/sda3)
Προσάρτηση διαμερισμάτων στο σύστημα αρχείων
mkdir /somwhere/in/filesystem
mount /dev/sda1 /somwhere/in/filesystem
Επαναδιαμέριση (partition editor): pared /dev/sda
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Στα Windows: Partition Magic
Αρχική διαμόρφωση (3)
Εκκίνηση υπολογιστή Grub με Dual Boot. Στο δίσκο έχουν εγκατασταθεί δύο
λ.σ. Ubuntu και Windows. Ο χρήστης επιλέγει λ.σ.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Οργάνωση συστήματος αρχείων (1)
Τυπική οργάνωση συστήματος αρχείων (Unix/Linux ext2/3/4). Ο δίσκος
χωρίζεται σε διαμερίσματα (primary, boot, extended,swap) που
καταγράφοινται στο Partition Table (πίνακας διαμερισμάτων δίσκου), όπου
επίσης δίνεται η αρχή, το μέγεθος και το σύστημα αρχείων κάθε
διαμερίσματος.
MBR = Master Boot Record --> Boot Loader (πχ Grub)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Πίνακας διαμερισμάτων
Οργάνωση συστήματος αρχείων (2)
Boot block: φόρτωση πυρήνα λ.σ. Μπορεί να υπάρχουν πολλά λ.σ. άρα και
πολλά system partitions, boot blocks (Volume Boot Sector).
Superblock: βασικά μεταδεδομένα (metadata) διαμερίσματος, memory
resident μετά το προσάρτηση (mount) του διαμερίσματος. Πχ αριθμός,
μέγεθος τομέων και blocks, δείκτες στα άλλα blocks, backup..
Διαχείριση ελευθέρων τμημάτων, i-nodes: Αναλύονται παρακάτω..
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Συνεχής κατανομή
(a) Συνεχής κατανομή χώρου δίσκου σε 7 αρχεία.
(b) Η κατάσταση του δίσκου μετά την αφαίρεση των αρχείων D και F.
Τα πλαίσια αντιστοιχούν στα φυσικά blocks του δίσκου.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Κατακερματισμός (Fragmentation)
Κατακερματισμός αρχείου: το αρχείο δε βρίσκεται σε συνεχή blocks αλλά σε
διασπαρμένα blocks. Μπορεί να προκληθούν καθυστερήσεις σε
ανάγνωση/εγγραφή.
Κατακερματισμός συστήματος αρχείων: τα κενά blocks μετά από διαδοχικές
εγγραφές/διαγραφές είναι διασπαρμένα και οδηγούν σε κατακερματισμό
αρχείων.
Aπο-κατακερματισμός (De-fragmentation): κατά καιρούς, για βελτίωση της
απόδοσης του δίσκου γίνεται συνολική αναδιάταξη των blocks/αρχείων.
Απαιτείται αναμόρφωση των ανάλογων δομών δεδομένων.
Στα σύγχρονα συστήματα αρχείων ο απο-κατακερματισμός γίνεται συνεχώς
με ευθύνη του λ.σ. Πρώτα, διατίθεται μεγαλύτερος αριθμός blocks ώστε να
υπάρχει δυνατότητα επέκτασης, δεύτερο το λ.σ. επανατοποθετεί μεγάλα
αρχεία και συλλέγει κενά blocks κατά καιρούς.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Κατανομή σε συνδεδεμένη λίστα
Αποθήκευση δύο αρχείων Α, Β με τη μορφή συνδεδεμένης λίστας. Κάθε λογικό
block (δεδομένων) καταλαμβάνει ένα φυσικό block του δίσκου.
Τα ελεύθερα blocks συνδέονται σε αντίστοιχη συνδεδεμένη λίστα. Κάθε
τροποποίηση απαιτεί ενημέρωση δύο λιστών,
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
File Allocation Table (FAT) (1)
Logical Block
File
A3
Goto block 10
A1
Goto block 7
Head of Free Block List
To 1
To 5
To 8
A2
Goto block 2
To 9
To 13
A4
Goto block 12
A5
End Of File
To 15
End of Free Block List
Κατανομή με συνδεδεμένη λίστα η οποία υλοποιείται ως FAT. Σε κάθε
φυσικό block του δίσκου αντιστοιχεί μια γραμμή του FAT. Ο FAT
φορτώνεται στη κύρια μνήμη κατά τη προσάρτηση του συστήματος αρχείων.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
File Allocation Table (FAT) (2)
Ενδεικτική διάρθρωση διαμερίσματος δίσκου στο σύτημα αρχείων FAT.
Superblock: μεταδεδομένα του διαμερίσματος.
File Allocation Table (FAT) (3)
Υπολογισμός μεγέθους FAT:
Έστω δίσκος 200 Gb και μέγεθος block 1 Κb.
Μέγεθος FAT 200*10^9 / 1*10^3 = 200*10^6 ή 200 Μ γραμμές.
Κάθε γραμμή απαιτεί 4 bytes (2^24 < 200 M < 2^32)
Επομένως απαιτούνται 800 Μb στη μνήμη για το FAT.
Θα μπορούσε να κατανεμηθεί σε blocks αλλά παραμένει μεγάλος!
Χρήσιμη λύση για τα μικρά συστήματα (MS-DOS).
Για να 'δεί' μεγάλους δίσκους απαιτεί υπερβολικά μεγάλο μέγεθος block.
Έχει τροποποιηθεί για μεγαλύτερα συστήματα (FAT -16, -32)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Δεικτοδοτημένη κατανομή: i-nodes (1)
Ο i-κόμβος διατηρεί πίνακα
tων blocks του αρχείου.
Στο δίσκο πάρχει περιοχή
διαθεσίμων i-nodes από
όπου εκχωρείται ένα i-node
σε κάθε αρχείο όταν αυτό
δημιουργείται.
Διαχείριση των διαθέσιμων
με i-node blocks με
bitmap πίνακα, όπως και των
ελεύθερων blocks.
Στη μνήμη φορτώνονται
μόνο τα i-nodes των
αρχείων που είναι ανοικτά
ανά πάσα στιγμή.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
i-nodes (2)
Directory entry fields.
Βασικά περιεχόμενα δομής i-node
i-nodes (3)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
i-nodes (4)
Υπολογισμός μεγέθους i-node:
A b για τις ιδιότητες αρχείου + 4*Β b για τις διευθύνσεις των φυσικών blocks
του αρχείου, όπου Β ο αριθμός των blocks του 1 Kb. Απαιτούνται (Α + 4*B)
b.
Έστω 'μέσο' μέγεθος αρχείου 1 Μb. Αυτό απαιτεί μέγεθος i-node:
(A + 4*1000) b ~ 4 Kb. Αν υπάρχουν 1000 ανοικτά αρχεία απαιτούνται
4000 Κb ~ 4 Mb
Στη πράξη απαιτείται ακόμη λιγότερος χώρος λόγω περιορισμένου αριθμού
γραμμών ανά i-node (πχ 8) ενώ η τελευταία γραμμή οδηγεί σε νέο
υπο-κόμβο-i (για μεγάλα αρχεία).
Ουσιαστικά ανεξάρτητο από το μέγεθος δίσκου. Βασική επιλογή (UNIX).
Συστήματα αρχείων ext2/3/4.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
i-nodes (5)
Root dir
Data blocks
Ενδεικτική διάρθρωση διαμερίσματος δίσκου στο σύτημα αρχείων ext2/3/4.
Tα blocks σε κάθε διαμέρισμα οργανώνονται σε ομάδες (groups).
Superblock: μεταδεδομένα του διαμερίσματος.
O όρος i-node Table ισοδυναμεί με i-node blocks.
i- nodes (6)
$dumpe2fs /dev/sda1
...
Filesystem OS type: Linux
Inode count: 9371648
Block count: 37475620
Reserved block count: 1873781
Free blocks: 31295426
Free inodes: 8874795
First block: 0
Block size: 4096
Blocks per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
...
Group 12: (Blocks 393216­425983)
Block bitmap at 393216 (+0), Inode bitmap at 393217 (+1)
Inode table at 393218­393729 (+2)
18721 free blocks, 6180 free inodes, 344 directories
Free blocks: 393730­394070, 395762­398080, 398082­398209, 398211­399361, 399401, ...
Διαχείριση blocks και i-nodes (1)
Πίνακας ελεύθερων/δεσμευμένων blocks
Πίνακας ελεύθερων/δεσμευμένων i-nodes
Mέγεθος πινάκων:
Kάθε δείκτης είναι 1 bit, άρα στα 32 bits = 32 δείκτες.
Για δίσκο 200Gbytes με block size 4Kbytes έχουμε
200*2^30/4*2^10 = 50*2^20 = 50 Μ δείκτες
Σε bytes, απαιτούνται 50*2^20 / 2^5 = 50*2^15 =
160*2^10 = 160 Kbytes.
Άρα 40 blocks (μόνο).
Οργάνωση πίνακα bitmap.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Διαχείριση blocks και i-nodes (2)
Πίνακας ελεύθερων/δεσμευμένων blocks
Πίνακας ελεύθερων/δεσμευμένων i-nodes
Υπολογισμός αριθμού block που αντιστοιχεί στο
Bit i της γραμμής j του πίνακα(block) k:
(αριθμός του block +1, k=0,1, ...) *
(αριθμός γραμμών ανά blcok, πχ 4Κ/32 γραμμές )+
(αριθμός γραμμής, j=0,1, 4K/32 - 1)*
(αριθμός bits ανά γραμμή, πχ 32) +
(αριθμός bits που προηγούνται στη γραμμή, i=0,1,..31)
Οργάνωση πίνακα bitmap.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Υλοποίηση καταλόγων (1)
Οι κατάλογοι αντιμετωπίζονται ως ειδικού τύπου αρχεία, δηλαδή αρχεία που
περιέχουν πληροφορίες για άλλα αρχεία ή καταλόγους και έχουν
συγκεκριμένη δομή.
Η βασικότερη από τις πληροφορίες των καταλόγων είναι το block από όπου
ξεκινά τι κάθε αρχείο (ή κατάλογος) που περιέχουν. Η πληροφορία αυτή
μπορεί να δίνεται άμεσα (πχ στο σχήμα FAT) ή έμμεσα (πχ στo σχήμα
i-nodes).
Το σύστημα αρχείων παρέχει ειδικές λειτουργίες χειρισμού των καταλόγων.
Συνήθως ο ριζικός κατάλογος (root direcory) κάθε διαμερίσματος βρίσκεται
σε ειδική θέση, πχ στο πρώτο block δεδομένων. Οι υπόλοιποι
υπο-κατάλογοι βρίσκονται μαζί με τα αρχεία.
Υλοποίηση καταλόγων (2)
(a) Απλός κατάλογος με διευθύνσεις δίσκου και ιδιότητες σε κάθε
καταχώρηση (πχ ΜS-DOS, Windows 98).
(b) Κατάλογος που κάθε καταχώρηση δείχνει σε μια ειδική δομή δεδομένων
(πχ ext3).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Υλοποίηση καταλόγων (3)
Δύο τρόποι διαχείρισης ονομάτων αρχείων.
(a) Μέσα στη δομή (συγκεκριμένο μήκος ονόματος, πχ 255 bytes).
(b) Σε δυναμική μνήμη (heap), απαιτείται διαχείριση μνήμης.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Υλοποίηση καταλόγων (4)
Inode Value | Entry Length | Name Length | File Type | ASCII Name
Καταχώρηση καταλόγου MS-DOS, Windows 98 και ext3.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Υλοποίηση καταλόγων (5)
Υλοποίηση καταλόγου στο σύστημα αρχείων ext3.
Κατάσταση πριν και μετα τη διαγραφή του αρχείου voluminus.
Διαμοιραζόμενα αρχεία -links (1)
Δενδρική δομή με διαμοιραζόμενο αρχείο: Κατευθυνόμενος άκυκλος γράφος.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Διαμοιραζόμενα αρχεία -links (2)
(a) Κανονική καταχώρηση αρχείου σε κατάλογο. Στις ιδιότητες του
αρχείου υπάρχει και μετρητής συνδέσμων.
(b) Δημιουργία συνδέσμου (link) στο αρχείο από άλλο κατάλογο. Είναι
ειδικού τύπου αρχείο που απλά δείχνει στο i-node του αρχείου.
(c) Ο χρήστης C διαγράφει το αρχείο, αλλά o Β το χρησιμοποιεί. Το
αρχείο θα διαγραφεί αν διαγραφούν όλοι οι σύνδεσμοι στο αρχείο.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Επικοινωνία δίσκου - μνήμης (1)
2
1
fp =fopen
3
space
descriptor
2
read(fd)
4
3
1
space
(a) Aνοιγμα αρχείου και (b) Ανάγνωση από αρχείο
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Επικοινωνία δίσκου - μνήμης (2)
Per-proces s
Open files
System-wide
Open files
Copy of i-node in memory
Επικοινωνία δίσκου - μνήμης (3)
Σχέση μνήμης, i-nodes και blocks κατά τα βήματα προσπέλασης του αρχείου
με όνομα διαδρομής (pathname) /usr/ast/mbox.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Εικονικά συστήματα αρχείων (1)
Λογική θέση εικονικού συστήματος αρχείων. Τα σύγχρονα συστήματα αρχείων
χωρίζονται σε γενικευμένο (εικονικό) τμήμα και εξειδικεμένο (φυσικό) τμήμα.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Εικονικά συστήματα αρχείων (2)
Descriptor (Περιγραφέας) : λογικό όνομα,
δν/ση buffer, δείκτης τρέχουσας θέσης, κλπ
Απλοποιημένο διάγραμμα των δομών δεδομένων και των κλήσεων
συστήματος σε εικονικό σύστημα αρχείων.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Network File System – NFS (1)
Παράδειγμα προσάρτησης απομακρυσμένου συστήματος αρχείων.
Κατάλογοι: τετράγωνα, Αρχεία: κύκλοι.
Network File System – NFS (2)
$ mount
/dev/sda1 on / type ext4 (rw,errors=remount­ro)
...
eleni:/mirror on /mirror type nfs (rw,rsize=8192,wsize=8192,intr,addr=195.251.209.11)
cuda­master:/nfs on /nfs type nfs (rw,rsize=8192,wsize=8192,intr,addr=195.251.209.14)
...
Σύστημα Linux με ένα τοπικό σύστημα αρχείων /dev/sda1 προσαρτημένο στο
mount-point / και δύο απομακρυσμένους καταλόγους συστημάτων αρχείων
από δύο υπολογιστές (eleni και cuda-master) φορτωμένα στα mount-points
/mirror και /nfs αντίστοιχα. Τα ονόματα των καταλόγων στα δύο συστήματα
(απομακρυσμένο και τοπικό) δεν είναι απαραίτητα ίδια.
Network File System – NFS (3)
The NFS layer structure.
Δομή NFS.
Ενημερώσεις συστημάτων αρχείων
Λειτουργίες που απαιτούνται για την διαγραφή αρχείων UNIX:
•
Διαγραφή των πληροφοριών του αρχείου από τον κατάλογο.
•
Επιστροφή του i-node στη δεξαμενή ελευθέρων i-nodes.
•
Επιστροφή των φυσικών blocks στη δεξαμενή των ελεύθερων
blocs.
Προστασία: προσωρινή διαγραφή στο κάδο απορριμάτων (αντί για
οριστική διαγραφή, ουσιαστικά μετακίνηση).
Προς αποφυγή προβλημάτων συνέπειας: καταγραφή (log) σε ειδικά
αρχεία (journals) των διαδικασιών ώστε σε περίπτωση
κατάρρευσης το σύστημα να μπορεί να συνεχίσει τις
διαδικασίες (journaling file systems). Πχ ext3/4.
Σε ορισμένα συστήματα αρχείων έχουμε καταγραφή εκδόσεων
(versioning file systems).
Προοπτική: caching όλων των σελίδων που χρησιμοποιούνται, και
αποθήκευση μόνο κατά το τερματισμό της διεργασίας.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Έλεγχος συστήματος αρχείων (fsck) (1)
Πιθανές καταστάσεις συστήματος αρχείων
(a) Συνεπές (b) Λείπει ένα ελεύθερο block. (c) Ελεύθερο block εμφανίζεται δύο
φορές στη λίστα. (d) Block δεδομένων εμφανίζεται δύο φορές στη λίστα.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Έλεγχος συστήματος αρχείων (fsck) (2)
Ενέργειες λ.σ. σε περιπτώσεις ασυνέπειας:
Λείπει ένα ελεύθερο block.
Το λ.σ. απλά προσθέτει το block στη λίστα των ελεύθερων blocks.
Ελεύθερο block εμφανίζεται δύο φορές στη λίστα.
To λ.σ. αφαιρεί το διπλότυπο από τη λίστα.
Block δεδομένων εμφανίζεται δύο φορές στη λίστα.
Το λ.σ. δεσμεύει ένα ελεύθερο bock και αντιγράφει τα δεδομένα του
διπλού block (απλή αριθμητική ακεραιότητα).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Έλεγχος συστήματος αρχείων (fsck) (3)
Έλεγχος καταλόγων:
Το λ.σ. ελέγχει ιεραρχικά τη συνέπεια των καταλόγων (αντιστοίχιση
καταχωρήσεων καταλόγου με συνδέσμους σε αρχεία).
Το λ.σ. ελέγχει τη συνέπεια των μετρητών συνδέσμων (links).
(a) Αν ο μετρητής είναι μεγαλύτερος από τους υπάρχοντες
συνδέσμους, στο τέλος το αρχείο θα μείνει 'ορφανό' (κατάληψη
block).
(b) Αν ο μετρητής είναι μικρότερος από τους υπάρχοντες
συνδέσμους, τότε υπάρχει κίνδυνος απώλειας του αρχείου.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Εφεδρικά αντίγραφα (backups) (1)
Τα εφεδρικά αντίγραφα διατηρούνται για δύο λόγους:
•
•
•
Προστασία από καταστροφές.
Προστασία από κακόβουλες ενέργειες.
Προστασία από ηλιθιότητες.
Η ορθή πολιτική εφεδρικών αντιγράφων είναι κρίσιμη σε μεγάλα
συστήματα.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Εφεδρικά αντίγραφα (backups) (2)
•
Αντιγράφονται ορισμένα τμήματα του συστήματος αρχείων, πχ όχι
οι συσκευές ή οι εφαρμογές.
•
Συχνά αυξητικά (incremental) αντίγραφα με πλήρη (full) αντίγραφα
σε μεγαλύτερα χρονικά διαστήματα.
•
Αρχειοθέτηση (tar) και συμπίεση (zip) κατά την αντιγραφή. Σταδιακά
οι διαδικασίες αυτές ενοποήθηκαν.
•
Αντιγραφή όταν το σύστημα είναι σχετικά αδρανές (πχ βράδυ).
Αλγόριθμοι για ενημέρωση κατά την αντιγραφή.
•
Φυσική ασφάλεια: Ποιοί είναι υπεύθυνοι για τα αντίγραφα; Που
κρατάμε τα εφεδρικά αντίγραφα; Ποιός έχει πρόσβαση;
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Εφεδρικά αντίγραφα (backups) (3)
Φυσική αντιγραφή (Physical dump)
•
Η αντιγραφή γίνεται σε επίπεδο φυσικού block. Eξαιρούνται τα bad
blocks και πιθανώς blocks που δεν έχουν τροποποιηθεί από την
τελευταία αντιγραφή (απαιτούνται σχετικές πληροφορίες από το
σύστημα αρχείων). Δημιουργείται mirror image (κατοπτρική εικόνα
του δίσκου). Πχ ghost.
Λογική αντιγραφή (Logical dump)
•
Η αντιγραφή γίνεται σε επίπεδο λογικής δομής (κατάλογοι, αρχεία).
Αντιγράφονται μόνο οι κατάλογοι και τα αρχεία που έχουν
τροποποιηθεί. Πχ rsync.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Εφεδρικά αντίγραφα (backups) (4)
Παράδειγμα λογικής αντιγραφής. Τα τετράγωνα είναι κατάλογοι, οι κύκλοι
αρχεία. Τα σκιασμένα σχήματα συμβολίζουν τροποποίηση. Κάθε κατάλογος
και αρχείο σημειώνεται από τον αριθμό i-node του.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Εφεδρικά αντίγραφα (backups) (5)
Αρχικά όλα τα i-nodes είναι λευκά.
(a) Σημειώνονται (γκρί) τα αρχεία έχουν τροποποιηθεί και όλοι οι κατάλογοι.
(b) Ακυρώνονται (λευκό) αναδρομικά προς τη ρίζα οι κατάλογοι που ΔΕΝ
έχουν τροποποιηθεί.
(c) Ενημερώνονται οι κατάλογοι που έχουν τροποποιηθεί.
(d) Ενημερώνονται τα αρχεία που έχουν τροποποιηθεί.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Ποσοστώσεις (Quotas)
Τα λ.σ. κεντρικών υπολογιστών μπορούν να κρατούν λογαριασμό χρήσης
δίσκου ανά χρήστη (πχ mail server-- 'Disk quota exceeded, can't create
output'..).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ
E/E, Δίσκοι, Συστήματα αρχείων
Ε/Ε
Δίσκοι
Συστήματα αρχείων
Υλοποίηση
Ζητήματα απόδοσης
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Διαχείριση χώρου δίσκου: Μέγεθος block (1)
Αθροιστικά ποσοστά αρχείων μικρότερων από συγκεκριμένο μέγεθος (σε
bytes).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Διαχείριση χώρου δίσκου: Μέγεθος block (2)
Συντελεστές χρόνου ανάγνωσης / εγγραφής:
●
●
●
Χρόνος αναζήτησης (Seek time): κίνηση βραχίονα στο
κατάλληλο κύλινδρο.
Χρόνος περιστροφής (Rotational delay): περιστροφή
δίσκου στο κατάλληλο τομέα.
Χρόνος μεταφοράς δεδομένων (Data transfer time).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Διαχείριση χώρου δίσκου: Μέγεθος block (3)
Χρόνος προσπέλασης για ανάγνωση ή εγγραφή Κ bytes=
Χρόνος αναζήτησης + (Χρόνος περιστροφής/2) + Χρόνος μεταφοράς.
Χρόνος μεταφοράς =
(Αριθμός bytes Κ / Πυκνότητα εγγραφής) * Χρόνος περιστροφής.
Ρυθμός μεταφοράς =
Μέσος όρος μεταφερομένων bytes ανά sec (bytes / sec)
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Διαχείριση χώρου δίσκου: Μέγεθος block (4)
Πχ
Χρόνος αναζήτησης
= 10 msec
Χρόνος περιστροφής = 8.33 msec
Πυκνότητα εγγραφής = 131.072 bytes / τροχιά
Αριθμός bytes K
= 1 Kbyte
10 + 8.33 / 2
+ (10^3 / 131.072) * 8.33 =
14.165
+ 0.06355
Αριθμός bytes K
= 14.23 msec
= 10 Kbytes
10 + 8.33 / 2
+ (10^4 / 131.072) * 8.33 =
14.165
+ 0.6355
Αριθμός bytes K
= 14.80 msec
= 100 Kbytes
10 + 8.33 / 2
+ (10^5 / 131.072) * 8.33 =
14.165
+ 6.355
Αριθμός bytes K
= 20.52 msec
= 1 Mbyte
10 + 8.33 / 2
+ (10^6 / 131.072) * 8.33 =
14.165
+ 63.55
= 77.72 msec
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Διαχείριση χώρου δίσκου: Μέγεθος block (5)
Διακεκομμένη γραμμή (αριστερή κλίμακα): ρυθμός μεταφοράς δεδομένων.
Συμπαγής γραμμή (δεξιά κλίμακα): χρησιμοποίηση χώρου δίσκου.
Κάτω: μέγεθος φυσικού block δίσκου.
Όλα τα αρχεία υπολογίζονται στα 4 KB.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Μείωση κίνησης βραχίονα δίσκου
(a) Οι i-nodes τοποθετημένοι στην αρχή του δίσκου.
(b) Ο δίσκος διαιρείται σε ομάδες κυλίνδρων (groups), και κάθε όμάδα έχει τα
δικά της blocks και i-nodes.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Χρονο-προγραμματισμός βραχίονα (1)
Ακολουθία απαιτούμενες κινήσεων βραχίονα:
11(αρχική θέση), 1, 36, 16, 34, 9, 12
First Come First Served (FCFS).
Σύνολο = |1-11|+|36-1|+|16-36|+|34-16|+|9-34|+|12-9|= 111
Μειονέκτημα οι πολλές κινήσεις (κατά μέσο όρο).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Χρονο-προγραμματισμός βραχίονα (2)
Shortest Seek First (SSF).
Σύνολο = |12-11|+|9-12|+|16-9|+|1-16|+|34-1|+|36-34|= 61
Μειονέκτημα η προτίμηση στους μεσαίους κυλίνδρους.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Χρονο-προγραμματισμός βραχίονα (3)
Elevator algorithm (αλγόριθμος ανελκυστήρα).
Σύνολο = |12-11|+|16-12|+|34-16|+|36-34|+|36-9|+|1-9|= 60
Κίνηση προς τα Πάνω ή Κάτω.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Χρονο-προγραμματισμός βραχίονα (4)
Elevator algorithm (αλγόριθμος ανελκυστήρα).
Σύνολο = |12-11|+|16-12|+|34-16|+|36-34|+|36-40|+|1-0|+|1-9|= 38
Κυκλική κίνηση (πάντα προς μία κατεύθυνση).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Κρυφή μνήμη δίσκου (1)
Disk cache: ειδική περιοχή της κύριας μνήμης που αποθηκεύει blocks του
δίσκου που χρησιμοποιούνται συχνά για βελτίωση της απόδοσης ( virtual
disk, RAM disk).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Κρυφή μνήμη δίσκου (2)
virtual memory I/O
H κρυφή μνήμη του δίσκου χρησιμοποιείται τόσο για τα κανονικά αρχεία
όσο και για τις ανάγκες της ιδεατής μνήμης.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Κρυφή μνήμη δίσκου (3)
Ο πίνακας κατακερματισμού δείχνει ποιά blocks είναι στη κρυφή μνήμη.
Τα blocks είναι οργανωμένα σε διπλά συνδεδεμένη λίστα έτσι ώστε η κρυφή
μνήμη εφαρμόζει μια παραλλαγή του αλγορίθμου LRU:
Κεφαλή = Least Recently Used, Ουρά = Most Recently Used.
Τα blocks συνδέονται φυσικά και λογικά (πχ i-node που δείχνει σε κατάλογο και
αυτός σε i-node που δείχνει σε αρχείο).
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Κρυφή μνήμη δίσκου (4)
Τροποποίηση LRU
Πρόβλημα συχνότητας χρήσης:
Tα blocks αναφοράς (i-nodes, κατάλογοι) και τα γεμάτα ή σχεδόν γεμάτα με
δεδομένα blocks χρησιμοποιούνται πιο συχνά, άρα πρέπει να τοποθετούνται
προς στην ουρά της λίστας LRU.
Πρόβλημα κατάρρευσης:
Mερικά blocks είναι πιο απαραίτητα για την συνέπεια του συστήματος από
άλλα: superblocks, i-nodes, κατάλογοι. Τα δεδομένα λιγότερο σημαντικά. Τα
απαραίτητα blocks πρέπει να γράφονται συχνά στο δίσκο.
Παλιότερα Windows: write-trhough disk cache (πιο καλό για usb)
UNIX: buffered disk cache με αυτόματο συχνό sync (πιο αποδοτικό για
σκληρούς δίσκους)..
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Author
Document
Category
Uncategorized
Views
0
File Size
5 640 KB
Tags
1/--pages
Report inappropriate content