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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ENOTHTA 5 XPONO POMOΛOΓHΣH

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

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

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

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

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγικά & Βασικές Έννοιες

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

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

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

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

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

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

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

Συστήματα σε Ολοκληρωμένα Κυκλώματα

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

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

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

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

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

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

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

Αρχιτεκτονική Υπολογιστών

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 8 ο Μερική Επικάλυψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

Αρχιτεκτονική Υπολογιστών II Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων

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

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

Transcript:

ΣΥΣΤΗΜΑΤΑ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ Μάθημα Επιλογής Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου Δρ. Γεώργιος Κεραμίδας e-mail: gkeramidas@teimes.gr 1

Διεργασίες: Κατάσταση Εκτέλεσης (3-σταδίων) Κατάσταση μιας διεργασίας (ως προς την εκτέλεση της) τρέχει (running): έχει τη CPU έτοιμο (ready): μπορεί να τρέξει, αλλά η CPU δόθηκε αλλού. μπλοκαρισμένη (blocked): περιμένει «εξωτερικό» γεγονός Για το σχήμα: 1. περιμένει I/O 2. CPU δίνεται σ' άλλο process 3. CPU δίνεται σ' αυτό το process 4. I/O ολοκληρώθηκε

Παράδειγμα εκτέλεσης Παράδειγμα:

Λειτουργικά Συστήματα Πραγματικού Χρόνου (ΛΣΠΧ) Κατάληψη ΚΜΕ καθοδηγούμενη από προτεραιότητες

Απόψεις της εκτέλεσης των διεργασιών A Α B Β Γ Γ Δ Α Β Γ Δ Δ Χρόνος (α) (β) (γ) (α) μοναδικός δείκτης εντολών προγράμματος (β) πολλαπλοί δείκτες εντολών προγράμματος (γ) κατανομή στον χρόνο

Χρονοπρογραμματισμός διεργασιών Σε πολυπρογραμματιζόμενα συστήματα είναι δυνατόν πάνω από μία διεργασίες να είναι εκτελέσιμες Το λειτουργικό σύστημα πρέπει να αποφασίσει ποια από αυτές θα καταλάβει την ΚΜΕ Το τμήμα του Λ.Σ. που είναι επιφορτισμένο με αυτό το καθήκον καλείται χρονοπρογραμματιστής και εφαρμόζει έναν αλγόριθμο χρονοπρογραμματισμού

Χρονοπρογραμματισμός σε συστήματα πραγματικού χρόνου Στα συστήματα πραγματικού χρόνου, ο χρονοπρογραμματιστής πρέπει να: Υποστηρίζει πολυεπεξεργασία/πολυνηματισμό με δυνατότητα προεκτόπισης Υποστηρίζει προτεραιότητες νημάτων Παρέχει προβλέψιμους μηχανισμούς συγχρονισμού νημάτων Να υπάρχει δυνατότητα ακριβούς εκτίμησης του χρόνου συγχρονισμού / αποκλεισμού Μεριμνά ιδιαίτερα για την τήρηση των χρονικών προθεσμιών

Πότε χρονοπρογραμματίζουμε; Υπάρχουν πολλές περιπτώσεις όπου μπορούμε να λάβουμε μία απόφαση χρονοπρογραμματισμού όταν δημιουργείται μία νέα διεργασία θα συνεχίσουμε να εκτελούμε τη γονική ή θα μεταχθούμε στη θυγατρική; όταν μία διεργασία τερματίζει πρέπει να επιλεχθεί κάποια από τις εκτελέσιμες ή η διεργασία αδράνειας όταν μία διεργασία αναστέλλεται για να εκτελέσει (για παράδειγμα) λειτουργίες εισόδου/εξόδου η αιτία αναστολής ίσως είναι σημαντική για την απόφαση χρονοπρογραμματισμού π.χ. αν η Α ανασταλεί περιμένοντας έναν πόρο που κατέχει η Β, η Β είναι καλός υποψήφιος για εκτέλεση. Ο χρονοπρογραμματιστής δεν έχει όμως πάντα όλες τις πληροφορίες

