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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικά συστήματα πραγματικού χρόνου και χρονοπρογραμματισμός. Κώστας Βασιλάκης Δημήτρης Μαρούλης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Οργάνωση Υπολογιστών (Ι)

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

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

Παραλληλισμός σε επίπεδο εντολών

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

ΠΕΡΙΕΧΟΜΕΝΑ Υλικό και Λογισμικό Αρχιτεκτονική Υπολογιστών Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

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

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

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα

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

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

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

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

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

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

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

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

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

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

Οργάνωση Υπολογιστών (IΙI)

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

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

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

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

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

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

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

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

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

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

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

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

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Νήµατα. ιεργασίες και νήµατα Υλοποίηση νηµάτων Ελαφριές διεργασίες Αξιοποίηση νηµάτων. Κατανεµηµένα Συστήµατα 10-1

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

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

ENOTHTA 5 XPONO POMOΛOΓHΣH

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

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 1 ο

Transcript:

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

Τι είναι διεργασία; Διεργασία είναι ένα εκτελούμενο πρόγραμμα Η διεργασία είναι ενεργός οντότητα o έχει κατάσταση (τιμές μεταβλητών, τιμές καταχωρητών, δεδομένα στη στοίβα, κώδικα που έχει εκτελεστεί κ.λπ.), πόρους που της έχουν κατανεμηθεί κ.λπ. o το πρόγραμμα είναι πλήρως στατικό Μία διεργασία απεικονίζεται σε ακριβώς ένα αρχείο προγράμματος o ένα πρόγραμμα μπορεί να εκτελείται από πολλές διεργασίες ταυτόχρονα η κάθε μία ακολουθεί διαφορετική πορεία εκτέλεσης Μία διεργασία εκτελείται σειριακά o Το λειτουργικό σύστημα πολυπλέκει την εκτέλεσή τους και έχουμε την αίσθηση της παραλληλίας

Παράδειγμα: o Γραμματέας Σύστημα Τι είναι διεργασία; o Δακτυλογράφηση επιστολής: πρόγραμμα 1 o Απόκριση σε φωνή διευθυντή: πρόγραμμα 2 o Γραμματέας που δακτυλογραφεί γράμμα και έχει φτάσει 3η παράγραφο, 2η γραμμή και έχει τοποθετήσει το χέρι για να πληκτρολογήσει το α διεργασία που εκτελεί το πρόγραμμα 1 o Η διεργασία μπορεί να διακοπεί από κάποιο συμβάν υψηλής προτεραιότητας π.χ. φωνή διευθυντή o Η τρέχουσα κατάσταση της διεργασίας πρέπει να αποθηκευθεί για να αποκατασταθεί μετέπειτα

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

Καταστάσεις διεργασιών (1) Μία διεργασία μπορεί να είναι: o Νέα μόλις έχει δημιουργηθεί o Εκτελούμενη η κεντρική μονάδα επεξεργασίας εκτελεί δικές της εντολές o Εκτελέσιμη θα μπορούσε να εκτελεί εντολές στην κεντρική μονάδα επεξεργασίας, αν αυτή της παραχωρούνταν o Υπό αναστολή η διεργασία είναι εν αναμονή κάποιου συμβάντος o Τερματισμένη έχει ολοκληρώσει την εκτέλεσή της

