क्या सभी डेटा जो मैं इसके माध्यम से जा रहा हूं, या क्या कोई अन्य प्रत्यक्ष तरीका है?
क्या सभी डेटा जो मैं इसके माध्यम से जा रहा हूं, या क्या कोई अन्य प्रत्यक्ष तरीका है?
जवाबों:
मुश्किल एक! डेटा वास्तव में प्रति सीपीयू के माध्यम से नहीं जाता है।
डेटा और महत्वपूर्ण 1 और 0 चिपसेट के माध्यम से जाते हैं, या समर्पित I / O चिप्स और मेमोरी, हालांकि, जब आप फ़ाइलों की प्रतिलिपि बना रहे होते हैं, तो कॉपी करने का आदेश प्रोसेसर द्वारा चलाया जाता है।
आपके सामने (डेटा), आपकी बाहों (चिपसेट / आई / ओ चिप), और आपके मस्तिष्क (सीपीयू) के सामने एक वस्तु होने की कल्पना करें। आप वास्तव में ऑब्जेक्ट को स्थानांतरित करने के लिए अपने मस्तिष्क का उपयोग नहीं करते हैं, आपका मस्तिष्क ऑब्जेक्ट को स्थानांतरित करने के लिए आपकी बाहों को "कमांड" चलाता है।
interrupt
जब भी कोई IO कमांड देता है block device
, जैसे USB स्टिक, पूरा करके मदद करता है । सीपीयू तब कॉपी को निष्पादित करना जारी रखता है। वास्तव में, सीपीयू जो कर रहा है वह कर्नेल- ioctl
कोड चल रहा है जो डिवाइस ड्राइवरों के साथ chunks
(वास्तविक नाम) को कॉपी करने के लिए इंटरफेस करता है DMA
। सीपीयू भी संभालती है asynchronous IO
और sync IO
एक कर्नेल-कोड-क्रियान्वित-नजरिए से थोड़ा अलग।
बुद्धिमान चैनलों के साथ एक मेनफ्रेम पर, सीपीयू केवल चैनलों को कॉपी करने के लिए कहेगा। बहुत कुशल और थोड़ा सीपीयू ओवरहेड के साथ तेजी से बड़े बैकअप के लिए अनुमति देता है।
दुर्भाग्य से, हमारे पास बुद्धिमान चैनल नहीं हैं, इसलिए सीपीयू एक पाश के समान समाप्त होता है:
प्रत्येक फ़ाइल (dev1) के लिए; करना CreateFile (dev2); copyfilecontent (dev1, dev2); समाप्त;
सीपीयू ओवरहेड उच्च नहीं है जब तक कि बहुत सारी छोटी फाइलें नहीं हैं, विशेष रूप से एक ही निर्देशिका में बहुत सारी फाइलें। बनाएँ फ़ाइल ऑपरेशन में आमतौर पर सबसे अधिक ओवरहेड होता है। डिस्क टू डिस्क कॉपी प्रत्येक डिस्क को पहले से मौजूद फ़ाइल के रूप में मानते हैं।