Κύριες Υπηρεσίες ενός ΛΣ

Σχετικά έγγραφα
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

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

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Εισαγωγικά & Βασικές Έννοιες

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

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

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

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

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

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

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

Ε-85: Ειδικά Θέµατα Λογισµικού

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Εισαγωγικά & Βασικές Έννοιες

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

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

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

Λειτουργικά συστήµατα. Λογισμικό Συστήματος 1

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

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

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

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

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

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

Περιγραφή και Έλεγχος ιεργασιών

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

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ

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

3.1 Λειτουργικό Σύστηµα. Λειτουργικό Σύστηµα (2) ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα. Ο υπολογιστής σαν σκέτο hardware έχει περιορισµένη χρησιµότητα

Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1

ΕΙΣΑΓΩΓΗ. Παρέχει µια διεπαφή (interface) ανάµεσα στο υλισµικό και στα προγράµµατα εφαρµογών/χρηστών.

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

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

Βασικές Έννοιες Πρ Ταο υγρ τόα χ μ ρ μ ο α ν τισμ ος Π ό ρ ςο ΙΙΙ γραμματισμός 1

Προγραμματισμός Ταυτόχρονος Προγραμματισμός

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Το λειτουργικό σύστημα. Προγραμματισμός II 1

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

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

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

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

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

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

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

Επιτεύγµατα των Λ.Σ.

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

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

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

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

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

Εικονική Μνήμη (1/2)

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

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

Λειτουργικά συστήματα πραγματικού χρόνου

Λειτουργικά Συστήματα Πραγματικού Χρόνου

ΗΜΥ Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

Λειτουργικά Συστήματα 1.1 Τι είναι Λειτουργικό Σύστημα (Operating System)

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

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

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

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»

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

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES)

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Νήµατα. ιεργασίες και νήµατα Υλοποίηση νηµάτων Ελαφριές διεργασίες Αξιοποίηση νηµάτων. Κατανεµηµένα Συστήµατα 10-1

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Πληροφορική 2. Λειτουργικά Συστήματα

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

Κεφάλαιο 3: Λειτουργικά Συστήματα

Κεφάλαιο 3: Λειτουργικά Συστήµατα

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

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

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

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

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Πανεπιστήµιο Θεσσαλίας

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

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

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

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

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

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

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

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

Κεφάλαιο 10 ο Υποπρογράµµατα

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

Σκελετός Παρουσίασης

Transcript:

Κύριες Υπηρεσίες ενός ΛΣ Υποσύστηµα Ε/Ε ενόςλσ

Για τη δηµιουργία των διαφανειών έχει χρησιµοποιηθεί υλικό από τις διαφάνειες παραδόσεων που βασίζονται στο βιβλίο, Silberschatz, Galvin and Gagne, Operating Systems Concepts, 7 th Edition Οι διαφάνειες αυτές βρίσκονται στο δικτυακό τόπο: http://www.cs.purdue.edu/homes/yau/cs503/ Επίσης χρησιµοποιήθηκε υλικό από τις διαφάνειες παραδόσεων του βιβλίου: William Stallings, Operating Systems: Internal and Design Principles, Fourth Edition, που βρίσκονται στο δικτυακό τόπο: http://williamstallings.com/os4e.html

Κύριες Συνιστώσες του Συστήµατος ιαχείριση διεργασιών (Process Management) ιαχείριση κύριας µνήµης (Main Memory Management) ιαχείριση αρχείων (File Management) ιαχείριση συστήµατος εισόδου/εξόδου (Ε/Ε) ιαχείριση χώρου µόνιµης αποθήκευσης (Secondary Management) Σύστηµα προστασίας (Protection System) ιερµηνέας εντολών (Command-Interpreter System) Σελίδα 3

Υπηρεσίες του ΛΣ I Εκτέλεση προγραµµάτων δυνατότητα του συστήµατος να φορτώσει ένα πρόγραµµα στηµνήµη και να το εκτελέσει Ανάθεση πόρων ανάθεση πόρων σε πολλαπλούς χρήστες ή διεργασίες, οι οποίες τρέχουν ταυτόχρονα Λειτουργίες Ε/Ε εφόσον τα προγράµµατα δεν µπορούν να εκτελέσουν άµεσα λειτουργίες Ε/Ε, το ΛΣ πρέπει να παρέχει τρόπους για τη διενέργεια Ε/Ε Σελίδα 4

Υπηρεσίες του ΛΣ II Προστασία διασφάλιση της ελεγχόµενης πρόσβασης στους πόρους του συστήµατος Χειρισµός συστήµατος αρχείων δυνατότητα στα προγράµµαταναδιαβάσουν, γράψουν, δηµιουργήσουν και διαγράψουν αρχεία Επικοινωνίες ανταλλαγή πληροφοριών µεταξύ διεργασιών που εκτελούνται είτε στο ίδιο ή σε διαφορετικά ΥΣ που συνδέονται µέσω δικτύου. Υλοποιείται µε κοινή µνήµη (shared memory) ή µε πέρασµα µηνυµάτων (message passing) Σελίδα 5

