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

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

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

● 3.1 Η εξέλιξη των λειτουργικών συστημάτων

● 3.2 Αρχιτεκτονική λειτουργικών συστημάτων

● 3.3 Συντονισμός των δραστηριοτήτων του υπολογιστή

● 3.4 Χειρισμός ανταγωνισμού μεταξύ διεργασίων

● 3.5 Ασφάλεια

Οι διαφάνειες βασίζονται σε μεγάλο βαθμό σε αυτές που συνοδεύονται με το προτεινόμενο σύγγραμμα, καθώς και στις διαφάνειες προηγούμενων ετών του κ. Κουρκουμπέτη. 1

Page 2: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Λειτουργικό Σύστημα ● Ένα λειτουργικό σύστημα είναι το λογισμικό που:

– Ελέγχει τη συνολική λειτουργία του υπολογιστή. • επιτρέπει πολλά προγράμματα (διαδικασίες, processes) να

μοιράζονται ταυτόχρονα τους πόρους του υπολογιστή

– Παρέχει τα μέσα για την αποθήκευση και την ανάκτηση εγγράφων.

– Εκτελεί προγράμματα. – Παρέχει τη διασύνδεση μέσω της οποίας ο χρήστης ζητάει

την εκτέλεση του προγράμματος.

2

Page 3: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Παραδείγματα λειτουργικών συστημάτων • 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

Page 4: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Βασικές αρχές • Εργασία (job): ένα πρόγραμμα προς εκτέλεση

– Στα πρώτα συστήματα υπολογιστών, μια μηχανή ετοιμαζόταν ειδικά για την εκτέλεση μιας εργασίας

– Υπήρχε ένα άτομο (computer operator) για να φορτώνει τα δεδομένα στον Η/Υ και να κανονίζει την πρόσβαση διαφορετικών χρηστών

• 1ος σταθμός: Ομαδική επεξεργασία (batch processing): εκτέλεση πολλών προγραμμάτων μαζί χωρίς αλληλεπίδραση με τον χρήστη – Οι εργασίες περιμένουν σε μια ουρά αναμονής (queue) – First-In First-Out (FIFO) – Στην πραγματικότητα, διαφορετικές εργασίες έχουν

διαφορετικές προτεραιότητες (priorities)

4

Page 5: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Λειτουργικό Σύστημα • Ο υπολογιστής σαν ‘σκέτο’ hardware έχει

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

5

Page 6: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

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

6

Page 7: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Βασικές Αρχές (2) • Αρχικά, κάθε εργασία συνοδευόταν από μια λίστα από

εντολές που περιέγραφαν την εκτέλεσή της • Γλώσσα Ελέγχου Εργασίας (Job Control Language) • Ο computer operator τις διάβαζε και τις εκτελούσε με το χέρι • 2ος σταθμός: αλληλεπιδραστική επεξεργασία (interactive

processing) • 3ος σταθμός: Επεξεργασία σε πραγματικό χρόνο (real-time

processing) – Υπάρχουν προθεσμίες (deadlines) μέσα στις οποίες πρέπει να

εκτελεστεί η εργασία – Μετά την προθεσμία δεν έχει νόημα, είτε ο χρήστης είναι

δυσαρεστημένος

7

Page 8: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

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

8

Page 9: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Υποστήριξη πολλών χρηστών • Εξυπηρέτηση πολλών χρηστών με διαμοιρασμό χρόνου (time-

sharing) • Αρχή του πολυ-προγραμματισμού (multi-programming) με την

οποία υλοποιείται ο διαμοιρασμός χρόνου – ο χρόνος χωρίζεται σε χρονικά διαστήματα – Η εκτέλεση μιας εργασίας γίνεται σε ένα συγκεκριμένο χρονικό διάστημα – Στο πέρας του διαστήματος η εργασία που εκτελείται διακόπτεται για να

εκτελεστεί μια άλλη στο επόμενο χρονικό διάστημα

• Λέγεται και πολλαπλή πρόσβαση με διαίρεση χρόνου (time division multiple access, TDMA)

9

Page 10: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Υποστήριξη πολλών χρηστών (2)

• Με το να εκτελείται μια εργασία σε κάθε χρονικό διάστημα, αν το χρονικό διάστημα είναι μικρό, δημιουργείται η «ψευδαίσθηση» ότι εκτελούνται πολλές εργασίες παράλληλα

• Διαμοιρασμός χρόνου: Συνήθως αναφέρεται στην εξυπηρέτηση πολλών χρηστών με τον τρόπο που αναφέραμε

• Multi-tasking (πολυ-εκτέλεση): εκτέλεση πολλών εργασιών ενός χρήστη ταυτόχρονα

