Friday, June 4, 2010

Virtual Memory တြက္ခ်က္နည္း

ကၽြန္ေတာ္တုိ႕ Memory လုိ႔ ေျပာလုိက္တာနဲ႕ ကြန္ပ်ဴတာအသုံးျပဳတဲ႕ သူတုိင္း သိျပီးသာပါ။ ဒါေပမဲ႕ ေသခ်ာသိသင္႔တယ္ ထင္လုိ႕ တင္ျပေပးလုိက္တာပါ။ ကၽြန္ေတာ္တုိ႕ ကြန္ပ်ဴတာမွာ အဓိက အားျဖင္႕ Memory ႏွစ္မ်ဳိးႏွစ္စားရွိပါတယ္။ System Memory နဲ႕ Virtual Memory ဆုိျပီ ရွိပါတယ္။ System Memory က ကြန္ပ်ဴတာရဲ႕ဘယ္အပုိင္းကုိ လုပ္ေဆာင္သလဲ။ ကြန္ပ်ဴတာရဲ႕ ဘယ္အပုိင္းကေတာ႔ Virtual Memory လုပ္ေဆာင္တယ္ ဆုိတာ ကြဲကြဲ ျပားျပားနားလည္ေအာင္ တင္ျပေပးလုိက္တာပါ။ ကၽြန္ေတာ္ ညီ ေအာင္ေက်ာ္ထြန္း ကုိယ္တုိင္ အပင္ပန္းခံျပီး ေရးသားေပးထားတာ ျဖစ္ပါတယ္။ အေတာ္မ်ားမ်ားေသာ သူမ်ားကေတာ႔ အခုလုိ နားလည္ဖို႕ထက္ အသုံးခ်နည္းမ်ားကုိသာ စိတ္၀င္စားက်ပါတယ္။

System Memory (တနည္းအားျဖင္႔ Physical Memory (or) Main Memory ကုိ ဆုိလုိျခင္းျဖစ္ပါတယ္။) ကေတာ႔ တစ္နည္းအား ျဖင္႔ေတာ႔ Application Data (အသုံးခ် Software မ်ားကုိ ဆုိလုိျခင္းျဖစ္ပါတယ္။ ) ေတြကုိ ဘယ္လုိ သုိးေလွာင္မလဲ ၊ ဘယ္လုိ စီမံမလဲ ၊ ဘယ္လုိ ေနရာခ်မလဲကုိ အသုံးျပဳေပးတာ ျဖစ္ပါတယ္။ ေနာက္ ကၽြန္ေတာ္ တုိ႕ Memory Sticks တစ္ခုကုိ မိမိ ကြန္ပ်ဴတာမွာ တပ္ဆင္လုိက္တာနဲ႕ မိမိရဲ႕ System Memory က မိမိတပ္ဆင္ထားတာထပ္ ပုိတုိးလာပါလိမ္႔မယ္။ တနည္းအားျဖင္႕ ဒါေၾကာင့္ System Memory ဆိုတာ အဓိကစက္ထဲမွာရွိေနတဲ႔ Memory တင္မကပ ဲၿပင္ကေနတပ္ဆင္လိုက္တဲ႔ physical memory ( External HDD,Memory sticks) ေတြလည္းပါ၀င္တယ္လို႕သိထားရပါမယ္



