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

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

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

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

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

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

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

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

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

Κεφάλαιο 4 Διεργασίες Β Τάξη ΕΠΑΛ

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

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

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

Μάθημα 6 ο. Χρονοδρομολόγηση (Scheduling)

Αμοιβαίος αποκλεισμός

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

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

2.4 Κλασσικά Προβλήματα IPC

Εισαγωγή στην Επιστήμη των Υπολογιστών

Αδιέξοδα (Deadlocks)

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

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

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

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

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

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

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

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

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

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

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

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

J. Glenn Brookshear. Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

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

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

Κατανεμημένα Συστήματα

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης

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

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

Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης

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

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου

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

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

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

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

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

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

ΤΗΛΕΦΩΝΗΤΗΣ AG-GD20 GSM & PSTN

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

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

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

Copyright 2017 HP Development Company, L.P.

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

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

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση

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

Εισαγωγή στην επιστήµη των υπολογιστών. Υπολογιστές και Δεδοµένα Κεφάλαιο 3ο Αναπαράσταση Αριθµών

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

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

Εισαγωγή στην επιστήµη των υπολογιστών. Αναπαράσταση Αριθµών

Θοδωρής Ανδρόνικος Τμήμα Πληροφορικής, Ιόνιο Πανεπιστήμιο

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 12 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα ΜηχανικώνΗ/Υ, Τηλεπικοινωνιών και ικτύων

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

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

Συσκευές δείκτη και πληκτρολόγιο Οδηγός χρήσης

Εγχειρίδιο χρήσης του Άβακα

Συσκευές κατάδειξης και πληκτρολόγιο Οδηγός χρήσης

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

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

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

Display keypad. Εγχειρίδιο χρήστη 11/09-01 PC

Οδηγίες Προσωπικoύ Τηλεφωνητή COSMOTE

Τα αλφαριθμητικά αποτελούνται από γράμματα, λέξεις ή άλλους χαρακτήρες (π.χ. μήλο, Ιούλιος 2009, You win!).

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

Πίνακας περιεχομένων. Γενικές υποδείξεις. Περιγραφή. Πληροφορίες. Λειτουργία

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

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

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

Συγχρονισµός: Αδιέξοδο & Παρατεταµένη Στέρηση

Κεφάλαιο 2.3: Ρυθμίσεις των Windows

Συσκευές δείκτη και πληκτρολόγιο Οδηγός χρήσης

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

Εξωτερικές συσκευές. Οδηγός χρήσης

Ξεκινήστε από αυτό το σηµείο

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 1 : Λειτουργικά συστήματα. Δρ.

ροµολόγηση Επεξεργαστή

ηµιουργία αντιγράφων ασφαλείας και επαναφορά Οδηγός χρήσης

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

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

Asset Management Software Client Module. Οδηγός χρήσης

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

Συσκευές κατάδειξης και πληκτρολόγιο Οδηγός χρήσης

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

Transcript:

Κεφάλαιο 3: Λειτουργικά Συστήµατα B Μέρος Συντονισµός Δραστηριοτήτων Υπολογιστή Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Εισαγωγή Σήµερα θα περιγράψουµε πως ένα λειτουργικό σύστηµα συντονίζει την εκτέλεση Λογισµικού εφαρµογών Βοηθητικού Λογισµικού Και των δικών του εσωτερικών µονάδων 3-2

Διεργασία, Εργασία, Πρόγραµµα Πρόγραµµα: ένα στατικό σύνολο εντολών Εργασία (job): ένα πρόγραµµα που έχει επιλεγεί για εκτέλεση, µέχρι να ολοκληρωθεί η εκτέλεσή του Μπορεί να βρίσκεται στο δίσκο περιµένοντας να φορτωθεί στη µνήµη ή στη µνήµη περιµένοντας να εκτελεστεί από την ΚΜΕ ή περιµένοντας κάποιο συµβάν Διεργασία (process): ένα πρόγραµµα υπό εκτέλεση, δηλ. µια εργασία που είναι στη µνήµη Έχει επιλεγεί µεταξύ άλλων εργασιών που περιµένουν κι έχει φορτωθεί στη µνήµη Είναι µια δυναµική δραστηριότητα, της οποίας οι ιδιότητες µεταβάλλονται µε την πάροδο του χρόνου. Σε µια συγκεκριµένη στιγµή µπορεί να εκτελείται ή να περιµένει να της παραχωρηθει χρόνος της ΚΜΕ 3-3

