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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ENOTHTA 5 XPONO POMOΛOΓHΣH

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

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

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

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

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

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

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

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

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

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

Ο βασικός παράγοντας είναι ο χρόνος αξιοποίησης του επεξεργαστή Ελάχιστος αριθµός πράξεων και όχι µακρόχρονες αιτήσεις Ε/Ε

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Προσπέλαση κοινών πόρων Πρωτόκολλα ελέγχου αμοιβαίου αποκλεισμού

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

Χρονοπρογραµµατισµός ιεργασιών (Process Scheduling)

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

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

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

Εισαγωγή στην Πληροφορική. Αντώνης Σταµατάκης

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

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

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

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

Σελίδα Φορτώθηκε Προσπελάστηκε Συχνότητα R Μ (dirty)

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

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

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

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

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

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

Αδιέξοδα (Deadlocks)

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Χρονοπρογραμματισμός (ή Χρονοδρομολόγηση ή Δρομολόγηση)

ΑΔΙΕΞΟΔΑ (Deadlocks) Παράδειγμα 1 Θανάσιμο αγκάλιασμα (deadly embrace)

Χρονοπρογραµµατισµός ΚΜΕ (CPU Scheduling)

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

ΛΥΜΕΝΑ ΠΡΟΒΛΗΜΑΤΑ. Γράψτε τις επόμενες διαδικασίες σε όποια γλώσσα προγραμματισμού προτιμάτε:

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

Εξετάσεις Προόδου 8/1/2014 Τεχνικός Εφαρμογών Πληροφορικής (Πολυμέσα/ Web designer - developper/video games)

Ένα πρόγραμμα σε εκτέλεση, Μια ασύγχρονη δραστηριότητα,

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

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

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

Χρονοδρομολόγηση Ι Μοντέλα διεργασιών, Προθεσμίες και Αλγόριθμοι

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

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

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

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

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

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

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

6. Αδιέξοδο. 1. Ορισμοί είδη πόρων. 3. Συνθήκες αδιεξόδου. 1. Πρόληψη 2. Αποφυγή 3. Ανίχνευση 5. Το πρόβλημα των συνδαιτημόνων φιλοσόφων

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

Λειτουργικά. Συστήματα Ι. Διεργασίες-Νήματα. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

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

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

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

ΤΜΗΜΑ ΜΗΥΤΔ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (ΗΥ222) ΔΙΔΑΣΚΩΝ: ΧΡΗΣΤΟΣ Δ. ΑΝΤΩΝΟΠΟΥΛΟΣ Τελική Εξέταση Σεπτεμβρίου 2009, Χρόνος: 2:30

Transcript:

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

Το Λ.Σ. είναι υπεύθυνο για την κατανομή των πόρων του συστήματος (επεξεργαστές, μνήμη, αποθηκευτικά μέσα και συσκευές εισόδου/εξόδου) στα διάφορα ανταγωνιζόμενα προγράμματα που επιθυμούν να τα χρησιμοποιήσουν Αποκρύπτει από το χρήστη πλήθος ενεργειών που αφορούν σε διαχείριση μνήμης (memory management), αρχεία (files), χρονοπρογραμματισμό (scheduling) κλπ. Το Λ.Σ. έχει ως κύρια φροντίδα: τον έλεγχο χρήσης πόρων από τις διάφορες οντότητες τη διαβάθμιση των απαιτήσεων για πόρους τη χρέωση για τη χρήση των πόρων τη δρομολόγηση αντικρουόμενων διεκδικήσεων πόρων από διαφορετικά προγράμματα και χρήστες Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 2

1. Διεργασίες 2. Διαχείριση μνήμης 3. Προστασία και ασφάλεια πληροφοριών 4. Δρομολόγηση και διαχείριση πόρων 5. Δομή συστήματος αρχείων Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 3

Διεργασία ονομάζεται η δραστηριότητα (activity) εκτέλεσης ενός προγράμματος Εκτός από το υπό εκτέλεση πρόγραμμα περιλαμβάνει κι άλλες χρήσιμες πληροφορίες Οι απαραίτητες πληροφορίες για τη διαχείριση των διεργασιών από το Λ.Σ. αποθηκεύονται σε ειδικές δομές (πίνακας διεργασιών process table) Σε συστήματα καταμερισμού χρόνου (timesharing systems) απαιτείται η ύπαρξη διαδικασίας διακοπής και επανεκτέλεσης διεργασιών Η διαχείριση των διεργασιών αποτελεί το θεμελιώδες αντικείμενο οποιουδήποτε ΛΣ Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 4

Κρίσιμες δομές Λειτουργικού Συστήματος: Process Memory Images Memory Devices Files Processes Memory Tables I/O Tables File Tables Process Table Process 1 Process 2. Process N Process 1... Process N Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 5

Ο Πίνακας Διεργασιών, για κάθε διεργασία, περιλαμβάνει: την τρέχουσα κατάσταση της διεργασίας το όνομα της διεργασίας την ταυτότητα του ιδιοκτήτη (uid) της διεργασίας την προτεραιότητα (priority) της διεργασίας δείκτες για προσπέλαση στο χώρο μνήμης που καταλαμβάνει η διεργασία απαιτούμενους πόρους από τη διεργασία πληροφορίες απαραίτητες για την επανεκκίνηση της διεργασίας Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 6

Οι τρεις δυνατές καταστάσεις στις οποίες μπορεί να βρεθεί μια διεργασία είναι: a) εκτελούμενη (running) b) έτοιμη προς εκτέλεση ή εκτελέσιμη (ready or runnable) c) υπό αναστολή (blocked) d) new έχει μόλις δημιουργηθεί από το ΛΣ a) exit έχει απελευθερωθεί από τη δεξαμενή εκτελέσιμων εργασιών Κάθε διεργασία (parent process) μπορεί να δημιουργήσει μία νέα - θυγατρική διεργασία (child process). Η διεργασία «κεφαλή» (Α ) είναι το shell του Λ.Σ. Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 7

Ένα απλό παράδειγμα εκτέλεσης διεργασιών: Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 8

Όταν το σύστημα δημιουργεί μία διεργασία: της δίνει ένα όνομα της δίνει μία προτεραιότητα δημιουργεί για αυτή μία καταχώρηση στον Πίνακα Διεργασιών της παραχωρεί τμήμα των πόρων που χρειάζεται για τη λειτουργία της Η επικοινωνία μεταξύ των διεργασιών γίνεται με ειδικούς μηχανισμούς που ονομάζονται σήματα (signals) όταν μία διεργασία αναστέλλεται προσωρινά, πρέπει να ληφθεί πρόνοια ώστε να μπορεί να συνεχίσει αργότερα από το σημείο στο οποίο βρισκόταν! Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 9

Σε ένα «έξυπνο σύστημα» οι διεργασίες εκτελούνται τμηματικά κι εκ περιτροπής με βάση κάποιον αλγόριθμο χρονοδρομολόγησης/χρονοπρογραμματισμού Οι δυνατές μεταβάσεις μεταξύ καταστάσεων διεργασιών είναι: [1] Η διεργασία αναστέλλεται περιμένοντας δεδομένα εισόδου [2] Ο χρονοδρομολογητής επιλέγει άλλη διεργασία [3] Ο χρονοδρομολογητής επιλέγει αυτή τη διεργασία [4] Τα δεδομένα εισόδου είναι διαθέσιμα Για κάθε διεργασία, υπάρχει ένα τμήμα κώδικά της (κρίσιμο μονοπάτι ή critical path) που δεν είναι ασφαλές να εκτελεστεί παράλληλα με άλλη διεργασία και δεν θα πρέπει να διακόπτεται στο μέσον Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 10

Για να μπορούμε να επιτύχουμε αποδοτική παράλληλη εκτέλεση, είναι απαραίτητο να πληρούνται βασικοί κανόνες: Δύο διεργασίες δεν βρίσκονται ποτέ ταυτόχρονα στα κρίσιμα τμήματά τους Δεν επιτρέπονται υποθέσεις σε ότι αφορά την ταχύτητα ή το πλήθος των επεξεργαστών Διεργασία που δεν βρίσκεται σε κρίσιμο τμήμα δεν επιτρέπεται να αναστείλει άλλες διεργασίες Δεν επιτρέπεται η έπ' αόριστο αναμονή μιας διεργασίας, για να εισέλθει στο κρίσιμο τμήμα της Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 11

Όταν η CPU εναλλάσσει την τρέχουσα διεργασία με μια άλλη διεργασία, το σύστημα πρέπει να αποθηκεύσει την κατάσταση (state) της παλιάς διεργασίας και να φορτώσει την αποθηκευμένη κατάσταση για τη νέα διεργασία Ο χρόνος αυτός εναλλαγής αποτελεί καθυστέρηση (overhead) και θεωρείται «νεκρός» (το σύστημα δεν κάνει κάποια χρήσιμη λειτουργία) Ο χρόνος εναλλαγής εξαρτάται από την υποστήριξη εκ μέρους του υλικού Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 12

Γιατί μπορεί να τερματιστεί μια διεργασία; Φυσιολογική ολοκλήρωση Υπέρβαση χρονικού ορίου Μη διαθέσιμη μνήμη Καταπάτηση ορίων Σφάλμα προστασίας Αριθμητικό σφάλμα Υπερχείλιση χρονικού ορίου Σφάλμα Ι/Ο Μη έγκυρη εντολή Προνομιούχος εντολή Λανθασμένη χρήση δεδομένων Τερματισμός ή αίτηση γονέα Μεσολάβηση χειριστή ή του Λ.Σ. Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 13

1. ανακριβής συγχρονισμός τα σήματα από τη μία διεργασία στην άλλη δεν διαχειρίζονται σωστά 2. αποτυχημένος αμοιβαίος αποκλεισμός προσπάθεια από χρήστες ή προγράμματα να κάνουν χρήση ενός κοινού πόρου την ίδια χρονική στιγμή 3. ακαθόριστη λειτουργία προγράμματος Πολλά προγράμματα που διαμοιράζονται μνήμη να παρεμβαίνουν μεταξύ τους επανεγγράφοντας κοινές περιοχές της μνήμης με μη προβλέψιμους τρόπους 4. αδιέξοδα (deadlocks) δύο ή περισσότερα προγράμματα είναι σε αναμονή περιμένοντας το ένα το άλλο Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 14

Αδιέξοδο = ένα σύνολο από διεργασίες που δημιουργούν μια κυκλική αλυσίδα όπου κάθε διεργασία στην αλυσίδα δεν μπορεί να προχωρήσει και περιμένει για κάποιο γεγονός που μπορεί να προκληθεί μόνο από κάποιο άλλο μέλος της αλυσίδας => στασιμότητα Πότε συμβαίνει; Αμοιβαίος αποκλεισμός (mutual exclusion): Μόνο μια διεργασία μπορεί να χρησιμοποιεί έναν πόρο. Κατοχή και αναμονή (hold & wait): Οι διεργασίες που συμμετέχουν στο αδιέξοδο και κατέχουν κάποιο πόρο αλλά και περιμένουν για κάποιο πόρο. Μη προεκτοπισμός (No preemption): Μόνο η κατέχουσα διεργασία μπορεί ν' απελευθερώσει τον πόρο - δηλ. ο πόρος δεν μπορεί ν' αφαιρεθεί από τη διεργασία. Κυκλική αναμονή (circular wait): Ν διεργασίες, όπου κάθε διεργασία περιμένει για έναν πόρο που τον κατέχει η επόμενη διεργασία στην αλυσίδα. Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 15

