কী পার্থক্য - স্ট্যাটিক বনাম ডায়নামিক মেমরি বরাদ্দ
প্রোগ্রামিং-এ, কম্পিউটেশনাল ডেটা সংরক্ষণ করা প্রয়োজন। এই তথ্যগুলি মেমরিতে সংরক্ষণ করা হয়। কম্পিউটার প্রোগ্রামিংয়ে ডেটা সংরক্ষণের জন্য মেমরি অবস্থানগুলি ভেরিয়েবল হিসাবে পরিচিত। ভেরিয়েবলের একটি নির্দিষ্ট ডেটা টাইপ আছে। অতএব, প্রোগ্রামগুলি চালানোর জন্য মেমরি বরাদ্দ করা হয়। মেমরি দুটি উপায়ে বরাদ্দ করা যেতে পারে। সেগুলি হল স্ট্যাটিক মেমরি বরাদ্দ এবং ডায়নামিক মেমরি বরাদ্দ। স্ট্যাটিক মেমরি বরাদ্দকরণে, একবার মেমরি বরাদ্দ করা হলে তা পরিবর্তন করা যায় না। স্মৃতি পুনঃব্যবহারযোগ্য নয়। কিন্তু গতিশীল মেমরি বরাদ্দকরণে, একবার মেমরি বরাদ্দ করা হলে তা পরিবর্তন করা যেতে পারে।স্ট্যাটিক এবং ডাইনামিক মেমরি বরাদ্দের মধ্যে মূল পার্থক্য হল যে স্ট্যাটিক মেমরি বরাদ্দের মধ্যে একবার মেমরি বরাদ্দ করা হলে, মেমরির আকার ঠিক করা হয় যখন ডায়নামিক মেমরি বরাদ্দ করা হয়, একবার মেমরি বরাদ্দ করা হলে, মেমরির আকার পরিবর্তন করা যেতে পারে।
স্ট্যাটিক মেমরি বরাদ্দ কি?
স্ট্যাটিক মেমরি বরাদ্দে, বরাদ্দ করা মেমরি স্থির করা হয়। একবার মেমরি বরাদ্দ করা হলে, এটি পরিবর্তন করা যাবে না। স্মৃতিশক্তি বাড়ানো বা কমানো যায় না। উদাহরণস্বরূপ, সি ল্যাঙ্গুয়েজে যদি প্রোগ্রামার int x লিখে, যার মানে ভেরিয়েবলটি একটি পূর্ণসংখ্যার মান সংরক্ষণ করতে পারে। বাইটের সংখ্যা কম্পিউটারের উপর নির্ভর করে। এছাড়াও অ্যারে হতে পারে. যেমন int x [5]; এই x একটি অ্যারে যা একই ধরণের ডেটার একটি ক্রম সংরক্ষণ করতে পারে। এটি পাঁচটি পূর্ণসংখ্যা উপাদান সংরক্ষণ করতে পারে। এটি পাঁচটির বেশি উপাদান সংরক্ষণ করতে পারে না। জাভাতে, int arr=new int[5] হিসাবে একটি অ্যারে তৈরি করা যেতে পারে; অ্যারে 'arr' 5টি পূর্ণসংখ্যা মান সঞ্চয় করতে পারে এবং এর বেশি সঞ্চয় করতে পারে না।
চিত্র 01: মেমরি বরাদ্দকরণ পদ্ধতি
স্ট্যাটিক মেমরি বরাদ্দকরণে, একবার ভেরিয়েবলগুলি বরাদ্দ করা হলে, তারা স্থায়ী থাকে। প্রাথমিক বরাদ্দের পরে, প্রোগ্রামার মেমরির আকার পরিবর্তন করতে পারে না। যদি প্রোগ্রামার একটি অ্যারে বরাদ্দ করে যা 10টি উপাদান সংরক্ষণ করতে পারে, তবে নির্দিষ্ট পরিমাণের চেয়ে বেশি মান সংরক্ষণ করা সম্ভব নয়। প্রোগ্রামার যদি প্রাথমিকভাবে এমন একটি অ্যারে বরাদ্দ করে যা 10টি উপাদান ধারণ করতে পারে, কিন্তু শুধুমাত্র 5টি উপাদানের প্রয়োজন হয়, তাহলে একটি মেমরির অপচয় হয়। সেই মেমরির আর প্রয়োজন নেই, কিন্তু মেমরির পুনরায় ব্যবহার করাও সম্ভব নয়।স্ট্যাটিক মেমরি বরাদ্দ স্থির কিন্তু বাস্তবায়ন সহজ এবং সহজ, এবং এটি দ্রুত।
ডাইনামিক মেমরি অ্যালোকেশন কী?
কখনও কখনও মেমরির আকার পরিবর্তন করা প্রয়োজন। তাই মেমরি গতিশীলভাবে বরাদ্দ করা যেতে পারে. তথ্য উপাদানের সন্নিবেশ এবং মুছে ফেলার উপর নির্ভর করে, মেমরি বৃদ্ধি বা সঙ্কুচিত হতে পারে। এটি গতিশীল মেমরি বরাদ্দ হিসাবে পরিচিত।
C ভাষায়, stdlib.h হেডার ফাইলে, ডায়নামিক মেমরি বরাদ্দের জন্য চারটি ফাংশন রয়েছে। তারা হল calloc, malloc, realloc এবং free. ফাংশন malloc() একটি প্রয়োজনীয় আকারের বাইট বরাদ্দ করে এবং একটি অকার্যকর পয়েন্টার প্রদান করে, বরাদ্দকৃত মেমরির প্রথম বাইট নির্দেশ করে। ফাংশন calloc() বাইটের একটি প্রয়োজনীয় আকার বরাদ্দ করে এবং সেগুলিকে শূন্য করে শুরু করে। তারপর মেমরিতে একটি অকার্যকর পয়েন্টার ফেরত দেয়। বিনামূল্যে () ফাংশন বরাদ্দ করা মেমরি পুনরায় বরাদ্দ করতে ব্যবহৃত হয়। এবং realloc ফাংশন পূর্বে বরাদ্দ করা মেমরি পরিবর্তন করতে পারে। calloc বা malloc ব্যবহার করে মেমরি বরাদ্দ করার পরে, মেমরির আকার স্থির করা হয়, কিন্তু তারা realloc ফাংশন ব্যবহার করে বাড়ানো বা হ্রাস করা যেতে পারে।জাভাতে, সংগ্রহগুলি ডায়নামিক মেমরি বরাদ্দের জন্য ব্যবহার করা যেতে পারে।
ডাইনামিক মেমরি বরাদ্দের প্রধান সুবিধা হল এটি মেমরি সংরক্ষণ করে। প্রোগ্রামার মেমরি বরাদ্দ করতে পারে বা প্রয়োজনে মেমরি ছেড়ে দিতে পারে। সঞ্চালনের সময় মেমরি পুনরায় বরাদ্দ করা যেতে পারে এবং প্রয়োজন না হলে মেমরি মুক্ত করতে পারে। স্থিতিশীল মেমরি বরাদ্দের চেয়ে গতিশীল মেমরি বরাদ্দকরণও কার্যকর। একটি অসুবিধা হল ডায়নামিক মেমরি বরাদ্দ বাস্তবায়ন করা জটিল৷
স্ট্যাটিক এবং ডায়নামিক মেমরি বরাদ্দের মধ্যে মিল কী?
- দুটিই মেমরি অ্যালোকেশন মেকানিজম।
- উভয়ই প্রোগ্রামার দ্বারা ম্যানুয়ালি প্রয়োগ করা উচিত।
স্ট্যাটিক এবং ডায়নামিক মেমরি বরাদ্দের মধ্যে পার্থক্য কী?
স্ট্যাটিক বনাম ডায়নামিক মেমরি বরাদ্দ |
|
স্ট্যাটিক মেমরি বরাদ্দকরণ মেমরি বরাদ্দ করার একটি পদ্ধতি, এবং একবার মেমরি বরাদ্দ করা হলে তা ঠিক করা হয়। | ডাইনামিক মেমরি বরাদ্দকরণ মেমরি বরাদ্দ করার একটি পদ্ধতি, এবং একবার মেমরি বরাদ্দ করা হলে তা পরিবর্তন করা যেতে পারে। |
পরিবর্তন | |
স্ট্যাটিক মেমরি বরাদ্দকরণে, প্রাথমিক বরাদ্দের পরে আকার পরিবর্তন করা সম্ভব নয়। | ডাইনামিক মেমরি বরাদ্দকরণে, মেমরিটি সেই অনুযায়ী ছোট বা সর্বাধিক করা যেতে পারে। |
বাস্তবায়ন | |
স্ট্যাটিক মেমরি বরাদ্দ কার্যকর করা সহজ৷ | ডাইনামিক মেমরি বরাদ্দ বাস্তবায়ন করা জটিল৷ |
গতি | |
স্ট্যাটিক মেমরিতে, বরাদ্দ এক্সিকিউশন গতিশীল মেমরি বরাদ্দের চেয়ে দ্রুত। | ডাইনামিক মেমরিতে, অ্যালোকেশন এক্সিকিউশন স্ট্যাটিক মেমরি অ্যালোকেশনের চেয়ে ধীর হয়। |
মেমোরি ইউটিলাইজেশন | |
স্ট্যাটিক মেমরি বরাদ্দকরণে, অব্যবহৃত মেমরি পুনরায় ব্যবহার করা যাবে না। | ডাইনামিক মেমরি বরাদ্দ মেমরি পুনরায় ব্যবহার করার অনুমতি দেয়। প্রয়োজনে প্রোগ্রামার আরও মেমরি বরাদ্দ করতে পারে। প্রয়োজনে তিনি স্মৃতি ছেড়ে দিতে পারেন। |
সারাংশ - স্ট্যাটিক বনাম ডায়নামিক মেমরি বরাদ্দ
প্রোগ্রামিং-এ, স্ট্যাটিক মেমরি বরাদ্দ এবং ডায়নামিক মেমরি বরাদ্দ মেমরি বরাদ্দ করার জন্য দুটি প্রক্রিয়া। স্ট্যাটিক এবং ডাইনামিক মেমরি বরাদ্দের মধ্যে পার্থক্য হল যে স্ট্যাটিক মেমরি বরাদ্দের মধ্যে একবার মেমরি বরাদ্দ করা হলে, মেমরির আকার ঠিক করা হয় যখন ডায়নামিক মেমরি বরাদ্দ করা হয়, একবার মেমরি বরাদ্দ করা হলে, মেমরির আকার পরিবর্তন করা যায়। প্রোগ্রামার অ্যাপ্লিকেশনের উপর নির্ভর করে মেমরিটি স্থির বা গতিশীল হওয়া উচিত কিনা তা নির্ধারণ করতে পারে।
স্ট্যাটিক বনাম ডায়নামিক মেমরি অ্যালোকেশনের পিডিএফ ডাউনলোড করুন
আপনি এই নিবন্ধটির PDF সংস্করণ ডাউনলোড করতে পারেন এবং উদ্ধৃতি নোট অনুসারে অফলাইন উদ্দেশ্যে এটি ব্যবহার করতে পারেন। দয়া করে এখানে PDF সংস্করণ ডাউনলোড করুন: স্ট্যাটিক এবং ডায়নামিক মেমরি বরাদ্দের মধ্যে পার্থক্য