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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ENOTHTA 5 XPONO POMOΛOΓHΣH

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ε-85: Ειδικά Θέµατα Λογισµικού

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

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

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

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

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

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

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

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

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

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

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

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

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

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

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

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

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

Τεχνολογικά Επιτεύγµατα. Πλεονεκτήµατα. Ορισµός Κατανεµηµένου Συστήµατος. Μειονεκτήµατα. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο

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

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

ιαδίκτυα & Ενδοδίκτυα Η/Υ

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

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

Πανεπιστήµιο Θεσσαλίας

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

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

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

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

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

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

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

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

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

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

Οργάνωση επεξεργαστών και διεργασιών

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

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

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

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

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

ιαδίκτυα & Ενδοδίκτυα Η/Υ

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

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

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

Παράδειγµα: Προσοµοίωση µιας ουράς FIFO Οι λειτουργίες που υποστηρίζονται από µια ουρά FIFO είναι: [enq(q,x), ack(q)] [deq(q), return(q,x)] όπου x είν

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

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

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

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

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

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

Ιδιοκτησία Αντικειµένου

ιαδίκτυα & Ενδοδίκτυα Η/Υ

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

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

Transcript:

Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 «ροµολόγηση ιεργασιών (1/2)» ροµολόγηση σε συστήµατα µε έναν επεξεργαστή ροµολόγηση σε πολυεπεξεργαστικά συστήµατα ροµολόγηση σε κατανεµηµένα συστήµατα Μετανάστευση κώδικα ρ. Παναγιώτης Χατζηδούκας (Π..407/80) E-03: Λειτουργικά Συστήµατα ΙΙ 1 E-03: Λειτουργικά Συστήµατα ΙΙ 2 Συµπεριφορά ιεργασιών Πότε γίνεται δροµολόγηση Εναλλαγή διαστηµάτων υπολογισµών µε Ε/Ε Ανάγνωση εδοµένων, Επεξεργασία, Εγγραφή αποτελεσµάτων Υπολογιστικά φραγµένες (compute bound) Αφιερώνουν το µεγαλύτερο τµήµα τους σε υπολογισµούς Φραγµένες λόγω εισόδου εξόδου (I/O bound) Αναµονή για Ε/Ε Ο βασικός παράγοντας είναι ο χρόνος αξιοποίησης του επεξεργαστή Ελάχιστος αριθµός πράξεων και όχι µακρόχρονες αιτήσεις Ε/Ε Οι επεξεργαστές βελτιώνονται πολύ ταχύτερα από τους δίσκους Οι διεργασίες τείνουν να γίνουν φραγµένες λόγω Ε/Ε ηµιουργία νέας Ποια διεργασία θα εκτελεστεί; Τερµατισµός Αν δεν υπάρχει καµία, τότε εκτελείται µια αδρανής διεργασία Μπλοκάρισµα Πιθανές αιτίες: Ε/Ε, συγχρονισµός (π.χ. σηµαφόρος) Μια σηµαντική διεργασία Α µπορεί να περιµένει µια λιγότερη σηµαντική διεργασία Β που είναι σε κρίσιµη περιοχή ιακοπή Ε/Ε Ολοκλήρωση µεταφοράς δεδοµένων και συνέχιση εκτέλεσης της ιακοπή ρολογιού E-03: Λειτουργικά Συστήµατα ΙΙ 3 E-03: Λειτουργικά Συστήµατα ΙΙ 4 ιακοπή ρολογιού Κατηγορίες Αλγορίθµων Απόφαση δροµολόγησης σε κάθε 1 ή Ν διακοπές ρολογιού ύο κατηγορίες αλγορίθµων σε σχέση µε τις διακοπές Μη προεκτοπιστικοί (non preemptive) Προεκτοπιστικοί (preemptive) Μη προεκτοπιστικοίαλγόριθµοι Μια διεργασία επιλέγεται και εκτελείται µέχρι να µπλοκαριστεί (π.χ. από Ε/Ε ή αναµονή συµβάντος) επιστρέψει εθελοντικά τον έλεγχο του επεξεργαστή (yield) Μπορεί να εκτελείται για ώρες Προεκτοπιστικοίαλγόριθµοι εν επιτρέπουν σε µια διεργασία να εκτελείται περισσότερο από ένα συγκεκριµένο χρονικό διάστηµα (κβάντο) κάθε φορά Με τη διακοπή ρολογιού ο δροµολογητής αναστέλλει την εκτέλεση της και επιλέγει κάποια άλλη Απαραίτητη η ύπαρξη ρολογιού στο σύστηµα Για διαφορετικά περιβάλλοντα χρειάζονται διαφορετικοί αλγόριθµοι Κάθε πεδίο εφαρµογών και είδος λειτουργικού συστήµατος έχει ξεχωριστούς στόχους Τρία βασικά περιβάλλοντα έσµης Αλληλεπιδραστικά Πραγµατικού χρόνου E-03: Λειτουργικά Συστήµατα ΙΙ 5 E-03: Λειτουργικά Συστήµατα ΙΙ 6 1