Υπηρεσίες του ΛΣ III Ανίχνευση λαθών διασφάλιση ορθής εκτέλεσης των υπολογισµών µε το να ανιχνεύονται λάθη στην ΚΜΕ ή το υλικό της µνήµης, στις συσκευές Ε/Ε, ή στα προγράµµατα των χρηστών Υπάρχουν και κάποιες επιπλέον λειτουργίες, όχι για την εξυπηρέτηση των χρηστών αλλά και για την αποδοτική λειτουργία του συστήµατος Συλλογή στοιχείων (accounting) καταγραφή του πόσο και ποιους πόρους χρησιµοποιούν οι χρήστες, είτε για λόγους χρέωσης είτε για λόγους τήρησης στατιστικών στοιχείων Σελίδα 6

Προγράµµατα Συστήµατος Ι Τα προγράµµατα συστήµατος παρέχουν ένα βολικό περιβάλλον για ανάπτυξη και εκτέλεση προγραµµάτων. Παρέχουν τις εξής λειτουργίες: Χειρισµός και τροποποίηση αρχείων Πληροφορίες κατάστασης συστήµατος Φόρτωση και εκτέλεση προγράµµατος Υποστήριξη γλωσσών προγραµµατισµού Επικοινωνίες Προγράµµατα Εφαρµογών Σελίδα 7

Προγράµµατα Συστήµατος ΙΙ Η άποψη των χρηστών για το ΛΣ καθορίζεται από τα προγράµµατα συστήµατος σε συνδυασµό µε τον διερµηνευτή εντολών (και όχι τόσο από το ΛΣ καθαυτό - π.χ. τα Windows όπου ο χρήστης δεν «βλέπει» το πραγµατικό ΛΣ παρά µόνο το γραφικό περιβάλλον εντολών) Σελίδα 8

ιαχείριση ιεργασιών Μια διεργασία (process) είναι ένα πρόγραµµα που εκτελείται. Μια διεργασία χρειάζεται συγκεκριµένους πόρους, που περιλαµβάνουν χρόνο στην ΚΜΕ, µνήµη, αρχεία, συσκευές Ε/Ε γιανα«τρέξει» Το ΛΣ έχει τις ακόλουθες αρµοδιότητες όσον αφορά στη διαχείριση διεργασιών: ηµιουργία και τερµατισµός διεργασιών ιακοπή και επανεκκίνηση διεργασιών Μηχανισµοί συγχρονισµού & επικοινωνίας διεργασιών Σελίδα 9

Πίνακας Ελέγχου ιεργασίας Process Control Block (PCB) Ι Περιέχει βασικές πληροφορίες που συσχετίζονται µε την κάθε διεργασία: Κατάσταση διεργασίας (process state) Μετρητής εντολών προγράµµατος (program counter) Καταχωρητές της ΚΜΕ (CPU registers) Σελίδα 10

Πίνακας Ελέγχου ιεργασίας Process Control Block (PCB) ΙΙ Πληροφορίες για το χρονοπρογραµµατισµό τηςκμε (CPU scheduling information) Πληροφορίες διαχείρισης µνήµης (memory-management information) Συλλογή στοιχείων διαχείρισης (accounting information) Πληροφορίες κατάστασης εισόδου/εξόδου (Ι/Ο status information) Σελίδα 11

Πίνακας Ελέγχου ιεργασίας (συνέχεια) Σελίδα 12

Μοντέλα Επικοινωνίας Η επικοινωνία συµβαίνει είτε µέσω κοινής µνήµης ή µε πέρασµα µηνυµάτων Πέρασµα µηνυµάτων Κοινή Μνήµη Σελίδα 13

ιαχείριση Κύριας Μνήµης Η µνήµη γίνεται αντιληπτή ως ένας συνεχόµενος χώρος από λέξεις (ή bytes) καθεµιά µε τηδικήτηςδιεύθυνση (memory address) Αποτελεί χώρο αποθήκευσης γρήγορα προσπελάσιµων δεδοµένων που χρησιµοποιούνται από την ΚΜΕ και τις συσκευές Ε/Ε Η κύρια µνήµη είναι συσκευή προσωρινής αποθήκευσης Σελίδα 14

ιαχείριση Κύριας Μνήµης Το ΛΣ είναι επιφορτισµένο µε τις ακόλουθες δραστηριότητες όσον αφορά στη διαχείριση µνήµης (memory management): Γνώση των τµηµάτων µνήµης που χρησιµοποιούνται Γνώση του ποια διεργασία χρησιµοποιεί ποια τµήµατα µνήµης Φόρτωση διεργασιών όταν ελευθερώνεται µνήµη Ανάθεση και αφαίρεση χώρου στη µνήµη (ανάλογα µε τις απαιτήσεις της διεργασίας και/ή την κατάσταση της µνήµης) Σελίδα 15

ιαχείριση Αρχείων Ένα αρχείο είναι µια συλλογή συσχετισµένων πληροφοριών, όπως ορίζονται από το δηµιουργό τους Το ΛΣ είναι επιφορτισµένο µε τις ακόλουθες δραστηριότητες όσον αφορά στη διαχείριση αρχείων: ηµιουργία και διαγραφή αρχείων ηµιουργία και διαγραφή καταλόγων (ή φακέλων) Υποστήριξη λειτουργιών χειρισµού καταλόγων και αρχείων Αντιστοίχηση αρχείων στη δευτερεύουσα µνήµη Αντίγραφα ασφαλείας αρχείων σε µόνιµα αποθηκευτικά µέσα Σελίδα 16

