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

Σχετικά έγγραφα
Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ENOTHTA 5 XPONO POMOΛOΓHΣH

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κατανεμημένα Συστήματα

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

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

Εργαστήριο Διοίκησης Παραγωγής & Έργων. Εισαγωγή στην προσομοίωση διεργασιών χρησιμοποιώντας το λογισμικό Extend

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

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

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

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

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

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

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

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

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

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

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

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

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

Λειτουργικά Συστήματα Ι. Κεφάλαιο 1 Βασικές Έννοιες Λειτουργικών Συστημάτων

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 1 : Εισαγωγή

Δηλώσεις Εργαστηρίων 7ου Εξαμήνου

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

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

Ι.Ε.Κ. Χαϊδαρίου ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ. Σημειώσεις Θεωρίας

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

ΠΑΡΑΤΗΡΗΣΕΙΣ. ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΠΡΟΓΡΑΜΜΑ ΠΑΙΔΑΓΩΓΙΚΗΣ ΚΑΤΑΡΤΙΣΗΣ 1 η ΕΡΓΑΣΙΑ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ

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

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

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

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

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

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

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

ΕΙΣΑΓΩΓΗ. Παρέχει µια διεπαφή (interface) ανάµεσα στο υλισµικό και στα προγράµµατα εφαρµογών/χρηστών.

Κεφάλαιο 4: Λογισμικό Συστήματος

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

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

Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 1: Εισαγωγή. Γαροφαλάκης Ιωάννης Πολυτεχνική Σχολή Τμήμα Μηχ/κών Η/Υ & Πληροφορικής

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

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

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

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

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΑΠΡΙΛΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 (ΕΠΤΑ)

ΚΕΦΑΛΑΙΟ 2ο ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΑΚΡΙΤΩΝ ΓΕΓΟΝΟΤΩΝ

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

Transcript:

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

Σκοπός του μαθήματος Στην ενότητα αυτή θα εξηγήσουμε το ρόλο και την αξιολόγηση των αλγορίθμων χρονοδρομολόγησης, και θα παρουσιάσουμε τους κυριότερους. Θα μάθουμε: Να εξηγούμε τη λειτουργία των αλγορίθμων χρονοδρομολόγησης Να περιγράφουμε πώς αξιολογούμε τους αλγορίθμους χρονοδρομολόγησης Να ορίζουμε τι είναι διακοπτός και μη διακοπτός αλγόριθμος και Να απαριθμούμε τους κυριότερους διακοπτούς και μη διακοπτούς αλγόριθμους χρονοδρομολόγησης.

Αλγόριθμοι Χρονοδρομολόγησης Σε προηγούμενη ενότητα είδαμε ότι οι διεργασίες μπορούν να μοιράζονται μεταξύ τους την ΚΜΕ. Εδώ θα δούμε τους τρόπους που μπορεί να γίνει αυτό, εξετάζοντας τους διάφορους αλγορίθμους χρονοδρομολόγησης. Η μεθοδολογία την οποία χρησιμοποιεί κάθε χρονοδρομολογητής (βραχυχρόνιος, μεσοχρόνιος ή μακροχρόνιος) βασίζεται στον αλγόριθμο χρονοδρομολόγησης (scheduling algorithm) τον οποίο εφαρμόζει.

Αλγόριθμοι Χρονοδρομολόγησης Ο αλγόριθμος αυτός περιγράφει με σαφήνεια τον τρόπο με τον οποίο ο χρονοδρομολογητής θα επιλέξει μια διεργασία για να την προωθήσει στην ΚΜΕ ή να την απομακρύνει από αυτή, πόσο χρόνο θα απασχολεί κάθε διεργασία την ΚΜΕ κλπ. Οι παράμετροι που λαμβάνει υπόψη του ο αλγόριθμος είναι το πλήθος των διεργασιών, η διάρκεια που αναμένεται να έχουν οι εκρήξεις ΚΜΕ και Ε/Ε για τις διεργασίες αυτές, κλπ.

Στόχοι

Κριτήρια Αξιολόγησης για Αλγορίθμους Χρονοδρομολόγησης Τα ιδιαίτερα χαρακτηριστικά των αλγορίθμων χρονοδρομολόγησης μπορεί να ευνοούν κάποια ομάδα διεργασιών έναντι άλλων. Για να αξιολογηθεί η επίδοσή τους, χρειάζονται κάποια «αντικειμενικά» κριτήρια, τα οποία μετρούν τις επιδόσεις του υπολογιστικού συστήματος. Υπάρχουν διάφορα τέτοια κριτήρια και ανάλογα με το σκοπό για τον οποίο θα χρησιμοποιηθεί ένα υπολογιστικό σύστημα, επιλέγονται αυτά που ταιριάζουν στο σκοπό αυτό και ο αλγόριθμος χρονοδρομολόγησης που τα ικανοποιεί.

Κριτήρια Αξιολόγησης 1 Τα πιο συνηθισμένα κριτήρια αξιολόγησης είναι: 1. Ο βαθμός χρησιμοποίησης της ΚΜΕ (CPU utilization). Πρόκειται για το ποσοστό του χρόνου που η ΚΜΕ είναι απασχολημένη. Αν το υπολογιστικό σύστημα λειτουργεί για χρονικό διάστημα Τολ και η ΚΜΕ έχει απασχοληθεί για χρόνο Ταπ, ο βαθμός χρησιμοποίησής της είναι Ταπ / Τολ. Οι καλοί βαθμοί χρησιμοποίησης είναι κοντά στο 1 (όπου η ΚΜΕ είναι συνεχώς απασχολημένη).

Κριτήρια Αξιολόγησης 2 2. Η ρυθμοαπόδοση (throughput). Είναι το πλήθος των εργασιών που ολοκληρώνονται στη μονάδα του χρόνου. Αν π.χ. μέσα σε μια ώρα ολοκληρωθούν 1800 εργασίες, τότε η ρυθμαπόδοση του συστήματος είναι 0,5 εργασίες/sec. Όσο πιο μεγάλη είναι η ρυθμοαπόδοση, τόσο καλύτερη γίνεται η συνολική απόδοση του συστήματος.

Κριτήρια Αξιολόγησης 3 3. Ο χρόνος ανακύκλωσης (turnaround time). Είναι ο συνολικός χρόνος που απαιτείται για την πλήρη εκτέλεση μιας εργασίας, από τη στιγμή που αυτή υποβάλλεται στο σύστημα μέχρι τη στιγμή που ολοκληρώνεται. Αυτός ο χρόνος περιλαμβάνει την αρχική αναμονή της εργασίας μέχρι να επιλεγεί για φόρτωση στην κύρια μνήμη, το χρόνο εκτέλεσης στην ΚΜΕ, το χρόνο Ε/Ε και το χρόνο αναμονής σε διάφορες ουρές του συστήματος.

Κριτήρια Αξιολόγησης 4 4. Ο χρόνος αναμονής (waiting time). Πρόκειται για το χρόνο που πέρασε η διεργασία στη λίστα έτοιμων διεργασιών αναμένοντας την εκτέλεσή της. Ο χρόνος αναμονής είναι ένας «καλύτερος» δείκτης της καθυστέρησης, που επιβάλλει το σύστημα σε μια διεργασία, από το χρόνο ανακύκλωσης, γιατί ο δεύτερος περιέχει και το χρόνο που εκτελείται η διεργασία στην ΚΜΕ ή εκτελεί λειτουργίες Ε/Ε, ο οποίος είναι σταθερός για κάθε διεργασία και δεν εξαρτάται από το ΛΣ.

Κριτήρια Αξιολόγησης 5 5. Ο χρόνος απόκρισης (response time). Πολλές φορές ενδιαφέρει ο χρόνος που απαιτείται μέχρι το σύστημα να δώσει την πρώτη απόκριση για μια διεργασία, που ονομάζεται χρόνος απόκρισης. Αυτός διαφέρει από το χρόνο ανακύκλωσης κατά το χρονικό διάστημα που απαιτείται για την ολοκλήρωση της εξόδου μιας διεργασίας και συνεπώς δεν εξαρτάται από την ταχύτητα της συσκευής εξόδου. Αν π.χ. μια διεργασία μετά το τέλος των υπολογισμών της εκτυπώνει τα αποτελέσματα, ο χρόνος απόκρισης μετριέται μέχρι τη στιγμή που αρχίζει η εκτύπωση (ο χρόνος της εκτύπωσης δεν συνυπολογίζεται).

