Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

 Μπορούμε να δούμε το ΛΣ από δύο βασικές οπτικές γωνίες:  Το λειτουργικό σύστημα ως ένας εξιδανικευμένος υπολογιστής  Το λειτουργικό σύστημα ως διαχειριστής.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: " Μπορούμε να δούμε το ΛΣ από δύο βασικές οπτικές γωνίες:  Το λειτουργικό σύστημα ως ένας εξιδανικευμένος υπολογιστής  Το λειτουργικό σύστημα ως διαχειριστής."— Μεταγράφημα παρουσίασης:

1  Μπορούμε να δούμε το ΛΣ από δύο βασικές οπτικές γωνίες:  Το λειτουργικό σύστημα ως ένας εξιδανικευμένος υπολογιστής  Το λειτουργικό σύστημα ως διαχειριστής πόρων του συστήματος  Με βάση την πρώτη οπτική το ΛΣ κάνει, μεταξύ άλλων, τα κάτωθι:  Παρέχει υψηλού επιπέδου interface για την διαχείριση του υλικού (ιδεατή μηχανή)  Διαχειρίζεται τα αρχεία στις μονάδες αποθήκευσης μέσω ενός συστήματος αρχείων που παρέχει δομημένη, ασφαλή και γρήγορη εγγραφή και ανάγνωση δεδομένων.  Με βάση την δεύτερη οπτική το ΛΣ κάνει, μεταξύ άλλων, τα κάτωθι:  Διαχειρίζεται τους πόρους του συστήματος (μνήμη, cpu, περιφερειακά), αποφεύγοντας συγκρούσεις και σφάλματα, δίνοντας κατά το δυνατό ίσες ευκαιρίες στους χρήστες για χρήση του συστήματος  Φροντίζει για την καλή απόδοση του συστήματος  Φροντίζει για την ασφάλεια του συστήματος (εσφαλμένες διαγραφές/επικαλύψεις μνήμης, αρχείων, ρουτινών, ασφάλεια συσκευών, μη εξουσιοδοτημένες προσβάσεις)

2  Δύο βασικές καταστάσεις λειτουργίας υπάρχουν σχεδόν σε κάθε υπολογιστικό σύστημα:  Κατάσταση Πυρήνα (Protected/kernel/supervisor mode)  Κατάσταση χρήστη (User mode)  Το λειτουργικό σύστημα εκτελείται σε κατάσταση πυρήνα  Τα υπόλοιπα προγράμματα εκτελούνται σε κατάσταση χρήστη  Ως εκ τούτου, λειτουργικό σύστημα θα πρέπει να θεωρούμε μόνο το λογισμικό που εκτελείται σε κατάσταση πυρήνα.  Τα προγράμματα διερμηνείας των εντολών χρήστη – το κέλυφος (shell) και το γραφικό περιβάλλον (GUI) – βρίσκονται στο χαμηλότερο επίπεδο των προγραμμάτων που τρέχουν σε κατάσταση χρήστη  Συχνά στις μέρες μας θεωρούνται, εκ παραδρομής, μέρος του ΛΣ και προγράμματα όπως το κέλυφος ή προγράμματα υπηρεσιών, π.χ. communication services (ftp, web browser, telnet)

3  Πυρήνας (Kernel) αποτελείται από ρουτίνες, υλοποιεί την διαχείριση CPU, διεργασιών και μνήμης, interface με το hardware  Κλήσεις Συστήματος (System Calls), εκτελούνται σε protected mode, υλοποιούν βασικές λειτουργίες, καλούνται από προγράμματα, (διεργασιών, αρχείων, συσκευών, πληροφοριών, επικοινωνιών)  Οδηγοί συσκευών (Device drivers)  Υπηρεσίες Services, communication services (ftp, web, telnet, DNS), print services (spooling), DDE, OLE, Event Log, Alerts, Task Scheduler  Προγράμματα Συστήματος (System programs), Διαχείριση αρχείων, πληροφορίες κατάστασης, υποστήριξη γλωσσών προγρ/μού, φόρτωμα και εκτέλεση προγραμμάτων, επικοινωνίες, εφαρμογές)

4  Διεργασίες (processes) – Εκτελούμενο πρόγραμμα ή τμήμα, με δική του μνήμη, καταχωρητές και κατάσταση CPU, απαριθμητή προγ/τος και stack, Διεργασίες – απόγονοι (child processes).  Ελαφρές διεργασίες – νήματα (threads), τμήματα διεργασιών με κοινή μνήμη που τρέχουν ταυτόχρονα (concurrent).  Χρονοπρογραμματισμός διεργασιών (process scheduling)  Μεταγωγή Περιβάλλοντος (Context Switching)  Σηματοφορείς (semaphores)  Αδιέξοδα (deadlocks), πρόληψη, επανόρθωση.  Εικονική μνήμη (virtual memory) – Διαχείριση Εικονικής Μνήμης  Αρχεία και συστήματα αρχείων, διαχείριση αρχείων  Είσοδος – Έξοδος (I/O), συσκευές, διαχείριση I/O, Διακοπές-Interrupts

5  Ιδεατές Μηχανές (virtual machines). Το σύστημα VM/370 (1979) για τα IBM 360/370. Ελεγκτής ιδεατής μηχανής (virtual machine monitor). Δημιουργεί στα ανώτερα επίπεδα ιδεατά αντίγραφα της μηχανής (φλοιός, I/O, διακοπές, κ.λ.π.). Πλήρης διαχωρισμός του πολυπρογ/μού και του εκτεταμένου interface με τον χρήστη  Οι ιδεατές μηχανές ήταν αντίγραφα της βασικής μηχανής και μπορούσαν να τρέχουν ακόμα και διαφορετικά Λ.Σ.  Ο πολυπρογραμματισμός ήταν υλοποιημένος στο Virtual Machine Monitor Ιδεατή Μηχανή 370 VM/370 – Virtual Machine Monitor Πραγματικό υλικό του IBM/370

6  Το μοντέλο Εξυπηρετούμενου-Εξυπηρετητή (Client-Server). Ανάγκη για μικρό πυρήνα και απομάκρυνση των λειτουργιών από αυτόν. Ο πυρήνας μεταβιβάζει αιτήσεις από τους clients στους servers. Διαδικασίες Clients και Servers τρέχουν σε κατάσταση χρήστη. Client 1Client 2………Server 1Server 2 Πυρήνας (kernel) Client 1 πυρήνας Server 1 πυρήνας Client 2 πυρήνας Δίκτυο

7 Στόχοι σχεδίασης Λειτουργικών Συστημάτων (ως προς τον χρήστη)  Βολικά στη χρήση  Εύκολα στην εκμάθηση  Αξιόπιστα  Ασφαλή  Γρήγορα στην εκτέλεση Στόχοι σχεδίασης Λειτουργικών Συστημάτων (ως προς το σύστημα)  Εύκολα στη σχεδίαση, υλοποίηση και συντήρηση  Ευέλικτα, αξιόπιστα, χωρίς σφάλματα και αποδοτικά Παραδοσικά γράφονταν σε assembly. Τώρα γράφονται σε γλώσσες υψηλού επιπέδου ( C++) – Ταχύτητα ανάπτυξης, συμπαγή, ευκολία κατανόησης-διόρθωσης, μεταφορά σε διαφορετικές πλατφόρμες SYSGEN (ανακτά πληροφορίες για το hardware), BOOT-εκκίνηση με φόρτωμα του πυρήνα, Πρόγραμμα BootStrap σε ROM για εύρεση / φόρτωμα του πυρήνα (kernel)

8  Η διεργασία είναι η βασικότερη έννοια στα Λ.Σ.  Διεργασία = πρόγραμμα σε εκτέλεση  Στα συστήματα πολυπρογραμματισμού και καταμερισμού χρόνου μία διεργασία απασχολεί τη CPU κάθε φορά αλλά με την συχνή τους εναλλαγή δίνουν την εντύπωση του ψευδοπαραλληλισμού  Σε συστήματα με πολλές CPU υπάρχει πραγματικός παραλληλισμός υλοποιούμενος μέσω hardware  Το Λ.Σ. καλείται να χειριστεί παράλληλα πολλές διεργασίες αποφεύγοντας τα σφάλματα.  Όλο το λογισμικό που εκτελείται στον Η/Υ (Λ.Σ. και εφαρμογές χρηστών) ακολουθεί το μοντέλο των διεργασιών.

9 A B Γ Δ Εναλλαγή διεργασιών στη μνήμη (πολυπρογραμματισμός) Α Ιδεατό μοντέλο ανεξάρτητων διεργασιών με 4 μετρητές προγράμματος Β Γ Δ Α Β Γ Δ χρόνος Α Β Γ Δ Καταμερισμός χρόνου round-robin (διάγραμμα Gantt) διεργασίες 0 quantum

10  Η χρονοδρομολόγηση των διεργασιών στα συνήθη ΛΣ δεν εγγυάται σταθερό ρυθμό εκτέλεσης του κώδικά τους. Επομένως, σε τέτοια συστήματα οι διεργασίες δεν πρέπει να έχουν εξάρτηση από τον πραγματικό χρόνο.  Κατά την διάρκεια λειτουργίας του ΛΣ διεργασίες δημιουργούνται και καταστρέφονται. Μία διεργασία (γονέας) μπορεί να δημιουργήσει άλλες διεργασίες (παιδιά – child processes). Δ1 Δ2 Δ3  Στο UNIX η δημιουργία διεργασίας γίνεται με την κλήση συστήματος fork, που αρχικά παράγει ένα ακριβές αντίγραφο της γονικής διεργασίας. Γονέας και παιδί έχουν διαφορετικές περιοχές μνήμης.  Στο MS-DOS με κλήση συστήματος μία διεργασία μπορεί να εκτελέσει ένα άλλο εκτελέσιμο αρχείο (com ή exe). Η γονική αναστέλλεται.

11  Μία διεργασία μπορεί να δημιουργηθεί κατά την πραγματοποίηση ενός από τα παρακάτω: Εκκίνηση συστήματος Εκτέλεση της κλήσης συστήματος δημιουργίας διεργασίας από μία άλλη διεργασία Αίτημα χρήστη για δημιουργία νέας διεργασίας Εκκίνηση ομαδικής επεξεργασίας (batch job)  Στην πρώτη περίπτωση ο πυρήνας φτιάχνει την πρώτη διεργασία με ειδικό τρόπο.  Στις επόμενες τρεις περιπτώσεις ο τρόπος δημιουργίας είναι ουσιαστικά ένας: να κληθεί η ρουτίνα συστήματος (system call) δημιουργίας νέας διεργασίας, που βρίσκεται στον πυρήνα του ΛΣ  Αυτό που επίσης διαφέρει είναι ο “χρήστης” που προκαλεί την κλήση: στην πρώτη και τέταρτη περίπτωση είναι το ΛΣ, στην δεύτερη είναι μία διεργασία, και στην τρίτη είναι ο άνθρωπος-χρήστης

12  Μία διεργασία συνήθως καταργείται κατά την πραγματοποίηση ενός από τα παρακάτω συμβάντα: Κανονική έξοδος (ηθελημένη) Έξοδος με λάθος (ηθελημένη) Τερματισμός λόγω καταστροφικού λάθους (αθέλητος) “Σκότωμα” από άλλη διεργασία (αθέλητο)  Ο ηθελημένος τερματισμός μίας διεργασίας γίνεται στο UNIX με την κλήση συστήματος exit (περιπτώσεις 1,2), ενώ ο τερματισμός μίας άλλης διεργασίας γίνεται με την κλήση συστήματος kill (περίπτωση 4).  Στην τρίτη περίπτωση ουσιαστικά το ΛΣ είναι που αναγνωρίζει την ανάγκη για κατάργηση της διεργασίας