3-4

Πρόγραµµα Πρόγραµµα είναι ένα στατικό σύνολο εντολών που Είναι ανενεργές Έχουν γραφτεί από έναν προγραµµατιστή Έχουν αποθηκευτεί σ ένα δίσκο, ταινία κλπ. Ένα πρόγραµµα µπορεί να µετατραπεί σε εργασία, χωρίς αυτό να είναι απαραίτητο 3-5

Εργασία (job) Είναι ένα πρόγραµµα που έχει επιλεγεί για εκτέλεση. Παραµένει ως εργασία µέχρι να ολοκληρωθεί η εκτέλεσή του, οπότε και µετατρέπεται πάλι σε πρόγραµµα Μια εργασία µπορεί: Να εκτελεστεί, µπορεί και όχι Να βρίσκεται στο δίσκο περιµένοντας να φορτωθεί στη µνήµη Να βρίσκεται στη µνήµη περιµένοντας να εκτελεστεί από την ΚΜΕ Να βρίσκεται στη µνήµη ενώ εκτελείται από την ΚΜΕ Να βρίσκεται στη µνήµη περιµένοντας κάποιο συµβάν Ε/Ε Σε όλες τις παραπάνω καταστάσεις, το πρόγραµµα είναι Εργασία Όταν µια Εργασία ολοκληρώσει την εκτέλεσή της (είτε κανονικά ή ανώµαλα) γίνεται ξανά πρόγραµµα και αφαιρείται από τη µνήµη, και υπάρχει µόνο στο δίσκο. Το λειτουργικό σύστηµα δεν ελέγχει πλέον το πρόγραµµα. Κάθε Εργασία είναι πρόγραµµα, αλλά κάθε πρόγραµµα δεν είναι Εργασία 3-6

Διεργασία (Process) Είναι ένα Πρόγραµµα υπό εκτέλεση, δηλ. µια Εργασία που είναι στη µνήµη Έχει επιλεγεί µεταξύ άλλων εργασιών που αναµένουν κι έχει φορτωθεί στη µνήµη Όσο η Εργασία βρίσκεται στη µνήµη αποτελεί Διεργασία Η Διεργασία µπορεί να εκτελείται ή να περιµένει να της παραχωρηθεί χρόνος της ΚΜΕ ή να περιµένει Ε/Ε Κάθε Διεργασία είναι Εργασία, αλλά κάθε Εργασία δεν είναι και Διεργασία 3-7

Κατάσταση Διεργασίας (process state) Κάθε διεργασία έχει µια συγκεκριµένη κατάσταση που περιλαµβάνει Τρέχουσα κατάσταση της δραστηριότητας Μια εικόνα του υπολογιστή τη συγκεκριµένη χρονική στιγµή Υπάρχουν διαφορετικές εικόνες σε διαφορετικές χρονικές στιγµές Η κατάσταση διεργασίας περιγράφεται από το περιεχόµενο Του Μετρητή προγράµµατος Των Καταχωρητών γενικής χρήσης Των Σχετιζόµενων κελιών της κύριας µνήµης 3-8

