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

Σχετικά έγγραφα
Δρομολόγηση σε σύστημα ενός επεξεργαστή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ENOTHTA 5 XPONO POMOΛOΓHΣH

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

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

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

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

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

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

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

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

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

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

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης

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

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

ΛΟΓΙΣΜΙΚΟ (software)

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

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

Εισαγωγή στους Υπολογιστές

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

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

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

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

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

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

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems

[4] Στόχοι. Λογισμικό. Υπολογιστικά συστήματα: Στρώματα

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

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

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

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Εισαγωγή

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

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Παράμετροι Συστημάτων Αναμονής Τύπος Little

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Λειτουργικά συστήματα

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

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

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

3. Προσομοίωση ενός Συστήματος Αναμονής.

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

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

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ H/Y

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

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

Transcript:

Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 9 «Δρομολόγηση Διεργασιών» Διδάσκων: Δ, Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1

Δρομολόγηση σε σύστημα ενός επεξεργαστή 1. Εισαγωγή 2. Κριτήρια αποτίμησης της απόδοσης 3. Κριτήρια βελτιστοποίησης 4. Τύποι δρομολόγησης του επεξεργαστή 5. Πολιτικές δρομολόγησης 6. Αλγόριθμοι Δρομολόγησης 1. First Come First Served (FCFS) 2. Shortest Job First (SJF) 3. Shortest Remaining Time First (SRTF) 4. Round Robin (RR) 2

1. Εισαγωγή Δρομολόγηση σε υπολογιστικά συστήματα ενός επεξεργαστή Στόχοι της δρομολόγησης Μεγάλη χρήση του επεξεργαστή (CPU utilization) Υψηλή ρυθμο-απόδοση (High throughput) Πλήθος διεργασιών που ολοκληρώνονται στη μονάδα του χρόνου Μικρός χρόνος απόκρισης (response time) Ο χρόνος που μεσολαβεί από την υποβολή μιας απαίτησης μέχρι την έναρξη της απόκρισης του συστήματος Ορισμένοι στόχοι είναι αλληλοσυγκρουόμενοι 3

2. Κριτήρια αποτίμησης της απόδοσης Δικαιοσύνη (fairness): συχνή χρήση της CPU από κάθε διεργασία Αποφυγή λιμοκτονίας Χρησιμοποίηση (utilization): το ποσοστό του χρόνου κατά το οποίο μια συσκευή χρησιμοποιείται (χρόνος χρήσης / συνολικός χρόνος) Ρυθμο-απόδοση (throughput): ο αριθμός των διεργασιών που ολοκληρώνονται σε μια χρονική περίοδο (διεργασίες /second) Χρόνος επιστροφής (turnaround time): ο συνολικός χρόνος εκτέλεσης μιας διεργασίας από τη στιγμή που υποβληθεί στο σύστημα μέχρι την ολοκλήρωση (seconds) Περιλαμβάνει και το χρόνο αναμονής της διεργασίας 4

Κριτήρια αποτίμησης της απόδοσης Χρόνος αναμονής (waiting time): Ο χρόνος που σπαταλιέται αναμένοντας στην ουρά αναμονής έτοιμων διεργασιών (seconds) Χρόνος απόκρισης (response time): ο χρόνος που μεσολαβεί από τη στιγμή που μια διεργασία υποβάλλεται στο σύστημα μέχρι τη στιγμή που παράγεται η πρώτη απόκριση (μέχρι πρώτη φορά να καταλάβει τη CPU) (seconds) Εναλλαγές πλαισίων (context switches): χρόνος που σπαταλιέται για να γίνει εναλλαγή διεργασιών στη CPU Πολυπλοκότητα του αλγορίθμου δρομολόγησης: χρόνος που απαιτείται για την επιλογή της επόμενης διεργασίας από τη λίστα των έτοιμων διεργασιών 5

3. Κριτήρια βελτιστοποίησης Μεγιστοποίηση: Χρήσης της CPU Ρυθμοαπόδοσης Ελαχιστοποίηση των χρόνων: επιστροφής αναμονής απόκρισης Τα κριτήρια αυτά είναι συχνά αλληλοσυγκρουόμενα 6

4. Τύποι δρομολόγησης του επεξεργαστή 7

Τύποι δρομολόγησης Μακροπρόθεσμη (long-term): καθορίζει αν μία νέα διεργασία θα γίνει αποδεκτή και θα εισέλθει στην ουρά έτοιμων διεργασιών ή θα αναμένει Μεσοπρόθεσμη (medium-term): επιλέγει ποια διεργασία θα προστεθεί στις διεργασίες που βρίσκονται ολόκληρες ή εν μέρει στην κύρια μνήμη, ή θα αφαιρεθεί από την κύρια μνήμη Βραχυπρόθεσμη (short-term): επιλέγει ποια από τις έτοιμες διεργασίες θα εκτελεστεί (θα καταλάβει τη CPU) 8

Μακροπρόθεσμη δρομολόγηση Καθορίζει αν μία νέα διεργασία θα γίνει αποδεκτή και θα εισέλθει στην ουρά έτοιμων διεργασιών ή θα αναμένει Ελέγχει τον βαθμό πολυπρογραμματισμού του συστήματος Αν γίνουν αποδεκτές πολλές διεργασίες Λιγότερες διεργασίες θα ανασταλούν, συνεπώς θα υπάρξει καλύτερη χρήση της CPU Κάθε διεργασία θα λάβει λιγότερο ποσοστό χρόνου της CPU, συνεπώς η ρυθμο-απόδοση θα μειωθεί Θα πραγματοποιηθούν περισσότερες εναλλαγές πλαισίων Ο μακροπρόθεσμος δρομολογητής προσπαθεί να διατηρήσει μια ισορροπία ανάμεσα στις προοριζόμενες για τον επεξεργαστή διεργασίες (processor-bound) και στις προοριζόμενες για λειτουργίες Ι/Ο διεργασίες (I/O-bound) 9

