प्रथम फिट आबंटन एक मेमोरी प्रबंधन तकनीक है, जिसमें सिस्टम मेमोरी का पहला उपलब्ध ब्लॉक आबंटित करता है, जो अनुरोधित आकार को पूरा करने के लिए पर्याप्त बड़ा होता है।

फर्स्ट फिट एलोकेशन क्या है?
पहला फिट आवंटन एक है स्मृति प्रबंधन रणनीति का उपयोग ऑपरेटिंग सिस्टम प्रक्रियाओं को मेमोरी ब्लॉक आवंटित करना। इस दृष्टिकोण में, जब कोई प्रक्रिया मेमोरी का अनुरोध करती है, तो सिस्टम उपलब्ध मेमोरी ब्लॉकों में से खोज करता है और पहला ब्लॉक आवंटित करता है जो अनुरोध को पूरा करने के लिए पर्याप्त बड़ा होता है। उपयुक्त मेमोरी ब्लॉक की खोज मुक्त मेमोरी क्षेत्रों की सूची की शुरुआत से शुरू होती है और क्रमिक रूप से तब तक जारी रहती है जब तक कि आकार की आवश्यकताओं को पूरा करने वाला ब्लॉक नहीं मिल जाता। एक बार जब यह ब्लॉक आवंटित हो जाता है, तो सिस्टम अपने संचालन के साथ आगे बढ़ता है, और आवंटित मेमोरी को अन्य प्रक्रियाओं के लिए अनुपलब्ध के रूप में चिह्नित किया जाता है।
जबकि पहला फिट आवंटन अपेक्षाकृत तेज़ है क्योंकि यह एक उपयुक्त ब्लॉक स्थित होने के बाद खोज बंद कर देता है, इसकी कुछ सीमाएँ हैं। समय के साथ, यह विधि निम्न की ओर ले जा सकती है विखंडन, क्योंकि आवंटित ब्लॉकों के बीच अप्रयुक्त मेमोरी के छोटे अंतराल जमा हो सकते हैं। ये अंतराल भविष्य के मेमोरी अनुरोधों को समायोजित करने के लिए पर्याप्त नहीं हो सकते हैं, भले ही सिस्टम में पर्याप्त कुल अप्रयुक्त मेमोरी हो। यह समग्र मेमोरी दक्षता को कम करता है, लेकिन विधि की सरलता और गति अक्सर इसे ऐसे वातावरण में एक व्यावहारिक विकल्प बनाती है जहां गति को मेमोरी अनुकूलन पर प्राथमिकता दी जाती है।
प्रथम फिट आवंटन का उदाहरण क्या है?
प्रथम फिट आवंटन कैसे काम करता है इसका एक उदाहरण यहां दिया गया है:
विभिन्न आकारों के निम्नलिखित मुक्त मेमोरी ब्लॉकों वाली एक प्रणाली की कल्पना करें:
- ब्लॉक 1: 100 KB
- ब्लॉक 2: 250 KB
- ब्लॉक 3: 50 KB
- ब्लॉक 4: 200 KB
- ब्लॉक 5: 300 KB
अब, मान लीजिए कि कोई प्रक्रिया 150 KB मेमोरी का अनुरोध करती है।
प्रथम फिट आवंटन की चरण-दर-चरण प्रक्रिया:
- सिस्टम सबसे पहले ब्लॉक 1 (100 KB) की जांच करेगा, लेकिन यह अनुरोध को पूरा करने के लिए बहुत छोटा है, इसलिए यह अगले ब्लॉक पर चला जाता है।
- इसके बाद, यह ब्लॉक 2 (250 KB) की जाँच करता है। चूँकि यह ब्लॉक 150 KB अनुरोध को पूरा करने के लिए पर्याप्त बड़ा है, इसलिए यह इस ब्लॉक को प्रक्रिया को आवंटित करता है।
- अब ब्लॉक 150 से प्रक्रिया को 2 KB आवंटित किया गया है, तथा ब्लॉक 2 का शेष स्थान (100 KB) अभी भी मुक्त है तथा भविष्य में उपयोग के लिए उपलब्ध है।
इस उदाहरण में, सिस्टम ने ब्लॉक 3, ब्लॉक 4 या ब्लॉक 5 की जाँच नहीं की क्योंकि उसे पहला ब्लॉक काफी बड़ा लगा (ब्लॉक 2)। यह पहले फिट आवंटन का सार है: यह पहले उपलब्ध ब्लॉक से मेमोरी आवंटित करता है जो अन्य ब्लॉकों में शेष खाली स्थान या उन ब्लॉकों के अनुरोध को फिट करने के लिए आगे विचार किए बिना आवश्यक आकार को पूरा करता है।
प्रथम फिट आवंटन का उपयोग

पहले फिट आवंटन का उपयोग आम तौर पर उन परिदृश्यों में किया जाता है जहाँ गति और सरलता को मेमोरी के कुशल उपयोग पर प्राथमिकता दी जाती है। यहाँ कुछ सामान्य उपयोग दिए गए हैं:
- प्रक्रिया मेमोरी प्रबंधन के लिए ऑपरेटिंग सिस्टमकई ऑपरेटिंग सिस्टम में, पहले फिट आवंटन का उपयोग चल रही प्रक्रियाओं के लिए मेमोरी आवंटित करने के लिए किया जाता है। चूंकि यह अपेक्षाकृत तेज़ है, इसलिए यह सिस्टम के प्रदर्शन को महत्वपूर्ण रूप से प्रभावित किए बिना मेमोरी आवंटन अनुरोधों को कुशलतापूर्वक प्रबंधित करने में मदद करता है। यह विशेष रूप से वास्तविक समय या अंत: स्थापित प्रणाली जहां आवंटन की गति महत्वपूर्ण है।
- अंत: स्थापित प्रणाली। एम्बेडेड सिस्टम में अक्सर सीमित संसाधन होते हैं और उन्हें तेज़ मेमोरी आवंटन तकनीकों की आवश्यकता होती है। अपनी सरलता और गति के कारण, ऐसे वातावरण में मेमोरी को प्रबंधित करने के लिए फर्स्ट फिट आवंटन का उपयोग किया जाता है।
- वर्चुअल मेमोरी प्रबंधन. ऐसी प्रणालियों में जहां आभासी स्मृति जब इस्तेमाल किया जाता है, तो प्रक्रियाओं को भौतिक मेमोरी आवंटित करने के लिए पहले फिट आवंटन को लागू किया जा सकता है। हालांकि यह विखंडन की ओर ले जा सकता है, लेकिन इसे अक्सर मेमोरी को कुशलतापूर्वक प्रबंधित करने के लिए अन्य तकनीकों (जैसे पेजिंग या सेगमेंटेशन) के साथ संयोजन में उपयोग किया जाता है।
- सरल अनुप्रयोगों में मेमोरी आवंटन. ऐसे अनुप्रयोगों के लिए जहां मेमोरी की आवश्यकताएँ पूर्वानुमान योग्य हैं और सिस्टम पर बहुत अधिक दबाव नहीं है, पहले फिट आवंटन का उपयोग किया जा सकता है। इन अनुप्रयोगों को जटिल मेमोरी प्रबंधन की आवश्यकता नहीं होती है और वे इस पद्धति के साथ आने वाले कुछ हद तक विखंडन को सहन कर सकते हैं।
- निम्न-स्तरीय प्रोग्रामिंग में गतिशील मेमोरी आवंटन. निम्न-स्तरीय प्रोग्रामिंग में, जैसे कि C or सी + +, पहले फिट आवंटन का उपयोग अक्सर किया जाता है गतिशील स्मृति प्रबंधन (मैलोक या फ्री फंक्शन के माध्यम से)। यह पूल से मेमोरी ब्लॉक आवंटित करने में मदद करता है और सरल हीप संरचना में छोटे से मध्यम पैमाने के मेमोरी अनुरोधों को प्रबंधित करने के लिए सीधा है।
प्रथम फिट आवंटन को अनुकूलित कैसे करें?
प्रथम फिट आवंटन को अनुकूलित करने में विखंडन में कमी और मेमोरी उपयोग में सुधार शामिल है, बिना इसकी सरलता या गति का महत्वपूर्ण रूप से त्याग किए। यहाँ कुछ रणनीतियाँ दी गई हैं जो प्रथम फिट आवंटन को अनुकूलित करने में मदद कर सकती हैं:
- मुक्त मेमोरी ब्लॉकों का एकीकरणफर्स्ट फिट आवंटन के साथ सबसे आम मुद्दों में से एक विखंडन है, जहां आवंटित ब्लॉकों के बीच छोटे अप्रयुक्त अंतराल जमा होते हैं। इसे अनुकूलित करने के लिए, कोलेसिंग लागू किया जा सकता है। जब मेमोरी का एक ब्लॉक मुक्त होता है, तो सिस्टम को पड़ोसी मुक्त ब्लॉकों की जांच करनी चाहिए और उन्हें एक बड़े सन्निहित मुक्त ब्लॉक में संयोजित करना चाहिए। यह विखंडन को कम करने में मदद करता है और भविष्य के आवंटन के लिए बड़े मुक्त ब्लॉक खोजने की संभावना बढ़ाता है।
- मुक्त ब्लॉकों की क्रमबद्ध सूची बनाए रखना। मुक्त ब्लॉकों को आकार के अनुसार क्रमबद्ध करने से मेमोरी आवंटन की दक्षता में सुधार हो सकता है। जब मुक्त ब्लॉकों को बढ़ते क्रम में क्रमबद्ध किया जाता है, तो सिस्टम अधिक तेज़ी से उपयुक्त ब्लॉक का पता लगा सकता है, क्योंकि पाया गया पहला ब्लॉक सबसे छोटा होगा जो अनुरोध के अनुरूप होगा। इससे छोटे आवंटन अनुरोधों के साथ बड़े मेमोरी क्षेत्रों को बर्बाद करने की संभावना कम हो जाती है।
- बिनिंग प्रणाली का उपयोग करना। बिनिंग या बकेटिंग सिस्टम को लागू करना, जहाँ मुक्त मेमोरी ब्लॉक को आकार सीमा के अनुसार समूहीकृत किया जाता है, पहले फिट आवंटन को और अधिक अनुकूलित करता है। मेमोरी आवंटित करते समय, सिस्टम पहले अनुरोधित आकार के अनुरूप बिन की जाँच करता है और फिर उसके भीतर खोज करता है। इससे सभी उपलब्ध ब्लॉक को स्कैन करने की आवश्यकता कम हो जाती है, जिससे आवंटन प्रक्रिया तेज़ और अधिक कुशल हो जाती है।
- बेहतर उपयोग के लिए ब्लॉकों को विभाजित करनायदि कोई खाली ब्लॉक आवश्यकता से बड़ा है, तो पहला फिट आवंटन ब्लॉक को दो भागों में विभाजित कर सकता है: एक वर्तमान आवंटन के लिए और दूसरा भविष्य में उपयोग के लिए एक छोटे खाली ब्लॉक के रूप में। इससे मेमोरी का बेहतर उपयोग करने में मदद मिलती है, क्योंकि बचा हुआ स्थान बर्बाद नहीं होता है, और यह अप्रयुक्त मेमोरी के बड़े अंतराल से बचने में मदद करता है।
- मेमोरी पूल का उपयोग करनामेमोरी पूल मेमोरी के पूर्व-आवंटित क्षेत्र हैं जिन्हें निश्चित आकार के ब्लॉक में विभाजित किया जाता है। विशिष्ट आकार की मेमोरी आवंटित करने के लिए मेमोरी पूल का उपयोग करके, मुक्त मेमोरी सूची के माध्यम से खोज करने की आवश्यकता को कम किया जा सकता है, और विखंडन को नियंत्रित किया जा सकता है। यह विधि विशेष रूप से तब उपयोगी होती है जब मेमोरी की आवश्यकताएँ पूर्वानुमान योग्य होती हैं, और सिस्टम अक्सर समान आकार के ब्लॉक आवंटित करता है।
- आवधिक संघनन. समय के साथ, मेमोरी विखंडन गंभीर हो सकता है, खासकर पहले फिट आवंटन के साथ। आवधिक मेमोरी कॉम्पैक्शन को लागू करना, जहां सिस्टम समय-समय पर आवंटित मेमोरी ब्लॉक को खाली स्थान को समेकित करने के लिए स्थानांतरित करता है, मेमोरी उपयोग को अनुकूलित करने में मदद कर सकता है। यह विखंडन को कम करता है लेकिन कुछ ओवरहेड की कीमत पर, इसलिए प्रदर्शन को संतुलित करने के लिए इसे सावधानीपूर्वक करने की आवश्यकता है।
- शुरुआत में बड़े मेमोरी ब्लॉक आवंटित करनाजब सिस्टम शुरू में मेमोरी आवंटित करता है, तो यह बड़ी मेमोरी अनुरोधों के लिए बड़े ब्लॉक को प्राथमिकता दे सकता है। यह दृष्टिकोण विखंडन को कम करने में मदद करता है क्योंकि बड़े ब्लॉकों को बहुत अधिक छोटे अंतराल में विभाजित होने की संभावना कम होती है, जिससे बाद के आवंटन के लिए अधिक जगह बनती है।
प्रथम फिट आवंटन के लाभ और हानियाँ
फर्स्ट फिट एलोकेशन विधि मेमोरी प्रबंधन के लिए एक सरल और तेज़ दृष्टिकोण प्रदान करती है, जो इसे कई प्रणालियों के लिए एक लोकप्रिय विकल्प बनाती है। हालाँकि, किसी भी तकनीक की तरह, इसके अपने फायदे और नुकसान हैं।
प्रथम फिट आवंटन के क्या लाभ हैं?
प्रथम फिट आवंटन के लाभों में शामिल हैं:
- सरलता और गतिप्रथम फिट को क्रियान्वित करना सरल है, और यह पहले उपयुक्त ब्लॉक की खोज करके शीघ्रता से मेमोरी आवंटित करता है।
- कम उपरि। चूंकि एल्गोरिथ्म उपयुक्त ब्लॉक मिलते ही रुक जाता है, इसलिए यह सर्वोत्तम फिट या सबसे खराब फिट जैसी अन्य रणनीतियों की तुलना में कम्प्यूटेशनल ओवरहेड को न्यूनतम कर देता है, जिसके लिए सभी उपलब्ध मेमोरी ब्लॉकों की खोज की आवश्यकता हो सकती है।
- छोटे से मध्यम आकार के सिस्टम के लिए प्रभावी। पूर्वानुमानित और मामूली मेमोरी आवश्यकताओं वाली प्रणालियों में, प्रथम फिट आवंटन जटिल मेमोरी प्रबंधन तंत्र की आवश्यकता के बिना कुशलतापूर्वक काम करता है।
- कम जटिल स्मृति प्रबंधन. प्रथम फिट में जटिल डेटा संरचनाओं को बनाए रखने या जटिल गणना करने की आवश्यकता नहीं होती है, जिससे मेमोरी प्रबंधन प्रणालियों की जटिलता कम हो जाती है।
- वास्तविक समय प्रणालियों के लिए अच्छावास्तविक समय अनुप्रयोगों में जहां मेमोरी आवंटन की गति महत्वपूर्ण है, फर्स्ट फिट न्यूनतम देरी के साथ त्वरित समाधान प्रदान करता है, क्योंकि यह उपयुक्त ब्लॉक मिलते ही मेमोरी आवंटित करता है।
प्रथम फिट आवंटन के नुकसान क्या हैं?
यद्यपि प्रथम फिट आवंटन सरलता और गति प्रदान करता है, लेकिन इसके साथ कई नुकसान भी जुड़े हैं:
- विखंडन। समय के साथ, पहले फिट आवंटन से बाहरी और आंतरिक दोनों तरह के विखंडन हो सकते हैं। बाहरी विखंडन तब होता है जब आवंटित मेमोरी ब्लॉकों के बीच कई छोटे, अप्रयुक्त अंतराल होते हैं, जबकि आंतरिक विखंडन तब होता है जब आवंटित ब्लॉक आवश्यकता से अधिक बड़े होते हैं। ये विखंडित स्थान मेमोरी उपयोग की समग्र दक्षता को कम करते हैं।
- अकुशल मेमोरी उपयोगचूंकि पहला फिट केवल पहले ब्लॉक का चयन करता है जो अनुरोध को पूरा करने के लिए पर्याप्त बड़ा है, यह मेमोरी में छोटे अंतराल छोड़ सकता है जिसका एक अलग आवंटन रणनीति के साथ बेहतर उपयोग किया जा सकता था। इससे जगह की बर्बादी हो सकती है, खासकर कई अलग-अलग आवंटन आकारों वाले सिस्टम में।
- खोज समय में वृद्धि. हालाँकि पहला फ़िट तेज़ हो सकता है, लेकिन जैसे-जैसे सिस्टम मेमोरी ब्लॉक आवंटित और मुक्त करना जारी रखता है, मुक्त ब्लॉकों की सूची अधिक अव्यवस्थित हो सकती है। ऐसे मामलों में जहाँ कई छोटे, बिखरे हुए मुक्त ब्लॉक होते हैं, पहले उपयुक्त ब्लॉक को खोजने में लगने वाला समय बढ़ जाता है, जिससे समग्र सिस्टम प्रदर्शन प्रभावित होता है।
- बड़े आबंटनों का खराब प्रबंधन। पहले फिट आवंटन में मेमोरी के इष्टतम उपयोग पर त्वरित आवंटन को प्राथमिकता दी जाती है। परिणामस्वरूप, बड़े मेमोरी अनुरोधों को संभालने के दौरान यह कुशल नहीं हो सकता है, क्योंकि यह छोटे, खंडित ब्लॉकों को आवंटित कर सकता है जो अनुरोधित आकार के लिए आदर्श नहीं हैं।
- अनुकूलन का अभाव. पहला फ़िट आवंटन के लिए सबसे अच्छे उपलब्ध ब्लॉक पर विचार नहीं करता है, जिसका अर्थ है कि यह विखंडन को कम करने या मेमोरी के उपयोग को अनुकूलित करने का प्रयास नहीं करता है। यह बस पहले ब्लॉक को लेता है जो फ़िट होता है, जो हमेशा लंबे समय में सबसे कुशल मेमोरी प्रबंधन की ओर नहीं ले जा सकता है।
प्रथम फिट बनाम सर्वोत्तम फिट बनाम सबसे खराब फिट आवंटन: क्या अंतर हैं?
यहां तालिका प्रारूप में प्रथम फिट, सर्वोत्तम फिट और सबसे खराब फिट आवंटन की तुलना दी गई है:
| मापदंड | पहला फिट | सबसे अच्छा फिट | सबसे खराब फिट |
| आवंटन रणनीति | मेमोरी अनुरोध के अनुरूप पहला उपलब्ध ब्लॉक आवंटित करता है। | सबसे छोटा ब्लॉक आवंटित करता है जो अनुरोध को पूरा करने के लिए पर्याप्त बड़ा है। | सबसे बड़ा उपलब्ध ब्लॉक आवंटित करता है, जिसका लक्ष्य अधिकतम संभव स्थान छोड़ना होता है। |
| गति | सबसे तेज़, क्योंकि यह पहला फिट मिलने के बाद खोज बंद कर देता है। | प्रथम फिट की तुलना में यह धीमा है, क्योंकि इसमें सर्वोत्तम फिट खोजने के लिए सभी उपलब्ध ब्लॉकों की जांच करनी पड़ती है। | प्रथम फिट की तुलना में यह धीमा है, क्योंकि इसमें सबसे बड़े ब्लॉक की खोज भी करनी होती है। |
| विखंडन | बिखरे हुए छोटे अंतरालों के कारण बाह्य विखंडन हो सकता है। | प्रथम फिट की तुलना में बाह्य विखंडन को अधिक प्रभावी ढंग से कम करता है, लेकिन फिर भी इसका कारण बन सकता है। | इससे आंतरिक विखंडन हो सकता है, क्योंकि बचा हुआ स्थान अक्सर बहुत बड़ा होता है। |
| दक्षता | बिखरे हुए ब्लॉकों में संभावित बर्बाद स्थान के कारण मेमोरी उपयोग के संदर्भ में कम कुशल। | यह प्रथम फिट की तुलना में अधिक कुशल है, क्योंकि इसका उद्देश्य बर्बाद स्थान को न्यूनतम करना है। | इससे मेमोरी का अकुशल उपयोग हो सकता है, क्योंकि बड़े ब्लॉकों में बड़े अंतराल अप्रयुक्त रह जाते हैं। |
| स्मृति उपयोग | समय के साथ-साथ छोटे-छोटे अंतरालों के बढ़ने से स्मृति उपयोग में कमी आ सकती है। | मेमोरी का उपयोग बेहतर है क्योंकि इससे छोटे अंतराल कम हो जाते हैं, लेकिन फिर भी विखंडन हो सकता है। | खराब मेमोरी उपयोग, विशेषकर जब बड़े अंतराल को अप्रयुक्त छोड़ दिया जाता है। |
| सर्वोत्तम उपयोग मामला | ऐसे वातावरण के लिए सबसे उपयुक्त जहां आवंटन गति को मेमोरी दक्षता से अधिक प्राथमिकता दी जाती है। | उन प्रणालियों के लिए उपयुक्त जहां मेमोरी दक्षता आवंटन गति से अधिक महत्वपूर्ण है। | इसका प्रयोग अक्सर छोटे आबंटनों में विखंडन से बचने के लिए किया जाता है, लेकिन यह बड़ी प्रणालियों के लिए आदर्श नहीं है। |
| बड़े आबंटनों का प्रबंधन | बड़े आबंटन छोटे-छोटे ब्लॉकों में बंट सकते हैं, जिससे विखंडन हो सकता है। | बड़े आबंटनों को बेहतर ढंग से संभाला जाता है क्योंकि सबसे छोटा आबंटन खोजा जाता है, लेकिन फिर भी विखंडन हो सकता है। | बड़े आबंटन के कारण बड़ी मात्रा में स्थान बच सकता है, जिसके परिणामस्वरूप मेमोरी का अकुशल उपयोग हो सकता है। |