एक विभाजन में फ़ाइलों की प्रतिलिपि बनाना दूसरे विभाजन की फ़ाइलों की प्रतिलिपि बनाने की तुलना में अधिक तेज़ क्यों है?


6

एक विभाजन में फ़ाइलों को कॉपी करने के लिए, उन्हें दूसरे में कॉपी करने की तुलना में क्यों काफी तेज है?


6
नकल या चलती है? विभाजन के भीतर जाते समय, केवल फ़ाइल सिस्टम मेटाडेटा जो यह बताता है कि फ़ाइल को कहाँ बदलना है। अलग-अलग शारीरिक हार्ड ड्राइव के बीच अक्सर नकल करना तेज होता है।
बॉब

@ याकूब क्यों एक विभाजन से काटकर उसी को चिपकाने के बजाय उसे एक दूसरे से चिपकाने से तेज है? तो काटने की प्रक्रिया में क्या होता है?
अमीरेज़ा नसीरी

@AmirrezaNasiri? अधिकांश फ़ाइल प्रबंधकों में "कटिंग और पेस्ट करना" हिलाने के लिए एक अमूर्त है। दूसरे शब्दों में, यह है घूम रहा है।
बॉब

जवाबों:


3

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

हालाँकि, अगर आप वास्तविक कॉपी-ऑपरेशन से मतलब रखते हैं, तो मैं बड़े प्रदर्शन के अंतर की उम्मीद नहीं करूंगा, क्योंकि ऑपरेशन एक ही डिस्क पर होता है। समय की वजह से कुछ मतभेद हो सकते हैं, हेड-प्लेसमेंट-ऑपरेशन हार्डड्राइव (जाहिर है एसएसडी के लिए नहीं) का उपभोग करेगा, लेकिन मुझे इसके प्रभाव की बहुत बड़ी उम्मीद नहीं है। शायद ओएस की अलग-अलग कैशिंग रणनीतियों के कारण कुछ अंतर भी हैं, लेकिन यह भी प्रभाव है, मुझे बहुत बड़ा होने की उम्मीद नहीं है।

क्या फर्क पड़ता है कि एक से दूसरे डिस्क में नकल हो रही है। यदि नियंत्रणकर्ता तेज है, तो यह एक ही डिस्क पर कॉपी करने की तुलना में बहुत तेज़ है, क्योंकि या तो ड्राइव को केवल पढ़ना या लिखना है, दोनों ऑपरेशन एक साथ नहीं करना है (इस नियम का एक अपवाद छोटा डेटा हो सकता है, क्योंकि hdd- और कंट्रोलर कैश)।

कृपया ध्यान दें कि OS फाइलों का लिंक बना सकता है। इस स्थिति में, डेटा की प्रतिलिपि नहीं बनाई जाएगी, लेकिन केवल डेटा का एक नया संदर्भ बनाया जाएगा (फ़ाइल भी डबल स्थान का उपभोग नहीं करेगी)। यह बहुत तेज है। लेकिन यदि आप एक्सप्लोरर या मानक शेल कमांड के साथ अपनी फ़ाइलों को कॉपी करते हैं, तो फ़ाइलों को कॉपी किया जाएगा और लिंक नहीं किया जाएगा।


1

यह केवल एक समस्या है जब डेटा को उसी हार्ड डिस्क ड्राइव से और उसके लिए कॉपी किया जाता है। डेटा पढ़ा, कैश्ड और वापस लिखा गया है, लेकिन इससे पहले कि वह लिखना शुरू कर सके, रीड / राइट हेड को खाली जगह पर ले जाना चाहिए। अलग-अलग हिस्सों पर स्रोत और गंतव्य होने से यह सुनिश्चित होगा कि संबंधित डिस्क सेक्टर भौतिक रूप से बहुत दूर हैं। पढ़ा / लिखा सिर लगातार आगे-पीछे होता रहेगा। अक्सर आप वास्तव में यह सुन सकते हैं।

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


तो क्यों एक विभाजन से काटकर उसी को चिपकाना एक दूसरे को चिपकाने से तेज है? तो काटने की प्रक्रिया में क्या होता है?
अमीरेज़ा नासिरी

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

