Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Χρονοπρογραμματισμός Διεργασιών (Process Scheduling)"— Μεταγράφημα παρουσίασης:

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

2 Περίληψη Χρονοπρογραμματισμός διεργασιών και κριτήρια Κατηγορίες χρονοπρογραμματιστών Αλγόριθμοι χρονοπρογραμματισμού

3 Χρονοπρογραμματισμός Η πολιτική με την οποία το ΛΣ αποφασίζει ποια διεργασία θα εκτελεστείς την επόμενη χρονική στιγμή Οι απαιτήσεις από τον χρονοπρογραμματιστή διαφέρουν σύμφωνα με την εφαρμογή  Σε παλαιότερα συστήματα τύπου batch η δουλεία του χρονοπρογραμματιστή ήταν σχετικά απλή…  Σε συστήματα με πολλαπλούς χρήστες (time sharing or multi-user) η δουλεία του χρονοπρογραμματιστή είναι πιο δύσκολη…  Ποια η δουλεία του χρονοπρογραμματιστή σε έναν προσωπικό υπολογιστή;  Στην περίπτωση των δικτυωμένων εξυπηρετητών ο χρονοπρογραμματιστής παίζει μεγάλο ρόλο στην απόδοση του συστήματος Interactive and background processes.

4 Χρονοπρογραμματισμός Κόστος αλλαγής διεργασίας  Αποθήκευσης της κατάστασης μιας διεργασίας  Επιλογή της επόμενης,  Φόρτωση της κατάστασης της επόμενης και  Επαναδραστηριοποίηση Πότε θα πάρει απόφαση ο χρονοπρογραμματιστής;  Όταν μια διεργασία δημιουργήσει ένα παιδί (child process).  Όταν μια διεργασία τελειώσει τότε ο χρονοπρογραμματιστής θα επιλέξει την επόμενη διεργασία  Όταν μια διεργασία μπλοκάρει (Ε/Ε ή σηματοφόρος)  Όταν συμβεί κάποιο σήμα διακοπής (interrupt) Σήμα διακοπής από Ε/Ε Σήμα διακοπής από χρονομέτρη (timer)

5 Χρονοπρογραμματισμός Preemptive vs. non-preemptive  Preemptive: μια διεργασία μπορεί να διακοπεί και ο επεξεργαστής να δοθεί σε μια νέα διεργασία.  Non-preemptive: μια διεργασία δεν διακόπτεται.  Εάν δεν υπάρχει ρολόι τότε non-preemptive είναι η μόνη επιλογή εκτός εάν υπάρχουν διεργασίες με διαφορετικές προτεραιότητες.

6 Στόχοι Χρονοπρογραμματιστή Αυτοί εξαρτώνται από το περιβάλλον της εφαρμογής Σε όλα τα συστήματα  Δικαιοσύνη Όλες οι διεργασίες παίρνουν ένα «δίκαιο» μερίδιο από την υπολογιστική δυνατότητα του επεξεργαστή  Εφαρμογή της πολιτικής  Ισοζυγισμός Όλα τα μέρη του υπολογιστή πρέπει να χρησιμοποιούνται

7 Στόχοι Χρονοπρογραμματιστή Συστήματα τύπου batch  Διεκπεραιωτική ικανότητα (throughput) Πόσες διεργασίες τελειώνουν σε κάθε χρονική περίοδο (π.χ., κάθε ώρα).  Χρόνος ολοκλήρωσης ή χρόνος στο σύστημα (turnaround time) Ο χρόνος από τη στιγμή που κατατίθεται η διεργασία μέχρι τη στιγμή διεκπεραίωσης. Συμπεριλαμβάνει το χρόνο αναμονής και επεξεργασίας.  Χρήση του επεξεργαστή (CPU utilization) Ποσοστό του χρόνου κατά το οποίο ο επεξεργαστής είναι απασχολημένος.