13 Εκτελούμενη Υπό αναστολήΕκτελέσιμη  Βασικές καταστάσεις διεργασιών : Εκτελούμενη (running), χρησιμοποιεί την CPU Έτοιμη ή εκτελέσιμη (ready, runnable), περιμένει την σειρά της για εκτέλεση (δεν είναι διαθέσιμη η CPU) Υπό αναστολή (blocked) περιμένει μέχρι να λάβει χώρα κατάλληλο συμβάν.

14  Ο χρονοπρογραμματιστής του Λ.Σ., για να καταμερίσει τον χρόνο ανάμεσα στις διεργασίες, μετατρέπει μία διεργασία από εκτελούμενη σε εκτελέσιμη (μεταβάσεις 2 και 3).  Η μετάβαση 1 συμβαίνει όταν η διεργασία περιμένει την ολοκλήρωση ενός, εξωτερικού προς αυτήν, συμβάντος.  Η μετάβαση 4 συμβαίνει όταν ολοκληρωθεί το συμβάν.  Για να καταλάβουμε την κατάσταση “υπό αναστολή”, παίρνουμε το παράδειγμα μίας διεργασίας που παίρνει ως είσοδο την έξοδο μίας άλλης. type text.txt | more Η more αναστέλλεται κάθε φορά που η type δεν προλαβαίνει να γεμίσει το buffer με δεδομένα, ενώ η type αναστέλλεται κάθε φορά που ο buffer είναι πλήρως γεμάτος

15  Μοντέλο διεργασίας : μια εικόνα μνήμης (core image) που υπάρχει σε ξεχωριστή περιοχή διευθύνσεων μνήμης (address space) + μία εγγραφή στον πίνακα διεργασιών (process table)  Η εικόνα μνήμης περιέχει: το εκτελέσιμο πρόγραμμα, τα δεδομένα του προγράμματος την στοίβα  Η εγγραφή στον πίνακα διεργασιών περιέχει μεταξύ αλλών:  δείκτες σε τμήματα μνήμης (δεδομένων και κώδικα)  καταχωρητές (μεταξύ των οποίων ο μετρητής προγράμματος – program counter – και ο δείκτης στοίβας – stack pointer)  λίστα ανοιχτών αρχείων (file descriptors)  εκκρεμείς ειδοποιήσεις (alarms)  λίστα συσχετιζόμενων διεργασιών (π.χ. διεργασίες-παιδιά)

16 Διαχείριση διεργασιώνΔιαχείριση μνήμηςΔιαχείριση αρχείων ΚαταχωρητέςΔείκτης στο τμήμα δεδομένων (data segment) Αρχικός Kατάλογος Δείκτης εντολώνΔείκτης στον κώδικα (text segment) Λειτουργικός Κατά- λογος Κατάσταση διεργασίαςΔείκτης στοίβαςΠεριγραφείς αρχείων Γονική διεργασίαΤαυτότητα χρήστη Χρόνος εκκίνησηςΤαυτότητα ομάδας Χρόνος χρήσης CPU Ταυτότητα διεργασίας

17  Η καταχώρηση στον πίνακα διεργασιών γίνεται όταν δημιουργηθεί η διεργασία (καταχώρηση αρχικών στοιχείων) ή όταν η διεργασία μεταπίπτει από εκτελούμενη σε εκτελέσιμη, ώστε να συνεχίσει αργότερα. Καταχωρήσεις πεδίων γίνονται και κατά τις υπόλοιπες μεταβάσεις. Κατά την δημιουργία διεργασίας γίνονται τα ακόλουθα : 1.Δημιουργείται εγγραφή στον πίνακα διεργασιών. 2.Τίθεται ως κατάσταση της διεργασίας η κατάσταση «εκτελέσιμη». 3.Αποθηκεύονται οι ταυτότητες χρήστη και ομάδας. 4.Καταχωρείται η ταυτότητα της γονικής διεργασία που την παρήγαγε. 5.Καταχωρείται η “ταυτότητα” της διεργασίας PID (αριθμός). 6.Καταχώρηση καταλόγου εκκίνησης και λειτουργικού καταλόγου. 7.Αρχικοποιούνται τα υπόλοιπα πεδία με μηδενικές τιμές.

18 Κατά την μετάβαση από εκτελέσιμη σε εκτελούμενη : 1.Ανάκτηση πληροφοριών για την συνέχιση της διεργασίας 2.Καταχώρηση χρόνου εκκίνησης (την πρώτη φορά) 3.Μεταβολή της κατάστασης διεργασίας σε «εκτελούμενη» Κατά την μετάβαση από εκτελούμενη σε εκτελέσιμη : 1.Αποθήκευση δείκτη εντολών προγράμματος 2.Αποθήκευση κατάστασης CPU (καταχωρητές) 3.Αποθήκευση δυναμικής μνήμης και δείκτη stack 4.Αποθήκευση κατάστασης ανοικτών αρχείων 5.Αυξητική καταγραφή του χρόνου απασχόλησης της CPU. 6.Μεταβολή της κατάστασης διεργασίας σε «εκτελέσιμη»

19  Συνθήκες ανταγωνισμού (race conditions): όταν δύο διεργασίες επιχειρούν να χρησιμοποιήσουν ταυτόχρονα την ίδια περιοχή μνήμης.  Το κομμάτι κώδικα μιας διεργασίας, στο οποίο γίνεται προσπέλαση σε μνήμη που χρησιμοποιείται και από άλλες διεργασίες, ονομάζεται κρίσιμο τμήμα (critical section) και δεν πρέπει να εκτελείται ταυτόχρονα με τα κρίσιμα τμήματα των άλλων διεργασιών. Παράδειγμα : Δ1 : x=x+1, Δ2 : x=x+2. Επιθυμητό αποτέλεσμα x=x+3. Ανάλυση σε γλώσσα μηχανής : 1.Φόρτωσε τον Α με x 2.Αύξησε τον Α κατά 1 (ή 2) 3.Αποθήκευσε τον Α στο x Μπορεί να προκύψει λάθος αποτέλεσμα π.χ. με εκκίνηση της Δ2 όταν η Δ1 έχει εκτελέσει και το βήμα 2.

20 Οι παρακάτω αρχές διαφυλάσσουν το σύστημα από εμφάνιση συνθηκών συναγωνισμού:  Δύο διεργασίες δεν πρέπει να βρίσκονται ποτέ ταυτόχρονα στο κρίσιμο τμήμα τους (αμοιβαίος αποκλεισμός).  Διεργασία που δεν είναι στο κρίσιμο τμήμα της δεν πρέπει να μπορεί να εμποδίσει άλλες από το να εισέλθουν στο δικό τους κρίσιμο τμήμα.  Όταν πολλές διεργασίες επιχειρούν να εισέλθουν στο κρίσιμο τμήμα τους δεν πρέπει να περιμένουν επ’ άπειρον.  Δεν επιτρέπεται ο κώδικας μιας διεργασίας να βασίζει την λογική του σε υποθέσεις για την ταχύτητα εκτέλεσής της διεργασίας ή για το πλήθος των διαθέσιμων επεξεργαστών.

21 Παρακάτω δίνονται διάφορες προτάσεις για την επίτευξη αμοιβαίου αποκλεισμού (mutual exclusion):  Απενεργοποίηση διακοπών (interrupts) – επικίνδυνο για την ασφάλεια.  Μεταβλητές κλειδώματος κοινής χρήσης– Πρόβλημα με ταυτόχρονη πρόσβαση.  Εντολή TSL (Test and Set Lock) – που εκτελείται αδιαίρετα και με κλείδωμα του διαύλου μνήμης, για έλεγχο σημαιών (flags).  Παρακολουθητές (monitors) – Δομές υψηλού επιπέδου σε γλώσσες προγρ/μού που ορίζουν μπλόκ συναρτήσεων που δεν μπορεί να εκτελεστούν ταυτόχρονα.  Μεταβίβαση μηνυμάτων (message passing) μεταξύ διεργασιών – SEND, RECEIVE, με κλήσεις συστήματος.  Σηματοφορείς (semaphores)

22  Μεταβλητές του Λ.Σ. για τον έλεγχο διεργασιών.  0 σημαίνει κατειλημμένος, >1 σημαίνει ελεύθερος.  Ο έλεγχος της τιμής και η μεταβολή της είναι ενέργειες αδιαίρετες και δεν μπορούν να διακοπούν, ατομικές ενέργειες (atomic action).  Λειτουργία DOWN (ή P) : Η διαδικασία περιμένει να ελευθερωθεί ο σηματοφορέας (να γίνει 1) και τον μειώνει κατά 1. if (s==0) { sleep(); }; s=s-1;  Λειτουργία UP (ή V) : Η διαδικασία εξέρχεται από το κρίσιμο τμήμα της και ελευθερώνει τον σηματοφορέα s=s+1; if (s==1) { wakeup(); }; Το Λ.Σ. υλοποιεί μεγάλο αριθμό σηματοφορέων για τους διάφορους πόρους του συστήματος. Πολλές διεργασίες που αναμένουν έναν σηματοφορέα καταχωρούνται σε λίστες αναμονής (waiting lists) που υλοποιούνται ως ουρές (queues) FIFO.

23 Καταχωρητές (Registers) Λανθάνουσα μνήμη επιπέδου 1 (Level 1 cache) Λανθάνουσα μνήμη επιπέδου 2 (Level 2 cache) Κύρια Μνήμη RAM (Main Memory) Μαγνητικοί Δίσκοι (Hard Disks) Οπτικοί Δίσκοι (CD, DVD) Μαγνητικές Ταινίες Χωρητικότητα Ταχύτητα Κόστος

24  Βασικά καθήκοντα Διαχειριστή Μνήμης (ΔΜ): 1.Παρακολουθεί ποια τμήματα της μνήμης είναι σε χρήση και ποια όχι 2.Χορηγεί μνήμη σε διεργασίες όποτε την χρειάζονται. 3.Ελευθερώνει την μνήμη διεργασιών που τερματίζουν και την επαναχορηγεί σε άλλες διεργασίες.  Είδη ΔΜ:  Διαχειριστές μνήμης (ΔΜ) χωρίς εναλλαγή ή σελιδοποίηση  Διαχειριστές μνήμης που εναλλάσσουν τμήματα μεταξύ κύριας και δευτερεύουσας μνήμης (εναλλαγή/swapping, σελιδοποίηση/paging)  Στην δεύτερη περίπτωση ο ΔΜ κάνει και τα παρακάτω: 1.Διαχειρίζεται την εναλλαγή μεταξύ κύριας και δευτερεύουσας μνήμης (RAM – HDD), memory swapping, Ιδεατή μνήμη (virtual memory). 2.Φροντίζει για την εξάλειψη του κατακερματισμού της μνήμης.

25 1.Μονοπρογραμματισμός – ένα πρόγραμμα φορτωμένο σε ένα διαμέρισμα μνήμης (memory partition) 2.Πολυπρογραμματισμός – πολλά προγράμματα φορτωμένα στην ΚΜ, καθένα σε δικό του διαμέρισμα  στατικά διαμερίσματα – ίσα ή άνισα, δημιουργημένα είτε από τον χρήστη είτε από το ΛΣ  δυναμικά διαμερίσματα – ο χώρος κάθε διεργασίας είναι και ένα διαμέρισμα, οι διεργασίες φορτώνονται χωρίς κενά ανάμεσά τους Πρόγραμμα(τα) χρήστη Λ.Σ. στη RAM Λ.Σ. στη ROM Πρόγραμμα(τα) χρήστη Οδηγοί συσκευών στη ROM - BIOS Πρόγραμμα(τα) χρήστη Λ.Σ. στη RAM