Διαχείριση Διεργασιών (1/10) Σ ένα χρονοµεριστικό/πολυδιεργασικό περιβάλλον, οι διεργασίες ανταγωνίζονται µεταξύ τους για τους πόρους του υπολογιστή Περιφερειακές συσκευές, χώρος στην κύρια µνήµη, πρόσβαση σε αρχεία και πρόσβαση στην ΚΜΕ Το λειτουργικό σύστηµα διαχειρίζεται τις διεργασίες έτσι ώστε να έχουν τους πόρους που χρειάζονται να µην αλληλοεπηρεάζονται αν είναι ανεξάρτητες να ανταλλάσσουν πληροφορίες µεταξύ τους αν χρειάζεται Οι εργασίες που σχετίζονται µε το συντονισµό της εκτέλεσης των διεργασιών γίνεται στο εσωτερικό του λειτουργικού συστήµατος από Τον χρονοπρογραµµατιστή (scheduler) Τον διεκπεραιωτή (dispatcher) 3-9

Διαχείριση Διεργασιών (2/10) Χρονοπρογραµµατιστής Διατηρεί κατάλογο διεργασιών που είναι παρούσες στο υπολογιστικό σύστηµα Προσθέτει νέες διεργασίες στον κατάλογο Διαγράφει τις ολοκληρωµένες διεργασίες Ο χρονοπρογραµµατιστής διατηρεί στην κύρια µνήµη Πίνακα διεργασιών Για κάθε διεργασία διατηρεί πληροφορίες σχετικές µε: την περιοχή µνήµης της διεργασίας (την παίρνει από τον διαχειριστή µνήµης), την προτεραιότητα διεργασίας το αν είναι έτοιµη προς εκτέλεση ή όχι 3-10

Διαχείριση Διεργασιών (3/10) Διεργασία έτοιµη Μπορεί να συνεχιστεί η πρόοδός της Διεργασία υπό εκτέλεση Εκτελείται από την ΚΜΕ Διεργασία σε αναµονή Περιµένει κάποιο εξωτερικό συµβάν, π.χ. µήνυµα από άλλη διεργασία, ολοκλήρωση λειτουργίας σε µέσο αποθήκευσης κλπ. 3-11

Καταστάσεις Διεργασίας 3-12

3-13

Διαχείριση Διεργασιών (4/10) Διεκπεραιωτής: Επιβλέπει την εκτέλεση των προγραµµατισµένων διεργασιών Ελέγχει την εκχώρηση χρονοµεριδίων στις διεργασίες του πίνακα διεργασιών Σ ένα χρονοµεριστικό/πολυδιεργασιακό σύστηµα αυτό γινεται µε τη βοήθεια πολυπρογραµµατισµού Ο χρόνος διαιρείται σε χρονοµερίδια (time slices) που είναι <50 χιλιοστά του δευτερολέπτου Η ΚΜΕ εναλλάσσει τις διεργασίες ανά χρονοµερίδιο Η διαδικασία εναλλαγής ονοµάζεται µεταγωγή διεργασιών (process transfer) ή θεµατική µεταγωγή (context switch) 3-14

Διαχείριση Διεργασιών (5/10) Κάθε φορά που ο διεκπεραιωτής παραχωρεί ένα χρονοµερίδιο σε µια διεργασία, τίθεται σε λειτουργία ένα κύκλωµα χρονοµέτρησης Το τέλος ενός χρονοµεριδίου σηµατοδοτείται µε την παραγωγή ενός σήµατος που λέγεται διακοπή (interrupt). Η ΚΜΕ όταν λάβει ένα σήµα διακοπής Ολοκληρώνει τον τρέχοντα κύκλο µηχανής Αποθηκεύει τη θέση της στην τρέχουσα διεργασία Ξεκινάει τον χειριστή διακοπών (interrupt handler) που βρίσκεται σε µια καθορισµένη θέση της κύριας µνήµης Αποτελεί τµήµα του διεκπεραιωτή και περιγράφει τι πρέπει να κάνει ο διεκπεραιωτής στο σήµα διακοπής 3-15