8 Στόχοι Χρονοπρογραμματιστή Διαδραστικά Συστήματα (Interactive)  Χρόνος απόκρισης Χρόνος από τη στιγμή που θα υπάρξει κάποια εντολή μέχρις ότου εκτελεστεί  Αναλογικότητα (proportionality) Απόκριση του συστήματος είναι σύμφωνα με την αντίληψη του χρήστη.  Μας ενδιαφέρει το ποσοστό χρήσης του επεξεργαστή; Συστήματα Πραγματικού Χρόνου (real-time)  Οι διεργασίες πρέπει να τελειώνουν μέσα στα δεδομένα χρονικά πλαίσια (deadlines)  Η απόκριση του συστήματος πρέπει να είναι προβλέψιμη (predictable)

9 Στόχοι Χρονοπρογραμματιστή Οι απαιτήσεις πολλές φορές είναι αντιφατικές  Ελαχιστοποίηση του χρόνου ολοκλήρωσης (turnaround) δεν σημαίνει και μεγιστοποίηση της διεκπεραιωτικής ικανότητας του συστήματος Υποθέστε ένα σύστημα με πολλές σύντομες και μεγάλες διεργασίες  Μεγιστοποίηση Διεκπεραιωτικής ικανότητας συνεπάγεται εκτέλεση όλων των σύντομων διεργασιών πρώτα που κατά συνέπεια μεγαλώνει το χρόνο ολοκλήρωσης των μεγάλων διεργασιών.

10 Τύποι Χρονοπρογραμματιστών Μακροπρόθεσμος (admission scheduler)  Πόσες και ποιες διεργασίες θα εκτελεσθούν  Επηρεάζει το επίπεδο του πολυπρογραμματισμού Μεσοπρόθεσμος (memory scheduler)  Πόσες και ποιες διεργασίες θα φορτωθούν στη κύρια μνήμη  Επηρεάζει το επίπεδο του πολυπρογραμματισμού Βραχυπρόθεσμος (dispatcher or CPU scheduler)  Πια διεργασία θα εκτελεστεί αμέσως μετά. Χρονοπρογραμματισμός συσκευών Ε/Ε

11 Τύποι Χρονοπρογραμματιστών

12 Κριτήρια Πόσο χρόνος πέρασε από την στιγμή που μια διεργασία μπήκε ή βγήκε από την επεξεργαστή Πόσος χρόνος του επεξεργαστή κατανεμήθηκε πρόσφατα στη κάθε διεργασία Πόσο μεγάλη είναι η διεργασία Πόσο σημαντική είναι η διεργασία (priority).

13 Πολιτική FIFO First-In-First-Out ή First Come First Serve Ο χρονοπρογραμματιστής επιλέγει την διεργασία που ήταν στην ουρά τον περισσότερο χρόνο και την τρέχει μέχρι να τελειώσει. Πλεονεκτήματα  Είναι απλή  Καμιά διεργασία δεν υποφέρει από παρατεταμένη στέρηση Μειονεκτήματα  Ο εξυπηρετητής μπορεί να μείνει αχρησιμοποίητος ενώ εκτελούνται εντολές Ε/Ε  Δεν παρουσιάζει καλή απόκριση Μια «μικρή» διεργασία μπορεί να περιμένει πολλή ώρα εάν φτάσει ακριβώς μετά από μια μεγάλη διεργασία Όταν ο χρόνος εκτέλεσης των διεργασιών παρουσιάζει μεγάλη διασπορά (variance) τότε ο χρόνος απόκρισης μπορεί να είναι μεγάλος

14 Παράδειγμα Πολιτικής FIFO Διερ. Άφ.Eπ. Α03 Β26 Γ44 Δ65 Ε A BΓΔΕ Διερ.ΧΟΧΟ/Επ. Α Β Γ Δ Ε 31 77/6 99/4 1212/5 126 Μέσος χρόνος στο σύστημα =8.6 Μέσος ΧΟ/Επ. =2.56

