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

Σχετικά έγγραφα
Σκελετός Παρουσίασης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ENOTHTA 5 XPONO POMOΛOΓHΣH

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κύριες Υπηρεσίες ενός ΛΣ

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

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

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

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

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

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

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

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

Εικονική Μνήμη (Virtual Memory)

Ηρώων Πολυτεχνείου 9, Ζωγράφου, Αθήνα, Τηλ: , Fax: URL

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

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

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

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

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

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

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

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

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Παράμετροι Συστημάτων Αναμονής Τύπος Little. Β. Μάγκλαρης, Σ. Παπαβασιλείου

«ροµολόγηση ιεργασιών (2/2): Οργάνωση Επεξεργαστών και ιεργασιών (β)»

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

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

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

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

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

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

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

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

Αδιέξοδα (Deadlocks)

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

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

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

Transcript:

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

Για τη δηµιουργία των διαφανειών έχει χρησιµοποιηθεί υλικό από τις διαφάνειες παραδόσεων που βασίζονται στο βιβλίο, Silberschatz, Galvin and Gagne, Operating Systems Concepts, 6 th Edition. Οι διαφάνειες αυτές βρίσκονται στο δικτυακό τόπο: http://www.cs.purdue.edu/homes/yau/cs503/

Εισαγωγή Βασικές έννοιες Κριτήρια χρονοπρογραµµατισµού Αλγόριθµοι χρονοπρογραµµατισµού Χρονοπρογραµµατισµός πολλών επεξεργαστών (Multiple-processor scheduling) Αποτίµηση απόδοσης αλγορίθµων χρονοπρογραµµατισµού Σελίδα 3

Βασικές Έννοιες Κύκλος ξεσπασµάτων ΚΜΕ Ι/Ο (CPU I/O Burst Cycle). Η εκτέλεση µιας διεργασίας αποτελείται από εναλλαγές κύκλων εκτέλεσης στην ΚΜΕ και αναµονής για Ι/Ο Στόχος του χρονοπρογραµµατισµού, είναι η ανάθεση της ΚΜΕ σε διεργασίες ώστε (α) να µην χάνεται χρόνος της ΚΜΕ εν αναµονή ολοκλήρωσης των λειτουργιών Ι/Ο µε περιφερειακά, και (β) να διαµοιράζεται ο χρόνος της ΚΜΕ στις διάφορες διεργασίες του συστήµατος έτσι ώστε η απόκριση του συστήµατος να είναι η «επιθυµητή» Σελίδα 4

Ακολουθία Ξεσπασµάτων στην ΚΜΕ και σε Ι/Ο Σελίδα 5

Τυπικό Ιστόγραµµα των Χρόνων Ξεσπάσµατος ιεργασιών στην ΚΜΕ Οι διεργασίες πραγµατοποιούν λειτουργίες Ι/Ο ανά τακτά χρονικά διαστήµατα και σπάνια εκτελούν µακρόχρονους υπολογισµούς καθαρά σε επίπεδο ΚΜΕ Σελίδα 6

Ουρές Χρονοπρογραµµατισµού ιεργασιών (Process Scheduling Queues) Ουρά Εισόδου (ή ΟυράΕργασιών, Job queue) ηουρά στην οποία τοποθετούνται οι διεργασίες που εισέρχονται στο σύστηµα Ουρά Έτοιµων ιεργασιών (Ready queue) το σύνολο των διεργασιών που έχουν αποκτήσει χώρο στην κύρια µνήµη, είναι δηλαδή έτοιµες για εκτέλεση και αναµένουν τη σειρά τους Ουρές Συσκευών (Device queues) οι διεργασίες που περιµένουν εξυπηρέτηση από κάποια συσκευή Ι/Ο Οι διεργασίες µετακινούνται µεταξύ των ουρών κατά τη διάρκεια της «ζωής τους» σε ένα ΥΣ Σελίδα 7

ιάφορες Ουρές Αναµονής Σελίδα 8

Αναπαράσταση του Χρονοπρογραµµατισµού των διεργασιών Σελίδα 9

Χρονοπρογραµµατιστές (Schedulers) Μακροπρόθεσµος Χρονοπρογραµµατιστής (Long-term scheduler ή job scheduler) επιλέγει (από την ουρά εισόδου) ποιες διεργασίες θα εισέλθουν στην ουρά έτοιµων διεργασιών Βραχυπρόθεσµος Χρονοπρογραµµατιστής (Short-term scheduler ή CPU scheduler) επιλέγει τη διεργασία η οποία θα εκτελεστεί και της «αναθέτει» (allocates) την ΚΜΕ Σελίδα 10

