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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Λειτουργικό Σύστημα (Operating System) 1o μέρος
Advertisements

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΕΡΓΑΣΙΩΝ
5 Οργάνωση υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών ã Εκδόσεις Κλειδάριθμος.
ΠΙΝΑΚΕΣ ΜΑΘΗΜΑ 6.
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
Λειτουργικά Συστήματα
Λειτουργικά Συστήματα
Η επιστήμη των υπολογιστών
Λειτουργικά Συστήματα
Slide 1 Δίκτυα Τηλεπικοινωνιών ENOTHTA 7 η ΔΙΑΚΙΝΗΣΗ ΤΗΛΕΦΩΝΙΚΩΝ ΚΛΗΣΕΩΝ (ΜΕΡΟΣ Α’) 1. ΘΕΩΡΙΑ ΤΗΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΗΣ ΚΙΝΗΣΗΣ  Εκτός από τις τερματικές.
ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ.
ΛΟΓΙΣΜΙΚΟ ΣΥΣΤΗΜΑΤΟΣ Κεφάλαιο 4 ο Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
Λειτουργικό Σύστημα 2ο μέρος.
Κεφάλαιο 1ο: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
Σύστημα Εργαστηριακών Εγγραφών βάσει Προτιμήσεων (ΣΕΕΠ) με τη βοήθεια Εμπείρου Συστήματος Πτυχιακή Εργασία Δημοσθένης Νικούδης (051092) 14/4/2011.
ΕΠΛ432: Κατανεμημένοι Αλγόριθμοι
Ζητήματα Σελιδοποίησης
Λογισμικο συστηματοσ Κεφάλαιο 4ο
Επικοινωνία μεταξύ Διεργασιών και Σύνδρομες Διεργασίες
Αδιέξοδα (Deadlocks).
7. Διαχείριση κύριας μνήμης
Εναλλαγή εκρήξεων ΚΜΕ και Ε/Ε μιας διεργασίας
Ανάλυση Πολλαπλής Παλινδρόμησης
Ενότητα Η Δομή Επανάληψης
Η ΕΚΤΕΛΕΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΧΡΗΣΤΗ ΑΠ’ ΤΟΝ Η/Υ ΤΟΜΕΑΣ ΤΕΧΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Δ.ΙΕΚ ΠΑΤΡΑΣ.
Moντέλα Καθυστέρησης και Ουρές
10. Δρομολόγηση σε σύστημα ενός επεξεργαστή
Το Μ/Μ/1 Σύστημα Ουράς Μ (η διαδικασία αφίξεων είναι Poisson) /
1 Α. Βαφειάδης Τ.Ε.Ι Θεσσαλονίκης – Τμήμα Πληροφορικής Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Εργαστηριακό Μέρος Μέρος: Δεύτερο Εξάμηνο: Έβδομο Καθηγητής:
ΠΑΡΑΔΟΣΕΙΣ ΜΑΘΗΜΑΤΟΣ «ΔΙΚΤΥΑ ΕΛΕΓΧΟΥ» ΟΚΤΩΒΡΙΟΣ 2004.
Τυχαιοκρατικοί Αλγόριθμοι TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA Πιθανότητες και Αλγόριθμοι Ανάλυση μέσης.
Χρονοδρομολόγηση CPU Βασικές Αρχές Κριτήρια Χρονοδρομολόγησης
1 Χαρακτηριστικά ενός Μ/Μ/1 συστήματος : Αφίξεις κατανεμημένες κατά Poisson Εκθετικά κατανεμημένοι χρόνοι εξυπηρέτησης Οι χρόνοι εξυπηρέτησης είναι αμοιβαία.
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ
Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης
Επικοινωνία μεταξύ Διεργασιών και Σύνδρομες Διεργασίες Interprocess Communication and Concurrent Processes.
ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ Τμήμα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Τηλεπικοινωνιών και Πληροφορίας & Δικτύων ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ “Χρονοπρογραμματισμός.
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γ’ μέρος
Χαρακτηριστικά ενός Μ/Μ/1 συστήματος :
Μικροεπεξεργαστές Λειτουργία - Εξέλιξη
Δρομολόγηση. Δρομολόγηση ονομάζεται το έργο εύρεσης του πως θα φθάσει ένα πακέτο στον προορισμό του Ο αλγόριθμος δρομολόγησης αποτελεί τμήμα του επιπέδου.
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
Διεργασίες.
Βασικά στοιχεία της Java
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 5: Γνωριμία με το Λογισμικό
Κωνσταντίνος Αντωνής © 2014Διαδικτυακός και Ταυτόχρονος Προγραμματισμός Ομοιόμορφη Αποδοτική Διαχείριση του Ταυτοχρονισμού των Εξυπηρετητών 1.
Ουρές Αναμονής.
Χρονοδρομολόγηση CPU Βασικές Αρχές Κριτήρια Χρονοδρομολόγησης
1 Διαχείριση Έργων Πληροφορικής Διάλεξη 7 η Διαχείριση Πόρων.
Κρυφή μνήμη (cache memory) (1/2) Εισαγωγή στην Πληροφορκή1 Η κρυφή μνήμη είναι μία πολύ γρήγορη μνήμη – πιο γρήγορη από την κύρια μνήμη – αλλά πιο αργή.
ΠΑΡΑΔΕΙΓΜΑ: ΤΑ ΕΠΙΠΕΔΑ ΥΛΙΚΟΥ – ΛΟΓΙΣΜΙΚΟΥ ΣΕ ΕΝΑΝ ΥΠΟΛΟΓΙΣΤΗ.
1 Λειτουργικά Συστήματα Ενότητα 13 : Δρομολόγηση Διεργασιών 3/3 Δημήτριος Λιαροκάπης Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Καταχωρητές (Registers) (1/3) Εισαγωγή στην Πληροφορκή1 Οι Καταχωρητές (Registers) είναι ειδικές θέσεις μνήμης υψηλής ταχύτητας που χρησιμοποιούνται για.
Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της οποίας η τιμή θα περάσει από την αρχική.
1 Λειτουργικά Συστήματα Ενότητα 11 : Δρομολόγηση Διεργασιών 1/3 Δημήτριος Λιαροκάπης Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Διαχείριση Πόρων (1/10) Εισαγωγή στην Πληροφορκή 1 Στα πρώτα χρόνια των υπολογιστών, όπου μόνο ένα πρόγραμμα είχε τη δυνατότητα να βρίσκεται στην κύρια.
Διαχείριση Διεργασιών (1/5)
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι
Κατανεμημένα Συστήματα
Λειτουργικά Συστήματα
Κατηγορίες και Προδιαγραφές Λογισμικού Η/Υ (Software)
Χρονοπρογραμματισμός CPU - SCHEDULING
Ανάπτυξη Μοντέλων Διακριτών Συστημάτων Μέρος Β
Λειτουργικά Συστήματα και Ασφάλεια Πληροφοριακών Συστημάτων ΔΙΕΡΓΑΣΙΕΣ
Ομοιόμορφη Αποδοτική Διαχείριση του Ταυτοχρονισμού των Εξυπηρετητών
Κεφάλαιο 7: Διαδικτύωση-Internet Μάθημα 7.9: Δρομολόγηση
ΣΥΓΧΡΟΝΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Τρίτη Έκδοση ANDREW S
Χρονοπρογραμματισμός CPU - SCHEDULING
Μεταγράφημα παρουσίασης:

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

Περίληψη Χρονοπρογραμματισμός διεργασιών και κριτήρια Κατηγορίες χρονοπρογραμματιστών Αλγόριθμοι χρονοπρογραμματισμού

Χρονοπρογραμματισμός Η πολιτική με την οποία το ΛΣ αποφασίζει ποια διεργασία θα εκτελεστείς την επόμενη χρονική στιγμή Οι απαιτήσεις από τον χρονοπρογραμματιστή διαφέρουν σύμφωνα με την εφαρμογή Σε παλαιότερα συστήματα τύπου batch η δουλεία του χρονοπρογραμματιστή ήταν σχετικά απλή… Σε συστήματα με πολλαπλούς χρήστες (time sharing or multi-user) η δουλεία του χρονοπρογραμματιστή είναι πιο δύσκολη… Ποια η δουλεία του χρονοπρογραμματιστή σε έναν προσωπικό υπολογιστή; Στην περίπτωση των δικτυωμένων εξυπηρετητών ο χρονοπρογραμματιστής παίζει μεγάλο ρόλο στην απόδοση του συστήματος Interactive and background processes.

Χρονοπρογραμματισμός Κόστος αλλαγής διεργασίας Αποθήκευσης της κατάστασης μιας διεργασίας Επιλογή της επόμενης, Φόρτωση της κατάστασης της επόμενης και Επαναδραστηριοποίηση Πότε θα πάρει απόφαση ο χρονοπρογραμματιστής; Όταν μια διεργασία δημιουργήσει ένα παιδί (child process). Όταν μια διεργασία τελειώσει τότε ο χρονοπρογραμματιστής θα επιλέξει την επόμενη διεργασία Όταν μια διεργασία μπλοκάρει (Ε/Ε ή σηματοφόρος) Όταν συμβεί κάποιο σήμα διακοπής (interrupt) Σήμα διακοπής από Ε/Ε Σήμα διακοπής από χρονομέτρη (timer)