Κατηγορίες αλγορίθμων χρονοδρομολόγησης Μη διακοπτοί (non preemptive) αλγόριθμοι: Μια διεργασία που επιλέγεται να πάρει τον έλεγχο της ΚΜΕ, τον διατηρεί έως ότου αυτή ολοκληρωθεί, ή απαιτήσει κάποια άλλη λειτουργία (π.χ. Ε/Ε). Διακοπτοί (preemptive) αλγόριθμοι: Αφού μια διεργασία χρησιμοποιήσει την ΚΜΕ εκτελούμενη για κάποιο χρονικό διάστημα (το κβάντο χρόνου), το ΛΣ τη διακόπτει, ανεξάρτητα από το αν έχει ολοκληρωθεί, για να δώσει την ΚΜΕ σε κάποια άλλη.

Μη διακοπτοί Αλγόριθμοι Χρονοδρομολόγησης Οι πιο διαδεδομένοι μη διακοπτοί αλγόριθμοι χρονοδρομολόγησης είναι τρεις. Βασίζονται αντίστοιχα στη σειρά άφιξης των διεργασιών, τη διάρκειά τους και το λόγο απόκρισής τους. Θα εφαρμόσουμε τους πρώτους δύο στο ίδιο παράδειγμα για να συγκρίνουμε τις επιδόσεις τους. Ας υποθέσουμε λοιπόν ότι οι τέσσερις διεργασίες προς εξυπηρέτηση είναι οι δ1, δ2, δ3 και δ4. Η δ1 φθάνει στη λίστα έτοιμων διεργασιών τη χρονική στιγμή 0 και έχει διάρκεια 12 χρονικές μονάδες, η δ2 φθάνει τη στιγμή 6 και έχει διάρκεια 31, η δ3 φθάνει τη στιγμή 8 και έχει διάρκεια 3 και η δ4 φθάνει τη στιγμή 14 και έχει διάρκεια 11. Επιπλέον, γίνεται η παραδοχή ότι οι διεργασίες απασχολούν μόνο την ΚΜΕ και δεν εκτελούν λειτουργίες Ε/Ε.

1. Εξυπηρέτηση με βάση τη σειρά άφιξης Ο αντίστοιχος αλγόριθμος χρονοδρομολόγησης ΚΜΕ ονομάζεται αλγόριθμος με βάση τη σειρά άφιξης (First Come First Served FCFS). Η υλοποίηση του γίνεται πολύ εύκολα, καθώς η λίστα έτοιμων διεργασιών λειτουργεί όπως μια ουρά αναμονής. Κάθε νέα διεργασία που ετοιμάζεται να εκτελέσει την επόμενη έκρηξή της στην ΚΜΕ εισάγεται στο τέλος της λίστας έτοιμων διεργασιών. Όταν έρθει η ώρα να εισαχθεί στην ΚΜΕ μια νέα διεργασία, επιλέγεται αυτή που είναι στην αρχή τής λίστας, προωθείται στην ΚΜΕ και εκεί εκτελεί ολόκληρη την έκρηξή της στην ΚΜΕ.

1. Εξυπηρέτηση με βάση τη σειρά άφιξης Η επίδοση του αλγορίθμου αυτού αν κριθεί με βάση το χρόνο ανακύκλωσης (turnaround time) είναι χαμηλή, γιατί εξαναγκάζει ακόμα και διεργασίες με πολύ σύντομες εκρήξεις ΚΜΕ να αναμένουν για την εκτέλεση άλλων. Παρόμοιες επιδόσεις πετυχαίνει και με βάση τα υπόλοιπα κριτήρια αξιολόγησης που αναφέρθηκαν στο μάθημα αυτό, π.χ. η χρησιμοποίηση της ΚΜΕ μπορεί να είναι χαμηλή. Το βασικό πλεονέκτημα της εξυπηρέτησης με βάση τη σειρά άφιξης είναι η απλότητά της. Ο αλγόριθμος είναι πάρα πολύ απλός να προγραμματιστεί και καταναλώνει ελάχιστο χρόνο για την εκτέλεσή του.

1. Εξυπηρέτηση με βάση τη σειρά άφιξης

