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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Λειτουργικά συστήματα

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

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

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

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

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

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

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

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 5

Λογισμικό - Προγράμματα

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

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

ENOTHTA 5 XPONO POMOΛOΓHΣH

Transcript:

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

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

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

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

1 ος σταθμός: Ομαδική επεξεργασία (batch processing) 5

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

2 ος σταθμός: αλληλοδραστική επεξεργασία (interactive processing) 7

Δυο ακόμη σταθμοί 3 ος σταθμός: Επεξεργασία σε πραγματικό χρόνο (real- time processing) Προθεσμίες (deadlines) μέσα στις οποίες πρέπει να εκτελεστεί η εργασία Μετά την προθεσμία είτε δεν έχει νόημα το αποτέλεσμα της εργασίας, είτε ο χρήστης είναι δυσαρεστημένος 4 ο σταθμός: Εξυπηρέτηση πολλών χρηστών με διαμοιρασμό χρόνου (time- sharing) Αρχή πολυ- προγραμματισμού (multi- programming), με την οποία υλοποιείται ο διαμοιρασμός χρόνου ο χρόνος χωρίζεται σε χρονικά διαστήματα Η εκτέλεση μιας εργασίας γίνεται σε συγκεκριμένο χρονικό διάστημα Με το πέρας του διαστήματος η εργασία που εκτελείται διακόπτεται για να εκτελεστεί μια άλλη στο επόμενο χρονικό διάστημα 8

TDMA Πολλαπλή πρόσβαση με διαίρεση χρόνου (time division multiple access, TDMA) Με το να εκτελείται μια εργασία σε κάθε χρονικό διάστημα, αν το χρονικό διάστημα είναι μικρό, δημιουργείται η «ψευδαίσθηση» ότι εκτελούνται πολλές εργασίες παράλληλα 9

Είδη λογισμικού Λογισμικό εφαρμογών (application software): Εκτελεί συγκεκριμένες εργασίες ανάλογα με τις ανάγκες του χρήστη Π.χ. Office, games, Λογισμικό συστήματος (system software): Εκτελεί τις κοινές εργασίες των υπολογιστικών συστημάτων Παρέχει υποδομή για το λογισμικό εφαρμογών Βοηθητικό λογισμικό (utility software): π.χ. Copy, format 10

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

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

Δομή λειτουργικού συστήματος (2) 13

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σημασία Διαχείρισης Διεργασιών Διεργασία Α (διάρκεια 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. 28

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

Χρονοπρογραμματισμός Στόχος: καλή διαχείριση των πόρων του συστήματος (μνήμη, CPU, δίσκος) Ελαχιστοποίηση χρόνου απόκρισης / χρόνου ολοκλήρωσης χρόνος από τότε που υποβλήθηκε μια εργασία μέχρι την ολοκλήρωσή της π.χ. ο χρόνος από το κλικ του ποντικιού μέχρι το κλείσιμο του παραθύρου Μεγιστοποίηση ρυθμού διεκπεραίωσης (ρυθμοαπόδοση, throughput) Ρυθμός με τον οποίο διεκπεραιώνονται εργασίες (εργασίες / μονάδα χρόνου) Εκμετάλλευση των πόρων του συστήματος με τον καλύτερο δυνατό τρόπο 30

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

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

Παράδειγμα FIFO (2) Διάγραμμα Gantt: Να υπολογιστεί ο μέσος χρόνος αναμονής με την παρακάτω διάρκεια (burst time) και σειρά άφιξης στην ουρά 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 33

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

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

Παράδειγμα 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 Διάγραμμα Gantt, υπολογισμός μέσου χρόνου αναμονής Συνολική αναμονή: 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 36

Παράδειγμα με 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 37

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

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

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

SJF: Shortest Job First Διεργασίες και διάρκειες (burst times): 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 41

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

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

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

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

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

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

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

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

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

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

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