ιαχείριση Χώρου Μόνιµης Αποθήκευσης ΈναΥΣπρέπειναέχειδευτερεύουσα µνήµη για τη µόνιµη αποθήκευσηδεδοµένων Τα συµβατικά ΛΣ χρησιµοποιούν δίσκους ως το βασικό µέσο αποθήκευσης για προγράµµατα και δεδοµένα Το ΛΣ είναι επιφορτισµένο µε τις ακόλουθες δραστηριότητες όσον αφορά στη διαχείριση του δίσκου: ιαχείριση ελεύθερου χώρου Ανάθεση χώρου αποθήκευσης Χρονοπρογραµµατισµός δίσκου (disk scheduling) Σελίδα 17

ιαχείριση Εισόδου / Εξόδου (Ε/Ε) Το σύστηµα εισόδου / εξόδου (Ε/Ε) αποτελείται από: Ένα σύστηµα προσωρινής/ ενδιάµεσης αποθήκευσης (buffercaching system) Μια διεπαφή γενικής χρήσης για τον αντίστοιχο οδηγό συσκευής (a general device-driver interface) Οδηγούςγιατιςδιάφορεςσυσκευές Σελίδα 18

Ιεραρχία Αποθήκευσης Το σύστηµα αποθήκευσηςενόςυσείναιδοµηµένο ιεραρχικά, σύµφωνα µε: την ταχύτητα πρόσβασης στα δεδοµένα (από την ΚΜΕ) το κόστος προµήθειας µνήµης για κάθε βαθµίδα την µονιµότητα των δεδοµένων Κυρίως µνήµη (RAM), δευτερεύουσα µνήµη (δίσκοι),... Κρυφή µνήµη: τεχνική που χρησιµοποιείται σχεδόν σε κάθε «όριο» ανάµεσασταδιάφοραεπίπεδαµνήµης του ΥΣ για να βελτιωθεί ο χρόνος πρόσβασης στα δεδοµένα Σελίδα 19

ΗΙεραρχίαΑποθήκευσηςενόςΥΣ Σελίδα 20

Κρυφή Μνήµη Ι Επιτάχυνση πρόσβασης σε ένα (αργό) στρώµα µνήµης, χρησιµοποιώντας τµήµα (γρήγορης) µνήµης για την αποθήκευση δεδοµένων που βρίσκονται αποθηκευµένα στην αργή µνήµη Εισάγει την έννοια της συνέπειας (αλλαγές σε δεδοµένα της κρυφής µνήµης πρέπει να «περάσουν» κάποια στιγµή στο αντίστοιχο στρώµα µνήµης) Η διαχείριση κρυφής µνήµης είναι πολύ σηµαντική για την απόδοση του συστήµατος Σελίδα 21

Μετακόµιση εδοµένων µέσα από την Ιεραρχία Αποθήκευσης ενός ΥΣ Σελίδα 22

Κρυφή Μνήµη ΙΙ Σελίδα 23

Σχεδιασµός Κρυφής Μνήµης Ι Μέγεθος Cache Μικρές κρυφές µνήµες έχουν σηµαντική επίδραση στην απόδοση Μέγεθος Block Η µονάδα δεδοµένων που ανταλλάσσεται µεταξύ κρυφής και κύριας µνήµης Επιτυχία έχουµε όταν βρεθεί πληροφορία στην cache Όσο µεγαλώνει το µέγεθος του block τόσες περισσότερες επιτυχίες έχουµε (από κάποιο σηµείο όµως και µετά η απόδοση πέφτει αφού δε λαµβάνεται υπόψη η πιθανότητα επαναχρησιµοποίησης δεδοµένων) Σελίδα 24

Σχεδιασµός Κρυφής Μνήµης ΙΙ Συνάρτηση Απεικόνισης (Mapping function) Προσδιορίζει τη θέση που θα καταλάβει στην κρυφή µνήµη το block που θα µεταφερθεί από την κύρια µνήµη Αλγόριθµος Αντικατάστασης (Replacement algorithm) Προσδιορίζει το block που θα αντικατασταθεί Αλγόριθµος Least-Recently-Used (LRU) Αντικατάσταση του λιγότερο πρόσφατα χρησιµοποιηµένου block Σελίδα 25

Σχεδιασµός Κρυφής Μνήµης ΙΙΙ Πολιτική Εγγραφών/ΕνηµέρωσηςτηςΚύριαςΜνήµης: Πότε λαµβάνει χώρα η λειτουργία ενηµέρωσης της µνήµης µε πιθανές αλλαγές στα περιεχόµενα του block; Μπορεί να συµβαίνει κάθε φορά που ενηµερώνεται το block Μπορεί να συµβαίνει µόνο όταν το block αντικαθίσταται Ελαχιστοποιούνται οι λειτουργίες αλληλεπίδρασης µε τη µνήµη (άρα µεγαλύτερη ταχύτητα εκτέλεσης του προγράµµατος) Πρόβληµα: Η µνήµη βρίσκεται σε µη συνεπή κατάσταση Σελίδα 26

Προστασία εδοµένων - Όρια Μνήµης Ι Οι εντολές εισόδου / εξόδου (I/O instructions) είναι προστατευµένες ώστε να µην µπορούν να εκτελεσθούν απ ευθείας (χωρίς κλήση συστήµατος) από τα προγράµµατα χρηστών Κάθε διεργασία χρήστη έχει συγκεκριµένες διευθύνσεις µνήµης που επιτρέπεται να χρησιµοποιήσει Πρόσβαση σε άλλες θέσεις µνήµης οδηγεί σε λάθος Σελίδα 27