26  Η μνήμη χωρίζεται σε ένα συγκεκριμένο αριθμό πιθανά άνισων τμημάτων (memory partitions ή segments) – στατική κατανομή.  Οι διεργασίες περιμένουν σε ουρά εξυπηρέτησης. Το Λ.Σ. εξετάζει την ουρά και αναθέτει σε κάθε διεργασία το κατάλληλο τμήμα μνήμης, έτσι ώστε να γίνει εκτελέσιμη.  Χρησιμοποιήθηκε στο OS/360 για IBM System/360 ως MFT (Multi- programming with Fixed number of Tasks). Τμήμα 4 Τμήμα 3 Τμήμα 2 Τμήμα 1 Λ.Σ. Δ4Δ3Δ2 Δ1 Δ5Δ6

27  Η μνήμη παραχωρείται στις διεργασίες που γίνονται εκτελέσιμες ανάλογα με τις απαιτήσεις τους. Ο χώρος κάθε διεργασίας ξεκινά ακριβώς μετά τον χώρο της προηγούμενης.  Όταν μία διεργασία τερματίζει, ο χώρος μνήμης που κατελάμβανε απελευθερώνεται.  Δημιουργείται κατακερματισμός λόγω εμφάνισης οπών μνήμης. –αντιμετώπιση με σύμπτυξη μνήμης Α Λ.Σ. Β Α Γ Β Α Γ Β Δ Γ Β Γ Δ Γ Ε Δ

28 Στατική Κατανομή μνήμης (static allocation) :  Μεγαλύτερη απλότητα στη διαχείριση μνήμης.  Κατακερματισμός με δημιουργία οπών.  Αδυναμίες στην εξυπηρέτηση διεργασιών Δυναμική Κατανομή μνήμης (dynamic allocation) :  Ευελιξία και αποδοτικότητα – μικρή σπατάλη μνήμης.  Δυνατότητα εκμετάλλευσης οπών μνήμης.  Δυνατότητα συμπίεσης μνήμης με επανατοποθέτηση.  Πολύπλοκη διαχείριση από το Λ.Σ.

29  Μετατόπιση (relocation) : η “μετάφραση” των διευθύνσεων μνήμης που χρησιμοποιεί ένα πρόγραμμα ανάλογα με το τμήμα μνήμης στο οποίο θα φορτωθεί το πρόγραμμα.  Προστασία (protection) : δεν πρέπει ένα πρόγραμμα να απευθύνεται σε άλλα τμήματα μνήμης, εκτός από εκείνα που του παραχωρούνται.  Τα ζητήματα της μετατόπισης και προστασίας αντιμετωπίστηκαν με διάφορους τρόπους:  Λύση με στατική μετατόπιση (π.χ. αν το τμήμα μνήμης είναι το 100k-200k πρέπει όλες οι διευθύνσεις να μετασχηματιστούν: το JMP 100 γίνεται JMP ) και κωδικούς προστασίας τμημάτων στο PSW (program status word) με παγίδευση όλων των προσπελάσεων μνήμης.  Λύση δυναμικής μετατόπισης με καταχωρητή βάσης (base register) και καταχωρητή ορίου (limit register). Δεν τροποποιούνται οι προσπελάσεις μνήμης στο πρόγραμμα. Όλες οι προσπελάσεις μνήμης ελέγχονται ως προς το όριο. Πλεονέκτημα λόγω δυνατότητας μετατόπισης και αφού έχει ξεκινήσει το πρόγραμμα. Χρησιμοποιείται και στην απλή εναλλαγή (swapping).  Σήμερα το πρόβλημα λύνεται με χρήση εικονικής μνήμης.

30  Η δυνατότητα απευθείας πρόσβασης ενός προγράμματος στην κεντρική μνήμη προξενεί διάφορα σοβαρά προβλήματα: –ένα πρόγραμμα μπορεί, ηθελημένα ή άθελά του, να αλλοιώσει τα δεδομένα του ΛΣ, γράφοντας στο κομμάτι μνήμης που είναι το ΛΣ –το ίδιο μπορεί να κάνει και σε άλλα προγράμματα που μπορεί να είναι ταυτόχρονα φορτωμένα στην μνήμη  Θέλουμε, λοιπόν, έναν χώρο διευθύνσεων για μία διεργασία, ένα σύνολο από διευθύνσεις τις οποίες να μπορεί να χρησιμοποιήσει μία διεργασία για να απευθυνθεί στην μνήμη, οι οποίες να μην είναι διευθύνσεις της ΚΜ.  Η στατική μετατόπιση είναι μία αργή και περίπλοκη λύση. Δεν είναι αρκετά αποδοτική για να μπορεί να θεωρηθεί υλοποίηση χώρου διευθύνσεων.  Η χρήση καταχωρητών βάσης/ορίου προσφέρει έναν ενιαίο τρόπο αντιμετώπισης των προβλημάτων μετατόπισης και προστασίας, και ταυτόχρονα είναι αρκετά πρακτική για να αποτελεί λύση για την υλοποίηση του χώρου διευθύνσεων μιας διεργασίας.

31  Στα περισσότερα συστήματα σήμερα, η συνολική ανάγκη των διεργασιών σε μνήμη είναι μεγαλύτερη από την κεντρική μνήμη (ΚΜ).  Μία απλή (αλλά ξεπερασμένη) λύση είναι η φόρτωση όλων των δεδομένων μίας διεργασίας στην ΚΜ, με δυναμική κατανομή. Όποτε δεν υπάρχει αρκετός χώρος στην ΚΜ για την φόρτωση μίας διεργασίας από τον δίσκο, αποθηκεύονται στον δίσκο μία ή περισσότερες διεργασίες που δεν χρησιμοποιούνται εκείνη την στιγμή (swapping) και απελευθερώνεται χώρος στην ΚΜ για την νέα διεργασία. Δ Γ Β Α Λ.Σ. RAM Z E HDD Δ Γ E Α Λ.Σ. RAM Z B HDD Δ Γ E Z Λ.Σ. RAM A B HDD

32  Ειδικά σε συστήματα με εναλλαγή, οι διεργασίες μπορεί να χρειαστεί να δεσμεύσουν παραπάνω μνήμη κατά την εκτέλεσή τους. Λύσεις: –Χορήγηση διπλανού ελεύθερου τμήματος μνήμης. –Μετατόπιση της διεργασίας σε άλλο τμήμα μνήμης. –Αποθήκευση στον δίσκο έως ότου απελευθερωθεί μνήμη. Εναλλακτική λύση : χορήγηση παραπάνω μνήμης από την απαιτούμενη. Β Α Λ.Σ. χρησιμοποιείται χώρος επέκτασης χρησιμοποιείται χώρος επέκτασης Στοίβα Β Δεδομένα Β Πρόγραμμα Β Στοίβα Α Δεδομένα Α Πρόγραμμα Α Λ.Σ. χώρος επέκτασης

33  Οι περισσότερες υλοποιήσεις εικονικής μνήμης χρησιμοποιούν σελιδοποίηση (paging) (βλέπε επόμενη διαφάνεια).  Χρησιμοποιούνται εικονικές διευθύνσεις μνήμης που είναι περισσότερες από τις πραγματικές.  Αντιστοίχιση περιοχών εικονικής μνήμης σε πραγματικές. Α Β Γ Λ.Σ. Α Β Γ int i float j char c Χώρος συμβολικών ονομάτων Χώρος εικονικών διευθύνσεων Χώρος πραγματικών διευθύνσεων

34  Η πραγματική κύρια μνήμη διαιρείται σε ένα αριθμό ενοτήτων (γνωστών και ως πλαισίων σελίδας) ίσου μεγέθους (blocks ή frames).  Ο χώρος της εικονικής μνήμης διαιρείται σε έναν αριθμό σελίδων (pages) ίσου μεγέθους με τις ενότητες.  Αντιστοιχίζεται μία ενότητα σε μία σελίδα. Πίνακας σελίδων.  Αναφορά διευθύνσεων ως Αριθμός σελίδας - Μετατόπιση. Σελίδα 0 Σελίδα 1 Σελίδα 2 Σελίδα 3 Σελίδα 4 Σελίδα 5 Σελίδα 6 Ενότητα 0 Ενότητα 1 Ενότητα 2 Ενότητα 3 Σελίδα 0Ενότητα 1 Σελίδα 1- Σελίδα 2Ενότητα 3 Σελίδα 3- Σελίδα 4Ενότητα 0 Σελίδα 5Ενότητα 2 Σελίδα 6- Εικονικός ΧώροςΠραγματικός ΧώροςΠίνακας Αντιστοίχισης Σελίδων

35  Associative memory ή Translation Lookaside Buffer (TLB) – μνήμη λίγων καταχωρήσεων του πίνακα σελίδων (συνήθως 8-64) ενσωματωμένη στην Μονάδα Διαχείρισης Μνήμης (MMU).  Σε κάθε αναφορά ιδεατής μνήμης ελέγχονται παράλληλα οι καταχωρήσεις και αν βρεθεί, εξάγεται απευθείας η ενότητα.  Αν δεν βρεθεί, τότε μία εγγραφή αντικαθίσταται από την σωστή του πίνακα σελίδων. Ποσοστό επιτυχίας (hit ratio) ΈγκυρηΙδεατή ΣελίδαΤροποποίησηΠροστασίαΕνότητα 11400RW RX RW RW RX RX RW55

36  Κάθε διεργασία μπορεί να έχει πολλούς χώρους εικονικών διευθύνσεων μεταβλητού μεγέθους, που μπορεί να αλλάζουν δυναμικά.  Διεύθυνση βάσης – μέγεθος – παρουσία στην κύρια μνήμη.  Πίνακας Τμημάτων (segment table) Α Β Λ.Σ. RAM Αριθμός Τμήματος Πιν.Σελ. Αρ.Σελ. Αριθμός Σελίδας Λέξη Σχετική Διεύθυνση Πίνακας Τμημάτων Πίνακας Σελίδων Σελίδα

37  Τρεις είναι οι βασικές απαιτήσεις για μακροπρόθεσμη αποθήκευση: θα πρέπει να μπορούμε να αποθηκεύουμε μεγάλες ποσότητες δεδομένων θα πρέπει τα δεδομένα μας να μπορούν να υπάρχουν και μετά τον τερματισμό της διεργασίας που τα παράγει ή/και τα διαχειρίζεται θα πρέπει να είναι δυνατή η ταυτόχρονη χρήση των δεδομένων από περισσότερες της μίας διεργασίες

38  Τα σύγχρονα υπολογιστικά συστήματα συνοδεύονται από μονάδες μόνιμης αποθήκευσης δεδομένων μεγάλης χωρητικότητας (Σκληροί δίσκοι, CD-ROM, DVD) που μπορούν να αποθηκεύσουν τεράστιους όγκους πληροφορίας.  Η πληροφορία αποθηκεύεται με την μορφή αρχείων. Το κομμάτι του Λ.Σ. που διαχειρίζεται τα αρχεία και τις μονάδες αποθήκευσης είναι το Σύστημα Αρχείων (File System).  Αρχείο είναι ένα πεπερασμένο σύνολο πληροφορίας (μία ομάδα από ψηφιακές λέξεις-bytes) που αποτελούν μία ενιαία οντότητα με συγκεκριμένο νοηματικό ή λειτουργικό περιεχόμενο (π.χ. εκτελέσιμα αρχεία προγραμμάτων, αρχεία κειμένου, εικόνων, μουσικής κ.λ.π.)  Έχουν υλοποιηθεί πολλά διαφορετικά συστήματα αρχείων Π.χ. FAT16 (MS-DOS, WIN 3.1, WIN95), FAT32 (WIN 98, WIN 2000), NTFS (WIN NT, WIN 2000, WIN XP), EXT2 (Unix/Linux – Second Extended File System), HFS (Macintosh), JFS (HP_UX, AIX, OS/2v5, LINUX-Journaled File System), CDFS (CD-ROM)

