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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πληροφορική I. "Λογισμικό (Software)" B. Φερεντίνος

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Χρονοπρογραμματισμός Εργαστηριακές Ασκήσεις

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

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

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

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

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

Λειτουργικά Συστήματα Ι. Κεφάλαιο 1 Βασικές Έννοιες Λειτουργικών Συστημάτων

3/11/2014. Windows Unix. Linux. Mac OS Solaris. J. Glenn Brookshear

ver Επεξεργαστές κειμένου, λογιστικών φύλλων, παρουσιάσεων Οδηγοί συσκευών (Device Drivers)

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

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

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

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

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

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

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

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

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

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

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

Δρομολόγηση σε σύστημα ενός επεξεργαστή

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

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

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

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

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

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

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

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

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

Εργαστηριακή Άσκηση. Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ

Ενότητα 6 (Κεφάλαιο 9) Χρονοδρομολόγηση

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

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

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

Χαράλαμπος Καραγιαννίδης

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

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

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

Εισαγωγή στους Η/Υ. Ενότητα 4: Λειτουργικά Συστήματα Ι. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

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

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

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

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

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

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

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

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

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

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

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

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

[4] Στόχοι. Λογισμικό. Υπολογιστικά συστήματα: Στρώματα

Μάθημα 1 ο ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

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

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

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

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

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

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

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

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

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

Transcript:

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα 3.1 Η εξέλιξη των λειτουργικών συστημάτων 3.2 Αρχιτεκτονική λειτουργικών συστημάτων 3.3 Συντονισμός των δραστηριοτήτων του υπολογιστή 3.4 Διαχείριση ανταγωνισμού μεταξύ διεργασιών 3.5 Ασφάλεια Οι διαφάνειες βασίζονται σε μεγάλο βαθμό σε αυτές που συνοδεύονται με το προτεινόμενο σύγγραμμα, καθώς και στις διαφάνειες προηγούμενων ετών του κ. Κουρκουμπέτη. 1

Λειτουργικό Σύστημα Ένα λειτουργικό σύστημα είναι λογισμικό που: Ελέγχει τη συνολική λειτουργία του υπολογιστή. επιτρέπει πολλά προγράμματα (διαδικασίες, processes) να μοιράζονται ταυτόχρονα τους πόρους του υπολογιστή Παρέχει τα μέσα για την αποθήκευση και ανάκτηση εγγράφων. Εκτελεί προγράμματα. Παρέχει τη διασύνδεση μέσω της οποίας ο χρήστης ζητάει την εκτέλεση του προγράμματος. 2

Παραδείγματα λειτουργικών συστημάτων Windows (Microsoc): PC Mac OS (Apple) Solaris (Sun Microsystems, τώρα Oracle) Linux UNIX: για μεγαλύτερα συστήματα υπολογιστών Για κινητά / PDAs iphone OS (Apple) Blackberry OS (Research in Mo}on) Windows Phone (Microsoc) Symbian OS (Nokia) Android (Google) 3

Βασικές αρχές Εργασία (job): ένα πρόγραμμα προς εκτέλεση Στα πρώτα συστήματα υπολογιστών, μια μηχανή ετοιμαζόταν ειδικά για την εκτέλεση μιας εργασίας Υπήρχε ένα άτομο (computer operator) για να φορτώνει τα δεδομένα στον Η/Υ και να κανονίζει την πρόσβαση διαφορετικών χρηστών 1 ος σταθμός: Ομαδική επεξεργασία (batch processing): εκτέλεση πολλών προγραμμάτων μαζί, χωρίς αλληλεπίδραση με τον χρήστη Οι εργασίες περιμένουν σε μια ουρά αναμονής (queue) First- In First- Out (FIFO) Στην πραγματικότητα, διαφορετικές εργασίες έχουν διαφορετικές προτεραιότητες (priori}es) 4

Λειτουργικό Σύστημα Ο υπολογιστής σαν σκέτο hardware έχει περιορισμένη χρησιμότητα τρέχει μόνο κώδικα μηχανής δυσκολία στο φόρτωμα και τρέξιμο κώδικα λεπτομέρειες Ι/Ο, interrupt handling,... δυνατότητα τρεξίματος πολλών προγραμμάτων Απαίτηση για αλληλεπίδραση με τον χρήστη Απαίτηση για επεξεργασία σε πραγματικό χρόνο 5

Ομαδική επεξεργασία (batch processing) 6

Βασικές Αρχές (2) Αρχικά, κάθε εργασία συνοδευόταν από μια λίστα από εντολές που περιέγραφαν την εκτέλεσή της Γλώσσα Ελέγχου Εργασίας (Job Control Language) Ο computer operator τις διάβαζε και τις εκτελούσε με το χέρι 2 ος σταθμός: αλληλοδραστική επεξεργασία (interac}ve processing) 3 ος σταθμός: Επεξεργασία σε πραγματικό χρόνο (real- }me processing) Υπάρχουν προθεσμίες (deadlines) μέσα στις οποίες πρέπει να εκτελεστεί η εργασία Μετά την προθεσμία είτε δεν έχει νόημα, είτε ο χρήστης είναι δυσαρεστημένος 7