Διαχείριση Διεργασιών (6/10) Έτσι, το σήµα διακοπής εκτοπίζει την τρέχουσα διεργασία και µεταφέρει τον έλεγχο πίσω στον διεκπεραιωτή Ο διεκπεραιωτής Επιλέγει µια έτοιµη διεργασία από τον πίνακα διεργασιών µε τη µεγαλύτερη προτεραιότητα (όπως καθορίζονται από τον χρονοπρογραµµατιστή) Επανεκκινεί το κύκλωµα χρονοµέτρησης Επιτρέπει στη διεργασία να χρησιµοποιήσει το χρονοµερίδιό της 3-16

Μεταγωγή Διεργασιών 3-17

Διαχείριση Διεργασιών (7/10) 3-18

Διαχείριση Διεργασιών (8/10) Σ ένα πολυπρογραµµατιστικό σύστηµα, µέγιστος παράγοντας επιτυχίας είναι να σταµατάει µια διεργασία και να την ξεκινάει πάλι αργότερα, αναδηµιουργώντας το περιβάλλον που υπήρχε πριν τη διακοπή, δηλ: Την τιµή του µετρητή προγράµµατος Τα περιεχόµενα των καταχωρητών Τα περιεχόµενα των σχετικών κελιών µνήµης 3-19

Διαχείριση Διεργασιών (9/10) Οι ΚΜΕ για πολυπρογραµµατιστικά συστήµατα αποθηκεύουν αυτές τις πληροφορίες ως µέρος της αντίδρασής τους στη διακοπή Διαθέτουν εντολές σε γλώσσα µηχανής για επαναφόρτωση µιας ήδη αποθηκευµένης κατάστασης Απλοποιούν την εργασία του διεκπεραιωτή στη µεταγωγή διεργασιών Αποτελούν παράδειγµα του τρόπου µε τον οποίον ο σχεδιασµός των σύγχρονων ΚΜΕ επηρεάζεται από τις ανάγκες των σύγχρονων λειτουργικών συστηµάτων 3-20

Διαχείριση Διεργασιών (10/10) Σ ένα πολυπρογραµµατιστικό σύστηµα, η συνολική αποδοτικότητα ενός υπολογιστή αυξάνεται, παρά την επιβάρυνση λόγω της εναλλαγής µεταξύ των διεργασιών Γιατί? Η επιβάρυνση από τη διαδικασία εναλλαγής µεταξύ των διεργασιών αντισταθµίζεται από το γεγονός ότι ενώ εκτελείται αίτηση Ε/Ε από µια διεργασία, προχωρούν οι άλλες διεργασίες => το σύνολο των διεργασιών θα ολοκληρωθεί σε λιγότερο χρόνο απ ότι αν εκτελούνταν η µία µετά την άλλη Αν µια διεργασία εκτελέσει µια αίτηση Ε/Ε, ο χρονοπρογραµµατιστής θα ενηµερώσει τον πίνακα διεργασιών ο διεκπεραιωτής θα σταµατήσει να της παραχωρεί χρονοµερίδια Όταν ολοκληρωθεί η Ε/Ε ο χρονοπρογραµµατιστής θα ενηµερώσει πάλι τον πίνακα διεργασιών ότι η διεργασία είναι έτοιµη ώστε να µπορεί να ανταγωνιστεί µε τις υπόλοιπες για χρονοµερίδια 3-21

Σύστηµα Διακοπών ενός Υπολογιστή Σηµαντικό εργαλείο για το συντονισµό των ενεργειών ενός υπολογιστή µε το περιβάλλον του, π.χ. πάτηµα πλήκτρου ποντικιού ή πληκτρολογίου Πως λειτουργεί παράγεται ένα σήµα διακοπής εκτελείται η ρουτίνα διακοπής που αναγκάζει την ΚΜΕ να διακόψει την τρέχουσα δραστηριότητα και να ασχοληθεί µε την αιτία της διακοπής Έχει πολλές εφαρµογές Η ρουτίνα διακοπής είναι διαφορετική ανάλογα µε την εφαρµογή Η διακοπή µε την υψηλότερη προτεραιότητα συνήθως σχετίζεται µε κάποιο πρόβληµα στην τροφοδοσία ρεύµατος 3-22

