Τι είναι ο προγραμματισμός προτεραιότητας;
Προγραμματισμός προτεραιότητας είναι μια μέθοδος προγραμματισμού διαδικασιών που βασίζεται στην προτεραιότητα. Σε αυτόν τον αλγόριθμο, ο προγραμματιστής επιλέγει τις εργασίες που θα λειτουργούν σύμφωνα με την προτεραιότητα.
Οι διαδικασίες με υψηλότερη προτεραιότητα πρέπει να διεξάγονται πρώτα, ενώ οι εργασίες με ίσες προτεραιότητες εκτελούνται με βάση το round-robin ή το FCFS. Η προτεραιότητα εξαρτάται από τις απαιτήσεις μνήμης, τις απαιτήσεις χρόνου κ.λπ.
Σε αυτό το σεμινάριο λειτουργικού συστήματος, θα μάθετε:
- Τι είναι ο προγραμματισμός προτεραιότητας;
- Τύποι Προγραμματισμού Προτεραιότητας
- Χαρακτηριστικά του Προγραμματισμού Προτεραιότητας
- Παράδειγμα προγραμματισμού προτεραιότητας
- Πλεονεκτήματα του προγραμματισμού προτεραιότητας
- Μειονεκτήματα του προγραμματισμού προτεραιότητας
Τύποι Προγραμματισμού Προτεραιότητας
Ο προγραμματισμός προτεραιότητας χωρίζεται σε δύο βασικούς τύπους:
Προληπτικός προγραμματισμός
Στον Προληπτικό Προγραμματισμό, οι εργασίες ανατίθενται κυρίως με τις προτεραιότητές τους. Μερικές φορές είναι σημαντικό να εκτελέσετε μια εργασία με υψηλότερη προτεραιότητα πριν από μια άλλη εργασία χαμηλότερης προτεραιότητας, ακόμα και αν η εργασία χαμηλότερης προτεραιότητας εξακολουθεί να εκτελείται. Η εργασία χαμηλότερης προτεραιότητας διατηρείται για κάποιο χρονικό διάστημα και συνεχίζεται όταν η εργασία υψηλότερης προτεραιότητας ολοκληρώσει την εκτέλεση της.
Μη Προληπτικός Προγραμματισμός
Σε αυτόν τον τύπο μεθόδου προγραμματισμού, η CPU έχει εκχωρηθεί σε μια συγκεκριμένη διαδικασία. Η διαδικασία που κρατά την CPU απασχολημένη, θα απελευθερώσει την CPU είτε με εναλλαγή περιβάλλοντος είτε τερματίζοντας. Είναι η μόνη μέθοδος που μπορεί να χρησιμοποιηθεί για διάφορες πλατφόρμες υλικού. Αυτό συμβαίνει επειδή δεν χρειάζεται ειδικό υλικό (για παράδειγμα, χρονοδιακόπτη) όπως προληπτικό προγραμματισμό.
Χαρακτηριστικά του Προγραμματισμού Προτεραιότητας
- Ένας αλγόριθμος CPU που προγραμματίζει διαδικασίες βάσει προτεραιότητας.
- Χρησιμοποιήθηκε σε λειτουργικά συστήματα για την εκτέλεση παρτίδων.
- Εάν δύο εργασίες που έχουν την ίδια προτεραιότητα είναι ΕΤΟΙΜΕΣ, λειτουργεί σε μια ΠΡΩΤΗ ΕΡΓΑΣΙΑ, ΠΡΩΤΗ ΣΕΡΒΙΣ.
- Στον προγραμματισμό προτεραιότητας, εκχωρείται ένας αριθμός σε κάθε διαδικασία που υποδεικνύει το επίπεδο προτεραιότητας.
- Χαμηλώστε τον αριθμό, τόσο υψηλότερη είναι η προτεραιότητα.
- Σε αυτόν τον τύπο αλγορίθμου προγραμματισμού, εάν φτάσει μια νεότερη διαδικασία, που έχει υψηλότερη προτεραιότητα από την τρέχουσα διαδικασία, τότε η τρέχουσα τρέχουσα διαδικασία είναι προεπιλεγμένη.
Παράδειγμα προγραμματισμού προτεραιότητας
Εξετάστε το ενδεχόμενο να ακολουθήσετε πέντε διαδικασίες P1 έως P5. Κάθε διαδικασία έχει τη μοναδική προτεραιότητα, το χρόνο έκρηξης και την ώρα άφιξής της.
Επεξεργάζομαι, διαδικασία | Προτεραιότητα | Χρόνος έκρηξης | Ωρα άφιξης |
---|---|---|---|
Ρ1 | 1 | 4 | 0 |
Ρ2 | 2 | 3 | 0 |
Ρ3 | 1 | 7 | 6 |
Ρ4 | 3 | 4 | 11 |
Ρ5 | 2 | 2 | 12 |
Βήμα 0) Τη στιγμή = 0, η διαδικασία P1 και P2 φτάνει. Το P1 έχει υψηλότερη προτεραιότητα από το P2. Η εκτέλεση ξεκινά με τη διαδικασία P1, η οποία έχει χρόνο έκρηξης 4.
Βήμα 1) Τη στιγμή = 1, δεν φτάνει καμία νέα διαδικασία. Η εκτέλεση συνεχίζεται με το P1.
Βήμα 2) Τη στιγμή 2, δεν φτάνει καμία νέα διαδικασία, ώστε να μπορείτε να συνεχίσετε με το P1. Το P2 βρίσκεται στην ουρά αναμονής.
Βήμα 3) Τη στιγμή 3, δεν φθάνει καμία νέα διαδικασία, ώστε να μπορείτε να συνεχίσετε με το P1. Η διαδικασία P2 βρίσκεται ακόμη στην ουρά αναμονής.
Βήμα 4) Τη στιγμή 4, το P1 έχει ολοκληρώσει την εκτέλεση του. Το P2 ξεκινά την εκτέλεση.
Βήμα 5) Τη στιγμή = 5, δεν φθάνει καμία νέα διαδικασία, συνεπώς συνεχίζουμε με το P2.
Βήμα 6) Τη στιγμή = 6, φτάνει το P3. Το P3 έχει υψηλότερη προτεραιότητα (1) σε σύγκριση με το P2 που έχει προτεραιότητα (2). Το P2 είναι προεπιλεγμένο και το P3 ξεκινά την εκτέλεση του.
Επεξεργάζομαι, διαδικασία | Προτεραιότητα | Χρόνος έκρηξης | Ωρα άφιξης |
---|---|---|---|
Ρ1 | 1 | 4 | 0 |
Ρ2 | 2 | 1 στα 3 εκκρεμεί | 0 |
Ρ3 | 1 | 7 | 6 |
Ρ4 | 3 | 4 | 11 |
Ρ5 | 2 | 2 | 12 |
Βήμα 7) Τη στιγμή 7, δεν φθάνει νέα διαδικασία, συνεπώς συνεχίζουμε με το P3. Το P2 βρίσκεται στην ουρά αναμονής.
Βήμα 8) Τη στιγμή = 8, δεν φθάνει καμία νέα διαδικασία, έτσι μπορούμε να συνεχίσουμε με το P3.
Βήμα 9) Τη στιγμή = 9, δεν έρχεται καμία νέα διαδικασία, ώστε να μπορούμε να συνεχίσουμε με το P3.
Βήμα 10) Στο χρονικό διάστημα 10, δεν έρχεται καμία νέα διαδικασία, επομένως συνεχίζουμε με το P3
Βήμα 11) Τη στιγμή = 11, το P4 φτάνει με την προτεραιότητα 4. Το P3 έχει υψηλότερη προτεραιότητα, συνεπώς συνεχίζει την εκτέλεση του.
Επεξεργάζομαι, διαδικασία | Προτεραιότητα | Χρόνος έκρηξης | Ωρα άφιξης |
---|---|---|---|
Ρ1 | 1 | 4 | 0 |
Ρ2 | 2 | 1 στα 3 εκκρεμεί | 0 |
Ρ3 | 1 | 2 από τα 7 σε εκκρεμότητα | 6 |
Ρ4 | 3 | 4 | 11 |
Ρ5 | 2 | 2 | 12 |
Βήμα 12) Τη στιγμή = 12, φτάνει το P5. Το P3 έχει υψηλότερη προτεραιότητα, συνεπώς συνεχίζει την εκτέλεση.
Βήμα 13) Τη στιγμή = 13, το P3 ολοκληρώνει την εκτέλεση. Έχουμε P2, P4, P5 σε έτοιμη ουρά. Τα P2 και P5 έχουν ίση προτεραιότητα. Ο χρόνος άφιξης του P2 είναι πριν από το P5. Έτσι το P2 ξεκινά την εκτέλεση.
Επεξεργάζομαι, διαδικασία | Προτεραιότητα | Χρόνος έκρηξης | Ωρα άφιξης |
---|---|---|---|
Ρ1 | 1 | 4 | 0 |
Ρ2 | 2 | 1 στα 3 εκκρεμεί | 0 |
Ρ3 | 1 | 7 | 6 |
Ρ4 | 3 | 4 | 11 |
Ρ5 | 2 | 2 | 12 |
Βήμα 14) Τη στιγμή = 14, η διαδικασία P2 ολοκλήρωσε την εκτέλεση της. Τα P4 και P5 βρίσκονται σε κατάσταση αναμονής. Το P5 έχει την υψηλότερη προτεραιότητα και ξεκινά την εκτέλεση.
Βήμα 15) Τη στιγμή = 15, το P5 συνεχίζει την εκτέλεση.
Βήμα 16) Τη στιγμή = 16, το P5 τελειώνει με την εκτέλεση του. Το P4 είναι η μόνη διαδικασία που απομένει. Ξεκινά την εκτέλεση.
Βήμα 17) Τη στιγμή = 20, το P5 έχει ολοκληρώσει την εκτέλεση και δεν έχει απομείνει καμία διαδικασία.
Βήμα 18) Ας υπολογίσουμε τον μέσο χρόνο αναμονής για το παραπάνω παράδειγμα.
Χρόνος αναμονής = ώρα έναρξης - ώρα άφιξης + χρόνος αναμονής για την επόμενη έκρηξη
P1 = o - o = oP2 =4 - o + 7 =11P3= 6-6=0P4= 16-11=5Average Waiting time = (0+11+0+5+2)/5 = 18/5= 3.6
Πλεονεκτήματα του προγραμματισμού προτεραιότητας
Εδώ είναι τα πλεονεκτήματα / πλεονεκτήματα της χρήσης μεθόδου προγραμματισμού προτεραιότητας:
- Εύκολη στη χρήση μέθοδος προγραμματισμού
- Οι διεργασίες εκτελούνται βάσει προτεραιότητας, οπότε η υψηλή προτεραιότητα δεν χρειάζεται να περιμένει πολύ και εξοικονομεί χρόνο
- Αυτή η μέθοδος παρέχει έναν καλό μηχανισμό όπου το σχετικό σημαντικό κάθε διαδικασίας μπορεί να προσδιοριστεί με ακρίβεια.
- Κατάλληλο για εφαρμογές με κυμαινόμενες απαιτήσεις χρόνου και πόρων.
Μειονεκτήματα του προγραμματισμού προτεραιότητας
Εδώ, είναι μειονεκτήματα / μειονεκτήματα του προγραμματισμού προτεραιότητας
- Εάν το σύστημα σταματήσει τελικά, όλες οι διαδικασίες χαμηλής προτεραιότητας χάνονται.
- Εάν οι διεργασίες υψηλής προτεραιότητας απαιτούν πολύ χρόνο CPU, τότε οι διαδικασίες χαμηλότερης προτεραιότητας ενδέχεται να λιμοκτονήσουν και θα αναβληθούν για αόριστο χρόνο.
- Αυτός ο αλγόριθμος προγραμματισμού μπορεί να αφήσει ορισμένες διαδικασίες χαμηλής προτεραιότητας να περιμένουν επ 'αόριστον.
- Μια διαδικασία θα μπλοκαριστεί όταν είναι έτοιμη να εκτελεστεί, αλλά πρέπει να περιμένει τη CPU επειδή εκτελείται κάποια άλλη διαδικασία αυτήν τη στιγμή.
- Εάν μια νέα διαδικασία υψηλότερης προτεραιότητας συνεχίσει να έρχεται στην ουρά έτοιμη, τότε η διαδικασία που βρίσκεται σε κατάσταση αναμονής μπορεί να χρειαστεί να περιμένει για μεγάλο χρονικό διάστημα.
Περίληψη:
- Ο προγραμματισμός προτεραιότητας είναι μια μέθοδος προγραμματισμού των διαδικασιών που βασίζεται στην προτεραιότητα. Σε αυτόν τον αλγόριθμο, ο προγραμματιστής επιλέγει τις εργασίες που θα λειτουργούν σύμφωνα με την προτεραιότητα.
- Στον Προληπτικό Προγραμματισμό Προτεραιότητας, οι εργασίες ανατίθενται κυρίως με τις προτεραιότητές τους.
- Στην Προτεραιότητα Μη Προληπτική Μέθοδος Προγραμματισμού, η CPU έχει εκχωρηθεί σε μια συγκεκριμένη διαδικασία.
- Οι διεργασίες εκτελούνται βάσει προτεραιότητας, οπότε η υψηλή προτεραιότητα δεν χρειάζεται να περιμένει πολύ και εξοικονομεί χρόνο
- Εάν οι διεργασίες υψηλής προτεραιότητας απαιτούν πολύ χρόνο CPU, τότε οι διαδικασίες χαμηλότερης προτεραιότητας ενδέχεται να λιμοκτονήσουν και θα αναβληθούν για αόριστο χρόνο.