Συνιστάται, 2024

Επιλογή Συντάκτη

Διαφορά ανάμεσα στο αδιέξοδο και την πείνα στο λειτουργικό σύστημα

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

Συγκριτικό διάγραμμα

Βάση σύγκρισηςΑδιέξοδοΠείνα
ΒασικόςΤο αδιέξοδο είναι εκεί όπου δεν προχωράει καμία διαδικασία, και μπλοκάρεται.Η λιμοκτονία είναι όπου οι διαδικασίες χαμηλής προτεραιότητας αποκλείονται και η διαδικασία υψηλής προτεραιότητας προχωρά.
Προκύπτει κατάστασηΗ εμφάνιση του Αμοιβαίου αποκλεισμού, Κρατήστε και περιμένετε, Καμία προτίμησή και Η εγκύκλιος περιμένετε ταυτόχρονα.Επιβολή προτεραιοτήτων, ανεξέλεγκτη διαχείριση των πόρων.
Αλλο όνομαΚυκλική αναμονή.Lifelock.
ΠόροιΣε αδιέξοδο, οι αιτούμενοι πόροι αποκλείονται από τις άλλες διαδικασίες.Με την πείνα, οι αιτούμενοι πόροι χρησιμοποιούνται συνεχώς από διαδικασίες υψηλής προτεραιότητας.
ΠρόληψηΑποφύγετε τον αμοιβαίο αποκλεισμό, κρατήστε και περιμένετε, και περιμένετε κυκλικά και επιτρέψτε την προτίμησή σας.Γηράσκων.

Ορισμός του αδιεξόδου

Το αδιέξοδο είναι μια κατάσταση όπου οι διάφορες διεργασίες της CPU ανταγωνίζονται για τον περιορισμένο αριθμό πόρων που διατίθενται στο CPU. Εδώ, κάθε διαδικασία έχει έναν πόρο και περιμένει να αποκτήσει έναν πόρο που κρατείται από κάποια άλλη διαδικασία. Όλες οι διαδικασίες περιμένουν τους πόρους με κυκλικό τρόπο. Στην παρακάτω εικόνα μπορείτε να δείτε ότι η διαδικασία P1 έχει αποκτήσει τον πόρο R2 ο οποίος απαιτείται από τη διαδικασία P2 και η διαδικασία P1 ζητά για τον πόρο R1 ο οποίος διατηρείται και πάλι από το R2. Επομένως η διαδικασία Ρ1 και Ρ2 σχηματίζει ένα αδιέξοδο.

Το αδιέξοδο είναι ένα συνηθισμένο πρόβλημα στα πολυεπεξεργασμένα λειτουργικά συστήματα, στα κατανεμημένα συστήματα και επίσης στα παράλληλα συστήματα υπολογιστών. Υπάρχουν τέσσερις συνθήκες που πρέπει να συμβαίνουν ταυτόχρονα για να αυξηθεί η κατάσταση του αδιεξόδου, οι οποίες είναι Αμοιβαίο αποκλεισμό, Κρατήστε και περιμένει, Καμία προδοχή και Κυκλική αναμονή.

  • Αμοιβαίο αποκλεισμό: Μόνο μία διαδικασία κάθε φορά μπορεί να χρησιμοποιήσει έναν πόρο εάν άλλη διαδικασία ζητά τον ίδιο πόρο, πρέπει να περιμένει μέχρι να κυκλοφορήσει η διαδικασία χρησιμοποιώντας τους πόρους.
  • Κρατήστε και περιμένετε: Μια διαδικασία πρέπει να κρατά έναν πόρο και να περιμένει να αποκτήσει έναν άλλο πόρο που κρατείται από κάποια άλλη διαδικασία.
  • Χωρίς προτίμημα: Η διαδικασία που κρατά τους πόρους δεν μπορεί να προληφθεί. Η διαδικασία που κατέχει τον πόρο πρέπει να απελευθερώσει τον πόρο οικειοθελώς όταν έχει ολοκληρώσει το έργο του.
  • Κυκλική αναμονή: Η διαδικασία πρέπει να περιμένει τους πόρους με κυκλικό τρόπο. Ας υποθέσουμε ότι έχουμε τρεις διαδικασίες {P0, P1, P2}. Το P0 πρέπει να περιμένει τον πόρο που κατέχει η P1. Η P1 πρέπει να περιμένει να αποκτήσει τον πόρο που κατέχει η διαδικασία P2, και το P2 πρέπει να περιμένει να αποκτήσει τη διαδικασία που κατέχει το P0.

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

Ορισμός της λιμοκτονίας

Η λιμοκτονία μπορεί να οριστεί ως όταν ένα αίτημα διεργασίας για έναν πόρο και ο πόρος αυτός χρησιμοποιείται συνεχώς από τις άλλες διαδικασίες, στη συνέχεια η διαδικασία που ζητάει αντιμετωπίζει πείνα. Στην πείνα, μια διαδικασία έτοιμη να εκτελέσει περιμένει την CPU να διαθέσει τον πόρο. Αλλά η διαδικασία πρέπει να περιμένει επ 'αόριστον, καθώς οι άλλες διαδικασίες εμποδίζουν συνεχώς τους ζητούμενους πόρους.

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

Η γήρανση μπορεί να λύσει το πρόβλημα της πείνας. Η γήρανση αυξάνει σταδιακά την προτεραιότητα της διαδικασίας που έχει περιμένει πολύ για τους πόρους. Η γήρανση εμποδίζει μια διαδικασία με χαμηλή προτεραιότητα να περιμένει επ 'αόριστον έναν πόρο.

Βασικές διαφορές ανάμεσα στο αδιέξοδο και την πείνα στο λειτουργικό σύστημα

  1. Σε ένα αδιέξοδο, καμία από τις διαδικασίες δεν προχωρά για εκτέλεση, κάθε διαδικασία μπλοκάρεται περιμένοντας τους πόρους που αποκτήθηκαν από την άλλη διαδικασία. Από την άλλη πλευρά, η πείνα είναι μια κατάσταση όπου οι διαδικασίες που έχουν υψηλότερη προτεραιότητα επιτρέπεται να αποκτήσουν τους πόρους συνεχώς εμποδίζοντας τις διαδικασίες χαμηλής προτεραιότητας να αποκτήσουν πόρους που οδηγούν σε αόριστο αποκλεισμό διαδικασιών χαμηλής προτεραιότητας.
  2. Το αδιέξοδο προκύπτει όταν ισχύουν ταυτόχρονα τέσσερις προϋποθέσεις: Αμοιβαίο αποκλεισμό, Διατήρηση και αναμονή, Καμία προδοχή και Κυκλική αναμονή . Ωστόσο, η πείνα εμφανίζεται όταν οι προτεραιότητες της διαδικασίας έχουν εφαρμοστεί κατά την κατανομή πόρων ή υπάρχει ανεξέλεγκτη διαχείριση πόρων στο σύστημα.
  3. Το αδιέξοδο καλείται συχνά από το όνομα κυκλική αναμονή, ενώ η λιμοκτονία καλείται Lived lock .
  4. Στο Deadlock οι πόροι εμποδίζονται από τη διαδικασία, ενώ, με πείνα, οι διαδικασίες χρησιμοποιούνται συνεχώς από τις διαδικασίες με υψηλές προτεραιότητες.
  5. Το αδιέξοδο μπορεί να αποφευχθεί με την αποφυγή των προϋποθέσεων όπως ο αμοιβαίος αποκλεισμός, η κράτηση και η αναμονή, η κυκλική αναμονή και η δυνατότητα προαίρεσης των διαδικασιών που κρατούν πόρους για μεγάλο χρονικό διάστημα. Από την άλλη πλευρά, η πείνα μπορεί να αποφευχθεί με τη γήρανση .

Συμπέρασμα:

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

Top