Προσθήκη του µεσοπρόθεσµου χρονοπρογραµµατιστή Σελίδα 11

Χρονοπρογραµµατιστές (συνέχεια) Ο βραχυπρόθεσµος χρονοπρογραµµατιστής καλείται πολύ συχνά (milliseconds) (πρέπει να είναι γρήγορος) Ο µακροπρόθεσµος χρονοπρογραµµατιστής καλείται αραιά Ο µακροπρόθεσµος χρονοπρογραµµατιστής ελέγχει το βαθµό του πολυπρογραµµατισµού Οι διεργασίες χαρακτηρίζονται ως: ιεργασίες I/O-bound ξοδεύουν περισσότερο χρόνο κάνοντας Ι/Ο, µε λίγακαιµικρής διάρκειας ξεσπάσµατα ΚΜΕ (CPU bursts) ιεργασίες CPU-bound ξοδεύουν περισσότερο χρόνο σε υπολογισµούς, µε λίγα και πολύ µεγάλα ξεσπάσµατα ΚΜΕ Σελίδα 12

Εναλλαγή Περιβάλλοντος Λειτουργίας (Context Switch) Όταν η ΚΜΕ «δίνεται» σε µια άλλη διεργασία, το ΛΣ πρέπει να σώσει την κατάσταση της διεργασίας που αντικαθίσταται και να φορτώσει την κατάσταση της διεργασίας που την αντικαθιστά Η διαδικασία αυτή ονοµάζεται εναλλαγή περιβάλλοντος λειτουργίας (context switch). O χρόνος που απαιτείται για την εκτέλεση της λειτουργίας αυτής είναι καθαρός φόρτος (overhead) για το σύστηµα (το οποίο όσο ασχολείται µε την εναλλαγή δεν κάνει χρήσιµη δουλειά για τις διεργασίες των χρηστών του) Ο χρόνος αυτός εξαρτάται από την πολυπλοκότητα του ΛΣ και την υποστήριξη από το υλικό Σελίδα 13

Εναλλαγή Περιβάλλοντος Λειτουργίας (συνέχεια) ιεργασία 0 Λειτουργικό Σύστηµα ιεργασία 1 εκτέλεση ιακοπή ή κλήση συστήµατος Χρόνος Εκτέλεσης ΛΣ (context switch) Αποθήκευση κατάστασης στο PCB0... Ανάκτηση κατάστασης από PCB1 ανενεργή ανενεργή ιακοπή ή κλήση συστήµατος εκτέλεση Αποθήκευση κατάστασης στο PCB1... Ανάκτηση κατάστασης από PCB0 Χρόνος Εκτέλεσης ΛΣ (context switch) ανενεργή εκτέλεση Σελίδα 14

Χρονοπρογραµµατιστής ΚΜΕ Επιλέγει µεταξύ των διεργασιών που έχουν είναι έτοιµες για εκτέλεση, και αναθέτει την ΚΜΕ σε µια από αυτές Αποφάσεις χρονοπρογραµµατισµού χωρίς διακοπές (non-preemptive scheduling) λαµβάνονται όταν µια διεργασία: Μεταπίπτει από κατάσταση running σε κατάσταση waiting Τερµατίζει Μπορούµε ναπούµε ότι η διεργασία «προκαλεί» την απόφαση χρονοπρογραµµατισµού Σελίδα 15

Χρονοπρογραµµατιστής ΚΜΕ Αποφάσεις χρονοπρογραµµατισµού µε διακοπές (preemptive scheduling) λαµβάνονται όταν: Μεταπίπτει από κατάσταση running σε κατάσταση ready (π.χ. συµβεί διακοπή λόγω λήξης χρόνου εκτέλεσης της διεργασίας) Μεταπίπτει από κατάσταση waiting σε κατάσταση ready (π.χ. συµβεί διακοπή από κάποια συσκευή Ε/Ε) Σε αυτή την περίπτωση τις αποφάσεις χρονοπρογραµµατισµού «επιβάλλει» το σύστηµα στις διεργασίες Σελίδα 16