15 Πολιτική Round-Robin Ο χρονοπρογραμματιστής επιλέγει ένα διάστημα q και εκτελεί κάθε διεργασία για q χρονικές μονάδες και στη συνέχεια εναλλάσσει διεργασία. Πλεονεκτήματα  Είναι απλή  Είναι δίκαιη  Καμιά διεργασία δεν υποφέρει από παρατεταμένη στέρηση  Παρουσιάζει καλή απόκριση για μικρές διεργασίες (μικρές διεργασίες δεν περιμένουν πολύ πίσω από μεγάλες διεργασίες) Μειονεκτήματα  Πιθανόν να έχει μειωμένη διεκπεραιωτική ικανότητα εάν το q είναι πολύ μικρό.  Δίνει προτεραιότητα στις διεργασίας με περισσότερους υπολογισμούς παρά σε διεργασίες με Ε/Ε Διεργασίες με πολλές λειτουργίες Ε/Ε μπορεί να μην εκμεταλλεύονται ολόκληρο το q και μετά θα «χάνουν» τη σειρά τους

16 Παράδειγμα Πολιτικής Round-Robin ( q =1) Διερ. Άφ.Eπ. Α03 Β26 Γ44 Δ65 Ε A B Ε Διερ.ΧΟΧΟ/Επ. Α Β Γ Δ Ε 44/3 1616/6 1313/4 1414/5 77/2 Μέσος χρόνος στο σύστημα =10.8 Μέσος ΧΟ/Επ. =2.71 A B Γ Δ B Γ Δ B Γ B Ε Δ Γ B Δ

17 Παράδειγμα Πολιτικής Round-Robin ( q =4) Διερ. Άφ.Eπ. Α03 Β26 Γ44 Δ65 Ε A B Ε Διερ.ΧΟΧΟ/Επ. Α Β Γ Δ Ε /6 77/4 1414/5 1111/2 Μέσος χρόνος στο σύστημα =10.0 Μέσος ΧΟ/Επ. =2.71 Γ ΔΔ B

18 Πολιτική Shortest Process Next (SPN) Ο χρονοπρογραμματιστής επιλέγει την πιο μικρή διεργασία που περιμένει στην ουρά την οποία εκτελεί μέχρι το τέλος. Πλεονεκτήματα  Έχει αυξημένη διεκπεραιωτική ικανότητα  Πολύ καλή απόδοση (απόκριση) για μικρές διεργασίες Μειονεκτήματα  Μεγάλες διεργασίες μπορούν να υποφέρουν από παρατεταμένη στέρηση  Είναι γενικά δύσκολο να υπολογίσουμε το χρόνο που χρειάζεται η κάθε διεργασία

19 Παράδειγμα Πολιτικής Shortest Process Next Διερ. Άφ.Eπ. Α03 Β26 Γ44 Δ65 Ε A Διερ.ΧΟΧΟ/Επ. Α Β Γ Δ Ε 31 77/6 111/4 1414/5 33/2 Μέσος χρόνος στο σύστημα =7.6 Μέσος ΧΟ/Επ. =1.84 B Γ Ε Δ

20 Υπολογισμός του Χρόνου Εκτέλεσης μιας Διεργασίας Υπολογίζουμε το χρόνο εκτέλεσης σύμφωνα με το χρόνο εκτέλεσης της διεργασίας στο παρελθόν.  T i : ο χρόνος εκτέλεσης της διεργασίας την φορά i (μέτρηση).  S i : ο υπολογισμένος (προβλεπόμενος) χρόνος για την εκτέλεση i. Μέσος όρος Εκθετικός μέσος όρος

21 Πολιτική Shortest Remaining Time (SRT) Ο χρονοπρογραμματιστής επιλέγει την διεργασία που της έχει μείνει ο λιγότερος χρόνος μέχρι να τελειώσει. Σε περίπτωση που φτάσει μικρότερη διεργασία, τότε την εναλλάσσει με αυτήν που τρέχει. Πλεονεκτήματα  Έχει αυξημένη διεκπεραιωτική ικανότητα  Πολύ καλή απόδοση (απόκριση) για μικρές διεργασίες  Σε σύγκριση με την SPN, δίνει αμέσως προτεραιότητα στις μικρές διεργασίες Μειονεκτήματα  Μεγάλες διεργασίες μπορούν να υποφέρουν από παρατεταμένη στέρηση  Είναι γενικά δύσκολο να υπολογίσουμε το χρόνο που χρειάζεται η κάθε διεργασία. Επίσης πρέπει να κρατούμε στοιχεία για το χρόνο που υπολείπεται η κάθε διεργασία.