Προστασία εδοµένων - Όρια Μνήµης ΙΙ Στην απλούστερη των περιπτώσεων: για κάθε διεργασία διατηρούνται δύο τιµές: αρχή και µήκος προσβάσιµης µνήµης της διεργασίας κάθε φορά που η διεργασία διαβάζει ή γράφει σε κάποια θέση µνήµης γίνεται έλεγχος πρόσβασης από το υλικό Σελίδα 28

Αρχή και Μέγεθος Μνήµης Εργασίας Σελίδα 29

Έλεγχος Πρόσβασης Μνήµης Σελίδα 30

Λογικά Τµήµατα Μνήµης ιεργασιών Τµήµα κώδικα(code section): περιέχει τις εντολές του προγράµµατος που εκτελείται Τµήµα καθολικώνδεδοµένων (static / global data section): περιέχει τα µόνιµα δεδοµένα του προγράµµατος που εκτελείται Τµήµα δυναµικών δεδοµένων (dynamic data section): περιέχει τα δυναµικά δεδοµένα της εκτέλεσης Στοίβα (stack): περιέχει τις προσωρινές τοπικές µεταβλητές της εκτέλεσης που δηµιουργούνται λόγω κλήσεων συναρτήσεων Σελίδα 31

Αναπαράσταση Τµηµάτων Μνήµης ιεργασιών στην Μνήµη τουυσ Μνήµη ΥΣ P1 code stack static data dynamic data Σελίδα 32

ιερµηνέας Εντολών Αρµοδιότητά του η λήψη και εκτέλεση εντολών Τυπικές εντολές που δίνονται στο ΛΣ: δηµιουργία και διαχείριση διεργασιών χειρισµός I/O πρόσβαση στο σύστηµα αρχείων προστασία Ανάλογα µε το ΛΣ, υπάρχουν διάφοροι Ε: Γραφικό περιβάλλον εντολών (στα Windows) ιερµηνευτής γραµµής εντολών (command line interpreter) και κέλυφος εντολών (shell) (στο UNIX) Σελίδα 33

Σύστηµα Προστασίας Οόροςπροστασία (protection) αναφέρεται σε ένα µηχανισµό για τον έλεγχο πρόσβασης διεργασιών ή χρηστών τόσο σε πόρους συστήµατος ή χρηστών Ο µηχανισµός προστασίας πρέπει: Να µπορεί να διακρίνει µεταξύ της εξουσιοδοτηµένης και µη πρόσβασης Να προσδιορίζει τους ελέγχους που πρέπει να επιβληθούν Να παρέχει τρόπο επιβολής τους Σελίδα 34

ιπλή Υπόσταση Συστήµατος Το ΛΣ πρέπει να διαµοιράζει τους πόρους του συστήµατος µε ελεγχόµενο τρόπο. Κανένα πρόγραµµα χρήστη δεν πρέπει να µπορεί να παρέµβει στις αποφάσεις του ΛΣ Υπάρχει αυστηρός διαχωρισµός ανάµεσα σε system (λειτουργικό σύστηµα) και user (χρήστες) mode Αυτό ισχύει τόσο για δεδοµένα όσο και για την εκτέλεση κώδικα Το υλικό (ΚΜΕ, σύστηµα διαχείρισης µνήµης) ενός ΥΣ υποστηρίζει τη διαφοροποίηση ανάµεσα σε αυτές τις δύο περιπτώσεις Σελίδα 35

Προστασία Εκτέλεσης -Mode bit I Το mode bit χρησιµοποιείται από την ΚΜΕ για να φαίνεται αν ένα κοµµάτι κώδικα (εντολή) εκτελείται για λογαριασµό του συστήµατος (system mode) ήγια λογαριασµό τουχρήστη(user mode) Το mode bit αλλάζει όταν γίνεται κλήση συστήµατος ή εξυπηρετείται κάποια περιφερειακή συσκευή µέσω διακοπής και επαναφέρεται όταν γίνεται επιστροφή σε κώδικα προγραµµάτων χρηστών Σελίδα 36

Προστασία Εκτέλεσης -Mode bit II ΛΣ κλήση συστήµατος διακοπή επιστροφή εργασία χρήστη Υπάρχουν συγκεκριµένες εντολές του επεξεργαστή που επιτρέπεται να εκτελεσθούν µόνο σε system mode Σελίδα 37

Κλήσεις Συστήµατος (System Calls) Μια κλήση συστήµατος είναι ο τρόπος µε τον οποίο ένα πρόγραµµα που εκτελείται σε κατάσταση χρήστη ζητά από ένα προστατευµένο πρόγραµµα που βρίσκεται σε κατάσταση πυρήνα να το εξυπηρετήσει Ο αποκλειστικός λόγος ύπαρξης των προγραµµάτων που εκτελούνται σε κατάσταση πυρήνα (kernel mode) είναι να εξυπηρετούν τα προγράµµατα / διεργασίες που εκτελούνται σε κατάσταση χρήστη (user mode), κάνοντας τους απαραίτητους ελέγχους ασφαλείας Σελίδα 38

ιάφοροι Τύποι Κλήσεων Συστήµατος Έλεγχος διεργασιών (Process control) ιαχείριση αρχείων (File management) ιαχείριση συσκευών (Device management) ιατήρηση πληροφοριών (Information maintenance) Επικοινωνίες (Communications) Σελίδα 39

