ম্যামাপ এবং মালোকের মধ্যে পার্থক্য

Anonim

mmap বনাম malloc- এর উপস্থিতিতে মেমরি বরাদ্দ করার জন্য এই পয়েন্টগুলি রয়েছে।

সি মান লাইব্রেরি উপস্থিত ফাংশন একটি সেট মাধ্যমে C প্রোগ্রামিং ভাষা মধ্যে মেমরি বরাদ্দ করতে সি এবং এ পয়েন্ট মধ্যে ডায়নামিক মেমরি আছে। এর মধ্যে একটি হল malloc, যা মেমরি বরাদ্দকরণকে বোঝায়। ইউনিক্স সিস্টেমে এমএমএপি রয়েছে, যা একটি মেমরি মেমড সিস্টেমকে বোঝায় যা তার নিজস্ব অনন্য I / O এর সাথে আসে এই দুটি (mmap এবং malloc) মুখ মান একই ফাংশন সঞ্চালন হবে কিন্তু আরও পরীক্ষা কিছু পার্থক্য প্রকাশ করে। এই পার্থক্য, যে কার্যকারিতা থেকে উঠা, নীচের রূপরেখা হয়

পার্থক্য

প্রথম বন্ধ, এটি প্রমাণ করা গুরুত্বপূর্ণ যে কোনও প্রমাণ আছে কিনা তা নির্ভর করে উপলব্ধ স্মৃতির গুরুত্বপূর্ণ স্টিংলিং। এই মেমরি ব্যবস্থাপনা বিরুদ্ধে প্রোগ্রাম এর কর্মক্ষমতা পরিমাপ মাধ্যমে সম্পন্ন হয়

প্রধান মেমরি বরাদ্দ ইন্টারফেস হল malloc এটি সি লাইব্রেরির বৃহত্তম। এটি অন্তর্ভুক্ত ব্যবস্থাপনা কোড অংশ mmap হয়। যখন malloc চলছে, এটি সমস্ত উপলব্ধ সিস্টেম সুবিধাগুলি সংগ্রহ করে। অতিরিক্ত সিস্টেমের সুবিধাগুলি কার্নেলের মাধ্যমে চালু করা যায়, যা স্মৃতি ব্যবস্থাপনা কৌশলগুলির মধ্যে একটি যা মেমরি বরাদ্দের সম্ভাব্যতা নিশ্চিত করার জন্য সিস্টেমগুলি ব্যবহার করে। যদিও প্রক্রিয়াটি সহজবোধ্য নয়, এবং সাধারণ প্রোগ্রামগুলি তৈরি করা থেকে বিরত থাকার একমাত্র কারণের জন্য জটিলতা তৈরি করা হয়েছে যা মেমরির বরাদ্দকরণকে অসঙ্গত করতে পারে এবং এর ফলে দরিদ্র কার্যকারিতা তৈরি হয়।

--২ ->

অন্যদিকে 'এমএমএপি' একটি সিস্টেম কল যা চার্জ নেয় এবং একটি অ্যাপ্লিকেশন এর ঠিকানাতে একটি অব্যবহৃত এবং সংলগ্ন এলাকা খুঁজতে কার্নেলকে অনুরোধ করে যা বেশ কয়েকটি পৃষ্ঠার মানচিত্রের জন্য যথেষ্ট পরিমাণে মঞ্জুরি দেয় মেমরির ভার্চুয়াল মেমরি ম্যানেজমেন্ট স্ট্রাকচার তৈরিরও রয়েছে যা কার্যত একটি সেগফ্লট নাও হতে পারে।

Malloc সাধারণত মেমরি ব্যবস্থাপনা প্রক্রিয়া অধিকাংশ কাজ করে। ইভেন্টে প্রোগ্রামটি অতিরিক্ত মেমরি প্রয়োজন, এটি ওএস থেকে ধার করা হয়। অন্য দিকে Mmap একটি কনটেক্সট সুইচ ব্যবহার করে যা কার্নেল জমিতে পরিবর্তিত হয়।

এমএএমএপি ব্যবহারের বিরোধিতা করে সিস্টেমটি চলতে থাকা কোনও অ্যাপ্লিকেশনের মেমরি বরাদ্দের জন্য Malloc সবচেয়ে উপযুক্ত। এটি অনুমোদিত হতে পারে, বিশেষ ক্ষেত্রে তুলনায় অন্যান্য ডিফল্ট হিসাবে ঘটতে প্রয়োজন হয় কি।

অ্যাপ্লিকেশন দ্বারা প্রদত্ত প্রতিক্রিয়া বাড়ানোর জন্য এমএমপি ব্যবহার করা যেতে পারে। তবে এটি যুক্তিযুক্ত নয় কারণ এটি পৃষ্ঠাগুলিতে কিছু বাইটের বলি প্রদান করে যাতে অ্যাপ্লিকেশন সহজভাবে চালাতে পারে। যদিও ডেটা কন্টেন্টটি শুরুতে ছোট মনে হতে পারে, তবে এটি এক্সপ্লোপল করার সময় অনেক অ্যাপ্লিকেশনগুলি চালানো যেতে পারে প্রভাবটি সিস্টেমটিকে আরও ধীর গতির হতে পারে।

সম্পদের কার্যকারিতা এবং ব্যবহারের পরিমাপ করার পরে, সিস্টেমের চলমান সমস্ত অ্যাপ্লিকেশনের মাধ্যমে ডাটা ব্যবহারের একটি পুঙ্খানুপুঙ্খ মূল্যায়ন করা উচিত।চলমান অ্যাপ্লিকেশনগুলির জীবনকাল দেখানো যেতে পারে যদি এটি ভাল হতে পারে।

মেমরি বরাদ্দের জন্য এমএমএপি এর ব্যবহার দুর্বলতার সাথে আসে যে অংশগুলি মধ্যে ডেটা বরাদ্দকরণ ও ডিএলোক্যান্স ব্যয়বহুল। এটি কারণ অনেকগুলি এলাকায় বিভক্ত করা হয় এবং এছাড়াও সিস্টেম কলগুলি তৈরি করে mmap অস্বীকার করে।

এমএমএপি malloc উপর সুবিধাজনক কারণ mmap দ্বারা ব্যবহৃত স্মৃতি অবিলম্বে OS ফিরে হয় একটি ডেটা সেগমেন্ট বিরতি না থাকলে malloc দ্বারা ব্যবহৃত স্মৃতিটি কখনোই ফিরে আসে না এই মেমরি বিশেষভাবে পুনরায় ব্যবহার করা রাখা হয়।

সারসংক্ষেপ

'ম্যালোক' মূল মেমরি বরাদ্দকরণ পয়েন্ট

একটি এমএমএপ সিস্টেম কলগুলির জন্য ব্যবহৃত হয় এবং অ্যাপ্লিকেশন অ্যাড্রেসগুলিতে অব্যবহৃত অঞ্চলগুলি খুঁজে পেতে একটি কার্নেলের অনুরোধ করে, যা বিভিন্ন মেমরি পেজের ম্যাপিং মঞ্জুর করতে পারে

Mmap এর জন্য সুপারিশ করা হয় না মেমরি বরাদ্দ করা হিসাবে এটি উপলব্ধ মেমরিটি বিভাজক এবং সিস্টেম কল করতে পারবেন না malloc উপর mmap একটি সুবিধা মেমরি প্রাপ্যতা, malloc মেমরির বিরোধিতা, যা পুনরায় ব্যবহার করা হয়