2. Εξυπηρέτηση με βάση τη διάρκεια Ο αλγόριθμος εξυπηρέτησης με βάση τη διάρκεια (Shortest Job First SJF), κατατάσσει τις διεργασίες κατά αύξουσα σειρά διάρκειας. Πρώτα εκτελείται η συντομότερη διεργασία, μετά αυτή με την αμέσως μεγαλύτερη διάρκεια κ.ο.κ. Τελευταία εκτελείται αυτή με τη μεγαλύτερη διάρκεια. Μια διεργασία που εισάγεται στη λίστα έτοιμων διεργασιών, όταν μια άλλη ήδη εκτελείται, θα τοποθετηθεί στο κατάλληλο σημείο ανάλογα με τη διάρκεια της έκρηξής της στην ΚΜΕ, και θα εκτελεστεί πριν από κάποια άλλη που είχε εισαχθεί στη λίστα νωρίτερα, αλλά είχε μεγαλύτερη διάρκεια.

2. Εξυπηρέτηση με βάση τη διάρκεια

2. Εξυπηρέτηση με βάση τη διάρκεια Η δυσκολία στην υλοποίηση του αλγορίθμου αυτού είναι η εκτίμηση της διάρκειας για την έκρηξη ΚΜΕ κάθε διεργασίας. Στην περίπτωση του μακροχρόνιου χρονοδρομολογητή, οι χρήστες μπορούν να έχουν θέσει εκ των προτέρων ανώτατα όρια στο χρόνο εκτέλεσης του προγράμματός τους, με βάση τα οποία να γίνεται η επιλογή της συντομότερης διεργασίας. Όμως στο βραχυχρόνιο χρονοδρομολογητή, δεν είναι εύκολο να υπολογιστεί εκ των προτέρων η επόμενη έκρηξη ΚΜΕ για μια διεργασία. Μπορεί βέβαια να εκτιμηθεί στατιστικά με βάση τις προηγούμενες εκρήξεις ΚΜΕ, αλλά η εκτίμηση αυτή δεν είναι ακριβής και επιπλέον απαιτεί υπολογιστικό χρόνο.

Διακοπτοί Αλγόριθμοι Χρονοδρομολόγησης Στους διακοπτούς αλγορίθμους μια διεργασία δεν καταλαμβάνει την ΚΜΕ για όλη τη διάρκεια της έκρηξης ΚΜΕ. Το ΛΣ μπορεί να τη διακόψει και να παραχωρήσει την ΚΜΕ σε κάποια άλλη διεργασία, η οποία (όπως κρίνει το ΛΣ) πρέπει να προηγηθεί στην εκτέλεσή της.

3. Διακοπτή εξυπηρέτηση με βάση τη διάρκεια Στο αλγόριθμο εξυπηρέτησης με βάση τη διάρκεια (Preemptive Shortest Job First), κάθε φορά που μια νέα διεργασία εισέρχεται στη λίστα έτοιμων διεργασιών για εκτέλεση, ελέγχεται αν η διάρκεια της έκρηξης ΚΜΕ που θα εκτελέσει είναι μικρότερη από το χρόνο που απομένει στη διεργασία η οποία εκτελείται. Στην περίπτωση αυτή, η διεργασία που εκτελείται διακόπτεται και η νέα διεργασία παίρνει τη θέση της. Η διεργασία που διακόπηκε τοποθετείται πάλι στη λίστα έτοιμων διεργασιών. Όταν μια διεργασία ολοκληρώσει την εκτέλεσή της, επιλέγεται από τη λίστα έτοιμων διεργασιών εκείνη με τη συντομότερη έκρηξη ΚΜΕ και της παραχωρείται η ΚΜΕ, όπως ακριβώς και στον μη διακοπτό αλγόριθμο.

