Download Παρουσίαση

Document related concepts
no text concepts found
Transcript
Εισαγωγή στο LINUX
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
1
Ιστορική αναδρομή
• Το Linux περιλαμβάνει χαρακτηριστικά από πολλά
γνωστά λειτουργικά συστήματα UNIX όπως:
• System V Release 4 (SVR4) - AT&T
• 4.4 BSD release - University of California at
Berkeley (4.4BSD),
• Digital Unix - DEC Compaq HP,
• AIX - IBM,
• HP-UX - Hewlett-Packard,
• Solaris - Sun Microsystems
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
2
• Το Linux αναπτύχθηκε αρχικά από τον Linus
Torvalds το 1991 ως ένα λειτουργικό σύστημα για
IBM συμβατούς προσωπικούς υπολογιστές,
βασισμένους στον μικροεπεξεργαστή Intel 80386.
• Με την πάροδο του χρόνου η συμμετοχή πολλών
στην ανάπτυξή του το έκανε διαθέσιμο σε πολλές
άλλες αρχιτεκτονικές όπως Alpha, SPARC,
Motorola MC680x0, PowerPC, και IBM
System/390.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
3
• Ένα από τα σημαντικότερα πλεονεκτήματά του είναι ότι
διανέμεται δωρεάν : ο πηγαίος του κώδικας, υπό την GNU
Public License είναι ανοικτός και διαθέσιμος σε
οποιονδήποτε.
• Ο κώδικας είναι διαθέσιμος για download από το επίσημο
site http://www.kernel.org ή από ένα Linux CD.
• Το GNU project συντονίζεται από το Free Software
Foundation, Inc. (http://www.gnu.org);
• Για την επιτυχία οποιουδήποτε Linux project είναι
απαραίτητος ο GNU C compiler.
• Ο πυρήνας του Linux δεν είναι αρκετά καινοτομικός αλλά
προσπαθεί να ενσωματώσει χαρακτηριστικά που υπάρχουν
σε άλλους πυρήνες Unix.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
4
Linux Licensing
• Ο πυρήνας του Linux διανέμεται μέσω της GNU
General Public License (GPL), οι όροι της οποίας
τίθενται από την Free Software Foundation.
• Οποιοσδήποτε χρησιμοποιεί το Linux, ή
δημιουργεί τη δική του διανομή δεν πρέπει να
θεωρεί το παραγόμενο προϊόν ιδιοκτησία του. Το
λογισμικό που εκδίδεται μέσω της GPL δεν πρέπει
να διανέμεται ως προϊόν μόνον σε δυαδική μορφή.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
5
Διανομές Linux
• Standard, precompiled sets of packages, or
distributions, include the basic Linux system, system
installation and management utilities, and ready-toinstall packages of common UNIX tools.
• The first distributions managed these packages by
simply providing a means of unpacking all the files into
the appropriate places; modern distributions include
advanced package management.
• Red Hat, Debian, SuSE, Mandrake are popular
distributions from commercial and noncommercial
sources, respectively (see www.linux.org).
• The RPM Package file format permits compatibility
among the various Linux distributions (see
www.linuxbase.org).
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
6
Which distribution to use ?
• RedHat (www.redhat.com)
– Big, professional, very widely used
• Debian (www.debian.org/)
– Open development model, excellent packaging
system
• Mandrake (www.mandrakesoft.com)
– Aims to be very easy to install and use
• SuSE (www.suse.com/)
– Compromise between Red Hat and Mandrake
• Slackware (www.slackware.com/)
– Most traditional; little extra help
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
7
ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ Λ.Σ.
• Μονολιθικοί πυρήνες
• Στρωματοποιημένη αρχιτεκτονική
• Αρχιτεκτονική μικροπυρήνα
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
8
Αρχιτεκτονική πυρήνα μονολιθικού Λ.Σ.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
9
Στρωματοποιημένη αρχιτεκτονική
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
10
Αρχιτεκτονική μικροπυρήνα
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
11
Χαρακτηριστικά του πυρήνα του Linux
• Ο πυρήνας του Linux είναι μονολιθικός, και αποτελεί ένα
μεγάλο και πολύπλοκο πρόγραμμα που συντίθεται από
αρκετά διαφορετικά συστατικά.
• Οι παραδοσιακοί πυρήνες του Unix μεταγλωττίζονται και
συνδέονται στατικά. Οι πιο σύγχρονοι πυρήνες μπορούν να
φορτώσουν και να ξεφορτώσουν ορισμένα τμήματα του
κώδικα του πυρήνα (τυπικά τους οδηγούς συσκευών), τα
τμήματα λέγονται modules. Το Linux υποστηρίζει τη χρήση
modules. Μπορεί να φορτώνει και να ξεφορτώνει αυτόματα
modules κατ’ απαίτηση.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
12
• Νημάτωση πυρήνα (kernel threading). Ένα νήμα
πυρήνα είναι ένα πλαίσιο εκτέλεσης που μπορεί να
δρομολογηθεί ανεξάρτητα, μπορεί να συσχετιστεί
με ένα πρόγραμμα χρήστη ή μπορεί να τρέχει
μόνον κάποιες συναρτήσεις του πυρήνα. Οι
εναλλαγές πλαισίου μεταξύ νημάτων του πυρήνα
είναι λιγότερο δαπανηρές από τις εναλλαγές
πλαισίων μεταξύ των κανονικών διεργασιών, μια
και οι πρώτες χρησιμοποιούν συνήθως ένα κοινό
χώρο διευθύνσεων. Το Linux χρησιμοποιεί τα
νήματα πυρήνα με πολύ περιορισμένο τρόπο για να
εκτελεί περιοδικά λίγες συναρτήσεις του πυρήνα.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
13
Σχέση νήματος και διεργασίας
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
14
• Υποστήριξη πολυνηματικών εφαρμογών (multithreaded
application support). Τα περισσότερα σύγχρονα Λ.Σ.
παρέχουν κάποιο είδος υποστήριξης σε πολυνηματικές
εφαρμογές δηλ. σε προγράμματα χρηστών που είναι καλά
σχεδιασμένα με την έννοια ότι πολλά τμήματα που
βρίσκονται σε ροή εκτέλεσης διαμοιράζονται ένα μεγάλο
τμήμα δομών δεδομένων της εφαρμογής. Μια πολυνηματική
εφαρμογή χρήστη αποτελείται από πολλές lightweight
processes (LWP), ή από διεργασίες που μπορούν να
λειτουργήσουν σε ένα κοινό χώρο διευθύνσεων, σε κοινές
φυσικές σελίδες μνήμης, κοινά ανοικτά αρχεία κλπ.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
15
• Το Linux καθορίζει τις δικές του LWP που
διαφέρουν από αυτές που υπάρχουν σε εμπορικές
διανομές Unix (π.χ. Solaris). Ενώ όλες αυτές οι
διανομές Unix χρησιμοποιούν τροποποιημένες
LWP που βασίζονται σε νήματα πυρήνα το Linux
δεν χρησιμοποιεί τις LWP ως βασικό πλαίσιο
εκτέλεσης αλλά τις διαχειρίζεται μέσω μιας μη
βασικής κλήσης συστήματος (clone()) που
αποτελεί μια τροποποιημένη επέκταση της κλήσης
fork() των συστημάτων Unix.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
16
• To Linux αποτελεί ένα πυρήνα χωρίς προεκχώρηση. Δηλαδή
δεν μπορεί να παρεμβάλλει αυθαίρετα ροές εκτέλεσης ενώ
βρίσκεται σε κατάσταση επόπτη. Αρκετά τμήματα του πυρήνα
εκτελούνται χωρίς τον φόβο να διακοπούν από άλλα και
μπορούν έτσι να τροποποιούν δομές δεδομένων. Οι πλήρως
προεκχωρούμενοι πυρήνες αφορούν ειδικά Λ.Σ. πραγματικού
χρόνου. (π.χ. Solaris 2.x)
• Το UNIX είναι ένα Λ.Σ. πολυεπεξεργασίας που χρησιμοποιεί
διεργασίες με προεκχώρηση.
• Υποστήριξη συστημάτων πολλών επεξεργαστών. Το Linux
παρέχει ένα είδος υποστήριξης για συμμετρική πολυπεξεργασία
(SMP), ωστόσο δεν κάνει βέλτιστη χρήση των SMP. Αρκετές
δραστηριότητες που θα μπορούσαν να εκτελούνται συγχρόνως
π.χ. διαχείριση αρχείων και δικτύωση εκτελούνται σειριακά.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
17
Πλεονεκτήματα του Linux
•
•
•
•
Παρέχεται δωρεάν
Είναι πλήρως προσαρμόσιμο στις απαιτήσεις
Μπορεί να τρέχει σε ΗΥ χαμηλού κόστους
Διαθέτει υψηλές προδιαγραφές ποιότητας του
πηγαίου κώδικα
• Ο πυρήνας του είναι πολύ μικρός και συμπαγής
• Είναι συμβατό με πολλά Λ.Σ.
• Διαθέτει καλή υποστήριξη
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
18
Βασικά χαρακτηριστικά ενός Λ.Σ.
• Ένα Λ.Σ. πρέπει να :
– αλληλεπιδρά με τα συστατικά του υλικού για να
εξυπηρετεί όλα τα χαμηλού επιπέδου στοιχεία που
περιλαμβάνονται στο υλικό
– παρέχει το περιβάλλον εκτέλεσης των εφαρμογών που
τρέχουν στο υπολογιστικό σύστημα (user programs)
• Όλα τα Unix-like Λ.Σ. αποκρύπτουν τις
λεπτομέρειες του υλικού, που αφορούν τη φυσική
οργάνωση του συστήματος, από τους χρήστες.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
19
• Όταν ένα πρόγραμμα απαιτεί να χρησιμοποιήσει έναν πόρο του
συστήματος πρέπει να υποβάλλει την απαίτησή του στο Λ.Σ.
• Ο πυρήνας (kernel) αξιολογεί την απαίτηση και αν επιλέξει να
παραχωρήσει τον πόρο, αλληλεπιδρά με τα κατάλληλα συστατικά του
υλικού.
• Προκειμένου να ενδυναμωθεί και να προστατευθεί ο μηχανισμός
αυτός, τα σύγχρονα Λ.Σ. βασίζονται στην ιδιότητα ορισμένων
συστατικών του υλικού να μην επιτρέπουν στα προγράμματα των
χρηστών να αλληλεπιδρούν άμεσα με αυτά ή να αποκτούν πρόσβαση σε
διευθύνσεις μνήμης.
• Το υλικό διαθέτει δύο διαφορετικές καταστάσεις (modes) εκτέλεσης
εντολών από την CPU :
– User mode (non-privileged) για τα προγράμματα του χρήστη
– Privileged (kernel) mode για τον πυρήνα.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
20
Χαρακτηριστικά των multi-user συστημάτων
• Μηχανισμός ελέγχου της αυθεντικότητας των
χρηστών
• Μηχανισμός προστασίας από ύποπτα και
λανθασμένα προγράμματα χρηστών που οδηγούν
στην αναστολή εκτέλεσης άλλων προγραμμάτων
και στην παρακολούθηση των δραστηριοτήτων του
συστήματος
• Μηχανισμός παρακολούθησης των πόρων που
παραχωρούνται σε κάθε χρήστη
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
21
• Τα UNIX-like Λ.Σ. υιοθετούν το μοντέλο process/kernel.
Κάθε διεργασία έχει τη ψευδαίσθηση ότι είναι η μόνη
διεργασία στο σύστημα και έχει την αποκλειστική
πρόσβαση στις υπηρεσίες του Λ.Σ. Κάθε φορά που μια
διεργασία πραγματοποιεί μια κλήση συστήματος (μια
απαίτηση που διαβιβάζεται στον πυρήνα), το υλικό αλλάζει
την κατάσταση από user mode σε kernel mode και η
διεργασία αρχίζει την εκτέλεση μιας διαδικασίας πυρήνα
που έχει ένα αυστηρά περιορισμένο στόχο. Έτσι το Λ.Σ.
ενεργεί εντός του πλαισίου εκτέλεσης της διεργασίας
ώστε να ικανοποιήσει την απαίτηση. Μόλις η απαίτηση
ικανοποιηθεί πλήρως, η διαδικασία πυρήνα υποχρεώνει το
υλικό να επιστρέψει σε κατάσταση χρήστη και η διεργασία
συνεχίζει την εκτέλεσή της με την εντολή που ακολουθεί.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
22
Αρχιτεκτονική πυρήνα
• Οι περισσότεροι πυρήνες Unix είναι μονολιθικοί.
• Τα Λ.Σ. με αρχιτεκτονική μικροπυρήνα
(mikrokernel) απαιτούν ένα πολύ μικρό σύνολο
λειτουργιών από τον πυρήνα που περιλαμβάνει
λίγες στοιχειώδεις συναρτήσεις συγχρονισμού,
έναν απλό δρομολογητή και ένα μηχανισμό
διαδιεργασιακής επικοινωνίας. Αρκετές διεργασίες
συστήματος που εκτελούνται στην κορυφή του
μικροπυρήνα θέτουν σε εφαρμογή άλλες
λειτουργίες συστήματος, όπως οδηγούς συσκευών,
διαχειριστές κλήσεων συστήματος κλπ
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
23
• Τα Λ.Σ. με αρχιτεκτονική μικροπυρήνα :
– είναι γενικά βραδύτερα από τα μονολιθικά εξ αιτίας της
καθυστέρησης που προκαλεί η μεταβίβαση μηνυμάτων
μεταξύ των επιπέδων του Λ.Σ.
– διαθέτουν και ορισμένα θεωρητικά πλεονεκτήματα σε σχέση
με τα μονολιθικά. Οι μικροπυρήνες αναγκάζουν τους
προγραμματιστές συστημάτων να υιοθετούν μια τμηματική
προσέγγιση μια και κάθε επίπεδο ενός Λ.Σ. είναι ένα σχετικά
ανεξάρτητο πρόγραμμα που θα πρέπει να αλληλεπιδρά με τα
άλλα επίπεδα διαμέσου μιας καλά σχεδιασμένης και σαφούς
διεπαφής.
– Μπορούν να μεταφερθούν ευκολότερα σε άλλες
αρχιτεκτονικές, μια και όλα τα εξαρτώμενα από το υλικό
συστατικά ενθυλακώνονται γενικά στον κώδικα του
μικροπυρήνα,
– χρησιμοποιούν αποδοτικότερα τη μνήμη RAM.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
24
Modules
• Τα modules είναι ένα χαρακτηριστικό του πυρήνα. Ενσωματώνουν
αποτελεσματικά πολλά από τα θεωρητικά πλεονεκτήματα των
μικροπυρήνων χωρίς να μειώνουν την απόδοση.
• Ένα module είναι μια λειτουργική μονάδα (π.χ. ένα σύστημα αρχείων ή
ένας οδηγός συσκευής ή και άλλα χαρακτηριστικά του ανώτερου
επιπέδου του πυρήνα) ο κώδικας του οποίου μπορεί να συνδεθεί
δυναμικά ή να αποσυνδεθεί με (από) τον πυρήνα, κατά τη διάρκεια του
χρόνου εκτέλεσης, και πάντως μετά από την εκκίνηση του συστήματος.
Μπορεί επίσης να απομακρυνθεί από τον πυρήνα οποιαδήποτε στιγμή
εφόσον δεν χρειάζεται.
• Ένα module δεν εκτελείται ως μια ειδική διεργασία, όπως συμβαίνει με
τα εξωτερικά επίπεδα των Λ.Σ. μικροπυρήνα, αλλά εκτελείται σε
κατάσταση πυρήνα εκ μέρους της τρέχουσας διεργασίας όπως μια
οποιαδήποτε στατικά συνδεδεμένη συνάρτηση πυρήνα (δηλαδή από τη
στιγμή που φορτώνεται είναι ό,τι και ο πυρήνας).
• Το αποτέλεσμα είναι ένας μικρός σε μέγεθος και συμπαγής πυρήνας
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
25
Πλεονεκτήματα της χρήση modules
• Modularized προσέγγιση
– Οι προγραμματιστές συστήματος πρέπει να χρησιμοποιούν καλά
ορισμένα διεπαφές λογισμικού για να έχουν πρόσβαση στις δομές
δεδομένων που διαχειρίζονται τα modules. Έτσι είναι εύκολη η
ανάπτυξη νέων modules.
– Η διεπαφή μέσω modules επιτρέπει σε ανεξάρτητους
κατασκευαστές λογισμικού να γράφουν και να διανέμουν οδηγούς
συσκευών ή συστήματα αρχείων που δεν μπορούν να διανεμηθούν
εξ αρχής.
• Ανεξαρτησία πλατφόρμας
– Ένα module παρότι βασίζεται σε κάποια εξειδικευμένα
χαρακτηριστικά του υλικού, δεν είναι εξαρτώμενο από μια
συγκεκριμένη πλατφόρμα υλικού π.χ. ένα disk drive module που
βασίζεται στο πρότυπο SCSI θα δουλεύει εξίσου καλά σε πολλές
πλατφόρμες
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
26
• Οικονομική χρήση της κεντρικής μνήμης
– Ένα module συνδέεται στον τρέχοντα πυρήνα όταν
απαιτείται και αποσυνδέεται όταν ολοκληρωθεί η χρήση
του. Η διαδικασία αυτή δεν γίνεται άμεσα αντιληπτή από
το χρήστη καθώς η σύνδεση και η αποσύνδεση γίνονται
αυτόματα από τον πυρήνα.
• Ανυπαρξία επιπτώσεων στην απόδοση
– Από τη στιγμή που θα συνδεθεί ο object code ενός
module είναι ισοδύναμος με τον object code του
στατικά συνδεδεμένου πυρήνα. Δεν υπάρχει απαίτηση
για μεταβίβαση μηνυμάτων όταν οι συναρτήσεις του
module ενσωματώνονται στον πυρήνα.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
27
Τρόποι φόρτωσης ενός module
– χειροκίνητος : χρήση της εντολής insmod
– αυτόματος : ο πυρήνας ανακαλύπτει την ανάγκη
φόρτωσης ενός module (π.χ. ο χρήστης «συνδέει» ένα
σύστημα αρχείων) => ο kerneld daemon φορτώνει το
απαιτούμενο module χρησιμοποιώντας την insmod.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
28
Αρχιτεκτονική πυρήνα Linux
User Programs
User Programs
Trap
User level
Libraries
Kernel level
System Call Interface
File System Management
IPC
Buffer Cache
Process
Mgt.
Scheduling
Memory Mgt.
Device Drivers
Hardware Control (Interrupts handling, etc)
Hardware
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
29
Δομή του πυρήνα
User application
Standard Unix libraries
User level
Kernel level
System call interface
File Subsystem
Buffer cache
Character
Process
control
system
Interprocess communication
scheduler
Memory management
block
Device drivers
Hardware control
Hardware level
Hardware
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
30
Διαχείριση διεργασιών
• Διεργασίες Linux
Running
Interrupt
Return from
system call
Interrupt
routine
System call
Scheduler
Ready
Waiting
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
31
Διαχείριση μνήμης
• Μοντέλο ιδεατής μνήμης
Process X
VPFN7
VPFN6
Process X
Page Tables
VPFN5
VPFN4
VPFN3
PFN3
VPFN2
PFN2
VPFN1
PFN1
VPFN0
PFN0
VIRTUAL MEMORY
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
PHYSICAL MEMORY
32
Διαχείριση μνήμης
• Πίνακες σελίδων στο Linux
– Το Linux χρησιμοποιεί τρία επίπεδα πινάκων σελίδων
Level 1
Level 2
Level 3
Level 1
Page Table
Level 2
Page Table
Level 3
Page Table
PFN
PFN
PFN
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
Byte
within page
Physical
Page
33
Διαχείριση μνήμης
• Παραχώρηση και
αποδέσμευση σελίδων
μνήμης σύμφωνα με τον
αλγόριθμο Buddy.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
34
Scheduling
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
35
• The job of allocating CPU time to different tasks within
an operating system.
• While scheduling is normally thought of as the running
and interrupting of processes, in Linux, scheduling also
includes the running of the various kernel tasks.
• Running kernel tasks encompasses both tasks that are
requested by a running process and tasks that execute
internally on behalf of a device driver.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
36
Kernel Synchronization
• A request for kernel-mode execution can occur
in two ways:
– A running program may request an operating system
service, either explicitly via a system call, or
implicitly, for example, when a page fault occurs.
– A device driver may deliver a hardware interrupt
that causes the CPU to start executing a kerneldefined handler for that interrupt.
• Kernel synchronization requires a framework
that will allow the kernel’s critical sections to
run without interruption by another critical
section.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
37
Kernel Synchronization (Cont.)
• Linux uses two techniques to protect critical sections:
1. Normal kernel code is nonpreemptible
– when a time interrupt is received while a process is
executing a kernel system service routine, the kernel’s
need_resched flag is set so that the scheduler will run
once the system call has completed and control is
about to be returned to user mode.
2. The second technique applies to critical sections that occur in
an interrupt service routines.
– By using the processor’s interrupt control hardware to
disable interrupts during a critical section, the kernel
guarantees that it can proceed without the risk of concurrent
access of shared data structures.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
38
Kernel Synchronization (Cont.)
• To avoid performance penalties, Linux’s kernel uses a
synchronization architecture that allows long critical
sections to run without having interrupts disabled for
the critical section’s entire duration.
• Interrupt service routines are separated into a top half
and a bottom half.
– The top half is a normal interrupt service routine, and runs with
recursive interrupts disabled.
– The bottom half is run, with all interrupts enabled, by a
miniature scheduler that ensures that bottom halves never
interrupt themselves.
– This architecture is completed by a mechanism for disabling
selected bottom halves while executing normal, foreground
kernel code.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
39
Interrupt Protection Levels
• Each level may be interrupted by code running at a
higher level, but will never be interrupted by code
running at the same or a lower level.
• User processes can always be preempted by another
process when a time-sharing scheduling interrupt
occurs.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
40
Process Scheduling
• Linux uses two process-scheduling algorithms:
– A time-sharing algorithm for fair preemptive scheduling between
multiple processes
– A real-time algorithm for tasks where absolute priorities are more
important than fairness
• A process’s scheduling class defines which algorithm to apply.
• For time-sharing processes, Linux uses a prioritized, credit based
algorithm.
– The crediting rule
credits
credits :
 priority
2
factors in both the process’s history and its priority.
– This crediting system automatically prioritizes interactive or I/Obound processes.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
41
Process Scheduling (Cont.)
• Linux implements the FIFO and round-robin real-time
scheduling classes; in both cases, each process has a
priority in addition to its scheduling class.
– The scheduler runs the process with the highest priority; for
equal-priority processes, it runs the process waiting the longest
– FIFO processes continue to run until they either exit or block
– A round-robin process will be preempted after a while and
moved to the end of the scheduling queue, so that round-robing
processes of equal priority automatically time-share between
themselves.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
42
File Systems
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
43
File Systems
• Το σύστημα αρχείων του Linux εμφανίζεται στο χρήστη ως
μια ιεραρχική δομή καταλόγων που είναι σύμφωνο με τις
θεμελιώδεις αρχές του UNIX.
• Εσωτερικά, ο πυρήνας αποκρύπτει τις λεπτομέρειες της
υλοποίησης και διαχειρίζεται τα πολλά διαφορετικά
συστήματα αρχείων file μέσω ενός αφαιρετικού επιπέδου
που είναι το virtual file system (VFS).
• Το Linux VFS σχεδιάστηκε σύμφωνα με την
αντικειμενοστραφή άποψη και αποτελείται από δύο
συστατικά :
– Ένα σύνολο ορισμών που καθορίζουν το αντικείμενο
• Οι δομές inode-object και file-object αντιστοιχούν σε
μεμονωμένα αρχεία
• Το file system object αντιστοιχεί σε ένα σύστημα αρχείων
– Ένα επίπεδο λογισμικού για τη διαχείριση αυτών τωναντικειμένων
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
44
VFS
Sun Microsystems introduced the virtual file system framework
in 1985 to accommodate the Network File System cleanly.
– VFS allows diverse specific file systems to coexist in a file
tree, isolating all FS-dependencies in pluggable filesystem
modules.
user space
syscall layer (file, uio, etc.)
netwo
rk
proto
col
stack
(TCP/
IP)
Virtual File System (VFS)
NFS FFS LFS *FS ext2. xfs
device drivers
VFS was an internal kernel restructuring
with no effect on the syscall interface.
Incorporates object-oriented concepts:
a generic procedural interface with
multiple implementations.
Based on abstract objects with dynamic
method binding by type...in C.
Other abstract interfaces in the kernel: device drivers,
file objects, executable files, memory objects.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
45
Linux VFS
context
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
46
How it looks logically…
User space
Inode Cache
VFS
Directory Cache
NTFS
Ext2
Buffer Cache
CryptFS
Maintained by the kernel
Disk Drivers
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
47
Task 2
Task 1
…
Task n
user space
kernel space
VIRTUAL FILE SYSTEM
minix
ext2
msdos
proc
Buffer Cache
device driver
for hard disk
device driver
for floppy disk
Linux Kernel
software
Hard Disk
Floppy Disk
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
hardware
48
File System
• Linux files are organized by a hierarchy of labels,
commonly known as a directory structure. The files
referenced by these labels may be of three kinds:
– Regular files, which contains a sequence of bytes that generally
corresponds to code (programs) or data.
– Directory files, which are stored on disk in a special format and
form the backbone of the file system
– Special file, which correspond to peripherals such as printers or
disks.
• To the user, Linux file system appears as a hierarchical
directory tree obeying UNIX semantics.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
49
File System
• / is the root directory; reference point for all
directories. Every file has a unambiguous pathname:
–
/home/user1/papers
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
50
Directories σε συστήματα UNIX
•
•
•
•
/bin Binaries which are absolutely essential to run Linux.
/boot All the files required for booting Linux on a system.
/dev All the devices have their corresponding files here.
/etc All the configuration files for the various software are
stored here. Don't play with this directory.
• /home All users will have their 'My Documents' under this
directory. If your id is studin, your 'My Documents' (called homedirectory) is /home/studin.
• /lib The libraries required by system-applications. (Just like DLLs
in Windows.)
• /lost+found When a disk-check finds files which are damaged or
which are not linked to any directory, they are recovered to this
directory. Such damages are almost always due to incorrect
shutdown.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
51
Directories σε συστήματα UNIX
• /mnt The directory where peripherals and other file-systems are
mounted.
• /opt The directory where optional software are installed.
• /proc proc houses a pseudo-file system. Its contents really do not
exist anywhere on the disk, and are made available only when you
cd to this directory and look at some file.
• /root The home-directory for the super-user: root.
• /sbin The system-administration binaries exist here.
• /tmp The directory where temporary files are created and
stored. All users can save files here.
• /usr Everything related to users
• /var Files whose contents vary frequently are in this directory.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
52
• /usr Everything related to users
– /usr/bin houses critical binaries of the users
– /usr/include The header-files required by programs for compilation.
– /usr/lib The libraries required by user-applications.
– /usr/local Files peculiar to this particular machine.
– /usr/sbin User-administration binaries.
– /usr/share Information that can be shared by most users.
– /usr/src The source-code for the Linux kernel.
– /usr/X11R6 Files needed by the X Window system.
• /var Files whose contents vary frequently are in this directory.
– /var/log The log-files of the system.
– /var/spool Directories for mail, news, printing and other queued
work.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
53
Hard Disk Partitioning
•
•
•
•
Partitioning is a means of sub-dividing a hard disk.
A hard disk must contain at least one partition.
There are two types of partitions – primary and extended.
A disk can contain up to 4 primary partitions or up to 3 primary and
1 extended partition.
• One primary partition may be designated as active, this will be
used for booting the computer.
• Different operating systems can be installed on different primary
partitions – allowing multi-booting.
• An extended partition cannot be accessed directly by the
operating system but is instead sub-divided into logical drives.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
54
Disk Partitioning : fdisk
• Partition is large group of sectors allocated for a
specific purpose
– IDE disks limited to 4 physical partitions
– Logical (extended) partition inside physical partition
• Specify number of cylinders to use
• Specify type
/ (root)
– Magic number recognized by OS
usr
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
home
tmp
55
Hard Disk Initialization
• In order to be usable by the OS a partition must be
initialized.
• In UNIX/Linux the mkfs command is used, in Windows
the command is FORMAT.
• The initialisation process sets up the necessary
structures on a disk partition.
• In UNIX/Linux an initialized partition is referred to as
a file system on Windows it is called a drive.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
56
File System Creation (Format)
• Low-level Format
• Logical Format: Create file system structure
– Super block
• Magic number, block size and etc.
• Bitmaps (blocks, i-node),
• Pointers to i-node blocks (or FAT)
– (i-nodes)
• Tools
– Windows: format
– Linux: mke2fs
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
57
UNIX/Linux File System – Volume Structure
• When the mkfs command is run to initialize a
partition the following layout is created:
– boot block: first stage boot program.
– super block: contains details of disk size and
allocation of inodes and data blocks.
– i-nodes: storage space for inodes.
– data Blocks: rest of disk available for directories
and files.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
58
UNIX/Linux File System – Free Space Control
• When the mkfs command is run it creates a
chain of linked blocks.
• The super block contains the start block in the
chain.
• Each block contains an array of free data block
numbers and a pointer to the next block in the
chain.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
59
Mounting
• Separate file systems
• After mounting
Before mounting
After mounting
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
60
Logical Volumes
• File systems on physical volumes (partitions)
– A sequential series of blocks on a physical disk.
– Historically, a partition size is static.
• Shortcomings?
– What should be the size of a partition?
– Can a partition be resized when needed?
– Can a file system be built over multiple disks?
• References
– http://www.suse.de/en/whitepapers/lvm/
– http://ds9a.nl/lvm-howto/
– http://www.tldp.org/HOWTO/LVM-HOWTO/
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
61
Logical Volume Management
• A layer of abstraction over the storage:
– LVM re-organizes disk blocks in physical partitions into logical
volumes.
/dev/hda1, /dev/sda2  … 
/dev/vg0/usrlv, /dev/vg0/varlv, /dev/vg0/homelv
– A file system is installed on a logical volume
• Separates hardware and software storage management
– LVM hides the hardware details
– May change configurations during runtime.
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
62
Filesystem Comparison
Maximal FS size
Maximal filesize
Minix
Ext
Xia
Ext2
64MB
2GB
2GB
4TB
64MB
2GB
64MB
Maximal filename 14/30 chars
255 chars
248 chars
2GB
255 chars
3 timestamps
no
no
yes
yes
Extensible?
no
no
no
yes
Can vary block size?
no
no
no
yes
Code is maintained?
yes
no
?
yes
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
63
Common concepts
•
•
•
•
Files are represented by inodes
Directories are special files (dentries)
Devices accessed by I/O on special files
UNIX filesystems can implement ‘links’
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
64
i-nodes
• A structure that contains file’s description:
–
–
–
–
–
–
Type
Access rights
Owners
Timestamps
Size
Pointers to data blocks
• Kernel keeps the inode in memory (open)
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
65
i-node diagram
inode
Direct blocks
File info
Indirect blocks
Double
Indirect
Blocks
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
66
Directories
•
•
•
•
•
•
•
These are structured in a tree hierarchy
Each can contain both files and directories
A directory is just a special type of file
Special user-functions for directory access
Each dentry contains filename + inode-no
Kernel searches the direrctory tree
translates a pathname to an inode-number
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
67
Directory diagram
i-node Table
Directory
i1
name1
i2
name2
i3
name3
i4
name4
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
68
Links
• Multiple names can point to same inode
• The inode keeps track of how many links
• If a file gets deleted, the inode’s link-count gets
decremented by the kernel
• File is deallocated if link-count reaches 0
• This type of linkage is called a ‘hard’ link
• Hard links may exist only within a single FS
• Hard links cannot point to directories (cycles)
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
69
Symbolic Links
•
•
•
•
•
Another type of file linkage (‘soft’ links)
Special file, consisting of just a filename
Kernel uses name-substitution in search
Soft links allow cross-filesystem linkage
But they do consume more disk storage
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
70
Filesystem performance
• Two predominant performance criteria:
– Speed of access to file’s contents
– Efficiency of disk storage utilization
• How can these be meaningfully measured
• How do we screen out extraneous factors
– The underlying hardware medium
– The user-interface software, etc
ΑΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ / 03
71
Related documents