0

आइए दोनों ऑपरेशनों की तुलना करें। सबसे पहले, एक विभाजन से दूसरे में एक फाइल कॉपी करना:

  1. स्रोत खोला जाता है।

  2. गंतव्य खोला / बनाया गया है।

  3. गंतव्य के लिए स्थान आवंटित किया जाता है।

  4. फ़ाइल डेटा के प्रत्येक बाइट को स्रोत से पढ़ा जाता है और गंतव्य पर लिखा जाता है।

  5. गंतव्य फ़ाइल बंद है।

  6. स्रोत फ़ाइल हैंडल करीब पर अनलिंक करने के लिए सेट है।

  7. स्रोत फ़ाइल हैंडल बंद है, फ़ाइल को अनलिंक कर रहा है।

  8. चूंकि स्रोत फ़ाइल डेटा का अंतिम संदर्भ (आमतौर पर) है, इसलिए स्रोत फ़ाइल डेटा को निःशुल्क किया जाना चाहिए।

अब, एक फ़ोल्डर को एक ही विभाजन पर एक फ़ोल्डर से दूसरे में कॉपी करना।

  1. स्रोत खोला जाता है।

  2. गंतव्य निर्देशिका में स्रोत फ़ाइल के लिए एक नया हार्ड लिंक बनाया गया है।

  3. स्रोत फ़ाइल के हैंडल को करीब पर अनलिंक करने के लिए सेट किया गया है।

  4. स्रोत हैंडल बंद है, इसे अनलिंक कर रहा है। स्रोत फ़ाइल अभी भी गंतव्य निर्देशिका से जुड़ी हुई है, इसलिए किसी खाली स्थान को बदलने की आवश्यकता नहीं है।

ध्यान दें कि कम चरण हैं और उनमें से किसी को भी फ़ाइल डेटा या यहां तक ​​कि मुक्त स्थान मानचित्रण को छूने की आवश्यकता नहीं है।


मुझे लगता है कि आप जो वर्णन कर रहे हैं, उसे आमतौर पर चलती हुई फाइलें कहा जाता है, नकल नहीं । प्रतिलिपि बनाना तब होता है जब किसी फ़ाइल की प्रतिलिपि बनाई जाती है, यानी समान सामग्री वाली दूसरी फ़ाइल। एक कॉपी ऑपरेशन के बाद आपके पास 2 समान फाइलें हैं, जबकि एक चाल ऑपरेशन के बाद भी आपके पास 1 फ़ाइल है, केवल दूसरे स्थान पर। एक ही पार्टीशन के भीतर मूविंग फाइल्स तेज होती हैं; अलग-अलग भौतिक ड्राइव के बीच नकल अक्सर तेज होती है।
सेर्गेई

विंडोज उपयोगकर्ता आमतौर पर एक फाइल को एक विंडो से दूसरी विंडो में खींचने और छोड़ने के लिए "चाल" शब्द का उपयोग करते हैं। इस प्रश्न को विंडोज टैग किया गया था ।
डेविड श्वार्ट्ज

1
@DavidSchwartz मैं कहूंगा कि मूविंग की सही परिभाषा वह है जहां स्रोत फ़ाइल है, अच्छी तरह से, स्थानांतरित, "कट और पेस्ट", गंतव्य पर। और कॉपी करना एक प्रतिलिपि बनाना होगा, जैसा कि स्रोत फ़ाइल को छोड़ रहा है: जैसा कि आप अपने पहले ऑपरेशन में वर्णन करते हैं। मैं वास्तव में कभी नहीं सुना है किसी को खींचने और छोड़ने के रूप में जाने के लिए देखें जब फ़ाइल वास्तव में स्थानांतरित की जा रही हो । तो मैं कहूंगा कि आपका दूसरा ऑपरेशन, हार्ड लिंक हेरफेर के साथ, आगे बढ़ रहा है। जब तक आप कॉपी-ऑन-राइट करने की बात नहीं कर रहे हैं, उस स्थिति में ... ठीक है, स्रोत फ़ाइल को अनलिंक नहीं किया जाएगा यदि ऐसा हो।
बॉब
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.