Βασικές στρατηγικές: 1. Στρουθοκαμηλισμός: Μην κάνεις τίποτα 2. Αποφυγή deadlock: Προσέχεις πότε δίνονται οι πόροι στις διεργασίες 3. Ανίχνευση και ανάνηψη: Κατασκευάζεις σχήματα κατανομής πόρων ώστε να ανιχνευθούν κυκλικές αλυσίδες 4. Πρόληψη: Σιγουρεύεσαι ότι όσες περισσότερες από τις 4 αναγκαίες συνθήκες για αδιέξοδα δεν μπορούν να ισχύσουν Ποια είναι η προτιμότερη; Η αντιμετώπιση των αδιεξόδων «κοστίζει» ακριβά. Γι αυτό, πολλά Λ.Σ. αφήνουν στις εφαρμογές τη λύση του προβλήματος! Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 16

Υπάρχουν διάφοροι αλγόριθμοι χρονοδρομολόγησης Χρονοδρομολόγηση εκ περιτροπής Χρονοδρομολόγηση Προτεραιοτήτων Πολλαπλές Ουρές Εγγυημένος Χρονοπρογραμματισμός Χρονοπρογραμματισμός με λοταρία Χρονοπρογραμματισμός δίκαιης διανομής Χρονοπρογραμματισμός συστημάτων πραγματικού χρόνου Η Συντομότερη Εργασία Πρώτη Χρονοπρογραμματισμός τριών επιπέδων Πολιτικές έναντι μηχανισμών Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 17

Κριτήρια επιλογής αλγορίθμων χρονοδρομολόγησης: δικαιοσύνη (fairness) μεταξύ των διεργασιών αποδοτικότητα (efficiency) στην αξιοποίηση της CPU (100%) χρόνος απόκρισης (response time) χρόνος διεκπεραίωσης (turnaround) για χρήστες συστήματος (μείωση χρόνου αναμονής χρηστών) ρυθμός απόδοσης (throughput) εργασιών που επεξεργάζεται ένα σύστημα (μέγιστος αριθμός διεργασιών ανά ώρα) Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 18

Χρονοδρομολόγηση εκ περιτροπής (round robin scheduling) : Σε κάθε διεργασία εκχωρείται χρονικό διάστημα - κβάντο (quantum) στα όρια του οποίου επιτρέπεται η εκτέλεσή της Αν η διεργασία δεν ολοκληρωθεί μέχρι το τέλος του χρονικού αυτού διαστήματος, τότε η CPU προεκχωρείται σε άλλη διεργασία, δηλαδή λαμβάνει χώρα εναλλαγή διεργασιών (process switch) Σημαντική παράμετρο αποτελεί η επιλογή του μεγέθους του κβάντου χρόνου (20-50 msec ) Τρέχουσα διεργασία Επόμενη διεργασία Τρέχουσα διεργασία Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 19

Χρονοδρομολόγηση Προτεραιοτήτων: όλες οι διεργασίες δεν είναι εξίσου σημαντικές και λαμβάνονται υπόψη και εξωτερικοί παράγοντες (priority scheduler) εκτελείται η διεργασία με την υψηλότερη προτεραιότητα. Για να μην εκτελούνται συνέχεια διεργασίες υψηλής προτεραιότητας, ο χρονοδρομολογητής μειώνει (αν το κρίνει σκόπιμο) την προτεραιότητα της τρέχουσας διεργασίας σε κάθε διακοπή ρολογιού, ή...... αντιστοίχιση κβάντου χρόνου σε κάθε διεργασία και εκτέλεση κάθε φορά της διεργασίας με τη μεγαλύτερη προτεραιότητα (οι χρόνοι εισόδου/εξόδου είναι συνήθως αρκετά μεγάλοι) Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 20

