7

मैं थोड़ी उलझन में हूं कि एक लिंक की गई सूची का उपयोग करने का प्राथमिक नुकसान मुफ्त डिस्क ब्लॉक की सूची बनाए रखने में होगा। मेरे प्रोफेसर ने कहा कि थोड़ा नक्शा इस्तेमाल करने से समस्या हल करने में मदद मिलेगी। एक बिट मैप का उपयोग क्यों करते हैं इस समस्या को हल करते हैं?मेमोरी प्रबंधन में लिंक्ड सूचियों का उपयोग करने का नुकसान

मेरे सवालों को कम करने के लिए:

  1. मुक्त डिस्क ब्लॉकों की सूची को बनाए रखने में एक लिंक्ड सूची का उपयोग करने का प्राथमिक नुकसान क्या है?

  2. एक बिट मानचित्र का उपयोग इस समस्या/हानि को हल क्यों करता है?

+0

और ** आपके मामले में मूल समस्या क्या है ** लिंक सूचियों या बिट मानचित्रों को हल करना चाहिए? आप "फ्री डिस्क ब्लॉक" का उल्लेख करते हैं लेकिन उनके बारे में क्या? आवंटन? एसएसडी ड्राइव या फ्लैश मेमोरी को कम करने के लिए वर्दी डिस्क ब्लॉक आवंटन आवृत्ति? इस समस्या पर अधिक ध्यान देने के बिना अन्य फायदे/नुकसान नहीं हैं, फिर लिंक्ड सूचियां लागू करने के लिए सरल हैं, बहुत जल्दी सिखाई जाती हैं और प्रत्येक प्रोग्रामर उन्हें – xmojmr

+1

@xmojmr का उपयोग कर सकता है यह सिर्फ नमूना परीक्षा प्रश्न है। यह सब कुछ दिया गया था। –

+0