Χρονοπρογραμματισμός Preemptive vs. non-preemptive Preemptive: μια διεργασία μπορεί να διακοπεί και ο επεξεργαστής να δοθεί σε μια νέα διεργασία. Non-preemptive: μια διεργασία δεν διακόπτεται. Εάν δεν υπάρχει ρολόι τότε non-preemptive είναι η μόνη επιλογή εκτός εάν υπάρχουν διεργασίες με διαφορετικές προτεραιότητες.

Στόχοι Χρονοπρογραμματιστή Αυτοί εξαρτώνται από το περιβάλλον της εφαρμογής Σε όλα τα συστήματα Δικαιοσύνη Όλες οι διεργασίες παίρνουν ένα «δίκαιο» μερίδιο από την υπολογιστική δυνατότητα του επεξεργαστή Εφαρμογή της πολιτικής Ισοζυγισμός Όλα τα μέρη του υπολογιστή πρέπει να χρησιμοποιούνται

Στόχοι Χρονοπρογραμματιστή Συστήματα τύπου batch Διεκπεραιωτική ικανότητα (throughput) Πόσες διεργασίες τελειώνουν σε κάθε χρονική περίοδο (π.χ., κάθε ώρα). Χρόνος ολοκλήρωσης ή χρόνος στο σύστημα (turnaround time) Ο χρόνος από τη στιγμή που κατατίθεται η διεργασία μέχρι τη στιγμή διεκπεραίωσης. Συμπεριλαμβάνει το χρόνο αναμονής και επεξεργασίας. Χρήση του επεξεργαστή (CPU utilization) Ποσοστό του χρόνου κατά το οποίο ο επεξεργαστής είναι απασχολημένος.

Στόχοι Χρονοπρογραμματιστή Διαδραστικά Συστήματα (Interactive) Χρόνος απόκρισης Χρόνος από τη στιγμή που θα υπάρξει κάποια εντολή μέχρις ότου εκτελεστεί Αναλογικότητα (proportionality) Απόκριση του συστήματος είναι σύμφωνα με την αντίληψη του χρήστη. Μας ενδιαφέρει το ποσοστό χρήσης του επεξεργαστή; Συστήματα Πραγματικού Χρόνου (real-time) Οι διεργασίες πρέπει να τελειώνουν μέσα στα δεδομένα χρονικά πλαίσια (deadlines) Η απόκριση του συστήματος πρέπει να είναι προβλέψιμη (predictable)

Στόχοι Χρονοπρογραμματιστή Οι απαιτήσεις πολλές φορές είναι αντιφατικές Ελαχιστοποίηση του χρόνου ολοκλήρωσης (turnaround) δεν σημαίνει και μεγιστοποίηση της διεκπεραιωτικής ικανότητας του συστήματος Υποθέστε ένα σύστημα με πολλές σύντομες και μεγάλες διεργασίες Μεγιστοποίηση Διεκπεραιωτικής ικανότητας συνεπάγεται εκτέλεση όλων των σύντομων διεργασιών πρώτα που κατά συνέπεια μεγαλώνει το χρόνο ολοκλήρωσης των μεγάλων διεργασιών.

Τύποι Χρονοπρογραμματιστών Μακροπρόθεσμος (admission scheduler) Πόσες και ποιες διεργασίες θα εκτελεσθούν Επηρεάζει το επίπεδο του πολυπρογραμματισμού Μεσοπρόθεσμος (memory scheduler) Πόσες και ποιες διεργασίες θα φορτωθούν στη κύρια μνήμη Βραχυπρόθεσμος (dispatcher or CPU scheduler) Πια διεργασία θα εκτελεστεί αμέσως μετά. Χρονοπρογραμματισμός συσκευών Ε/Ε

Τύποι Χρονοπρογραμματιστών

Κριτήρια Πόσο χρόνος πέρασε από την στιγμή που μια διεργασία μπήκε ή βγήκε από την επεξεργαστή Πόσος χρόνος του επεξεργαστή κατανεμήθηκε πρόσφατα στη κάθε διεργασία Πόσο μεγάλη είναι η διεργασία Πόσο σημαντική είναι η διεργασία (priority).

Πολιτική FIFO First-In-First-Out ή First Come First Serve Ο χρονοπρογραμματιστής επιλέγει την διεργασία που ήταν στην ουρά τον περισσότερο χρόνο και την τρέχει μέχρι να τελειώσει. Πλεονεκτήματα Είναι απλή Καμιά διεργασία δεν υποφέρει από παρατεταμένη στέρηση Μειονεκτήματα Ο εξυπηρετητής μπορεί να μείνει αχρησιμοποίητος ενώ εκτελούνται εντολές Ε/Ε Δεν παρουσιάζει καλή απόκριση Μια «μικρή» διεργασία μπορεί να περιμένει πολλή ώρα εάν φτάσει ακριβώς μετά από μια μεγάλη διεργασία Όταν ο χρόνος εκτέλεσης των διεργασιών παρουσιάζει μεγάλη διασπορά (variance) τότε ο χρόνος απόκρισης μπορεί να είναι μεγάλος

Παράδειγμα Πολιτικής FIFO Διερ. Άφ. Eπ. Α 3 Β 2 6 Γ 4 Δ 5 Ε 8 Διερ. ΧΟ ΧΟ/Επ. Α Β Γ Δ Ε 3 1 7 7/6 9 9/4 12 12/5 6 Μέσος χρόνος στο σύστημα =8.6 Μέσος ΧΟ/Επ. =2.56 Ε Δ Γ B A 5 10 15 20

Πολιτική Round-Robin Ο χρονοπρογραμματιστής επιλέγει ένα διάστημα q και εκτελεί κάθε διεργασία για q χρονικές μονάδες και στη συνέχεια εναλλάσσει διεργασία. Πλεονεκτήματα Είναι απλή Είναι δίκαιη Καμιά διεργασία δεν υποφέρει από παρατεταμένη στέρηση Παρουσιάζει καλή απόκριση για μικρές διεργασίες (μικρές διεργασίες δεν περιμένουν πολύ πίσω από μεγάλες διεργασίες) Μειονεκτήματα Πιθανόν να έχει μειωμένη διεκπεραιωτική ικανότητα εάν το q είναι πολύ μικρό. Δίνει προτεραιότητα στις διεργασίας με περισσότερους υπολογισμούς παρά σε διεργασίες με Ε/Ε Διεργασίες με πολλές λειτουργίες Ε/Ε μπορεί να μην εκμεταλλεύονται ολόκληρο το q και μετά θα «χάνουν» τη σειρά τους