Πολλαπλές Ουρές (multiple queues) - κλάσεων προτεραιοτήτων : οι διεργασίες της ουράς υψηλότερης κλάσης εκτελούνται για ένα κβάντο χρόνου οι διεργασίες της ουράς της επόμενης κλάσης εκτελούνται για δύο κβάντα χρόνου όταν μια διεργασία χρησιμοποιεί όλο το κβάντο χρόνου που της ανατίθεται, υποβιβάζεται κατά μία κλάση. Πλεονέκτημα: μικρότερος αριθμός εναλλαγών σε σχέση με τον αλγόριθμο εξυπηρέτησης εκ περιτροπής όσο μια μεγάλη διεργασία βυθίζεται βαθύτερα στις ουρές προτεραιοτήτων, τόσο ευνοείται η ολοκλήρωση μικρών διεργασιών Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 21

Παράδειγμα: Διεργασία απαιτεί 100 κβάντα χρόνου 100 εναλλαγές από τον αλγόριθμο εκ περιτροπής Κβάντα χρόνου Συνολικά κβάντα χρόνου Εναλλαγές 1 1 1 2 3 2 4 7 3 8 15 4 16 31 5 32 63 6 64 127 7 Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 22

Εγγυημένος Χρονοπρογραμματισμός: η συνολική υπολογιστική ισχύς ισοκατανέμεται στις διεργασίες π.χ. Ν διεργασίες (1/Ν)CPU απαιτείται γνώση: του χρόνου διάθεσης της CPU σε κάθε διεργασία από τη στιγμή που αυτή ξεκίνησε του χρόνου που αναλογεί σε κάθε διεργασία ( = χρόνος από τη στιγμή που ξεκίνησε / Ν) Υπολογίζεται ο λόγος: (χρόνος που διατέθηκε) /(χρόνος που αναλογεί) Επιλέγεται η διεργασία με το μικρότερο λόγο Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 23

Χρονοπρογραμματισμός με λοταρία: Κάθε διεργασία λαμβάνει ένα πλήθος λαχνών Κάθε φορά που πρόκειται να επιλεγεί μία νέα διεργασία κληρώνεται ένας λαχνός στη τύχη Η διεργασία που έχει το λαχνό χρησιμοποιεί τη CPU Αν υπάρχουν 100 διαθέσιμοι λαχνοί και μία διεργασία έχει τους 20, τότε, μετά από πολλές κληρώσεις, θα έχει πάρει περίπου το 20% της CPU Οι διεργασίες μπορούν να ανταλλάσσουν μεταξύ τους λαχνούς Χρησιμοποιείται για προβλήματα που δεν λύνονται εύκολα με άλλες μεθόδους Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 24

Χρονοπρογραμματισμός δίκαιης διανομής: Ο χρόνος της CPU διανέμεται δίκαια στους χρήστες Δεν ευνοούνται χρήστες με πολλές διεργασίες, έναντι χρηστών με λίγες διεργασίες Παράδειγμα: ο χρήστης 1 διαθέτει τις διεργασίες Α, Β, Γ και Δ, ενώ ο χρήστης 2 τη διεργασία Ε Χρονοπρογραμματισμός εκ περιτροπής με δίκαιη διανομή: Α Ε Β Ε Γ Ε Δ Ε Α Ε Β Ε Γ Ε Δ Ε... Σε περίπτωση που π.χ. ο χρήστης 1 δικαιούται διπλάσιο χρόνο από το χρήστη 2, τότε: Α Β Ε Γ Δ Ε Α Β Ε Γ Δ Ε... Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 25

Η Συντομότερη Εργασία Πρώτη (SJF - shortest job first): ο συνηθέστερος αλγόριθμος για συστήματα εργασιών δέσμης (batch jobs) χρήσιμος όταν ο χρόνος CPU που χρειάζεται το κάθε process είναι γνωστός από πριν Διεργασία Χρόνος Χρόνος Διεκπεραίωσης Α α α Β β α+β C γ α+β+γ D δ α+β+γ+δ Μέσος Χρόνος Διεκπεραίωσης = (4α+3β+2γ+δ)/4 Λειτουργικά Συστήματα - Διεργασίες Εκπαιδευτής: Λιβανός Γιώργος 26