Χειρισµός Ανταγωνισµού Διεργασιών για Πόρους (1/2) Μια σηµαντική εργασία του λειτουργικού είναι η κατανοµή πόρων σε διεργασίες Πόροι Περιφερειακές συσκευές Εσωτερικές Λειτουργίες 3-23

Χειρισµός Ανταγωνισµού Διεργασιών για Πόρους (2/2) Διαχειριστής Αρχείων Κατανέµει την πρόσβαση σε αρχεία καθώς και το χώρο στα µέσα αποθήκευσης για κατασκευή νέων αρχείων Διαχειριστής Μνήµης Κατανέµει χώρο µνήµης Χρονοπρογραµµατιστής Κατανέµει χώρο στον πίνακα διεργασιών Διεκπεραιωτής Κατανέµει χρονοµερίδια Η εργασία της κατανοµής πόρων δεν είναι απλή Ένα σύγχρονο λειτουργικό σύστηµα έχει αλγόριθµους για τη διαχείριση όλων των προβληµάτων που µπορεί να παρουσιαστούν 3-24

Σηµαία και Σηµατοφορέας (1/4) Μια διεργασία θέλει να εκτυπώσει κάτι Ζητάει από το λειτουργικό πρόσβαση στον οδηγό συσκευής του εκτυπωτή Σηµαία, αντιστοιχεί σε ένα µπιτ µνήµης. Σηµαία ανενεργή -> τιµή 0 ή Σηµαία ενεργή -> τιµή 1 Το λειτουργικό ελέγχει την τιµή της σηµαίας Εκτυπωτής όχι διαθέσιµος (σηµαία 1): Το λειτουργικό θα απορρίψει την αίτηση και θα θέσει τη διεργασία σε αναµονή Εκτυπωτής διαθέσιµος (σηµαία 0): Το λειτουργικό θα δεχτεί την αίτηση και θα επιτρέψει τη συνέχεια της διεργασίας θα κάνει σηµαία -> 1 Όταν τελειώσει, το λειτουργικό παραχωρεί τον εκτυπωτή σε µια διεργασία που περιµένει ή απενεργοποιεί τη σηµαία 3-25

Σηµαία και Σηµατοφορέας (2/4) Μπορεί να παρουσιαστούν προβλήµατα Χρειάζονται πολλές εντολές µηχανής: ανάκτηση τιµής σηµαίας από την κύρια µνήµη, χρήση από την ΚΜΕ, αποθήκευση πίσω στη µνήµη Π.χ. η σηµαία ανακτάται και είναι ανενεργή -> εκτυπωτής διαθέσιµος Η εργασία διακόπτεται και ξενικάει το χρονοµερίδιο µιάς άλλης διεργασίας Η νέα διεργασία ζητάει κι αυτή τον εκτυπωτή Η σηµαία εξακολουθεί να είναι ανενεργή και το λειτουργικό επιτρέπει στη δεύτερη διεργασία να χρησιµοποιήσει τον εκτυπωτή Η πρώτη εργασία ξανα ξεκινά από εκεί που είχε σταµατήσει -> αποκτά κι αυτή πρόσβαση στον ίδιο εκτυπωτή 3-26

Σηµαία και Σηµατοφορέας (3/4) ΛΥΣΗ στο προηγούµενο πρόβληµα: Η εργασία του ελέγχου και της ενεργοποίησης της σηµαίας να ολοκληρώνεται χωρίς διακοπή Τρόποι υλοποίησης Χρήση εντολών (σε γλώσσα µηχανής) για απενεργοποίηση και ενεργοποίηση διακοπών Χρήση εντολής ελέγχου και ενεργοποίησης (test-andset) που διαθέτουν πολλές γλώσσες µηχανής: test-and-set -> η εντολή αυτή λέει στην ΚΜΕ να ανακτήσει την τιµή της σηµαίας, να καταγράψει τη ληφθείσα τιµή, και µετά να ορίσει τη νέα τιµή της. Όλα γίνονται µε µια µόνο εντολή µηχανής Η ΚΜΕ ολοκληρώνει πάντα µια εντολή πριν αναγνωρίσει κάποια διακοπή, άρα η εντολή test-and-set θα ολοκληρωθεί πριν την αναγνώριση οποιασδήποτε διακοπής 3-27

