फ़ाइल संगठन के लिए कौन सी डेटा संरचना का उपयोग करना सबसे अच्छा है? क्या बी-पेड़ सबसे अच्छा है या क्या कोई अन्य डेटा संरचना है जो फ़ाइलों और अच्छे संगठन तक तेजी से पहुंच प्राप्त करती है? धन्यवादफाइल सिस्टम बनाने के लिए उपयोग की जाने वाली डेटा संरचनाएं?
उत्तर
सभी फाइल सिस्टम अलग हैं, इसलिए बड़ी संख्या में डेटा संरचनाएं हैं जो वास्तव में फ़ाइल सिस्टम में उपयोग की जाती हैं।
कई फाइल सिस्टम कुछ प्रकार के bit vector (आमतौर पर बिटमैप के रूप में संदर्भित) का उपयोग करते हैं ताकि यह पता चल सके कि कुछ खाली ब्लॉक कहां हैं, क्योंकि उनके पास पूछताछ के लिए उत्कृष्ट प्रदर्शन है कि डिस्क का एक विशिष्ट ब्लॉक उपयोग में है या नहीं (डिस्क के लिए जो डिस्क हैं मुक्त रूप से पूर्ण नहीं है) मुफ्त ब्लॉक के उचित तेज़ लुकअप का समर्थन करते हैं।
सरल लिंक्ड सूचियों का उपयोग करके कई पुरानी फाइल सिस्टम (ext और ext2) संग्रहीत निर्देशिका संरचनाएं। जाहिर है, यह वास्तव में अधिकांश अनुप्रयोगों के लिए पर्याप्त तेज़ था, हालांकि कुछ प्रकार के अनुप्रयोगों ने बहुत सी बड़ी निर्देशिकाओं का उपयोग किया जो ध्यान देने योग्य प्रदर्शन हिट का सामना करना पड़ा।
एक्सएफएस फाइल सिस्टम निर्देशिका संरचनाओं और इसकी जर्नलिंग सिस्टम समेत लगभग हर चीज़ के लिए B+-trees का उपयोग करने के लिए प्रसिद्ध था। मेरे अंडरग्रेड ओएस कोर्स से मुझे जो याद है, उससे दर्शन यह था कि बी +-ट्री के कार्यान्वयन को लिखने, डीबग करने और प्रदर्शन करने में काफी समय लगा, इसलिए इसे जितना संभव हो सके इसका उपयोग करने के लिए समझ में आया।
अन्य फ़ाइल सिस्टम (ext3 और ext4) बी-पेड़ के एक प्रकार का उपयोग करते हैं जिसे HTree कहा जाता है जिसे मैं बहुत परिचित नहीं हूं। जाहिर है यह ब्रांचिंग कारक को उच्च रखने के लिए कुछ प्रकार की हैशिंग योजना का उपयोग करता है ताकि बहुत कम डिस्क एक्सेस का उपयोग किया जा सके।
मैंने सुना है कि कुछ ऑपरेटिंग सिस्टम ने अपनी निर्देशिका संरचनाओं को संग्रहीत करने के लिए splay trees का उपयोग करने का प्रयास किया लेकिन उनके साथ परेशानी में भाग गया। विशेष रूप से, यह एकाधिक पाठकों से एक ही निर्देशिका में बहुप्रचारित पहुंच को रोकता है (चूंकि एक स्प्ले पेड़ में, प्रत्येक पहुंच पेड़ को दोबारा बदलती है) और पेड़ के सभी तत्व अनुक्रमिक रूप से उपयोग किए जाने पर पेड़ एक लिंक्ड सूची में गिरावट का सामना करना पड़ता है। उस ने कहा, मुझे नहीं पता कि यह सिर्फ एक शहरी किंवदंती है, क्योंकि इन समस्याओं को कोड करने की कोशिश करने से पहले ये समस्याएं स्पष्ट होंगी।
माइक्रोसॉफ्ट की एफएटी 32 प्रणाली ने एक विशाल सरणी (फ़ाइल आवंटन तालिका) का उपयोग किया जो स्टोर करता है कि कौन सी फाइलें संग्रहीत की गईं और कौन से डिस्क क्षेत्र एक दूसरे में तर्कसंगत रूप से एक दूसरे का पालन करते हैं। मुख्य दोष यह है कि तालिका को पहले से स्थापित किया जाना था, इसलिए डिस्क पर संग्रहीत फ़ाइलों के आकार पर ऊपरी सीमाएं समाप्त हो गईं। हालांकि, सरणी-आधारित प्रणाली लागू करने के लिए बहुत आसान था।
यह एक संपूर्ण सूची नहीं है - मुझे यकीन है कि अन्य फाइल सिस्टम अन्य डेटा संरचनाओं का उपयोग करते हैं। हालांकि, मुझे उम्मीद है कि यह आपको सही दिशा में धक्का देने में मदद करेगा।
आशा है कि इससे मदद मिलती है!
बहुत उपयोगी पोस्ट धन्यवाद! मैं फिर थोड़ा वैक्टर के बारे में शोध करूंगा, और अन्य ओएस के बारे में कुछ और शोध करूंगा .. मैंने सुना है कि स्प्ले पेड़ परेशान थे! मैं बी-पेड़ से सबसे ज्यादा परिचित हूं लेकिन मैं अन्य डेटा संरचनाओं को सीखने की आशा करता हूं जो इस तरह के सामान के लिए उपयोगी होंगे! आपके लंबे उत्तर के लिए धन्यवाद :) – Bernice
- 1. निर्देशिका संरचना के लिए उपयोग की जाने वाली डेटा संरचना?
- 2. टाइलिंग एल्गोरिदम/डेटा संरचनाएं?
- 3. एल्गोरिदम और डेटा संरचनाएं
- 4. स्प्रेडशीट्स को लागू करने के लिए उपयोग की जाने वाली डेटा संरचना
- 5. फाइल सिस्टम
- 6. फाइल सिस्टम
- 7. सी #: फाइल सिस्टम सिस्टम
- 8. फेसबुक द्वारा उपयोग की जाने वाली आईपी स्पेस की सूची
- 9. सी ++: बढ़ावा फाइल सिस्टम एक विशिष्ट समय पुरानी फ़ाइलों की एक सूची वापस जाने के लिए
- 10. एरलांग लगातार डेटा संरचनाएं
- 11. प्रमुख जावास्क्रिप्ट डेटा संरचनाएं
- 12. अत्याधुनिक डेटा संरचनाएं
- 13. ट्री डेटा संरचनाएं - जावा
- 14. फाइल सिस्टम FindFirstFileEx के लिए समर्थन, निर्देशिका
- 15. फ़ाइलों को एन्क्रिप्ट करने के लिए उपयोग की जाने वाली कुंजी को संग्रहीत करने के लिए
- 16. सी # एकाधिक कक्षाओं द्वारा उपयोग की जाने वाली enum बनाने का सबसे अच्छा तरीका क्या है?
- 17. एक कस्टम फाइल सिस्टम
- 18. सॉफ़्टवेयर विकसित करने के लिए उपयोग की जाने वाली प्रोग्रामिंग भाषा की पहचान कैसे करें?
- 19. फाइल सिस्टम
- 20. डेटाबेस में नल द्वारा उपयोग की जाने वाली जगह
- 21. Postgresql डेटाबेस द्वारा उपयोग की जाने वाली कुल डिस्क स्थान
- 22. फाइल सिस्टम
- 23. अपाचे सीएक्सएफ विधियों में उपयोग की जाने वाली समय इकाई
- 24. सी # में उपयोग की जाने वाली विधि कीवर्ड क्या है?
- 25. केकेपीएचपी में उपयोग की जाने वाली .ctp फ़ाइल क्या है?
- 26. किसी भी आईफोन ऐप द्वारा उपयोग की जाने वाली मेमोरी
- 27. क्या मैं गिटुब द्वारा होस्ट की जाने वाली विकी बनाने के लिए गॉलम का उपयोग कर सकता हूं?
- 28. गेटटेक्स्ट बिना फाइल सिस्टम
- 29. आईओएस के लिए फाइल सिस्टम एन्क्रिप्शन?
- 30. फाइल सिस्टम
मैं जानकारी संग्रहीत करने के लिए डेटाबेस का उपयोग करने का प्रशंसक हूं। मेरा मानना है कि अधिकांश डीबी एक बी-स्ट्रक्चर का उपयोग करते हैं। क्या कोई विशिष्ट कार्य है जिसे आप पूरा करने की कोशिश कर रहे हैं? – kevingreen
मैं सिर्फ उत्सुक हूं कि ओएस के फाइल संगठन के लिए डेटा संरचना का उपयोग किया जाता है क्योंकि मैं डेटा संरचनाओं को सीख रहा हूं और मैंने उनमें से कुछ को लागू किया: लाल ब्लैक पेड़, एवीएल पेड़, बी-पेड़, छोड़ें सूची .. मैं चाहूंगा पता है कि उनमें से कौन सा मैं एक अधिक उपयोगी कार्य (संख्याओं को संग्रहित नहीं) के लिए उपयोग कर सकता हूं – Bernice
मुझे विशेष रूप से यह सुनिश्चित नहीं है कि अधिकांश ओएस डेटा कैसे स्टोर करता है। शोध पर शुभकामनाएँ। – kevingreen