Μεσοπρόθεσμη δρομολόγηση Επιλέγει ποια διεργασία θα προστεθεί στις διεργασίες που βρίσκονται ολόκληρες ή εν μέρει στην κύρια μνήμη, ή θα αφαιρεθεί από την κύρια μνήμη Μετακινεί διεργασίες από το δίσκο προς την κύρια μνήμη και αντίστροφα, ώστε να ελευθερωθεί η κύρια μνήμη Σχετίζεται με τις καταστάσεις ready-suspended και blockedsuspended των διεργασιών Διεργασίες που είναι αδρανείς για πολύ ώρα, ή έχουν χαμηλή προτεραιότητα, ή προκαλούν πολλά σφάλματα σελίδας, ή καταλαμβάνουν πολύ μνήμη μπορεί να αφαιρεθούν από την κύρια μνήμη και να τοποθετηθούν στο δίσκο Οι αποφάσεις για εναλλαγή των διεργασιών βασίζονται στην ανάγκη της διαχείρισης του πολυπρογραμματισμού Γίνεται από το λογισμικό της διαχείρισης μνήμης 10

Βραχυπρόθεσμη δρομολόγηση Είναι το αντικείμενο αυτής της ενότητας Αποφασίζει ποια διεργασία πρόκειται να εκτελεστεί ως επόμενη στη CPU (αναφέρεται συνήθως ως CPU scheduling) Επιλέγει ποια από τις έτοιμες διεργασίες θα εκτελεστεί Σχετίζεται με τις καταστάσεις ready, running, blocked Είναι γνωστή και ως διεκπεραίωση (ο βραχυπρόθεσμος δρομολογητής λέγεται διεκπεραιωτής dispatcher). Ενεργοποιείται από ένα γεγονός που μπορεί να οδηγήσει στην επιλογή μιας άλλης διεργασίας για εκτέλεση (εναλλαγή διεργασίας): διακοπές ρολογιού διακοπές I/O κλήσεις του Λ.Σ. σήματα 11

Κριτήρια βραχυπρόθεσμης δρομολόγησης Κριτήρια προσανατολισμένα στο χρήστη Χρόνος απόκρισης Χρόνος επιστροφής Κριτήρια προσανατολισμένα στο σύστημα Χρησιμοποίηση επεξεργαστή Δικαιοσύνη Ρυθμοαπόδοση 12

Διεκπεραιωτής (Dispatcher) Ο έλεγχος της CPU δίνεται στη διεργασία που έχει επιλεγεί από τον βραχυπρόθεσμο δρομολογητή. Η εκχώρηση αυτή περιλαμβάνει : Εναλλαγή πλαισίου Εναλλαγή σε κατάσταση χρήστη Άλμα στην κατάλληλη διεύθυνση του προγράμματος του χρήστη για την εκκίνηση του προγράμματος Dispatch latency (λανθάνουσα κατάσταση διεκπεραιωτή): χρόνος που χρειάζεται ο διεκπεραιωτής για να σταματήσει μια διεργασία και να αρχίσει την εκτέλεση μιας άλλης 13

Προτεραιότητες Εφαρμόζονται με την ύπαρξη πολλαπλών ουρών έτοιμων διεργασιών όπου κάθε ουρά αντιπροσωπεύει ένα επίπεδο προτεραιότητας Ο δρομολογητής επιλέγει πάντοτε μια διεργασία υψηλότερης προτεραιότητας έναντι μιας με μικρότερη προτεραιότητα Η χαμηλής προτεραιότητας διεργασίες μπορεί να υποφέρουν από παρατεταμένη στέρηση Επιτρέπεται σε μια διεργασία να αλλάζει την προτεραιότητά της, ανάλογα με το διάστημα που βρίσκεται στο σύστημα ή με το ιστορικό εκτέλεσής της 14

Διάγραμμα ουρών κατά τη δρομολόγηση 15

Ο κύκλος καταιγισμού CPU-I/O CPU - I/O burst cycle: χαρακτηρίζει την εκτέλεση της διεργασίας, που εναλλάσσεται μεταξύ της χρήσης της CPU και την πραγματοποίηση I/O. Οι χρόνοι της CPU είναι γενικά πολύ μικρότεροι των χρόνων για I/O (burst = καταιγισμός) Οι διεργασίες απαιτούν εναλλασσόμενη χρήση του επεξεργαστή και των μονάδων I/O, με επαναλαμβανόμενο τρόπο Κάθε κύκλος αποτελείται από ένα CPU burst, διάρκειας συνήθως μερικών msecs, ακολουθούμενο από ένα (συνήθως μεγαλύτερο) I/O burst Μια διεργασία τερματίζει κατά τη διάρκεια ενός CPU burst Οι προοριζόμενες για τον επεξεργαστή διεργασίες έχουν μεγαλύτερα CPU bursts από εκείνα όσων προορίζονται για Ι/Ο 16

5. Πολιτικές δρομολόγησης Η πολιτική δρομολόγησης είναι μία συνάρτηση επιλογής που αποφασίζει ποια διεργασία στην ουρά των έτοιμων διεργασιών επιλέγεται ως επόμενη για εκτέλεση Η κατάσταση απόφασης καθορίζει τις χρονικές στιγμές κατά τις οποίες εξετάζεται η συνάρτηση επιλογής Τύποι πολιτικών δρομολόγησης Χωρίς προεκχώρηση (Non-preemption) Κάθε φορά που μια διεργασία βρίσκεται σε εκτελούμενη κατάσταση συνεχίζει να εκτελείται μέχρι να τερματιστεί ή να ανασταλεί από μόνη της περιμένοντας για την ολοκλήρωση I/O Με προεκχώρηση (Preemption) Η τρέχουσα εκτελούμενη διεργασία μπορεί να διακοπεί και να έχει μετακινηθεί σε κατάσταση ready από το Λ.Σ. Διευκολύνει την καλύτερη εξυπηρέτηση μιας και κάθε διεργασία δεν μονοπωλεί τη χρήση του επεξεργαστή για μεγάλο χρονικό διάστημα 17