Παράδειγμα Πολιτικής Round-Robin (q=1) Διερ. Άφ. Eπ. Α 3 Β 2 6 Γ 4 Δ 5 Ε 8 4 4/3 16 16/6 13 13/4 14 14/5 7 7/2 Διερ. ΧΟ ΧΟ/Επ. Α Β Γ Δ Ε Μέσος χρόνος στο σύστημα =10.8 Μέσος ΧΟ/Επ. =2.71 Ε Ε Δ Δ Δ Δ Γ Γ Γ Γ B B B B B B A A 5 10 15 20

Παράδειγμα Πολιτικής Round-Robin (q=4) Διερ. Άφ. Eπ. Α 3 Β 2 6 Γ 4 Δ 5 Ε 8 3 1 15 15/6 7 7/4 14 14/5 11 11/2 Διερ. ΧΟ ΧΟ/Επ. Α Β Γ Δ Ε Μέσος χρόνος στο σύστημα =10.0 Μέσος ΧΟ/Επ. =2.71 Ε Δ Δ Γ B B A 5 10 15 20

Πολιτική Shortest Process Next (SPN) Ο χρονοπρογραμματιστής επιλέγει την πιο μικρή διεργασία που περιμένει στην ουρά την οποία εκτελεί μέχρι το τέλος. Πλεονεκτήματα Έχει αυξημένη διεκπεραιωτική ικανότητα Πολύ καλή απόδοση (απόκριση) για μικρές διεργασίες Μειονεκτήματα Μεγάλες διεργασίες μπορούν να υποφέρουν από παρατεταμένη στέρηση Είναι γενικά δύσκολο να υπολογίσουμε το χρόνο που χρειάζεται η κάθε διεργασία

Παράδειγμα Πολιτικής Shortest Process Next Διερ. Άφ. Eπ. Α 3 Β 2 6 Γ 4 Δ 5 Ε 8 Διερ. ΧΟ ΧΟ/Επ. Α Β Γ Δ Ε 3 1 7 7/6 11 11/4 14 14/5 3/2 Μέσος χρόνος στο σύστημα =7.6 Μέσος ΧΟ/Επ. =1.84 Ε Δ Γ B A 5 10 15 20

Υπολογισμός του Χρόνου Εκτέλεσης μιας Διεργασίας Υπολογίζουμε το χρόνο εκτέλεσης σύμφωνα με το χρόνο εκτέλεσης της διεργασίας στο παρελθόν. Ti: ο χρόνος εκτέλεσης της διεργασίας την φορά i (μέτρηση). Si: ο υπολογισμένος (προβλεπόμενος) χρόνος για την εκτέλεση i. Μέσος όρος Εκθετικός μέσος όρος

Πολιτική Shortest Remaining Time (SRT) Ο χρονοπρογραμματιστής επιλέγει την διεργασία που της έχει μείνει ο λιγότερος χρόνος μέχρι να τελειώσει. Σε περίπτωση που φτάσει μικρότερη διεργασία, τότε την εναλλάσσει με αυτήν που τρέχει. Πλεονεκτήματα Έχει αυξημένη διεκπεραιωτική ικανότητα Πολύ καλή απόδοση (απόκριση) για μικρές διεργασίες Σε σύγκριση με την SPN, δίνει αμέσως προτεραιότητα στις μικρές διεργασίες Μειονεκτήματα Μεγάλες διεργασίες μπορούν να υποφέρουν από παρατεταμένη στέρηση Είναι γενικά δύσκολο να υπολογίσουμε το χρόνο που χρειάζεται η κάθε διεργασία. Επίσης πρέπει να κρατούμε στοιχεία για το χρόνο που υπολείπεται η κάθε διεργασία.

Παράδειγμα Πολιτικής Shortest Remaining Time (SRT) Διερ. Άφ. Eπ. Α 3 Β 2 6 Γ 4 Δ 5 Ε 8 Διερ. ΧΟ ΧΟ/Επ. Α Β Γ Δ Ε 3 1 13 13/6 4 14 14/5 2 Μέσος χρόνος στο σύστημα =7.2 Μέσος ΧΟ/Επ. =1.59 Ε Δ Γ Γ B B A A 5 10 15 20

Πολιτική Highest Response Ration Next (HRRN) Ορίζουμε Wi: ο χρόνος που πέρασε στην ουρά η διεργασία i. Si: ο υπολογισμένος χρόνος για την εκτέλεση της διεργασίας i. Ο χρονοπρογραμματιστής επιλέγει την διεργασία με το μεγαλύτερο Ri και την τρέχει μέχρι το τέλος. Πλεονεκτήματα Έχει αυξημένη διεκπεραιωτική ικανότητα Πολύ καλή απόδοση (απόκριση) Μεγάλες διεργασίες δεν μπορούν να υποφέρουν από παρατεταμένη στέρηση Μειονεκτήματα Είναι γενικά δύσκολο να υπολογίσουμε το χρόνο που χρειάζεται η κάθε διεργασία. Σε κάθε βήμα πρέπει να υπολογίζουμε τα Ri για όλες τις διεργασίες

Παράδειγμα Πολιτικής Highest Response Ratio Next Διερ. Άφ. Eπ. Α 3 Β 2 6 Γ 4 Δ 5 Ε 8 Διερ. ΧΟ ΧΟ/Επ. Α Β Γ Δ Ε 3 1 7 7/6 9 9/4 14 14/5 7/2 Μέσος χρόνος στο σύστημα =8.0 Μέσος ΧΟ/Επ. =2.14 Ε Δ Γ B A 5 10 15 20

Πολιτικές με Κάποιας Μορφής Ανάδραση Σκεπτικό: Πολλές φορές είναι δύσκολο να υπολογιστεί ο χρόνος επεξεργασίας που χρειάζεται μια διεργασία. Οπόταν ορίζουμε μια διαδικασία κατά την οποία μεγάλες διεργασίες θα καθυστερούν περισσότερο απ’ ότι οι μικρές. Ο χρονοπρογραμματιστής επιλέγει ένα διάστημα q και εκτελεί κάθε διεργασία για q χρονικές μονάδες και στη συνέχεια εναλλάσσει διεργασία. Σε αντίθεση με τη πολιτική Round-Robin επιλέγει την διεργασία που μέχρι τώρα είχε τη λιγότερη ώρα στον επεξεργαστή. Πλεονεκτήματα Δίνει προτεραιότητα σε διεργασίες με Ε/Ε Δεν χρειάζεται εκτίμηση του χρόνου εκτέλεσης κάθε διεργασίας Μειονεκτήματα Πιθανόν να έχει μειωμένη διεκπεραιωτική ικανότητα εάν το q είναι πολύ μικρό. Μεγάλες διεργασίες κινδυνεύουν με παρατεταμένη στέρηση.

Παράδειγμα Πολιτικής Με Ανάδραση (q=1) Διερ. Άφ. Eπ. Α 3 Β 2 6 Γ 4 Δ 5 Ε 8 Διερ. ΧΟ ΧΟ/Επ. Α Β Γ Δ Ε 11 11/3 18 3 12 13 13/5 2 1 Μέσος χρόνος στο σύστημα =11.2 Μέσος ΧΟ/Επ. =2.65 Ε Δ Δ Δ Δ Γ Γ Γ B B B B B B A A A 5 10 15 20