Κλήσεις Συστήµατος (συνέχεια) Οι κλήσεις συστήµατος παρέχουν τη διεπαφή (interface) µεταξύ ενός προγράµµατος που εκτελείται και του ΛΣ Γενικώς, διαθέσιµες ως οµάδες εντολών σε γλώσσα assembly Οι γλώσσες που έχουν οριστεί να αντικαταστήσουν την assembly στον προγραµµατισµό συστήµατος (system programming) επιτρέπουν την απευθείας επίκληση κλήσεων συστήµατος (π.χ., C, C++) µέσω αντίστοιχων βιβλιοθηκών (APIs) Σελίδα 40

Σχέση µεταξύ API Κλήσης Συστήµατος ΛΣ Σελίδα 41

Παράδειγµα Βιβλιοθήκης Standard C Σελίδα 42

Κλήσεις Συστήµατος (συνέχεια) Τρεις γενικές µέθοδοι χρησιµοποιούνται για το πέρασµα παραµέτρων µεταξύενόςπρογράµµατος που εκτελείται και του ΛΣ Πέρασµα παραµέτρων σε καταχωρητές (registers) Αποθήκευση των παραµέτρων σε έναν πίνακα στη µνήµη, και πέρασµα της διεύθυνσης του πίνακα ως παραµέτρου σε καταχωρητή Σπρώξιµο (Push) (δηλαδή αποθήκευση) απότοπρόγραµµα των παραµέτρων στη στοίβα (stack), και ανάκτηση (pop) από το ΛΣ των παραµέτρων από τη στοίβα Σελίδα 43

Πέρασµα τωνπαραµέτρων σε πίνακα Σελίδα 44

Η Λειτουργία της Στοίβας Ι Ηστοίβαχρησιµοποιείται για την προσωρινή αποθήκευση τοπικών µεταβλητών κατά την κλήση υποπρογραµµάτων, για την µετάδοση παραµέτρων και αποτελεσµάτων ανάµεσα στα υποπρογράµµατα και για την αποθήκευση της διεύθυνσης επιστροφής Κάθε νέα κλήση δεσµεύει χώρο στην στοίβα για την αποθήκευση των αντίστοιχων τοπικών µεταβλητών του υποπρογράµµατος. Αυτός ο χώρος αποδεσµεύεται όταν επιστρέψει το υποπρόγραµµα Σελίδα 45

Η Λειτουργία της Στοίβας II Αλυσιδωτές κλήσεις υποπρογραµµάτων, η µια µέσα από την άλλη, έχουν σαν αποτέλεσµα την επέκταση της στοίβας Αν γίνουν πάρα πολλές αλυσιδωτές κλήσεις, ηστοίβα µπορεί να γεµίσει (stack overflow) µε αποτέλεσµα να τερµατιστεί η διεργασία (κλασικό παράδειγµα είναιη ατέρµονη αναδροµή) Σελίδα 46

Αναπαράσταση Λειτουργίας Στοίβας execution stack execution stack foo1 foo1 foo2 foo3 foo2 foo1 foo3 foo1 execution stack execution stack foo1 foo1 foo2 foo2 foo2 foo2 foo1 foo1 Σελίδα 47

Κλασική Υλοποίηση Κλήσεων Συστήµατος Ι Συνήθως, κάθε διεργασία διαθέτει δύο στοίβες: τη στοίβα του χρήστη (user stack) και τη στοίβα του συστήµατος (system stack) Η στοίβα χρήστη χρησιµοποιείται για την κλήση συναρτήσεων που αντιστοιχούν σε κώδικα του προγράµµατος (των χρηστών) Η στοίβα του συστήµατος χρησιµοποιείται για την κλήση συναρτήσεων του λειτουργικού συστήµατος Σελίδα 48

Κλασική Υλοποίηση Κλήσεων Συστήµατος ΙΙ Αλλαγή από την στοίβα χρήστη στην στοίβα συστήµατος γίνεται κάθε φορά που ενεργοποιείται µια κλήση συστήµατος (µπορεί να υπάρξουν αλυσιδωτές κλήσεις συστήµατος) Αλλαγή από την στοίβα συστήµατος στην στοίβα χρήστη γίνεται όταν επιστρέψει και η τελευταία κλήση συστήµατος Σελίδα 49

Αναπαράσταση Κλήσεων Συστήµατος µε 2 Ξεχωριστές Στοίβες execution s stack u stack execution s stack u stack foo1 foo1 foo1 sys1 sys2 sys2 sys1 foo1 execution s stack u stack execution s stack u stack foo1 foo1 sys1 sys1 sys1 foo1 sys1 foo1 Σελίδα 50

Εναλλαγή Περιβάλλοντος Λειτουργίας I Όταν η ΚΜΕ ανατίθεται σε µια νέα διεργασία για να συνεχίσει την εκτέλεση της, το ΛΣ πρέπει να σώσει την κατάσταση της τρέχουσας διεργασίας (που εκτελείται εκείνη την στιγµή) και να φορτώσει την κατάσταση της νέας διεργασίας προς εκτέλεση Αυτήηδιαδικασίαονοµάζεται εναλλαγή περιβάλλοντος λειτουργίας (context switch). O χρόνος που απαιτείται για την εκτέλεση της λειτουργίας αυτής είναι φόρτος (overhead) για το σύστηµα (το οποίο όσο ασχολείται µε την εναλλαγή δεν κάνει χρήσιµη δουλειά για τις διεργασίες των χρηστών) Σελίδα 51