39 1.Χρήση αρχείων με τα συμβολικά τους ονόματα. 2.Οργάνωση αρχείων σε ιεραρχικούς καταλόγους. 3.Διενέργεια εργασιών στα αρχεία (δημιουργία, άνοιγμα, κλείσιμο, διαγραφή, μεταβολή, μετονομασία, αντιγραφή, μετακίνηση, εκτέλεση). 4.Διενέργεια εργασιών σε καταλόγους (δημιουργία, άνοιγμα, κλείσιμο, διαγραφή, ενημέρωση, μετονομασία, δημιουργία συνδέσμου,... ). 5.Κοινή προσπέλαση αρχείων από πολλούς χρήστες. 6.Ασφάλεια πρόσβασης στα αρχεία με χρήση δικαιωμάτων, κωδικών,... 7.Ταχύτητα στην ανεύρεση και προσπέλαση αρχείων. 8.Προστασία των αρχείων από βλάβες ή αντικανονικές ενέργειες χρήστη 9.Αποδοτική χρησιμοποίηση του διαθέσιμου χώρου. 10.Απόκρυψη από τον χρήστη της πολυπλοκότητας του συστήματος.

40  Οι κανόνες ονοματολογίας διαφέρουν απο σύστημα σε σύστημα.  Γενικοί κανόνες ονοματολογίας : 1.Μπορούν να περιέχουν εκτυπώσιμα γράμματα και αριθμούς και περιορισμένα σύμβολα χωρίς άλλη ειδική σημασία για το Λ.Σ. 2.Μπορούν να περιέχουν μία τελεία ‘.’ και μία επέκταση ονόματος. Η επέκταση υποδηλώνει τον τύπο του αρχείου.  Στο MS-DOS : Ονόματα 8.3 με γράμματα, αριθμούς και ‘_’ κεφαλαία και μικρά είναι το ίδιο.  Στα Windows μέχρι 255 χαρ. (ελληνικά/αγγλικά/σύμβολα) long filenames, κεφαλαία και μικρά είναι το ίδιο.  Στο Unix/Linux οσοδήποτε μήκος, πολλαπλές τελείες και επεκτάσεις (π.χ. Unix.tar.Z), διαφορετικότητα κεφαλαίων/μικρών. Στις νέες εκδόσεις Linux υποστηρίζονται και ελληνικά ονόματα αρχείων.

41 1.Τα αρχεία αποτελούνται από bytes χωρίς συγκεκριμένο νόημα για το Σύστημα Αρχείων παρά μόνο για την εφαρμογή που θα τα επεξεργαστεί (MS-DOS, Windows, Unix/Linux). 2.Τα αρχεία αποτελούνται από εγγραφές σταθερού μήκους με εσωτερική δομή (CP/M – χρήση σε τερματικές συσκευές σταθερού μήκους). 3.Οργάνωση αρχείων σε δένδρα εγγραφών (trees) με μεγάλες δυνατότητες αναζήτησης και μεταβολών σε databases (mainframes). (1) 1 byte 1 εγγραφή (2) TomAnn RonLou KenTim IanReyKimFred (3)(3)

42  Κανονικά Αρχεία (regular files) : περιέχουν πληροφορίες σε bytes. Χωρίζονται σε ASCII και Binary. Υπάρχουν σε όλα τα ΛΣ.  Κατάλογοι (directories) : περιέχουν εγγραφές αρχείων και χρησιμοποιούνται για την δομημένη οργάνωση του συστήματος αρχείων. Υπάρχουν σε όλα τα ΛΣ.  Αρχεία συσκευών (UNIX):  Ειδικά αρχεία χαρακτήρων (character special files) : αντιπροσω- πεύουν συσκευές εισόδου/εξόδου δεδομένων σε μορφή ASCII.  Ειδικά αρχεία μπλόκ (block special files) : αντιπροσωπεύουν συσκευές εισόδου/εξόδου δεδομένων σε δυαδική μορφή (HDD).  Αρχεία συσκευών (MS-DOS, Windows):  CON, PRN, LPT1-LPT9 (παράλληλες θήρες 1-9), COM1-COM9 (σειριακές θήρες 1-9) κλπ.  Κάθε λειτουργικό σύστημα πρέπει να αναγνωρίζει τουλάχιστον έναν τύπο αρχείων: τα δικά του εκτελέσιμα αρχεία, αλλά μερικά ΛΣ αναγνωρίζουν περισσότερους τύπους

43  Τα αρχεία προσπελαύνονται με δύο τρόπους : 1.Σειριακή προσπέλαση (sequential access) : αρχεία σε μαγνητικές ταινίες, αρχεία κειμένου ASCII (.txt). 2.Τυχαία προσπέλαση (random access) : αρχεία σε δίσκους και δισκέτες, αρχεία βάσεων δεδομένων με σταθερό μήκος εγγραφής. Ανάγνωση ανά byte ή ανά εγγραφή (record). Γίνεται με δύο τρόπους:  Κάθε λειτουργία read καθορίζει την θέση απ'όπου θα αρχίσει το “διάβασμα” δεδομένων.  Υπάρχει ξεχωριστή λειτουργία seek, η οποία θέτει την τρέχουσα θέση μέσα στο αρχείο. Κάθε επόμενο read διαβάζει σειριακά από εκείνη την θέση και μετά.

44  Εκτός από το όνομα και τα περιεχόμενα, κάθε αρχείο έχει και μία σειρά από χαρακτηριστικά (attributes) που εγγράφονται σε αυτό από το σύστημα αρχείων.  Απλά χαρακτηριστικά (MS-DOS, FAT16, FAT32) : 1.System : υποδηλώνει αρχείο του Λ.Σ. 2.Hidden : αποκρύπτει το αρχείο 3.Readonly : καθιστά το αρχείο μόνο για ανάγνωση 4.Archive : χρησιμοποιείται για επιλεκτικό backup αρχείων.  Εξελιγμένα χαρακτηριστικά (NTFS, EXT2): 1.Χαρακτηριστικά ασφάλειας : Δημιουργός, Ιδιοκτήτης, Ομάδα, Δικαιώματα χρήσης, password για προσπέλαση στο αρχείο. 2.Χρονικά χαρακτηριστικά : χρόνος δημιουργίας, χρόνος τελευταίας αλλαγής, χρόνος τελευταίας προσπέλασης. 3.Άλλα χαρακτηριστικά : μέγεθος, ένδειξη κλειδώματος, ένδειξη ASCII/binary, ένδειξη τυχαίας προσπέλασης.

45  Δημιουργία (Create) : δημιουργία νέου αρχείου σε συγκεκριμένο κατάλογο.  Διαγραφή (Delete) : διαγραφή υπάρχοντος αρχείου.  Άνοιγμα (Open) : αποκατάσταση επικοινωνίας με το αρχείο.  Κλείσιμο (Close) : τερματισμός επικοινωνίας με το αρχείο.  Διάβασμα (Read) : ανάγνωση των περιεχομένων του αρχείου.  Γράψιμο (Write) : αποστολή δεδομένων για εγγραφή στο αρχείο.  Προσθήκη (Append) : πρόσθεση δεδομένων στο τέλος του αρχείου.  Μετακίνηση (Seek) : μετακίνηση του δείκτη αρχείου στην επιθυμητή θέση για ανάγνωση/εγγραφή (τυχαία προσπέλαση).  Μετονομασία (Rename) : μεταβολή του ονόματος του αρχείου.  Ανάγνωση χαρακτηριστικών (Get attributes) : μας δίνει τα χαρακτηριστικά του αρχείου.  Τοποθέτηση χαρακτηριστικών (Set Attributes) : καθορίζει τα χαρακτηριστικά του αρχείου.

46  Οι κατάλογοι (directories/folders) είναι αρχεία με ειδική εσωτερική δομή ώστε να περιέχουν εγγραφές αρχείων (Όνομα αρχείου + χαρακτηριστικά αρχείου) ή άλλων υποκαταλόγων. Χρησιμοποιούνται από το Λ.Σ. για ιεραρχική ομαδοποίηση των αρχείων.  Οι κατάλογοι σχηματίζουν μία ιεραρχική δομή δένδρου χωρίς περιορισμό βάθους ή πλάτους. Ο βασικός κατάλογος ονομάζεται ρίζα (root) και συμβολίζεται με ‘\’ (DOS-WIN) ή ‘/’ (Unix/Linux). \ WinNT Program Files My Documentstemp SystemFontsNetscapeWinZipMy Music  Απόλυτη διαδρομή (absolute path) : C:\WinNT\System\VGA.DRV  Σχετική διαδρομή (relative path) :..\..\Program Files\WinZip\wz32.dll

47  Πράξεις Διαχείρισης Καταλόγων : 1.Δημιουργία (Create) : Δημιουργία νέου καταλόγου είτε κάτω από την ρίζα είτε σε οποιονδήποτε άλλο κατάλογο. 2.Διαγραφή (Delete) : Διαγραφή γίνεται σε άδειους καταλόγους. 3.Άνοιγμα (OpenDir) : Αποκατάσταση επικοινωνίας με τον κατάλογο. 4.Κλείσιμο (CloseDir) : Τερματισμός επικοινωνίας με τον κατάλογο. 5.Ανάγνωση (ReadDir) : Διαβάζει εγγραφές αρχείων από ένα ανοικτό κατάλογο (μία εγγραφή με κάθε κλήση). 6.Ενημέρωση (Update) : Ενημέρωση καταλόγου για μεταβολές αρχείων. 7.Μετονομασία (Rename) : Αλλαγή ονόματος καταλόγου. 8.Δημιουργία Συνδέσμου (Link) : Δημιουργία δεύτερης εγγραφής σε κατάλογο για το ίδιο αρχείο στο δίσκο. 9.Διαγραφή Συνδέσμου (UnLink) : Διαγραφή Link. 10.Ανάγνωση χαρακτηριστικών (Get attributes) 11.Τοποθέτηση χαρακτηριστικών (Set Attributes)

48 Σκληρός Δίσκος  Κάθε μαγνητικός δίσκος χωρίζεται σε τροχιές (tracks), τομείς (sectors) και συμπλέγματα (clusters/blocks). Ανάγκη ύπαρξης clusters.  FAT16 ελέγχει 2 16 =65536 clusters. Για HDD=1GB, cluster size=16Kb, για HDD=4GB, cluster size=64Kb. FAT32 ελέγχει 2 32 = clusters, για HDD=4GB, θα μπορούσε cluster=1byte, minimum 4Kb. track sectors cluster

49  Μεγέθη clusters για διάφορες χωρητικότητες δίσκων στο FAT16 και στο FAT32. Μέγεθος δίσκουFAT 16 cluster sizeFAT 32 cluster size 256MB – 511MB8 KbNot supported 512MB – 1023MB16 Kb4 Kb 1GB – 2GB32 Kb4 Kb 2GB – 4GB64 Kb4 Kb 4GB – 8GBNot supported4 Kb 8GB – 16GBNot supported8 Kb 16GB – 32GBNot supported16 Kb > 32 GBNot supported32 Kb

