Υλικό υπολογιστών

* Γνώση Υπολογιστών >> Υλικό υπολογιστών >  >> Επεξεργαστές (CPU)

Πώς το λειτουργικό σύστημα εμποδίζει την πείνα στις διαδικασίες κατανομής πόρων;

Τα λειτουργικά συστήματα χρησιμοποιούν διάφορες στρατηγικές για την πρόληψη της λιμοκτονίας στις διαδικασίες κατανομής των πόρων. Η λιμοκτονία εμφανίζεται όταν μια διαδικασία αρνείται επανειλημμένα πρόσβαση σε έναν πόρο, παρόλο που είναι ικανή να εκτελέσει το έργο της. Ακολουθεί μια κατανομή των κοινών τεχνικών:

1. Προγραμματισμός βάσει προτεραιότητας με γήρανση:

* Το πρόβλημα: Οι διαδικασίες υψηλής προτεραιότητας μπορούν να μονοπωλούν συνεχώς τους πόρους, εμποδίζοντας τις διαδικασίες χαμηλότερης προτεραιότητας να αποκτήσουν ποτέ την ευκαιρία να τρέξουν και ενδεχομένως να προκαλέσουν λιμοκτονία.

* Η λύση - γήρανση:

* Έννοια: Με την πάροδο του χρόνου, αυξήστε την προτεραιότητα των διαδικασιών που περιμένουν πολύ καιρό για να αποκτήσουν έναν πόρο.

* Εφαρμογή: Το OS αυξάνει περιοδικά την προτεραιότητα των διαδικασιών αναμονής. Αυτό εξασφαλίζει ότι ακόμη και οι διαδικασίες χαμηλής προτεραιότητας θα είναι τελικά επιλέξιμες για να εκτελεστούν.

* Παράδειγμα: Μια διαδικασία που περιμένει τον χρόνο της CPU μπορεί να έχει την προτεραιότητά της να χτυπήσει κάθε λίγα τσιμπούρια ρολογιού. Τελικά, θα γίνει η διαδικασία υψηλότερης προτεραιότητας και θα προγραμματιστεί.

2. Δίκαιη ουρά και σταθμισμένη δίκαιη ουρά:

* Το πρόβλημα: Οι διαδικασίες που ζητούν τον ίδιο πόρο ενδέχεται να λαμβάνουν απρόβλεπτες κατανομές, ενδεχομένως να ευνοούν επανειλημμένα σε άλλους.

* Η λύση - δίκαιη ουρά:

* Έννοια: Εγγυήστε κάθε διαδικασία ένα δίκαιο μερίδιο ενός πόρου με την πάροδο του χρόνου.

* Εφαρμογή:

* Οι διαδικασίες που περιμένουν έναν πόρο τοποθετούνται σε μια ουρά.

* Ο πόρος κατανέμεται σε διαδικασίες με δίκαιο τρόπο, συχνά χρησιμοποιώντας αλγόριθμους στρογγυλής robin ή παρόμοιους προγραμματισμούς.

* Κάθε διαδικασία λαμβάνει μια φέτα χρόνου (ή άλλη ποσόστωση πόρων) πριν από μια άλλη διαδικασία πάρει μια στροφή.

* Σταθμισμένη δίκαιη ουρά (WFQ):

* Έννοια: Μια παραλλαγή της δίκαιης ουράς όπου κάθε διαδικασία έχει εκχωρηθεί ένα βάρος που καθορίζει το σχετικό μερίδιο του πόρου.

* Εφαρμογή:

* Οι διαδικασίες με υψηλότερα βάρη λαμβάνουν αναλογικά μεγαλύτερες φέτες του πόρου.

* Αυτό επιτρέπει την ιεράρχηση σημαντικών διαδικασιών, εξασφαλίζοντας παράλληλα ότι άλλες διαδικασίες έχουν κάποια πρόσβαση.

3. Κατανομή πόρων με πρόληψη/αποφυγή αδιέξοδο:

* Το πρόβλημα: Το αδιέξοδο μπορεί να οδηγήσει σε πείνα. Εάν οι διαδικασίες είναι κολλημένες περιμένοντας τους πόρους του άλλου, κάποιοι μπορεί να μπλοκαριστούν επ 'αόριστον. Ακόμη και αν το αδιέξοδο είναι σπασμένο, οι ίδιες διαδικασίες θα μπορούσαν να επιλεγούν επανειλημμένα ως θύματα, οδηγώντας σε πείνα.

* Η λύση:

* Πρόληψη αδιέξοδο: Σχεδιάστε δομικά το σύστημα κατανομής πόρων για την εξάλειψη των συνθηκών που προκαλούν αδιέξοδο. Αυτό μπορεί να περιλαμβάνει:

* Αμοιβαία εξάλειψη αποκλεισμού (συνήθως όχι εφικτό): Επιτρέψτε ταυτόχρονα τους πόρους από πολλαπλές διαδικασίες.

* Κρατήστε και περιμένετε πρόληψη: Απαιτήστε μια διαδικασία για να ζητήσετε όλους τους πόρους της ταυτόχρονα ή να απελευθερώσετε όλους τους πόρους προτού ζητήσετε περισσότερα.

* Χωρίς προτίμησή: Αφήστε το λειτουργικό σύστημα να απομακρύνει βίαια τους πόρους από μια διαδικασία (εάν η διαδικασία κρατά έναν πόρο που χρειάζεται μια άλλη διαδικασία και περιμένει έναν άλλο πόρο).

* Πρόληψη κυκλικής αναμονής: Επιβάλετε μια συνολική παραγγελία σε τύπους πόρων και απαιτούν διαδικασίες για να ζητήσετε πόρους σε αύξουσα σειρά.

* Αποφυγή αδιέξοδο: Παρακολουθήστε δυναμικά την κατάσταση κατανομής των πόρων και αποφύγετε την κατανομή των πόρων εάν αυτό μπορεί να οδηγήσει σε αδιέξοδο. Ο αλγόριθμος του τραπεζίτη είναι ένα κοινό παράδειγμα.

* Γιατί αυτό βοηθά την πείνα: Αποφεύγοντας τα αδιέξοδα, το λειτουργικό σύστημα εξασφαλίζει ότι οι πόροι τελικά απελευθερώνονται και διατίθενται σε διαδικασίες αναμονής, μειώνοντας την πιθανότητα αόρισης αποκλεισμού.

4. Συστήματα που βασίζονται σε κρατήσεις:

* Το πρόβλημα: Οι διαδικασίες ενδέχεται να είναι συνεχώς ξεπερασμένες από άλλους για πρόσβαση σε πόρους.

* Η λύση:

* Έννοια: Επιτρέψτε στις διαδικασίες να διατηρούν πόρους εκ των προτέρων.

* Εφαρμογή:

* Μια διαδικασία μπορεί να ζητήσει εγγυημένη κατανομή ενός πόρου για μια συγκεκριμένη περίοδο.

* Το λειτουργικό σύστημα διασφαλίζει ότι ο πόρος είναι διαθέσιμος όταν το χρειάζεται η διαδικασία.

* Γιατί αυτό βοηθά την πείνα: Η κράτηση εμποδίζει την επανειλημμένη πρόσβαση μια διαδικασία, διότι δεν μπορεί να ανταγωνιστεί τις άμεσες απαιτήσεις άλλων διαδικασιών. Εξασφαλίζει ένα ορισμένο ελάχιστο επίπεδο υπηρεσιών.

5. Προγραμματισμός λαχειοφόρων αγορών:

* Το πρόβλημα: Οι διαδικασίες ενδέχεται να είναι σταθερά άτυχες σε τυχαία συστήματα κατανομής.

* Η λύση:

* Έννοια: Δώστε διαδικασίες "εισιτήρια λαχειοφόρων αγορών" για έναν πόρο. Το OS επιλέγει τυχαία ένα εισιτήριο και η διαδικασία που κρατάει ότι το εισιτήριο παίρνει τον πόρο.

* Εφαρμογή:

* Κάθε διαδικασία έχει εκχωρηθεί ορισμένα εισιτήρια ανάλογα με τη σημασία ή την ανάγκη της.

* Το λειτουργικό σύστημα κατέχει μια λαχειοφόρο αγορά για να καθορίσει ποια διαδικασία παίρνει τον πόρο.

* Γιατί αυτό βοηθά την πείνα: Ενώ είναι ακόμα δυνατό για μια διαδικασία να πάρει άτυχη σε μια μόνο κλήρωση, με την πάροδο του χρόνου, οι διαδικασίες με περισσότερα εισιτήρια θα λάβουν στατιστικά μεγαλύτερο μερίδιο του πόρου, αποτρέποντας τη μόνιμη άρνηση υπηρεσίας. Όσο περισσότερα εισιτήρια έχει μια διαδικασία, τόσο μεγαλύτερη είναι η πιθανότητα να κερδίσει. Ακόμη και οι διαδικασίες με λίγα εισιτήρια έχουν μια μη μηδενική πιθανότητα να κερδίσουν, αποτρέποντας την πλήρη πείνα.

6. Μηχανισμοί ανατροφοδότησης:

* Το πρόβλημα: Οι αλγόριθμοι στατικού προγραμματισμού ενδέχεται να μην προσαρμόζονται καλά στις μεταβαλλόμενες συνθήκες του συστήματος.

* Η λύση:

* Έννοια: Παρακολουθήστε την απόδοση των διαδικασιών και ρυθμίστε ανάλογα την κατανομή των πόρων.

* Εφαρμογή:

* Το λειτουργικό σύστημα παρακολουθεί πόσο καιρό περιμένουν οι πόροι.

* Εάν μια διαδικασία περιμένει υπερβολικό χρονικό διάστημα, το λειτουργικό σύστημα μπορεί να αυξήσει την προτεραιότητά του, να κατανείμει περισσότερους πόρους ή να μεταβεί σε διαφορετικό αλγόριθμο προγραμματισμού.

* Γιατί αυτό βοηθά την πείνα: Οι μηχανισμοί ανατροφοδότησης επιτρέπουν στο λειτουργικό σύστημα να ανταποκρίνεται δυναμικά στις καταστάσεις λιμοκτονίας και να λάβει διορθωτικά μέτρα.

Βασικές εκτιμήσεις:

* overhead: Όλες αυτές οι λύσεις έρχονται με κάποια γενικά έξοδα. Η πολυπλοκότητα του αλγορίθμου επηρεάζει τη χρήση της CPU και η παρακολούθηση των χρόνων αναμονής απαιτεί μνήμη.

* Δικαιοσύνη έναντι απόδοσης: Συχνά, υπάρχει ένα συμβιβασμό μεταξύ της δικαιοσύνης (εμποδίζοντας την λιμοκτονία) και τη συνολική απόδοση του συστήματος. Ένα απολύτως δίκαιο σύστημα μπορεί να μην είναι το πιο αποτελεσματικό όσον αφορά την απόδοση.

* Ειδικό περιβάλλον: Η καλύτερη προσέγγιση για την πρόληψη της λιμοκτονίας εξαρτάται από τον συγκεκριμένο πόρο που διατίθεται, τη φύση των διαδικασιών και τους συνολικούς στόχους του συστήματος. Ένα λειτουργικό σύστημα σε πραγματικό χρόνο (RTOS) έχει αυστηρότερες απαιτήσεις από ένα λειτουργικό σύστημα γενικής χρήσης.

Συνοπτικά, τα λειτουργικά συστήματα χρησιμοποιούν μια ποικιλία τεχνικών, συχνά σε συνδυασμό, για να αποτρέψουν την λιμοκτονία και να διασφαλίσουν ότι όλες οι διαδικασίες λαμβάνουν τελικά τους πόρους που χρειάζονται για να ολοκληρώσουν τα καθήκοντά τους. Το κλειδί είναι να εξισορροπηθεί η δικαιοσύνη, η αποτελεσματικότητα και οι ειδικές απαιτήσεις του συστήματος.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα