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

Σχετικά έγγραφα
ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

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

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

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

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

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

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

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

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

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

ENOTHTA 5 XPONO POMOΛOΓHΣH

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 3: Λειτουργικά Συστήματα

Κεφάλαιο 3: Λειτουργικά Συστήµατα

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

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

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

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

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

Εγγυημένη ποιότητα υπηρεσίας

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

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

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


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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

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

Σημειώσεις Λειτουργικών. μια ανοικτή φοιτητική προσέγγιση

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

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

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

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

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

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

Τεχνολογία Πολυμέσων. Ενότητα # 21: Εγγυημένη ποιότητα υπηρεσίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

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

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

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

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

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

Προσπέλαση κοινών πόρων Πρωτόκολλα ελέγχου αμοιβαίου αποκλεισμού

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

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

Χρόνος Εκτέλεσης. Αρχική Προτεραιότητα Α Β Γ Α 4 1 3

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

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

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

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

Θοδωρής Ανδρόνικος Τμήμα Πληροφορικής, Ιόνιο Πανεπιστήμιο

Συστήματα πολυμέσων. Εισαγωγή Υλικό συστημάτων πολυμέσων Λογισμικό συστημάτων πολυμέσων Συστήματα πραγματικού χρόνου Χρονοπρογραμματισμός

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

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

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

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

Πολυµέσα και Internet

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

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

Transcript:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Μάθημα: ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) 1

Συμβαίνει συχνά πολλές διεργασίες να ανταγωνίζονται για τον έλεγχο της CPU => πρέπει να ληφθεί μια απόφαση για το ποια διεργασία θα εκτελεστεί πρώτη Χρονοδρομολογητής ή χρονοπρογραμματιστής (scheduler) είναι το τμήμα του Λ.Σ. το οποίο είναι επιφορτισμένο με την ευθύνη της απόφασης ποια εκτελέσιμη διεργασία θα εκτελεστεί πρώτη. Ο αλγόριθμος που χρησιμοποιείται από το χρονοδρομολογητή λέγεται αλγόριθμος χρονοδρομολόγησης (scheduling algorithm). 2

Μεγάλο χρονικό διάστημα ενεργοποίησης της CPU Σύντομο διάστημα ενεργοποίησης της CPU Αναμονή για I/O Χρόνος (a) Διεργασία εξαρτημένη από υπολογισμούς (compute-bound) ή από τη CPU (CPU-bound) (b) Διεργασία εξαρτημένη από είσοδο-έξοδο (Ι/Ο-bound) Σημ: ο κρίσιμος παράγοντας είναι η διάρκεια λειτουργίας της CPU, και όχι η διάρκεια της Ε/Ε 3

Η επιλογή του κατάλληλου χρόνου για τον χρονοπρογραμματισμό (δηλ. του κατάλληλου χρόνου για να ληφθούν αποφάσεις) μπορεί να είναι όταν: Δημιουργείται μια νέα διεργασία και πρέπει να αποφασίσουμε αν θα εκτελεστεί αυτή ή η μητρική της Όταν μια διεργασία τερματίζεται και υπάρχουν άλλες διεργασίες σε ετοιμότητα Όταν μια διεργασία μπλοκάρεται... Πολλές φορές η αιτία του μπλοκαρίσματος μπορεί να παίζει ρόλο (π.χ. Περιμένουμε κάποια άλλη διεργασία να βγεί από τη κρίσιμη περιοχή της...)...όμως ο χρονοπρογραμματιστής δεν έχει πάντα διαθέσιμη αυτή την πληροφορία. Όταν γίνεται κάποια διακοπή Ε/Ε 4

Ο χρονισμός του χρονοδρομολογητή γίνεται μέσω κάποιων διακοπών του ρολογιού. Ανάλογα με τον τρόπο που αξιοποιούν το ρολόι, οι αλγόριθμοι μπορούν να χωριστούν σε: Μη προεκτοπιστικούς (non-preemptive), οι οποίοι επιτρέπουν σε μια διεργασία να εκτελείται μέχρι την ολοκλήρωση της ή μέχρι εθελοντικά να επιστρέψει τον έλεγχο της CPU Προεκτοπιστικούς (preemptive), οι οποίοι αναστέλλουν την εκτέλεση των διεργασιών μετά από συγκεκριμένο μέγιστο χρονικό διάστημα. Επίσης, ανάλογα με το περιβάλλον μπορεί να διαφοροποιούνται τα απαιτούμενα χαρακτηριστικά του αλγορίθμου: Περιβάλλον Δέσμης Αλληλεπιδραστικά Περιβάλλοντα Περιβάλλοντα Πραγματικού Χρόνου 5

Ο βασικότεροι στόχοι των αλγορίθμων χρονοπρογραμματισμού ανάλογα και με το περιβάλλον είναι : Για όλα τα συστήματα: Δικαιοσύνη Να εκχωρείται σε κάθε διεργασία ένα δίκαιο μερίδιο της CPU Επιβολή της Πολιτικής Τήρηση προτεραιοτήτων κ.λ.π. Ισορροπία να διατηρούνται ενεργά όλα τα τμήματα του συστήματος. Συστήματα Δέσμης Διεκπεραιωτική Ικανότητα μεγιστοποίηση του αριθμού εργασιών που ολοκληρώνονται ανά ώρα Χρόνος Διεκπεραίωσης να ελαχιστοποιηθεί ο χρόνος ολοκλήρωσης μια διεργασίας Αξιοποίηση CPU - να διατηρείται η CPU συνεχώς ενεργός 6

Αλληλεπιδραστικά Συστήματα: Χρόνος Απόκρισης η απόκριση στις αιτήσεις να είναι ταχύτατη Τήρηση Αναλογιών Να ικανοποιούνται οι προσδοκίες των χρηστών Συστήματα Πραγματικού Χρόνου Τήρηση προθεσμιών να αποφεύγεται απώλεια δεδομένων Προβλεψιμότητα να αποφεύγεται ο υποβιβασμός της ποιότητας, π.χ. Πολυμέσα. 7

ΣΥΣΤΗΜΑΤΑ ΔΕΣΜΗΣ Εξυπηρέτηση με βάση τη σειρά άφιξης First-Come First-Served Διεργασίες που μπλοκάρονται όταν πάλι γίνουν έτοιμες για εκτέλεση μπαίνουν στο τέλος της ουράς. Εξυπηρέτηση με βάση τη μικρότερη διάρκεια Προϋποθέτει ότι γνωρίζουμε τη διάρκεια εκτέλεσης των διεργασιών Βελτιώνεται ο μέσος χρόνος διεκπεραίωσης 8

ΣΥΣΤΗΜΑΤΑ ΔΕΣΜΗΣ Εξυπηρέτηση με βάση τη μικρότερη διάρκεια που απομένει Προεκτοπιστική έκδοση του προηγούμενου αλγορίθμου Προϋποθέτει ότι γνωρίζουμε τη διάρκεια εκτέλεσης των διεργασιών Ο χρονοπρογραμματιστής επιλέγει πάντα τη διεργασία στην οποία απομένει το μικρότερο χρονικό διάστημα για να ολοκληρωθεί Όταν φτάνει μία νέα διεργασία, ο συνολικός χρόνος εκτέλεσής της συγκρίνεται με τον εναπομείνοντα χρόνο της τρέχουσας διεργασίας. Αν η νέα εργασία χρειάζεται λιγότερο χρόνο για να ολοκληρωθεί από την τρέχουσα διεργασία, η τελευταία αναστέλλεται και ξεκινάει η νέα. Η μέθοδος αυτή επιτρέπει σε νέες σύντομες εργασίες να εξυπηρετούνται κατά προτεραιότητα 9

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

ΣΥΣΤΗΜΑΤΑ ΔΕΣΜΗΣ Χρονοπρογραμματιστής Τριών Επιπέδων Για να πάρει τις αποφάσεις του ο χρονοπρογραμματιστής Μνήμης, χρησιμοποιεί τα παρακάτω κριτήρια:» Πόσος χρόνος πέρασε από τη στιγμή που η διεργασία μεταφέρθηκε στο δίσκο/μνήμη ;» Πόσο χρόνο CPU είχε στη διάθεση της η διεργασία ;» Ποιο είναι το μέγεθος της διεργασίας ;» Πόσο σημαντική είναι η διεργασία ; Χρονοπρογραμματιστής CPU Αξιοποιείται οποιοσδήποτε προεκτοπιστικός ή μή αλγόριθμος, συμπεριλαμβανομένων αυτών που είδαμε 11

