Deadlock vs ረሃብ
በሞት ማጣት እና በረሃብ መካከል ያለው ዋነኛው ልዩነት በመካከላቸው ያለው መንስኤ እና የውጤት ግንኙነት ነው; ረሃብን የሚያስከትለው መጉደል ነው። ሌላው የሚገርመው በሞት መዘጋት እና በረሃብ መካከል ያለው ልዩነት የሞት መቆለፍ ችግር ሲሆን ረሃብ አንዳንድ ጊዜ ደግሞ ከድንቁርና ለመውጣት ሊረዳ ይችላል። በኮምፒዩተር አለም የኮምፒዩተር ፕሮግራምን በሚጽፉበት ጊዜ ለፕሮግራሙ የሚፈለገውን አገልግሎት ለማሟላት ከአንድ በላይ ሂደት/ክር በአንድ ጊዜ የሚሄዱ ሂደቶች ይኖራሉ። ስለዚህ ፍትሃዊ አሰራር እንዲኖር ፕሮግራመር ሁሉም ሂደቶች/ክሮች የሚፈልጓቸውን ግብአቶች በበቂ ሁኔታ እንዲያገኙ ወይም እንዲያገኙ ማድረግ አለበት።ካልሆነ ግን መዘጋት ይኖራል, እና በኋላ ወደ ረሃብ ይመራል. በአጠቃላይ፣ ፍትሃዊ ስርዓት ምንም አይነት መዘጋትን ወይም ረሃብን አልያዘም። መቆለፊያዎች እና ረሃብዎች የሚከሰቱት በዋናነት ብዙ ክሮች ለተገደቡ ሀብቶች ሲወዳደሩ ነው።
Deadlock ምንድን ነው?
የማቆም ሁኔታ ሁለት ክሮች ወይም ሂደቶች ስራውን ለመጨረስ ሲጠባበቁ የሚፈጠር ሁኔታ ነው። ስልኩን ይዘጋሉ ነገር ግን አያቆሙም ወይም ተግባራቸውን አይጨርሱም። በኮምፒዩተር ሳይንስ ውስጥ, የሞት መቆለፊያዎች በሁሉም ቦታ ሊታዩ ይችላሉ. በግብይት ዳታቤዝ ውስጥ፣ ሁለት ሂደቶች እያንዳንዳቸው የየራሳቸው የግብይት ሂደቶች ተመሳሳይ ሁለት ረድፎችን መረጃ ሲያዘምኑ ግን በተቃራኒው ቅደም ተከተል ፣ መዘጋትን ያስከትላል። በአንድ ጊዜ ፕሮግራሚንግ ውስጥ፣ ሁለት ተፎካካሪ ድርጊቶች አንዱ ለሌላው ወደፊት ለመቀጠል ሲጠባበቁ መቆለፊያ ሊከሰት ይችላል። በቴሌኮሙኒኬሽን ሲስተም፣ የምልክቶች መጥፋት ወይም መበላሸት ምክንያት መቋረጥ ሊከሰት ይችላል።
በአሁኑ ጊዜ የመዝጊያ ሂደትና በትይዩ ኮምፒውቲንግ ውስጥ ካሉት ችግሮች አንዱና ዋነኛው ነው። እንደ መፍትሄ የሂደት ማመሳሰል የሚባል የመቆለፊያ ስርዓት ለሶፍትዌር እና ሃርድዌር ይተገበራል።
ረሃብ ምንድነው?
ከህክምና ሳይንስ መዝገበ-ቃላት ረሃብ ማለት ለህይወት ማቆያ የሚያስፈልገው ከፍተኛ ወይም አጠቃላይ የንጥረ-ምግቦች እጥረት ውጤት ነው። በተመሳሳይ በኮምፒዩተር ሳይንስ ውስጥ ረሃብ ብዙ ክሮች ወይም ሂደቶች አንድ አይነት ግብዓት ሲጠብቁ የሚያጋጥመው ችግር ነው ይህም ሞት መቆለፊያ ይባላል።
ከማቆም ለመውጣት ከሂደቶቹ ወይም ክሮች አንዱ መተው ወይም ወደ ኋላ መመለስ አለበት ይህም ሌላኛው ክር ወይም ሂደት ሃብቱን እንዲጠቀም። ይህ ያለማቋረጥ የሚከሰት ከሆነ እና ተመሳሳይ ሂደት ወይም ክር ሌሎች ሂደቶችን ወይም ክሮች ሀብቱን እንዲጠቀሙ እየፈቀዱ በእያንዳንዱ ጊዜ መተው ወይም ወደ ኋላ መመለስ ካለባቸው የተመረጠው ሂደት ወይም ክር ወደ ኋላ ተንከባሎ ረሃብ ይባላል።ስለዚህ፣ ከሞት አጣብቂኝ ውስጥ ለመውጣት፣ ረሃብ አንዱ መፍትሔ ነው። ስለዚህ, አንዳንድ ጊዜ ረሃብ የቀጥታ ሎክ ዓይነት ይባላል. ብዙ ከፍተኛ ቅድሚያ የሚሰጣቸው ሂደቶች ወይም ክሮች ሲኖሩ፣ ቅድሚያ የሚሰጠው ዝቅተኛ ሂደት ወይም ክር ሁል ጊዜ በሞት መቆለፊያ ውስጥ ይራባል።
እንደ ሀብት መራብ እና በሲፒዩ ላይ እንደ ረሃብ ያሉ ብዙ ረሃብዎች ሊኖሩ ይችላሉ። በረሃብ ላይ ብዙ የተለመዱ ምሳሌዎች አሉ. እነሱ የአንባቢዎች-ፀሐፊዎች ችግር እና የምግብ ፈላስፋዎች ችግር ናቸው, እሱም የበለጠ ታዋቂ ነው. አምስት ጸጥ ያሉ ፈላስፎች በክብ ጠረጴዛ ላይ የስፓጌቲ ጎድጓዳ ሳህን ተቀምጠዋል። ሹካዎች በእያንዳንዱ ጥንድ አጠገብ ባሉ ፈላስፎች መካከል ይቀመጣሉ. እያንዳንዱ ፈላስፋ ተለዋጭ ማሰብ እና መመገብ አለበት። ሆኖም አንድ ፈላስፋ ስፓጌቲን መብላት የሚችለው ግራ እና ቀኝ ሹካ ሲኖረው ብቻ ነው።
“የመመገቢያ ፈላስፎች”
በዴድሎክ እና ረሃብ መካከል ያለው ልዩነት ምንድነው?
ሂደት፡
• በማዘግየት ጊዜ ሁለቱ ክሮች ወይም ሂደቶች እርስ በርስ ይጠባበቃሉ እና ሁለቱም ወደ ፊት አይቀጥሉም።
• በረሃብ ውስጥ፣ ሁለት ወይም ከዚያ በላይ ክሮች ወይም ሂደቶች አንድ አይነት ግብአት ሲጠብቁ፣ አንዱ ተመልሶ ይንከባለል እና ሌሎች መጀመሪያ ሃብቱን እንዲጠቀሙ ይፈቀድላቸዋል እና በመቀጠል የተራበ ክር ወይም ሂደት እንደገና ይሞከራል። ስለዚህ ሁሉም ክሮች ወይም ሂደቶች ለማንኛውም ወደፊት ይቀጥላሉ።
በመመለስ ላይ፡
• በማዘግየት ጊዜ፣ ሁለቱም ከፍተኛ ቅድሚያ የሚሰጣቸው ክሮች/ሂደቶች፣ እንዲሁም ዝቅተኛ ቅድሚያ የሚሰጣቸው ክሮች/ሂደቶች፣ እርስ በርስ ላልተወሰነ ጊዜ ይጠበቃሉ። አያልቅም።
• ነገር ግን፣ በረሃብ ውስጥ፣ ቅድሚያ የሚሰጡት ዝቅተኛ ይጠብቃሉ ወይም ይመለሳሉ፣ ነገር ግን ከፍተኛ ቅድሚያ የሚሰጠው ይቀጥላል።
በመጠበቅ ወይም በመቆለፍ፡
• የሞት መቆለፊያ ክብ መጠበቅ ነው።
• ረሃብ የቀጥታ ሎክ አይነት ሲሆን አንዳንዴም ከድንቁርና ለመውጣት ይረዳል።
መቆለፍ እና ረሃብ፡
• መዘጋት ረሃብን ያመጣል፣ረሃብ ግን መዘጋትን አያመጣም።
መንስኤዎች፡
• በጋራ መገለል፣ በመያዝ እና በመጠባበቅ ምክንያት የመዘግየት መቆለፊያ ይከሰታል፣ ምንም ቅድመ ግምት ወይም ክብ መጠበቅ።
• ረሃብ የሚከሰተው በሃብት እጥረት፣ ከቁጥጥር ውጪ በሆነ የሃብት አያያዝ እና በሂደት ቅድሚያ በሚሰጣቸው ጉዳዮች ነው።
ማጠቃለያ፡
Deadlock vs. ረሃብ
በመረጃ ውድድር እና በፕሮግራም አወጣጥ ወቅት በሚፈጠሩ እንዲሁም ሃርድዌርን በመተግበር ከሚከሰቱት ችግሮች መካከል መዘጋትና ረሃብ ናቸው። በሞት መዘጋት ውስጥ ፣ ሁለት ክሮች ያለማቋረጥ እርስ በእርሳቸው ይጠባበቃሉ ፣ በረሃብ ውስጥ ፣ አንድ ክር ወደ ኋላ ይንከባለል እና ሌላኛው ክር ሀብቱን እንዲጠቀም ያስችለዋል።መቆለፍ ረሃብን ያስከትላል ረሃብ ግን ከተዘጋበት ክር ለመውጣት ይረዳል።