એમએમએપ અને મેલ્લોક વચ્ચે તફાવત

Anonim

mmap વિ malloc માં હાજર C પ્રોગ્રામિંગ ભાષામાં મેમરીની ફાળવણી માટે આ બિંદુઓ છે.

C માં ગતિશીલ મેમરી અને C ધોરણ પુસ્તકાલયમાં હાજર કાર્યોના સમૂહ દ્વારા સી પ્રોગ્રામિંગ ભાષામાં મેમરીની ફાળવણી માટે આ બિંદુઓ છે. તેમાંના એક malloc છે, જે મેમરી ફાળવણીને સંદર્ભ આપે છે. UNIX સિસ્ટમમાં એમએમએપીપી છે, જે મેમરી મેપ સિસ્ટમનો સંદર્ભ આપે છે જે તેના પોતાના અનન્ય I / O સાથે આવે છે. આ બે (એમએમએપ અને મૉલકોક) ફેસ વેલ્યુ પર સમાન કાર્ય કરશે, પરંતુ વધુ ચકાસણીથી કેટલાક તફાવતો છતી થાય છે. આ મતભેદો, કાર્યક્ષમતામાંથી ઉદભવે છે, નીચે દર્શાવેલ છે.

તફાવતો

પ્રથમ બોલ, તે સ્થાપિત કરવા માટે મહત્વપૂર્ણ છે કે ત્યાં કોઈ પુરાવો છે જે દર્શાવે છે કે ત્યાં ઉપલબ્ધ મેમરીમાં નોંધપાત્ર દ્વિધામાં છે. આ મેમરી મેનેજમેન્ટ સામે પ્રોગ્રામના પ્રદર્શનના માપ દ્વારા કરવામાં આવે છે.

મુખ્ય મેમરી ફાળવણી ઇન્ટરફેસ malloc છે. આ સી લાઇબ્રેરીમાં સૌથી મોટું છે. તે સમાયેલ મેનેજમેન્ટ કોડ ભાગ mmap છે. જ્યારે malloc ચાલી રહ્યું હોય, ત્યારે તે બધી ઉપલબ્ધ સિસ્ટમ સવલતો એકઠી કરે છે. વધારાની સિસ્ટમ સવલતો કર્નલ દ્વારા જમાવટ કરી શકાય છે, જે મેમરી મેનેજમેન્ટ વ્યૂહરચનાઓ પૈકી એક છે જે સિસ્ટમને ખાતરી કરવા માટે વાપરે છે કે ત્યાં સંતોષકારક મેમરી ફાળવણી છે. આ પ્રક્રિયા સીધી સીધી નથી, અને લોકોને સરળ પ્રોગ્રામ્સ બનાવવાથી અટકાવવાનું એકમાત્ર કારણસર જટીલ કરવામાં આવે છે, જે મેમરી ફાળવણીને અવરોધિત કરી શકે છે અને તેથી નબળી કામગીરી કરી શકે છે.

બીજી બાજુ 'એમએમએપી' એ એક સિસ્ટમ કોલ છે જે ચાર્જ લે છે અને એપ્લિકેશનના સરનામાંમાં ઉપયોગમાં લેવાયેલી અને નજીકના પ્રદેશને શોધી કાઢવા માટે કર્નલને વિનંતી કરે છે જે ઘણા બધા પાનાના મેપિંગ માટે પરવાનગી આપવા માટે મોટું છે મેમરી ત્યાં વર્ચ્યુઅલ મેમરી મેનેજમેન્ટ સ્ટ્રક્ચર્સનું સર્જન પણ છે, જે અસરકારક રીતે સીગફોલ્ટમાં પરિણમી શકે નહીં.

માલોક સામાન્ય રીતે મોટાભાગની મેમરી મેનેજમેન્ટ પ્રક્રિયામાં કામ કરે છે. ઇવેન્ટમાં કાર્યક્રમને વધારાની મેમરીની આવશ્યકતા છે, આ OS માંથી ઉછીનું છે બીજી બાજુ Mmap એ સંદર્ભ સ્વીચનો ઉપયોગ કરે છે જે કર્નલ જમીનમાં ફેરવે છે.