Εναλλαγή Περιβάλλοντος Λειτουργίας II ιεργασία 0 Λειτουργικό Σύστηµα ιεργασία 1 εκτέλεση ιακοπή ή κλήση συστήµατος Χρόνος Εκτέλεσης ΛΣ (context switch) Αποθήκευση κατάστασης στο PCB0... Ανάκτηση κατάστασης από PCB1 ανενεργή ανενεργή ιακοπή ή κλήση συστήµατος εκτέλεση Αποθήκευση κατάστασης στο PCB1... Ανάκτηση κατάστασης από PCB0 Χρόνος Εκτέλεσης ΛΣ (context switch) ανενεργή εκτέλεση Σελίδα 52

Κλασική Υλοποίηση Εναλλαγής Περιβάλλοντος Λειτουργίας Ι Ο χρόνος εναλλαγής εξαρτάται (α) από την πολυπλοκότητα του ΛΣ και (β) την υποστήριξη από το υλικό του ΥΣ (κυρίως από τον επεξεργαστή και την µονάδα διαχείρισης µνήµης) Η εναλλαγή περιβάλλοντος λειτουργίας γίνεται συνήθως µέσω ειδικής κλήσης συστήµατος, η οποίαµπορεί να ενεργοποιηθεί είτε µέσα από κώδικα χειρισµού διακοπών (interrupt handler) είτε µέσα από άλλες συναρτήσεις βιβλιοθήκης ή κλήσεις συστήµατος Σελίδα 53

Κλασική Υλοποίηση Εναλλαγής Περιβάλλοντος Λειτουργίας ΙΙ Η κλήση εναλλαγής περιβάλλοντος λειτουργίας, σώζει την κατάσταση της τρέχουσας διεργασίας στον πίνακα ελέγχου της και επαναφέρει την κατάσταση της διεργασίας προς εκτέλεση χρησιµοποιώντας τις τιµές που έχουν αποθηκευτεί στον αντίστοιχο πίνακα ελέγχου Κατά τη διάρκεια της εναλλαγής γίνεται και αλλαγή από την στοίβα συστήµατος της τρέχουσας διεργασίας στην στοίβα συστήµατοςτηςνέαςδιεργασίας, µε αποτέλεσµα όταν επιστρέφει η κλήση συστήµατος να συνεχίσει η εκτέλεση του κώδικα της νέας διεργασίας Σελίδα 54

Αναπαράσταση Κλήσης Εναλλαγής Περιβάλλοντος Λειτουργίας P1 running s stack u stack P1 ready s stack u stack foo1 foo1 ctxt foo1 ctxt foo1 P2 ready s stack u stack P2 running s stack u stack foo2 foo2 foo3 ctxt ctxt foo3 foo2 foo3 foo3 foo2 Σελίδα 55

Ουρές Συσκευών Για κάθε συσκευή, το ΛΣ διατηρεί ουρά µε τις διεργασίες που περιµένουν (σε κατάσταση waiting) για την ολοκλήρωση κάποιας αίτησης Μια διεργασία προστίθεται σε µια ουρά αναµονής όταν καλεί (άµεσα ήέµµεσα) µια από τις συναρτήσεις πρόσβασης της συσκευής αλλά η εξυπηρέτηση της αίτησης δεν είναι εφικτή άµεσα Κάθε φορά που ολοκληρώνεται µια λειτουργία της συσκευής (διακοπή), γίνεται έλεγχος κατά πόσο µπορούν πλέον να εξυπηρετηθούν κάποιες από τις αιτήσεις των διεργασιών που βρίσκονται στην ουρά αναµονής Σελίδα 56

Ουρές Αναµονής του ΛΣ Σελίδα 57

Επιλογή ιεργασίας προς Εκτέλεση Στις ουρές αναµονής τοποθετούνται οι πίνακες ελέγχου τωνδιεργασιώνπουαναµένουν την ολοκλήρωση των αιτήσεών τους Όταν η αίτηση µιας διεργασίας εξυπηρετηθεί, το ΛΣ επαναφέρει την διεργασία σε κατάσταση ready και την τοποθετεί στην ουρά αναµονής (ready queue) των διεργασιών έτοιµων προς εκτέλεση Ο γρήγορος έλεγχος της ουράς έτοιµων διεργασιών είναι αποφασιστικής σηµασίας για την απόδοση του συστήµατος Σελίδα 58

Πίνακας Ουρών Συσκευών Σελίδα 59

Επικοινωνία µε Περιφερειακά και Συσκευές Χειρισµός ιακοπών (Interrupts)

οµή Υλικού ενός Τυπικού ΥΣ Σελίδα 61

ΛΣ και Περιφερειακές Συσκευές Οι συσκευές Ε/Ε καιηκμεµπορούν να λειτουργούν ταυτόχρονα Κάθε ελεγκτής συσκευής (controller) είναι υπεύθυνος για κάποιο συγκεκριµένο τύπο συσκευής Κάθε ελεγκτής συσκευής έχει µια µνήµη προσωρινής τοπικής αποθήκευσης (buffer) Σελίδα 62

