140 likes | 369 Views
Χρονοδρομολόγηση CPU. Βασικές Αρχές Κριτήρια Χρονοδρομολόγησης Αλγόριθμοι Χρονοδρομολόγησης. Βασικές Αρχές. Μέγιστη εκμετάλλευση της CPU μέσω πολυπρογραμματισμού Η εκτέλεση της διεργασίας αποτελείται από την εναλλαγή διαστημάτων (έντονης) χρήσης CPU και I/O. Εκτέλεση διεργασίας.
E N D
Χρονοδρομολόγηση CPU • Βασικές Αρχές • Κριτήρια Χρονοδρομολόγησης • Αλγόριθμοι Χρονοδρομολόγησης
Βασικές Αρχές • Μέγιστη εκμετάλλευση της CPU μέσω πολυπρογραμματισμού • Η εκτέλεση της διεργασίας αποτελείται από την εναλλαγή διαστημάτων (έντονης) χρήσης CPU και I/O.
Χρονοδρομολογητής CPU • Επιλέγει, από τις διεργασίες που βρίσκονται στην μνήμη και είναι έτοιμες προς εκτέλεση, αυτή στην οποία θα ανατεθεί η CPU. • Οι αποφάσεις χρονοδρομολόγησης CPU λαμβάνονται όταν μία διεργασία: 1. Αλλάζει από κατάσταση running σε waiting. 2. Αλλάζει από κατάσταση running σε ready. 3. Αλλάζει από κατάσταση waiting σε ready. 4. Ολοκληρώνει. • Η χρονοδρομολόγηση σύμφωνα με τις περιπτώσεις 1 και 4 είναι μη προεκτοπιστική. • Όλες οι άλλες περιπτώσεις αναφέρονται σε προεκτοπιστική χρονοδρομολόγηση.
Dispatcher • O Dispatcher δίνει τον έλεγχο της CPU στην διεργασία που επιλέγεται από τον short-term scheduler.Απαιτούνται: • Contextswitching • Εναλλαγή σε user mode • Μετακίνηση στο κατάλληλο σημείο μέσα στο πρόγραμμα για την επανεκκίνηση του.
Κριτήρια Χρονοδρομολόγησης • Εκμετάλλευση CPU– προσπάθεια να μην μείνει αδρανής η CPU • Ρυθμοαπόδοση – αριθμός διεργασιών που ολοκληρώνουν την εκτέλεση τους στην μονάδα του χρόνου • Χρόνος διεκπεραίωσης (Turnaround time) – ο χρόνος που απαιτείται για την εκτέλεση μίας συγκεκριμένης διεργασίας • Χρόνος αναμονής – χρόνος αναμονής μίας διεργασίας στην ουρά «ready»
First-Come, First-Served (FCFS) P1 P2 P3 0 24 27 30 Διεργασίας Χρόνος P1 24 P2 3 P3 3 • Σειρά άφιξης: P1 , P2 , P3 Το διάγραμμα χρονικής αλληλουχίας (Gantt)είναι: • Χρονος αναμονής γιαP1 = 0; P2 = 24; P3 = 27 • Μέσος χρόνος αναμονής : (0 + 24 + 27)/3 = 17
FCFS Χρονοδρομολόγηση P2 P3 P1 0 3 6 30 Σειρά άφιξης διεργασιών:P2 , P3 , P1 • Το διάγραμμα Gantt είναι: • Χρόνος αναμονής P1 = 6;P2 = 0; P3 = 3 • Μέσος χρόνος αναμονής:(6 + 0 + 3)/3 = 3 • Βελτίωση σε σχέση με το προηγούμενο σενάριο. • Convoy effect: μικρής διάρκειας διεργασίες αναμένουν τις διεργασίες μεγάλης διάρκειας.
Shortest-Job-First (SJR) • Για κάθε διεργασία προσδιορίζεται το μήκος της επόμενης περιόδου χρήσης της CPU. Αυτά τα μήκη χρησιμοποιούνται για να χρονοδρομολογηθεί η διεργασία με τον χαμηλότερο χρόνο. • Δύο σχήματα: • Μη προεκτοπιστικό – αν δοθεί η CPU σε μία διεργασία δεν μπορεί να της «αφαιρεθεί» εάν πρώτα δεν ολοκληρώσει την περίοδο χρήστης της CPU. • Εκτοπιστικός – εάν έρθει μία νέα διεργασία με χρόνο χρήσης CPU μικρότερο από τον υπολειπόμενο χρόνο της τρέχουσας, αφαιρείται από την τρέχουσα ο έλεγχος. Το σχήμα είναι γνωστό ως Shortest-Remaining-Time-First (SRTF).
Παράδειγμα Non-Preemptive SJF P1 P3 P2 P4 0 3 7 8 12 16 ΔιεργασίαΧρόνος άφιξης Διάρκεια P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 • SJF (non-preemptive) • Μέσος χρόνος αναμονής = (0 + 6 + 3 + 7)/4 - 4
Παράδειγμα Preemptive SJF P1 P2 P3 P2 P4 P1 11 16 0 2 4 5 7 ΔιεργασίαΧρόνος ΆφιξηςΔιάρκεια P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 • SJF (preemptive) • Μέσος χρόνος ανάμονής = (9 + 1 + 0 +2)/4 - 3
Με βάση τον Υπολειπόμενο Χρόνο Εκτέλεσης μίας διεργασίας • O χρονοδρομολογητής διαλέγει για εκτέλεση τη διεργασία εκείνη για την οποία εκτιμάται ότι έχει το λιγότερο υπολειπόμενο χρόνο εκτέλεσης (shortest remaining time). • H άφιξη στην ουρά των διεργασιών που είναι έτοιμες για εκτέλεση μίας διεργασίας που ο υπολειπόμενος χρόνος εκτέλεσής της είναι μικρότερος από αυτόν της διεργασίας που εκτελείται εκείνη τη στιγμή, οδηγεί σε αναστολή της εκτέλεσης της τελευταίας αυτής διεργασίας.
Round Robin (RR) • Η κάθε διεργασία «λαμβάνει» ένα τμήμα του χρόνου CPU (κβάντο), που συνήθως είναι της τάξης 10-100 milliseconds. Μετά από αυτό το χρόνο, αφαιρείται ο έλεγχος της CPU από την διεργασία η οποία τοποθετείται στο τέλος της ready queue. • Εάν υπάρχουν nδιεργασίες στην ουράκαι το χρονικό κβάντο είναι q, η κάθε διεργασία λαμβάνει το 1/nτου χρόνου της CPU σε δέσμες των qχρονικών μονάδων. Καμμία διεργασία δεν περιμένει περισσότερο από (n-1)q χρονικές μονάδες. • Επιδόσεις • qμεγάλο FIFO • q μικρό το q θα πρέπει να είναι μεγάλο σε σχέση με το χρονικό κόστος του context switching, διαφορετικά η επιβάρυνση είναι ανεπίτρεπτη.
Παράδειγμα RR με κβάντο = 20 P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 0 20 37 57 77 97 117 121 134 154 162 ProcessΔιάρκεια P1 53 P2 17 P3 68 P4 24 • Διάγραμμα Χρονικής Αλληλουχίας: