Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΠόντιος Δαμασκηνός Τροποποιήθηκε πριν 9 χρόνια
1
Χρονοδρομολόγηση CPU Βασικές Αρχές Κριτήρια Χρονοδρομολόγησης
Αλγόριθμοι Χρονοδρομολόγησης
2
Βασικές Αρχές Μέγιστη εκμετάλλευση της CPU μέσω πολυπρογραμματισμού
Η εκτέλεση της διεργασίας αποτελείται από την εναλλαγή διαστημάτων (έντονης) χρήσης CPU και I/O.
3
Εκτέλεση διεργασίας
4
Χρονοδρομολογητής CPU
1. Αλλάζει από κατάσταση running σε waiting. 2. Αλλάζει από κατάσταση running σε ready. 3. Αλλάζει από κατάσταση waiting σε ready. 4. Ολοκληρώνει. Η χρονοδρομολόγηση σύμφωνα με τις περιπτώσεις 1 και 4 είναι μη προεκτοπιστική. Όλες οι άλλες περιπτώσεις αναφέρονται σε προεκτοπιστική χρονοδρομολόγηση.
5
Dispatcher O Dispatcher δίνει τον έλεγχο της CPU στην διεργασία που επιλέγεται από τον short-term scheduler. Απαιτούνται: Context switching Εναλλαγή σε user mode Μετακίνηση στο κατάλληλο σημείο μέσα στο πρόγραμμα για την επανεκκίνηση του.
6
Κριτήρια Χρονοδρομολόγησης
Εκμετάλλευση CPU – προσπάθεια να μην μείνει αδρανής η CPU Ρυθμοαπόδοση – αριθμός διεργασιών που ολοκληρώνουν την εκτέλεση τους στην μονάδα του χρόνου Χρόνος διεκπεραίωσης (Turnaround time) – ο χρόνος που απαιτείται για την εκτέλεση μίας συγκεκριμένης διεργασίας Χρόνος αναμονής – χρόνος αναμονής μίας διεργασίας στην ουρά «ready»
7
First-Come, First-Served (FCFS)
Διεργασίας Χρόνος P1 24 P2 3 P3 3 Σειρά άφιξης: P1 , P2 , P3 Το διάγραμμα χρονικής αλληλουχίας (Gantt) είναι: Χρονος αναμονής για P1 = 0; P2 = 24; P3 = 27 Μέσος χρόνος αναμονής : ( )/3 = 17 P1 P2 P3 24 27 30
8
FCFS Χρονοδρομολόγηση
Σειρά άφιξης διεργασιών: P2 , P3 , P1 Το διάγραμμα Gantt είναι: Χρόνος αναμονής P1 = 6; P2 = 0; P3 = 3 Μέσος χρόνος αναμονής: ( )/3 = 3 Βελτίωση σε σχέση με το προηγούμενο σενάριο. Convoy effect: μικρής διάρκειας διεργασίες αναμένουν τις διεργασίες μεγάλης διάρκειας. P1 P3 P2 6 3 30
9
Shortest-Job-First (SJR)
Για κάθε διεργασία προσδιορίζεται το μήκος της επόμενης περιόδου χρήσης της CPU. Αυτά τα μήκη χρησιμοποιούνται για να χρονοδρομολογηθεί η διεργασία με τον χαμηλότερο χρόνο. Δύο σχήματα: Μη προεκτοπιστικό – αν δοθεί η CPU σε μία διεργασία δεν μπορεί να της «αφαιρεθεί» εάν πρώτα δεν ολοκληρώσει την περίοδο χρήστης της CPU. Εκτοπιστικός – εάν έρθει μία νέα διεργασία με χρόνο χρήσης CPU μικρότερο από τον υπολειπόμενο χρόνο της τρέχουσας, αφαιρείται από την τρέχουσα ο έλεγχος. Το σχήμα είναι γνωστό ως Shortest-Remaining-Time-First (SRTF).
10
Παράδειγμα Non-Preemptive SJF
Διεργασία Χρόνος άφιξης Διάρκεια P P P P SJF (non-preemptive) Μέσος χρόνος αναμονής = ( )/4 - 4 P1 P3 P2 7 3 16 P4 8 12
11
Παράδειγμα Preemptive SJF
Διεργασία Χρόνος Άφιξης Διάρκεια P P P P SJF (preemptive) Μέσος χρόνος ανάμονής = ( )/4 - 3 P1 P3 P2 4 2 11 P4 5 7 16
12
Εκτίμηση του μήκους της περιόδου χρήσης CPU
Μπορούμε να εκτιμήσουμε το μήκος. Η εκτίμηση μπορεί να γίνει βάσει των παλαιότερων μετρήσεων, χρησιμοποιώντας exponential averaging. τn+1=α*tn+(1-α)*τn τn+1= εκτίμηση για την επόμενη περίοδο 1>=α>=0 τn= εκτίμηση για την τρέχουσα περίοδο tn= προηγούμενη μέτρηση
13
Παραδείγματα =0 =1 Εάν επεκτείνουμε τον τύπο έχουμε:
n+1 = n Η πρόσφατη ιστορία δεν έχει σημασία. =1 n+1 = tn Μόνο η πρόσφατη μέτρηση έχει σημασία. Εάν επεκτείνουμε τον τύπο έχουμε: n+1 = tn+(1 - ) tn -1 + … +(1 - )j tn -1 + … +(1 - )n=1 tn 0 Εάν το και το (1 - ) είναι μικρότερα ή ίσα από 1, ο κάθε όρος έχει μικρότερη σημασία (βάρος) από τον προηγούμενο όρο.
14
Χρονοδρομολόγηση βάσει προτεραιοτήτων
Σε κάθε διεργασία δίνεται αριθμός προτεραιότητας Η CPU εκχωρείται στη διεργασία με την υψηλότερη προτεραιότητα. Προεκτοπιστικό σχημα Μη-προεκτοπιστικό σχήμα Πρόβλημα λιμοκτονία – οι διεργασίες χαμηλής προτεραιότητας μπορεί να μην εκτελεστούν ποτέ. Λύση Γήρανση – καθώς εξελίσσεται ο χρόνος αυξάνεται η προτεραιότητα της διεργασίας.
15
Round Robin (RR) Η κάθε διεργασία «λαμβάνει» ένα τμήμα του χρόνου CPU (κβάντο), που συνήθως είναι της τάξης milliseconds. Μετά από αυτό το χρόνο, αφαιρείται ο έλεγχος της CPU από την διεργασία η οποία τοποθετείται στο τέλος της ready queue. Εάν υπάρχουν n διεργασίες στην ουρά και το χρονικό κβάντο είναι q, η κάθε διεργασία λαμβάνει το 1/n του χρόνου της CPU σε δέσμες των q χρονικών μονάδων. Καμμία διεργασία δεν περιμένει περισσότερο από (n-1)q χρονικές μονάδες. Επιδόσεις q μεγάλο FIFO q μικρό το q θα πρέπει να είναι μεγάλο σε σχέση με το χρονικό κόστος του context switching, διαφορετικά η επιβάρυνση είναι ανεπίτρεπτη.
16
Παράδειγμα RR με κβάντο = 20
Process Διάρκεια P1 53 P2 17 P3 68 P4 24 Διάγραμμα Χρονικής Αλληλουχίας: P1 P2 P3 P4 20 37 57 77 97 117 121 134 154 162
17
Χρονοδρομολόγηση Πολλαπλών Επιπέδων
Η Ready queue διαιρείται σε διάφορες ουρές : foreground (διαδραστικά) background (δέσμης) Η κάθε ουρά έχει τον δικό της αλγόριθμο χρονοδρομολόγησης, foreground – RR background – FCFS Και οι ίδιες οι ουρές χρονοδρομολογούνται. Χρονοδρομολόγηση σε σταθερές προτεραιότητες (π.χ., εξυπηρέτηση όλων των διεργασιών στο foreground, μετά των διεργασιών στο background). Ενδεχόμενο λιμοκτονίας. Τμήμα χρόνου – η κάθε ουρά λαμβάνει ένα ποσοστό του χρόνου της CPU στο οποίο μπορεί να χρονοδρομολογήσει τις διεργασίες της; π.χ., 80% στις foreground διεργασίες οι οποίες αντιμετωπίζονται RR 20% σε background διεργασίες που εξυπηρετούνται FCFS.
18
Χρονοδρομολόγηση πολλαπλών επιπέδων
19
Χρονοδρομολόγηση Πολλαπλών Επιπέδων με ανατροφοδότηση (Multilevel Feedback Queue)
Μία διεργασία μπορεί να μετακινηθεί σε διάφορες ουρές; Με αυτόν τον τρόπο μπορεί να υλοποιηθεί και η γήρανση. Ο χρονοδρομολογητής Multilevel-feedback-queue λειτουργεί σύμφωνα με τις παρακάτω παραμέτρους: Αριθμός ουρών Πολιτική εξυπηρέτησης της κάθε ουράς Σχήμα αναβάθμισης της κάθε διεργασίας Σχήμα υποβάθμισης της κάθε διεργασίας Προσδιορισμός της ουράς στην οποία θα καταχωρηθεί μία διεργασία
20
Παράδειγμα Multilevel Feedback Queue
3 ουρές διεργασιών: Q0 – κβάντο: 8 milliseconds Q1 – κβάντο: 16 milliseconds Q2 – FCFS Χρονοδρομολόγηση Μία νέα διεργασία μπαίνει στην Q0 η οποία εξυπηρετείται FCFS. Οταν αποκτάει τον έλεγχο της CPU, η διεργασία εξυπηρετείται για 8 milliseconds. Εάν δεν ολοκληρώσει σε 8 milliseconds, η διεργασία μετακινείται στην ουρά Q1. Στην Q1 η διεργασία εξυπηρετείται FCFS για 16 milliseconds. Εάν πάλι δεν ολοκληρώσει, της αφαιρείται ο έλεγχος και μετακινείται στην Q2.
21
Multilevel Feedback Queue
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.