ఆపరేటింగ్ సిస్టమ్‌లో డెడ్‌లాక్ అంటే ఏమిటి: షరతులు & డిటెక్షన్ అల్గోరిథం

సమస్యలను తొలగించడానికి మా పరికరాన్ని ప్రయత్నించండి





ఆపరేటింగ్ సిస్టమ్ యొక్క ప్రధాన లక్ష్యం హార్డ్‌వేర్ మరియు సాఫ్ట్‌వేర్ వనరుల మధ్య సరైన సంభాషణను అందించడం మరియు ప్రోగ్రామ్‌లకు సాధారణ సేవలను ఇవ్వడం. ఆపరేటింగ్ సిస్టమ్ ప్రాసెస్ ఏదైనా వనరును యాక్సెస్ చేయాలనుకున్నప్పుడు, అది మొదట అది యాక్సెస్ చేయాలనుకుంటున్న నిర్దిష్ట వనరుకు ఒక అభ్యర్థనను పంపుతుంది, తరువాత అది వనరును ఉపయోగించుకుంటుంది మరియు ఉపయోగించిన తరువాత వనరును విడుదల చేస్తుంది. అనేక ప్రక్రియలు ఒకే సమయంలో ఒక వనరును యాక్సెస్ చేయడానికి ప్రయత్నిస్తున్నాయని అనుకుందాం, అటువంటి పరిస్థితిలో ఒకేసారి అన్ని ప్రక్రియలకు ఒక వనరును అందించడం కష్టమవుతుంది. అందువల్ల ఈ వ్యాసం ప్రతిష్ఠంభన ఎలా సంభవిస్తుందో మరియు ఈ ప్రతిష్టంభన పరిస్థితిని ఎలా అధిగమించాలో వివరిస్తుంది.

ఆపరేటింగ్ సిస్టమ్‌లో డెడ్‌లాక్ అంటే ఏమిటి?

నిర్వచనం: డెడ్-లాక్ అనేది రెండు లేదా అంతకంటే ఎక్కువ ప్రాసెసర్లు ఏదో ఒక సంఘటన జరగడానికి వేచి ఉన్న పరిస్థితి, కానీ జరగని ఇటువంటి సంఘటనలు ప్రతిష్టంభన స్థితి, మరియు ప్రాసెసర్లు ప్రతిష్ఠంభన స్థితిలో ఉన్నాయని చెబుతారు. ఉదాహరణకు, ఒక నిజ-సమయ దృష్టాంతాన్ని ume హించుకుందాం, ఇక్కడ రెండు కార్లు A & B ఉన్నాయి, వన్-వే రహదారిపై ఇద్దరు వ్యక్తిగత డ్రైవర్లు నడుపుతారు. ఇప్పుడు కార్ ఎ డ్రైవర్ ఉత్తరం వైపు కదలడం సరైన దిశ అని చెప్పే పరిస్థితి తలెత్తుతుంది, అయితే కార్ బి డ్రైవర్ దక్షిణ దిశ వైపు వెళ్ళడం సరైనదని చెప్పాడు. కానీ మరొక కారు ముందుకు వెళ్ళటానికి అనుమతించటానికి ఇద్దరూ వెనుకకు కదలరు, ఈ పరిస్థితిని డెడ్లాక్ కండిషన్ అంటారు.




కారు-ఉదాహరణ

కారు ఉదాహరణ

మంచి అవగాహన కోసం, R1, R2, మరియు రెండు ప్రక్రియలు P1 మరియు P2 ఉన్న మరొక ఉదాహరణను పరిశీలిద్దాం, ఇక్కడ R1 P1 కు కేటాయించబడుతుంది మరియు R2 P2 కి కేటాయించబడుతుంది. ఇప్పుడు P1 R2 ని యాక్సెస్ చేయాలనుకుంటే, R2 ను P2 చేత పట్టుకున్నట్లు మనకు తెలుసు, మరియు ఇప్పుడు P2 R1 ని యాక్సెస్ చేయాలనుకుంటుంది, ఇది P1 R2 కు ప్రాప్యత అయినప్పుడు మాత్రమే అమలు చేస్తుంది, P2 R1 కు ప్రాప్యత అయినప్పుడు మాత్రమే అమలు చేస్తుంది ప్రతిష్ఠంభన స్థితి.



ప్రాసెసర్-ఉదాహరణ

ప్రాసెసర్-ఉదాహరణ

డెడ్-లాక్ షరతులు

అన్ని పరిస్థితులు ఒకేసారి సంభవిస్తే సంభవించే నాలుగు ముఖ్యమైన డెడ్‌లాక్ పరిస్థితులు ఈ క్రిందివి, ప్రతిష్ఠంభన ఏర్పడటానికి కొన్ని అవకాశాలు ఉన్నాయి.