Ο Αποστολέας (Dispatcher) Το τµήµα του ΛΣ που δίνει τον έλεγχο της ΚΜΕ στη διεργασία που έχει επιλεγεί από τον χρονοπρογραµµατιστή Αυτή η διαδικασία περιλαµβάνει: εναλλαγή περιβάλλοντος λειτουργίας εναλλαγή σε τρόπο λειτουργίας χρήστη µετάβαση στην κατάλληλη θέση του κώδικα χρήστη έτσι ώστε να να γίνει επανεκκίνηση του προγράµµατος Καθυστέρηση του αποστολέα (dispatch latency): Οχρόνοςπου απαιτείται για τη απενεργοποίηση της παλιάς διεργασίας και την ενεργοποίηση της νέας Σελίδα 17

Κριτήρια Χρονοπρογραµµατισµού Ι Χρησιµοποίηση της ΚΜΕ (CPU utilization): ΗΚΜΕ πρέπει να είναι όσο το δυνατόν περισσότερο απασχοληµένη Ρυθµός διεκπεραίωσης (throughput): Πλήθος διεργασιών που ολοκληρώνουν την εκτέλεσή τους στη µονάδα του χρόνου Χρόνος ολοκλήρωσης (turnaround time): Οχρόνοςπου µεσολαβεί από την υποβολή ως την ολοκλήρωση της διεργασίας Σελίδα 18

Κριτήρια Χρονοπρογραµµατισµού ΙΙ Χρόνος αναµονής (waiting time): Οχρόνοςπουµια διεργασία περιµένει στην ουρά έτοιµων διεργασιών Χρόνος απόκρισης (response time): Οχρόνοςπου απαιτείται από την υποβολή µιας αίτησης που αφορά µια διεργασία µέχρι να δροµολογηθεί η διεργασία στην ΚΜΕ (όχι όµως και να παράγει κάποιο «ορατό» στο χρήστη αποτέλεσµα) Σελίδα 19

Βελτιστοποίηση των κριτηρίων Σε γενικές γραµµές, ένα ΛΣ προσπαθεί να επιτύχει: Μεγιστοποίηση της χρησιµοποίησης της ΚΜΕ Μεγιστοποίηση του ρυθµού διεκπεραίωσης Ελαχιστοποίηση του χρόνου ολοκλήρωσης Ελαχιστοποίηση του χρόνου αναµονής Ελαχιστοποίηση του χρόνου απόκρισης Η βελτιστοποίηση όλων των παραµέτρων απαιτεί συµβιβασµούς Σελίδα 20

Προσέγγιση First-Come, First-Served (FCFS) ιεργασία Χρόνος Ξεσπάσµατος στην ΚΜΕ (σε ms) P 1 24 P 2 3 P 3 3 Οι διεργασίες φτάνουν µε σειρά: P 1, P 2, P 3 Το διάγραµµα Gantt γι αυτό το χρονοπρογραµµατισµό είναι: P 1 P 2 P 3 0 24 27 30 Μέσος Χρόνος Αναµονής: (0 + 24 + 27)/3 = 17ms ηµιουργείται φαινόµενο convoy όταν µικρές διεργασίες βρίσκονται πίσω από µεγάλες Σελίδα 21

First-Come, First-Served (συνέχεια) ιεργασία Χρόνος Ξεσπάσµατος στην ΚΜΕ (σε ms) P 1 24 P 2 3 P 3 3 Οι διεργασίες φτάνουν µε σειρά: P 2, P 3, P 1 Το διάγραµµα Gantt γι αυτό το χρονοπρογραµµατισµό είναι: P 2 P 3 P 1 0 3 6 30 Χρόνος αναµονής για την P 1 = 6ms, P 2 = 0ms, P 3 = 3ms Μέσος Χρόνος Αναµονής: (6 + 0 + 3)/3 = 3ms Σελίδα 22

Προσέγγιση «Πρώτα η Μικρότερη Εργασία» (Shortest Job First SJF) Συσχετίζουµε µε κάθε διεργασία το µήκος του επόµενου ξεσπάσµατος στην ΚΜΕ, και επιλέγεται πάντα η διεργασία µε το µικρότερο χρόνο Non-preemptive: Απότηστιγµή που θα δοθεί η ΚΜΕ σε µια διεργασία, αυτή η διεργασία δεν µπορεί να διακοπεί η επιλογή της επόµενης διεργασίας γίνεται όταν τελειώσει η τρέχουσα διεργασία Preemptive: Αν µια διεργασία εισέλθει στο σύστηµα µε µήκος ξεσπάσµατος µικρότερο από αυτό που αποµένει στην τρέχουσα διεργασία, τότε γίνεται διακοπή. Το σχήµα αυτό είναι γνωστό ως «Πρώτα η Εργασία µε το Λιγότερο Υπολειπόµενο Χρόνο» (Shortest- Remaining-Time-First SRTF) SJF είναι βέλτιστος: Επιτυγχάνει ελάχιστο µέσο χρόνο αναµονής Σελίδα 23