ΛΣ και Περιφερειακές Συσκευές Η ΚΜΕ µετακινεί δεδοµένα από/προς την κύρια µνήµη προς/από τη µνήµη τοπικής αποθήκευσης του ελεγκτή H E/E γίνεται από τη συσκευή στην τοπική µνήµη του ελεγκτή Ο ελεγκτής της συσκευής ενηµερώνει την ΚΜΕ ότι η συσκευή είναι έτοιµη ναεπικοινωνήσειµε τολσήότι ολοκληρώθηκε µια λειτουργία προκαλώντας µια διακοπή (interrupt) Σελίδα 63

Είσοδος/Έξοδος (Ε/Ε) Κάθε ελεγκτής διαθέτει µερικούς καταχωρητές που χρησιµεύουν στην επικοινωνία του µε τηνκμε Πως επικοινωνεί η ΚΜΕ µε τους καταχωρητές ελέγχου; Αριθµός θύρας Ε/Ε Ε/Ε µε χαρτογράφηση στη µνήµη (memory-mapped I/O) Σελίδα 64

Παράδειγµα ιευθύνσεων Ε/Ε σε PC Σελίδα 65

Χειρισµός E/E µε Αναµονή Η µεταφορά των δεδοµένων γίνεται από την ρουτίνα εξυπηρέτησης της αντίστοιχης διακοπής Αφού ξεκινήσει η Ε/Ε, ο έλεγχος επιστρέφει στο πρόγραµµα χρήστηµόνο µετά την ολοκλήρωση της Ε/Ε Αφού ξεκινήσει η Ε/Ε, ο µόνος τρόπος να λάβει τον έλεγχο το ΛΣ πριν ολοκληρωθεί η µεταφορά δεδοµένων είναι µια άλλη διακοπή (µε µεγαλύτερη προτεραιότητα) Το πολύ µια αίτηση Ε/Ε «τρέχει» κάθε φορά στο ΛΣ (δεν υπάρχει ταυτόχρονη/παράλληλη επεξεργασία Ε/Ε) Σελίδα 66

Χειρισµός Ε/Ε χωρίςαναµονή Η µεταφορά των δεδοµένων γίνεται από την συσκευή Αφού ξεκινήσει η Ε/Ε, ο έλεγχος επιστρέφει απ ευθείας στο ΛΣ (και πιθανόν στο πρόγραµµα χρήστη) Η ολοκλήρωση της Ε/Ε σηµατοδοτείται µέσω νέας διακοπής Το ΛΣ διατηρεί τον έλεγχο κατά την µεταφορά δεδοµένων και µπορεί συνεπώς να εξυπηρετήσει άλλες διεργασίες και διακοπές Πολλές αιτήσεις Ε/Ε «τρέχουν» κάθε φορά στο ΛΣ, οπότε υπάρχει ταυτόχρονη/παράλληλη επεξεργασία Ε/Ε Σελίδα 67

Αναπαράσταση των δύο Μεθόδων Ε/Ε µε αναµονή χωρίς αναµονή Σελίδα 68

Σελίδα 69

Κλάσεις ιακοπών Αποτέλεσµα εκτέλεσης εντολών προγράµµατος (π.χ. διαίρεση µε τοµηδέν) Λήξη χρονοµετρητών συστήµατος Σηµατοδότηση λειτουργιών σχετικών µε Ε/Ε Σφάλµα υλικού ΥΣ Σελίδα 70

Κύκλος εκτέλεσης εντολής µε διακοπές Σελίδα 71

Χειρισµός ιακοπών Ι Ο ελεγκτής συσκευής ενεργοποιεί το κύκλωµα διακοπής της ΚΜΕ Η ΚΜΕ αντιλαµβάνεται την διακοπή, διακόπτει την εκτέλεση της τρέχουσας διεργασίας και µεταφέρει τον έλεγχο στον κώδικα της ρουτίνας εξυπηρέτησης διακοπών (interrupt handler) Η µεταφορά αυτή είναι όµοια (αλλά όχι πανοµοιότυπη) µε τηνµεταφορά ελέγχου που γίνεται σε µια κλήση συστήµατος (µε εναλλαγή από user stack σε system stack) Σελίδα 72

Χειρισµός ιακοπών ΙΙ Όταν ολοκληρωθεί η ρουτίνα εξυπηρέτησης διακοπών, ο έλεγχος επιστρέφει στο ΛΣ (και πιθανόν στην διεργασία που διακόπηκε) Ο αποδοτικός και άµεσος χειρισµός διακοπών είναι από τα πιο κρίσιµα σηµεία ενός λειτουργικού συστήµατος (µια και µέσω αυτών λειτουργεί όλη η Ε/ΕτουΥΣ) Σελίδα 73

ιάγραµµα Ροής Χειρισµού ιακοπών Σελίδα 74

Αναπαράσταση Χειρισµού ιακοπής Συστήµατος µε 2 Ξεχωριστές Στοίβες execution s stack u stack execution s stack u stack foo1 foo1 intr sys foo1 sys intr foo1 execution s stack u stack execution s stack u stack foo1 foo1 intr intr foo1 foo1 Σελίδα 75

ιαχείριση ιακοπών Ι Το ΛΣ προσδιορίζει τον τύπο της διακοπής που συνέβη: Ρωτώντας (polling) τις συσκευές µε τηνσειρά Με βάση τον αριθµό της διακοπής (vectored interrupts) Συνδυάζοντας τις δύο µεθόδους Σελίδα 76