50  Partitions : Λογικές ενότητες πάνω σε ένα δίσκο που υλοποιούνται ως ξεχωριστοί δίσκοι με δικό τους γράμμα δίσκου (drive letter). Κάθε partition μπορεί να έχει διαφορετικό σύστημα αρχείων.  Boot Sector : Ο πρώτος sector σε ένα partition. Πληροφορίες για το σύστημα αρχείων και τα χαρακτηριστικά του partition καθώς και πρόγραμμα γλώσσας μηχανής για φόρτωμα του πυρήνα του Λ.Σ.  System Area : Η πρώτη περιοχή του δίσκου, που περιέχει πληροφορίες για την οργάνωση των αρχείων στο δίσκο (Root directory, FAT-1, FAT- 2, MFT, I-nodes κ.λ.π.)  Data Area : Περιοχή αποθήκευσης αρχείων, το μεγαλύτερο κομμάτι του δίσκου. Χωρίζεται σε clusters που έχουν συνεχόμενη αρίθμηση.  Partitioning : O χωρισμός ενός δίσκου σε partitions, Primary, Extended, Logical.  Format : Η διαμόρφωση ενός partition (Boot, System, Data). BootFAT1FAT2DirData…Part.TableBootMFTDirData… FAT Partition (C:)NTFS Partition (D:) MBR

51  Συνεχής Κατανομή (Contiguous Allocation) : Τα αρχεία γράφονται σε συνεχόμενα clusters πάνω στο δίσκο. Εύκολη οργάνωση (αρχή, μήκος), γρήγορη προσπέλαση. Δημιουργία κατακερματισμού.  Κατανομή Συνδεδεμένης Λίστας (Linked List Allocation) : Στο system area καταχωρείται ενωμένη λίστα με τα clusters του αρχείου  Κατανομή Συνδεδεμένης Λίστας με Πίνακα : Η συνδεδεμένη λίστα φορτώνεται στη μνήμη για γρήγορη προσπέλαση. File2…File1 Data Area System Area File1: Χαρ/κά Αρχή, Μήκος File2: Χαρ/κά Αρχή, Μήκος c1:c3 System Area Data Area c2:c4c3:c5c4:-1… f1: c1 f2: c2 clusterlist File1 File2 Συνεχής Κατανομή Συνδεδεμένη ΛίσταΣυνδ. Λίστα με πίνακα

52  Οι πληροφορίες για κάθε αρχείο αποθηκεύονται σε ένα I-node. Είναι αριθμημένα. Περιέχουν τα χαρακτηριστικά, μικρή περιοχή με δείκτες σε data blocks, δείκτη σε απλά έμμεσο μπλόκ, δείκτη σε διπλά έμμεσο μπλόκ, και δείκτη σε τριπλά έμμεσο μπλόκ. Αριθμός I-node χαρακτηριστικά Δείκτης Α.Ε.Μ Δείκτης Δ.Ε.Μ Δείκτης Τ.Ε.Μ Δείκτες σε data blocks Απλά Έμμεσο Μπλόκ Διπλά Έμμεσο Μπλόκ Τριπλά Έμμεσο Μπλόκ Δείκτες σε data blocks

53  Αρχικός κατάλογος (root directory) : λίστα πεπερασμένου αριθμού καταχωρήσεων με εγγραφές αρχείων.  Υποκατάλογοι : αρχεία με μεταβλητό αριθμό εγγραφών αρχείων.  FAT 16 : όνομα αρχείου, επέκταση, χαρακτηριστικά, ώρα, ημερ/νία, διεύθυνση πρώτου block, μέγεθος αρχείου. ΌνομαΕπέκ.Χαρ/κάΔεσμ/νοΏραΗμ/νίαΑρ. πρώτου μπλόκΜέγεθος  FAT 32 : όνομα αρχείου, επέκταση, χαρακτηριστικά, ώρα, ημ/νία, διεύθυνση πρώτου block, μέγεθος αρχείου, long filename, άλλα χαρ/κά ΌνομαΕπέκ.Χαρ/κάΔεσμ/νοΏραΗμ/νίαΑρ. πρώτου μπλόκΜέγεθος Long FilenameΆλλα χαρακτηριστικά  Ext2 (Unix/Linux) : Αριθμός I-Node, Όνομα Αρχείου Αρ. I-nodeΌνομα Αρχείου

54  Στο NTFS (WinNT, Win2000, WinXP) και στο Ext2 (Unix/Linux) μπορούμε να έχουμε δύο ή περισσότερες εγγραφές σε υποκαταλόγους για το ίδιο αρχείο στο δίσκο.  Οι συντομεύσεις (shortcuts) (Win3.1, Win95, Win98, …) είναι παρόμοιες αλλά δημιουργούν πολλαπλά αρχεία συντομεύσεων.  Σκληροί σύνδεσμοι (Hard Links) : εγγραφή μέσα στον κατάλογο, που δείχνει κατευθείαν στο αρχείο στο δίσκο. Ιδιο Filesystem. Ισοδυναμία Hard-Links. Διαγραφή.  Συμβολικοί Σύνδεσμοι (Soft/Symbolic Links) : αρχεία που περιέχουν ένα μονοπάτι θέσης αρχείου. File2…File1 Data Area File 1 File 2 \tools File 2 \personal Hard Link File2…File1 Data Area File 1 File 2 \tools File 2 \personal Symbolic Link

55  Το Λ.Σ. πρέπει να ελέγχει όλες τις συσκευές εισόδου εξόδου του Η/Υ και να επιτρέπει έναν εύκολο τρόπο επικοινωνίας μεταξύ συσκευών και συστήματος.  Στόχοι του λογισμικού διαχείρισης I/O του Λ.Σ. : 1.Το λογισμικό θα πρέπει να προσφέρει ανεξαρτησία από τις συσκευές (copy a.txt c:, copy a.txt a:, redirection, piping). 2.Χρήση ενιαίας ονοματολογίας (π.χ. Unix: /dev/hd0, /dev/fd0, /dev/tty, DOS: copy con a.txt, copy a.txt prn). 3.Χειρισμός και διόρθωση σφαλμάτων (αναξιοπιστία hardware). Πρέπει να διορθώνονται κατά το δυνατόν σε χαμηλό επίπεδο. 4.Συνεργασία σύγχρονου και ασύγχρονου τρόπου μεταφοράς δεδομένων (συσκευές ασύγχρονες, προγράμματα σύγχρονα) 5.Διαχείριση διαμοιραζόμενων (shareable) και αφοσιωμένων συσκευών (dedicated). Σκληρός δίσκος – Εκτυπωτής, ουρές εργασιών. 6.Ασφάλεια κατά την χρήση συσκευών. 7.Αποδοτική χρήση συσκευών (ταχύτητα, ποσοστό εκμετάλλευσης).

56  Οι συσκευές I/O είναι δύο ειδών : 1.Συσκευές χαρακτήρων-character devices (πληκτρολόγιο, οθόνη κειμένου, εκτυπωτές dot matrix, κ.λ.π.). Σειριακή λειτουργία, μεταφορά ακολουθίας χαρακτήρων, αδυναμία τυχαίας προσπέλασης. 2.Συσκευές μπλόκ – block devices (σκληροί δίσκοι, μονάδες δισκέτας, CD-ROM, DVD-ROM κ.λ.π.) μεταφορά δυαδικών μπλόκ, δυνατότητα τυχαίας προσπέλασης.  Κάθε συσκευή I/O αποτελείται από δύο τμήματα : 1.Το ηλεκτρομηχανικό μέρος (κεφαλές δίσκου, encoders ποντικιού, διαμορφωτές σήματος video, διακόπτες πλήκτρων, ηλεκτροδυναμικά ηχεία κώνου, μονάδες LCD). 2.Το ηλεκτρονικό μέρος που ελέγχει το ηλεκτρομηχανικό – ελεγκτής συσκευής (device controller) ή προσαρμογέας συσκευής (adapter). Συνήθως έχουν την μορφή κάρτας επέκτασης, και μπορεί να περιλαμβάνουν συνδυαστικά ψηφιακά κυκλώματα ή μικροεπεξεργαστές και μνήμη.

57  Το Λ.Σ. επικοινωνεί με τους ελεγκτές όχι με το ηλ/μηχανικό μέρος.  Κάθε ελεγκτής έχει έναν αριθμό καταχωρητών μέσω των οποίων δέχεται εντολές από την CPU και δείχνει τα αποτελέσματα των λειτουργιών της συσκευής (device status).  Οι καταχωρητές των συσκευών απεικονίζονται είτε στη μνήμη RAM του υπολογιστή σε περιοχή διευθύνσεων που προορίζεται για συσκευές (memory-mapped I/O), είτε σε ξεχωριστές περιοχές διευθύνσεων που ονομάζονται ports (port-mapped I/O). Συγκρούσεις – Plug and Play. Ελεγκτής Εισόδου / ΕξόδουI/O portΔιακοπή Πληκτρολόγιο0060 – Σκληρός Δίσκος01F0 – 01F7, 03F614 Δευτερεύουσα Σειριακή COM202F8 – 02FF3 Παράλληλη θύρα0378 – 037F7 Μονάδα Δισκέτας03F2 – 03F56 Κάρτα Γραφικών03B0 – 03BB11 Πρωτεύουσα Σειριακή COM103F8 – 03FF4

58  Το Λ.Σ. αποθηκεύει αριθμούς που αντιστοιχούν σε εντολές στους καταχωρητές των ελεγκτών (διευθύνσεις μνήμης). Π.χ. ελεγκτής δισκέτας δέχεται 15 εντολές (read, write, seek, format, recalibrate κ.α.)  Τυχόν παράμετροι των εντολών αποθηκεύονται σε δευτερεύοντες καταχωρητές του ελεγκτή. (αρ. sector, track, format type, κ.λ.π.)  Αφού στείλει την εντολή το Λ.Σ. εξυπηρετεί άλλες λειτουργίες.  Όταν η λειτουργία του ελεγκτή ολοκληρωθεί, παράγει ένα σήμα διακοπής στο control bus για ενημέρωση του Λ.Σ. που ελέγχει την εκτέλεση της λειτουργίας μέσω καταχωρητών κατάστασης και αξιοποιεί τα αποτελέσματα. Καταχ/τής εντολής Καταχ/τής κατ/σης RAMΕλεγκτής 03F2 03F3 Μονάδα δισκέτας Λ.Σ. Διακοπή CPU Buffer Address Bus

59  Direct Memory Access (DMA). Όταν ολοκληρωθεί η εργασία της συσκευής Ι/Ο ο ελεγκτής καταλαμβάνει (μετά από αίτηση) το address bus και μεταφέρει τα δεδομένα στη μνήμη.  Η διεύθυνση μνήμης για αποθήκευση είναι επιπλέον παράμετρος στην εντολή προς τον ελεγκτή.  Απελευθέρωση της CPU από το διάβασμα των buffers της συσκευής και τοποθέτησης των αποτελεσμάτων στη μνήμη. Καταχ/τής εντολής Καταχ/τής κατ/σης RAM Ελεγκτής Συσκευής 03F2 03F3 Μονάδα δισκέτας Λ.Σ. CPU Address Bus Buffer Διεύθυνση Μετρητής byte Ελεγκτής DMA Προγραμματισμός Interrupt Εντολή μεταφοράς στη RAM ACK Μεταφορά data Καταχ/τές ελέγχου

60  Το Λογισμικό Εισόδου Εξόδου ενός Λ.Σ. Χωρίζεται σε 4 επίπεδα: 1.Χειριστής Διακοπών (Interrupt Handler) 2.Οδηγοί Συσκευών (Device Drivers) 3.Λογισμικό Λ.Σ. ανεξάρτητο από τις συσκευές. 4.Λογισμικό Εισόδου-Εξόδου σε επίπεδο χρήστη. Χειριστής διακοπών HDD floppyethernet mouse Control Bus Οδηγός δίσκουΟδηγός floppyΟδηγός ethernetΟδηγός mouse Λογισμικό Λ.Σ. ανεξάρτητο από συσκευές Λογισμικό Ι/Ο επιπέδου χρήστη