Παράδειγµα SJF χωρίς διακοπές ιεργασία Χρόνος Άφιξης Χρόνος Ξεσπάσµατος (σε ms) P 1 0.0 7 P 2 2.0 4 P 3 4.0 1 P 4 5.0 4 SJF (non-preemptive) P 1 P 3 P 2 P 4 0 3 7 8 12 16 Μέσος Χρόνος Αναµονής = (0 + (8-2) + (7-4) + (12-5))/4 = 4ms Σελίδα 24

Παράδειγµα SJF µε διακοπές ιεργασία Χρόνος Άφιξης Χρόνος Ξεσπάσµατος (σε ms) P 1 0.0 7 P 2 2.0 4 P 3 4.0 1 P 4 5.0 4 SJF (preemptive) P 1 P 2 P 3 P 2 P 4 P 1 0 2 4 5 7 11 16 Μέσος Χρόνος Αναµονής = ((11-2) + (5-4) + (4-4) +(7-5))/4 = 3ms Σελίδα 25

Προσδιορισµός του Μήκους του Επόµενου Ξεσπάσµατος στην ΚΜΕ Το κλειδί της επιτυχίας είναι να γνωρίζει κανείς το µήκος του (επόµενου) ξεσπάσµατος κάθε διεργασίας στο σύστηµα Αυτός ο χρόνος µπορεί µόνο να προσεγγιστεί Ένας τρόπος είναι να ληφθούν υπόψη οι χρόνοι των προηγούµενων ξεσπασµάτων µε χρήσητουεκθετικούµέσου όρου (exponential averaging): 1. t n = πραγµατικός χρόνος n-οστού ξεσπάσµατος ΚΜΕ 2. τ n+1 = εκτιµώµενη τιµή γιατοεπόµενο ξέσπασµα ΚΜΕ 3. α, 0 <= α <= 1 4. Ορίζουµε: τ n+1 = α t n + (1 - α)τ n Σελίδα 26

Παραδείγµατα Εκθετικού Μέσου Όρου Αν επεκτείνουµε τον τύπο έχουµε: τ n+1 = α t n +(1 - α) 1 α t n-1 + +(1 - α ) j α t n-j + +(1 - α ) n+1 τ 0 Με α =0 τ n+1 = τ 0 Η ιστορία δεν παίζει ρόλο Με α =1 τ n+1 = t n Μόνο το τελευταίο ξέσπασµα µετράει Με 0 < α < 1, τα πρόσφατα ξεσπάσµατα έχουν µεγαλύτερο βάρος από τα παλιά, λόγω του ότι τόσο το α όσο και το (1 - α) είναι < 1, και άρα τα βάρος των αντίστοιχων όρων µικραίνει µε την παλαιότητα Σελίδα 27

Αναπαράσταση Πρόβλεψης Μήκους του Επόµενου Ξεσπάσµατος ΚΜΕ Σελίδα 28

Χρονοπρογραµµατισµός µε Προτεραιότητες (Priority Scheduling) Κάθε διεργασία έχει έναν αριθµό προτεραιότητας (ακέραιος - όπου συνήθως µικρές τιµές συµβολίζουν υψηλότερη προτεραιότητα) Η ΚΜΕ ανατίθεται στην διεργασία µε την πιο ψηλή προτεραιότητα που είναι διαθέσιµη. Μπορεί να γίνει µε ήχωρίςδιακοπές Ο SJF µπορεί να θεωρηθεί αλγόριθµος χρονοπρογραµµατισµού, µε προτεραιότητα τον επόµενο (εκτιµώµενο) χρόνο ξεσπάσµατος Πρόβληµα λιµοκτονίας (starvation): Οι διεργασίες χαµηλής προτεραιότητας µπορεί να µην εκτελεστούν ποτέ Λύση µέσω γήρανσης (aging): Με την πάροδο του χρόνου αυξάνεται η προτεραιότητα των διεργασιών που δεν έχουν λάβει την ΚΜΕ Σελίδα 29