పరస్పర మినహాయింపుకు

దీని అర్థం మనం ఉపయోగిస్తున్న వనరును పరస్పరం ప్రత్యేకమైన పద్ధతిలో ఉపయోగించాలి. ఒకే సమయంలో ఒక ప్రక్రియ మాత్రమే ఒక వనరును ఉపయోగిస్తుంది. ఉదాహరణకు, ముద్రణ ప్రక్రియ జరుగుతోంది మరియు అకస్మాత్తుగా మరొక ప్రక్రియ ముద్రణ ప్రక్రియకు అంతరాయం కలిగించడానికి ప్రయత్నిస్తుంది. కాబట్టి ఇక్కడ పరస్పర మినహాయింపు పరిస్థితిలో, ప్రింటింగ్ పని పూర్తయిన తర్వాత మాత్రమే తదుపరి పని ప్రాసెస్ చేయబడుతుంది. వనరులను ఏకకాలంలో పంచుకోవడం ద్వారా పరస్పర మినహాయింపును తొలగించవచ్చు, ఇది ఆచరణాత్మకంగా సాధ్యం కాదు.

పరస్పర మినహాయింపుకు

పరస్పర మినహాయింపుకు

ప్రీ-ఎమ్ప్షన్ లేదు

ప్రకారం ముందస్తు ఆధారిత అల్గోరిథంలు, ప్రస్తుత పనికి అంతరాయం కలిగించడానికి ప్రయత్నిస్తున్న ప్రాధాన్యత పని ఉంటే. ప్రీ-ఎమ్ప్టివ్ అల్గోరిథం ప్రస్తుత పనిని కలిగి ఉంది మరియు మొదట ప్రాధాన్యత పనిని అమలు చేస్తుంది మరియు దాని మొదటి పనికి వెనుకకు వస్తుంది. పై ఉదాహరణ ప్రకారం ఒక పరిస్థితి వనరును అమలు చేసినంత కాలం కలిగి ఉంటుంది, అంటే P1 అమలు చేసిన తర్వాత మాత్రమే R1 ను విడుదల చేయగలదు, అదేవిధంగా P2 అమలు R2 ను అమలు చేసిన తర్వాత మాత్రమే విడుదల చేస్తుంది. ప్రీ-ఎమ్ప్షన్ లేకపోతే ప్రతిష్ఠంభన సంభవించవచ్చు.


నో-ప్రీమిప్షన్-ఉదాహరణ

నో-ప్రీమిప్షన్-ఉదాహరణ

పట్టుకుని వేచి ఉండండి

ఒక ప్రక్రియ కొన్ని వనరులను కలిగి ఉంది మరియు అదనపు వనరుల కోసం వేచి ఉంది, కాని ఆ వనరులు కొన్ని ఇతర ప్రక్రియల ద్వారా పొందబడతాయి. పై ఉదాహరణ నుండి, P1 R1 ని పట్టుకొని R2 కోసం వేచి ఉంది, ఇక్కడ R2 P2 చేత సంపాదించబడుతుంది, మరియు P2 R2 ని పట్టుకొని R1 కోసం వేచి ఉంది, ఇక్కడ R1 ను P1 చేత సంపాదించడం అనేది హోల్డ్ మరియు వెయిట్ పరిస్థితి ప్రతిష్టంభన వ్యవస్థలో సంభవించవచ్చు.

హోల్డ్-అండ్-వెయిట్-ఉదాహరణ

హోల్డ్-అండ్-వెయిట్-ఉదాహరణ

వృత్తాకార వేచి ఉండండి

ఒక ప్రక్రియ మరొక ప్రక్రియకు కేటాయించబడిన వనరు కోసం ఎదురుచూస్తుంటే మరియు ఆ ప్రక్రియ వనరు కోసం ఎదురుచూస్తుంటే, సమితి ప్రక్రియలు ప్రతిష్టంభనలో ఉన్నాయని చెబుతారు, ఇది లూప్ రూపంలో ఉన్న పైన వివరించిన ఉదాహరణతో సమానంగా ఉంటుంది. ఎక్కడ P1 R2 కోసం వేచి ఉంది మరియు R2 P2 కోసం కేటాయించబడింది మరియు P2 R1 మరియు R1 కోసం P1 కోసం కేటాయించబడింది, ఇది ఈ పరిస్థితి సంతృప్తికరంగా ఉంటే వృత్తాకార నిరీక్షణ రూపం.

వృత్తాకార-వేచి-ఉదాహరణ

వృత్తాకార-వేచి-ఉదాహరణ

డెడ్-లాక్ డిటెక్షన్ అల్గోరిథం