Ο δρομολογητής της CPU Ο δρομολογητής της CPU επιλέγει από τις έτοιμες διεργασίες που βρίσκονται στην κύρια μνήμη Είναι συστατικό του Λ.Σ. Είναι από μόνος του μια διεργασία Χρησιμοποιεί τους πόρους του συστήματος Ειδικότερα το χρόνο της CPU και τη μνήμη Δεν θα πρέπει να καταναλώνει σημαντικό χρόνο της CPU, διαφορετικά η επιβράδυνση θα είναι μεγάλη 18

Παράγοντες που επιδρούν στη δρομολόγηση Παράγοντες Αν η διεργασία είναι CPU-bound ή I/O-bound Αν η διεργασία είναι αλληλεπιδραστική ή batch Προτεραιότητα διεργασιών Χρόνος που έχει εκτελεστεί Χρόνος που απαιτείται για να ολοκληρωθεί Συχνότητα προεκχώρησης Συχνότητα εμφάνισης σφαλμάτων σελίδας Ανεξάρτητα από τον αλγόριθμο δρομολόγησης που χρησιμοποιείται, δεν είναι δυνατόν να ωφεληθεί μια κατηγορία διεργασιών χωρίς να υπάρξει επίπτωση στις υπόλοιπες Παράδειγμα: μια μικρή βελτίωση για τις μικρές διεργασίες (π.χ. στον χρόνο αναμονής) προκαλεί δυσανάλογη επιβράδυνση στις μεγάλες διεργασίες. 19

6. Αλγόριθμοι Δρομολόγησης Καθορίζουν τον τρόπο επιλογής της επόμενης προς εκτέλεση διεργασίας καθώς και τη σειρά με την οποία εκτελούνται οι διεργασίες Ορίζουν τις ενέργειες εκ μέρους του δρομολογητή Τύποι αλγορίθμων δρομολόγησης Προεκχωρούμενοι, μη προεκχωρούμενοι Παραδείγματα αλγορίθμων δρομολόγησης FCFS, SJF, SRTF, priority-based, round robin multilevel, multilevel feedback Οι αλγόριθμοι δρομολόγησης εφαρμόζονται ανά CPU burst της εκάστοτε διεργασίας 20

Μη προεκχωρούμενη δρομολόγηση Μια διεργασία παραμένει στη CPU μέχρι να απελευθερώσει από μόνη της τη CPU Μεγάλοι χρόνοι αναμονής και απόκρισης Ενδεχόμενο παρατεταμένης στέρησης Απλή και εύκολη στην υλοποίηση Δεν είναι κατάλληλη για πολυχρηστικά συστήματα 21

Προεκχωρούμενη δρομολόγηση Η εκτέλεση μιας διεργασίας μπορεί να διακόπτεται από το ΛΣ οποιαδήποτε στιγμή. Πιθανές αιτίες: Η άφιξη μιας νέας διεργασίας με υψηλότερη προτεραιότητα Η πρόκληση μιας διακοπής Η αλλαγή της κατάστασης μιας διεργασίας Η υπέρβαση ενός χρονικού ορίου Εμποδίζεται η μονοπώληση της χρήσης της CPU από μία διεργασία Μπορεί να οδηγήσει σε συνθήκες ανταγωνισμού Επιλύονται χρησιμοποιώντας συγχρονισμό μεταξύ των διεργασιών 22

Παραδείγματα αλγορίθμων δρομολόγησης 1. FCFS (First Come First Served) πρώτη ήλθε πρώτη εξυπηρετήθηκε 2. SJF ή SPN (Shortest Job First ή Shortest Process (Job) Next) η συντομότερη διεργασία πρώτη 3. SRTF (Shortest Remaining Time First) - η διεργασία με το μικρότερο εναπομείναντα χρόνο πρώτη 4. RR (Round Robin) εξυπηρέτηση εκ περιτροπής 23

6.1. First-Come, First-Served (FCFS) Βασικές αρχές Οι διεργασίες εξυπηρετούνται με τη σειρά που φθάνουν Ακόμη και αν φθάνουν την ίδια χρονική στιγμή, η σειρά άφιξης είναι διακριτή, αλλιώς η διεργασία που θα εξυπηρετηθεί κατά προτεραιότητα επιλέγεται τυχαία Κατάσταση απόφασης : χωρίς προεκχώρηση Η διεργασία εκτελείται μέχρι να ανασταλεί από μόνη της Είναι πολύ απλός αλγόριθμος και υλοποιείται εύκολα αλλά είναι ακατάλληλος για συστήματα πολλών χρηστών. 24

FCFS - ιδιότητες Χρησιμοποιεί μια ουρά FIFO Η επιλογή της επόμενης διεργασίας είναι ταχύτατη και ανεξάρτητη από το πλήθος των διεργασιών στην ουρά των έτοιμων διεργασιών Συχνά προκύπτουν μεγάλοι χρόνοι αναμονής και απόκρισης 25

FCFS - μειονεκτήματα Μια διεργασία που δεν πραγματοποιεί I/O θα μονοπωλεί τη χρήση του επεξεργαστή Ευνοούνται οι προοριζόμενες για τη CPU διεργασίες Οι προοριζόμενες για I/O διεργασίες θα περιμένουν μέχρι να ολοκληρωθούν οι προοριζόμενες για τη CPU διεργασίες. Θα περιμένουν ακόμη και αν οι I/O λειτουργίες τους έχουν ολοκληρωθεί, καθώς χάνουν τη σειρά τους όταν μπλοκάρουν για να πραγματοποιηθεί το I/O Υπάρχουν μεγάλες διακυμάνσεις στον μέσο χρόνο επιστροφής Είναι ακατάλληλος αλγόριθμος για αλληλεπιδραστικά συστήματα 26