Αλληλοδραστική επεξεργασία 8

Υποστήριξη πολλών χρηστών Εξυπηρέτηση πολλών χρηστών με διαμοιρασμό χρόνου (}me- sharing) Αρχή του πολυ- προγραμματισμού (mul}- programming) με την οποία υλοποιείται ο διαμοιρασμός χρόνου ο χρόνος χωρίζεται σε χρονικά διαστήματα Η εκτέλεση μιας εργασίας γίνεται σε συγκεκριμένο χρονικό διάστημα Στο πέρας του διαστήματος η εργασία που εκτελείται διακόπτεται για να εκτελεστεί μια άλλη στο επόμενο χρονικό διάστημα Λέγεται και πολλαπλή πρόσβαση με διαίρεση χρόνου (}me division mul}ple access, TDMA) Με το να εκτελείται μια εργασία σε κάθε χρονικό διάστημα, αν το χρονικό διάστημα είναι μικρό, δημιουργείται η «ψευδαίσθηση» ότι εκτελούνται πολλές εργασίες παράλληλα 9

2 σημαντικές έννοιες Εξισορρόπηση φόρτου (Load balancing): δυναμική ανάθεση εργασιών σε διαφορετικούς επεξεργαστές ώστε όλοι οι επεξεργαστές να χρησιμοποιούνται αποδοτικά Κλιμάκωση (Scaling): «Σπάσιμο» μιας εργασίας σε πολλές μικρότερες, ανάλογα με τον αριθμό των διαθέσιμων επεξεργαστών 10

Είδη λογισμικού Λογισμικό εφαρμογών (applica}on socware): Εκτελεί συγκεκριμένες εργασίες ανάλογα με τις ανάγκες του χρήστη Π.χ. Office, games, Λογισμικό συστήματος (system socware): Εκτελεί τις κοινές εργασίες των υπολογιστικών συστημάτων. Παρέχει υποδομή για το λογισμικό εφαρμογών. Βοηθητικό λογισμικό (u}lity socware): π.χ. Copy, format 11

Κατηγορίες λογισμικού 12

Στοιχεία λειτουργικού συστήματος (1) 13

Στοιχεία λειτουργικού συστήματος (2) Φλοιός ή κέλυφος (shell): το τμήμα μέσω του οποίου διεξάγεται η επικοινωνία του χρήστη με τη μηχανή. Γραφικό περιβάλλον διεπαφής με το χρήστη (Graphical User Interface, GUI) Διαχειριστής παραθύρων (windows manager) Ο Πυρήνας (kernel) περιέχει τα στοιχεία λογισμικού που εκτελούν τις βασικές λειτουργίες που απαιτούνται από το σύστημα Διαχειριστής αρχείων (file manager) Οδηγός συσκευών (device driver) Διαχειριστής μνήμης (memory manager) Χρονοπρογραμματιστής (scheduler) και διεκπεραιωτής (dispatcher): ο scheduler αποφασίζει ποιες διεργασίες θα εκτελεστούν, ο διεκπεραιωτής ελέγχει την ανάθεση χρόνου σε αυτές 14

Διαχειριστής αρχείων (file manager) Ο διαχειριστής αρχείων συντονίζει τη χρήση των λειτουργιών μαζικής αποθήκευσης του υπολογιστή (π.χ. Σκληρός δίσκος) και περιέχει πληροφορίες πρόσβασης για τα αρχεία Κατάλογοι (directories) ή φάκελοι (folders): ομάδες ή συγκεντρώσεις αρχείων που δημιουργούνται από το χρήστη. Ιεραρχική οργάνωση Διαδρομή (path): η θέση ενός αρχείου στην ιεραρχία του καταλόγου. Π.χ: animals/prehistoric/dinosaurs 15

Οδηγός συσκευών (device driver) Mονάδες λογισμικού για επικοινωνία με τους ελεγκτές (controllers) των περιφερειακών συσκευών ή απευθείας με αυτές Π.χ. Οδηγός (driver) για εκτυπωτή, για οθόνη, για σκληρό δίσκο Ο οδηγός είναι εξειδικευμένος και αναλαμβάνει την καθοδήγηση των περιφερειακών συσκευών 16

Σύστημα αρχείων Ανάγκη αποθήκευσης πληροφορίας προγράμματα, δεδομένα Ø χρήση δευτερεύουσας μνήμης (δίσκοι,...) Ø μονάδα αποθήκευσης: αρχείο Ø λειτουργίες: δημιουργία (create), διαγραφή (delete), προσπέλαση (open, close, read, write), προστασία (εξουσιοδοτημένη προσπέλαση) 17