Κατηγορίες Αλγορίθµων Γενικοί στόχοι αλγορίθµων Συστήµατα έσµης (batch) εν υπάρχουν χρήστες σε τερµατικά Αποδεκτοί µη προεκτοπιστικοί αλγόριθµοι ή προεκτοπιστικοί µε µεγάλο κβάντο Ελάχιστες εναλλαγές µεταξύ διεργασιών / βελτίωση απόδοσης Αλληλεπιδραστικά περιβάλλοντα (interactive) Οι διακοπές ρολογιού είναι απαραίτητες ώστε να αποτρέπουν τις διεργασίες από το να καταλαµβάνουν προς όφελος τους τον επεξεργαστή και να µην επιτρέπουν την πρόσβαση στις υπόλοιπες Συστήµατα µε περιορισµούς πραγµατικού χρόνου Οι διακοπές δεν είναι πάντα απαραίτητες επειδή οι εφαρµογές γνωρίζουν πως δεν πρέπει να εκτελούνται για µεγάλα χρονικά διαστήµατα Τα συστήµατα πραγµατικού χρόνου εκτελούν αποκλειστικά προγράµµατα που υποβοηθούν τις υπάρχουσες εφαρµογές Τα αλληλεπιδραστικά συστήµατα εξυπηρετούν γενικές ανάγκες και εκτελούν οποιαδήποτε προγράµµατα ικαιοσύνη: να εκχωρείται σε κάθε διεργασία ένα δίκαιο µερίδιο του επεξεργαστή Συγκρίσιµες διεργασίες πρέπει να έχουν ισοδύναµη πρόσβαση σε παρόµοιες υπηρεσίες ιαφορετικές κατηγορίες διεργασιών µπορούν να δέχονται διαφορετική µεταχείριση Επιβολή της πολιτικής: να παρακολουθείται αν εφαρµόζεται η καθορισµένη πολιτική Ισορροπία: να διατηρούνται ενεργά όλα τα τµήµατα του συστήµατος Οεπεξεργαστής και όλες οι συσκευές Ε/Ε να είναι ενεργές Προσεκτικός συνδυασµός των διεργασιών που βρίσκονται στη µνήµη (π.χ. υπολογιστικά φραγµένες µε φραγµένες λόγω Ε/Ε) E-03: Λειτουργικά Συστήµατα ΙΙ 7 E-03: Λειτουργικά Συστήµατα ΙΙ 8 Στόχοι σε συστήµατα δέσµης Στόχοι σε αλληλεπιδραστικά συστήµατα ιεκπεραιωτική ικανότητα (throughput) Nα µεγιστοποιηθεί ο αριθµός των εργασιών που ολοκληρώνονται ανά ώρα Χρόνος διεκπεραίωσης (turnaround time): Nα ελαχιστοποιηθεί ο χρόνος που µεσολαβεί ανάµεσα στην υποβολή και την ολοκλήρωση µιας εργασίας δέσµης Πόσο περιµένει ο µέσος χρήστης για να πάρει τα αποτελέσµατά του Χρήση του επεξεργαστή: να διατηρείται ο επεξεργαστής συνεχώς ενεργός ιεκπεραιωτική ικανότητα και χρόνος διεκπεραίωσης δεν επιτυγχάνονται υποχρεωτικά ταυτόχρονα από κάποιον αλγόριθµο Π.χ. προτεραιότητα εκτέλεσης σύντοµων εργασιών: πολλές εργασίες ανά ώρα µα µεγάλους χρόνους διεκπεραίωσης για µακρόχρονες εργασίες Χρόνος απόκρισης (response time) Χρόνος µεταξύ υποβολής µιας εντολής και εξαγωγής του αντίστοιχου αποτελέσµατος Η απόκριση στις αιτήσεις να είναι ταχύτατη Απόδοση προτεραιοτήτων για καλύτερη απόκριση Τήρηση αναλογιών (proportionality) Οι χρήστες έχουν κάποια έµφυτη διαίσθηση για το πόσο θα διαρκέσει µια εργασία Να ικανοποιούνται οι προσδοκίες των χρηστών E-03: Λειτουργικά Συστήµατα ΙΙ 9 E-03: Λειτουργικά Συστήµατα ΙΙ 10 Στόχοι σε συστήµατα πραγµατικού χρόνου ροµολόγηση σε συστήµατα δέσµης Τήρηση των προθεσµιών Βασικό χαρακτηριστικό και πρώτιστο καθήκον των συστηµάτων πραγµατικού χρόνου Να αποφεύγεται η απώλεια δεδοµένων Προβλεψιµότητα Σε συστήµατα πολυµέσων η µη τήρηση προθεσµίας δεν αποβαίνει µοιραία Να αποφεύγεται ο υποβιβασµός της ποιότητας στα συστήµατα πολυµέσων Εξυπηρέτηση µε βάση τη σειρά άφιξης (first-come firstserved FCFS) Εξυπηρέτηση µε βάση τη µικρότερη διάρκεια (shortest job first SJF) Εξυπηρέτηση µε βάση τη µικρότερη διάρκεια που αποµένει (shortest remaining time next SRTN) ροµολόγηση τριών επιπέδων E-03: Λειτουργικά Συστήµατα ΙΙ 11 E-03: Λειτουργικά Συστήµατα ΙΙ 12 2