Virtual Memory ( Logical Memory ကုိ ဆုိလုိျခင္းျဖစ္ပါတယ္။) ကေတာ႔ သူကေတာ႕ Memory ေတာ႕ Memory ဘဲ။ ဒါေပမဲ႕ OS (Operating System တနည္းအားျဖင္႔ Windows ေပါ႔) ရဲ႕ Controls ေအာက္မွာ အလုပ္လုပ္ေဆာင္ရတာ ျဖစ္ပါတယ္။ Virtual Memory ကေတာ႕ HDD(Hard disk drive ) ရဲ႕ အစိတ္အပုိင္းေလး တစ္ခု အတြက္ လုပ္ေဆာင္ေပးတာ ျဖစ္ပါတယ္။ ေနာက္ျပီး မိမိရဲ႕ ကြန္ပ်ဴတာမွာ လက္တေလာ အသုံးမျပဳတဲ႕ Application Software ေတြ ရဲ႕ Process ေတြ Instructions ေတြကုိ သုိေလွာင္းေပးထားတဲ႕ ေနရာမွာ Virtual Memory က လုပ္ေဆာင္ပါတယ္။ Virtual Memory က အခု လက္တေလာ အသုံးျပဳေနတဲ႕ Process ေတြကုိ သူနဲ႕ လုံး၀ ပါ၀င္ပတ္သက္မႈ႕မရွိပါဘူ။ လက္တေလာ Process ေတြအတြက္ Virtual Memory က လုံး၀ မလုိအပ္ပါ။ လက္တေလာ အသုံးျပဳေနတဲ႕ process ေတြက System Memory နဲ႕သာ သက္ဆိုင္ပါတယ္။ တစ္ခုေတာ႕ ရွိတယ္ မလုိအပ္လုိ႕ Virtual Memory မွာ သိမ္းထားတဲ႕ process ေတြ လုိလာခဲ႔ရင္ေတာ႔ ဆြဲယူအသုံးျပဳပါတယ္။ Virtual Memory တိုးၿမင့္မယ္ဆိုရင္ေတာ့ system configuration ကေန၀င္ေရာက္လုပ္ေဆာင္ႏိုင္ပါတယ္။ ( Virtual Memory တုိးနည္းကုိ တင္ျပေပးခဲ႔ျပီး ျဖစ္ပါတယ္။)