Διαχειριστής μνήμης Ο διαχειριστής μνήμης συντονίζει τη χρήση της κύριας μνήμης Ιδιαίτερα σημαντικός στην περίπτωση πολλών χρηστών ή πολλών εργασιών (mul}- tasking) που εκτελούνται παράλληλα Πολλά προγράμματα και μπλοκ δεδομένων συνυπάρχουν στην κύρια μνήμη Εικονική μνήμη (virtual memory): προσομοίωση επιπλέον χώρου μνήμης Δημιουργείται εναλλάσσοντας μονάδες δεδομένων που καλούνται σελίδες, μεταξύ του πραγματικού χώρου κυρίας μνήμης και του μέσου αποθήκευσης Π.χ. Αν μια εργασία χρειάζεται 8GB μνήμης αλλά η κύρια μνήμη είναι 4GB. Ο διαχειριστής μνήμης κρατάει τα υπόλοιπα 4GB αποθηκευτικού χώρου στον σκληρό δίσκο! Αποθηκεύει εκεί τα 4GB δεδομένων (τα διαιρεί σε μονάδες, τις σελίδες (pages) Μεταφέρει τις σελίδες από και προς την μνήμη ώστε οι σελίδες που κάθε φορά χρειάζονται από την διαδικασία να βρίσκονται στην κύρια μνήμη Δημιουργείται η ψευδαίσθηση ότι υπάρχουν 8GB κύριας μνήμης 18

Εκχώρηση μνήμης Προστασία Διαχείριση μνήμης διαδικασία Α δεν μπορεί να προσπελάσει την μνήμη της διεργασίας Β Ταυτόχρονη Χρησιμοποίηση ελευθερία χρησιμοποίησης οποιοδήποτε τμήματος μνήμης από διεργασίες διεργασίες χρησιμοποιούν πολλά τεμάχια μνήμης μη συνεχή μεταξύ τους 19

Εκκίνηση O Program Counter στην CPU έχει σχεδιαστεί να ξεκινά από μια συγκεκριμένη διεύθυνση κάθε φορά που γίνεται εκκίνηση του υπολογιστή Θα μπορούσε το λειτουργικό σύστημα να βρίσκεται πάντα στην κύρια μνήμη Αλλά αυτή είναι πτητική (vola}le), χάνει τα δεδομένα της όταν ο Η/Υ σβήνει Λύση: ένα μικρό μέρος της μνήμης γίνεται εκ κατασκευής μη πτητικό (non- vola}le) Read- only memory (ROM) Boot loader: πρόγραμμα εγκατεστημένο στη ROM, εκτελείται 1 ο όταν ανοίγει ο υπολογιστής Οι εντολές στον boot loader κατευθύνουν την CPU να μεταφέρει το λειτουργικό σύστημα στην κυρίως μνήμη από τον σκληρό δίσκο (PC), ή από την μνήμη flash (smart- phones), ή από μια άλλη μηχανή (σε υπολογιστικά συστήματα σε πανεπιστήμια) Ο boot loader κατευθύνει την CPU να κάνει jump στην θέση μνήμης που βρίσκεται το λειτουργικό σύστημα 20

Διαδικασία εκκίνησης Η διαδικασία εκκίνησης (boot strapping ή boo}ng) εκτελείται κάθε φορά που ο υπολογιστής τίθεται σε λειτουργία. Μεταφέρει βασικά στοιχεία του λειτουργικού συστήματος από το μέσο αποθήκευσης (όπου είναι αποθηκευμένο) στην κύρια μνήμη. 21

Διεργασίες Πρόγραμμα: ένα στατικό σύνολο από εντολές Διεργασία (process): Η δυναμική δραστηριότητα της εκτέλεσης ενός προγράμματος Κατάσταση διεργασίας (process state): Τρέχουσα κατάσταση της δραστηριότητας, αλλάζει με το χρόνο Τρέχουσα θέση στο πρόγραμμα που εκτελείται καταγράφεται στο Μετρητή προγράμματος (program counter) Καταχωρητές γενικής χρήσης Σχετικό τμήμα της κύριας μνήμης Διαχείριση διεργασιών: μέσω του λειτουργικού συστήματος, ώστε: Κάθε διεργασία να έχει τους απαιτούμενους πόρους (θέσεις μνήμης, CPU, πρόσβαση σε περιφερειακές συσκευές, πρόσβαση σε αρχεία) που χρειάζεται Διεργασίες δεν παρεμβάλλονται και δεν εμποδίζουν η μια την άλλη Διεργασίες που χρειάζεται να ανταλλάζουν πληροφορία, ωα μπορούν να το κάνουν 22

Κατάσταση της διεργασίας Κατάσταση της διεργασίας = PC + εικόνα της μνήμης + καταχωρητών = πλήρης πληροφορία ώστε να μπορούμε να σταματήσουμε και να ξανασυνεχίσουμε την διεργασία PC 0001101... PC program data Διεργασία Α (τρέχει) Πίνακας διεργασιών Α Β C Διεργασία Β (σταµατηµένη) 23