Χρονοπρογραµµατισµός εκ Περιτροπής (Round Robin RR) Κάθε διεργασία λαµβάνει ένα µικρό κλάσµα του χρόνου της ΚΜΕ (µονάδα χρόνου - time quantum), συνήθως 10-100 milliseconds Μόλις παρέλθει αυτό το χρονικό διάστηµα, η διεργασία διακόπτεται και προστίθεται στο τέλος της ουράς έτοιµων διεργασιών Αν υπάρχουν n διεργασίες στην ουρά έτοιµων διεργασιών και η µονάδα χρόνου είναι q, τότε: κάθε διεργασία θα εκτελείται για το 1/n του χρόνου της ΚΜΕ σε τεµάχια µονάδων χρόνου διάρκειας q Καµιά διεργασία δεν περιµένει περισσότερο από χρόνο (n-1)q Απόδοση: πολύ µεγάλο q ο αλγόριθµος µετατρέπεται σε FCFS πολύ µικρό q το σύστηµα αναλώνεται σε context switches Σελίδα 30

Παράδειγµα Χρονοπρογραµµατισµού εκ Περιτροπής µε q= 20 ιεργασία Χρόνος Ξεσπάσµατος στην ΚΜΕ (σε ms) P 1 53 P 2 17 P 3 68 P 4 24 Το διάγραµµα Gantt είναι: P 1 P 2 P 3 P 4 P 1 P 3 P 4 P 1 P 3 P 3 0 20 37 57 77 97 117 121 134 154 162 Συνήθως, µεγαλύτερος µέσος χρόνος ολοκλήρωσης από τον SJF, αλλά καλύτερος χρόνος απόκρισης Σελίδα 31

Μονάδα Χρόνου και Χρόνος Εναλλαγής Περιβάλλοντος Λειτουργίας Σελίδα 32

Ο Χρόνος Ολοκλήρωσης Ποικίλει Ανάλογα µε τη Μονάδα Χρόνου Σελίδα 33

Πολυεπίπεδες Ουρές (Multilevel Queue) H ουρά έτοιµων διεργασιών χωρίζεται σε δύο διαφορετικές ουρές: διεργασίες που τρέχουν στο προσκήνιο (interactive) ήστο παρασκήνιο (batch) Κάθε ουρά έχει το δικό της αλγόριθµο χρονοπρογραµµατισµού, foreground RR, background FCFS Χρονοπρογραµµατισµός πρέπει να γίνεται και µεταξύ των ουρών Καθορισµένος χρονοπρογραµµατισµός µε προτεραιότητες (π.χ., πρώτα εξυπηρέτηση του προσκηνίου). Πιθανότητα λιµοκτονίας Μονάδα χρόνου κάθε ουρά λαµβάνει ένα συγκεκριµένο ποσοστό του χρόνου της ΚΜΕ, το οποίο µπορεί να διατεθεί µε όποιο τρόπο µεταξύ των διεργασιών που υπάρχουν στην ουρά, π.χ., 80% στο προσκήνιο µε RR 20% στο παρασκήνιο µε FCFS Σελίδα 34

Χρονοπρογραµµατισµός Πολυεπίπεδων Ουρών Σελίδα 35

Πολυεπίπεδες Ουρές µε Ανατροφοδότηση (Multilevel Feedback Queues) Μια διεργασία µπορεί να µετακινείται µεταξύ των διάφορων ουρών. Τρόπος υλοποίησης της γήρανσης (aging) Ένας χρονοπρογραµµατιστής πολυεπίπεδων ουρών προσδιορίζεται από τις ακόλουθες παραµέτρους: πλήθος ουρών αλγόριθµο χρονοπρογραµµατισµού για την κάθε ουρά µέθοδος αναβάθµισης διεργασιών µέθοδος υποβάθµισης διεργασιών µέθοδος προσδιορισµού της ουράς στην οποία πρέπει να εισέλθει µια διεργασία όταν χρειάζεται εξυπηρέτηση Σελίδα 36