61  Interrupt Handlers : παρέχονται από τους οδηγούς συσκευών ή το ΛΣ, παγιδεύουν τα σήματα διακοπών των συσκευών που παράγονται κατά την διαδικασία εισόδου/εξόδου.  Εκκίνηση διαδικασίας Ι/Ο από την συσκευή: μετά την παγίδευση του σήματος διακοπής, αναγνωρίζουν τη συσκευή που το προκάλεσε και καλούν την κατάλληλη ρουτίνα του κατάλληλου οδηγού συσκευής. (π.χ. με μετακίνηση ποντικιού, παράγεται interrupt, παγιδεύεται από τον χειριστή διακοπών, αναγνωρίζεται το ποντίκι, καλούνται οι ρουτίνες του οδηγού του ποντικιού και ενημερώνονται τα παραπάνω στρώματα.  Εκκίνηση διαδικασίας Ι/Ο από διεργασία: όταν ξεκινά μία διεργασία με Ι/Ο, στέλνει εντολές προς τις συσκευές Ι/Ο και τίθεται υπο- αναστολή (blocked) εκτελώντας λειτουργία P στο σηματοφορέα της συσκευής. Όταν παραχθεί η διακοπή (σημάδι ολοκλήρωσης) παγιδεύεται από τον χειριστή διακοπών, και εκτελεί κατάλληλες ρουτίνες των οδηγών για ανάγνωση αποτελεσμάτων/κατάστασης. Ακολούθως ελευθερώνει τον σηματοφορέα για να προχωρήσει η διαδικασία (λειτουργία V) που ξαναγίνεται εκτελέσιμη.

62  Χειρισμός διακοπής από συσκευή : 1.Το Λ.Σ. σώζει την κατάσταση της CPU στο stack (Push registers, Program Counter, Status Register κ.λ.π.) 2.Δημιουργει το περιβάλλον για την ρουτίνα χειρισμού διακοπής (πίνακα σελίδων, στοίβα κλπ). 3.Ενεργοποιεί τις διακοπές (ή ACK στον ελεγκτή διακοπών, αν υπάρχει). 4.Αντιγράφει τους σωσμένους καταχωρητές στον πίνακα διεργασιών. 5.Το Λ.Σ. προσπαθεί να καταλάβει από ποια συσκευή προήλθε η διακοπή : α) Εκτελώντας διεξοδικά όλες τις ρουτίνες εξυπηρέτησης διακοπών (polling) ή β) σε συστήματα διανυσματικών διακοπών ο αριθμός διακοπής αντιστοιχίζεται σε συσκευή και το διάνυσμα διακοπής περιέχει την διεύθυνση της ρουτίνας εξυπηρέτησης. 6.Το Λ.Σ. εκτελεί την ρουτίνα χειρισμού της διακοπής, η οποία αντιγράφει πληροφορίες από τους καταχωρητές της συσκευής. 7.Επιλέγει την επόμενη διεργασία και φορτώνει τους καταχωρητές. 8.Ξεκινά την εκτέλεση της νέας διεργασίας.

63  Device Drivers: ο κώδικας που εξαρτάται από τις συσκευές βρίσκεται στους οδηγούς συσκευών. Κάθε οδηγός χειρίζεται έναν τύπο συσκευής ή μία ομάδα ομοειδών συσκευών (π.χ. σκληροί δίσκοι).  Ο οδηγός συσκευής είναι το μόνο κομμάτι του Λ.Σ. που γνωρίζει την εσωτερική δομή της συσκευής, τους καταχωρητές του ελεγκτή, τον τρόπο λειτουργίας, χρόνους εκτέλεσης διαδικασιών κ.λ.π. Αναπτύσσονται συνήθως από τους κατασκευαστές των συσκευών.  Δέχεται αφηρημένες εντολές από το Λ.Σ. (π.χ. read cluster 1150) τις μετατρέπει σε εντολές κατανοητές από τον ελεγκτή και τις προωθεί σε αυτόν με κατάλληλη σειρά (γράφοντας στον καταχωρητή του ελεγκτή)  Αρκετές φορές αναστέλλει την λειτουργία του περιμένοντας την ολοκλήρωση ηλεκτρομηχανικών κινήσεων – περιμένει interrupt.  Μετά την ολοκλήρωση ελέγχει τους καταχωρητές κατάστασης του ελεγκτή για σφάλματα, και μπορεί να επαναλάβει την λειτουργία.  Τέλος προωθεί στα παραπάνω στρώματα τα αποτελέσματα της λειτουργίας καθώς και αναφορές σωστής η εσφαλμένης εκτέλεσης.

64 Λήψη διακοπής Εκτέλεση διαχειριστή Μετατροπή εντολής Αποστολή στον Ελεγκτή για εκκίνηση Ι/Ο Ξεκινά η διαδικασία Εισόδου/Εξόδου Ολοκληρώθηκε η λειτουργία παραγωγή διακοπής Αποστολή εντολής προς τον οδηγό συσκευής Λήψη αποτελεσμάτων Έλεγχος σφαλμάτων Διάθεση στο πρόγραμμα Χρόνος Εκτέλεσης Λειτουργίας Ι/Ο Οδηγός ΣυσκευήςΛειτουργικό ΣύστημαΕλεγκτής Συσκευής Εκτέλεση άλλων λειτουργιών

65  Εκτελεί λειτουργίες εισόδου/εξόδου που είναι κοινές για όλες τις συσκευές ή για ομάδες συσκευών και προσφέρει ενιαίο τρόπο διασύνδεσης στο λογισμικό Ε/Ε χρήστη (π.χ. read boot sector).  Λειτουργίες αυτού του επιπέδου : 1.Ζητάει από τους οδηγούς συσκευών να υπακούν σε ορισμένο interface. 2.Αντιστοίχιση συμβολικών ονομάτων συσκευών στους κατάλληλους οδηγούς συσκευών (π.χ. A:  floppy driver, C:  HDD driver κ.λ.π.). 3.Προστασία των συσκευών από ενέργειες χρήστη (συσκευές ως files). 4.Χρήση ενιαίου μεγέθους μπλόκ ανάγνωσης/εγγραφής. 5.Αποθήκευση των μπλόκ σε ενδιάμεσες μνήμες (buffers). 6.Δέσμευση και αποδέσμευση αφοσιωμένων (dedicated) συσκευών. 7.Αναφορά των σφαλμάτων που εντοπίστηκαν από τους οδηγούς συσκευών στα ανώτερα επίπεδα, με ενιαίο τρόπο (π.χ. read error) τα οποία και θα προσαρμόσουν την λειτουργία τους μετά την εμφάνιση του σφάλματος.

66  User Level I/O : αποτελείται από βιβλιοθήκες ρουτινών για διαχείριση I/O (π.χ. fprintf, fscanf, copy file, OnMouseClick, transmit TCPIP packet, κ.λ.π.) οι περισσότερες των οποίων υλοποιούνται με κλήσεις συστήματος (system calls).  Οι ρουτίνες αυτές καλούνται από προγράμματα του χρήστη για διενέργεια λειτουργιών Ι/Ο. (π.χ. διάβασμα αρχείου ASCII).  Περιλαμβάνει επίσης τον ετεροχρονισμό εισόδου/εξόδου (I/O spooling – Simultaneous Peripheral Operation On Line) : διαχείριση των αφοσιωμένων συσκευών σε συστήματα πολυπρογραμματισμού. Παράδειγμα εκτυπωτών, δικτύου κ.λ.π.  Ο ετεροχρονισμός υλοποιείται ως υπηρεσία (service) δηλαδή ανεξάρτητη διεργασία σε επίπεδο χρήστη που λαμβάνει τις εργασίες Ι/Ο των προγραμμάτων χρήστη, τις αποθηκεύει σε ενδιάμεσες μνήμες ή αρχεία (buffers / temp files / spool directories) και τις προωθεί στους οδηγούς των συσκευών για εκτέλεση.

67 Πρόγραμμα Spooling Πρόγραμμα Εξόδου Πρόγραμμα Εισόδου Συσκευή Εισόδου (Πληκτρολόγιο) Συσκευή Εξόδου (Οθόνη) Λογική Συσκευή Εισόδου (vt100) Λογική Συσκευή Εξόδου (vt100) Πρόγραμμα Χρήστη (vi) Λειτουργικό ΣύστημαΒοηθητική ΜνήμηΧρήστης

68 Πρόγραμμα Spooling Πρόγραμμα Εξόδου Συσκευή Εξόδου (Printer) Λογική Συσκευή Εξόδου (Printer) Πρόγραμμα Χρήστη Ν Λειτουργικό ΣύστημαΒοηθητική ΜνήμηΧρήστες Πρόγραμμα Χρήστη 1...

69  Τα Windows XP είναι ένα 32άμπιτο (ή 64άμπιτο) Λ.Σ. πολυπρογραμματισμού (multiprogramming/multitasking), για πολλούς χρήστες (multi-user), με αντικειμενοστραφή δομή (object-oriented) και γραφικό περιβάλλον εργασίας με παράθυρα (Windows GUI). Βασίζεται στην τεχνολογία των Windows NT.  Τα βασικά χαρακτηριστικά των Windows XP είναι : 1.Μεταφερσιμότητα σε διαφορετικούς επεξεργαστές. 2.Ασφάλεια πολλαπλών επιπέδων (σύστημα ελέγχου χρηστών, σύστημα ελέγχου διεργασιών). 3.Δυνατότητα συμβατότητας με το πρότυπο POSIX IEEE μέσω του δωρεάν πακέτου Windows Services For Unix (SFU). 4.Υποστήριξη πολλαπλών επεξεργαστών (multiprocessor support). 5.Υποστήριξη διεθνών γλωσσών και τοπικών ρυθμίσεων. 6.Εκτενείς δικτυακές δυνατότητες. 7.Συμβατότητα με εφαρμογές MS-DOS και Windows 9x.  Κυκλοφορεί σε 4 εκδόσεις:Home,Professional,MediaCenter,Tablet PC.

70  Επεκτασιμότητα : είναι δομημένα με στρωματοποιημένη αρχιτεκτονι- κή (layered architecture). Το βασικό τμήμα τους αποτελείται από τον “Executive” που εκτελείται σε protected mode και αναλαμβάνει τις βασικές εργασίες του Λ.Σ. Τα υπόλοιπα τμήματα υλοποιούνται με διάφορες εφαρμογές Server που εκτελούνται σε user mode (Client- Server αρχιτεκτονική). Μπορεί να επεκταθεί με την προσθήκη νέων Servers χωρίς να τροποποιηθεί ο Executive.  Μεταφερσιμότητα : Ο κώδικας των XP είναι γραμμένος σε C και C++ οπότε μπορεί να μεταφερθεί σε άλλα συστήματα με ελάχιστες αλλαγές. Ο εξαρτώμενος από το υλικό κώδικας είναι απομονωμένος σε ένα μοναδικό dll και ονομάζεται HAL (Hardware Abstraction Layer – HAL.DLL), χαρακτηριστικό που υπάρχει από τα Windows NT.  Αξιοπιστία : τα XP χρησιμοποιούν hardware προστασία για την εικονική μνήμη (NX bit) και software προστασία για τα αγαθά του ΛΣ.  Συμβατότητα : αν είναι εγκατεστημένο το Windows Services For Unix (SFU), εφαρμογές που ακολουθούν το στάνταρ POSIX IEEE μπορούν να μεταγλωττιστούν και να τρέξουν στα XP χωρίς καμία αλλαγή στον πηγαίο κώδικα.