Διαχείριση διεργασιών Χρονοπρογραμματιστής (scheduler): Διατηρεί στον πίνακα διεργασιών πληροφορίες για όλες τις διεργασίες. Έτοιμη (ready) διεργασία (δηλ. μπορεί να ξεκινήσει ή να συνεχίσει) ή σε αναμονή (wai}ng) (δηλ. περιμένει κάποιο εξωτερικό γεγονός να συμβεί, π.χ. μήνυμα από κάποια άλλη διεργασία, κτύπημα στο πληκτρολόγιο κλπ) Προτεραιότητες Εισάγει νέες διεργασίες στον πίνακα, βγάζει διεργασίες που ολοκληρώθηκαν Ο παραπάνω πίνακας διατηρείται στην μνήμη Η πληροφορία αυτή χρησιμοποιείται από τον Διεκπεραιωτή (Dispatcher) 24

Διαχείριση διεργασιών (2) Διεκπεραιωτής (ή Διανομέας, Dispatcher) Το στοιχείο του πυρήνα που εξασφαλίζει την πραγματοποίηση των προγραμματισμένων διεργασιών. Επιβλέπει την εκτέλεσή τους Δίνει ένα χρονο- μερίδιο (}me slice) σε μία διεργασία που είναι έτοιμη. Χρονο- μερίδιο: μερικά milli- secs ή micro- secs Εκτελεί την μεταγωγή (switching) διεργασιών όταν το χρονομερίδιο της τρέχουσας διεργασίας τελειώσει Λέγεται και θεματική μεταγωγή (Context- switching) Διακοπή (interrupt) είναι ένα σήμα που παράγεται στο τέλος του χρονο- μεριδίου Ο χειριστής διακοπών (interrupt handler) (επόμενη διαφάνεια) είναι μέρος του διεκπεραιωτή. 25

Χειριστής Διακοπών Κάθε φορά που ο dispatcher δίνει ένα slice σε μια διεργασία, ξεκινά ένας μετρητής που μετράει ανάποδα Με το τέλος του μετρητή παράγεται ένα σήμα διακοπής (interrupt) H CPU σταματά την διεργασία που εκτελεί τώρα Σώζει την τρέχουσα κατάσταση της διεργασίας Εκτελεί το πρόγραμμα «χειριστής διακοπών» (interrupt handler) που βρίσκεται στη μνήμη Μεταφέρει τον έλεγχο στον διεκπεραιωτή Ο διεκπεραιωτής επιλέγει κάποια διεργασία από τον πίνακα, ξεκινά τον μετρητή και επιτρέπει στην διεργασία να ξεκινήσει 26

Χρονομερισμός (}me- slicing) μεταξύ διεργασιών Χρονομερισμός: κάθε διεργασία τρέχει για ένα χρονομερίδιο (}me slice) 27

Πολυ- προγραμματισμός: χειρισμός Ι/Ο Process (διεργασία) A Process B Process C I/O I/O I/O συνολικός χρόνος εκτέλεσης Χωρίς πολυ- προγραμματισμό Θεματική αλλαγή (context switching) Με χρήση πολυ- προγραμματισμού περιμένει Μπορεί να μην έχουμε πάντοτε διεργασία έτοιμη να τρέξει 28

Σημασία Διαχείρισης Διεργασιών Διεργασία Α (διάρκεια 100 sec, έτοιμη τη στιγμή 0) Διεργασία Β (διάρκεια 10 sec, έτοιμη τη στιγμή 0+dt) Αν: Χρόνος ολοκλήρωσης Α: στα 100 sec Χρόνος ολοκλήρωσης Β: στα 110 sec Μέσος χρόνος ολοκλήρωση: (100+110)/2 = 105 sec. Αν εκτελώ κάθε μια εναλλάξ για 5 sec Χρόνος ολοκλήρωσης Α: στα 110 sec Χρόνος ολοκλήρωσης Β: στα 20 sec Μέσος χρόνος ολοκλήρωσης: (110+20)/2 = 65 sec. 29

Σημασία Διαχείρισης Διεργασιών (2) Περισσότερες από 1 μονάδες εκτέλεσης: Παραλληλισμός Πολλοί ταμίες (δηλ. εξυπηρετητές) εξυπηρετούν πολλούς πελάτες, έναν πελάτη την φορά καθένας Πόσο γρηγορότερη γίνεται η εκτέλεση τελικα; Ιδανικά Ν φορές πιο γρήγορα, αν έχουμε Ν παράλληλες μονάδες εκτέλεσης Υπάρχουν διάφορες επιβαρύνσεις Π.χ. συγκρίνετε το χρόνο που θα γινόταν μια άσκηση αν Α. Δουλεύατε μόνος/η σας Β. Με άλλο ένα άτομο Γ. Με μια ομάδα 10 ατόμων 30