22 Παράδειγμα Πολιτικής Shortest Remaining Time (SRT) Διερ. Άφ.Eπ. Α03 Β26 Γ44 Δ65 Ε A Διερ.ΧΟΧΟ/Επ. Α Β Γ Δ Ε / /5 21 Μέσος χρόνος στο σύστημα =7.2 Μέσος ΧΟ/Επ. =1.59 B Γ Ε Δ B Γ A

23 Πολιτική Highest Response Ration Next (HRRN) Ορίζουμε  W i : ο χρόνος που πέρασε στην ουρά η διεργασία i.  S i : ο υπολογισμένος χρόνος για την εκτέλεση της διεργασίας i. Ο χρονοπρογραμματιστής επιλέγει την διεργασία με το μεγαλύτερο R i και την τρέχει μέχρι το τέλος. Πλεονεκτήματα  Έχει αυξημένη διεκπεραιωτική ικανότητα  Πολύ καλή απόδοση (απόκριση)  Μεγάλες διεργασίες δεν μπορούν να υποφέρουν από παρατεταμένη στέρηση Μειονεκτήματα  Είναι γενικά δύσκολο να υπολογίσουμε το χρόνο που χρειάζεται η κάθε διεργασία. Σε κάθε βήμα πρέπει να υπολογίζουμε τα R i για όλες τις διεργασίες

24 Παράδειγμα Πολιτικής Highest Response Ratio Next Διερ. Άφ.Eπ. Α03 Β26 Γ44 Δ65 Ε A Διερ.ΧΟΧΟ/Επ. Α Β Γ Δ Ε 31 77/6 99/4 1414/5 77/2 Μέσος χρόνος στο σύστημα =8.0 Μέσος ΧΟ/Επ. =2.14 B Γ Ε Δ

25 Πολιτικές με Κάποιας Μορφής Ανάδραση Σκεπτικό: Πολλές φορές είναι δύσκολο να υπολογιστεί ο χρόνος επεξεργασίας που χρειάζεται μια διεργασία. Οπόταν ορίζουμε μια διαδικασία κατά την οποία μεγάλες διεργασίες θα καθυστερούν περισσότερο απ’ ότι οι μικρές. Ο χρονοπρογραμματιστής επιλέγει ένα διάστημα q και εκτελεί κάθε διεργασία για q χρονικές μονάδες και στη συνέχεια εναλλάσσει διεργασία.  Σε αντίθεση με τη πολιτική Round-Robin επιλέγει την διεργασία που μέχρι τώρα είχε τη λιγότερη ώρα στον επεξεργαστή. Πλεονεκτήματα  Δίνει προτεραιότητα σε διεργασίες με Ε/Ε  Δεν χρειάζεται εκτίμηση του χρόνου εκτέλεσης κάθε διεργασίας Μειονεκτήματα  Πιθανόν να έχει μειωμένη διεκπεραιωτική ικανότητα εάν το q είναι πολύ μικρό.  Μεγάλες διεργασίες κινδυνεύουν με παρατεταμένη στέρηση.

26 A Παράδειγμα Πολιτικής Με Ανάδραση ( q =1) Διερ. Άφ.Eπ. Α03 Β26 Γ44 Δ65 Ε A B Ε Διερ.ΧΟΧΟ/Επ. Α Β Γ Δ Ε 111/ /5 21 Μέσος χρόνος στο σύστημα =11.2 Μέσος ΧΟ/Επ. =2.65 A B Γ Δ B Γ Δ Γ B ΔΔ BB