మేము ప్రక్రియలకు వనరులను కేటాయించిన సందర్భాలు మరియు సిస్టమ్‌లో ప్రతిష్ఠంభన జరిగిందా లేదా 2 ప్రధాన డెడ్‌లాక్ డిటెక్షన్ అల్గారిథమ్‌లను ఉపయోగించకపోతే ఆపరేటింగ్ సిస్టమ్ మళ్లీ తనిఖీ చేస్తుంది.

  • ఒకే ఉదాహరణ
  • వనరుల రకం యొక్క బహుళ సందర్భాలు

ఒకే ఉదాహరణ

ఒక వ్యవస్థ అన్ని వనరుల యొక్క ఒకే ఉదాహరణలను కలిగి ఉన్న పరిస్థితి. దీనిని గ్రాఫ్ అల్గోరిథం లేదా వనరుల కేటాయింపు గ్రాఫ్ కోసం వేచి ఉండండి. వనరుల కేటాయింపు గ్రాఫ్ రెండు వేర్వేరు శీర్షాలుగా సూచించబడే ప్రక్రియల సమితి మరియు వనరుల సమితిని కలిగి ఉంటుంది. వనరుల కేటాయింపు గ్రాఫ్‌లోని వనరులు సవరించబడతాయి మరియు గ్రాఫ్ రూపం కోసం వేచి ఉంటాయి. గ్రాఫ్ ఫారమ్ కోసం వేచి ఉన్న చోట క్రింద చూపిన విధంగా శీర్షాలుగా సూచించబడే ప్రక్రియలు మాత్రమే ఉంటాయి,

  • వనరుల కేటాయింపు గ్రాఫ్: వనరులు-కేటాయింపు గ్రాఫ్‌లో ప్రక్రియలు P1, P2, P3 మరియు వనరులు R1, R2, R3 సూచించబడతాయి.
  • గ్రాఫ్ కోసం వేచి ఉండండి: గ్రాఫ్ కోసం వేచి ఉన్న ప్రక్రియలు P1, P2, P3 మాత్రమే పేర్కొనబడ్డాయి.
  • ఒక చక్ర పరిస్థితి ఉంటే, ఒక దిశలో ఒక ప్రక్రియ యొక్క నిరంతర ప్రవాహం ఉంటే, దీని అర్థం సైకిల్ పరిస్థితి నిష్క్రమిస్తుంది మరియు గ్రాఫ్ డెడ్‌లాక్ స్థితిలో ఉందని వేచి ఉండండి.

ఉదాహరణ 1: దిగువ ఉదాహరణ డెడ్లాక్ స్థితి లేదని చూపిస్తుంది ఎందుకంటే గ్రాఫ్ కోసం వేచి ఉండటానికి నిరంతర ప్రవాహం లేదు.

ఒకే-ఉదాహరణ-ఉదాహరణ 1

ఒకే-ఉదాహరణ-ఉదాహరణ 1

ఉదాహరణ 2: పి 1 నుండి పి 4 వరకు చక్రం యొక్క నిరంతర ప్రవాహం ఉన్నందున డెడ్‌లాక్ పరిస్థితి ఏర్పడింది.

ఒకే-ఉదాహరణ - ఉదాహరణ 2

ఒకే-ఉదాహరణ-ఉదాహరణ 2

వ్యవస్థలో డెడ్‌లాక్ చాలా తరచుగా సంభవిస్తే, అప్పుడు డిటెక్షన్ అల్గోరిథం తరచుగా ఉపయోగించబడుతుంది. డిటెక్షన్ అల్గోరిథం యొక్క ఎక్కువ ఉపయోగం ఉంటే, అప్పుడు ఎక్కువ ఓవర్ హెడ్ మరియు ఎక్కువ గణన సమయం ఉంటుంది. అందువల్ల దీనిని అధిగమించడానికి, మేము అల్గోరిథం తరువాత, సమానమైన సమయాన్ని ఇస్తాము, ఈ విధంగా ప్రతిష్ఠంభనను గుర్తించడానికి గ్రాఫ్ యొక్క బరువు ఉపయోగించబడుతుంది.

వనరుల రకం యొక్క బహుళ సందర్భాలు

రిసోర్స్ రకం యొక్క బహుళ ఉదాహరణలు ఒక వ్యవస్థ అన్ని వనరుల యొక్క బహుళ సందర్భాలను కలిగి ఉన్న పరిస్థితి, దీనిని బ్యాంకర్స్ అల్గోరిథం అని కూడా పిలుస్తారు. బ్యాంకర్స్ అల్గోరిథం ప్రకారం, ఈ ప్రక్రియకు అవసరమైన అన్ని వనరులు లభించిన వెంటనే, అది దాని వనరులను విడుదల చేస్తుంది.