Χρονοπρογραμματισμός Στόχος η καλή διαχείριση των πόρων του συστήματος (μνήμη, CPU, δίσκος) Πρόβλημα: Ποιος είναι ο καλύτερος τρόπος να τρέξεις m διεργασίες σε n επεξεργαστές; Ελαχιστοποίηση χρόνου απόκρισης / χρόνου ολοκλήρωσης ο χρόνος από τότε που υποβλήθηκε μια εργασία μέχρι την ολοκλήρωσή της π.χ. ο χρόνος από το κλικ του ποντικιού μέχρι το κλείσιμο του παραθύρου Μεγιστοποίηση ρυθμού διεκπεραίωσης (ρυθμοαπόδοση, throughput) Ρυθμός με τον οποίο διεκπεραιώνονται εργασίες (εργασίες / μονάδα χρόνου) Εκμετάλλευση των πόρων του συστήματος με τον καλύτερο δυνατό τρόπο Ελαχιστοποίηση των «έμμεσων» προβλημάτων (context switching, κλπ) 31

Χρονοπρογραμματισμός FCFS ή FIFO FCFS = First- come First- serve FIFO = First- in First- out Εκτέλεση διεργασιών με την σειρά άφιξής τους Πλεονέκτημα: απλή μέθοδος Μειονέκτημα: Η απόδοση εξαρτάται από την σειρά άφιξης Όχι καλό (όχι δίκαιο) για τις εργασίες που φτάνουν αργότερα Όχι καλό αν μια μεγάλη έργασία φτάνει νωρίς 32

Παράδειγμα FIFO Διεργασία Α διάρκειας 100sec, Β διάρκειας 2 sec, Γ διάρκειας 3 sec Η, εναλλακτικά, θεωρείστε υπολογιστικούς κύκλους Φτάνουν σχεδόν ταυτόχρονα (η Α λίγο πριν την Β, και η Β λίγο πριν την Γ) Αν φτάνουν με σειρά Β,Γ,Α: Πρόβλημα αν μια υπολογιστικά μεγάλη διεργασία φτάσει πρώτη (μπλοκάρει όλες τις άλλες που φτάνουν μετά από αυτήν) 33

Παράδειγμα FIFO (2) Διάγραμμα Gan : Να υπολογιστεί ο μέσος χρόνος αναμονής με την παρακάτω διάρκεια (burst }me) και σειρά άφιξης στην ουρά P1: 20, P2: 12, P3: 8, P4: 16, P5: 4 P1 P2 P3 P4 P5 20 32 40 56 60 Χρόνοι αναμονής: P1: 0 P2: 20 P3: 32 P4: 40 P5: 56 Μέσος χρόνος αναμονής: 29.6 34

Χρονοδρομολόγηση με Εναλλαγές (Round Robin, RR) Το προηγούμενο πρόβλημα απαλοίφεται αν οι υπολογιστικά μεγάλες διεργασίες δεν μονοπωλούν τον επεξεργαστή Ρολόι Εκτέλεση κάθε διεργασίας από την CPU για μια περίοδο ρολογιού Έπειτα, προχώρησε στην επόμενη διεργασία Συνέχισε, μέχρι ο γύρος να ολοκληρωθεί για όλες τις διεργασίες Δίκαιος τρόπος: Ο RR χρησιμοποιείται συχνά με διάφορες παραλλαγές Καλός μέσος χρόνος ολοκλήρωσης για εργασίες αρκετά διαφορετικού μεγέθους μεταξύ τους Για διεργασίες παρόμοιου μεγέθους π.χ. Α=100, Β=100 Μέσος χρόνος ολοκλήρωσης; Τι θα έκανε η FIFO; 35

RR: Άλλα ζητήματα Μεγάλη περίοδος: μεγαλύτερη περίπτωση οι διεργασίες να τερματίσουν πριν τελειώσει η περίοδος που εκτελούνται Καταναλώνεται χρόνος άσκοπα Μικρή περίοδος: καλύτερος μέσος χρόνος αναμονής, αλλά μεγάλη επιβάρυνση Υπάρχει συνεχές context- switching Επιθυμούμε περίοδο αρκετά μεγαλύτερη από το χρόνο μεταγωγής Συνήθης τιμή για την περίοδο: 100 msec Κόστος μεταγωγής: < 1% 36

Παράδειγμα Round Robin completes completes completes completes completes P1 P2 P3 P4 P5 P1 P2 P3 P4 P1 P2 P4 P1 P4 P1 4 8 12 16 20 24 28 32 36 40 44 48 Διάρκεια της διεργασίας στην CPU και σειρά στην ουρά: P1: 20, P2: 12, P3: 8, P4: 16, P5: 4 Περίοδος RR = 4 Διάγραμμα Gan chart, υπολογισμός μέσου χρόνου αναμονής Συνολική αναμονή: P1: 16 + 12 + 8 + 4 = 40 P2: 4 + 16 + 12 = 32 P3: 8 + 16 = 24 P4: 12 + 16 + 8 = 36 P5: 16 Μέσος όρος: 29.6, ίσος με προηγούμενο παράδειγμα 52 56 60 Σημ: ο χρόνος αναμονής για μια διεργασία είναι ο χρόνος μέχρι να ξεκινήσει συν ο συνολικός χρόνος που μεσολαβεί μεταξύ 2 διαδοχικών εκτελέσεων της σε RR 37