Άλλες Μετρικές Απόδοσης Χρήση (utilization) του επεξεργαστή Σε όλα τα παραδείγματα η χρήση του επεξεργαστή είναι 100% Σε γενικές γραμμές είναι επιθυμητό ένα υψηλό ποσοστό χρήσης αλλά το 100% είναι «επικίνδυνο». Διεκπεραιωτική ικανότητα (throughput) Σε όλα τα παραδείγματα η διεκπεραιωτική ικανότητα ήταν 5 διεργασίες στις 20 χρονικές μονάδες Όλα τα παραδείγματα αγνοούσαν δύο πτυχές του προβλήματος του χρονοπρογραμματισμού Το κόστος εναλλαγής διεργασιών Διεργασίες με εντολές Ε/Ε

Χρονοπρογραμματισμός με Προτεραιότητες Οι διεργασίες μπορεί να κατανεμηθούν σε διάφορες ουρές οι οποίες έχουν διαφορετικές προτεραιότητες. Παραδείγματα Ο επεξεργαστής δεν παίρνει ποτέ διεργασίες από την ουρά k+1 εάν υπάρχουν διεργασίες στη k. Preemptive or non-preemptive Generalized Processor Sharing … CPU … k k+1 Οι προτεραιότητα κάθε διεργασίας μπορεί να υπολογίζεται δυναμικά ανάλογα με τους στόχους του συστήματος Π.χ., μια διεργασία που επιστρέφει από Ε/Ε εντολές μπορεί να πάρει ψηλότερη προτεραιότητα

Χρονοπρογραμματισμός με Λαχνούς Ο χρονοπρογραμματιστής επιλέγει τυχαία την επόμενη διεργασία. Εάν όλες οι διεργασίες έχουν την ίδια προτεραιότητα, τότε μακροπρόθεσμα θα πάρουν κατά μέσο όρο 1/n του χρόνου του επεξεργαστή. Εναλλακτικά, στην κάθε διεργασία μπορούμε να δώσουμε ένα αριθμό από «λαχνούς» οι οποίοι θα καθορίζουν την πιθανότητα να επιλεχθεί η συγκεκριμένη διεργασία Διεργασίες με περισσότερους λαχνούς έχουν μεγαλύτερη πιθανότητα επιλογής και επομένως ψηλότερη προτεραιότητα Αυτός ο αλγόριθμος επιλύει το δύσκολο πρόβλημα του καθορισμού της προτεραιότητας της κάθε διεργασίας με ένα σχετικά απλό τρόπο.

Χρονοπρογραμματισμός για Δίκαιο Μερίδιο (Fair Share) Υποθέστε ένα υπολογιστή με δύο χρήστες. Ο χρήστης 1 (Χ1) τρέχει τη διεργασία Α Ο χρήστης 2 (Χ2) τρέχει τις διεργασίες Β, Γ, Δ, Ε. Εάν χρησιμοποιήσουμε Round-Robin με ίσα διαστήματα q, τότε πιθανόν οι διεργασίες να εκτελεσθούν Α,Β,Γ,Δ,Ε,Α,Β,Γ,Δ,Ε,… Σαν αποτέλεσμα ο Χ1 παίρνει μόνο 20% του επεξεργαστή ενώ ο Χ2 τα υπόλοιπα 80%! Εναλλακτικά εάν υποχρεώσουμε το σύστημα να δίνει ίσο χρόνο στους δύο χρήστες, τότε οι διεργασίες θα εκτελεσθούν Α,Β,Α,Γ,Α,Δ,Α,Ε,Α,Β,Α,Γ,Α,Δ,… Εάν δώσουμε διπλάσιο χρόνο στον Χ2 από αυτόν του Χ1 Α,Β,Γ,Α,Δ,Ε, Α,Β,Γ,Α,Δ,Ε,…

Χρονοπρογραμματισμός στο Linux SCHED_FIFO για υποδιεργασίες πραγματικού χρόνου (real-time threads). SCHED_RR (round-robin) επίσης για υποδιεργασίες πραγματικού χρόνου. SCHED_OTHER για υποδιεργασίες μη πραγματικού χρόνου (non-real-time threads) Κάθε κατηγορία πραγματικού χρόνου έχει προτεραιότητα που κυμαίνεται μεταξύ 0-99 και κάθε SCHED_OTHER μεταξύ 100-139 Μικρότερος αριθμός σημαίνει μεγαλύτερη προτεραιότητα.