కింది ఉదాహరణను పరిశీలిద్దాం, P0, P1, P2, మరియు వనరు రకం A, B, C అనే 3 ప్రక్రియలు ఉన్నాయని అనుకుందాం. CPU , B ప్రింటర్ మరియు సి కీబోర్డ్ కావచ్చు. కాలమ్‌లోని “0” అంకెలు వనరుల లభ్యతను సూచిస్తాయి.

కేసు (i): P0 మరియు P2 లలో ఉన్న కండిషన్ అభ్యర్థన “000” కండిషన్ అని మనం అనుకుందాం, ఏ అభ్యర్థన నెరవేరిందో మనం తనిఖీ చేయాలి, P0 ప్రాసెస్లు కేటాయించిన తరువాత ప్రక్రియలను విడుదల చేస్తాయి, తరువాత కేటాయించిన తరువాత తదుపరి P2 ప్రాసెస్ విడుదల అవుతుంది. ఇలా, ఒక క్రమంలో, ఒక్కొక్కటిగా ఒక ప్రక్రియలో P0, P2, P3, P1, P4 ను విడుదల చేస్తుంది. చివరగా, మేము P7, P2, P6 గా అందుబాటులో ఉన్న వనరులను పొందుతాము. అందుబాటులో ఉన్న క్రమం ప్రతిష్ఠంభన లేని పరిస్థితి.

బ్యాంకర్స్-అల్గోరిథం-ఉదాహరణ 1

బ్యాంకర్లు-అల్గోరిథం-ఉదాహరణ 1

ఇళ్ళు (ii): 000 కి బదులుగా P2 001 అని అనుకుందాం, ఇప్పుడు డెడ్‌లాక్ కండిషన్ కోసం తనిఖీ చేయడానికి బ్యాంకర్ యొక్క అల్గోరిథంను వర్తింపజేయండి, ఇక్కడ మొత్తం 5 ప్రక్రియలలో P0 మాత్రమే అమలు అవుతుంది. అందువల్ల పి 1 మినహా పి 1, పి 2, పి 3, పి 4 ప్రతిష్ఠంభన స్థితిలో ఉన్నాయి.

బ్యాంకర్లు-ఉదాహరణ 2

బ్యాంకర్లు-ఉదాహరణ 2

డెడ్లాక్ యొక్క అనువర్తనాలు

డెడ్లాక్ యొక్క అనువర్తనాలను పరీక్ష ఆన్‌లైన్ ఫలితాల యొక్క నిజ-సమయ ఉదాహరణతో వివరించవచ్చు, ఇక్కడ చాలా మంది విద్యార్థులు విడుదల సమయంలో వారి విశ్వవిద్యాలయ వెబ్‌సైట్‌ను యాక్సెస్ చేయడానికి ప్రయత్నిస్తారు. కొన్ని సమయాల్లో వెబ్ పేజీ బహుళ వినియోగదారులకు లోడ్ అవ్వదని ఒకరు గమనించవచ్చు, ఇది ప్రతిష్ఠంభన పరిస్థితి. ఏదైనా అల్గోరిథంలను ఉపయోగించి దీనిని అధిగమించవచ్చు.

ప్రయోజనాలు

ప్రతిష్ఠంభన యొక్క ప్రయోజనాలు

  • డెడ్లాక్ ఎగవేతలో ముందస్తు-ఎమ్ప్షన్ గమనించబడదు
  • ప్రక్రియలో ఆలస్యం లేదు

ప్రతికూలతలు

ప్రతిష్ఠంభన యొక్క ప్రతికూలత

  • ఉపయోగించాల్సిన వనరు ముందుగానే తెలుసుకోవాలి
  • ప్రక్రియ యొక్క నిరోధం చాలా కాలం
  • ప్రీ-ఎమ్ప్షన్ నష్టాలు వారసత్వంగా ఉంటాయి.

ఈ వ్యాసం రెండు లేదా అంతకంటే ఎక్కువ ప్రక్రియలు ఉన్నప్పుడు ప్రతిష్ఠంభన ఎలా సంభవిస్తుందనే దాని గురించి మరియు ప్రతిష్టంభన ఏర్పడటానికి కారణమయ్యే మూడు షరతుల గురించి మరియు రెండు రకాల అల్గోరిథంలు రిసోర్స్ షేరింగ్ అల్గోరిథం ఉన్నట్లు గుర్తించాయి. ప్రతిష్ఠంభన పరిస్థితి మరియు బ్యాంకర్ల అల్గోరిథం ఇది డెడ్లాక్ ఎగవేత అల్గోరిథం. ఇక్కడ ప్రశ్న 'ప్రతిష్ఠంభనను విస్మరిస్తే ఏమి జరుగుతుంది?'.