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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

ΠΛΗ10 Κεφάλαιο 2. ΠΛΗ10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.1: Bασική Δομή του Υπολογιστή

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

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

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

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

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

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στα Λειτουργικά συστήματα Ι. Καθηγητής Κώστας Αναγνωστόπουλος

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

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

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Το μάθημα. Λειτουργικά Συστήματα Πραγματικού Χρόνου Βασικές Έννοιες 6. Ενσωματωμένα Συστήματα (embedded systems) Παραδείγματα

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

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

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

Αδιέξοδα (Deadlocks)

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

Χρονοδρομολογητής Κυκλικής Επαναφοράς

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

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

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

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

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή

Τεχνολογία Πολυμέσων. Ενότητα # 3: Συστήματα πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

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

Οδηγίες Προγραμματισμού αναβαθμισμένου Προγραμματιστή RAIN DIAL

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

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

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

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

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

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

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

ΗΧ-GD30. Οδηγίες χρήσης και προγραμματισμού. Συσκευή τηλεφωνητή μέσω GSM και PSTN. Εγκατάσταση

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

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

Xerox ColorQube 8700 / 8900 Πίνακας ελέγχου

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

Transcript:

Κεφάλαιο 3: Λειτουργικά Συστήματα (από το βιβλίο του Brookshear) B Μέρος Συντονισμός Δραστηριοτήτων Υπολογιστή

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

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

3-4

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

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

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

Καταστάσεις Διεργασίας ΕΚΤΕΛΕΙΤΑΙ ΕΤΟΙΜΗ για εκτέλεση ΣΕ ΑΝΑΜΟΝΗ εισαγωγή ΕΤΟΙΜΗ δρομολόγηση διακοπή, τέλος χρόνου ΕΚΤΕΛΕΙΤΑΙ τέλος Ε/Ε λειτουργία Ε/Ε ΣΕ ΑΝΑΜΟΝΗ

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

Μπλοκ Ελέγχου Διεργασίας (Process Control Block, PCB) Το λειτουργικό σύστημα διατηρεί για κάθε διεργασία µια δομή δεδοµένων που ονομάζεται Μπλοκ Ελέγχου Διεργασίας (Process Control Block, PCB). Κάθε διεργασία έχει το δικό της ξεχωριστό PCB που συνήθως περιέχει τις ακόλουθες πληροφορίες: Περιεχόµενα µετρητή προγράµµατος και άλλων καταχωρητών. Κατάσταση διεργασίας. Διάφορες παραµέτρους χρονοδροµολόγησης. Ταυτότητα διεργασίας και άλλα στοιχεία ταυτοποίησης της διεργασίας. Χρόνος εκκίνησης της διεργασίας, χρόνος χρήσης της ΚΜΕ και άλλα λογιστικά στοιχεία. Δείκτες που καταγράφουν τις διευθύνσεις µνήµης στις οποίες βρίσκεται ο κώδικας και τα δεδοµένα της διεργασίας. Δείκτες που καταγράφουν τους πόρους που έχει στην κατοχή της η διεργασία (π.χ., ανοιχτά αρχεία, συσκευές Ε/Ε, κλπ). 1/12/201 6

Το PCB μιας διεργασίας Κατάσταση διεργασίας Στοιχεία ταυτοποίησης Περιεχόµενα µετρητή προγράµµατος και άλλων καταχωρητών Παράµετροι χρονοδροµολόγησης Χρήσιµες διευθύνσεις και όρια µνήµης Λίστα ανοιχτών αρχείων Χρησιµοποιούµενοι πόροι Λογιστικά στοιχεία και άλλες χρήσιµες πληροφορίες

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

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

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

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

3-16

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

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

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

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

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

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

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

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

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

Τύποι Διακοπών Διακοπές κλήσεις επόπτη Πραγματοποιούνται κάθε φορά που µια διεργασία κάνει µια κλήση συστήματος (για την εκτέλεση μιας προνομιακής εντολής από το ΛΣ, π.χ. απόκτηση περισσότερης μνήμης). Διακοπές ελέγχου προγράμματος Πραγματοποιούνται κάθε φορά που η εκτέλεση ενός προγράμματος οδηγεί σε λάθη, όπως π.χ., στην περίπτωση διαίρεσης µε το μηδέν. Διακοπές από το ρολόι του συστήματος, διακοπές ελέγχου του υλικού του συστήματος, κ.α. Διακοπές Ε/Ε προκαλούνται από τις συσκευές Ε/Ε, όταν µια λειτουργία Ε/Ε περατωθεί, όταν συμβεί ένα λάθος, όταν ένα περιφερειακό είναι έτοιμο για λειτουργία, κλπ. Διακοπές από τον χρήστη µε την πίεση κάποιων πλήκτρων, π.χ., ποντίκι, πληκτρολόγιο, restart

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λιμοκτονία (2/2) 3-42

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

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

ΑΣΦΑΛΕΙΑ ΚΑΙ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ 3-45

Προστασία από Εξωτερικές Επιθέσεις Απαγόρευση πρόσβασης των πόρων του Η/Υ από μη εξουσιοδοτημένους χρήστες Μέσω λογαριασμών πρόσβασης από τον Super User / Administrator Μέσω λογισμικού παρακολούθησης Εντοπίζει ασυνήθιστη δραστηριότητα και λογισμικό ανίχνευσης Αμέλεια των χρηστών Εύκολα μαντέψιμοι κωδικοί πρόσβασης που τους μοιράζονται με άλλους και δεν τους αλλάζουν συχνά Μεταφορά συσκευών off line από μηχάνημα σε μηχάνημα Εγκατάσταση λογισμικού αμφίβολης προέλευσης 3-46

Προστασία από Εσωτερικές Επιθέσεις Καταχωρητές Ειδικής Χρήσης Εντολές με διαφορετικά Επίπεδα Προνομίων Κάθε φορά που ξενικά η ΚΜΕ, βρίσκεται σε προνομιούχα κατάσταση Όταν ξεκινά το χρονομερίδιο μιάς διεργασίας η ΚΜΕ περνά σε μη προνομιούχα κατάσταση => το λειτουργικό θα ειδοποιηθεί αν η διεργασία προσπαθήσει να εκτελέσει μια μη προνομιούχα εντολή => θα διατηρήσει την ακεραιότητα του υπολογιστικού συστήματος Η έρευνα για Ασφάλεια συνεχίζεται 3-47

Ερωτήσεις; 3-48