10

Page 11: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

2 σημαντικές έννοιες

• Εξισορρόπηση φόρτου (load balancing): δυναμική ανάθεση εργασιών σε διαφορετικούς επεξεργαστές ώστε όλοι οι επεξεργαστές να χρησιμοποιούνται αποδοτικά

• Scaling: «Σπάσιμο» μιας εργασίας σε πολλές

μικρότερες, ανάλογα με τον αριθμό των διαθέσιμων επεξεργαστών

11

Page 12: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Είδη λογισμικού ● Λογισμικό εφαρμογών (application software):

– Εκτελεί συγκεκριμένες εργασίες ανάλογα με τις ανάγκες του χρήστη, με σκοπό την αξιοποίηση του υπολογιστή.

● Λογισμικό συστήματος (system software): – Εκτελεί τις κοινές εργασίες των υπολογιστικών

συστημάτων. – Παρέχει την υποδομή για το λογισμικό

εφαρμογών. – Βοηθητικό λογισμικό (utility software)

12

Page 13: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

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

13

Page 14: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

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

14

Page 15: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Στοιχεία λειτουργικού συστήματος (2) ● Φλοιός ή κέλυφος (shell): το τμήμα μέσω του οποίου διεξάγεται η

επικοινωνία του χρήστη με τη μηχανή. – Γραφικό περιβάλλον διεπαφής με το χρήστη (Graphical User

Interface, GUI) • Διαχειριστής παραθύρων (windows manager)

● Ο Πυρήνας (kernel) περιέχει τα στοιχεία λογισμικού που εκτελούν τις βασικές λειτουργίες που απαιτούνται από το σύστημα – Διαχειριστής αρχείων (file manager) – Οδηγός συσκευών (device driver) – Διαχειριστής μνήμης (memory manager) – Χρονοπρογραμματιστής (scheduler) και διεκπεραιωτής (dispatcher): ο

scheduler αποφασίζει ποιες διεργασίες θα εκτελεστούν, ο διεκπεραιωτής ελέγχει την ανάθεση χρόνου σε αυτές

15

Page 16: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Διαχειριστής αρχείων (file manager)

● Ο διαχειριστής αρχείων συντονίζει τη χρήση των λειτουργιών μαζικής αποθήκευσης του υπολογιστή. (π.χ. Σκληρός δίσκος) και περιέχει πληροφορίες πρόσβασης για τα αρχεία – Κατάλογοι (directories) ή φάκελοι (folders): ομάδες ή

συγκεντρώσεις αρχείων που δημιουργούνται από το χρήστη.

• Ιεραρχική οργάνωση – Διαδρομή (path): η θέση ενός αρχείου στην ιεραρχία του

καταλόγου. Π.χ: animals/prehistoric/dinosaurs – Περιγραφέας αρχείων: οι απαραίτητες πληροφορίες για

την απόκτηση πρόσβασης σε ένα ανοικτό αρχείο.

16

Page 17: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Οδηγός συσκευών (device driver)

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

δίσκο

• Ο οδηγός είναι εξειδικευμένος και αναλαμβάνει την

καθοδήγηση των περιφερειακών συσκευών

17

Page 18: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Σύστημα αρχείων

• Ανάγκη αποθήκευσης πληροφορίας – μεγάλη χρονική διάρκεια αποθήκευσης – εύκολη πρόσβαση – προγράμματα, δεδομένα χρήση δευτερεύουσας μνήμης (δίσκοι,...) μονάδα αποθήκευσης: αρχείο λειτουργίες: δημιουργία (create), διαγραφή (delete),

προσπέλαση (open, close, read, write), προστασία (εξουσιοδοτημένη προσπέλαση)

18

Page 19: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Διαχειριστής μνήμης ● Ο διαχειριστής μνήμης συντονίζει τη χρήση της κύριας μνήμης

● Ιδιαίτερα σημαντικός στην περίπτωση πολλών χρηστών ή πολλών εργασιών (multi-tasking) που εκτελούνται παράλληλα

● Πολλά προγράμματα και μπλοκ δεδομένων συνυπάρχουν στην κύρια μνήμη ● Εικονική μνήμη (virtual memory): προσομοίωση επιπλέον χώρου

μνήμης – Δημιουργείται εναλλάσσοντας μονάδες δεδομένων που καλούνται σελίδες,

μεταξύ του πραγματικού χώρου κυρίας μνήμης και του μέσου αποθήκευσης – Π.χ. Αν μια εργασία χρειάζεται 8GB μνήμης αλλά η κύρια μνήμη είναι 4GB. – Ο διαχειριστής μνήμης κρατάει τα υπόλοιπα 4GB αποθηκευτικού χώρου στον