ΑΛΛΗΛΕΠΙΔΡΑΣΤΙΚΑ Χρονοδρομολόγηση Εξυπηρέτησης εκ Περιτροπής Σύμφωνα με τον αλγόριθμο εξυπηρέτησης εκ περιτροπής (round robin scheduling), σε κάθε διεργασία εκχωρείται χρονικό διάστημα - κβάντο (quantum) στα όρια του οποίου επιτρέπεται η εκτέλεσή της. Αν η διεργασία δεν ολοκληρωθεί μέχρι το τέλος του χρονικού αυτού διαστήματος, τότε η CPU προεκχωρείται σε άλλη διεργασία, δηλαδή λαμβάνει χώρα εναλλαγή διεργασιών (process switch) ή μεταγωγή περιβάλλοντος (context switch). Τρέχουσα διεργασία Επόμενη διεργασία Τρέχουσα διεργασία 12

ΑΛΛΗΛΕΠΙΔΡΑΣΤΙΚΑ Αν η διεργασία ολοκληρωθεί πριν το τέλος του χρονικού διαστήματος που της είχε ανατεθεί, τότε ο αλγόριθμος χρονοδρομολόγησης παραχωρεί την CPU στην επόμενη στην ουρά διεργασία. Σημαντική παράμετρο αποτελεί η επιλογή του μεγέθους του κβάντου χρόνου, αφού η εναλλαγή διεργασιών μπορεί να προκαλέσει σημαντική καθυστέρηση. 13

ΑΛΛΗΛΕΠΙΔΡΑΣΤΙΚΑ Παράδειγμα Κβάντο χρόνου = 4msec Χρόνος διαχείρισης από τη CPU = 1msec Απώλεια Χρόνου 20% Παράδειγμα Κβάντο χρόνου = 500 msec Χρόνος διαχείρισης από τη CPU = 5msec Απώλεια Χρόνου 1% Όμως μεγάλος χρόνος αναμονής σε χρήστες τυπική τιμή κβάντου 70 msec 14

ΑΛΛΗΛΕΠΙΔΡΑΣΤΙΚΑ Χρονοδρομολόγηση με βάση τη Προτεραιότητα Η απαίτηση να ληφθεί υπόψη ότι όλες οι διεργασίες δεν είναι εξίσου σημαντικές και η ανάγκη να ληφθούν υπόψη και εξωτερικοί παράγοντες, οδηγούν στη σχεδίαση χρονοδρομολόγηση προτεραιοτήτων (priority scheduling). Σε κάθε διεργασία ανατίθεται μία προτεραιότητα και εκτελείται η διεργασία με την υψηλότερη προτεραιότητα. Για την αποτροπή της επ άπειρο εκτέλεσης διεργασιών υψηλής προτεραιότητας, ο χρονοδρομολογητής μειώνει την προτεραιότητα της τρέχουσας διεργασίας σε κάθε διακοπή ρολογιού ή, εναλλακτικά, σε κάθε διεργασία καθορίζεται ένα μέγιστο κβάντο. 15

ΑΛΛΗΛΕΠΙΔΡΑΣΤΙΚΑ Ένας τυπικός αλγόριθμος καλής εξυπηρέτησης, αναθέτει προτεραιότητα: 1/f, όπου f είναι το μέρος του κβάντου χρόνου που χρησιμοποιήθηκε από τη διεργασία την τελευταία φορά. π.χ. Χρήση 2ms από τα 100 ms (κβάντο χρόνου) προτεραιότητα 50 Χρήση 50ms από τα 100 ms (κβάντο χρόνου) προτεραιότητα 2 Συνεπώς αν μια διεργασία είναι φραγμένη λόγω Ε/Ε, τότε δεν έχει νόημα απλά να περιμένει πολύ ώρα στη μνήμη για να αξιοποιήσει τη CPU και να καταναλώνει μνήμη. 16

ΑΛΛΗΛΕΠΙΔΡΑΣΤΙΚΑ Υβριδικό σχήμα περιλαμβάνει την ομαδοποίηση διεργασιών σε κλάσεις προτεραιοτήτων (priority classes). Χρησιμοποιείται ταυτόχρονα: χρονοδρομολόγηση προτεραιοτήτων μεταξύ των κλάσεων χρονοδρομολόγηση εξυπηρέτησης εκ περιτροπής μεταξύ των διεργασιών της ίδιας κλάσης. Αλγόριθμος χρονοπρογραμματισμού: όσο υπάρχουν εκτελέσιμες διεργασίες στην κλάση 4, εκτελείται κάθε μία με τη σειρά για το κβάντο χρόνου της. Όταν η κλάση 4 αδειάσει, εξυπηρετούνται οι διεργασίες της κλάσης 3, κοκ. Με τον αλγόριθμο αυτό, μπορεί να εμφανισθεί το πρόβλημα της παρατεταμένης στέρησης πόρων (starvation) της CPU για κάποιες διεργασίες. 17