Παράδειγμα με context- switching P1 P2 P3 P1 P1 P1 P1 P1 4 5 9 10 14 15 19 20 24 25 29 30 34 35 39 Mέσος χρόνος αναμονής για RR (round robin) με: Διεργασίες: P1: 24, P2: 4, P3: 4 με αυτή τη σειρά άφιξης Περίοδος = 4, χρόνος context- switching = 1 P1: 0 + 11 + 5 = 16 P2: 5 P3:10 Μέσος χρόνος αναμονής: 10.33 38

Χρονοδρομολόγηση με Προτεραιότητες Ανάθεση προτεραιότητας σε κάθε διεργασία Ιεράρχηση διεργασιών Κάθε φορά επιλέγεται η έτοιμη (ready) διεργασία με τη μεγαλύτερη προτεραιότητα Διεργασίες ίδιας προτεραιότητας εκτελούνται με RR Στατικές ή δυναμικές προτεραιότητες Προτεραιότητες ανάλογα με: Σημασία της διεργασίας Χρόνος από την τελευταία εκτέλεση Αξιοποίηση συσκευών Ι/Ο: Υψηλή προτεραιότητα σε διεργασίες που εκτελούν πολύ Ι/Ο 39

Προτεραιότητες Ανάθεση αριθμού προτεραιότητας 0 η υψηλότερη προτεραιότητα (ή η χαμηλότερη) FIFO: όλες οι διεργασίες έχουν ίδιες προτεραιότητες Shortest Job First, SJF (επόμενη διαφάνεια): η προτεραιότητα είναι αντίστροφα ανάλογη με τη διάρκεια της διεργασίας Οι προτεραιότητες μπορεί να είναι: Εσωτερικές: Π.χ. Σύμφωνα με παράγοντες σχετικούς με το Λ/Σ (απαιτήσεις σε μνήμη) Εξωτερικές, π.χ. Σπουδαιότητα για τον χρήστη Στατικές: σταθερές για όλη τη διάρκεια της διεργασίας Δυναμικές: Αλλάζουν κατά τη διάρκεια της διεργασίας Π.χ. ως συνάρτηση της χρήσης CPU ή του χρόνου αναμονής (λύση για το πρόβλημα του μπλοκαρίσματος) 40

Πρώτα η Συντομότερη Διεργασία (Shortest Job First, SJF) Εκτέλεση της συντομότερης διεργασίας Η, ισοδύναμα, shortest- }me- to- comple}on- first (πρώτα η διεργασία με το λιγότερο υπολειπόμενο χρόνο εκτέλεσης) Βέλτιστη ως προς τον συνολικό (και τον μέσο) χρόνο αναμονής: Δηλ. αυτή είναι η πολιτική που ελαχιστοποιεί το συνολικό (άρα και τον μέσο) χρόνο αναμονής) Απόδειξη: Βάζοντας τη σύντομη διεργασία πριν την μεγάλη ευνοούμε τη σύντομη περισσότερο από ότι επιβαρύνουμε τη μεγάλη Αλλάζοντας τη σειρά εκτέλεσης, πάντα αυξάνεται ο συνολικός χρόνος αναμονής 41

SJF: Shortest Job First Διεργασίες και διάρκειες (burst }mes): P1: 20, P2: 12, P3: 8, P4: 16, P5: 4 P5 P3 P2 P4 P1 4 12 24 40 60 Χρόνοι αναμονής: P1: 40 P2: 12 P3: 4 P4: 24 P5: 0 Μέσος χρόνος αναμονής: 16 42

Προεκτοπισιμότητα και Μη Έστω Διεργασίες Α,Β,Γ,... με διαφορετική προτεραιότητα Προεκτοπίσιμη (pre- emp}ve) πολιτική χρονοδρομολόγησης με προτεραιότητες: Αν εκτελείται μια διεργασία x και φτάσει μια διεργασία y, η x διακόπτεται αν η y είναι μεγαλύτερης προτεραιότητας από την x Η εκτέλεση της y συνεχίζεται μέχρι την ολοκλήρωσή της, εφόσον δεν φτάσει άλλη διεργασία μεγαλύτερης προτεραιότητας από την y Όταν ολοκληρωθεί η y, συνεχίζεται η εκτέλεση της x Δηλ. σε κάθε χρονική στιγμή εκτελείται η μεγαλύτερης προτεραιότητας εργασία από αυτές που είναι έτοιμες προς εκτέλεση 43

Προεκτοπισιμότητα και Μη (2) Μη προεκτοπίσιμη (non pre- emp}ve) πολιτική χρονοδρομολόγησης με προτεραιότητες: Αν εκτελείται μια διεργασία x και φτάσει μια διεργασία y (οποιασδήποτε προτεραιότητας) η x δεν διακόπτεται σε καμιά περίπτωση Υπάρχει μια ουρά για κάθε προτεραιότητα Η y μπαίνει στην ουρά της και περιμένει Η y θα εκτελεστεί όταν ολοκληρωθεί η x Αν ολοκληρωθούν όλες οι διεργασίες, εκτελείται η πρώτη διεργασία από την oυρά πιο υψηλής προτεραιότητας 44