Χρονοπρογραμματισμός σε συστήματα χωρίς χαρακτηριστικά πραγματικού χρόνου Πρώτη ερχόμενη-πρώτη εξυπηρετούμενη (FCFS/FIFO) Νέα διεργασία Αναμένουσες διεργασίες Πρώτη διεργασία ΚΜΕ Ολοκλήρωση Πλεονεκτήματα πολύ εύκολος στην κατανόηση απλούστατος στην υλοποίηση δίκαιος, με την έννοια ότι όλοι εξυπηρετούνται, ο καθένας με τη σειρά του Μειονεκτήματα Μεγάλη ατυχία αν μία μικρή διεργασία (ή περισσότερες) τοποθετηθεί πίσω από μία μεγάλη π.χ. 100 διεργασίες εισόδου-εξόδου πίσω από μία μεγάλη διεργασία που τρέχει 3 ημέρες (head-of-line blocking) Όχι καλή αξιοποίηση των πόρων του συστήματος Απολύτως ακατάλληλος για συστήματα πραγματικού χρόνου

Χρονοπρογραμματισμός σε συστήματα χωρίς χαρακτηριστικά πραγματικού χρόνου Εκ περιτροπής εξυπηρέτηση (round robin) απλός, δίκαιος και ιδιαίτερα διαδεδομένος Σε κάθε διεργασία αποδίδεται ένα χρονικό κβάντο μέγιστος χρόνος συνεχούς εκτέλεσής της Αν η διεργασία εξαντλήσει το κβάντο ή ανασταλεί πριν το εξαντλήσει λαμβάνει χώρα μεταγωγή διεργασιών Εξάντληση χρονικού κβάντου Νέα διεργασία Αναμένουσες διεργασίες Πρώτη διεργασία ΚΜΕ Ολοκλήρωση Διεργασίες υπό αναστολή Αναστολή διεργασίας Ακατάλληλος για συστήματα πραγματικού χρόνου

Χρονοπρογραμματισμός προτεραιοτήτων με πολλαπλές ουρές Χρονοπρογραμματισμός προτεραιοτήτων Διάταξη διεργασιών σε κλάσεις προτεραιοτήτων εντός κάθε κλάσης εκ περιτροπής εξυπηρέτηση, απόλυτη προτεραιότητα της κλάσης ι έναντι των επομένων της Εκτελέσιμες διεργασίες Προτεραιότητα 0 Υψηλή προτεραιότητα Προτεραιότητα 1 Προτεραιότητα ν Χαμηλή προτεραιότητα

Χρονοπρογραμματισμός προτεραιοτήτων με ενιαία ουρά Χρονοπρογραμματισμός προτεραιοτήτων Οι προτεραιότητες μπορεί να είναι στατικές ή δυναμικές π.χ. στατική: στρατηγοί = 100, λοχαγοί = 40, στρατιώτες = 10 στατική: επιλογή χρήστη λόγω τιμολογιακών πολιτικών σε υπολογιστικά κέντρα (υψηλή προτεραιότητα = 10 ευρώ/ώρα, χαμηλή = 5 ευρώ/ώρα) Εξάντληση χρονικού κβάντου* Μείωση προτεραιότητας Νέα διεργασία + αρχική προτεραιότητα Αναμένουσες διεργασίες Διεργασίες υπό αναστολή Πρώτη διεργασία Επαναϋπολογισμός προτεραιότητας ΚΜΕ Αναστολή διεργασίας Ολοκλήρωση

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

Αλγόριθμος EDF EDF (earliest deadline first, συντομότερη προθεσμία πρώτα) Οι διεργασίες κατατάσσονται με βάση την προθεσμία που έχουν και επιλέγεται αυτή με τη συντομότερη προθεσμία Ένα απλό παράδειγμα. Θα πούμε και άλλα.

Υπολογισμός χρόνου εκτέλεσης διεργασιών Στους περισσότερους αλγόριθμους, απαιτείται να γνωρίζουμε τον χρόνο εκτέλεσης των διεργασιών Η πιο ευρέως χρησιμοποιούμενη σχετική μετρική είναι η WCET (worst case execution time). Βασίζεται στη στατική ανάλυση του λογισμικού