Καταστάσεις διεργασιών (2) 1000 X = det( 1000 ) ImageRender() CalculateSurface; ClipSurfaces; CalculateLights; While (Not(EOF(MyFile)) Do Begin Read(MyFile, Rec); If (Rec.Name = 'XXX') Process(Rec); End; grep Athens cities sort lpr -Plp2

Καταστάσεις διεργασιών (3) Ολοκληρωμένη Επιλογή από χρονοπρογραμματιστή Νέα 1 Εκτελέσιμη 2 Εκτελούμενη 4 0 1... ν-1 ν 3 Επιλογή άλλης διεργασίας από χρονοπρογραμματιστή Συμβάν άρσης αναστολής Αίτημα εισόδουεξόδου Μη ικανοποιήσιμο αίτημα πόρου Εκούσιο αίτημα αναστολής Υπό αναστολή Χρονοπρογραμματιστής

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

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

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

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

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

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

Εσωτερική δομή ενός λειτουργικού συστήματος πραγματικού χρόνου Συγχρονισμός Πυρήνας Λ.Σ. Σήματα (λογισμικό) Υψηλή Επικοινωνία διεργασιών (δίοδοι, σωληνώσεις, δομές FIFO, διαμοιραζόμενη μνήμη) Πίνακας διανυσμάτων διακοπής Διαχείριση διακοπών Χρονοπρογραμματισμός προτεραιοτήτων Χαμηλή 10010... 01010... Διαχείριση μνήμης Διακοπές υλικού και σήματα εισόδου-εξόδου Χρονομετρητές και ρολόγια MMU Υλικό

Χρονοπρογραμματισμός σε λειτουργικά συστήματα πραγματικού χρόνου Δύο κύριες κατηγορίες o Συστήματα καθοδηγούμενα από σήματα διακοπής το κύριο πρόγραμμα είναι ένας άεργος βρόχος (idle loop) Οι διάφορες διεργασίες στο σύστημα χρονοπρογραμματίζονται μέσω διακοπών είτε υλικού είτε λογισμικού η αποστολή (dispatching) πραγματοποιείται από τις ρουτίνες εξυπηρέτησης διακοπών (interrupt service routine) Όταν χρησιμοποιούνται σήματα διακοπής σε επίπεδο υλικού, ένα ρολόι ή άλλη εξωτερική συσκευή δίνει σήματα διακοπών που κατευθύνονται σε έναν ελεγκτή διακοπών. Ο ελεγκτής διακοπών παράγει σήματα διακοπών, ανάλογα με τη σειρά άφιξης και τη προτεραιότητα των εμπλεκομένων σημάτων που φθάνουν από τις συσκευές

Σχηματική παράσταση

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

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

Εξειδικεύσεις των κριτηρίων: Χρονοπρογραμματισμός μονοτονικού ρυθμού (1) o Είναι ο πιο γνωστός αλγόριθμος με στατικές προτεραιότητες o Χρησιμοποιείται υπό τις ακόλουθες συνθήκες: όλες οι διεργασίες είναι περιοδικές, όλες οι διεργασίες αποδεσμεύονται στην αρχή της περιόδου τους, ενώ πρέπει να ολοκληρώνονται μέσα στην περίοδό τους, δεν υπάρχουν εξαρτήσεις μεταξύ των διεργασιών, κάθε διεργασία δ ι απαιτεί την ίδια ποσότητα χρόνου CPU σε κάθε εκτέλεσή της ή έστω ποσότητα χρόνου κάτω από ένα συγκεκριμένο όριο. Η ποσότητα (ή το όριο) χρόνου είναι μικρότερο ή ίσο της περιόδου τους, καμία διεργασία δεν μπορεί να αναστείλει τον εαυτό της (οικειοθελώς), η χρονοδρομολόγηση των διεργασιών είναι προεκτοπιστική, με δυνατότητα προεκτόπισης οποιασδήποτε διεργασίας, Οι επιβαρύνσεις από το χρονοπρογραμματισμό είναι μηδενικές Το σύστημα διαθέτει έναν μόνον επεξεργαστή.

Εξειδικεύσεις των κριτηρίων: Χρονοπρογραμματισμός μονοτονικού ρυθμού (2) Στον αλγόριθμο μονοτονικού ρυθμού, κάθε διεργασία αντιστοιχίζεται με μία προτεραιότητα o Η προτεραιότητα είναι αύξουσα με τη συχνότητα της διεργασίας (και άρα φθίνουσα με την περίοδο) o Κατά τον χρόνο εκτέλεσης, ο χρονοπρογραμματιστής εκτελεί πάντα την έτοιμη διεργασία με την υψηλότερη προτεραιότητα, διακόπτοντας τη διεργασία που εκτελείται, αν είναι χαμηλότερης προτεραιότητας. o Αν δύο ή περισσότερες διεργασίες έχουν την ίδια περίοδο, ο RM επιλέγει τυχαία την επόμενη προς εκτέλεση διεργασία

Εξειδικεύσεις των κριτηρίων: Χρονοπρογραμματισμός μονοτονικού ρυθμού (3) Ο χρονοπρογραμματισμός μονοτονικού ρυθμού είναι βέλτιστος, υπό την έννοια ότι αν ένα σύνολο διεργασιών με στατικές προτεραιότητες είναι εφικτό να χρονοπρογραμματιστεί με οποιοδήποτε τρόπο ανάθεσης προτεραιοτήτων, θα είναι εφικτό να χρονοπρογραμματιστεί και με τον RM o ένα σύνολο n ανεξάρτητων και περιοδικών διεργασιών σε έναν επεξεργαστή, όπου οι προθεσμίες είναι μεγαλύτερες ή ίσες από τις περιόδους τους και όπου χρησιμοποιείται προεκτοπιστικός χρονοπρογραμματισμός είναι εφικτό αν και μόνο αν

Εξειδικεύσεις των κριτηρίων: Χρονοπρογραμματισμός μονοτονικού ρυθμού (4) Επίσης έχει αποδειχθεί ότι, για κάθε σύστημα με περιοδικές διεργασίες, ο RM μπορεί να χρονοπρογραμματίσει τις διεργασίες, αν ισχύει η σχέση Α η περίοδος κάθε διεργασίας είναι ακέραιο πολλαπλάσιο της επόμενης μεγαλύτερης περιόδου, ο χρονοπρογραμματισμός μπορεί να εγγυηθεί 100% αξιοποίηση της CPU

Εξειδικεύσεις των κριτηρίων: Αλγόριθμος μονοτονικής προθεσμίας Αλγόριθμος μονοτονικής προθεσμίας (deadlinemonotonic priority assignment, DM) o Αντίστοιχος με τον RM, επιτρέπει όμως οι διεργασίες να έχουν συντομότερες προθεσμίες σε σχέση με την περίοδό τους, δηλ. C i D i T i o Αν D i = T i ι, τότε DM RM

Εξειδικεύσεις των κριτηρίων: αλγόριθμοι EDF και LLF EDF (earliest deadline first, συντομότερη προθεσμία πρώτα) o Οι διεργασίες κατατάσσονται με βάση την προθεσμία που έχουν, και επιλέγεται αυτή με τη συντομότερη προθεσμία LLF (least laxity first, ελάχιστη σχετική προθεσμία πρώτα) o Οι διεργασίες κατατάσσονται με βάση τη σχετική προθεσμία τους σπ ι = (π i τ) κμε ι όπου: π ι είναι η προθεσμία της διεργασίας I τ είναι η τρέχουσα χρονική στιγμή κμε ι είναι ο χρόνος ΚΜΕ χρειάζεται η διεργασία μέχρι να ολοκληρωθεί

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

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

Υπολογισμός χρόνου εκτέλεσης διεργασιών (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

Υπολογισμός χρόνου εκτέλεσης διεργασιών (4) Κατασκευάζουμε το δέντρο του προγράμματος στο οποίο απαριθμούνται όλα τα πιθανά μονοπάτια εκτέλεσης 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 (ίδιος για κάθε εντολή), τότε: o για το 1 ο μονοπάτι ο χρόνος εκτέλεσης είναι 42μsec (περιλαμβάνει 7 εντολές) o και για το 2 ο και το 3 ο μονοπάτι είναι 54 μsec (περιλαμβάνουν 9 εντολές). o Επομένως υπολογίστηκε ότι ο WCET είναι 54 μsec