ροµολόγηση σε συστήµατα δέσµης ροµολόγηση σε συστήµατα δέσµης Εξυπηρέτηση µε βάση τη σειρά άφιξης (first-come firstserved FCFS) Οι διεργασίες καταλαµβάνουν τον επεξεργαστή µε τη σειρά που τον ζήτησαν Οαλγόριθµος διατηρεί µια ουρά που περιέχει τις έτοιµες διεργασίες Επιλογή από την αρχή της ουράς, εισαγωγή στο τέλος Μια διεργασία που ήταν µπλοκαρισµένη εισάγεται στο τέλος Πλεονεκτήµατα: Εύκολη κατανόηση και υλοποίηση, ικαιοσύνη Μειονεκτήµατα: εν διαχειρίζεται σωστά συνδυασµούς υπολογιστικά φραγµένων και φραγµένων από Ε/Ε διεργασιών Εξυπηρέτηση µε βάση τη µικρότερη διάρκεια (shortest job first SJF) Οι χρόνοι εκτέλεσης είναι γνωστοί προκαταβολικά Επιλογή της συντοµότερης εργασίας Η µέθοδος είναι βέλτιστη µόνο όταν όλες οι εργασίες είναι ταυτόχρονα διαθέσιµες Εξυπηρέτηση µε βάση τη µικρότερη διάρκεια που αποµένει (shortest remaining time next SRTN) Πρέπει να είναι προκαταβολικά γνωστός ο χρόνος εκτέλεσης Όταν εµφανίζεται µια νέα διεργασία, ο συνολικός χρόνος εκτέλεσής της συγκρίνεται µε τον χρόνο που απαιτείται για την ολοκλήρωση της τρέχουσας E-03: Λειτουργικά Συστήµατα ΙΙ 13 E-03: Λειτουργικά Συστήµατα ΙΙ 14 ροµολόγηση τριών επιπέδων ροµολόγηση τριών επιπέδων Οι διεργασίες εισάγονται σε µια ουρά εισόδου ροµολογητής αποδοχής Αποφασίζει ποιες διεργασίες θα γίνουν αποδεκτές από το σύστηµα Σωστός συνδυασµός διεργασιών, καθυστέρηση µακρόχρονων ροµολογητής µνήµης Αποφασίζει ποιες διεργασίες πρέπει να διατηρηθούν στη µνήµη και ποιες θα αποθηκευτούν στο δίσκο Αν οι ενεργές διεργασίες είναι πολλές µπορεί να µη χωρούν όλες ταυτόχρονα στη µνήµη Τακτικός έλεγχος για αλλαγές σε συνδυασµό µε το κόστος µεταφοράς µεταξύ µνήµης και δίσκου Αριθµός διεργασιών που εκτελούνται: βαθµός πολυπρογραµµατισµού ροµολογητής µνήµης: µεταφορά διεργασιών Χρόνος από τη µεταφορά της στο δίσκο Χρόνος εκτέλεσης της στον επεξεργαστή Μέγεθος Προτεραιότητα ροµολογητής επεξεργαστή Επιλογή έτοιµης για εκτέλεση στον επεξεργαστή Εφαρµογή οποιουδήποτε κατάλληλου αλγόριθµου E-03: Λειτουργικά Συστήµατα ΙΙ 15 E-03: Λειτουργικά Συστήµατα ΙΙ 16 ροµολόγηση εκ περιτροπής (round robin RR) ροµολόγηση µε βάση την προτεραιότητα (priority scheduling - PS) Πολλαπλές ουρές µε ανάδραση Εξυπηρέτηση µε βάση τη µικρότερη διάρκεια Εγγυηµένη δροµολόγηση ροµολόγηση µε λοταρία ροµολόγηση δίκαιης διανοµής ροµολόγηση εκ περιτροπής (round robin RR) Σε κάθε διεργασία εκχωρείται κάποιο χρονικό διάστηµα (κβάντο χρόνου) µέσα στο οποίο επιτρέπεται η εκτέλεσή της Αν η τρέχουσα διεργασία µπλοκαριστεί ή τερµατίσει, ο αλγόριθµος ενεργοποιείται Εύκολη υλοποίηση, διατήρηση µιας λίστας διεργασιών Μέγεθος κβάντου και κόστος εναλλαγής διεργασιών Μικρό κβάντο: πολλές εναλλαγές διεργασιών και µείωση της αποδοτικότητας του επεξεργαστή Μεγάλο κβάντο: µεγάλοι χρόνοι απόκρισης σε µικρές αλληλεπιδραστικές αιτήσεις E-03: Λειτουργικά Συστήµατα ΙΙ 17 E-03: Λειτουργικά Συστήµατα ΙΙ 18 3

ροµολόγηση µε βάση την προτεραιότητα (priority scheduling - PS) Βασική ιδέα: σε κάθε διεργασία αντιστοιχίζεται µια προτεραιότητα Πάντα εκτελείται η διεργασία µε την υψηλότερη προτεραιότητα Σταδιακή µείωση της προτεραιότητας Μέγιστο κβάντο εκτέλεσης και επιλογή της αµέσως επόµενης Ανάθεση προτεραιοτήτων Στατική: π.χ. µε βάση τους χρήστες, χρηµατικό κόστος υναµική: π.χ. προτεραιότητα σε κάποια διεργασία που µόλις επέστρεψε από Ε/Ε και δεν είχε αξιοποιήσει πλήρως το κβάντο της Συνδυασµός προτεραιοτήτων και εξυπηρέτησης εκ περιτροπής Πολλαπλές ουρές µε ανάδραση Αποδοτικότερη η εκχώρηση σε τακτά χρονικά διαστήµατα µεγάλου κβάντου σε υπολογιστικά φραγµένες διεργασίες (µείωση µεταφορών στο δίσκο) ηµιουργία τάξεων προτεραιοτήτων Συνδυασµός προτεραιοτήτων και εξυπηρέτησης εκ περιτροπής Σταδιακή µεταφορά σε χαµηλότερες τάξεις για υπολογιστικά φραγµένες διεργασίες Υψηλότερη τάξη µικρότερο κβάντο χρόνου E-03: Λειτουργικά Συστήµατα ΙΙ 19 E-03: Λειτουργικά Συστήµατα ΙΙ 20 Εξυπηρέτηση µε βάση τη µικρότερη διάρκεια Θεώρηση της εκτέλεση κάθε εντολής µιας αλληλεπιδραστικής σαν ξεχωριστή εργασία Αποτίµηση παρελθούσας συµπεριφοράς και εκτέλεση της µε το µικρότερο (κατ εκτίµηση) χρόνο εκτέλεσης Εγγυηµένη δροµολόγηση Για Ν διεργασίες, κάθε διεργασία πρέπει να πάρει περίπου το 1/Ν της συνολικής ισχύος του επεξεργαστή Οαλγόριθµος παρακολουθεί πόσος χρόνος έχει διατεθεί σε κάθε διεργασία Εκτελείται η διεργασία που διαθέτει το µικρότερο λόγο, µέχρις ότου αυτός γίνει µεγαλύτερος από τον αντίστοιχο κάποιας άλλης ροµολόγηση µε λοταρία (lottery scheduling) Κάθε διεργασία παραλαµβάνει έναν αριθµό από λαχνούς Τυχαία κάποια διεργασία µπορεί να λάβει µεγαλύτερο κβάντο χρόνου για την εκτέλεσή της στον επεξεργαστή Πιο σηµαντικές διεργασίες µπορεί να έχουν περισσότερες πιθανότητες Συνεργαζόµενες διεργασίες µπορούν να ανταλλάσσουν λαχνούς ροµολόγηση δίκαιης διανοµής Το σύστηµα λαµβάνει υπόψη του τον κάτοχο κάθε Κάθε χρήστης (και όχι κάθε διεργασία) παραλαµβάνει ένα ποσοστό του επεξεργαστή ροµολόγηση εκ περιτροπής Μεταξύ των χρηστών Μεταξύ των διεργασιών ενός χρήστη E-03: Λειτουργικά Συστήµατα ΙΙ 21 E-03: Λειτουργικά Συστήµατα ΙΙ 22 ροµολόγηση σε συστήµατα πραγµατικού χρόνου ροµολόγηση σε πολυεπεξεργαστικά συστήµατα Η σωστή απόκριση πρέπει να γίνεται έγκαιρα Αυστηρά πραγµατικού χρόνου: απόλυτη τήρηση των προθεσµιών Ήπια συστήµατα: ύπαρξη ανοχής στη µη τήρηση µιας περιστασιακής προθεσµίας ύο κατηγορίες γεγονότων: Περιοδικά (σε τακτά χρονικά διαστήµατα) Απεριοδικά Όταν το σύστηµα µπορείνα χειριστείεπιτυχώς το συνολικό φορτίο τότε καλείται χρονοπρογραµµατίσιµο Σε έναν επεξεργαστή το ερώτηµα είναι ποια διεργασία θα εκτελεστείαµέσως στη συνέχεια Σε πολλούς επεξεργαστές η δροµολόγηση έχει δύο διαστάσεις: Ποια διεργασία θα εκτελεστεί Σε ποιον επεξεργαστή θα γίνει η εκτέλεση Οι διεργασίες µπορεί να σχετίζονται µεταξύ τους ή όχι ιεργασίες (νήµατα) που λύνουν κάποιο συγκεκριµένο πρόβληµα ή ιεργασίες που ανήκουν σε ανεξάρτητους χρήστες E-03: Λειτουργικά Συστήµατα ΙΙ 23 E-03: Λειτουργικά Συστήµατα ΙΙ 24 4

Χρονοµερισµός Χρονοµερισµός ροµολόγηση ανεξάρτητων διεργασιών ιατήρηση µιας δοµής δεδοµένων (λίστας) για όλες τις διεργασίες του συστήµατος ή πολλαπλές λίστες για τις διεργασίες µε διαφορετικές προτεραιότητες Κάθε φορά που µπλοκάρεται ή τερµατίζεται µια διεργασία σε κάποιον επεξεργαστή επιλέγεται η διεργασία µε την υψηλότερη προτεραιότητα Πλεονεκτήµατα Υπάρχει χρονοµερισµός των επεξεργαστών όπως σε ένα µονοεπεξεργαστικό σύστηµα Αυτόµατη ισοστάθµιση φορτίου (δεν υπάρχουν υπερφορτωµένοι επεξεργαστές) Μειονεκτήµατα Πιθανό γέµισµα της λίστας για µεγάλο αριθµό επεξεργαστών Υπερφόρτωση όταν γίνεται εναλλαγή διεργασιών, ιδιαίτερα µάλιστα όταν εκπνέει το κβάντο χρόνου Προβλήµατα όταν υλοποιείται συγχρονισµός µε ενεργό αναµονή (spin locks) Έξυπνη δροµολόγηση (smart scheduling) Όταν µια διεργασία αποκτήσει ένα spin lock, θέτει κάποια κατάλληλη σηµαία (flag) Η σηµαία είναι ορατή από τις υπόλοιπες διεργασίες Όταν το κλειδί ελευθερωθεί ενηµερώνεται η σηµαία Οδροµολογητής δίνει προτεραιότητα σε µια διεργασία που εκτελεί κρίσιµη περιοχή Ισότητα µεταξύ των επεξεργαστών Όταν µια διεργασία εκτελείται για πολύ χρόνο σε κάποιον επεξεργαστή, η κρυφή µνήµη του είναι γεµάτη µε δεδοµένα της Αν η ίδια διεργασία πρόκειται να εκτελεστεί σύντοµα, η απόδοση θα είναι καλύτερη αν εκτελεστεί στον ίδιο επεξεργαστή E-03: Λειτουργικά Συστήµατα ΙΙ 25 E-03: Λειτουργικά Συστήµατα ΙΙ 26 ροµολόγηση συγγένειας Χωροµερισµός Affinity scheduling: Προσπάθεια εκτέλεσης των διεργασιών στον ίδιο επεξεργαστή που εκτελέστηκαν την τελευταία φορά Αλγόριθµος δροµολόγησης δύο επιπέδων Μια διεργασία αντιστοιχίζεται σε κάποιον επεξεργαστή κατά τη δηµιουργία της Σύµφωνα µε το ποιος επεξεργαστής έχει το µικρότερο φορτίο Κάθε επεξεργαστής έχει το δικό του σύνολο διεργασιών Κάθε επεξεργαστής εκτελεί τοπικά τον αλγόριθµο δροµολόγησης Αν είναι αδρανής µπορεί να δανειστεί µια διεργασία από κάποιον άλλο επεξεργαστή Πλεονεκτήµατα Οµοιόµορφη κατανοµή φορτίου Αξιοποίηση κρυφής µνήµης εν υπάρχει µια κεντρική λίστα διεργασιών Οι διεργασίες σχετίζονται µεταξύ τους (π.χ. νήµατα) Χωροµερισµός (space sharing): δροµολόγηση και ταυτόχρονη εκτέλεση πολλών νηµάτων σε πολλούς επεξεργαστές Απλούστερο µοντέλο διαµέρισης: Κάθε διεργασία ζητάει έναν αριθµό επεξεργαστών και είτε τους παραλαµβάνει είτε περιµένει µέχρι να γίνουν διαθέσιµοι ιαφορετική προσέγγιση Οι διεργασίες διαχειρίζονται ενεργά το βαθµό παραλληλίας (νηµάτων) Ένας κεντρικός διακοµιστής τις παρακολουθεί και λαµβάνει υπόψη του τις ελάχιστες και µέγιστες απαιτήσεις τους Οαριθµός επεξεργαστών που ανατίθενται σε µια διεργασία µπορεί να µεταβάλλεται δυναµικά E-03: Λειτουργικά Συστήµατα ΙΙ 27 E-03: Λειτουργικά Συστήµατα ΙΙ 28 ροµολόγηση οµάδας Εργασία Μαθήµατος Πλεονέκτηµα χωροµερισµού είναι η εξάλειψη του πολυπρογραµµατισµού, δηλαδή δεν υπάρχουν εναλλαγές διεργασιών Ένας επεξεργαστής µπορεί να παραµένει αδρανής όταν µπλοκάρεται µια διεργασία ροµολόγηση οµάδας Οι οµάδες των σχετιζόµενων οµάδων δροµολογούνται ως ενιαία ενότητα, δηλαδή ως µία οµάδα Όλα τα µέλη µιας οµάδας εκτελούνται ταυτόχρονα, σε διαφορετικούς χρονοµεριζόµενους επεξεργαστές Όλα τα µέλη µιας οµάδας ξεκινούν και τερµατίζουν τα χρονοµερίδιά τους ταυτόχρονα Όλοι οι επεξεργαστές είναι συγχρονισµένοι και σε κάθε νέο κβάντο εκτελείται ο αλγόριθµος δροµολόγησης Αν κάποιο νήµα µπλοκαριστεί κατά το κβάντο χρόνο του, ο αντίστοιχος επεξεργαστής παραµένει ανενεργός Όλα τα νήµατα µιας εκτελούνται µαζί ώστε αν κάποιο στείλει µια αίτηση σε κάποιο άλλο, το δεύτερο να παραλάβει σχεδόν αµέσως το µήνυµα και να έχει τη δυνατότητα να απαντήσει ακαριαία ροµολόγηση ανεξάρτητων διεργασιών σε σύστηµα Με ένα επεξεργαστή Υλοποίηση βασικών αλγορίθµων δροµολόγησης Εξυπηρέτηση µε βάση τη σειρά άφιξης (FCFS) Εξυπηρέτηση µε βάση τη µικρότερη διάρκεια (SJF) ροµολόγηση εκ περιτροπής (RR) ροµολόγηση µε βάση την προτεραιότητα (PS) Πολλαπλές ουρές µε ανάδραση (MQ) ροµολόγηση µε λοταρία (LOT) E-03: Λειτουργικά Συστήµατα ΙΙ 29 E-03: Λειτουργικά Συστήµατα ΙΙ 30 5

Ζητήµατα υλοποίησης Ζητήµατα υλοποίησης Εκκίνηση διεργασιών (αρχείο διεργασιών / αυτόνοµη εκτέλεση) ιαχείριση λίστας διεργασιών (µια ή περισσότερες) Χρήση κβάντου ή όχι (εξαρτάται από την πολιτική) ιαχείριση εκτέλεσης διεργασιών (αναστολή, συνέχιση) Τερµατισµός διεργασιών (ενηµέρωση λίστας) Φύση διεργασιών (χωρίς ή µε εντολές Ε/Ε) Επέκταση σε πολυεπεξεργαστικά και κατανεµηµένα σύστηµατα ροµολογητής: διεργασία του Unix Εκκίνηση διεργασιών Οδροµολογητής διαβάζει από ένα αρχείο (script) τα ονόµατα των διεργασιών και στη συνέχεια τις δροµολογεί ηµιουργεί ένα παιδί (fork) για κάθε διεργασία Αυτόνοµη εκτέλεση: ο δροµολογητής εκτελείται ανεξάρτητα και οι διεργασίες τον ενηµερώνουν δυναµικά για την ύπαρξη τους ιαχείριση λίστας διεργασιών ιατήρηση των βασικών πληροφοριών για κάθε διεργασία (pid, status) εν υπάρχει ανάγκη για συγχρονισµό Χρήση κβάντου ή όχι (εξαρτάται από την πολιτική) Για αλγόριθµους συστηµάτων δέσµης δεν απαιτείται Χρήση ενός timer (alarm) για την ενεργοποίηση του αλγορίθµου E-03: Λειτουργικά Συστήµατα ΙΙ 31 E-03: Λειτουργικά Συστήµατα ΙΙ 32 Ζητήµατα υλοποίησης ιαχείριση εκτέλεσης διεργασιών Όταν υπάρχει κβάντο χρόνου Αναστολή και συνέχιση εκτέλεσης µε χρήση των σηµάτων SIGSTOP, SIGCONT Τερµατισµός διεργασιών Κατάλληλος χειριστής για το σήµα SIGCHLD Ενηµέρωση λίστας διεργασιών και ενεργοποίηση αλγορίθµου Φύση διεργασιών (χωρίς ή µε εντολές Ε/Ε) Υπολογιστικά φραγµένες: συνεχής εκτέλεση στον επεξεργαστή Συµβάντα Ε/Ε: ενηµέρωση δροµολογητή για επικείµενη αναστολή εκτέλεσης Συγκεκριµένα παραδείγµατα και κλήσεις Επέκταση σε πολυεπεξεργαστικό σύστηµα Απλή παράµετρος στο πρόγραµµα του δροµολογητή Επέκταση σε «κατανεµηµένο σύστηµα» ιαχωρισµός απόφασης δροµολόγησης και εφαρµογής της Μηχανισµός περάσµατος µηνυµάτων µεταξύ δροµολογητή και ελεγκτή διεργασιών E-03: Λειτουργικά Συστήµατα ΙΙ 33 6