उस स्थिति में स्वयं को समझने का प्रयास करें (इसे डिस्क मैनेजर मॉडलिंग के सरल (पेपर?) कोड में उपयोग करने का प्रयास करें) डेटा संरचना एक्सेस की गति (पढ़ने/लिखने) और विफलता वसूली के समय क्या अंतर होता है। इसके बारे में सोचने की आपकी क्षमता उन महत्वपूर्ण चीजों में से एक है जिन्हें परीक्षा सत्यापित करना है। Google क्वेरी 'फाइल सिस्टम आवंटन बिटमैप' कई उपयोगी लेखों जैसे [विकिपीडिया: फ्री स्पेस बिटमैप] (http://en.wikipedia.org/wiki/Free_space_bitmap) या [IJEAT: बिटमैप्स का उपयोग करके यूनिक्स में फ्री डिस्क ब्लॉक का आवंटन] (http://www.ijeat.org/attachments/File/v3i1/F2120082613.pdf) – xmojmr

उत्तर

4

हाय,

मुक्त डिस्क ब्लॉकों की सूची को बनाए रखने में एक लिंक्ड सूची का उपयोग करने का प्राथमिक नुकसान क्या है?

  • यह योजना सूची को पार करने के बाद से बहुत प्रभावी नहीं है, हमें प्रत्येक ब्लॉक को पर्याप्त समय की आवश्यकता होगी।
  • दूसरा नुकसान सभी मुक्त डिस्क ब्लॉक की लिंक्ड सूची को बनाए रखने के लिए अतिरिक्त मेमोरी आवश्यकता है।

थोड़ा सा मानचित्र उपयोग करने से इस समस्या/हानि को हल क्यों किया जाता है?

  • अक्सर मुक्त डिस्क रिक्त स्थान की सूची एक सा नक्शा या बिट वेक्टर के रूप में कार्यान्वित किया जाता है। प्रत्येक ब्लॉक को एक बिट द्वारा दर्शाया जाता है। 0 (शून्य) को एक मुक्त ब्लॉक के रूप में चिह्नित किया गया है जबकि 1 आवंटित ब्लॉक के लिए है। इसलिए, मुफ्त डिस्क स्थान को स्टोर करने के लिए अतिरिक्त अतिरिक्त मेमोरी की आवश्यकता नहीं है।

  • फास्ट यादृच्छिक अभिगम आवंटन जांच: यदि कोई क्षेत्र मुफ़्त है तो जांच करना इसी बिट की जांच के समान सरल है। तो लिंक्डल लिंक्डलिस्ट से तेज है।

बिट मानचित्र का उपयोग करने के अन्य लाभ:

  • फास्ट विलोपन: डेटा, हटाएं पर ओवरराइट होने की जरूरत नहीं इसी बिट flipping

मई यह आप में मदद करता है पर्याप्त है। आगे स्पष्टीकरण के लिए स्वतंत्र भरें।

सादर,

Bhavik

+1

नि: शुल्क ब्लॉक की एक लिंक की गई सूची को किसी भी स्मृति की आवश्यकता नहीं है, मानते हैं कि न्यूनतम आकार ब्लॉक काफी बड़ा है। – harold

+0

या आप इसे कह सकते हैं, लेकिन बिटमैप की तुलना में यह कम स्मृति का उपयोग कर रहा है। –

+2

इसके अलावा, बिट ब्लॉक को आसान ब्लॉक ढूंढना आसान है –

0

सही समाधान (वह अपने इनाम के हकदार) अन्य जवाब देने के लिए टिप्पणी में @FullDecent द्वारा दिया गया था। विस्तार से बता दें:

यह मानते हुए कि प्रश्न में डिस्क ड्राइव, पुराने, पारंपरिक प्रकार का है एक कताई भंडारण सतह और एक पढ़ें/लिखें सिर कि शारीरिक रूप से सतह के पार ले जाता है त्रिज्यात साथ ...

सामान्य तौर पर यह डिस्क पर यथासंभव डिस्क के रूप में संग्रहीत करने के लिए फ़ाइलों के लिए अच्छा है, ताकि एकाधिक ब्लॉक अनुक्रमिक रूप से पढ़ा जा सके।यदि कोई फ़ाइल "खंडित" है (डिस्क पर विभिन्न स्थानों में इसके ब्लॉक बिखरे हुए हैं), तो संपूर्ण फ़ाइल को पढ़ने के लिए ड्राइव हेड को कई बार पुनर्स्थापित करने की आवश्यकता होगी। सिर की मरम्मत करना डिस्क पढ़ने में शामिल सबसे अधिक समय लेने वाले ऑपरेशन में से एक है (डिस्क को कताई के बाद केवल दूसरी कताई शुरू करने के लिए)। इसलिए प्रक्रिया को "डीफ्रैग्मेंटेशन" या "डिफ्रैगिंग" के रूप में जाना जाता है, जो सभी फ़ाइलों को संगत बनाने के लिए डिस्क पर प्रयुक्त ब्लॉक को पुनर्व्यवस्थित करता है।

नि: शुल्क ब्लॉक की एक लिंक्ड सूची के साथ, आवंटन में सूची के सामने से ब्लॉक लेना शामिल है, और डीलोकेशन में सूची के सामने मुक्त ब्लॉक जोड़ना शामिल है। इसलिए सूची गड़बड़ हो सकती है, ब्लॉक के साथ जो अक्सर डिस्क पर आस-पास डिस्क पर आसन्न नहीं होते हैं। एक बड़ी फ़ाइल के लिए पर्याप्त बड़े ब्लॉक के एक संगत खिंचाव को खोजने के लिए, सूची के एक महत्वपूर्ण अंश को स्कैन करना आवश्यक हो सकता है।

बिटमैप के साथ, यह अभी भी एक बड़े संगत मुक्त ब्लॉक खंड के लिए स्कैन करना आवश्यक होगा, लेकिन 8, 16, 32, या 64 बिट्स (हार्डवेयर के शब्द आकार के आधार पर) के बाद यह आसान है। एकल ऑपरेशन

संबंधित मुद्दे