Ποιες πολιτικές χρονοδρομολόγησης μπορεί να είναι προεκτοπίσιμες; (Preemp}ve) FΙFO Μη προεκτοπίσιμη (non- preemp}ve) SJF (Shortest Job First) Pre- emp}ve ή μη Επιλογή όταν μια νέα διεργασία φτάνει Με προτεραιότητες: Pre- emp}ve ή μη Επιλογή όταν φτάνει μια μεγαλύτερης προτεραιότητας διεργασία 45

Σύνοψη ζητημάτων λειτουργικού συστήματος Απαραίτητες λειτουργίες: Χρονοπρογραμματισμός (scheduling) διεργασιών Διεκπεραίωση (Dispatching) : εναλλάσσει την CPU μεταξύ διαδικασιών Χειρισμός Διακοπών (Interrupt handling): ερμηνεύει σήματα διακοπής, και ενεργοποιεί τις αντίστοιχες ρουτίνες (interrupts) Δυνατότητα ανάκτησης στο μέλλον της κατάστασης της διεργασίας που διακόπτεται τώρα Εκχώρηση πόρων: μνήμη, Ι/Ο, CPU 46

Διεκπεραιωτής (dispatcher) process = διεργασία = πρόγραμμα + περιβάλλον (μνήμη + καταχωρητές) process switching: εναλλαγή της CPU μεταξύ διαφορετικών διεργασιών επιλογή από διεκπεραιωτή READY ουρά αρχή READY RUNNING τέλος RUNNING τέλος slice τέλος Ι/Ο, πόροι ελευθερώ- θηκαν BLOCKED αρχή Ι/Ο, ζητάει πόρους που δεν υπάρχουν την στιγμή αυτή BLOCKED διεργασίες καταστάσεις μιας διεργασίας 47

Νήματα (threads) Νήμα (thread) είναι η μικρότερη δυνατή ακολουθία εντολών που μπορεί ένας χρονοπρογραμματιστής (scheduler) ενός λειτουργικού συστήματος να διαχειριστεί ανεξάρτητα Δηλ. είναι μια στοιχειώδης διεργασία Πολλά νήματα μπορεί να συνυπάρχουν σε μια διεργασία και μπορούν να μοιράζονται πόρους του υπολογιστή Π.χ. Μνήμη Πολυνηματισμός (mul}- threading) Πολλά νήματα εκτελούν τις ίδιες εντολές Η CPU μεταπηδάει (switch) μεταξύ διαφορετικών νημάτων, όπως μεταξύ διαφορετικών διεργασιών 48

Ανταγωνισμός μεταξύ διεργασιών Ανταγωνισμός διεργασιών για πόρους (resources) Πρόσβαση σε αρχεία Μνήμη CPU Χώρος στον πίνακα διεργασιών (scheduling) Χρονο- μερίδια (dispatcher) Σηματοφορέας (semaphore): σημαία (flag) ελέγχου που λέει εάν κάποιος πόρος είναι τώρα σε χρήση Flag: Clear (ελεύθερη), set (σε χρήση). Π.χ. εκτυπωτής Μπορεί κάποια διεργασία A να διακοπεί αφού έχει ανιχνευτεί clear αλλά πριν γίνει set (μεσολαβεί αρκετός χρόνος για να ανακτηθεί η σημαία από την μνήμη, να αλλάξει από την CPU, και να αποθηκευτεί πίσω στην μνήμη) Στο επόμενο slice, μια άλλη διεργασία Β ξεκινά, ζητά και αυτή τον εκτυπωτή, της παρέχεται πρόσβαση γιατί το flag είναι clear à σύγκρουση, όταν η Α επανέλθει στο επόμενο slice Λύση: Ο έλεγχος και η ενεργοποίηση flag γίνονται ταυτόχρονα (test & set flag instruc}on) σε μια εντολή 49

Ανταγωνισμός μεταξύ διεργασιών (2) Κρίσιμη περιοχή (critcal region): ακολουθία εντολών που πρέπει να εκτελείται από μόνο μία διεργασία τη φορά. Συνήθως προστατεύεται από σηματοφορέα. Αμοιβαίος αποκλεισμός (mutual exclusion): εκτέλεση μιας κρίσιμης περιοχής από μία μόνο διεργασία τη φορά. Για να μπει σε μια κρίσιμη περιοχή, μια διεργασία πρέπει να βρει το σηματοφορέα clear και να τον θέσει set πριν μπει Όταν βγει από την κρίσιμη περιοχή, πρέπει να τον θέσει clear Αν μια διεργασία δει το σηματοφορέα set, περιμένει μέχρι αυτός να γίνει clear 50

