लोडर (कंप्यूटिंग)
परिकलक प्रणालियों में एक भारक एक प्रचालन प्रणाली का एक हिस्सा होता है जो कार्यक्रमो और पुस्तकालयों के भारण के लिए जिम्मेदार होता है। यह योजना शुरू करने की प्रक्रिया में आवश्यक कदमों में से एक है, क्योंकि यह कार्यक्रम को स्मृति में रखता है और उन्हें निष्पादन के लिए तैयार करता है। एक कार्यक्रम को भारण करने में एक निष्पादन योग्य दस्तावेज़ की स्मृति-प्रतिचित्रण शामिल होती है जिसमें स्मृति में कार्यक्रम निर्देश होते हैं और फिर निष्पादन योग्य को चलाने के लिए तैयार करने के लिए अन्य आवश्यक प्रारंभिक संचालन करते हैं। एक बार भारण हो जाने पर, प्रचालन प्रणाली भारण किए गए कार्यक्रम संकेत पर नियंत्रण पास करके योजना शुरू करता है।
कार्यक्रम भरण का समर्थन करने वाले सभी प्रचालन प्रणाली में भारण होते हैं, अत्यधिक विशिष्ट परिकलक प्रणाली को छोड़कर, जिनके पास केवल विशेष कार्यक्रम का एक निश्चित समुच्चय होता है। अंत:स्थापित प्रणाली में आमतौर पर भारण नहीं होते हैं, और इसके बजाय, संकेत को सीधे ROM या इसी तरह से निष्पादित किया जाता है। प्रचालन प्रणाली को स्वयं भारण करने के लिए, बूटकरण के भाग के रूप में, एक विशेष बूट भारण का उपयोग किया जाता है। कई प्रचालन प्रणाली में, भारण स्थायी रूप से स्मृति में रहता है, हालांकि कुछ प्रचालन प्रणाली जो आभासी स्मृति का समर्थन करते हैं, भारण को स्मृति के उस क्षेत्र में स्थित होने की अनुमति दे सकते हैं जो पेजेबल है।
एक प्रचालन प्रणाली के मामले में जो आभासी स्मृति का समर्थन करता है, भारण वास्तव में निष्पादन योग्य दस्तावेज़ों की सामग्री को स्मृति में अनुकृति नहीं कर सकता है, लेकिन केवल आभासी स्मृति उपसमूह को घोषित कर सकता है कि संचालन को शामिल करने के लिए आवंटित स्मृति कार्यक्रम के संकेत के बीच प्रतिचित्रिण है, और संबंधित निष्पादन योग्य दस्तावेज़ की सामग्री। (स्मृति-प्रतिचित्र किया गया दस्तावेज़ देखें।) आभासी स्मृति उपसमूह को तब सूचित किया जाता है कि स्मृति के उस क्षेत्र वाले पृष्ठों को मांग पर भरने की आवश्यकता होती है यदि और जब कार्यक्रम निष्पादन वास्तव में अपूर्ण स्मृति के उन क्षेत्रों को हिट करता है। इसका मतलब यह हो सकता है कि कार्यक्रम के संकेत के कुछ हिस्सों को वास्तव में स्मृति में तब तक अनुकृति नहीं किया जाता है जब तक कि उनका वास्तव में उपयोग नहीं किया जाता है, और अप्रयुक्त संकेत को कभी भी स्मृति में भारण नहीं किया जा सकता है।
जिम्मेदारियां
यूनिक्स में, भारक प्रणाली कॉल निष्पादन()
के लिये प्रबंधकर्ता है।[1] यूनिक्स भारण के कार्यों में शामिल हैं:
- सत्यापन (अनुमतियां, स्मृति आवश्यकताएं आदि);
- स्मृति-प्रतिचित्रण निष्पादन योग्य वस्तु से मुख्य स्मृति तक;
- आभासी स्मृति में कमांड-लाइन तर्को की प्रतिलिपि बनाना ;
- आरंभ पंजिका (जैसे, क्रमबद्ध ढेर सूचक);
- कार्यक्रम प्रवेश स्थान (
आरम्भ
) पर जाएं।
माइक्रोसॉफ्ट विंडोज़ 7 और बाद में, भारक ntdll.dll में LdrInitializeThunk
प्रकार्य होता है, जो निम्न कार्य करता है:
- डीएलएल में ही संरचनाओं का आरंभ (यानी समीक्षात्मक खंड, अनुखंड सूची);
- भारण करने के लिए निष्पादन योग्य का सत्यापन;
- एक ढेर बनाना (प्रकार्य
RtlCreateHeap
के माध्यम से); - पर्यावरण परिवर्तनीय विभाग और कार्यप्रणाली विभाग का आवंटन;
- निष्पादन योग्य और ntdll को अनुखंड सूची में जोड़ना (एक दोगुनी-श्रृंखलित सूची);
- कई महत्वपूर्ण कार्यों को प्राप्त करने के लिए KERNEL32.DLL भारण हो रहा है उदाहरण के लिए
BaseThreadInitThunk
; - निष्पादन योग्य के आयात को पुनः भारण करना (यानी गतिशील-श्रृंखलित पुस्तकालयों) (आयात, उनके आयात, आदि की जांच करें);
- डिबग प्रणाली में, प्रणाली विराम बिंदु बढाएँ;
- डीएलएलएस की शुरूआत;
- कचरा संग्रहण;
- भारक प्रकार्य को दिए गए संदर्भ मापदण्ड पर
NtContinue
को कॉल (यानीRtlUserThreadStart
पर कूदना, जो निष्पादन योग्य प्रारंभ करेगा)
भारक स्थानांतरित करना
कुछ प्रचालन प्रणाली को भारक को स्थानांतरित करने की आवश्यकता होती है, जो निष्पादन योग्य में पतों (संकेत) को समायोजित करता है, जिस पर भारण शुरू होता है, पते में भिन्नता की भरपाई के लिए। प्रचालन प्रणाली जिन्हें भारक को स्थानांतरित करने की आवश्यकता होती है, वे हैं जिनमें एक कार्यक्रम हमेशा पता स्थान में एक ही स्थान पर भारण नहीं होता है और जिसमें कार्यक्रम के आधार पता से अनुचित्रण के बजाय संकेत निरपेक्ष पते होते हैं। कुछ जाने-माने उदाहरण हैं IBM के OS/360 उनके प्रणाली/360 अधिसंसाधित्र के लिए हैं, और इसके वंश, जिसमें z/वास्तुकला अधिसंसाधित्र के लिए z/OS शामिल है।
ओएस/360 और व्युत्पन्न (शब्द)
OS/360 और वंशज प्रणाली में, (विशेषाधिकार प्राप्त) प्रचालन प्रणाली सुविधा को IEWFETCH कहा जाता है,[2] और OS पर्यवेक्षक का एक आंतरिक घटक है, जबकि (गैर-विशेषाधिकार प्राप्त) भारक आवेदन पत्र संयोजन संपादक के समान कई कार्य कर सकता है, और OS पर्यवेक्षक के लिए पूरी तरह से बाहरी है (हालांकि यह निश्चित रूप से कई पर्यवेक्षक सेवाओं का उपयोग करता है)।
IEWFETCH एक अत्यधिक विशिष्ट माध्यम कार्यक्रम का उपयोग करता है, और सैद्धांतिक रूप से DASD संचार माध्यम की एक क्रांति (लगभग 16.6 ms अधिकतम, 8.3 ms औसत, लीगेसी 3,600 rpm ड्राइव पर) के भीतर एक संपूर्ण निष्पादन योग्य को भारण करना और स्थानांतरित करना संभव है। भारण अनुखंड के लिए जो आकार में एक मार्ग से अधिक है, संचार माध्यम की क्रांति खोए बिना पूरे अनुखंड को भारण करना और स्थानांतरित करना भी संभव है।
IEWFETCH में तथाकथित अधिचित्रित संरचनाओं के लिए सुविधाए भी शामिल हैं, और जो न्यूनतम स्मृति अनुखंड में संभावित रूप से बहुत बड़े निष्पादन योग्य चलाने की सुविधा प्रदान करती है (OS के कुछ संस्करणों पर 44 KB जितना छोटा, लेकिन 88 KB और 128 KB अधिक सामान्य हैं)।
OS का केन्द्रक (पर्यवेक्षक का हमेशा निवासी हिस्सा) स्वयं इस तरह से स्वरूपित होता है जो IEWFETCH के एक उतारे गए संस्करण के साथ संगत है। सामान्य निष्पादकों के विपरीत, OS का केन्द्रक प्रकीर्णन भारण होता है: केन्द्रक के कुछ हिस्सों को स्मृति के विभिन्न भागों में भारक किया जाता है; विशेष रूप से, कुछ प्रणाली तालिकाओं को प्रारंभिक 64 KB के अंतर्गत होना चाहिए, जबकि अन्य तालिकाएँ और संकेत कहीं और स्थित हो सकते हैं।
प्रणाली के श्रंखलन संपादक आवेदन पत्र का नाम IEWL है।[3] IEWL का मुख्य कार्य भारण अनुखंड (निष्पादन योग्य कार्यक्रम) और उद्देश्य अनुखंड (जैसे, समायोजकों और संकलनकर्ताओ से निर्गत) को "स्वचालित कॉल" के साथ पुस्तकालयों (उच्च-स्तरीय भाषा "अंतर्निहित कार्य") में संबद्ध करना है। जो IEWFETCH द्वारा कुशलतापूर्वक भारण किया गया। बड़ी संख्या में संपादन विकल्प हैं, लेकिन इनमें से कुछ ही आमतौर पर पारंपरिक अनुप्रयोग के लिए नियोजित होते हैं।
भारण अनुखंड प्रारूप में एक प्रारंभिक "अवतरण कीर्तिमान" होता है, जिसके तुरंत बाद उस अवतरण कीर्तिमान के लिए स्थानांतरण और/या नियंत्रण कीर्तिमान होता है, जिसके बाद अवतरण कीर्तिमान और स्थानांतरण और/या नियंत्रण कीर्तिमान जोड़े अंत तक होते हैं।
अवतरण कीर्तिमान आमतौर पर बहुत बड़े होते हैं; स्थानांतरण और/या नियंत्रण कीर्तिमान छोटे हैं क्योंकि IEWFETCH के तीन स्थानांतरण और/या नियंत्रण कीर्तिमान बफ़र्स 260 बाइट्स पर तय किए गए हैं (छोटे स्थानांतरण और/या नियंत्रण कीर्तिमान निश्चित रूप से संभव हैं, लेकिन 260 बाइट्स अधिकतम संभव हैं, और IEWL यह सुनिश्चित करता है कि यह यदि आवश्यक हो तो, अगले अवतरण कीर्तिमान से पहले, आवश्यकतानुसार अतिरिक्त स्थानांतरण कीर्तिमान सम्मिलित करके सीमा का अनुपालन किया जाता है; इस विशेष मामले में, कीर्तिमान का क्रम हो सकता है: ..., अवतरण कीर्तिमान, स्थानांतरण कीर्तिमान, ..., नियंत्रण कीर्तिमान , अवतरण कीर्तिमान, ...)।
स्थानांतरण और/या नियंत्रण कीर्तिमान बफ़र के भीतर एक विशेष बाइट "अक्षम थोड़ा घुमाव" संचार क्षेत्र के रूप में उपयोग किया जाता है, और इसे एक अद्वितीय मान के लिए प्रारंभ किया जाता है। उस स्थानांतरण और/या नियंत्रण कीर्तिमान के लिए पठित सीसीडब्ल्यू में कार्यक्रम-नियंत्रित क्रम भंग थोड़ा सम्मुचय है। संसाधक को सूचित किया जाता है जब उस सीसीडब्ल्यू को एक विशेष आईओएस निकास के माध्यम से चैनल द्वारा पहुँचाया जाता है। इस बिंदु पर संसाधक "अक्षम थोड़ा घुमाव" परिपथ (कभी-कभी "दुनिया में सबसे छोटा परिपथ" कहा जाता है) में प्रवेश करता है। एक बार जब वह बाइट अपने प्रारंभिक मूल्य से बदल जाता है, तो सीपीयू थोड़ा घुमाव से बाहर निकल जाता है, और स्थानांतरण और/या नियंत्रण कीर्तिमान और अगले अवतरण कीर्तिमान के बीच संचार माध्यम के "अंतर" के दौरान स्थानांतरण होता है। यदि स्थानांतरण अगले कीर्तिमान से पहले समाप्त हो जाता है, तो पढ़नें के बाद NOP CCW को TIC में बदल दिया जाएगा, और अगले बफर का उपयोग करके भारण और स्थानांतरण आगे बढ़ेगा; यदि नहीं, तो चैनल NOP CCW पर रुकेगा, जब तक कि IEWFETCH द्वारा इसे अन्य विशेष IOS निकास के माध्यम से पुनः आरंभ नहीं किया जाता है। तीन बफ़र्स एक सतत परिपत्र कतार में हैं, प्रत्येक अगले की ओर इशारा करता है, और पिछले एक की ओर इशारा करता है, और तीन बफ़र्स को पुनः उपयोग किया जाता है क्योंकि वे लगातार भारण और स्थानांतरित होते हैं।
IEWFETCH, इस प्रकार, किसी भी व्यावहारिक आकार के भारक अनुखंड को कम से कम समय में भारक और स्थानांतरित कर सकता है।
गतिशील संयोजक
गतिशील संयोजक भारक एक अन्य प्रकार का भारक है जो पहले से भारण चल रहे कार्यक्रमो के लिए साझा पुस्तकालय (जैसे .so दस्तावेजों .dll दस्तावेजों या .dylib दस्तावेजों) को भारण और संयोजन करता है।
यह भी देखें
- कंपाइल एंड गो सिस्टम
- डीएलएल नरक
- प्रत्यक्ष बंधन
- डायनेमिक बाइंडिंग (कंप्यूटिंग)
- गतिशील मृत कोड उन्मूलन
- गतिशील प्रेषण
- गतिशील पुस्तकालय
- डायनेमिक लिंकर
- गतिशील लोडिंग
- डायनामिक-लिंक लाइब्रेरी
- जीएनयू लिंकर
- पुस्तकालय (कम्प्यूटिंग)
- लिंकर (कंप्यूटिंग)
- नाम सजावट
- पूर्वबाध्यकारी
- प्रीलिंकिंग
- स्थानांतरण (कंप्यूटर विज्ञान)
- स्थानांतरण तालिका
- शेबांग (यूनिक्स)
- स्टेटिक लाइब्रेरी
- सोना (लिंकर)
- प्रीलिंक
- बग संगतता
संदर्भ
- ↑ "exec". The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition. The Open Group. Retrieved 2008-06-23.
- ↑ IBM Corporation (1972). IBM OS MVT Supervisor (PDF).
- ↑ IBM Corporation (1972). IBM OS Linkage Editor and Loader (PDF).