"ဦးေဏွာက္ရွင္းနည္း"
Cloud Cuckoo Land created the doc:
ကြန္ပ်ဴတာ
တစ္ခုတြင္ ကြန္ပ်ဴတာ၏ မွတ္ဥာဏ္ (Computer Memory) ျဖင့္ အလုပ္ေနၿပီး
အဆုိပါ Computer Memory မွာ ရွဳတ္ေထြးၾကပ္ညပ္ၿပီး ပိတ္ဆုိ႕လာခဲ႔သည့္
အခ်ိန္တြင္ Computer Hang ျဖစ္သည္ဟု ေခၚေသာ ကြန္ပ်ဴတာမွ အလုပ္လုပ္ေနျခင္း
ရပ္ဆုိင္းသြားသည့္ အေျခအေန ျဖစ္တတ္ပါသည္။ ထုိသုိ႔ေသာ အေျခအေနကုိ
ေရာက္လွ်င္ ကြန္ပ်ဴတာကုိ ပိတ္ၿပီး အစမွ ျပန္ဖြင့္ျခင္း (Reboot)
လုပ္ရပါသည္။ Reboot လုပ္လုိက္သည့္ အခါတြင္မူ ကြန္ပ်ဴတာသည္ ရွဳတ္ေထြး
ၾကပ္ညပ္ ပိတ္ဆုိ႔ခဲ႔သည့္ အခ်က္အလက္မ်ားကုိ ေမ႔ထုတ္ပစ္လုိက္ၿပီး မူလ
မွတ္ထားၿပီးသား မွတ္ဥာဏ္မ်ားကုိ ျပန္လည္အသုံးခ်၍ အလုပ္လုပ္ ျပန္လုပ္ပါသည္။
အလားတူပင္ လူတစ္ေယာက္သည္လည္း တစ္ခါတစ္ရံတြင္ စဥ္းစားရၾကပ္ၿပီး ဘာလုပ္ရမည္ မသိသည့္ အေျခအေန ျဖစ္တတ္ပါသည္။ စိတ္မ်ား ရွဳတ္ေထြးေနသည့္ အခါတြင္လည္း လက္ရွိလုပ္ေနသည့္ အလုပ္မ်ားမွာ ကေတာက္ကဆ ျဖစ္တတ္ပါသည္။ သုိ႔ေသာ္ လူတစ္ေယာက္မွာ မူ Computer Hang သြားသည့္ အေျခအေနကဲ႔သုိ႔ အလုပ္လုပ္ေနျခင္း ရပ္ဆုိင္း မသြားေသာ္လည္း လုပ္သမွ် အမွားအယြင္းမ်ား ျဖစ္တတ္သည္။ ထုိသုိ႔ေသာ အေျခအေနမ်ဳိးတြင္ လူတစ္ေယာက္၏ ဦးေဏွာက္တြင္ ရွိသည့္ မွတ္ဥာဏ္ မ်ားကုိ ကြန္ပ်ဴတာကဲ႔သုိ႔ ျပန္လည္ရွင္းထုတ္ဖုိ႔ လုိအပ္ပါသည္။
ဦးစြာ ဦးေဏွာက္တြင္ရွိသည့္ မွတ္ဥာဏ္မ်ားကုိ ျပန္လည္ ရွင္းထုတ္သည့္ နည္းလမ္းကုိ မျပဳလုပ္မွီ ဦးေဏွာက္တြင္ ရွဳတ္ေထြးပိတ္ဆုိ႕ ေနသည့္ အေၾကာင္းကုိ နားလည္ရန္ လုိအပ္ပါသည္။ ကြန္ပ်ဴတာႏွင့္ လူ႔ဦးေဏွာက္တြင္ အေျခခံအားျဖင့္ တူညီသည့္ မွတ္ဥာဏ္တြင္ ပိတ္ဆုိ႔တတ္သည့္ အေၾကာင္း အျခင္း ၂ရပ္ရွိရာ ၎တုိ႔မွာ – Deadlock ေခၚ မတုိးသာ မဆုတ္သာ အေျခအေန ဆုိက္ေရာက္ျခင္း ႏွင့္ Infinite loop ေခၚ အဆုံးမရွိ ဂြင္းဆက္ပတ္ လည္ေနျခင္း ျဖစ္သည္။
Deadlock ၏ အေျခအေနမွာ ေအာက္ပုံတြင္ ျပထားသည့္အတုိင္း လူငါးဦးႏွင့္ တစ္ဦးခ်င္းစီ၏ တစ္ဖက္ တစ္ခ်က္စီတြင္ ခရင္းတစ္ခုစီ ႏွင့္ အလယ္ပန္းကန္တြင္ ထည့္ထားသည့္ ေခါက္ဆြဲ ဇလုံတစ္ခုရွိသည္။
လူတစ္ေယာက္သည္ ေခါက္ဆြဲကုိ ယူစားရန္ ဘယ္ဖက္မွ ခရင္း တစ္ေခ်ာင္းႏွင့္ ညာဖက္မွ ခရင္း တစ္ေခ်ာင္း ကုိ အသုံးျပဳရမည္။ ထုိအခါတြင္ လူငါးေယာက္ စလုံး တစ္ၿပိဳင္နက္ စားရန္ မျဖစ္ႏုိင္ေခ်။ အလြန္ဆုံး မ်က္ႏွာျခင္းဆုိင္ ထုိင္ေနသည့္ လူ ၂ေယာက္သာလွ်င္ တစ္ၿပိဳင္နက္ စားႏုိင္ေပမည္။ ထုိသုိ႔ လူ ၂ေယာက္ စားေနသည့္ အခါတြင္ ေနာက္တစ္ေယာက္ကုိ စားရန္ ေစခုိင္းပါက ထုိသူမွာ ခရင္း ၂ ခုကုိ စုံေအာင္ ကုိင္ႏုိင္မည္ မဟုတ္သျဖင့္ စားရန္ မျဖစ္ေခ်။ သူ႔၏ ေဘးတစ္ဖက္ တစ္ခ်က္မွ လူတစ္ေယာက္ စားၿပီး၍ ခရင္း မခ်မျခင္း သူ႕မွာ ေခါက္ဆြဲယူစားရန္ လုံေလာက္ေသာ ခရင္း ရႏုိင္မည္ မဟုတ္ပါ။ ကြန္ပ်ဴတာ၏ ပရုိဂရမ္တြင္လည္း အလားတူ လုိအပ္သည့္ အရင္းအျမစ္ (Resource) ကုိ ခြဲေဝသုံးစြဲရာတြင္ တစ္ၿပိဳင္နက္ မေလာက္မဌ ဆြဲသုံးလုိက္သည့္ အခါမ်ဳိးတြင္ Deadlock အေျခအေနကုိ ဖန္တီးၿပီး အလုပ္လုပ္မွဳ ရပ္ဆုိင္းသြားတတ္သည္။ အလားတူပင္ လူ႔ဦးေဏွာက္တြင္လည္း လက္ခံႏုိင္သည့္ အကန္႔အသတ္ အေၾကာင္းအရာထက္ ပုိမ်ားျပားစြာ လက္ခံစဥ္းစားၿပီး ေျဖရွင္းခ်က္ထုတ္ရသည့္ အခါမ်ဳိးတြင္ Deadlock အေျခအေနသုိ႔ ဆုိက္ေရာက္ၿပီး ဘာလုပ္ရမည္ မသိေတာ႔ျခင္း ျဖစ္တတ္သည္။
ေနာက္တစ္မ်ဳိးမွာ Infinite loop ေခၚ အဆုံးမရွိ ဂြင္းဆက္ပတ္ လည္ေနျခင္း ျဖစ္သည္။ ဥပမာ အထက္ပါ ပုံစံကဲ႔သုိ႔ လူအမ်ား ဝုိင္းပတ္ ထုိင္ၿပီး အလယ္တြင္ ျခင္း တစ္ျခင္း ခ်ထားသည္ ဆုိပါစုိ႔။ လူတစ္ဦးမွ စ၍ ေဘာ္လုံးတစ္လုံးကုိ ညာဖက္လူဆီသုိ႔ လက္ဆင့္ကမ္းၿပီး ဆက္တုိက္ ညာဖက္သုိ႔ လက္ဆင့္ကမ္းသြားပါမူ ထုိေဘာ္လုံးသည္ မည္သည့္ အခါမွ အလယ္က ျခင္းထဲ႔သုိ႔ ေရာက္ႏုိင္ေတာ႔မည္ မဟုတ္ေပ။ အဆုံးမရွိ ျခာလပတ္ လည္ေနေပေတာ႔မည္။ ထုိနည္းတူ အေၾကာင္းအရာ တစ္ခုခုကုိ အေျဖရွာမရသည့္ အခါတြင္ အစသို႔ ျပန္ေရာက္ၿပီး ထုိလမ္းေၾကာင္းအတုိင္း တစ္ႀကိမ္မွ ႏွစ္ႀကိမ္၊ ႏွစ္ႀကိမ္မွ အႀကိမ္ႀကိမ္ ခ်ာလပတ္လည္လာလွ်င္ အျခားကိစၥတစ္ခုကုိ စဥ္းစားမရေတာ႔ျခင္း ျဖစ္ၿပီး ဦးေဏွာက္ပူလာျခင္း၊ စိတ္ရွဳတ္ေထြးလာျခင္း ျဖစ္တတ္သည္။
ဤသုိ႔ျဖစ္ၾကလွ်င္ မိမိတုိ႔မွာ ဦးေဏွာက္ ရွင္းၾကရေတာ႔သည္။ ဦးေဏွာက္ရွင္းသည္ ဆုိရာတြင္ နည္းမွန္ လမ္းမွန္ ရွင္းတတ္ဖုိ႔လုိသည္။ နည္းမွန္လမ္းမွန္ မရွင္းပါမူ ဦးေဏွာက္သည္ ပုိမုိ ရွဳတ္ေထြး ေစတတ္သည္။ ပုိမုိ ၾကပ္တည္း လာတတ္သည္။ ပုိမုိ ပိတ္ဆုိ႔သြားတတ္သည္။ အရက္ဆုိင္သြား အရက္ေသာက္ျခင္း၊ အေပ်ာ္အပါး လုိက္စားျခင္း၊ ရုပ္ရွင္ ၾကည့္ျခင္း တုိ႔သည္ အာရုံေျပာင္းျခင္း တစ္မ်ဳိးျဖစ္သျဖင့္ ထုိနည္းျဖင့္ အလြယ္တစ္ကူ ဦးေဏွာက္ရွင္းျခင္းသည္ နည္းလမ္းမွန္သည့္ ဦးေဏွာက္ ရွင္းျခင္းမ်ဳိး မဟုတ္ပါ။
အထက္ပါပုံစံမ်ားႏွင့္ ပထမ ေလ႔လာၾကည့္ပါက ပထမ Deadlock ေခၚ ျပႆနာတြင္ လူ ၂ဦးမွ ၃ဦးသုိ႔ တစ္ၿပိဳင္နက္ ေခါက္ဆြဲစားေစရာတြင္ Deadlock ျဖစ္သြားသည့္ အခါမွာ၊ ထုိျပႆနာကုိ ေျပလည္ေစဖုိ႔ အရက္သြားေသာက္ျခင္း ျဖင့္ ေျပလည္ေစမည္ မဟုတ္ေပ။ ျပႆနာသည္ ထုိအတုိင္း က်န္ခဲ႔မည္သာ ျဖစ္သည္။ အာရုံေျပာင္းသြား ေသာေၾကာင့္ ေနာက္ျပႆနာတစ္ခုသာ ဝင္လာႏုိင္စရာ အေၾကာင္းရွိသည္။ ျပႆနာကုိ ေခတၱထားခဲ႔ ေသာေၾကာင့္ ထုိေနရာသုိ႔ ျပန္ေရာက္လာလွ်င္ ထုိျပႆနာ ျပန္ျဖစ္မည္သာ ျဖစ္သည္။ အလားတူ Infinite loop ျဖစ္ေနသည့္ အခါတြင္လည္း၊ လည္ေနသည္႔ကိစၥကုိ ခဏထားခဲ႔ၿပီး ရုပ္ရွင္ သြားၾကည့္ပါက မူလေနရာသုိ႔ ျပန္ေရာက္သည့္အခါတြင္ ျပန္လည္ေနမည္ ျဖစ္ၿပီး ျပႆနာ ေျပလည္ႏုိင္စရာ ျဖစ္မည္ မဟုတ္ပါ။
ထုိ႔ေၾကာင့္ ဦးေဏွာက္ကုိ ရွင္းေတာ႔မည္ ဆုိပါက ဦးစြာ ဦးေဏွာက္၏ အသိဥာဏ္တြင္ ျပည့္ညပ္ေနေသာ အရာမ်ားကုိ ေခတၱ ဖယ္ထုတ္ထားရန္ လုိအပ္ပါမည္။ ထုိသုိ႔ ဖယ္ထုတ္ရန္ အေကာင္းဆုံး နည္းလမ္းမွာ ဆိပ္ၿငိမ္သည့္ ေနရာ တစ္ေနရာတြင္ မ်က္လုံးကုိ ပိတ္ၿပီး ဘာကုိမွ မစဥ္းစားဘဲ မိမိသာ အခုေနေသဆုံးသြားခဲ႔ပါက ဘာမွ ရွိေတာ႔မည္ မဟုတ္ဟု ေခတၱႏွလုံးသြင္း ၿပီးစိတ္ကုိ ဦးစြာ တည္ၿငိမ္ေအာင္ႀကိဳးစားပါ။ ထုိ႔ေနာက္ အတိတ္ကုိ စဥ္းစား ေတြးေတာေနသည့္ စိတ္ႏွင့္ အနာဂတ္ကုိ ေမွ်ာ္မွန္း ေတြးေတာေနသည့္ စိတ္၊ တနည္းဆုိရေသာ္ အတိတ္ႏွင့္ အနာဂတ္သုိ႔ ကူးသန္း ေျပးလႊားေနသည့္ စိတ္အား ရပ္တန္႔ေစျပီး လက္ရွိ ပစၥဳပၸါန္ တည့္တည့္ တြင္ စိတ္ကုိ တည့္မတ္ေအာင္ ထားပါ။ လက္ရွိ ပစၥဳပၸါန္ တည့္တည့္တြင္ အသက္ရွဴသြင္း၊ ရွဴထုတ္ေနသည္ကုိ ၾကည့္ပါ။ မိမိကလည္း ရူမသြင္းပါႏွင့္၊ ရူလည္း မထုတ္ပါႏွင့္၊ သူ႔အလုိလုိ ရူသြင္း ရူထုတ္ေနသည္ကုိ ရူသြင္းလုိက္တုိင္း၊ ရူထုတ္လုိက္တုိင္း အသိစိတ္က သိေနေအာင္ သတိလုိက္ထားပါ။ အနည္းဆုံး မိနစ္ ၃၀၊ ျဖစ္ႏုိင္လွ်င္ မိနစ္ ၆၀ မ်က္လုံးမိွတ္၊ ကုိယ္ခႏၶာ မလွဳပ္ရွားေစဘဲ ၿငိမ္ၿငိမ္ေလး ထုိင္၍ၾကည့္ေန၊ သတိထားေနပါ။ ထုိ႔ေနာက္မွာ မိမိ၏ ဦးေဏွာက္ ရွဳတ္ေထြးေနေသာ မွတ္ဥာဏ္မ်ားကုိ ရွင္းလင္းရန္ ေနရာရွိလာပါလိမ္႔မည္။
ထုိ႔အခါမွ Deadlock ကဲ႔သုိ႔ ျပႆနာျဖစ္လွ်င္ မိမိ လက္ခံႏုိင္သည့္ အေျခအေန တစ္ခုျခင္းကုိ လက္ခံၿပီး၊ တစ္ခုၿပီးမွ တစ္ခု ေဆာင္ရြက္ ရပါမည္။ ရွိေနသည့္ အေၾကာင္းအရာမ်ားမွ အားလုံးကုိ ဆြဲထုတ္ၿပီး၊ ဦးစားေပး အဆင့္မ်ား ေရြးခ်ယ္ရပါမည္။ ဦးစားေပး တစ္၊ ဦးစားေပး ႏွစ္ဆုိၿပီး အစီအစဥ္ခ်ၿပီး ဦးစားေပး တစ္ကုိ စဥ္းစားလုပ္ေဆာင္ ေနခ်ိန္မွာ ဦးစားေပး ႏွစ္ကုိ လုံးဝ ဝင္အလုပ္မလုပ္ႏုိင္ရန္ တားထားရမည္။ Deadlock ႏွင့္ ပတ္သက္ၿပီး မိမိ အေတြ႕အႀကံဳ တစ္ခုတင္ျပရေသာ္၊ တစ္ခ်ိန္က မိမိသည္ ရန္ကုန္ၿမိဳ႕က လၻက္ရည္ဆုိင္ တစ္ဆုိင္တြင္ မနက္စာ သြားစားစဥ္က စားပြဲထုိး ေကာင္ေလးသည္ မိမိအား လၻက္ရည္ လာခ်ေပးရာသည့္အခါ မိမိက သူ႔အား ေရေႏြးအုိး မွာလုိက္သည္။ သူသည္ ေရေႏြးအုိးယူရန္ ေခါင္းထဲမွတ္၍ အသြား မွာ မိမိက ေနာက္ထပ္ လွမ္းၿပီး လက္သုတ္ပဝါ ယူလာရန္ကုိပါ မွာလုိက္သည္။ သူျပန္လာေသာတြင္ အခါ ေရေႏြးအုိး ပါမလာဘဲ လက္သုတ္ပုဝါသာ ယူလာသည္။ ထုိအခါ မိမိသတိျပဳလုိက္ မိသည္မွာ ထုိကေလးသည္ ေက်ာင္းေနဖူးသည့္ ကေလး ျဖစ္မည္မဟုတ္၊ သူသည္ မွတ္ဥာဏ္ ၂ ခုကုိ ေရွ႕ေနာက္ဆင့္ၿပီး မွတ္ႏုိင္စြမ္း အေလ႔အက်င့္ မလုပ္ဖူးသျဖင့္ သူ႔တြင္ မွတ္ႏုိင္စြမ္း အရင္းအျမစ္ Resource တစ္ခုတည္းကုိ အေၾကာင္းအရာ တစ္ခုမွာ တစ္ခါတည္း သုံးတတ္ျခင္းျဖစ္သည္။ ထုိသုိ႔ေသာ သူမ်ားအတြက္မူ Deadlock ျဖစ္စရာ အေၾကာင္းမရွိေပ။ တစ္ခုကုိ မွတ္လုိက္သည့္ အခါ အရင္က တစ္ခုကို အလုိလုိ ရွင္းထုတ္လုိက္တတ္ သျဖင့္ျဖစ္သည္။ သုိ႔ေသာ္ မိမိတုိ႔ အေနျဖင့္ ထုိကေလးကဲ႔သုိ႔ ေမ႔ထုတ္ပစ္လုိက္၍ မရသည့္အခါ စာျဖင့္ ေရးမွတ္ထားျခင္း ျဖင့္ တစ္ၿပီး ႏွစ္ကုိ ဆက္လက္ ရွင္းလင္း ေဆာင္ရြက္ႏုိင္မည္ ျဖစ္သည္။
Infinite loop ျဖစ္သည့္ အခါမ်ဳိးမွာမူ ထုိလည္ပတ္ေနသည့္ အေၾကာင္းတစ္ခုကုိ ပထမရပ္တန္႔ ေစရပါမည္။ ထုိသုိ႔ရပ္တန္႔ေစၿပီးမွ လည္ပတ္ေနရသည့္ အေၾကာင္းရင္းအစႏွင့္ ျပန္လည္ပတ္လာသည့္ အဆုံးကုိ ေရြးထုတ္ရပါမည္။ ထုိ႔ေနာက္တြင္မွ ျပန္လည္ပတ္လာသည့္ လမ္းေၾကာင္း အဆုံးမွ အျခားလမ္းေၾကာင္း တစ္ခုသုိ႔ ေျပာင္းလည္းေစႏုိင္မည့္ နည္းလမ္းကုိ ရွာႀကံရပါမည္။ ဥပမာအထက္ ပုံစံမွာ အတုိင္း လူငါးဦး ဝုိင္းပတ္ ထုိင္ေနသည့္အခါ တစ္မွ ႏွစ္သုိ႔ လက္ဆင့္ကမ္းသည့္ ေဘာ္လုံးကုိ ေနာက္ဆုံး ငါးသုိ႔ ေရာက္သည့္အခါတြင္ တစ္သုိ႔ ျပန္လက္ဆင့္ ကမ္းမလာႏုိင္ရန္ သုိ႔မဟုတ္ တစ္မွ ျပန္လက္ဆင့္ကမ္းျခင္းကုိ လက္မခံႏုိင္ရန္ တားထားႏုိင္မည့္ လမ္းကုိ ဦးစြာရွာၿပီး လည္ပတ္ေနျခင္းကုိ ရပ္တန္႔ေစရပါမည္။ ထုိသုိ႔မွ ပထမ လုပ္ေဆာင္လာသည့္ အဆင့္မ်ားႏွင့္ မတူသည့္ ေနာက္ဆုံးအဆင့္ လုပ္ေဆာင္ခ်က္ကုိ လမ္းေၾကာင္း အသစ္ စဥ္းစားေပးဖုိ႔လုိပါမည္။
ဤနည္းျဖင့္ မိမိသည္ မိမိ၏ ဦးေဏွာက္တြင္ ပိတ္ဆုိ႔လာသည့္ အေၾကာင္းအရာမ်ားကုိ ရွင္းလင္းရာမွာ ထိေရာက္ေအာင္ျမင္စြာ ရွင္းထုတ္ႏုိင္သျဖင့္ ဦးေဏွာက္ရွင္းလုိသူမ်ား အတြက္ ဤနည္းလမ္းကုိ ေဝဌေပးလုိက္ပါသည္။
posted by aung aung
အလားတူပင္ လူတစ္ေယာက္သည္လည္း တစ္ခါတစ္ရံတြင္ စဥ္းစားရၾကပ္ၿပီး ဘာလုပ္ရမည္ မသိသည့္ အေျခအေန ျဖစ္တတ္ပါသည္။ စိတ္မ်ား ရွဳတ္ေထြးေနသည့္ အခါတြင္လည္း လက္ရွိလုပ္ေနသည့္ အလုပ္မ်ားမွာ ကေတာက္ကဆ ျဖစ္တတ္ပါသည္။ သုိ႔ေသာ္ လူတစ္ေယာက္မွာ မူ Computer Hang သြားသည့္ အေျခအေနကဲ႔သုိ႔ အလုပ္လုပ္ေနျခင္း ရပ္ဆုိင္း မသြားေသာ္လည္း လုပ္သမွ် အမွားအယြင္းမ်ား ျဖစ္တတ္သည္။ ထုိသုိ႔ေသာ အေျခအေနမ်ဳိးတြင္ လူတစ္ေယာက္၏ ဦးေဏွာက္တြင္ ရွိသည့္ မွတ္ဥာဏ္ မ်ားကုိ ကြန္ပ်ဴတာကဲ႔သုိ႔ ျပန္လည္ရွင္းထုတ္ဖုိ႔ လုိအပ္ပါသည္။
ဦးစြာ ဦးေဏွာက္တြင္ရွိသည့္ မွတ္ဥာဏ္မ်ားကုိ ျပန္လည္ ရွင္းထုတ္သည့္ နည္းလမ္းကုိ မျပဳလုပ္မွီ ဦးေဏွာက္တြင္ ရွဳတ္ေထြးပိတ္ဆုိ႕ ေနသည့္ အေၾကာင္းကုိ နားလည္ရန္ လုိအပ္ပါသည္။ ကြန္ပ်ဴတာႏွင့္ လူ႔ဦးေဏွာက္တြင္ အေျခခံအားျဖင့္ တူညီသည့္ မွတ္ဥာဏ္တြင္ ပိတ္ဆုိ႔တတ္သည့္ အေၾကာင္း အျခင္း ၂ရပ္ရွိရာ ၎တုိ႔မွာ – Deadlock ေခၚ မတုိးသာ မဆုတ္သာ အေျခအေန ဆုိက္ေရာက္ျခင္း ႏွင့္ Infinite loop ေခၚ အဆုံးမရွိ ဂြင္းဆက္ပတ္ လည္ေနျခင္း ျဖစ္သည္။
Deadlock ၏ အေျခအေနမွာ ေအာက္ပုံတြင္ ျပထားသည့္အတုိင္း လူငါးဦးႏွင့္ တစ္ဦးခ်င္းစီ၏ တစ္ဖက္ တစ္ခ်က္စီတြင္ ခရင္းတစ္ခုစီ ႏွင့္ အလယ္ပန္းကန္တြင္ ထည့္ထားသည့္ ေခါက္ဆြဲ ဇလုံတစ္ခုရွိသည္။
လူတစ္ေယာက္သည္ ေခါက္ဆြဲကုိ ယူစားရန္ ဘယ္ဖက္မွ ခရင္း တစ္ေခ်ာင္းႏွင့္ ညာဖက္မွ ခရင္း တစ္ေခ်ာင္း ကုိ အသုံးျပဳရမည္။ ထုိအခါတြင္ လူငါးေယာက္ စလုံး တစ္ၿပိဳင္နက္ စားရန္ မျဖစ္ႏုိင္ေခ်။ အလြန္ဆုံး မ်က္ႏွာျခင္းဆုိင္ ထုိင္ေနသည့္ လူ ၂ေယာက္သာလွ်င္ တစ္ၿပိဳင္နက္ စားႏုိင္ေပမည္။ ထုိသုိ႔ လူ ၂ေယာက္ စားေနသည့္ အခါတြင္ ေနာက္တစ္ေယာက္ကုိ စားရန္ ေစခုိင္းပါက ထုိသူမွာ ခရင္း ၂ ခုကုိ စုံေအာင္ ကုိင္ႏုိင္မည္ မဟုတ္သျဖင့္ စားရန္ မျဖစ္ေခ်။ သူ႔၏ ေဘးတစ္ဖက္ တစ္ခ်က္မွ လူတစ္ေယာက္ စားၿပီး၍ ခရင္း မခ်မျခင္း သူ႕မွာ ေခါက္ဆြဲယူစားရန္ လုံေလာက္ေသာ ခရင္း ရႏုိင္မည္ မဟုတ္ပါ။ ကြန္ပ်ဴတာ၏ ပရုိဂရမ္တြင္လည္း အလားတူ လုိအပ္သည့္ အရင္းအျမစ္ (Resource) ကုိ ခြဲေဝသုံးစြဲရာတြင္ တစ္ၿပိဳင္နက္ မေလာက္မဌ ဆြဲသုံးလုိက္သည့္ အခါမ်ဳိးတြင္ Deadlock အေျခအေနကုိ ဖန္တီးၿပီး အလုပ္လုပ္မွဳ ရပ္ဆုိင္းသြားတတ္သည္။ အလားတူပင္ လူ႔ဦးေဏွာက္တြင္လည္း လက္ခံႏုိင္သည့္ အကန္႔အသတ္ အေၾကာင္းအရာထက္ ပုိမ်ားျပားစြာ လက္ခံစဥ္းစားၿပီး ေျဖရွင္းခ်က္ထုတ္ရသည့္ အခါမ်ဳိးတြင္ Deadlock အေျခအေနသုိ႔ ဆုိက္ေရာက္ၿပီး ဘာလုပ္ရမည္ မသိေတာ႔ျခင္း ျဖစ္တတ္သည္။
ေနာက္တစ္မ်ဳိးမွာ Infinite loop ေခၚ အဆုံးမရွိ ဂြင္းဆက္ပတ္ လည္ေနျခင္း ျဖစ္သည္။ ဥပမာ အထက္ပါ ပုံစံကဲ႔သုိ႔ လူအမ်ား ဝုိင္းပတ္ ထုိင္ၿပီး အလယ္တြင္ ျခင္း တစ္ျခင္း ခ်ထားသည္ ဆုိပါစုိ႔။ လူတစ္ဦးမွ စ၍ ေဘာ္လုံးတစ္လုံးကုိ ညာဖက္လူဆီသုိ႔ လက္ဆင့္ကမ္းၿပီး ဆက္တုိက္ ညာဖက္သုိ႔ လက္ဆင့္ကမ္းသြားပါမူ ထုိေဘာ္လုံးသည္ မည္သည့္ အခါမွ အလယ္က ျခင္းထဲ႔သုိ႔ ေရာက္ႏုိင္ေတာ႔မည္ မဟုတ္ေပ။ အဆုံးမရွိ ျခာလပတ္ လည္ေနေပေတာ႔မည္။ ထုိနည္းတူ အေၾကာင္းအရာ တစ္ခုခုကုိ အေျဖရွာမရသည့္ အခါတြင္ အစသို႔ ျပန္ေရာက္ၿပီး ထုိလမ္းေၾကာင္းအတုိင္း တစ္ႀကိမ္မွ ႏွစ္ႀကိမ္၊ ႏွစ္ႀကိမ္မွ အႀကိမ္ႀကိမ္ ခ်ာလပတ္လည္လာလွ်င္ အျခားကိစၥတစ္ခုကုိ စဥ္းစားမရေတာ႔ျခင္း ျဖစ္ၿပီး ဦးေဏွာက္ပူလာျခင္း၊ စိတ္ရွဳတ္ေထြးလာျခင္း ျဖစ္တတ္သည္။
ဤသုိ႔ျဖစ္ၾကလွ်င္ မိမိတုိ႔မွာ ဦးေဏွာက္ ရွင္းၾကရေတာ႔သည္။ ဦးေဏွာက္ရွင္းသည္ ဆုိရာတြင္ နည္းမွန္ လမ္းမွန္ ရွင္းတတ္ဖုိ႔လုိသည္။ နည္းမွန္လမ္းမွန္ မရွင္းပါမူ ဦးေဏွာက္သည္ ပုိမုိ ရွဳတ္ေထြး ေစတတ္သည္။ ပုိမုိ ၾကပ္တည္း လာတတ္သည္။ ပုိမုိ ပိတ္ဆုိ႔သြားတတ္သည္။ အရက္ဆုိင္သြား အရက္ေသာက္ျခင္း၊ အေပ်ာ္အပါး လုိက္စားျခင္း၊ ရုပ္ရွင္ ၾကည့္ျခင္း တုိ႔သည္ အာရုံေျပာင္းျခင္း တစ္မ်ဳိးျဖစ္သျဖင့္ ထုိနည္းျဖင့္ အလြယ္တစ္ကူ ဦးေဏွာက္ရွင္းျခင္းသည္ နည္းလမ္းမွန္သည့္ ဦးေဏွာက္ ရွင္းျခင္းမ်ဳိး မဟုတ္ပါ။
အထက္ပါပုံစံမ်ားႏွင့္ ပထမ ေလ႔လာၾကည့္ပါက ပထမ Deadlock ေခၚ ျပႆနာတြင္ လူ ၂ဦးမွ ၃ဦးသုိ႔ တစ္ၿပိဳင္နက္ ေခါက္ဆြဲစားေစရာတြင္ Deadlock ျဖစ္သြားသည့္ အခါမွာ၊ ထုိျပႆနာကုိ ေျပလည္ေစဖုိ႔ အရက္သြားေသာက္ျခင္း ျဖင့္ ေျပလည္ေစမည္ မဟုတ္ေပ။ ျပႆနာသည္ ထုိအတုိင္း က်န္ခဲ႔မည္သာ ျဖစ္သည္။ အာရုံေျပာင္းသြား ေသာေၾကာင့္ ေနာက္ျပႆနာတစ္ခုသာ ဝင္လာႏုိင္စရာ အေၾကာင္းရွိသည္။ ျပႆနာကုိ ေခတၱထားခဲ႔ ေသာေၾကာင့္ ထုိေနရာသုိ႔ ျပန္ေရာက္လာလွ်င္ ထုိျပႆနာ ျပန္ျဖစ္မည္သာ ျဖစ္သည္။ အလားတူ Infinite loop ျဖစ္ေနသည့္ အခါတြင္လည္း၊ လည္ေနသည္႔ကိစၥကုိ ခဏထားခဲ႔ၿပီး ရုပ္ရွင္ သြားၾကည့္ပါက မူလေနရာသုိ႔ ျပန္ေရာက္သည့္အခါတြင္ ျပန္လည္ေနမည္ ျဖစ္ၿပီး ျပႆနာ ေျပလည္ႏုိင္စရာ ျဖစ္မည္ မဟုတ္ပါ။
ထုိ႔ေၾကာင့္ ဦးေဏွာက္ကုိ ရွင္းေတာ႔မည္ ဆုိပါက ဦးစြာ ဦးေဏွာက္၏ အသိဥာဏ္တြင္ ျပည့္ညပ္ေနေသာ အရာမ်ားကုိ ေခတၱ ဖယ္ထုတ္ထားရန္ လုိအပ္ပါမည္။ ထုိသုိ႔ ဖယ္ထုတ္ရန္ အေကာင္းဆုံး နည္းလမ္းမွာ ဆိပ္ၿငိမ္သည့္ ေနရာ တစ္ေနရာတြင္ မ်က္လုံးကုိ ပိတ္ၿပီး ဘာကုိမွ မစဥ္းစားဘဲ မိမိသာ အခုေနေသဆုံးသြားခဲ႔ပါက ဘာမွ ရွိေတာ႔မည္ မဟုတ္ဟု ေခတၱႏွလုံးသြင္း ၿပီးစိတ္ကုိ ဦးစြာ တည္ၿငိမ္ေအာင္ႀကိဳးစားပါ။ ထုိ႔ေနာက္ အတိတ္ကုိ စဥ္းစား ေတြးေတာေနသည့္ စိတ္ႏွင့္ အနာဂတ္ကုိ ေမွ်ာ္မွန္း ေတြးေတာေနသည့္ စိတ္၊ တနည္းဆုိရေသာ္ အတိတ္ႏွင့္ အနာဂတ္သုိ႔ ကူးသန္း ေျပးလႊားေနသည့္ စိတ္အား ရပ္တန္႔ေစျပီး လက္ရွိ ပစၥဳပၸါန္ တည့္တည့္ တြင္ စိတ္ကုိ တည့္မတ္ေအာင္ ထားပါ။ လက္ရွိ ပစၥဳပၸါန္ တည့္တည့္တြင္ အသက္ရွဴသြင္း၊ ရွဴထုတ္ေနသည္ကုိ ၾကည့္ပါ။ မိမိကလည္း ရူမသြင္းပါႏွင့္၊ ရူလည္း မထုတ္ပါႏွင့္၊ သူ႔အလုိလုိ ရူသြင္း ရူထုတ္ေနသည္ကုိ ရူသြင္းလုိက္တုိင္း၊ ရူထုတ္လုိက္တုိင္း အသိစိတ္က သိေနေအာင္ သတိလုိက္ထားပါ။ အနည္းဆုံး မိနစ္ ၃၀၊ ျဖစ္ႏုိင္လွ်င္ မိနစ္ ၆၀ မ်က္လုံးမိွတ္၊ ကုိယ္ခႏၶာ မလွဳပ္ရွားေစဘဲ ၿငိမ္ၿငိမ္ေလး ထုိင္၍ၾကည့္ေန၊ သတိထားေနပါ။ ထုိ႔ေနာက္မွာ မိမိ၏ ဦးေဏွာက္ ရွဳတ္ေထြးေနေသာ မွတ္ဥာဏ္မ်ားကုိ ရွင္းလင္းရန္ ေနရာရွိလာပါလိမ္႔မည္။
ထုိ႔အခါမွ Deadlock ကဲ႔သုိ႔ ျပႆနာျဖစ္လွ်င္ မိမိ လက္ခံႏုိင္သည့္ အေျခအေန တစ္ခုျခင္းကုိ လက္ခံၿပီး၊ တစ္ခုၿပီးမွ တစ္ခု ေဆာင္ရြက္ ရပါမည္။ ရွိေနသည့္ အေၾကာင္းအရာမ်ားမွ အားလုံးကုိ ဆြဲထုတ္ၿပီး၊ ဦးစားေပး အဆင့္မ်ား ေရြးခ်ယ္ရပါမည္။ ဦးစားေပး တစ္၊ ဦးစားေပး ႏွစ္ဆုိၿပီး အစီအစဥ္ခ်ၿပီး ဦးစားေပး တစ္ကုိ စဥ္းစားလုပ္ေဆာင္ ေနခ်ိန္မွာ ဦးစားေပး ႏွစ္ကုိ လုံးဝ ဝင္အလုပ္မလုပ္ႏုိင္ရန္ တားထားရမည္။ Deadlock ႏွင့္ ပတ္သက္ၿပီး မိမိ အေတြ႕အႀကံဳ တစ္ခုတင္ျပရေသာ္၊ တစ္ခ်ိန္က မိမိသည္ ရန္ကုန္ၿမိဳ႕က လၻက္ရည္ဆုိင္ တစ္ဆုိင္တြင္ မနက္စာ သြားစားစဥ္က စားပြဲထုိး ေကာင္ေလးသည္ မိမိအား လၻက္ရည္ လာခ်ေပးရာသည့္အခါ မိမိက သူ႔အား ေရေႏြးအုိး မွာလုိက္သည္။ သူသည္ ေရေႏြးအုိးယူရန္ ေခါင္းထဲမွတ္၍ အသြား မွာ မိမိက ေနာက္ထပ္ လွမ္းၿပီး လက္သုတ္ပဝါ ယူလာရန္ကုိပါ မွာလုိက္သည္။ သူျပန္လာေသာတြင္ အခါ ေရေႏြးအုိး ပါမလာဘဲ လက္သုတ္ပုဝါသာ ယူလာသည္။ ထုိအခါ မိမိသတိျပဳလုိက္ မိသည္မွာ ထုိကေလးသည္ ေက်ာင္းေနဖူးသည့္ ကေလး ျဖစ္မည္မဟုတ္၊ သူသည္ မွတ္ဥာဏ္ ၂ ခုကုိ ေရွ႕ေနာက္ဆင့္ၿပီး မွတ္ႏုိင္စြမ္း အေလ႔အက်င့္ မလုပ္ဖူးသျဖင့္ သူ႔တြင္ မွတ္ႏုိင္စြမ္း အရင္းအျမစ္ Resource တစ္ခုတည္းကုိ အေၾကာင္းအရာ တစ္ခုမွာ တစ္ခါတည္း သုံးတတ္ျခင္းျဖစ္သည္။ ထုိသုိ႔ေသာ သူမ်ားအတြက္မူ Deadlock ျဖစ္စရာ အေၾကာင္းမရွိေပ။ တစ္ခုကုိ မွတ္လုိက္သည့္ အခါ အရင္က တစ္ခုကို အလုိလုိ ရွင္းထုတ္လုိက္တတ္ သျဖင့္ျဖစ္သည္။ သုိ႔ေသာ္ မိမိတုိ႔ အေနျဖင့္ ထုိကေလးကဲ႔သုိ႔ ေမ႔ထုတ္ပစ္လုိက္၍ မရသည့္အခါ စာျဖင့္ ေရးမွတ္ထားျခင္း ျဖင့္ တစ္ၿပီး ႏွစ္ကုိ ဆက္လက္ ရွင္းလင္း ေဆာင္ရြက္ႏုိင္မည္ ျဖစ္သည္။
Infinite loop ျဖစ္သည့္ အခါမ်ဳိးမွာမူ ထုိလည္ပတ္ေနသည့္ အေၾကာင္းတစ္ခုကုိ ပထမရပ္တန္႔ ေစရပါမည္။ ထုိသုိ႔ရပ္တန္႔ေစၿပီးမွ လည္ပတ္ေနရသည့္ အေၾကာင္းရင္းအစႏွင့္ ျပန္လည္ပတ္လာသည့္ အဆုံးကုိ ေရြးထုတ္ရပါမည္။ ထုိ႔ေနာက္တြင္မွ ျပန္လည္ပတ္လာသည့္ လမ္းေၾကာင္း အဆုံးမွ အျခားလမ္းေၾကာင္း တစ္ခုသုိ႔ ေျပာင္းလည္းေစႏုိင္မည့္ နည္းလမ္းကုိ ရွာႀကံရပါမည္။ ဥပမာအထက္ ပုံစံမွာ အတုိင္း လူငါးဦး ဝုိင္းပတ္ ထုိင္ေနသည့္အခါ တစ္မွ ႏွစ္သုိ႔ လက္ဆင့္ကမ္းသည့္ ေဘာ္လုံးကုိ ေနာက္ဆုံး ငါးသုိ႔ ေရာက္သည့္အခါတြင္ တစ္သုိ႔ ျပန္လက္ဆင့္ ကမ္းမလာႏုိင္ရန္ သုိ႔မဟုတ္ တစ္မွ ျပန္လက္ဆင့္ကမ္းျခင္းကုိ လက္မခံႏုိင္ရန္ တားထားႏုိင္မည့္ လမ္းကုိ ဦးစြာရွာၿပီး လည္ပတ္ေနျခင္းကုိ ရပ္တန္႔ေစရပါမည္။ ထုိသုိ႔မွ ပထမ လုပ္ေဆာင္လာသည့္ အဆင့္မ်ားႏွင့္ မတူသည့္ ေနာက္ဆုံးအဆင့္ လုပ္ေဆာင္ခ်က္ကုိ လမ္းေၾကာင္း အသစ္ စဥ္းစားေပးဖုိ႔လုိပါမည္။
ဤနည္းျဖင့္ မိမိသည္ မိမိ၏ ဦးေဏွာက္တြင္ ပိတ္ဆုိ႔လာသည့္ အေၾကာင္းအရာမ်ားကုိ ရွင္းလင္းရာမွာ ထိေရာက္ေအာင္ျမင္စြာ ရွင္းထုတ္ႏုိင္သျဖင့္ ဦးေဏွာက္ရွင္းလုိသူမ်ား အတြက္ ဤနည္းလမ္းကုိ ေဝဌေပးလုိက္ပါသည္။
posted by aung aung
0 comments:
Post a Comment