Αδιέξοδο Αδιέξοδο (deadlock): κατάσταση κατά την οποία η εκτέλεση δύο ή περισσοτέρων διεργασιών εμποδίζεται από το να συνεχιστεί. Παράδειγμα 1: μια διεργασία Α έχει πρόσβαση στον εκτυπωτή και περιμένει για πρόσβαση στο CD player, μια διεργασία Β το ανάποδο Παράδειγμα 2: ένα σύνολο από διεργασίες πρέπει να δημιουργήσουν υπο- διεργασίες, αλλά δεν υπάρχει χώρος στον πίνακα διεργασιών Συνθήκες που οδηγούν σε αδιέξοδο (όλες μαζί): 1. Ανταγωνισμός για πόρους που δεν μπορούν να διαμοιραστούν 2. Τουλάχιστον δύο πόροι χρειάζονται και από τις δύο διεργασίες. 3. Ένας παραχωρημένος πόρος δεν μπορεί να ανακτηθεί βίαια. 51

Παρομοίωση σύγκρουσης 52

Παροχέτευση (spooling) Μια συνήθης λύση για τα αδιέξοδα είναι το σκότωμα (killing) της διεργασίας Στοχεύει στην απαλοιφή της 3 ης συνθήκης (διαφανεια 51) Η παροχέτευση είναι μία τεχνική για την αποδοχή της πρόσβασης πολλών διεργασιών σε έναν κοινό πόρο. Παροχέτευση (SPOOL- ing): Simultaneous Peripheral Opera}ons On- line Αναβάλει την αιτούμενη διεργασία για μία προσφορότερη στιγμή στο μέλλον Π.χ. Αν 2 διεργασίες ζητούν πρόσβαση στον οδηγό του εκτυπωτή, το λειτουργικό σύστημα κατευθύνει μια από τις δυο στο να αποθηκεύσουν τα δεδομένα στον σκληρό δίσκο και αργότερα όταν ο εκτυπωτής είναι ελεύθερος να τα μεταφέρει στον οδηγό του εκτυπωτή Κάνει ένα μη κοινόχρηστο πόρο να φαίνεται κοινόχρηστος. 53

Χειρισμός Ι/Ο Συναλλαγές Ι/Ο: - σύγχρονες (η διαδικασία χρειάζεται άμεσα το αποτέλεσμα για να συνεχίσει) - ασύγχρονες (το αποτέλεσμα δεν επηρεάζει την διαδικασία) τέλος Ι/Ο READY BLOCKED RUNNING αρχή Ι/Ο (σύγχρονου) διαδικασία spooler ready next printer διαδικασία A ουρά αιτήσεων Διαδικασία Α: δεν μπλοκάρει γιατί μεταθέτει στον spooler την εκτέλεση του ασύγχρονου Ι/Ο 54

Ασφάλεια από εξωτερικές επιθέσεις Ασφάλεια με την έννοια της προστασίας των πόρων του υπολογιστή από μη εξουσιοδοτημένους χρήστες Λογαριασμοί (accounts) χρηστών Πιο συνηθισμένη προστασία: απαιτεί password και όνομα χρήστη. Πρόβλημα αποτελεί η κλοπή του password. Πρόβλημα αποτελεί επίσης η αυτοματοποιημένη πρόβλεψη προφανών κωδικών Τρόποι αντιμετώπισης: Αναφορά όλων των εσφαλμένων προβλέψεων. Ενημέρωση του χρήστη για τη σύνδεση του στο σύστημα. 55

Ασφάλεια Λογισμικό ελέγχου (audi}ng socware): καταγραφή και ανάλυση των δραστηριοτήτων εντός του συστήματος Π.χ. Μια σειρά από αποτυχημένες προσπάθειες για login Π.χ. Έλεγχος με το αν μια διεργασία εμπίπτει στο σύνολο αυτών που εκτελούνται με βάση το προφίλ του χρήστη Λογισμικό όσφρησης (sniffing socware): τρέχει στο παρασκήνιο, καταγράφει δραστηριότητες του χρήστη Χρησιμοποιείται από κάποιον εισβολέα στο σύστημα 56

Ασφάλεια από εσωτερικές απειλές Εισβολέας (intruder): μη εξουσιοδοτημένος χρήστης, εκτός συστήματος Κακοήθης (malicious) χρήστης: εξουσιοδοτημένος Τα λειτουργικά συστήματα αποτρέπουν την παράνομη πρόσβαση στους πόρους ενός Η/Υ, η οποία θα μπορούσε να έχει καταστροφικές συνέπειες για το σύστημα. Χρησιμοποιούν: Διαφορετική μνήμη για διαφορετικές διεργασίες. Υπάρχουν δυο επίπεδα λειτουργίας CPU (προνομιούχoς privileged, και μη προνομιούχoς) Στο 1 ο, η CPU εκτελεί όλες τις εντολές, στο 2 ο ένα περιορισμένο υποσύνολο Οι προνομιούχες εντολές (αυτές που εκτελούνται στην 1 η περίπτωση) επιτρέπονται μόνο στον πυρήνα Π.χ εντολές αλλαγής των pointers στη μνήμη 57