ΑΛΛΗΛΕΠΙΔΡΑΣΤΙΚΑ Πολλαπλές Ουρές Σε όλους τους αλγορίθμους εναλλαγής διεργασιών, σημαντική σχεδιαστική παράμετρο αποτελεί η επιλογή του μεγέθους του κβάντου χρόνου Διεργασίες με υψηλή απαίτηση σε CPU μεγάλο κβάντο χρόνου Διεργασίες με υψηλή απαίτηση σε I/O μικρό κβάντο χρόνου Επιλογή μεταξύ πλήθους εναλλαγών έναντι υψηλών χρόνων απόκρισης. 18

ΑΛΛΗΛΕΠΙΔΡΑΣΤΙΚΑ Μία αποτελεσματική επιλογή είναι η λύση των πολλαπλών ουρών (multiple queues) - κλάσεων προτεραιοτήτων: οι διεργασίες της ουράς υψηλότερης κλάσης εκτελούνται για ένα κβάντο χρόνου οι διεργασίες της ουράς της επόμενης κλάσης εκτελούνται για δύο κβάντα χρόνου όταν μια διεργασία χρησιμοποιεί όλο το κβάντο χρόνου που της ανατίθεται, υποβιβάζεται κατά μία κλάση. 19

ΑΛΛΗΛΕΠΙΔΡΑΣΤΙΚΑ Παράδειγμα: Διεργασία απαιτεί 100 κβάντα χρόνου 100 εναλλαγές από τον αλγόριθμο εκ περιτροπής Κβάντα χρόνου Συνολικά κβάντα χρόνου Εναλλαγές 1 1 1 2 3 2 4 7 3 8 15 4 16 31 5 32 63 6 64 127 7 20

ΑΛΛΗΛΕΠΙΔΡΑΣΤΙΚΑ Τα πλεονεκτήματα της μεθόδου αυτής είναι: απαιτείται μικρότερος αριθμός εναλλαγών, σε σχέση με τον αλγόριθμο εξυπηρέτησης εκ περιτροπής όσο μια μεγάλη διεργασία βυθίζεται βαθύτερα στις ουρές προτεραιοτήτων, τόσο ευνοείται η ολοκλήρωση μικρών διαλογικών διεργασιών. 21

ΑΛΛΗΛΕΠΙΔΡΑΣΤΙΚΑ Εγγυημένος Χρονοπρογραμματισμός: Συγκεκριμένες απαιτήσεις για την απόδοση του συστήματος Αν Ν χρήστες ο καθένας θα έχει το 1/Ν της CPU Απαιτείται να κρατάμε το χρόνο CPU που διατίθεται σε κάθε διεργασία χρήστη Χρονοπρογραμματισμός Δίκαιης Διανομής: Λαμβάνεται υπόψη σε ποιόν χρήστη ανήκει η κάθε διαδικασία Ας υποθέσουμε δύο χρήστες (στον καθένα θα πρέπει να δίνεται το 50% της CPU). O χρήστης 1 έχει 4 διεργασίες (Α, Β, Γ, και Δ) ενώ ο χρήστης 2 μόνο 1 διεργασία (Ε). Με χρονοπρογραμματισμό εκ περιτροπής: Α Ε Β Ε Γ Ε Δ Ε... Αν ο 1 δικαιούται διπλάσιο χρόνο τότε: Α Β Ε Γ Δ Ε...κ.λ.π. 22

ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ Ο Χρόνος διεκπεραίωσης είναι κρίσιμος Συστήματα αυστηρά πραγματικού χρόνου (Hard Realtime): πρέπει να τηρούν απολύτως τις προσθεσμίες που τους έχουν ανατεθεί Ήπια συστήματα πραγματικού Χρόνου: υπάρχει κάποια ανοχή στην μη τήρηση μιας περιστασιακής προθεσμίας Η συνήθης τακτική είναι ο χωρισμός του προγράμματος σε κάποιον αριθμό από διεργασίες που έχουν προβλέψιμη και γνωστή εκ των προτέρων συμπεριφορά Όταν ανιχνεύεται κάποιο εξωτερικό γεγονός ο χρονοπρογραμματιστής επιλέγει την κατάλληλη διεργασία ώστε να τηρηθούν οι προθεσμίες. 23