FCFS - παράδειγμα Proces s # Arriv al Time Burs t Length Priority 0 6 1 0 15 1 P3 0 3 1 P4 0 4 1 P5 0 2 1 0 5 10 15 20 25 30 27

FCFS - παράδειγμα Proces s # Arriv al Time Burs t Length Priority 0 6 1 0 15 1 P3 0 3 1 P4 0 4 1 P5 0 2 1 0 5 10 15 20 25 30 28

FCFS - παράδειγμα Proces s # Arriv al Time Burs t Length Priority 0 6 1 0 15 1 P3 0 3 1 P4 0 4 1 P5 0 2 1 0 5 10 15 20 25 30 29

FCFS - παράδειγμα Proces s # Arriv al Time Burs t Length Priority 0 6 1 0 15 1 P3 0 3 1 P4 0 4 1 P5 0 2 1 P3 0 5 10 15 20 25 30 30

FCFS - παράδειγμα Proces s # Arriv al Time Burs t Length Priority 0 6 1 0 15 1 P3 0 3 1 P4 0 4 1 P5 0 2 1 P3 P4 0 5 10 15 20 25 30 31

FCFS - παράδειγμα Proces s # Arriv al Time Burs t Length Priority 0 6 1 0 15 1 P3 0 3 1 P4 0 4 1 P5 0 2 1 P3 P4 P5 0 5 10 15 20 25 30 32

FCFS - παράδειγμα Proces s # Arriv al Time Burs t Length Priority 0 6 1 0 15 1 P3 0 3 1 P4 0 4 1 P5 0 2 1 P3 P4 P5 0 5 10 15 20 25 30 Process # Waiting Time Response Time Turnaround Time #of Context Sw itches 0 0 6 1 6 6 21 1 P3 21 21 24 1 P4 24 24 28 1 P5 28 28 30 1 Av erage 79/5 = 15.8 79/5 = 15.8 21.8 1 33

Κριτήρια αποτίμησης της απόδοσης Χρόνος επιστροφής (turnaround time): ο συνολικός χρόνος εκτέλεσης μιας διεργασίας από τη στιγμή που υποβληθεί στο σύστημα μέχρι την ολοκλήρωση (seconds) Περιλαμβάνει και το χρόνο αναμονής της διεργασίας Χρόνος αναμονής (waiting time): Ο χρόνος που σπαταλιέται αναμένοντας στην ουρά αναμονής έτοιμων διεργασιών (seconds) Χρόνος απόκρισης (response time): ο χρόνος που μεσολαβεί από τη στιγμή που μια διεργασία υποβάλλεται στο σύστημα μέχρι τη στιγμή που παράγεται η πρώτη απόκριση (μέχρι πρώτη φορά να καταλάβει τη CPU) (seconds) Χρήσιμη σχέση: waiting time=turnaround time burst length 34