71  Τα Windows XP αποτελούνται από :  Υποσυστήματα που λειτουργούν σε protected mode, δηλαδή οι διεργασίες τους εκτελούνται αδιαίρετα και η μνήμη που χρησιμοποιούν είναι προστατευμένη : 1.Ο πυρήνας kernel που περιέχει τις βασικές ρουτίνες του Λ.Σ. 2.Το HAL που περιέχει ειδικό για το υλικό κώδικα ώστε το Λ.Σ. να μπορεί να εκμεταλλεύεται πλήρως τις δυνατότητές του. 3.Ο Executive που υλοποιεί τις βασικές λειτουργίες του Λ.Σ.  Υποσυστήματα που εκτελούνται σε user mode όπως και οι εφαρμογές χρήστη. Η αστοχία ενός υποσυστήματος δεν επηρεάζει τα βασικά υποσυστήματα και μπορεί να τερματιστεί και να επανεκκινήσει χωρίς να «κρεμάσει» το Λ.Σ. 1.Συλλογή από Περιβαλλοντικά Υποσυστήματα που εξομοιώνουν διαφορετικά Λ.Σ (π.χ. Virtual Dos Machine, Interix). 2.Υποσυστήματα Ασφαλείας που αναλαμβάνουν τον έλεγχο ασφάλειας χρηστών και τον έλεγχο ασφάλειας διεργασιών. 3.Υποσυστήματα Λειτουργιών (Services).

72

73  Αποτελεί την βάση για τον Executive και τα Υποσυστήματα. Οι ρουτίνες του εκτελούνται αδιαίρετα (non-preemptive) και χρησιμοποιούν πραγματική μνήμη (όχι εικονική) σε protected mode. Είναι κατασκευασμένος με αντικειμενοστραφή δομή.  Βασικά καθήκοντα του kernel : 1.Αφαιρετική παρουσίαση του επεξεργαστή 2.Χρονοδρομολόγηση νημάτων (threads). 3.Διαχείριση διακοπών (interrupts) και σφαλμάτων (exceptions). 4.Χαμηλού επιπέδου (low level) συγχρονισμός των επεξεργαστών.  Τα αντικείμενα του πυρήνα είναι 2 ειδών :  Αντικείμενα Εκτέλεσης (dispatcher objects) που επηρρεάζουν την εκτέλεση των νημάτων και τον συγχρονισμό (χρονιστές-timers, συμβάντα-events, σηματοφορείς-semaphores, κ.λ.π.)  Αντικείμενα Ελέγχου (control objects) που επιτελούν ελεγκτικές λειτουργίες (διακοπές (interrupts), ασύγχρονες κλήσεις διαδικασιών, διεργασίες, νήματα εκτέλεσης κ.λ.π.)

74  Αποτελείται από τα ακόλουθα υποσυστήματα :  Διαχειριστής Αντικειμένων (object manager) : ελέγχει την δημιουργία και την καταστροφή όλων των αντικειμένων.  Διαχειριστής Διεργασιών (process manager) : ελέγχει την δημιουργία και την διαγραφή νημάτων και διεργασιών.  Διαχειριστής Εικονικής Μνήμης (virtual memory manager) : υλοποιεί την σελιδοποίηση της εικονικής μνήμης και την αντιστοίχιση εικονικής μνήμης σε φυσική.  Διαχειριστής Τοπικών κλήσεων διαδικασιών (local procedure call manager) : διοχετεύει αιτήσεις από εφαρμογές χρήστη (clients) προς διεργασίες εξυπηρετητών (Servers).  Διαχειριστής Εισόδου/Εξόδου (I/O manager) : είναι υπεύθυνος για το σύστημα αρχείων, την διαχείριση της μνήμης cache, τους οδηγούς συσκευών και τους οδηγούς δικτυακών υπηρεσιών.  Επιβλέπων Ασφάλειας (Security Reference Monitor) : ελέγχει τα δικαιώματα κάθε διεργασίας πάνω σε κάθε αντικείμενο.  Διαχειριστής Plug-And-Play (plug & play manager) : Ανιχνεύει και ρυθμίζει αυτόματα τις Plug & Play περιφερειακές συσκευές.

75  Environmental Subsystems : αποτελούν διεργασίες που εκτελούνται σε user mode πάνω από τον Executive. Ο σκοπός τους είναι να επιτρέ- πουν την εκτέλεση εφαρμογών που είναι γραμμένες για άλλα Λ.Σ.  Τα XP χρησιμοποιούν το Win32 υποσύστημα ως το κύριο περιβάλλον και το χρησιμοποιούν για την εκκίνηση όλων των διεργασιών. Επίσης παρέχει όλες τις απαραίτητες λειτουργίες για το πληκτρολόγιο, το ποντίκι και την γραφική απεικόνιση.  Το υποσύστημα MS-DOS παρέχεται από μία Win32 εφαρμογή που ονομάζεται Virtual Dos Machine (VDM) και εμπεριέχεται στο πρόγραμμα CMD.EXE. Παρουσιάζεται στα προγράμματα σαν πραγματικό MS-DOS αλλά έχει την ασφάλεια και την λειτουργικότητα των XP. Παγιδεύει όλες τις κλήσεις συστήματος του MS-DOS και τις οδηγεί προς εκτέλεση στον Executive.  Το υποσύστημα Win16 : αποτελεί έναν προσομοιωτή 16μπιτων Windows που ονομάζεται WOW (Windows on Windows) και εμπεριέχεται στο πρόγραμμα WOWEXEC.EXE. Παγιδεύει όλες τις κλήσεις συστήματος Win16 και μέσω του υποσυστήματος Win32 τις οδηγεί στον Executive.

76  Το υποσύστημα POSIX (όταν υπάρχει) είναι σχεδιασμένο ώστε να υποστηρίζει εφαρμογές γραμμένες για το POSIX IEEE στάνταρ που βασίζεται στο UNIX.  Τα υποσυστήματα Logon και Security παρέχουν την ταυτοποίηση χρηστών που συνδέονται στα XP. Οι χρήστες των XP θα πρέπει να έχουν προσωπικά login και passwords. To υποσύστημα ταυτοποίησης (authentication subsystem) ελέγχει τα δικαιώματα των χρηστών όποτε αυτοί προσπαθούν να προσπελάσουν ένα οποιοδήποτε αντικείμενο. Τα XP χρησιμοποιούν το σύστημα Kerberos σαν το εξ’ορισμού πακέτο για ταυτοποίηση χρηστών.  System Account Manager Database (SAM) : αποτελεί την βάση δεδομένων με τα ονόματα και τα passwords των χρηστών και των ομάδων (groups). Χρησιμοποιεί αλγόριθμους μονόδρομης κωδικοποίησης Hash για κρυπτογράφηση των passwords.

77  Οι διεργασίες στα XP είναι αντικείμενα (objects). H δημιουργία και διαγραφή τους ελέγχεται από τον Process Manager του Executive.  Κάθε διεργασία αποτελείται από ένα χώρο διευθύνσεων (address space) που περιλαμβάνει τον κώδικα και τα δεδομένα της διεργασίας και ένα σύνολο αντικειμένων (objects) που χρησιμοποιεί.  Κάθε διεργασία διασπάται σε πολλά νήματα (threads) που και αυτά είναι αντικείμενα και αποτελούν την μονάδα εκτελέσιμου κώδικα στα XP που χρονοδρομολογούνται για εκτέλεση στην CPU από τον πυρήνα (kernel).  O πυρήνας βελτιστοποιεί την χρονοδρομολόγηση και εκτέλεση των νημάτων για βέλτιστη εκμετάλλευση της CPU. Η χρονοδρομολόγηση είναι διακοπτή και βασίζεται σε προτεραιότητες 32 επιπέδων.  Ο πυρήνας μπoρεί να διασπά τα νήματα σε ίνες (fibers) που αποτελούν μικρότερα υποτμήματα των νημάτων (threads). Οι ίνες δεν μπορούν να χρονοδρομολογούνται ανεξάρτητα όπως τα νήματα. Η σειρά εκτέλεσής τους καθορίζεται από το γονικό νήμα (parent thread).  Οι διεργασίες επικοινωνούν μεταξύ τους με μηνύματα (messages).

78  Τα XP χρησιμοποιούν την τεχνική της εικονικής μνήμης για να επιτρέπουν σε πολλά προγράμματα να εκτελούνται ταυτόχρονα.  Χρησιμοποιούν την τεχνική της σελιδοποίησης με ζήτηση (demand paging) μέσω της οποίας αντιστοιχούν σελίδες της εικονικής μνήμης σε σελίδες της φυσικής μνήμης. Το μέγεθος κάθε σελίδας είναι 4Κ.  Η διαχείριση της μνήμης γίνεται από τον Διαχειριστή Εικονικής Μνήμης (Virtual Memory Manager) του Executive.  Κάθε διεργασία έχει ένα Κατάλογο Σελίδων (page directory) που περιέχει 1024 εγγραφές. Κάθε εγγραφή «δείχνει» σε έναν Πίνακα Σελίδων (page table) που έχει επίσης 1024 εγγραφές. Κάθε τέτοια εγγραφή (PTE) «δείχνει» σε μία σελίδα των 4Κ στην φυσική μνήμη.  Έτσι η συνολική μνήμη που μπορεί να «βλέπει» κάθε διεργασία είναι : 1024 Χ 1024 Χ 4Κ = 4GB.  Τα XP χρησιμοποιούν μηχανισμούς προστασίας της μνήμης κάθε διεργασίας έτσι ώστε να μην μπορεί μία διεργασία να προσπελάσει την μνήμη που χρησιμοποιεί μία άλλη. Αυτό συμβάλλει στην σταθερότητα του Λ.Σ. καθιστώντας το θεωρητικά ανθεκτικό σε καταρρεύσεις.

79

80  Για να προσπελάσει μία διεργασία μία οποιαδήποτε διεύθυνση μνήμης πρέπει να καθορίσει πρώτα τον Α/Α εγγραφής στον Κατάλογο Σελίδων (Page Directory) δηλαδή τον αριθμό PDE από 0 έως 1023 (10 bits). Κάθε PDE δείχνει σε ένα Πίνακα Σελίδων με 1024 εγγραφές (PTE).  Στη συνέχεια πρέπει να καθορίσει τον Α/Α εγγραφής στον συγκεκρι- μένο Πίνακα Σελίδων (Page Table) δηλαδή τον αριθμό PTE από 0 έως 1023 (10 bits). Κάθε PTE δείχνει σε μία σελίδα των 4Κ στη φυσική μνήμη.  Τέλος πρέπει να καθορίσει την μετατόπιση (offset) μέσα στη σελίδα των 4Κ (12 bits) ώστε να προσδιορίσει το συγκεκριμένο byte που θα διαβάσει ή θα γράψει. (PDE 10 bits + PTE 10 bits + offset 12 bits = 32 bits).

81  Κάθε εγγραφή σε κάθε έναν από τους 1024 Πίνακες Σελίδων μίας διεργασίας έχει μέγεθος 4 bytes = 32 bits και «δείχνει» σε μία σελίδα φυσικής μνήμης των 4Κ. Μέσω των PTE γίνεται ο έλεγχος για το αν η σελίδα υπάρχει στη φυσική μνήμη, αν είναι προστατευμένη και σε ποιο αρχείο εικονικής μνήμης (page file) βρίσκεται στο δίσκο.  Το πρώτο bit (P) καθορίζει αν η σελίδα υπάρχει (present) και βρίσκεται στη φυσική μνήμη. Αν αυτό είναι 0 η σελίδα δεν υπάρχει και παράγεται ένα σφάλμα σελίδας (page fault).

82  Τα επόμενα 4 bits καθορίζουν την προστασία της σελίδας και περιέ- χουν τα δικαιώματα της διεργασίας πάνω στη σελίδα. Τα δικαιώματα μπορεί να είναι Read, Write, ReadWrite, No Access, Cached.  Τα επόμενα 4 bits είναι flags. Δύο από αυτά έχουν ενδιαφέρον:  Το 5ο bit είναι το accessed bit: δηλώνει αν η σελίδα έχει χρησιμoποιηθεί από την στιγμή που φορτώθηκε.  Το 6ο bit είναι το dirty bit: καθορίζει άν η σελίδα τροποποιήθηκε από την στιγμή που φορτώθηκε.  Τα bits 9-11 δεν χρησιμοποιούνται.  Τα υπόλοιπα 20 bits καθορίζουν την πραγματική διεύθυνση της σελίδας των 4Κ στη φυσική μνήμη (4GB / 4K = 1MB = 2 20 ).

83  Τα Windows XP υποστηρίζουν τα συστήματα αρχείων FAT12, FAT16, FAT32, CDFS και NTFS.  Το NTFS μπορεί να υποστηρίξει δίσκους με χωρητικότητα μέχρι και 2 64 = 16 exabytes (16 δισ. Gbytes).  Υποστηρίζει χαρακτηριστικά ασφάλειας όπως δικαιώματα χρήσης αρχείων και ιδιοκτήτες αρχείων.  Βασίζεται σε αντικειμενοστραφή αρχιτεκτονική όπου κάθε αρχείο αντιμετωπίζεται ως αντικείμενο (object).  Ενσωματώνει μηχανισμούς διατήρησης της ακεραιότητας του συστήματος αρχείων ακόμα και μετά από αστοχία του συστήματος, με καταγραφή όλων των διαδικασιών (transaction logging).  Υποστηρίζει συμπίεση των αρχείων και των καταλόγων.  Υποστηρίζει καταλογοποίηση των αρχείων (indexing) για γρήγορη πρόσβαση σε αυτά.  Υποστηρίζει κωδικοποίηση των αρχείων (File Encryption).  Υποστηρίζει έλεγχο χρήσης του χώρου στον δίσκο (disk quotas).  Υποστηρίζει το πρότυπο POSIX.

84  Κάθε αρχείο στο NTFS έχει και μία ή περισσότερες εγγραφές στον Κύριο Πί- νακα Aρχείων (Master File Table - MFT)  Το MFT μπορεί να αυξομειώνεται σε μέγεθος εις βάρος του χώρου αποθή- κευσης αρχείων.  Κάθε αρχείο έχει ένα μοναδικό αριθμό των 64 bits που ονομάζεται «Αναφορά Αρχείου» (File Reference).  Οι πρώτες 27 εγγραφές του MFT αφο- ρούν πληροφορίες του συστήματος.  Η πρώτη εγγραφή περιέχει πληροφορί- ες για το ίδιο το MFT και αντιγράφεται στην δεύτερη εγγραφή καθώς και σε ένα cluster στη μέση του δίσκου.  Οι 2 πρώτες εγγραφές αποθηκεύονται στον boot sector του δίσκου.

85  Όλες οι πληροφορίες του συστήματος καταχωρούνται σε αρχεία που ονομάζονται metadata files σε αντίθεση με τα κοινά αρχεία χρήστη.  Ο κατάλογος root είναι και αυτός ένα αρχείο και μπορεί να περιέχει μεταβλητό αριθμό εγγραφών. Απασχολεί την 6η εγγραφή του MFT.  Log File : Αρχείο στο οποίο καταγράφονται όλες οι ενέργειες του Λ.Σ. έτσι ώστε να μπορεί να ανακτηθεί η σωστή δομή του συστήματος αρχείων σε περίπτωση αστοχίας του υλικού ή του Λ.Σ. Απασχολεί την 3η εγγραφή του MFT.  Volume File : αρχείο με πληροφορίες για το μέγεθος του partition και την έκδοση του NTFS. Απασχολεί την 4η εγγραφή του MFT.  Attribute File : Αρχείο με χαρακτηριστικά του partition που μπορεί να καθορίζονται και από τον χρήστη. Απασχολεί την 5η εγγραφή του MFT.  Bad Blocks List : Αρχείο με λίστα των χαλασμένων clusters του δίσκου. Απασχολεί την 9η εγγραφή του MFT.

86  Security File : περιέχει τα δικαιώματα χρήσης όλων των αρχείων του partition. Απασχολεί την 10η εγγραφή του MFT.  Bitmap File : περιέχει ένα χάρτη δυαδικών ψηφίων με τα ελεύθερα clusters του δίσκου. Απασχολεί την 7η εγγραφή του MFT.  Boot File : περιέχει τον κώδικα για την εκκίνηση των XP. Απασχολεί την 8η εγγραφή του MFT.  Case conversion file : περιέχει την αντιστοίχιση κεφαλαίων και μικρών χαρακτήρων. Απασχολεί την 11η εγγραφή του MFT.  Quota file : περιέχει πληροφορίες για τα όρια χρήσης του δίσκου από τους χρήστες. Απασχολεί την 12η εγγραφή του MFT.  Κάθε εγγραφή του MFT καταλαμβάνει 1 ΚΒ ή το μέγεθος ενός cluster αν αυτό είναι μεγαλύτερο.

87  Η κάθε εγγραφή στο MFT περιλαμβάνει :  Πληροφορίες που προέρχονται από το MS-DOS (standard info)  Το όνομα του αρχείου που μπορεί να είναι μέχρι 255 χαρακτήρες σε κωδικοποίηση Unicode,  Διάφορα χαρακτηριστικά του αρχείου (File Attributes) και  To ίδιο το αρχείο ή κατάλογο εφόσον έχει μικρό μέγεθος ή  Aπευθείας δείκτες σε clusters του δίσκου που περιέχουν το αρχείο.

88 MFT Directory Entry Filename, Security Info, Etc Cluster 1Cluster 2 Cluster 3  Για μεγάλα αρχεία μπορεί να μην φτάνει μία εγγραφή του MFT για περιγραφή όλων των clusters που απασχολεί το αρχείο.  Σε αυτή την περίπτωση η εγραφή του MFT περιέχει ένα δείκτη σε μία άλλη εγγραφή του MFT που χρησιμοποιείται για να καταγράψει τους δείκτες στους επιπλέον clusters του αρχείου.

89  Τα χαρακτηριστικά κάθε αρχείου περιλαμβάνουν :  Τον 64bit αριθμό αναφοράς του αρχείου που είναι μοναδικός για κάθε αρχείο που βρίσκεται στο ίδιο Volume (partition).  Ημερομηνίες Δημιουργίας, Τελευταίας Μεταβολής και Τελευταίας Πρόσβασης στο αρχείο.  Τα κλασσικά χαρακτηριστικά Archive, System, Hidden και ReadOnly  Τον ιδιοκτήτη του αρχείου (αυτόν που το δημιούργησε).  Την ομάδα (group) που ανήκει ο ιδιοκτήτης του αρχείου.  Δικαιώματα χρήσης του αρχείου (Read, Write, Execute, Modify) για τους χρήστες για τους οποίους έχουν οριστεί δικαιώματα.  Τα χαρακτηριστικά του αρχείου καταχωρούνται με την εξής μορφή : ΕπικεφαλίδαΌνομα χαρακτηριστικούΤιμή χαρακτηριστικού

90  Κάθε κατάλογος στο NTFS (όπως και ο root) είναι ένα αρχείο που έχει μία εγγραφή στο MFT.  Περιέχει εγγραφές των αρχείων που περιλαμβάνονται στον κατάλογο.  Κάθε εγγραφή περιέχει : 1.Τον αριθμό αναφοράς του αρχείου (θέση στο MFT) 2.Το όνομα του αρχείου. 3.Το μέγεθος του αρχείου. 4.Την ημερομηνία τελευταίας μεταβολής (για γρήγορη εμφάνιση).  Οι κατάλογοι υλοποιούνται με δομή B-trees για γρήγορη αναζήτηση.

91  Όλες οι εργασίες σε αρχεία και οι ενημερώσεις του συστήματος αρχείων (κατάλογοι, MFT, Free Space bitmap κ.λ.π.) καταχωρούνται σε αρχείο συμβάντων (log file).  Πριν από κάθε ενημέρωση καταχωρούνται στο log file πληροφορίες για επανεκτέλεση και ματαίωση της ενέργειας (Redo & Undo).  Αν ολοκληρωθεί η διαδικασία ενημερώνεται το log file για την επιτυχή της έκβαση.  Σε περίπτωση μη ολοκλήρωσης λόγω αστοχίας συστήματος, στην επόμενη εκκίνηση τα XP διαβάζουν το log file και επαναφέρουν το σύστημα αρχείων σε μία κανονική κατάσταση.  Αυτό δεν εγγυάται την ακεραιότητα των αρχείων χρηστών αλλά την ακεραιότητα των αρχείων του NTFS (metadata files).  H λειτουργία καταγραφής των διαδικασιών εξυπηρετείται από μία υπηρεσία (service) των XP που ονομάζεται Log File Service και ξεκινά αυτόματα με τα XP.  Η τεχνική αυτή προέρχεται από τα Journaled File Systems.

92  Το NTFS χρησιμοποιεί Λογικούς Αριθμούς Clusters (Logical Cluster Numbers – LCN) για να απευθύνεται στους τομείς του δίσκου. Αυτό του επιτρέπει να επεκτείνει ένα Volume σε πολλoύς δίσκους και να χρησιμοποιεί τεχνικές RAID.  H διαχείριση των Volumes γίνεται από ένα ειδικό οδηγό των XP που ονομάζεται FTDisk (Fault Tolerant Disk Driver) που έχει τις εξής δυνατότητες :  Λογική ένωση πολλών δίσκων σε ένα ενιαίο Volume.  Διασπορά λογικών clusters σε πολλούς δίσκους (Stripe Set) με τρόπο παρόμοιο με τον αλγόριθμο Round Robin – Disk Striping (RAID level 0).  Διασπορά λογικών clusters σε πολλούς δίσκους (Stripe Set) με χρήση ενός δίσκου για ισοτιμία (parity) – Disk Striping with Parity (RAID level 5). Αν αστοχήσει ένας δίσκος τα δεδομένα ανακατασκευάζονται.  Διατήρηση αντιγράφου ολόκληρου του δίσκου (Disk Mirroring) όπου χρησιμοποιούνται δύο ισομεγέθη partitions που ενημερώνονται ταυτόχρονα (RAID level 1).

93 Volume D: NTFS LCNs: Volume C: FAT 32 Συνέχεια του Volume D: NTFS LCNs: Δίσκος 1 20 GB Δίσκος 2 20 GB Ένωση πολλών δίσκων σε ενιαίο Volume LCNs 0-15 LCNs LCNs … LCNs LCNs LCNs … Δίσκος 1 20 GB Δίσκος 2 20 GB Εναλλάξ διασπορά των clusters σε πολλούς δίσκους Ενιαίο Volume C: (40GB)

94 SERVICES.EXEΔιεργασία που ελέγχει όλες τις υπηρεσίες (Services) WINLOGON.EXEΥλοποιεί την διεργασία πιστοποίησης χρήστη (login) SMSS.EXESession Manager, είναι υπεύθυνος για την εκκίνηση και τον τερματισμό των Windows. PSXSS.EXETo υποσύστημα POSIX IEEE PSXDLL.DLLDLL για το υποσύστημα POSIX OS2SS.EXEΤο υποσύστημα OS/2 CSRSS.EXETo υποσύστημα Win32 CMD.EXEΤο υποσύστημα DOS (Virtual Dos Machine – VDM) KERNEL32.DLL DLL για το υποσύστημα WIN32 USER32.DLL GDI32.DLL NTOSKRNL.EXEΠεριέχει τον Executive και τον πυρήνα (kernel) HAL.DLLΠεριέχει ειδικό-για-τον-επεξεργαστή κώδικα WIN32K.SYSΠεριέχει τον Windows Manager, Keyboard & mouse I/O, GDI


Κατέβασμα ppt " Μπορούμε να δούμε το ΛΣ από δύο βασικές οπτικές γωνίες:  Το λειτουργικό σύστημα ως ένας εξιδανικευμένος υπολογιστής  Το λειτουργικό σύστημα ως διαχειριστής."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google