27 Άλλες Μετρικές Απόδοσης Χρήση (utilization) του επεξεργαστή  Σε όλα τα παραδείγματα η χρήση του επεξεργαστή είναι 100% Σε γενικές γραμμές είναι επιθυμητό ένα υψηλό ποσοστό χρήσης αλλά το 100% είναι «επικίνδυνο». Διεκπεραιωτική ικανότητα (throughput)  Σε όλα τα παραδείγματα η διεκπεραιωτική ικανότητα ήταν 5 διεργασίες στις 20 χρονικές μονάδες Όλα τα παραδείγματα αγνοούσαν δύο πτυχές του προβλήματος του χρονοπρογραμματισμού  Το κόστος εναλλαγής διεργασιών  Διεργασίες με εντολές Ε/Ε

28 Χρονοπρογραμματισμός με Προτεραιότητες Οι διεργασίες μπορεί να κατανεμηθούν σε διάφορες ουρές οι οποίες έχουν διαφορετικές προτεραιότητες. CPU … … k k+1 Παραδείγματα  Ο επεξεργαστής δεν παίρνει ποτέ διεργασίες από την ουρά k+1 εάν υπάρχουν διεργασίες στη k. Preemptive or non-preemptive  Generalized Processor Sharing  … Οι προτεραιότητα κάθε διεργασίας μπορεί να υπολογίζεται δυναμικά ανάλογα με τους στόχους του συστήματος  Π.χ., μια διεργασία που επιστρέφει από Ε/Ε εντολές μπορεί να πάρει ψηλότερη προτεραιότητα

29 Χρονοπρογραμματισμός με Λαχνούς Ο χρονοπρογραμματιστής επιλέγει τυχαία την επόμενη διεργασία.  Εάν όλες οι διεργασίες έχουν την ίδια προτεραιότητα, τότε μακροπρόθεσμα θα πάρουν κατά μέσο όρο 1/n του χρόνου του επεξεργαστή.  Εναλλακτικά, στην κάθε διεργασία μπορούμε να δώσουμε ένα αριθμό από «λαχνούς» οι οποίοι θα καθορίζουν την πιθανότητα να επιλεχθεί η συγκεκριμένη διεργασία Διεργασίες με περισσότερους λαχνούς έχουν μεγαλύτερη πιθανότητα επιλογής και επομένως ψηλότερη προτεραιότητα Αυτός ο αλγόριθμος επιλύει το δύσκολο πρόβλημα του καθορισμού της προτεραιότητας της κάθε διεργασίας με ένα σχετικά απλό τρόπο.

30 Χρονοπρογραμματισμός για Δίκαιο Μερίδιο (Fair Share) Υποθέστε ένα υπολογιστή με δύο χρήστες.  Ο χρήστης 1 (Χ1) τρέχει τη διεργασία Α  Ο χρήστης 2 (Χ2) τρέχει τις διεργασίες Β, Γ, Δ, Ε. Εάν χρησιμοποιήσουμε Round-Robin με ίσα διαστήματα q, τότε πιθανόν οι διεργασίες να εκτελεσθούν  Α,Β,Γ,Δ,Ε,Α,Β,Γ,Δ,Ε,…  Σαν αποτέλεσμα ο Χ1 παίρνει μόνο 20% του επεξεργαστή ενώ ο Χ2 τα υπόλοιπα 80%! Εναλλακτικά εάν υποχρεώσουμε το σύστημα να δίνει ίσο χρόνο στους δύο χρήστες, τότε οι διεργασίες θα εκτελεσθούν  Α,Β,Α,Γ,Α,Δ,Α,Ε,Α,Β,Α,Γ,Α,Δ,… Εάν δώσουμε διπλάσιο χρόνο στον Χ2 από αυτόν του Χ1  Α,Β,Γ,Α,Δ,Ε, Α,Β,Γ,Α,Δ,Ε,…

31 Χρονοπρογραμματισμός στο Linux Το Linux υποστηρίζει τρεις κλάσεις διεργασιών  SCHED_FIFO για υποδιεργασίες πραγματικού χρόνου (real-time threads).  SCHED_RR (round-robin) επίσης για υποδιεργασίες πραγματικού χρόνου.  SCHED_OTHER για υποδιεργασίες μη πραγματικού χρόνου (non-real-time threads) Κάθε κατηγορία πραγματικού χρόνου έχει προτεραιότητα που κυμαίνεται μεταξύ 0-99 και κάθε SCHED_OTHER μεταξύ  Μικρότερος αριθμός σημαίνει μεγαλύτερη προτεραιότητα.

32 Χρονοπρογραμματισμός στο Linux: SCHED_FIFO Το ΛΣ δεν διακόπτει (non-preemptive) διεργασία αυτής της κατηγορίας εκτός από τις ακόλουθες περιπτώσεις  Διεργασία SCHED_FIFO με ψηλότερη προτεραιότητα μπήκε στην κατάσταση «έτοιμη».  Η διεργασία η οποία εκτελείται μπήκε στη κατάσταση «blocked».  Η διεργασία η οποία εκτελείται εθελοντικά σταματά (sched_yield) Όταν η διεργασία η οποία εκτελείται διακόπτεται μπαίνει σε ουρά αντίστοιχη με την προτεραιότητα της. Όταν η διεργασία επανέρχεται στην κατάσταση «έτοιμη» τότε  Εάν η διεργασία η οποία εκτελείται είναι χαμηλότερης προτεραιότητας τότε τη διακόπτει και παίρνει τον επεξεργαστή.  Εάν περιμένουν περισσότερες από μια διεργασίες με την ίδια προτεραιότητα, τότε εκτελείται αυτή η οποία περίμενε περισσότερο.

33 Χρονοπρογραμματισμός στο Linux: SCHED_RR Παρόμοια με την SCHED_FIFO με μόνη διαφορά την ύπαρξη των χρονικών διαστημάτων q. Μόλις μια διεργασία συμπληρώσει το διάστημα της, διακόπτεται και επιλέγεται να εκτελεστεί μια διεργασία με προτεραιότητα μεγαλύτερη ή ίση με αυτή της διεργασίας που μόλις διακόπηκε. Διεργασίες με μεγαλύτερη προτεραιότητα μπορεί να έχουν μεγαλύτερο διάστημα απ’ ότι διεργασίες με μικρότερη προτεραιότητα.

34 Παράδειγμα Χρονοπρογραμματισμού στο Linux ΔιεργασίαΚλάσηΕπεξεργασία ΑSCHED_FIFO3 ΒSCHED_RR6 Γ 4 ΔSCHED_OTHER5 Ε A B Γ Ε Δ B Γ B Γ B Γ BB Ε ΔΔΔΔ

35 Χρονοπρογραμματισμός στο Linux Το Linux χρησιμοποιεί δύο δομές (active and expired) για κάθε επεξεργαστή όπως πιο κάτω Struct prio_array { int nr_active; /*number of active processes*/ unsigned long bitmap[BITMAP_SIZE]; struct list_head queue[MAX_PRIO]; /*priority queues*/ } Υπάρχει μια ουρά για κάθε προτεραιότητα ( MAX_PRIO =140) Το bitmap δείχνει ποίες ουρές είναι άδειες Το nr_active δείχνει το συνολικό αριθμό από ενεργοποιημένες διεργασίες

36 Χρονοπρογραμματισμός στο Linux Εκτελούνται πάντα οι διεργασίες στη δομή active.  Όταν μια διεργασία συμπληρώσει το διάστημα της τότε μεταφέρεται στη δομή expired στην αντίστοιχη προτεραιότητα.  Εάν η διεργασία διακοπεί πριν τον προβλεπόμενο χρόνο, τότε επιστρέφει πίσω στη δομή active. Μόλις αδειάσει η δομή active, τότε απλά η expired γίνεται η νέα active και η expired αρχικοποιείται σε άδεια και ο κύκλος επαναλαμβάνεται. Διεργασίες πραγματικού χρόνου επιστρέφουν πάντα στην δομή active. To Linux δίνει περισσότερη προτεραιότητα σε διεργασίες με εντολές Ε/Ε  Αυξάνει την προτεραιότητα διεργασιών που περνούν πολλή ώρα μπλοκαρισμένες. Το διάστημα επεξεργασίας κάθε διεργασίας κυμαίνεται από 10 έως 200 ms.


Κατέβασμα ppt "Χρονοπρογραμματισμός Διεργασιών (Process Scheduling)"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google