6.2. Shortest-Job-First (SJF) Η διεργασία δηλώνει το χρόνο καταιγισμού της στην CPU Από τις έτοιμες διεργασίες επιλέγεται αυτή με το μικρότερο χρόνο καταιγισμού Δύο σχήματα: Non-Preemptive αν εκχωρηθεί η CPU, η διεργασία δεν προεκχωρείται μέχρι να ολοκληρωθεί ο καταιγισμός της. Preemptive αν υπάρξει μια νέα διεργασία με χρόνο καταιγισμού της CPU μικρότερο από τον εναπομένοντα χρόνο της τρέχουσας διεργασίας, τότε την αντικαθιστά. Η περίπτωση με προεκχώρηση είναι γνωστή και ως ο αλγόριθμος: Η διεργασία με το μικρότερο εναπομείναντα χρόνο πρώτη (Shortest-Remaining-Time-First (SRTF). Είναι η βέλτιστη λύση: δίνει τον ελάχιστο μέσο χρόνο αναμονής για ένα δεδομένο σύνολο διεργασιών. 35

SJF Βασικές Αρχές Επιλέγεται η διεργασία με το μικρότερο χρόνο καταιγισμού στη CPU Ενσωματώνει αναμφίβολα προτεραιότητες : οι συντομότερες διεργασίες έχουν δεδομένη προτεραιότητα Αποτελεί μια προφανή βελτίωση του αλγορίθμου FCFS Απαιτείται ο υπολογισμός του χρόνου καταιγισμού (CPU burst time) για κάθε διεργασία 36

SJF ιδιότητες Δίνει πολύ καλύτερο μέσο χρόνο αναμονής σε σχέση με τον αλγόριθμο FCFS Η έλλειψη προεκχώρησης δεν είναι κατάλληλη σε ένα περιβάλλον καταμερισμού χρόνου Απαιτείται η γνώση των χρόνων καταιγισμού στη CPU που γενικά είναι δύσκολο έως να υπολογιστούν στην πράξη Η διαδικασία επιλογής της επόμενης διεργασίας είναι περισσότερο σύνθετη από αυτήν του FCFS Είναι πιθανή η παρατεταμένη στέρηση Αν νέες μικρής διάρκειας διεργασίας φθάνουν στο σύστημα οι προγενέστερες, μεγάλης διάρκειας διεργασίες, δεν θα εξυπηρετηθούν ποτέ 37

SJF παράδειγμα 1 Proces s # Arriv al Time Burs t Length Priority 0 6 1 0 15 1 P3 0 3 1 P4 0 4 1 P5 0 2 1 P5 0 5 10 15 20 25 30 38

SJF παράδειγμα 1 Proces s # Arriv al Time Burs t Length Priority 0 6 1 0 15 1 P3 0 3 1 P4 0 4 1 P5 0 2 1 P5 P3 0 5 10 15 20 25 30 39

SJF παράδειγμα 1 Proces s # Arriv al Time Burs t Length Priority 0 6 1 0 15 1 P3 0 3 1 P4 0 4 1 P5 0 2 1 P5 P3 P4 0 5 10 15 20 25 30 40

SJF παράδειγμα 1 Proces s # Arriv al Time Burs t Length Priority 0 6 1 0 15 1 P3 0 3 1 P4 0 4 1 P5 0 2 1 P5 P3 P4 0 5 10 15 20 25 30 41

SJF παράδειγμα 1 Proces s # Arriv al Time Burs t Length Priority 0 6 1 0 15 1 P3 0 3 1 P4 0 4 1 P5 0 2 1 P5 P3 P4 0 5 10 15 20 25 30 42

SJF παράδειγμα 1 Proces s # Arriv al Time Burs t Length Priority 0 6 1 0 15 1 P3 0 3 1 P4 0 4 1 P5 0 2 1 P5 P3 P4 0 5 10 15 20 25 30 Process # Waiting Time Response Time Turnaround Time #of Context Sw itches 9 9 15 1 15 15 30 1 P3 2 2 56 1 P4 5 5 9 1 P5 0 0 2 1 Av erage 31/5 = 6.2 31/5 = 6.2 6162/5 = 12.42 1 43

SJF παράδειγμα 2 Proces s # Arriv al Time Burs t Length Priority 0 6 1 3 15 1 P3 5 3 1 P4 8 4 1 P5 14 2 1 : 6 ready queue at time 0 P3 P4 P5 0 5 10 15 20 25 30 44

SJF παράδειγμα 2 Proces s # Arriv al Time Burs t Length Priority 0 6 1 3 15 1 P3 5 3 1 P4 8 4 1 P5 14 2 1 : 6 : 15 ready queue at time 3 P3 P4 P5 0 5 10 15 20 25 30 45

SJF παράδειγμα 2 Proces s # Arriv al Time Burs t Length Priority 0 6 1 3 15 1 P3 5 3 1 P4 8 4 1 P5 14 2 1 : 6 : 15 : 15 P3: 3 ready queue at time 5 P3 P3 P4 P5 0 5 10 15 20 25 30 46

SJF παράδειγμα 2 Proces s # Arriv al Time Burs t Length Priority 0 6 1 3 15 1 P3 5 3 1 P4 8 4 1 P5 14 2 1 : 6 : 15 : 15 P3: 3 : 15 P4: 4 P3 P4 P3 P4 P5 0 5 10 15 20 25 30 47

SJF παράδειγμα 2 Proces s # Arriv al Time Burs t Length Priority 0 6 1 3 15 1 P3 5 3 1 P4 8 4 1 P5 14 2 1 : 6 : 15 : 15 P3: 3 : 15 P4: 4 : 15 P3 P4 P3 P4 P5 0 5 10 15 20 25 30 48

SJF παράδειγμα 2 Proces s # Arriv al Time Burs t Length Priority 0 6 1 3 15 1 P3 5 3 1 P4 8 4 1 P5 14 2 1 : 6 : 15 : 15 P3: 3 : 15 P4: 4 : 15 P5: 2 P3 P4 P5 P3 P4 P5 0 5 10 15 20 25 30 49

SJF παράδειγμα 2 Proces s # Arriv al Time Burs t Length Priority 0 6 1 3 15 1 P3 5 3 1 P4 8 4 1 P5 14 2 1 : 6 : 15 : 15 P3: 3 : 15 P4: 4 : 15 P5: 2 P3 P4 P5 0 P3 Process 5# P4 Waiting Time 10 P5 Response 15 Turnaround 20 #of Context 25 30 Time Time Sw itches 0 0 6 1 13-3 = 10 13-3 = 10 28-3 = 25 1 P3 6-5 = 1 6-5 = 1 9-5 = 4 1 P4 9-8 = 1 9-8 = 1 13-8 = 5 1 P5 28-14 = 14 28-14 = 14 30-14 = 16 1 Av erage 26/5 = 5.2 26/5 = 5.2 50/5 = 10 1 56/5=11.2 50

6.3. Shortest Remaining Time First (SRTF) Βασικές αρχές Επιλέγεται η διεργασία με το μικρότερο εναπομείναντα χρόνο Ο εναπομένων χρόνος είναι ο συνολικός χρόνος καταιγισμού μείον το χρόνο που παρέμεινε προς εξυπηρέτηση η διεργασία στη CPU μέχρι την τρέχουσα χρονική στιγμή Αν φθάσει μια διεργασία με μικρότερο χρόνο καταιγισμού από τον υπολειπόμενο χρόνο καταιγισμού της τρέχουσας διεργασίας, η τρέχουσα διεργασία προεκχωρείται. Δεν είναι πρακτική εξ αιτίας της αναγκαστικής πρόβλεψης που απαιτείται για τους χρόνους καταιγισμού 51

SRTF - Ιδιότητες Ο χρόνος άφιξης μιας νέας διεργασίας είναι σημαντικός Είναι χρήσιμη η καταγραφή των διεργασιών που βρίσκονται στην ουρά των έτοιμων διεργασιών Η πολιτική που συνήθως ακολουθείται είναι ότι οι προεκχωρούμενες διεργασίες οδηγούνται στην ουρά των έτοιμων διεργασιών Η απόφαση για δρομολόγηση λαμβάνεται όταν Μια διεργασία έχει ολοκληρώσει το χρόνο καταιγισμού της στη CPU Μια νέα διεργασία φθάνει στην ουρά των έτοιμων διεργασιών Δίνει καλούς χρόνους απόκρισης στις διεργασίες μικρής διάρκειας γι αυτό προτιμάται στα multi-user συστήματα Αν ληφθούν υπόψη οι εναλλαγές πλαισίων η χρονική επιβάρυνση είναι σημαντική Η παρατεταμένη στέρηση είναι πιθανή 52

SRTF - παράδειγμα Proces s # Arriv al Time Burs t Length Priority 0 6 1 3 15 1 P3 9 3 1 P4 14 4 1 P5 17 2 1 : 6 0 5 P3 10 P4 15 P5 20 25 30 53

SRTF - παράδειγμα Proces s # Arriv al Time Burs t Length Priority 0 6 1 3 15 1 P3 9 3 1 P4 14 4 1 P5 17 2 1 : 6 : 3 : 15 0 5 P3 10 P4 15 P5 20 25 30 54

SRTF - παράδειγμα Proces s # Arriv al Time Burs t Length Priority 0 6 1 3 15 1 P3 9 3 1 P4 14 4 1 P5 17 2 1 : 6 : 3 : 15 : 15 0 5 P3 10 P4 15 P5 20 25 30 55

SRTF - παράδειγμα Proces s # Arriv al Time Burs t Length Priority 0 6 1 3 15 1 P3 9 3 1 P4 14 4 1 P5 17 2 1 : 6 : 3 : 15 : 12 : 15 P3: 3 P3 0 5 P3 10 P4 15 P5 20 25 30 56

SRTF - παράδειγμα Proces s # Arriv al Time Burs t Length Priority 0 6 1 3 15 1 P3 9 3 1 P4 14 4 1 P5 17 2 1 : 3 : 12 : 6 : 15 : 15 P3: 3 : 12 P3 0 5 P3 10 P4 15 P5 20 25 30 57

SRTF - παράδειγμα Proces s # Arriv al Time Burs t Length Priority 0 6 1 3 15 1 P3 9 3 1 P4 14 4 1 P5 17 2 1 : 3 : 12 : 10 : 6 : 15 : 15 P3: 3 : 12 P4: 4 P3 P4 0 5 P3 10 P4 15 P5 20 25 30 58

SRTF - παράδειγμα : 6 Proces s # Arriv al Time Burs t Length Priority 0 6 1 3 15 1 P3 9 3 1 P4 14 4 1 P5 17 2 P4: 1 1 : 3 : 15 : 12 : 15 P3: 3 : 12 : 10 P4: 4 P5: 2 : 10 P3 P4 0 5 P3 10 P4 15 P5 20 25 30 59

SRTF - παράδειγμα : 6 Proces s # Arriv al Time Burs t Length Priority 0 6 1 3 15 1 P3 9 3 1 P4 14 4 1 P5 17 2 P4: 1 1 : 3 : 15 : 12 : 15 P3: 3 : 12 : 10 P4: 4 P5: 2 : 10 P5: 2 : 10 P3 P4 P5 0 5 P3 10 P4 15 P5 20 25 30 60

SRTF - παράδειγμα : 6 Proces s # Arriv al Time Burs t Length Priority 0 6 1 3 15 1 P3 9 3 1 P4 14 4 1 P5 17 2 P4: 1 1 : 3 : 15 : 12 : 15 P3: 3 : 12 : 10 P4: 4 P5: 2 : 10 P5: 2 : 10 : 10 P3 P4 P5 0 5 P3 10 P4 15 P5 20 25 30 61

SRTF - παράδειγμα : 6 Proces s # Arriv al Time Burs t Length Priority 0 6 1 3 15 1 P3 9 3 1 P4 14 4 1 P5 17 2 P4: 1 1 : 3 : 15 : 12 : 15 P3: 3 : 12 : 10 P4: 4 P5: 2 : 10 P5: 2 : 10 : 10 P3 P4 P5 0 5 P3 10 P4 15 P5 20 25 Process # Waiting Time Response Turnaround #of Context 30 Time Time Sw itches 0 0 6 1 (2) (6-3) + (12-9) + (6-3) = 12 3 (30-3) = 27 3 (20-14) = 12 P3 0 0 (12-9) = 3 1 P4 0 0 (18-14) = 34 1 (2) P5 (18-17) = 1 (18-17) = 1 (20-17) = 3 1 Av erage 13/5 = 2.6 13/5 = 2.6 36/5 = 7.2 7 62 4/5=0.8 43/5=8.6

Παράδειγμα σύγκρισης SJF και SRTF Process Arrival Time Burst Time 0.0 7 2.0 4 P3 4.0 1 P4 5.0 4 SJF P 1 P 3 P 2 P 4 0 3 7 8 12 16 Average waiting time = (0 + 6 + 3 + 7)/4 = 4 P3 P4 63

Παράδειγμα σύγκρισης SJF και SRTF Process Arrival Time Burst Time 0.0 7 2.0 4 P3 4.0 1 P4 5.0 4 SRTF P 1 P 2 P 3 P 2 P 4 P 1 0 2 4 5 7 11 16 Average waiting time = (9 + 1 + 0 +2)/4 = 3 P3 P4 64

6.4. Round Robin Βασικές αρχές Στις διεργασίες δίνεται ένα σταθερό ποσό χρόνου της CPU και αναφέρεται ως time quantum, ή time slice, ή slot Η σειρά των διεργασιών είναι συνήθως FIFO Συνάρτηση επιλογής: ίδια με τον FCFS Κατάσταση απόφασης: προεκχώρηση Μια διεργασία επιτρέπεται να εκτελείται μέχρι να συμπληρωθεί το κβάντο χρόνου (συνήθως 10 έως 100 ms) Στη συνέχεια δημιουργείται μια διακοπή ρολογιού και η εκτελούμενη διεργασία τίθεται στην ουρά των έτοιμων διεργασιών Χρησιμοποιείται συχνά σε περιβάλλοντα καταμερισμού χρόνου 65

Round Robin: κριτική Ευνοούνται οι προοριζόμενες στην CPU διεργασίες Μια προοριζόμενη για I/O διεργασία χρησιμοποιεί την CPU για χρονικό διάστημα μικρότερο του quantum χρόνου και στη συνέχεια αναστέλλεται περιμένοντας για I/O Μια προοριζόμενη για την CPU διεργασία εκτελείται για όλο το quantum χρόνου και τίθεται μετά στην ουρά των έτοιμων διεργασιών (μπροστά από τις ανασταλμένες διεργασίες) Λύση: ιδεατό round robin Όταν μια I/O ολοκληρώνεται, η ανασταλμένη διεργασία μετακινείται σε μια βοηθητική ουρά που προτιμάται έναντι της βασικής ουράς των έτοιμων διεργασιών Μια διεργασία που αποστέλλεται από την βοηθητική ουρά εκτελείται όχι περισσότερο από το βασικό κβάντο χρόνου μείον το συνολικό χρόνο που δαπανήθηκε για εκτέλεση κατά το τελευταίο κβάντο Έτσι η διεργασία «συμπληρώνει» το κβάντο που άφησε στη μέση όταν διακόπηκε για I/O 66

Διάγραμμα ουράς για ιδεατό Round Robin 67

Round Robin Πλεονεκτήματα: απλότητα, χαμηλό overhead, λειτουργεί αποτελεσματικά για αλληλεπιδραστικά συστήματα Μειονεκτήματα: αν το κβάντο είναι πολύ μικρό, δαπανάται πολύς χρόνος για εναλλαγή πλαισίων. Αν είναι πολύ μεγάλο τότε ο RR προσεγγίζει τον FCFS. Τυπικές τιμές για το κβάντο : 10-100 msec Γενικός κανόνας: επιλογή κβάντου έτσι ώστε η μεγάλη πλειοψηφία (80-90%) των διεργασιών να ολοκληρώνουν τον καταιγισμό τους σε ένα κβάντο 68

Μέγεθος του κβάντου χρόνου Επιλογές Μικρό ή μεγάλο κβάντο Σταθερό ή μεταβλητό κβάντο Το ίδιο για όλες τις διεργασίες ή διαφορετικό Αν το κβάντο είναι πολύ μεγάλο ο αλγόριθμος RR εκφυλίζεται σε FCFS Αν το κβάντο είναι πολύ μικρό υπάρχουν πολλές εναλλαγές πλαισίων Βασική αρχή: το κβάντο πρέπει να είναι ελαφρά μεγαλύτερο από το χρόνο που απαιτεί μια τυπική αλληλεπίδραση 69

RR Παράδειγμα Process # Arriv al Time Burst Length Priority 0 3 6 15 1 1 P3 9 3 1 P4 14 4 1 P5 17 2 1 time quantum: 3 units : 6 0 5 P310 P415 P5 20 25 30 70

RR Παράδειγμα Process # Arriv al Time Burst Length Priority 0 3 6 15 1 1 P3 9 3 1 P4 14 4 1 P5 17 2 1 time quantum: 3 units : 3 : 6 : 15 0 5 P310 P415 P5 20 25 30 71

RR Παράδειγμα Process # Arriv al Time Burst Length Priority 0 3 6 15 1 1 P3 9 3 1 P4 14 4 1 P5 17 2 1 time quantum: 3 units : 3 : 12 : 6 : 15 : 3 0 5 P3 10 P4 15 P5 20 25 30 72

RR Παράδειγμα Process # Arriv al Time Burst Length Priority 0 3 6 15 1 1 P3 9 3 1 P4 14 4 1 P5 17 2 1 time quantum: 3 units : 3 : 12 P3: 3 : 6 : 15 : 3 : 12 0 5 P310 P415 P5 20 25 30 73

RR Παράδειγμα Process # Arriv al Time Burst Length Priority 0 3 6 15 1 1 P3 9 3 1 P4 14 4 1 P5 17 2 1 time quantum: 3 units : 3 : 12 P3: 3 : 9 : 6 : 15 : 3 : 12 P3: 3 P3 0 5 P310 P415 P5 20 25 30 74

RR Παράδειγμα Process # Arriv al Time Burst Length Priority 0 3 6 15 1 1 P3 9 3 1 P4 14 4 1 P5 17 2 1 time quantum: 3 units : 3 : 12 P3: 3 : 9 P4: 4 : 6 : 15 : 3 : 12 P3: 3 : 9 P3 0 5 P310 P415 P5 20 25 30 75

RR Παράδειγμα Process # Arriv al Time Burst Length Priority 0 3 6 15 1 1 P3 9 3 1 P4 14 4 1 P5 17 2 1 : 6 time quantum: 3 units : 3 : 12 P3: 3 : 9 P4: 4 P5: 2 : 6 : 15 : 3 : 12 P3: 3 : 9 P4: 4 P3 P4 0 5 P310 P415 P5 20 25 30 76

RR Παράδειγμα Process # Arriv al Time Burst Length Priority 0 3 6 15 1 1 P3 9 3 1 P4 14 4 1 P5 17 2 1 : 6 P4: 1 time quantum: 3 units : 3 : 12 P3: 3 : 9 P4: 4 P5: 2 : 6 : 6 : 15 : 3 : 12 P3: 3 : 9 P4: 4 P5: 2 P3 P4 P5 0 5 P310 P415 P5 20 25 30 77

RR Παράδειγμα Process # Arriv al Time Burst Length Priority 0 3 6 15 1 1 P3 9 3 1 P4 14 4 1 P5 17 2 1 : 6 P4: 1 time quantum: 3 units : 3 : 12 P3: 3 : 9 P4: 4 P5: 2 : 6 P4: 1 : 6 : 15 : 3 : 12 P3: 3 : 9 P4: 4 P5: 2 : 6 P3 P4 P5 0 5 P310 P415 P5 20 25 30 78

RR Παράδειγμα Process # Arriv al Time Burst Length Priority 0 3 6 15 1 1 P3 9 3 1 P4 14 4 1 P5 17 2 1 : 6 P4: 1 time quantum: 3 units : 3 : 12 P3: 3 : 9 P4: 4 P5: 2 : 6 P4: 1 : 3 : 6 : 15 : 3 : 12 P3: 3 : 9 P4: 4 P5: 2 : 6 P4: 1 P3 P4 P5 P 4 0 5 P310 P415 P5 20 25 30 79

RR Παράδειγμα Process # Arriv al Time Burst Length Priority 0 3 6 15 1 1 P3 9 3 1 P4 14 4 1 P5 17 2 1 : 6 P4: 1 time quantum: 3 units : 3 : 12 P3: 3 : 9 P4: 4 P5: 2 : 6 P4: 1 : 3 : 6 : 15 : 3 : 12 P3: 3 : 9 P4: 4 P5: 2 : 6 P4: 1 : 3 P3 P4 P5 P 4 0 5 P3 10 P4 15 P5 20 25 30 80

RR Παράδειγμα Process # Arriv al Time Burst Length Priority 0 3 6 15 1 1 P3 P4 9 14 3 4 1 1 P5 17 2 1 : 6 P4: 1 time quantum: 3 units : 3 : 12 P3: 3 : 9 P4: 4 P5: 2 : 6 P4: 1 : 3 : 6 : 15 : 3 : 12 P3: 3 : 9 P4: 4 P5: 2 : 6 P4: 1 : 3 P3 P4 P5 P 4 0 5 P310 P415 P5 20 25 30 Process # Waiting Time Response Turnaround #of Context Time Time Sw itches 6-3=3 0 0 9 2 (9-6) + (15-12) + (23-0 (30-3) = 27 5 18) + (27-26) = 12 P3 (12-9) = 3 (12-9) = 3 (15-9) = 6 1 P4 (18-14) + (26-21) = 9 (18-14) = 4 (27-14) = 13 2 P5 (21-17) = 4 (21-17) = 4 (23-17) = 6 1 Av erage 28/5 = 5.6 11/5 = 2.2 52/5 = 10.4 11/5 =2.2 Τμήμα Τεχνολογίας Πληροφορικής 31/5=6.2 & 61/5=12.2 81

Σύγκριση αλγορίθμων δρομολόγησης Ποιος είναι ο καλύτερος; Η απάντηση εξαρτάται από : Το φορτίο του συστήματος (ισχυρά μεταβαλλόμενο) Την υποστήριξη υλικού για το δρομολογητή Το σχετικό βάρος των κριτηρίων απόδοσης (χρόνος απόκρισης, χρήση της CPU, ρυθμο-απόδοση...) Τη μέθοδο αποτίμησης που χρησιμοποιείται (καθεμιά έχει τους περιορισμούς της...) 82

Άσκηση 1 Θεωρείστε το ακόλουθο σύνολο διεργασιών, στο οποίο το μήκος των CPU burst times είναι σε milliseconds Υποθέστε ότι οι διεργασίες έχουν φθάσει με τη σειρά,, P3, P4, και P5, όλες τη χρονική στιγμή 0 Σχεδιάστε το διάγραμμα εκτέλεσης για καθεμία από τις πολιτικές δρομολόγησης: FCFS, SJF, RR κβάντο μία χρονική μονάδα Βρείτε για κάθε διεργασία τον χρόνο επιστροφής (turnaround time) και τον χρόνο αναμονής (waiting time) καθώς και τις μέσες τιμές τους. process Burst time 10 1 P3 2 P4 1 P5 5 83

Λύση άσκησης 1 Time 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 FCFS: P3 P3 P4 P5 P5 P5 P5 P5 SJF: P4 P3 P3 P5 P5 P5 P5 P5 RR: P3 P4 P5 P3 P5 P5 P5 P5 process Burst time 10 1 P3 2 P4 1 P5 5 84

Λύση άσκησης 1 Turnaround time = waiting time + burst length FCFS SJF RR 10 19 19 11 1 2 P3 13 4 7 P4 14 2 4 P5 19 9 14 Average 13.4 7.0 9.2 Time 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 FCFS: P3 P3 P4 P5 P5 P5 P5 P5 SJF: P4 P3 P3 P5 P5 P5 P5 P5 RR: P3 P4 P5 P3 P5 P5 P5 P5 85

Λύση άσκησης 1 Waiting time = turnaround time - burst length FCFS SJF RR 0 9 9 10 0 1 P3 11 2 5 P4 13 1 3 P5 14 4 9 Average 9.6 3.2 5.4 Time 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 FCFS: P3 P3 P4 P5 P5 P5 P5 P5 SJF: P4 P3 P3 P5 P5 P5 P5 P5 RR: P3 P4 P5 P3 P5 P5 P5 P5 86

Άσκηση 2 Να σχεδιάσετε το διάγραμμα εκτέλεσης (Gantt) για καθένα από τους παρακάτω αλγορίθμους δρομολόγησης : FCFS, RR με κβάντο=2 χρονικές μονάδες, SJF και SRTF και να υπολογίσετε τον μέσο χρόνο επιστροφής για τον κάθε αλγόριθμο. Process Arrival time Burst time A 0 3 B 0 6 C 0 4 D 0 5 E 0 2 87

FCFS A B C D E 0 3 9 13 18 20 Ave. TAT = 3 + 9 + 13 + 18 + 20 = 63 5 5 = 12.6 time units 88

SJF E A C D B 0 2 5 9 14 20 Ave. TAT = 2 + 5 + 9 + 14 + 20 = 50 = 10 time units 5 5 89

SRTF E A 0 2 5 9 14 20 Ave. TAT = 2 + 5 + 9 + 14 + 20 = 50 C 5 5 = 10 time units Ο αλγόριθμος SRTF εκφυλίζεται σε SJF όταν όλες οι διεργασίες ξεκινούν ταυτόχρονα D B 90

SRTF (Διαφορετικοί Χρόνοι Αφιξης) A A B C C 0 2 3 4 6 8 E B D 10 15 20 Ave. TAT = (3-0) + (15-2) + (8 4) + (20 6) + (10 8) 5 = 7.2 time units 91

RR: Time Quantum = 2 time units A B C D E 0 2 4 6 8 10 A B C D B D 11 13 15 17 19 20 Ave. TAT = 11 + 19 + 15 + 20 + 10 = 75 5 5 = 15 time units 92