Σηµαία και Σηµατοφορέας (4/4) Σηµατοφορέας Σηµαία που έχει υλοποιηθεί όπως περιγράφτηκε πριν Αντίστοιχα µε τα σιδηροδροµικά σήµατα που ελέγχουν την πρόσβαση στα τµήµατα των τροχιών Κρίσιµη Περιοχή: η ακολουθία των εντολών που πρέπει να εκτελούνται από µια µόνο διεργασία τη φορά Αντιστοιχεί στο τµήµα των τροχιών ενός σιδηροδρόµου όπου µπορεί να βρίσκεται µόνο ένα τραίνο τη φορά Αµοιβαίος αποκλεισµός: η εκτέλεση της κρίσιµης περιοχής από µια διεργασία τη φορά Χρήση Σηµατοφορέα: Συνήθης τρόπος επίτευξης αποκλεισµού σε µια κρίσιµη περιοχή Μια διεργασία αποκτά πρόσβαση στην κρίσιµη περιοχή αν βρει τον σηµατοφορέα ανενεργό και τον ενεργοποιήσει πριν µπει στην κρίσιµη περιοχή. Όταν βγαίνει, τον απενεργοποιεί 3-28

Αδιέξοδο (1/4) Πρόβληµα στην κατανοµή πόρων όπου οι διεργασίες µπλοκάρουν η µία την άλλη επειδή η κάθε µιά περιµένει πόρους που έχουν δεσµευτεί στην άλλη Παραδείγµατα Μια διεργασία έχει πρόσβαση στον εκτυπωτή και περιµένει πρόσβαση στη µονάδα CD ενώ µια άλλη το αντίστροφο Οι διεργασίες δηµιουργούν νέες διεργασίες (forking) για να εκτελέσουν υποεργασίες. Αν ο χρονοπρογραµµατιστής δεν έχει χώρο στον πίνακα διεργασιών και κάθε διεργασία πρέπει να δηµιουργήσει µια πρόσθετη διεργασία για να ολοκληρωθεί, τότε καµµία δεν µπορεί να προχωρήσει 3-29

Αδιέξοδο (2/4) 3-30

Αδιέξοδο (3/4) 3-31

Αδιέξοδο (4/4) Τα αδιέξοδα υποβιβάζουν την απόδοση του συστήµατος Συνθήκες που απαιτούνται για αδιέξοδο 1. Ανταγωνισµός για πόρους που δεν µπορούν να είναι κοινόχρηστοι (non exclusive), δηλ. δεν µπορούν να χρησιµοποιούνται από πάνω από ένα χρήστη την ίδια χρονική στιγµή 2. Η ζήτηση των πόρων γίνεται τµηµατικά 3. Εφόσον παραχωρηθεί ένας πόρος, δεν µπορεί να ανακτηθεί µε βίαιο τρόπο. 3-32

Αντιµετώπιση Αδιεξόδου Με απαλοιφή µιάς από τις παραπάνω τρεις συνθήκες Μέθοδοι Αποτροπής Αδιεξόδου αντιµετωπίζουν τις περιπτώσεις i και ii. Μέθοδοι Ανίχνευσης και Αντιµετώπισης Αδιεξόδου για την περίπτωση iii. 3-33