3. Διακοπτή εξυπηρέτηση με βάση τη διάρκεια Στο παράδειγμα που χρησιμοποιήθηκε και προηγουμένως, η διεργασία δ1 φθάνει τη χρονική στιγμή 0 και αρχίζει να εκτελείται. Τη χρονική στιγμή 6 φθάνει η διεργασία δ2, που θα έχει διάρκεια 31 μονάδες. Στη δ1 απομένουν 6 μονάδες για να τελειώσει, λιγότερες από το χρόνο της δ2, οπότε η δ1 συνεχίζει να εκτελείται. Τη χρονική στιγμή 8 όμως φθάνει η διεργασία δ3 με διάρκεια 3, ενώ στην δ1 απομένουν 4 χρονικές μονάδες εκτέλεσης. Έτσι η δ1 διακόπτεται και αρχίζει να εκτελείται η δ3, η οποία ολοκληρώνεται τη στιγμή 11. Τότε υπάρχουν δυο διεργασίες για εκτέλεση: η δ1, στην οποία απομένουν 4 χρονικές μονάδες για να ολοκληρωθεί, και η δ2 η οποία απαιτεί 31 χρονικές μονάδες. Επιλέγεται βέβαια η δ1 και αρχίζει να εκτελείται. Τη χρονική στιγμή 14, και ενώ η δ1 εκτελείται ακόμα, φθάνει στη λίστα έτοιμων διεργασιών η δ4 που απαιτεί 11 χρονικές μονάδες. Αφού στη δ1 απομένει μόνο μια χρονική μονάδα το ΛΣ δεν τη διακόπτει και την αφήνει να ολοκληρωθεί. Όταν τελειώσει, οι υποψήφιες διεργασίες είναι: η δ2 με διάρκεια 31 και η δ4 με διάρκεια 11. Επιλέγεται η δ4 και αφού ολοκληρωθεί εκτελείται και η δ2.

3. Διακοπτή εξυπηρέτηση με βάση τη διάρκεια

4. Χρονοδρομολόγηση κυκλικής επαναφοράς Round Robin

4. Χρονοδρομολόγηση κυκλικής επαναφοράς Round Robin Ένα μικρό ποσό χρόνου (κβάντο χρόνου) δίνεται κυκλικά σε κάθε διεργασία. Αν μια διεργασία τελειώσει την εκτέλεσή της προτού τελειώσει το κβάντο χρόνου τότε το Λ/Σ προχωρά στην επόμενη έτοιμη διεργασία. Στο παράδειγμά μας, αν το κβάντο χρόνου είναι 5 τότε έχουμε:

Χρονοδρομολόγηση κυκλικής επαναφοράς

Ανακεφαλαίωση 1 Η μεθοδολογία που ακολουθεί το ΛΣ για να κάνει τη χρονοδρομολόγηση μπορεί να αξιολογηθεί με διάφορα κριτήρια: το χρόνο απόκρισης, ανακύκλωσης ή αναμονής, τη ρυθμαπόδοση ή τη χρησιμοποίηση της ΚΜΕ. Οι αλγόριθμοι, ανάλογα με το αν επιτρέπουν στις διεργασίες να εκτελέσουν ακέραιες τις εκρήξεις ΚΜΕ ή όχι διακρίνονται σε μη διακοπτούς και διακοπτούς αντίστοιχα.

Ανακεφαλαίωση 2 Οι δύο κυριότεροι μη διακοπτοί αλγόριθμοι χρονοδρομολόγησης επιλέγουν τη διεργασία που θα εκτελεστεί στην ΚΜΕ με βάση τη σειρά άφιξης των διεργασιών στη λίστα έτοιμων διεργασιών ή τη διάρκεια της έκρηξης ΚΜΕ. Οι πιο διαδεδομένοι διακοπτοί αλγόριθμοι χρονοδρομολόγησης είναι ο διακοπτός SJF (με βάση τη διάρκεια) και ο αλγόριθμος κυκλικής επαναφοράς που χρησιμοποιείται στα συστήματα καταμερισμού χρόνου.

Ερωτήσεις 1. Ποιοι είναι οι βασικοί στόχοι ενός αλγορίθμου χρονοδρομολόγησης; 2. Ποια είναι τα βασικά κριτήρια αξιολόγησης για αλγορίθμους χρονοδρομολόγησης; 3. Ποιες είναι οι βασικές κατηγορίες αλγορίθμων χρονοδρομολόγησης; 4. Αναφέρετε παραδείγματα αλγορίθμων χρονοδρομολόγησης που υπάρχουν σε διακοπτή και σε μη διακοπτή έκδοση.

Άσκηση 1η

Άσκηση 2η