Παράδειγµα Πολυεπίπεδης Ουράς µε Ανατροφοδότηση Τρεις ουρές: Q 0 µονάδα χρόνου 8 milliseconds Q 1 µονάδα χρόνου 16 milliseconds Q 2 FCFS Χρονοπρογραµµατισµός Μια νέα διεργασία εισέρχεται στην ουρά Q 0 ηοποία εξυπηρετείται µε RR. Εκτελείται για 8 ms και αν δεν ολοκληρώσει διακόπτεται και τοποθετείται στην Q 1 Στην Q 1 η διεργασία έχει επιπρόσθετα 16ms. Αν δεν ολοκληρώσει διακόπτεται και τοποθετείται στην Q 2 Σελίδα 37

Πολυεπίπεδη Ουρά µε Ανατροφοδότηση Σελίδα 38

Χρονοπρογραµµατισµός Πολλών Επεξεργαστών (Multiple-processor scheduling) Ο χρονοπρογραµµατισµός είναι πιο πολύπλοκος όταν το σύστηµα διαθέτει πολλές ΚΜΕ Οµοιογενείς επεξεργαστές (homogeneous processors) σε ένα περιβάλλον πολλαπλών επεξεργαστών (οι διεργασίες µπορούν να τρέξουν σε οποιονδήποτε από τους επεξεργαστές) Καταµερισµός φόρτου (load sharing) πρόβληµα η πρόσβαση σε κοινές δοµές δεδοµένων του συστήµατος Ασύµµετρη πολυεπεξεργασία (asymmetric multiprocessing) µόνο ένας επεξεργαστής έχει πρόσβαση στις δοµές δεδοµένων του συστήµατος, απαλείφοντας την ανάγκη για διαµοιρασµό και συγχρονισµό στην πρόσβαση δεδοµένων Σελίδα 39

Χρονοπρογραµµατισµός Πραγµατικού Χρόνου (Real-Time Scheduling) Αυστηρά συστήµατα πραγµατικού χρόνου (hard real-time): Πρέπει να είναι σε θέση να ολοκληρώσουν µια εργασία µέσα σε αυστηρά καθορισµένα χρονικά περιθώρια (δέσµευση πόρων - resource reservation). ύσκολα υλοποιήσιµα. Συνήθως οι ακριβής φύση των διεργασιών πρέπει να είναι γνωστή εκ των προτέρων Χαλαρά συστήµατα πραγµατικού χρόνου (soft real-time): Πρέπει να δίνεται προτεραιότητα στις κρίσιµες διεργασίας έναντι όλων των υπολοίπων. ηµιουργεί άδικη ανάθεση πόρων Είναι υλοποιήσιµα και χρησιµοποιούνται για την υποστήριξη πολυµέσων και γραφικών σε συστήµατα γενικού σκοπού Σελίδα 40

Χρονοπρογραµµατισµός Πραγµατικού Χρόνου (συνέχεια) ύο βασικές απαιτήσεις: Σύστηµα µε προτεραιότητες, διακοπές και χωρίς γήρανση. Μικρή καθυστέρηση αποστολέα Η δεύτερη απαίτηση υλοποιείται δύσκολα. Απαιτείται είτε υλοποίηση µηχανισµών διακοπών σε συγκεκριµένα σηµεία κλήσεων συστήµατος (preemption points in long system calls) ή δυνατότητα διακοπής του πυρήνα του ΛΣ. Απαιτείται προστασία των δοµών δεδοµένων του πυρήνα Priority inversion (µια διεργασία χαµηλής προτεραιότητας κατέχει πόρο που χρειάζεται η διεργασία υψηλής προτεραιότητας) και priority inheritance (η διεργασία αυτή κληρονοµεί για όσο διάστηµα κρατάει τον πόρο την υψηλή προτεραιότητα) Σελίδα 41

Καθυστέρηση Αποστολέα Σελίδα 42

Αποτίµηση Απόδοσης Αλγορίθµων Ντετερµινιστική µοντελοποίηση (Deterministic modeling): Χρησιµοποιεί ένα προκαθορισµένο φόρτο εργασίας και προσδιορίζει την απόδοση κάθε αλγορίθµου για αυτό το φόρτο εργασίας Μοντέλα θεωρίας ουρών αναµονής (Queuing models) Υλοποίηση προσοµοίωσης (Simulation) Σελίδα 43

Μοντέλα Ουρών Αναµονής (Queueing Models) Η ανάλυση ουρών αναµονής δικτύου µοντελοποιεί το σύστηµα ως ένα σύνολο εξυπηρετητών και συσχετισµένες µε αυτούς ουρές διεργασιών που αναµένουν: ΚΜΕ και ουρά έτοιµων διεργασιών Ουρά συστήµατος Ε/Ε και ουρές συσκευών, κ.λπ. Η µέθοδος αυτή χρησιµοποιεί πληροφορία σχετικά µε την κατανοµή των ξεσπασµάτων στην ΚΜΕ και την Ε/Ε (που καθορίζεται από µετρήσεις ή εκτιµήσεις) Σελίδα 44

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