σκληρό δίσκο ! – Αποθηκεύει εκεί τα 4GB δεδομένων (τα διαιρεί σε μονάδες, τις σελίδες

(pages) – Μεταφέρει τις σελίδες από και προς την μνήμη ώστε οι σελίδες που κάθε

φορά χρειάζονται από την διαδικασία να βρίσκονται στην κύρια μνήμη – Δημιουργείται η ψευδαίσθηση ότι υπάρχουν 8GB κύριας μνήμης

19

Page 20: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Διαχείριση μνήμης

• Εκχώρηση μνήμης • Προστασία

– διαδικασία Α δεν μπορεί να προσπελάσει την μνήμη της διεργασίας Β

• Χρησιμοποίηση – ελευθερία χρησιμοποίησης οποιοδήποτε τμήματος μνήμης

από διεργασίες – διεργασίες χρησιμοποιούν πολλά τεμάχια μνήμης μη συνεχή

μεταξύ τους – δυνατότητα μεταφοράς μιας διεργασίας μέσα στην μνήμη

20

Page 21: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Εκκίνηση • 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 στην θέση μνήμης που

βρίσκεται το λειτουργικό σύστημα

21

Page 22: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Διαδικασία εκκίνησης ● Η διαδικασία εκκίνησης (boot strapping ή booting) εκτελείται κάθε

φορά που ο υπολογιστής τίθεται σε λειτουργία. ● Μεταφέρει βασικά στοιχεία του λειτουργικού συστήματος από το

μέσο αποθήκευσης (όπου είναι αποθηκευμένο) στην κύρια μνήμη.

22

Page 23: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

3-23

Διεργασίες • Πρόγραμμα: ένα στατικό σύνολο από εντολές • Διεργασία (process): Η δραστηριότητα της εκτέλεσης ενός

προγράμματος • Κατάσταση διεργασίας (process state): Τρέχουσα κατάσταση της

δραστηριότητας, αλλάζει με το χρόνο – Μετρητής προγράμματος (program counter) – Καταχωρητές γενικής χρήσης – Σχετιζόμενο τμήμα της κύριας μνήμης

• Διαχείριση διεργασιών μέσω του λειτουργικού συστήματος – Κάθε διεργασία έχει τους απαιτούμενους πόρους (θέσεις μνήμης, CPU,

πρόσβαση σε περιφερειακές συσκευές, πρόσβαση σε αρχεία) που χρειάζεται – Διεργασίες δεν παρεμβάλλονται και δεν εμποδίζουν η μια την άλλη – Διεργασίες που χρειάζεται να ανταλλάζουν πληροφορία, μπορούν να το

κάνουν

Page 24: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Κατάσταση της διεργασίας Κατάσταση της διεργασίας = PC + εικόνα της μνήμης + καταχωρητών = πλήρης πληροφορία για να σταματήσουμε και να ξανασυνεχίσουμε την διεργασία

Διεργασία Α (τρέχει)

Διεργασία Β (σταματημένη)

PC

program

data

PC

PC 0001101...

Α Β C

Πίνακας διεργασιών

24

Page 25: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Διαχείριση διεργασιών ● Χρονοπρογραμματιστής (scheduler):

– Διατηρεί στον πίνακα διεργασιών ένα σύνολο πληροφοριών για όλες τις διεργασίες. ● Έτοιμη (ready) διεργασία (δηλ. Μπορεί να ξεκινήσει ή να συνεχίσει)

ή σε αναμονή (waiting) (δηλ. Περιμένει κάποιο εξωτερικό γεγονός να συμβεί, π.χ. Μήνυμα από κάποια άλλη διεργασία, κτύπημα στο πληκτρολόγιο κλπ)

● Προτεραιότητες ● Εισάγει νέες διεργασίες στον πίνακα, βγάζει διεργασίες που

ολοκληρώθηκαν ● Ο παραπάνω πίνακας διατηρείται στην μνήμη

● Η πληροφορία αυτή χρησιμοποιείται από τον Διεκπεραιωτή (Dispatcher)

25

Page 26: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Διαχείριση διεργασιών (2) ● Διεκπεραιωτής (ή Διανομέας, Dispatcher)

– Το στοιχείο του πυρήνα που εξασφαλίζει την πραγματοποίηση των προγραμματισμένων διεργασιών.

– Επιβλέπει την εκτέλεσή τους – Δίνει ένα χρονομερίδιο (time slice) σε μία διεργασία που

είναι έτοιμη. • Χρονομερίδιο: milli-secs ή micro-secs

– Εκτελεί την μεταγωγή (switching) διεργασιών όταν το χρονομερίδιο της τρέχουσας διεργασίας τελειώσει ● Λέγεται και θεματικό μεταγωγή (Context-switching) ● Διακοπή είναι το σήμα που παράγεται στο τέλος του χρονο-

μεριδίου ● Ο χειριστής διακοπών (σε επόμενη διαφάνεια) είναι μέρος του

διεκπεραιωτή.

26

Page 27: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

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

27

Page 28: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Σημασία Διαχείρισης Διεργασιών (2) • Περισσότερες από 1 μονάδες εκτέλεσης:

– Παραλληλισμός • Πολλοί ταμίες (μονάδες εκτέλεσης, εξυπηρετητές)

εξυπηρετούν πολλούς πελάτες, έναν πελάτη την φορά καθένας – Πόσο γρηγορότερη γίνεται η εκτέλεση τελικα;

• Ιδανικά Ν φορές πιο γρήγορα, αν έχουμε Ν παράλληλες μονάδες εκτέλεσης

• Επιβαρύνσεις • Π.χ. συγκρίνετε το χρόνο που θα γινόταν μια άσκηση αν

– Α. Δουλεύατε μόνος/η σας – Β. Με άλλον ένα άτομο – Γ. Με μια ομάδα 10 ατόμων

28

Page 29: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Χρονοπρογραμματισμός • Στόχος η καλή διαχείριση των πόρων του συστήματος (μνήμη,

CPU, δίσκος • Πρόβλημα: Ποιος είναι ο καλύτερος τρόπος να τρέξεις m

διεργασίες σε n επεξεργαστές • Ελαχιστοποίηση χρόνου απόκρισης / χρόνου ολοκλήρωσης

– Χρόνος απόκρισης: χρόνος από το κλικ του ποντικιού μέχρι το κλείσιμο του παραθύρου

– Χρόνος ολοκλήρωσης: ο χρόνος από τότε που υποβλήθηκε μια εργασία μέχει την ολοκλήρωσή της

• Μεγιστοποίηση του ρυθμού παραγωγής αποτελεσμάτων (ρυθμοαπόδοση, throughput) – Εκμετάλλευση των πόρων του συστήματος με τον καλύτερο δυνατό τρόπο – Ελαχιστοποίηση των «έμμεσων» προβλημάτων (context switching, κλπ)

29

Page 30: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Χρονοπρογραμματισμός FCFS ή FIFO • FCFS = First-come First-serve • FIFO = First-in First-out • Εκτέλεση διεργασιών με την σειρά άφιξής τους • Πλεονέκτημα: απλό

• Μειονέκτημα: • Η απόδοση εξαρτάται από την σειρά άφιξης

• Όχι καλό (όχι δίκαιο) για τις εργασίες που φτάνουν αργότερα • Όχι καλό αν μια μεγάλη έργασία φτάνει νωρίς

30

Page 31: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

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

• Αν φτάνουν με σειρά Β,Γ,Α:

• Πρόβλημα αν μια υπολογιστικά μεγάλη διεργασία φτάσει πρώτη (μπλοκάρει όλες τις άλλες που φτάνουν μετά από αυτήν)

31

Page 32: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Παράδειγμα FIFO (2) • Διάγραμμα Gantt: Να υπολογιστεί ο μέσος χρόνος αναμονής με την

παρακάτω διάρκεια (burst time) και σειρά άφιξης στην ουρά • P1: 20, P2: 12, P3: 8, P4: 16, P5: 4

• Χρόνοι αναμονής: • P1: 0 • P2: 20 • P3: 32 • P4: 40 • P5: 56 • Μέσος χρόνος αναμονής: 29.6

P1

20

P2

32

P3 P4 P5

40 56 60

32

Page 33: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Χρονοδρομολόγηση με Εναλλαγές (Round Robin, RR) • Το προηγούμενο πρόβλημα απαλοίφεται αν οι υπολογιστικά μεγάλες

διεργασίες δεν μονοπωλούν τον επεξεργαστή • Ρολόι • Εκτέλεση κάθε διεργασίας από την CPU για μια περίοδο ρολογιού

– Έπειτα, προχώρησε στην επόμενη διεργασία – Συνέχισε, μέχρι ο γύρος να ολοκληρωθεί για όλες τις διεργασίες

• Δίκαιος τρόπος: Ο RR χρησιμοποιείται πολύ συχνά με διάφορες παραλλαγές

• Καλός μέσος χρόνος ολοκλήρωσης για εργασίες αρκετά διαφορετικού μεγέθους μεγέθους μεταξύ τους

• Για διεργασίες παρόμοιου μεγέθους π.χ. Α=100, Β=100

• Μέσος χρόνος ολοκλήρωσης; Τι θα έκανε η FIFO;

33

Page 34: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

RR: Περίοδος • Μεγάλη περίοδος: μεγαλύτερη περίπτωση οι

διεργασίες να τερματίσουν ή να μπλοκάρουν πριν τελειώσει η περίοδος που εκτελούνται – Καταναλώνεται χρόνος άσκοπα

• Μικρή περίοδος: καλύτερος μέσος χρόνος αναμονής, αλλά μεγάλη επιβάρυνση – Υπάρχει συνεχές context-switching

• Επιθυμούμε περίοδο αρκετά μεγαλύτερη από το χρόνο μεταγωγής

• Συνήθης τιμή για την περίοδο: 100 msec – Κόστος μετατωγής: < 1%

34

Page 35: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Παράδειγμα Round Robin

• Διάρκεια της διεργασίας στην CPU και σειρά στην ουρά: – P1: 20, P2: 12, P3: 8, P4: 16, P5: 4 – Περίοδος RR = 4

• Διάγραμμα Gantt 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

P1 P2

4

P3 P4 P5 P1

8 12 16 20 24

P2 P3

28

P4 P1 P2 P4

32 36 40 44 48

P1 P4

52

P1

56 60

completes completes completes completes completes

35

Page 36: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Παράδειγμα για context-switching

• Mέσος χρόνος αναμονής για RR (round robin) με:

– Διεργασίες: P1: 24, P2: 4, P3: 4 με αυτή τη σειρά άφιξης

– Περίοδος = 4, χρόνος context-switching = 1 – P1: 0 + 11 + 4 = 15 – P2: 5 – P3:10

• Μέσος χρόνος αναμονής: 10

P1 P2 P3 P1 P1 P1 P1 P1 4 5 9 10 14 15 19 20 24 25 29 30 34 35 39

36

Page 37: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Χρονοδρομολόγηση με Προτεραιότητες • Ανάθεση προτεραιότητας σε κάθε διεργασία

– Ιεράρχηση διεργασιών • Κάθε φορά επιλέγεται μια από τις έτοιμες (ready) διεργασίες

με τη μεγαλύτερη προτεραιότητα • Διεργασίες ίδιας προτεραιότητας δρομολογούνται με RR • Στατικές ή δυναμικές προτεραιότητες • Προτεραιότητες ανάλογα με:

– Σημασία της διεργασίας – Χρόνος από την τελευταία εκτέλεση – Αξιοποίηση συσκευών Ι/Ο: Υψηλή προτεραιότητα στις διεργασίες που

εκτελούν πολύ Ι/Ο

37

Page 38: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Προτεραιότητες • Ανάθεση αριθμού προτεραιότητας

– 0 η υψηλότερη προτεραιότητα (ή η χαμηλότερη) • FIFO: όλες οι διεργασίες έχουν ίδιες προτεραιότητες • Shortest Job First, SJF (επόμενη διαφάνεια): η

προτεραιότητα είναι αντίστροφα ανάλογη προς τη διάρκεια της διεργασίας

• Οι προτεραιότητες μπορεί να είναι: – Εσωτερικές:

• Π.χ. Σύμφωνα με παράγοντες σχετικούς με το Λ/Σ (απαιτήσεις σε μνήμη)

– Εξωτερικές, π.χ. Σπουδαιότητα για τον χρήστη – Στατικές: σταθερές για όλη τη διάρκεια της διεργασίας – Δυναμικές:

• Αλλάζουν κατά τη διάρκεια της διεργασίας • Π.χ. Σα συνάρτηση της χρήσης CPU ή του χρόνου αναμονής (λύση για

το πρόβλημα του μπλοκαρίσματος)

38

Page 39: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Πρώτα η Συντομότερη Διεργασία (Shortest Job First, SJF)

• Εκτέλεση της συντομότερης διεργασίας • Η, ισοδύναμα, shortest-time-to-completion-first (πρώτα η διεργασία

με το λιγότερο υπολειπόμενο χρόνο εκτέλεσης)

• Βέλτιστη ως προς τον συνολικό χρόνο ολοκλήρωσης: – Δηλ. Αυτή είναι η πολιτική που ελαχιστοποιεί το συνολικό (άρα και τον μέσο)

χρόνο ολοκλήρωσης) • Απόδειξη: Βάζοντας τη γρήγορη διεργασία πριν την αργή ευνοούμε

την γρήγορη περισσότερο από ότι επιβαρύνουμε την αργή – Αλλάζοντας τη σειρά εκτέλεσης, πάντοτε αυξάνεται ο συνολικός χρόνος

εκτέλεσης 39

Page 40: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

SJF: Shortest Job First • Διεργασίες και διάρκειες (burst times): P1: 20, P2: 12, P3: 8,

P4: 16, P5: 4

• Χρόνοι αναμονής: – P1: 40 – P2: 12 – P3: 4 – P4: 24 – P5: 0

• Μέσος χρόνος αναμονής: 16

P1

4

P2

12

P3 P4 P5

24 40 60

40

Page 41: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Προεκτοπισιμότητα και Μη • Διεργασίες Α,Β,Γ,... με διαφορετική προτεραιότητα • Προεκτοπίσιμη (pre-emptive) πολιτική χρονοδρομολόγησης: Αν

εκτελείται μια διεργασία x και φτάσει μια διεργασία y, η x διακόπτεται αν η y είναι μεγαλύτερης προτεραιότητας από την y – Η εκτέλεση της y συνεχίζεται μέχρι την ολοκλήρωσή της, εφόσον δεν

φτάσει άλλη διεργασία μεγαλύτερης προτεραιότητας από την y – Όταν ολοκληρωθεί η y, συνεχίζεται η εκτέλεση της x

• Δηλ. σε κάθε χρονική στιγμή εκτελείται η μεγαλύτερης προτεραιότητας εργασία από αυτές που είναι έτοιμες προς εκτέλεση

• Μη προεκτοπίσιμη (non pre-emptive) πολιτική χρονοδρομολόγησης: Αν εκτελείται μια διεργασία x και φτάσει μια διεργασία y, η x δεν διακόπτεται σε καμιά περίπτωση – Η y θα εκτελεστεί εφόσον ολοκληρωθεί η x

41

Page 42: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Ποιες πολιτικές χρονοδρομολόγησης μπορεί να είναι προεκτοπίσιμες; (Preemptive)

• FΙFO – Μη προεκτοπίσιμη (non-preemptive)

• SJF (Shortest Job First) – Pre-emptive ή μη – Επιλογή όταν μια νέα διεργασία φτάνει

• Με προτεραιότητες: – Pre-emptive ή μη – Επιλογή όταν αλλάζει η προτεραιότητα μιας

διεργασίας ή όταν φτάνει μια μεγαλύτερης προτεραιότητας διεργασία

42

Page 43: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Χειριστής Διακοπών • Κάθε φορά που ο dispatcher δίνει ένα slice σε μια

διεργασία, παράγει ένα σήμα διακοπής (interrupt) • H CPU σταματά την διεργασία που εκτελεί τώρα

– Σώζει την τρέχουσα κατάσταση της διεργασίας – Εκτελεί ένα πρόγραμμα χειριστής διακοπών (interrupt handler)

που βρίσκεται στη μνήμη – Μεταφέρει τον έλεγχο στον διεκπεραιωτή – Ο διεκπεραιωτής επιλέγει μια διεργασία από τον πίνακα, ξεκινά

τον μετρητή και επιτρέπει στην διεργασία να ξεκινήσει

43

Page 44: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Σύνοψη ζητημάτων λειτουργικού συστήματος • Απαραίτητες λειτουργίες:

– Χρονοπρογραμματισμός (scheduling) διεργασιών – Διεκπεραίωση (Dispatching) : εναλλάσσει την CPU μεταξύ

διαδικασιών – Χειρισμός Διακοπών (Interrupt handling): ερμηνεύει σήματα

διακοπής, και ενεργοποιεί τις αντίστοιχες ρουτίνες (interrupts) – Δυνατότητα ανάκτησης στο μέλλον της κατάστασης της

διεργασίας που διακόπτεται τώρα – Εκχώρηση πόρων: μνήμη, Ι/Ο, CPU – Προστασία πόρων μεταξύ διαφορετικών διεργασιών

44

Page 45: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Πολυ-προγραμματισμός: χειρισμός Ι/Ο

Process (διεργασία) A Process B Process C

I/O I/O I/O

συνολικός χρόνος εκτέλεσης

Θεματική αλλαγή (context switching)

περιμένει

Με χρήση πολυ-προγραμματισμού

Χωρίς πολυ-προγραμματισμό

Μπορεί να μην έχουμε πάντοτε διεργασία έτοιμη να τρέξει 45

Page 46: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Πολυπρογραμματισμός: χρονομερισμός (time-slicing) μεταξύ διεργασιών

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

46

Page 47: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Διεκπεραιωτής (dispatcher)

process = διεργασία = πρόγραμμα + περιβάλλον (μνήμη + καταχωρητές) process switching: εναλλαγή της CPU μεταξύ διαφορετικών διεργασιών

READY

BLOCKED

RUNNING

καταστάσεις μιας διεργασίας

επιλογή από διεκπεραιωτή

αρχή τέλος

τέλος slice

αρχή Ι/Ο, ζητάει πόρους που δεν υπάρχουν την στιγμή αυτή

τέλος Ι/Ο, πόροι ελευθερώ- θηκαν

READY ουρά

BLOCKED διεργασίες

RUNNING

47

Page 48: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Νήματα (threads) • Νήμα (thread) είναι η μικρότερη δυνατή ακολουθία εντολών

που μπορεί ένας χρονοπρογραμματιστής (scheduler) ενός λειτουργικού συστήματος να διαχειριστεί ανεξάρτητα – Δηλ. Είναι μια στοιχειώδης διεργασία

• Πολλά νήματα μπορεί να συνυπάρχουν σε μια διεργασία και μπορούν να μοιράζονται πόρους του υπολογιστή – Π.χ. Μνήμη

• Πολυνηματισμός (multi-threading) • Πολλά νήματα εκτελούν τις ίδιες εντολές • Η CPU μεταπηδάει (switch) μεταξύ διαφορετικών νημάτων, όπως μεταξύ διαφορετικών διεργασιών

48

Page 49: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Ανταγωνισμός μεταξύ διεργασιών • Ανταγωνισμός διεργασιών για πόρους (resources)

– Πρόσβαση σε αρχεία – Μνήμη – CPU – Χώρος στον πίνακα διεργασιών (scheduling) – Χρονο-μερίδια (dispatcher)

● Σηματοφορείς (semaphores): μία σημαία (flag) ελέγχου που λέει εάν κάποιος πόρος είναι τώρα σε χρήση – Clear (ελεύθερη), set (σε χρήση), π.χ. Τον εκτυπωτή – Μπορεί κάποια διεργασία A να διακοπεί αφού έχει ανιχνευτεί clear

αλλά πριν γίνει set (διότι μεσολαβεί αρκετός χρόνος για να ανακτηθεί η σημαία από την μνήμη, να αλλάξει από την CPU, και να αποθηκευτεί πίσω στην μνήμη)

– Μια άλλη διεργασία Β ξεκινά, ζητά και αυτή τον εκτυπωτή πιθανή σύγκρουση

– Λύση: Ο έλεγχος και η ενεργοποίηση γίνονται ταυτόχρονα για την κατάλληλη λειτουργία (test & set instruction)

• Ή ενεργοποιώντας μια εντολή “interrupt disable” που αγνοεί τις διακοπές διεργασιών για όσο διαρκεί το test & set

49

Page 50: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Ανταγωνισμός μεταξύ διεργασιών (2) ● Κρίσιμη περιοχή (critical region): ακολουθία εντολών

που πρέπει να εκτελείται από μόνο μία διεργασία τη φορά. – Συνήθως προστατεύεται από το σηματοφορέα. – Για να μπει σε μια κρίσιμη περιοχή, μια διεργασία πρέπει να

βρει το σηματοφορέα clear και να τον θέσει set πριν μπει – Όταν βγει από την κρίσιμη περιοχή, πρέπει να την θέσει clear – Αν μια διεργασία δει το σηματοφορέα set, περιμένει μέχρι

αυτός να γίνει clear • Αμοιβαίος αποκλεισμός (mutual exclusion): η

προϋπόθεση της εκτέλεσης μιας κρίσιμης περιοχής από μία μόνο διεργασία τη φορά.

50

Page 51: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Αδιέξοδο ● Αδιέξοδο (deadlock) είναι η κατάσταση κατά την οποία η

εκτέλεση δύο ή περισσοτέρων διεργασιών εμποδίζεται από το να συνεχιστεί.

● Παράδειγμα 1: μια διεργασία Α έχε πρόσβαση στον εκτυπωτή και περιμένει για πρόσβαση στο CD player, μια διεργασία Β το ανάποδο

● Παράδειγμα 2: ένα σύνολο από διεργασίες πρέπει να δημιουργήσουν υπο-διεργασίες, αλλά δεν υπάρχει χώρος στον πίνακα διεργασιών

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

51

Page 52: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Ένα αδιέξοδο που προέκυψε από τον ανταγωνισμό για μία μη κοινόχρηστη σιδηροδρομική διασταύρωση

52

Page 53: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Χρονοπρογραμματισμός και εκχώρηση πόρων

READY

BLOCKED

RUNNING

καταστάσεις μιας διεργασίας επιλογή από διανομέα

αρχή τέλος

Τέλος slice

αρχή Ι/Ο, ζητάει πόρους που δεν υπάρχουν την στιγμή αυτή

τέλος Ι/Ο, πόροι ελευθερώ- θηκαν

Πόροι: μνήμη, χρόνος CPU, Ι/Ο συσκευή

Εκχώρηση πόρων: στατική, δυναμική -> deadlock

53

Page 54: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Παροχέτευση (spooling) ● Μια συνήθης λύση για τα αδιέξοδα είναι το σκότωμα (killing)

της διεργασίας ● Στοχεύει στην απαλοιφή της 3ης συνθήκης ● Ανίχνευση και διόρθωση

● Η παροχέτευση είναι μία τεχνική για την αποδοχή της πρόσβασης πολλών διεργασιών σε έναν κοινό πόρο.

● Αναβάλει την αιτούμενη διεργασία για μία προσφορότερη στιγμή στο μέλλον – Π.χ. Αν χρειάζεται πρόσβαση από 2 διεργασίες στον οδηγό του

εκτυπωτή, το λειτουργικό σύστημα κατευθύνει μια από τις δυο στο να αποθηκεύσουν τα δεδομένα στον σκληρό δίσκο και αργότερα όταν ο εκτυπωτής είναι ελεύθερος να τα μεταφέρει στον οδηγό του εκτυπωτή

– Κάνει ένα μη κοινόχρηστο πόρο να φαίνεται κοινόχρηστος. ● Αγνοεί τις τεχνικές του αποκλεισμού.

54

Page 55: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Χειρισμός Ι/Ο

READY

BLOCKED

RUNNING

αρχή Ι/Ο (σύγχρονου)

τέλος Ι/Ο

διαδικασία spooler

διαδικασία A

printer

next

ready

ουρά αιτήσεων Διαδικασία Α: δεν μπλοκάρει γιατί μεταθέτει στον spooler την εκτέλεση του ασύγχρονου Ι/Ο

Συναλλαγές Ι/Ο: - σύγχρονες (η διαδικασία χρειάζεται άμεσα το αποτέλεσμα για να συνεχίσει) - ασύγχρονες (το αποτέλεσμα δεν επηρεάζει την διαδικασία)

55

Page 56: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Ασφάλεια από εξωτερικές επιθέσεις

● Ασφάλεια με την έννοια της αξιοπιστίας ● Ασφάλεια με την έννοια της προστασίας των πόρων

του υπολογιστή από μη εξουσιοδοτημένους χρήστες ● Λογαριασμοί (accounts) χρηστών

● Πιο συνηθισμένη προστασία: απαιτεί password και όνομα χρήστη. – Πρόβλημα αποτελεί η κλοπή του password. – Πρόβλημα αποτελεί επίσης η αυτοματοποιημένη πρόβλεψη

προφανών κωδικών – Τρόποι αντιμετώπισης:

● Αναφορά όλων των εσφαλμένων προβλέψεων. ● Ενημέρωση του χρήστη για τη σύνδεση του στο σύστημα.

56

Page 57: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Ασφάλεια • Λογισμικό ελέγχου (auditing software): καταγραφή και

ανάλυση των δραστηριοτήτων που γίνονται εντός του συστήματος – Π.χ. Μια σειρά από αποτυχημένες προσπάθειες για login – Π.χ. Έλεγχος με το αν μια διεργασία εμπίπτει στο σύνολο αυτών που

εκτελούνται με βάση το προφίλ του χρήστη

• Λογισμικό όσφρησης (sniffing software): τρέχει στο παρασκήνιο, καταγράφει δραστηριότητες του χρήστη – Χρησιμοποιείται από κάποιον εισβολέα στο σύστημα

57

Page 58: ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματαpages.cs.aueb.gr/courses/epl131/files/K3-Λειτουργικά... · ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήματα

Ασφάλεια από εσωτερικές απειλές ● Εισβολέας (intruder): μη εξουσιοδοτημένος χρήστης, εκτός

συστήματος ● Κακοήθης (malicious) χρήστης: εξουσιοδοτημένος ● Τα λειτουργικά συστήματα αποτρέπουν την παράνομη

πρόσβαση στους πόρους ενός Η/Υ, η οποία θα μπορούσε να έχει καταστροφικές συνέπειες για το σύστημα. Χρησιμοποιούν: – Διαφορετική μνήμη για διαφορετικές διεργασίες. – Υπάρχουν δυο επίπεδα λειτουργίας CPU (προνομιούχoς – privileged, και

μη προνομιούχoς) • Στο 1ο, η CPU εκτελεί όλες τις εντολές, στο 2ο ένα περιορισμένο υποσύνολο

– Οι προνομιούχες εντολές (αυτές που εκτελούνται στην 1η περίπτωση) επιτρέπονται μόνο στον πυρήνα

• Π.χ εντολές αλλαγής των pointers στη μνήμη

58