Μέθοδοι Αποτροπής Αδιεξόδου Υποχρεωτικά κάθε διεργασία ζητά όλους τους πόρους εξ αρχής ή Μετατροπή µη κοινόχρηστων πόρων σε κοινόχρηστους, π.χ. Με την τεχνική Spooling (αναλύεται αµέσως µετά) Παραχώρηση διαφορετικών δικαιωµάτων πρόσβασης σε ένα αρχείο Αντιµετωπίζουν τις περιπτώσεις i και ii i. Ανταγωνισµός για πόρους που δεν µπορούν να είναι κοινόχρηστοι (δηλ. δεν µπορούν να χρησιµοποιούνται από πάνω από ένα χρήστη την ίδια χρονική στιγµή) ii. Η ζήτηση των πόρων γίνεται τµηµατικά 3-34

Παροχέτευση (Spooling) Τεχνική φύλαξης δεδοµένων γιά έξοδο σε µια µεταγενέστερη αλλά πιο βολική στιγµή Π.χ. Διάφορες διεργασίες ζητούν τη χρήση ενός εκτυπωτή Το λειτουργικό κάνει αποδεκτή την αίτηση της διεργασίας αλλά δεν τη συνδέει µε τον οδηγό συσκευής του εκτυπωτή αν δεν είναι διαθέσιµος. Τη συνδέει µ έναν άλλο οδηγό που αντί να στείλει τα δεδοµένα για εκτύπωση στον εκτυπωτή, τα αποθηκεύει Όταν γίνει διαθέσιµος ο εκτυπωτή, το λειτουργικό µεταφέρει τα δεδοµένα προς εκτύπωση από το µέσο αποθήκευσης στον εκτυπωτή Ένας µη κοινόχρηστος πόρος φαίνεται ως κοινόχρηστος Κάθε διεργασία εκτελείται κανονικά, έχοντας την ψευδαίσθηση ότι έχει πρόσβαση στον εκτυπωτή 3-35

Μέθοδοι Ανίχνευσης και Αντιµετώπισης Αδιεξόδου Για την περίπτωση iii. Εφόσον παραχωρηθεί ένας πόρος, δεν µπορεί να ανακτηθεί µε βίαιο τρόπο. το αδιέξοδο θεωρείται σπάνιο και δεν γίνεται προσπάθεια αποφυγής τους. Ανιχνεύεται όταν παρουσιάζεται και Διορθώνεται µε βίαιη ανάκτηση κάποιων από τους δεσµευµένους πόρους (π.χ. Kill σε περίπτωση γεµάτου πίνακα διεργασιών) 3-36

Λιµοκτονία Το αντίθετο του αδιεξόδου Μια διεργασία δεν µπορεί να εκτελεστεί εξαιτίας των πάρα πολλών περιορισµών στους πόρους 3-37

Λιµοκτονία (2/2) 3-38

Δείπνο φιλοσόφων (1/2) Πέντε φιλόσοφοι κάθονται γύρω από τραπέζι. Ο καθένας έχει µπροστά του ένα πιάτο ρύζι Ο κάθε φιλόσοφος χρειάζεται δύο πιρούνια για να να φάει Ανάµεσα σε κάθε ζεύγος γειτονικών πιάτων βρίσκεται ένα πιρούνι Η ζωή ενός φιλοσόφου αποτελείται από εναλλασσόµενες περιόδους φαγητού και σκέψης Όποτε πεινάει, προσπαθεί να πάρει το δεξιό και το αριστερό πιρούνι (ένα τη φορά), µε τυχαία σειρά Αν καταφέρει να τα αποκτήσει και τα δύο, τρώει για κάποιο διάστηµα και µετά αφήνει τα πιρούνια στο τραπέζι και συνεχίζει να σκέφτεται 3-39

Δείπνο φιλοσόφων (2/2) Αφού ο κάθε φιλόσοφος χρειάζεται και τα δύο ξυλάκια για να φάει ένα πιάτο ρύζι, θα µπορούσε να λιµοκτονήσει αν δεν είναι και τα δύο ξυλάκια διαθέσιµα την ίδια στιγµή 3-40

Καλό σας απόγευµα! 3-41