O Τύπος του Little Σε σταθερή κατάσταση, οι διεργασίες που φτάνουν στην ουρά είναι ίδιες µε αυτές που φεύγουν από την ουρά Σε αυτή την περίπτωση ισχύει ο τύπος του Little: όπου: n = λ W, n = το µέσο µήκος της ουράς W = ο µέσος χρόνος αναµονής λ = ο µέσος ρυθµός άφιξης των διεργασιών Σελίδα 46

Ο Τύπος του Little (συνέχεια) Ισχύει για οποιοδήποτε αλγόριθµο δροµολόγησης και οποιαδήποτε κατανοµή αφίξεων Παράδειγµα: 7 διεργασίες φτάνουν / δευτερόλεπτο 14 διεργασίες στην ουρά n = λ W W = n / λ W = 2 sec δηλ. ο µέσος χρόνος αναµονής ανά διεργασία, σε ένα σύστηµα µε αυτά τα χαρακτηριστικά είναι 2sec Σελίδα 47

Ο Τύπος του Little (συνέχεια) Αν υποθέσουµε ότιχ είναι ο µέσος χρόνος εκτέλεσης διεργασίας, τότε ο τύπος του Little µπορεί να δώσει το µέσο πλήθος των διεργασιών που εκτελούνται ρ = λ Χ Επειδή όµως το πολύ µια διεργασία µπορεί να εκτελείται, το ρ είναι επίσης γνωστό ως παράγοντας χρησιµοποίησης (utilization factor), δηλ. το ποσοστό του χρόνου που η ΚΜΕ είναι απασχοληµένη εκτελώντας διεργασίες Σελίδα 48

Περιορισµοί της ανάλυσης µε χρήση ουρών αναµονής Είναι περιορισµένοι οι αλγόριθµοικαιοικατανοµές που µπορεί να χειριστεί η ανάλυση µε χρήση ουρών αναµονής Μπορεί να απαιτούνται πολύπλοκοι µαθηµατικοί υπολογισµοί Ο µαθηµατικός τρόπος ορισµού των κατανοµών είναι συχνά µη ρεαλιστικός Γιαναχειριστούµε ταµαθηµατικά, µπορεί να γίνουν ανακριβείς υποθέσεις Η θεωρία παράγει προσεγγιστικές απαντήσεις Σελίδα 49

Προσοµοιώσεις (Simulations) Οι προσοµοιώσεις είναι προγράµµατα που µοντελοποιούν τα δοµικά τµήµατα ενός συστήµατος οµές δεδοµένων αναπαριστούν τµήµατα του συστήµατος (π.χ. µια µεταβλητή χρησιµοποιείται για να αναπαραστήσει το ρολόι του συστήµατος) Οπροσοµοιωτής τροποποιεί την κατάσταση του συστήµατος ώστε να αντικατοπτρίζει τις δραστηριότητες των συσκευών, του χρονοπρογραµµατιστή και των διεργασιών Οπροσοµοιωτής τηρεί στατιστικά σχετικά µε την απόδοση του συστήµατος Σελίδα 50

Προσοµοιώσεις (συνέχεια) εδοµένα εισόδου (χρόνοι άφιξης και χρόνοι ξεσπασµάτων) µπορούν να δηµιουργηθούν από: Μια γεννήτρια τυχαίων αριθµών Μια ταινία καταγραφής (µια καταγραφή των χρόνων άφιξης και ξεσπασµάτων σε ένα πραγµατικό σύστηµα) Μειονεκτήµατα της προσοµοίωσης: Ηπροσοµοίωση κοστίζει. Μπορεί να χρειαστεί πολλές ώρες υπολογισµών Περισσότερη λεπτοµέρεια παράγει περισσότερο ακριβή αποτελέσµατα, απαιτεί όµως περισσότερο χρόνο υπολογισµών Οι ταινίες απαιτούν µεγάλη ποσότητα χώρου αποθήκευσης Σελίδα 51

Αποτίµηση των Αλγορίθµων Χρονοπρογραµµατισµού µε Προσοµοίωση Σελίδα 52