সিস্টেম মেমরিতেও ফ্র্যাগমেন্টেশন ঘটে (RAM)। অ্যাপ্লিকেশন এবং সিস্টেম প্রক্রিয়াগুলি অ-সংলগ্ন ব্লকগুলিতে মেমরি বরাদ্দ এবং ব্যবহার করে, কারণ বিদ্যমান মেমরি রেজিস্টারগুলি ব্যবহার করা হয় এবং পুনরায় ব্যবহার করা হয়৷
রাম কি খন্ডিত হতে পারে?
মেমরি পেজিং অভ্যন্তরীণ ফ্র্যাগমেন্টেশন তৈরি করে কারণ এত সঞ্চয়স্থানের প্রয়োজন হোক বা না হোক একটি সম্পূর্ণ পৃষ্ঠা ফ্রেম বরাদ্দ করা হবে। মেমরি বরাদ্দ নিয়ন্ত্রণের নিয়মের কারণে, কখনও কখনও প্রয়োজনের চেয়ে বেশি কম্পিউটার মেমরি বরাদ্দ করা হয়৷
মেমোরি ফ্র্যাগমেন্টেশনের কারণ কী?
মেমরি ফ্র্যাগমেন্টেশন হল যখন আপনার মেমরির বেশিরভাগ অংশ অসংলগ্ন ব্লক বা খণ্ডগুলি-এ বরাদ্দ করা হয় - আপনার মোট মেমরির একটি ভাল শতাংশ বরাদ্দ না থাকে, কিন্তু অব্যবহৃত হয় সবচেয়ে সাধারণ পরিস্থিতিতে জন্য. এর ফলে মেমরির ব্যতিক্রম বা বরাদ্দ ত্রুটি দেখা যায় (যেমন malloc শূন্য দেয়)।
মেমরি ফ্র্যাগমেন্টেশন কি খারাপ?
সাধারণত c++ প্রোগ্রামিং মেমরি ফ্র্যাগমেন্টেশনে কোনো সমস্যা নেই। আপনি সর্বদা ভার্চুয়াল মেমরি দেখতে পান এবং আপনি সর্বদা সংলগ্ন ভার্চুয়াল মেমরি অংশগুলি বরাদ্দ করেন। শুধুমাত্র একটি জিনিস যা আপনি লক্ষ্য করতে পারেন যে ক্রমানুসারে বরাদ্দ করা অংশগুলি মেমরিতে অগত্যা সংলগ্ন নয়৷
আপনি কিভাবে মেমরি ফ্র্যাগমেন্টেশন প্রতিরোধ করবেন?
আপনি যদি ঠিক সেই জায়গাগুলিকে আলাদা করতে পারেন যেখানে আপনার বড় ব্লকগুলি বরাদ্দ করার সম্ভাবনা রয়েছে, আপনি (উইন্ডোজে) মেমরি ম্যানেজার দিয়ে যাওয়ার পরিবর্তে সরাসরি VirtualAlloc এ কল করতে পারেন। এই এড়াবেস্বাভাবিক মেমরি ম্যানেজারের মধ্যে ফ্র্যাগমেন্টেশন।