Virtual Memory အလုပ္လုပ္ပံု
Virtual Memory ကိုကေတာ္တို႔ HDD ရဲ႕ အစိတ္အပိုင္းတစ္ခု အၿဖစ္ အသံုးၿပဴပါတယ္၊ ဘာအတြက္လဲဆိုရင္ system က အခုေလာေလာဆယ္ process လုပ္ဖို႔မလိုေသးတဲ႔ application data နဲ႔ instruction ေတြအတြက္ ၿဖစ္ပါတယ္။ Program တစ္ခုဟာ process လုပ္ေနတဲ႔ အခ်ိန္အတြင္းမွာ system သည္ HDD မွ main memory (system memory) ဆီကိုကူးယူလိုက္ပါတယ္။ ဒါေၾကာင္႔ system သည္ ကူးယူထားတဲ႔ resources ကို CPU အေနနဲ႔လုပ္ေဆာင္ျပီး တြက္ထုတ္ပါတယ္။ system memory ၿပည့္သြားတာနဲ႔ တၿပိဴင္နက္။ system သည္ ေနာက္ထပ္ တစ္စံုတစ္ရာ ထပ္လုပ္ေဆာင္ရန ္မလိုေသးသည့္ data and instruction ေတြကို Virtual Memory ဆီကို ေရြ႔ထား လိုက္ပါတယ္။ ဒါေၾကာင့္ system ဟာေနာက္ထပ္ application data ႏွင္႕ instruction ေတြကို ေနာက္ထပ္လုပ္ေဆာင္ဖို့အတြက္ (system memory)Main memory ဆီကိုကူးယူလိုက္ပါတယ္။ Virtual Memory ထဲမွာရွိတဲ႔ data and instruction ေတြကို ေနာက္ထပ္တဖန္ထပ္လုပ္ဖို့ လိုလာတဲ႔အခါမွာ system ဟာပထမဆံုး main memory ကိုေနရာလြတ္မလြတ္ ၾကည့္လိုက္ပါတယ္..တကယ္လို႕ေနရာလြတ္ရွိတယ္ဆိုရင္ main memory ဆီကိုကူးယူလိုက္ပါတယ္..တကယ္လို႕မက်န္ေတာ့ဘူးဆိုရင္အခ်ိဴ့ေသာ ထပ္လုပ္ဖို႕မလိုတဲ႔ data and instructionေတြကို Virtual Memory ဆီကို ကူးယူ လိုက္ပါတယ္… တစ္ခါထပ္ၿပီး လုပ္ေဆာင္ဖို့လိုအပ္တဲ႔ data and instructionေတြကို Virtual Memoryကေန main memory ဆီကို ကူးယူလိုက္ပါတယ္။
Virtual Memory အရမ္းနည္းေနၿခင္း (သို႕) အရမ္းမ်ားေနၿခင္းဟာ သိပ္မေကာင္းပါဘူး။ တကယ္္လို႕ အရမ္းနည္းေန တယ္ဆိုရင္ OS ဟာVirtual Memory အရမ္းနည္းေနေၾကာင္း error ၿပပါလိမ့္မယ္။ ဘာေၾကာင့္လဲဆိုရင္ system memory ရဲ႕ တခ်ိဳ႕ေသာ အစိတ္အပိုင္းေတြဟာ OS Kernel (OS Kernel ဆုိတာ မိမိ ကြန္ပ်ဴတာရဲ႕ ဗဟုိအစိတ္အပုိင္း တစ္ခု ျဖစ္ပါတယ္။ သူက Computer Hardware ေတြကုိ တုိက္ရုိက္ထိန္းခ်ဴပ္တဲ႕ အေရးၾကီးတဲ႕ အစိတ္အပုိင္းျဖစ္ပါတယ္. အက်ယ္ ကုိယ္တုိင္ ဆက္ေလ႔လာရန္) ကိုသိမ္းဆည္းဖို႕အတြက္ အသံုးၿပဴၿခင္း ခံလိုက္ရလို႕ၿဖစ္ပါတယ္။ ဘာလို႕အသံုးၿပဴရတာလဲဆိုေတာ့OS Kernel ကိုmain memory ထဲမွာ တစ္ခ်ိန္လံုး ထိမ္းသိမ္းထားဖို႕ လိုအပ္တဲ႔ အတြက္ၿဖစ္ပါတယ္။ ဒါေၾကာင့္ System ဟာ ဆိုရင္ လက္ရွိအသံုးၿပဴဖို႕ မလိုအပ္ေသးတဲ႔ data and instruction ေတြကို main memory ၿပည့္သြားတဲ႔အခါမွာ သိမ္းဆည္းထားဖို႕ ေနရာလြတ္ေတြ လိုအပ္ပါတယ္။ Virtual Memory ၾကီးလြန္းတာလည္း intensive application ေတြကိုေထာက္ပံ႕ ေပးေနပါတယ္။ ဒါလည္းမေကာင္းပါဘူး။ ဘာေၾကာင့္လဲဆိုေတာ့ HDD ရဲ႔ ေနရာေတြကို မယူရင္ေတာင္မွ performance lagging ေတြကိုၿဖစ္ေစလို႕ပါ။ system ဟာဆိုရင္ application data and instruction ေတြကို Virtual Memory နဲ႔ system memory ေတြၾကားမွာ အသြားအၿပန္ လုပ္ေပးဖို့ လိုအပ္ပါတယ္။ ဒါေၾကာင့္ Virtual Memory ရဲ႕ size ကို ပံုမွန္ စံအတုိင္း ရွိဖို႕အတြက္ တြက္ခ်က္ဖို့လိုအပ္ပါတယ္။

ဘယ္လိုတြက္ရမလဲဆိုေတာ့

256 MB of RAM (Main Memory) * 1.5 = 384 MB for Virtual Memory ဆိုတဲ႔ပံုေသနည္းနဲ႔တြက္ခ်က္သိရွိႏိုင္ပါတယ္။

ဥပမာ .
မိမိ ကြန္ပ်ဴတာမွာ Physical Memory က 512 MB ဆုိက္ထားတယ္ဆုိပါစုိ႔။ ေအာက္ပါအတုိင္း တြက္လုိပါ..

512* 1.5= 786

Performance မွာ ေအာက္ပါအတုိင္းေတြ႕ရပါမည္။

CODE
Initial Size (MB): 786
Maximum Size (MB) : 1500

Virtual Memory တုိးနည္းကုိ ပုံႏွင္႔တကြ ဒီေနရာမွာ အေသးစိတ္တင္ျပေပးခဲ႔ျပီး ျဖစ္ပါတယ္။

1 comments:

Zan said...

Bro, your posts are great! I have a question... I understand you get the minimum Virtual Memory by 1.5 times of the System Memory...

My question is how did you get the maximum Virtual Memory?

Because I have a small hard disk and I don't want to reserve more than necessary disk space.

Post a Comment

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Top WordPress Themes