એમએમએપીએપીના ઉપયોગની વિરુદ્ધમાં સિસ્ટમ પર ચાલી રહેલા કોઈપણ એપ્લિકેશનમાં મેમરીને ફાળવવા માટે માલૉક સૌથી યોગ્ય છે. વિશેષ કેસો સિવાય, જ્યારે તે મંજૂર હોય ત્યારે ડિફૉલ્ટ રૂપે થવું જરૂરી છે.

એપ્લિકેશન્સ દ્વારા આપવામાં આવેલા પ્રતિસાદને ઝડપી બનાવવા માટે Mmap નો ઉપયોગ કરી શકાય છે. જોકે, તે સલાહભર્યું નથી કારણ કે તે પૃષ્ઠ પર કેટલાક બાઇટ્સનો બલિદાન પૂરો કરે છે જેથી એપ્લિકેશન સરળતાથી ચાલે. તેમ છતાં ડેટા સામગ્રી શરૂઆતમાં નાનો લાગે શકે છે, અસંખ્ય એપ્લિકેશન્સ ચલાવવાની ઇચ્છા હોય ત્યારે તે વિસ્તરે છે, અસરકારક રીતે સિસ્ટમને ધીમું પણ કરી શકે છે.

સ્રોતોની કામગીરી અને ઉપયોગને માપવા પછી, સિસ્ટમ પર ચાલી રહેલ તમામ એપ્લિકેશનો દ્વારા ડેટા વપરાશનું સંપૂર્ણ મૂલ્યાંકન કરવું જોઈએ.જો ચાલી રહેલા એપ્લિકેશન્સના જીવનકાળ બતાવી શકાય તો તે વધુ સારું બની શકે છે.

મેમરી ફાળવવા માટે એમએમએપનો ઉપયોગ ગેરલાભ સાથે આવે છે કે હિસ્સામાં ડેટાનું ફાળવણી અને ડિલોકેશન ખર્ચાળ છે. આનો અર્થ એ છે કે ડેટા અસંખ્ય વિસ્તારોમાં વિભાજિત છે, અને સિસ્ટમ કોલ્સ બનાવવાથી એમએમએપને નકારી કાઢે છે.

Mmap malloc પર ફાયદાકારક છે કારણ કે mmap દ્વારા ઉપયોગમાં લેવાતી મેમરી તરત જ OS પર પાછો ફરે છે. મૉલૉક દ્વારા ઉપયોગમાં લેવાતા મેમરીનો ક્યારેય પાછો નહીં આવે ત્યાં સુધી ડેટા સેગમેન્ટ બ્રેક નથી. આ મેમરી ખાસ ફરીથી ઉપયોગમાં લેવા માટે રાખવામાં આવે છે.

સારાંશ

'મેલોક' એ મુખ્ય મેમરી ફાળવણી બિંદુ

એ એમએમએપી સિસ્ટમ કોલ્સ માટે વપરાય છે અને ઉપયોગકર્તા વિસ્તારોમાં એપ્લિકેશન સરનામાંઓ શોધવા માટે કર્નલની વિનંતી કરે છે, જે કેટલાક મેમરી પૃષ્ઠોના મેપિંગને સમાવી શકે છે

Mmap માટે ભલામણ કરાયેલી નથી મેમરીની ફાળવણી, કારણ કે તે ઉપલબ્ધ મેમરીને નાંખે છે અને સિસ્ટમ કોલ્સ કરી શકતા નથી

મેલકોક ઉપર એમએમએપનો લાભ એ મેમરીની પ્રાપ્યતા છે, જે મેલકોક મેમરીનો વિરોધ કરે છે, જે ફરીથી ઉપયોગમાં લેવાય છે.