Πίνακας περιεχομένων:
- Ορισμός - Τι σημαίνει ο Προγραμματισμός Προτεραιότητας;
- Η Techopedia εξηγεί τον Προγραμματισμό Προτεραιότητας
Ορισμός - Τι σημαίνει ο Προγραμματισμός Προτεραιότητας;
Ο προγραμματισμός προτεραιότητας είναι μια μέθοδος προγραμματισμού διαδικασιών που βασίζονται στην προτεραιότητα. Σε αυτήν τη μέθοδο, ο χρονοπρογραμματιστής επιλέγει τα καθήκοντα να λειτουργούν σύμφωνα με την προτεραιότητα, η οποία είναι διαφορετική από άλλους τύπους προγραμματισμού, για παράδειγμα, ένα απλό γύρο robin.
Ο προγραμματισμός προτεραιότητας περιλαμβάνει την ανάθεση προτεραιότητας σε κάθε διαδικασία και διεξάγονται πρώτα διαδικασίες με υψηλότερες προτεραιότητες, ενώ τα καθήκοντα με ίσες προτεραιότητες εκτελούνται με βάση την αρχή της πρώτης άφιξης (first-served-first serve) (FCFS) ή στρογγυλής βάσης. Ένα παράδειγμα ενός αλγορίθμου γενικού προγραμματισμού προτεραιότητας είναι ο αλγόριθμος της συντομότερης εργασίας (SJF).
Η Techopedia εξηγεί τον Προγραμματισμό Προτεραιότητας
Οι προτεραιότητες μπορεί να είναι είτε δυναμικές είτε στατικές. Οι στατικές προτεραιότητες κατανέμονται κατά τη δημιουργία, ενώ οι δυναμικές προτεραιότητες καθορίζονται ανάλογα με τη συμπεριφορά των διαδικασιών ενώ βρίσκονται στο σύστημα. Για να διευκρινιστεί, ο προγραμματιστής θα μπορούσε να ευνοήσει τις εντατικές εργασίες εισόδου / εξόδου (I / O), γεγονός που καθιστά δυνατή την έκδοση ακριβών αιτήσεων το συντομότερο δυνατό.
Οι προτεραιότητες μπορούν να ορίζονται εσωτερικά ή εξωτερικά. Οι εσωτερικά καθορισμένες προτεραιότητες χρησιμοποιούν κάποια μετρήσιμη ποσότητα για τον υπολογισμό της προτεραιότητας μιας συγκεκριμένης διαδικασίας. Αντίθετα, οι εξωτερικές προτεραιότητες καθορίζονται βάσει κριτηρίων πέρα από το λειτουργικό σύστημα (OS), τα οποία μπορούν να περιλαμβάνουν τη σημασία της διαδικασίας, τον τύπο καθώς και το άθροισμα των πόρων που χρησιμοποιούνται για τη χρήση υπολογιστών, τις προτιμήσεις των χρηστών, το εμπόριο και άλλους παράγοντες όπως η πολιτική, και τα λοιπά.
Ο προγραμματισμός προτεραιότητας μπορεί να είναι ένας από τους ακόλουθους:
- Προληπτικό: Αυτός ο τύπος προγραμματισμού μπορεί να προλαμβάνει την κεντρική μονάδα επεξεργασίας (CPU) στην περίπτωση που η προτεραιότητα της πρόσφατα φθάνουσας διαδικασίας είναι μεγαλύτερη από εκείνη των υφιστάμενων διαδικασιών.
- Μη προληπτικό: Αυτός ο τύπος αλγόριθμου προγραμματισμού τοποθετεί απλώς τη νέα διαδικασία στην κορυφή της έτοιμης ουράς.
Το αόριστο μπλοκάρισμα, που ονομάζεται διαφορετικά η πείνα, είναι ένα από τα βασικά ζητήματα που αφορούν τους αλγόριθμους προγραμματισμού προτεραιότητας. Είναι μια κατάσταση όπου μια διαδικασία είναι έτοιμη να εκτελεστεί, αλλά αντιμετωπίζει μια μακρά αναμονή για να πάρει ανατεθεί στην CPU.
Είναι συχνά πιθανό ότι ένας αλγόριθμος προγραμματισμού προτεραιότητας μπορεί να κάνει μια διαδικασία χαμηλής προτεραιότητας να περιμένει επ 'αόριστον. Για παράδειγμα, σε ένα σύστημα με έντονη φόρτιση, αν υπάρχει μια σειρά διαδικασιών υψηλότερης προτεραιότητας, οι διαδικασίες χαμηλής προτεραιότητας ενδέχεται να μην κάνουν ποτέ την εκτέλεση της CPU.
Μια θεραπεία για την πείνα είναι η γήρανση, η οποία είναι μια τεχνική που χρησιμοποιείται για τη σταδιακή αύξηση της προτεραιότητας αυτών των διαδικασιών που περιμένουν για μεγάλες περιόδους στο σύστημα.