Υπολογισμός χρόνου εκτέλεσης διεργασιών Στους περισσότερους αλγόριθμους, απαιτείται να γνωρίζουμε τον χρόνο εκτέλεσης των διεργασιών H εκτίμηση του χρόνου χειρότερης περίπτωσης υπολογίζεται δομώντας τις διεργασίες σε έναν γράφο και υπολογίζοντας τον χρόνο εκτέλεσης του μακρύτερου μονοπατιού (longest path) που μπορεί να ακολουθήσει η εκτέλεση του λογισμικού O υπολογισμός του WCET περιπλέκεται από τις ιδιαιτερότητες της αρχιτεκτονικής (σωλήνωση, παραλληλία, κρυφή μνήμη, πρόβλεψη διακλαδώσεων κ.ο.κ.) Κατ αντιστοιχία ορίζεται και το BCET (best-case execution time)

Σχέση BCET, WCET πραγματικό ΒCET πραγματικό WCET πιθανοί χρόνοι εκτέλεσης Ασφαλής εκτίμηση WCET 0 Ανασφαλής εκτίμηση χρόνος

Βασικές εντολές συμβολικής γλώσσας (assembly) LOAD : φόρτωση καταχωρήτη από θέση μνήμης LOAD R2,&b ; R2 <-- περιεχόμενα της θέσης μνήμης "b" TEST: συγκρίνει δύο καταχωρητές. Το αποτέλεσμα της σύγκρισης απόθηκεύεται TEST R1,R2 ; σύγκριση R1 και R2, τίθεται η σχετική ένδειξη JNE: υπάρχει μετά από την TEST. Σημαίνει κάνε JUMP αν δεν υπήρχε ισότητα (Not Equal) JNE @L1 ; αν δεν προέκυψε ισότητα, άλμα στην ετικέτα L1

Βασικές εντολές συμβολικής γλώσσας (assembly) ADD: πρόσθεση καταχωρήτή με καταχωρητή ADD R1,R2 ; R1 <-- R1 + R2 JG: υπάρχει μετά από την TEST. Σημαίνει κάνε JUMP αν η σύγκριση ήταν μεγαλύτερο (Greater) JGE @L2 ; αν R1 >= R2, άλμα στην ετικέτα L2 JMP: άλμα στην ετικέτα JMP @END ; άλμα στην ετικέτα END SUB: αφαίρεση καταχωρήτή με καταχωρητή SUB R2, R3 ; R2 <-- R2 - R3

Υπολογισμός χρόνου εκτέλεσης διεργασιών (3) Ας θεωρήσουμε το ακόλουθο παράδειγμα κώδικα συμβολικής γλώσσας: LOAD R1,&a ; R1 <-- περιεχόμενα της θέσης μνήμης "a" LOAD R2,&b ; R2 <-- περιεχόμενα της θέσης μνήμης "b" TEST R1,R2 ; σύγκριση R1 και R2, τίθεται η σχετική ένδειξη JNE @L1 ; αν δεν προέκυψε ισότητα, άλμα στην ετικέτα L1 ADD R1,R2 ; R1 <-- R1 + R2 TEST R1,R2 ; σύγκριση R1 και R2, τίθεται η σχετική ένδειξη JGE @L2 ; αν R1 >= R2, άλμα στην ετικέτα L2 JMP @END ; άλμα στην ετικέτα END L1: ADD R1, R2 ; R1 <-- R1 + R2 JMP @END ; άλμα στην ετικέτα END L2: ADD R1, R2 ; R1 <-- R1 + R2 END: SUB R2, R3 ; R2 <-- R2 - R3

Υπολογισμός χρόνου εκτέλεσης διεργασιών Κατασκευάζουμε το δέντρο του προγράμματος στο οποίο απαριθμούνται όλα τα πιθανά μονοπάτια εκτέλεσης L1: ADD R1, R2 JMP @END SUB R2, R3 1 LOAD R1, &a LOAD R2, &b TEST R1,R2 JNE @L1 2, 3 (R1<>R2) (R1=R2) ADD R1, R2 TEST R1, R2 JGE @L2 L2: END: ADD R1, R2 SUB R2,R3 2 3 (R1>=R2) (R1<R2) JMP @END SUB R2, R3

