স্থির আকারের ব্লক সহ, আপনি যা বর্ণনা করেছেন তা একটি নিখরচায় তালিকা । নিম্নলিখিত মোচড় সহ এটি একটি খুব সাধারণ কৌশল: ফ্রি ব্লকগুলির তালিকা ফ্রি ব্লকগুলিতে নিজেরাই সংরক্ষণ করা হয়। সি কোডে, এটি দেখতে এটির মতো হবে:
static void *alloc_ptr = START_OF_BIG_SEGMENT;
static void *free_list_head = NULL;
static void *
allocate(void)
{
void *x;
if (free_list_head == NULL) {
x = alloc_ptr;
alloc_ptr = (char *)alloc_ptr + SIZE_OF_BLOCK;
} else {
x = free_list_head;
free_list_head = *(void **)free_list_head;
}
return x;
}
static void
release(void *x)
{
*(void **)x = free_list_head;
free_list_head = x;
}
এটি যতক্ষণ না সমস্ত বরাদ্দকৃত ব্লকগুলির আকার একই থাকে এবং সেই আকারটি পয়েন্টারের আকারের একাধিক, যাতে প্রান্তিককরণ সংরক্ষণ করা হয়। বরাদ্দ এবং অবলম্বন স্থির সময় (যা মেমরির অ্যাক্সেস এবং প্রাথমিক সংযোজনের মতো ধ্রুবক সময় হিসাবে - একটি আধুনিক কম্পিউটারে, একটি মেমরি অ্যাক্সেসে ক্যাশে মিস এবং এমনকি ভার্চুয়াল মেমরি জড়িত থাকতে পারে, সুতরাং ডিস্ক অ্যাক্সেসগুলি, তাই "স্থির সময়" বেশ বড় হতে পারে)। কোনও মেমরির ওভারহেড নেই (অতিরিক্ত প্রতি-ব্লক পয়েন্টার বা এর মতো জিনিস নেই; বরাদ্দকৃত ব্লকগুলি সামঞ্জস্যপূর্ণ)। এছাড়াও, বরাদ্দ পয়েন্টার কেবলমাত্র যদি একটি সময়ে, অনেকগুলি ব্লক বরাদ্দ করতে হয় তবে একটি নির্দিষ্ট বিন্দুতে পৌঁছায়: যেহেতু বরাদ্দটি নিখরচায় তালিকা ব্যবহারের পছন্দ করে, কেবলমাত্র বর্তমান পয়েন্টারের নীচের স্থানটি ক্লক পূর্ণ হলে বরাদ্দ পয়েন্টারটি বাড়ানো হয়। এই বুদ্ধিতে, প্রযুক্তি.
কমেএকটি মুক্তির পরে বরাদ্দ পয়েন্টারটি আরও জটিল হতে পারে, যেহেতু বিনামূল্যে ব্লকগুলি কেবলমাত্র নিখরচায় অনুসরণ করেই নির্ভরযোগ্যতার সাথে চিহ্নিত করা যায়, যা অবিশ্বাস্য ক্রমে তাদের মধ্য দিয়ে যায়। যদি সম্ভব হয় যখন বড় বিভাগের আকার হ্রাস করা আপনার পক্ষে গুরুত্বপূর্ণ, আপনি আরও ওভারহেড সহ একটি বিকল্প কৌশল ব্যবহার করতে চাইতে পারেন: যে কোনও দুটি বরাদ্দকৃত ব্লকের মধ্যে আপনি একটি "গর্ত" রেখেছেন। গর্তগুলি একটি দ্বিগুণ-লিঙ্কযুক্ত তালিকার সাথে মেমরি ক্রমে একত্রিত হয়। আপনার কোনও গর্তের জন্য একটি ডেটা ফর্ম্যাট প্রয়োজন যেমন আপনি গর্তের শুরু ঠিকানাটি কোথায় তা শেষ করে তা জানতে পেরে এবং গর্তের আকারটি যদি আপনি জানেন যে মেমরিতে গর্তটি কোথায় শুরু হয়। তারপরে, আপনি যখন কোনও ব্লক প্রকাশ করেন, আপনি একটি গর্ত তৈরি করেন যা আপনি পরবর্তী এবং পূর্ববর্তী গর্তগুলির সাথে একত্রিত হয়ে পুনরায় তৈরি করে (এখনও ধ্রুবক সময়ে) সমস্ত গর্তের আদেশযুক্ত তালিকা। ওভারহেড তখন বরাদ্দকৃত ব্লক প্রতি প্রায় দুটি পয়েন্টার আকারের শব্দ হয়; তবে, সেই দামে, আপনি একটি "চূড়ান্ত গর্ত" এর উপস্থিতিটি বিশ্বস্তভাবে সনাক্ত করতে পারেন, অর্থাত্ বড় অংশের আকার হ্রাস করার একটি উপলক্ষ।
সম্ভাব্য বিভিন্ন প্রকরণ রয়েছে। একটি ভাল প্রারম্ভিক কাগজ ডায়নামিক স্টোরেজ বরাদ্দ: উইলসন এট দ্বারা একটি জরিপ এবং সমালোচনা পর্যালোচনা ।