ιαχείριση ιακοπών ΙΙ Τα τµήµατα του κώδικα που αναλαµβάνουν να εξυπηρετήσουν τους διαφορετικούς τύπους διακοπών αποθηκεύονται σε προστατευµένο µέρος της µνήµης του ΛΣ Οι εισερχόµενες διακοπές µπορεί να αποτραπούν (disabled) για να µην υπάρξει αλυσιδωτή διακοπή Οι εισερχόµενες διακοπές µπορεί να αποθηκευτούν (buffered) για να µην χαθούν (οπότε θα εξυπηρετηθούν καθυστερηµένα ή ποτέ) Σελίδα 77

Πολλαπλές ιακοπές Ι Τι συµβαίνει στην περίπτωση όπου συµβαίνουν χρονικά επικαλυπτόµενες διακοπές (π.χ. ένα πρόγραµµα που λαµβάνει δεδοµένα από µια σύνδεση δικτύου ενώ ταυτόχρονα τυπώνει και αποτελέσµατα) Απενεργοποίηση ιακοπών Ορισµός προτεραιοτήτων διακοπών Σελίδα 78

Πολλαπλές ιακοπές ΙΙ (α) Απενεργοποίηση των διακοπών κατά τη διάρκεια επεξεργασίας µιας διακοπής (ακολουθιακή εξυπηρέτηση διακοπών, µετά την ολοκλήρωση εξυπηρέτησης της πρώτης διακοπής) (β) υνατότητα εξυπηρέτησης διακοπών συσκευών µε µεγαλύτερη προτεραιότητα ακόµα και κατά τη διάρκεια εξυπηρέτησης άλλης διακοπής Σελίδα 79

Πολλαπλές ιακοπές ΙΙΙ ιακοπή υψηλής προτεραιότητας αναγκάζει ρουτίνα εξυπηρέτησης διακοπής χαµηλότερης προτεραιότητας να περιµένει Για παράδειγµα όταν έχουµε είσοδο από κάποια δικτυακή διασύνδεση, πιθανόν να απαιτείται γρήγορη επεξεργασία της για να µη γεµίσει η ενδιάµεση αποθήκευση και απορριφθούν πλαίσια δεδοµένων Σε αυτή την περίπτωση εξυπηρετείται η διακοπή υψηλής προτεραιότητας και όταν τελειώσει οι διακοπείσες ή όσες έχουν έρθει κατά τη διάρκεια εξυπηρέτησής της Σελίδα 80

Πολλαπλές ιακοπές ΙV Επειδή οι ρουτίνες εξυπηρέτησης διακοπής µπορούν να διακοπούν για την εξυπηρέτηση διακοπής µεγαλύτερης προτεραιότητας θα πρέπει να διασφαλιστεί ότι ο πυρήνας θα παραµείνει σε συνεπή κατάσταση υπάρχουν κρίσιµα τµήµατα στην εξυπηρέτηση διακοπών Τα τµήµατα αυτά πρέπει να είναι όσο το δυνατόν µικρότερα προκειµένου να αποφεύγεται µπλοκάρισµα νηµάτων και καθυστέρηση των λειτουργιών Ε/Ε Σελίδα 81

Γραφική Παράσταση ιακοπών ιεργασίας που κάνει Ε/Ε Σελίδα 82

οµή Άµεσης Πρόσβασης στη Μνήµη (Direct Memory Access Structure) Χρησιµοποιείται για συσκευές Ε/Ε υψηλήςταχύτητας που µπορούν να µεταδώσουν πληροφορία σε ταχύτητες συγκρίσιµες µε αυτές της µνήµης Ο ελεγκτής συσκευής µεταφέρει µεγάλα τµήµατα δεδοµένων από την τοπική του µνήµη κατευθείαν στην κύρια µνήµη χωρίς την παρέµβαση της ΚΜΕ Μόνο µια διακοπή δηµιουργείται ανά κάθε τµήµα που µεταφέρεται, παρά µια διακοπή για κάθε byte Αποδοτική χρήση της ΚΜΕ, ταχύτερη µεταφορά δεδοµένων, παραλληλισµός στην Ε/Ε Σελίδα 83

Τα Βήµατα Υλοποίησης του DMA Σελίδα 84

Οδηγοί Συσκευών Για κάθε συσκευή, το ΛΣ καταγράφει την κατάστασή της, και υλοποιεί τις συναρτήσεις πρόσβασης καθώς και την ρουτίνα εξυπηρέτησης διακοπών Το σύνολο του κώδικα (συναρτήσεις πρόσβασης και ρουτίνα εξυπηρέτησης διακοπών) ονοµάζεται οδηγός (driver) της συσκευής Σελίδα 85

Οδηγοί Συσκευών ΙΙ Ο προγραµµατιστής βλέπει µόνο τις ρουτίνες πρόσβασης (µερικές φορές ούτε καν αυτές γιατί χρησιµοποιεί ακόµα πιο αφαιρετικούς µηχανισµούς χρήσης των συσκευών, π.χ. αρχεία αντί για δίσκο) Ο προγραµµατιστής δεν έχει πρόσβαση στην ρουτίνα εξυπηρέτησης διακοπών για καµία συσκευή του συστήµατος Σελίδα 86

οµή ΛΣ για την Εξυπηρέτηση των ιαφόρων Συσκευών του ΥΣ Σελίδα 87