Υπολογισμός χρόνου εκτέλεσης διεργασιών (5) Αν ο χρόνος εκτέλεσης μιας εντολής είναι 6μsec (ίδιος για κάθε εντολή), τότε: για το 1 ο μονοπάτι ο χρόνος εκτέλεσης είναι 42μsec (περιλαμβάνει 7 εντολές) και για το 2 ο και το 3 ο μονοπάτι είναι 54 μsec (περιλαμβάνουν 9 εντολές). Επομένως υπολογίστηκε ότι ο WCET είναι 54 μsec Christmas GIFT: Αυτό το παράδειγμα με άλλες εντολές και με άλλους χρόνους θα μπει στις εξετάσεις.

Scheduling (Χρονοδρομολόγηση) (Συνέχεια) Αλγόριθμοι: Αλγόριθμος First Come, First Serve (FCFS) Αλγόριθμος Shortest Job First (SJF) χωρίς προεκτόπιση Αλγόριθμος Shortest Job First (SJF) με προεκτόπιση Αλγόριθμος Round Robin (RR) 23

Κριτήρια

Κριτήρια (συνέχεια)

Βελτιστοποίηση Κριτήρια

Αλγόριθμος First Come, First Serve O FCFS αλγόριθμος δεν είναι προεκτοπιστικός (preemptive) Άρα η διεργασία Α θα ολοκληρωθεί Όταν ολοκληρωθεί η πρώτη εκτέλεση της Α αποθηκεύεται σε μια FIFO για μια δεύτερη εκτέλεση 27

Αλγόριθμος First Come, First Serve 28

First-Come, First-Serve (FCFS)

First-Come, First-Served

Shortest Job First SJF

Shortest Job First Είναι μη προεκτοπιστικός (ο συγκεκριμένος) Ελαχιστοποιεί τον μέσο χρόνο αναμονής Ο χρονοπρογραμματιστής επιτρέπει την εκτέλεση στη διεργασία με τον μικρότερο χρόνο εκτέλεσης 32

...Shortest Job First 33

...Shortest Job First Προεκτοπιστικός αλγόριθμος Όταν έρχονται νέες διεργασίες ο χρονοπρογραμματιστής αποφασίζει ποια θα εκτελεστεί Αυτή που έχει τον μικρότερο χρόνο εκτέλεσης, εκτελείται Κάνει συνεχής προσπάθειες για τη μείωση του μέσου χρόνου αναμονής 34

Παράδειγμα SJF χωρίς πρεκτόπιση

Παράδειγμα SJF με προεκτόπιση

Round Robin - RR

Αλγόριθμος Round Robin Προεκτοπιστικός αλγόριθμος Οι νέες διεργασίες εκτελούνται όταν τελειώσει το κβάντο χρόνου 38

Αλγόριθμος Round Robin Time quantum: 2 Συστήματα Πραγματικού Χρόνου- Δρ. Π. Κίτσος 39

Παράδειγμα 40

Παράδειγμα Χρονοπρογραμματισμού RR με q = 20

Παράδειγμα Δίνεται ο πίνακας αφίξεων και διάρκειας διεργασιών Σχεδιάστε τα διαγράμματα δρομολόγησης των διεργασιών για τις πολιτικές Πρώτη-Ήρθε-Πρώτη-Εξυπηρετήθηκε Εξυπηρέτηση εκ περιτροπής με κβάντα 2 Συντομότερη διεργασία πρώτα Υπολογίστε τον λόγο απόκρισης R για κάθε διεργασία και για κάθε πολιτική

Πίνακας

Λόγος απόκρισης = Χρόνος Επιστροφής / Διάρκεια FCFS

Λόγος απόκρισης = Χρόνος Επιστροφής / Διάρκεια RR με q = 2

Λόγος απόκρισης = Χρόνος Επιστροφής / Διάρκεια SJF

Αλγόριθμοι Scheduling: Αλγόριθμος First Come, First Serve (FCFS) Αλγόριθμος Shortest Job First (SJF) χωρίς προεκτόπιση Αλγόριθμος Shortest Job First (SJF) με προεκτόπιση Αλγόριθμος Round Robin (RR) EXTRA GIFT: ένα από τα πάνω παραδείγματα με διαφορετικά νούμερα θα μπει στις εξετάσεις.