Χρονοπρογραμματισμός στο Linux: SCHED_FIFO Το ΛΣ δεν διακόπτει (non-preemptive) διεργασία αυτής της κατηγορίας εκτός από τις ακόλουθες περιπτώσεις Διεργασία SCHED_FIFO με ψηλότερη προτεραιότητα μπήκε στην κατάσταση «έτοιμη». Η διεργασία η οποία εκτελείται μπήκε στη κατάσταση «blocked». Η διεργασία η οποία εκτελείται εθελοντικά σταματά (sched_yield) Όταν η διεργασία η οποία εκτελείται διακόπτεται μπαίνει σε ουρά αντίστοιχη με την προτεραιότητα της. Όταν η διεργασία επανέρχεται στην κατάσταση «έτοιμη» τότε Εάν η διεργασία η οποία εκτελείται είναι χαμηλότερης προτεραιότητας τότε τη διακόπτει και παίρνει τον επεξεργαστή. Εάν περιμένουν περισσότερες από μια διεργασίες με την ίδια προτεραιότητα, τότε εκτελείται αυτή η οποία περίμενε περισσότερο.

Χρονοπρογραμματισμός στο Linux: SCHED_RR Παρόμοια με την SCHED_FIFO με μόνη διαφορά την ύπαρξη των χρονικών διαστημάτων q. Μόλις μια διεργασία συμπληρώσει το διάστημα της, διακόπτεται και επιλέγεται να εκτελεστεί μια διεργασία με προτεραιότητα μεγαλύτερη ή ίση με αυτή της διεργασίας που μόλις διακόπηκε. Διεργασίες με μεγαλύτερη προτεραιότητα μπορεί να έχουν μεγαλύτερο διάστημα απ’ ότι διεργασίες με μικρότερη προτεραιότητα.

Παράδειγμα Χρονοπρογραμματισμού στο Linux Διεργασία Κλάση Επεξεργασία Α SCHED_FIFO 3 Β SCHED_RR 6 Γ 4 Δ SCHED_OTHER 5 Ε 2 Ε Ε Δ Δ Δ Δ Δ Γ Γ Γ Γ B B B B B B A 5 10 15 20

Χρονοπρογραμματισμός στο Linux Το Linux χρησιμοποιεί δύο δομές (active and expired) για κάθε επεξεργαστή όπως πιο κάτω Struct prio_array { int nr_active; /*number of active processes*/ unsigned long bitmap[BITMAP_SIZE]; struct list_head queue[MAX_PRIO]; /*priority queues*/ } Υπάρχει μια ουρά για κάθε προτεραιότητα (MAX_PRIO=140) Το bitmap δείχνει ποίες ουρές είναι άδειες Το nr_active δείχνει το συνολικό αριθμό από ενεργοποιημένες διεργασίες

Χρονοπρογραμματισμός στο Linux Εκτελούνται πάντα οι διεργασίες στη δομή active. Όταν μια διεργασία συμπληρώσει το διάστημα της τότε μεταφέρεται στη δομή expired στην αντίστοιχη προτεραιότητα. Εάν η διεργασία διακοπεί πριν τον προβλεπόμενο χρόνο, τότε επιστρέφει πίσω στη δομή active. Μόλις αδειάσει η δομή active, τότε απλά η expired γίνεται η νέα active και η expired αρχικοποιείται σε άδεια και ο κύκλος επαναλαμβάνεται. Διεργασίες πραγματικού χρόνου επιστρέφουν πάντα στην δομή active. To Linux δίνει περισσότερη προτεραιότητα σε διεργασίες με εντολές Ε/Ε Αυξάνει την προτεραιότητα διεργασιών που περνούν πολλή ώρα μπλοκαρισμένες. Το διάστημα επεξεργασίας κάθε διεργασίας κυμαίνεται από 10 έως 200 ms.