लोडर (कंप्यूटिंग): Difference between revisions

From Vigyanwiki
No edit summary
 
(21 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Short description|Part of an operating system}}
{{Short description|Part of an operating system}}
[[कम्प्यूटिंग|परिकलक प्रणाली]] में एक लोडर [[ऑपरेटिंग सिस्टम|प्रचालन]] [[कम्प्यूटिंग|प्रणाली]] का एक हिस्सा होता है जो [[कंप्यूटर प्रोग्राम|कार्यक्रमों]] और [[पुस्तकालय (कम्प्यूटिंग)|पुस्तकालयों]] को लोड करने के लिए जिम्मेदार होते हैं। यह कार्यक्रम शुरू करने की प्रक्रिया में आवश्यक कदमों में से एक है, क्योंकि यह कार्यक्रम को स्मृति में रखता है और उन्हें निष्पादन के लिए तैयार करता है। एक कार्यक्रम को लोड करने में एक [[कंप्यूटर प्रोग्राम|निष्पादन योग्य]] [[कंप्यूटर प्रोग्राम|दस्तावेज़]] की [[कंप्यूटर प्रोग्राम|स्मृति-प्रतिचित्रण]] शामिल होती है जिसमें स्मृति में कार्यक्रम निर्देश होते हैं और फिर निष्पादन योग्य को चलाने के लिए तैयार करने के लिए अन्य आवश्यक प्रारंभिक संचालन करते हैं। एक बार लोड हो जाने पर, प्रचालन प्रणाली लोड किए गए कार्यक्रम संकेत पर नियंत्रण पास करके कार्यक्रम प्रारम्भ करता है।
[[कम्प्यूटिंग|परिकलक प्रणाली]] में एक लोडर (भारक) एक [[ऑपरेटिंग सिस्टम|प्रचालन]] [[कम्प्यूटिंग|प्रणाली]] का एक हिस्सा होता है जो [[कंप्यूटर प्रोग्राम|प्रोग्राम]] और [[कम्प्यूटिंग|परिकलक]] संग्रह को लोड करने के लिए उत्तरदायी होता है। यह एक प्रोग्राम शुरू करने की प्रक्रिया में आवश्यक चरणों में से एक है, क्योंकि यह प्रोग्राम को मेमोरी में रखता है और उन्हें निष्पादन के लिए तैयार करता है। किसी प्रोग्राम को लोड करने में [[कंप्यूटर प्रोग्राम|स्मृति- प्रतिचित्रण]] या मेमोरी में प्रोग्राम निर्देशों वाली [[कंप्यूटर प्रोग्राम|निष्पादन योग्य]] संचिका की सामग्री की प्रतिलिपि बनाना शामिल है और फिर निष्पादन योग्य को चलाने के लिए तैयार करने के लिए अन्य आवश्यक प्रारंभिक संचालन करना शामिल है। एक बार लोड हो जाने के बाद, [[ऑपरेटिंग सिस्टम|प्रचालन]] [[कम्प्यूटिंग|प्रणाली]] लोड किए गए प्रोग्राम कोड पर नियंत्रण पास करके प्रोग्राम शुरू करता हैI


कार्यक्रम लोडिंग का समर्थन करने वाले सभी प्रचालन प्रणाली में लोडर होते हैं, अत्यधिक विशिष्ट परिकलक प्रणाली को छोड़कर, जिनके पास केवल विशेष प्रोग्राम का एक निश्चित सेट होता है। [[अंतः स्थापित प्रणाली|अंत:स्थापित प्रणाली]] में आमतौर पर लोडर नहीं होते हैं, और इसके बजाय, संकेत को सीधे ROM या इसी तरह से निष्पादित किया जाता है। प्रचालन प्रणाली को स्वयं लोड करने के लिए, [[बूटिंग]] के भाग के रूप में, एक विशेष [[बूट लोडर]] का उपयोग किया जाता है। कई प्रचालन प्रणाली में, लोडर स्मृति में स्थायी रूप से रहता है, हालांकि कुछ प्रचालन प्रणाली जो [[आभासी मेमोरी|आभासी स्मृति]] का समर्थन करते हैं, लोडर को स्मृति के उस क्षेत्र में स्थित होने की अनुमति दे सकते हैं जो [[पेजिंग|पेजेबल]] है।
प्रोग्राम लोडिंग का समर्थन करने वाले सभी प्रचालन प्रणाली में लोडर होते हैं, अत्यधिक विशिष्ट परिकलक प्रणाली को छोड़कर, जिनके पास केवल विशेष प्रोग्राम का एक निश्चित सेट होता है। [[अंतः स्थापित प्रणाली|अंत:स्थापित प्रणाली]] में आमतौर पर लोडर नहीं होते हैं, और इसके जगह, कोड को सीधे ROM (रोम) या इसी तरह से निष्पादित किया जाता है। प्रचालन प्रणाली को स्वयं लोड करने के लिए, [[बूटिंग]] के भाग के रूप में, एक विशेष [[बूट लोडर|बूट]] लोडर का उपयोग किया जाता है। कई प्रचालन प्रणाली में, लोडर स्थायी रूप से मेमोरी में रहता है, हालांकि कुछ प्रचालन प्रणाली जो की [[आभासी मेमोरी|आभासी]] मेमोरी का समर्थन करते हैं, लोडर को मेमोरी के उस क्षेत्र में स्थित होने की अनुमति दे सकते हैं जो [[पेजिंग|पेजेबल]] होते है।


एक प्रचालन प्रणाली के मामले में जो आभासी स्मृति का समर्थन करता है, लोडर वास्तव में निष्पादन योग्य दस्तावेज़ों की सामग्री को स्मृति में प्रतिलिपि नहीं कर सकता है, लेकिन केवल आभासी स्मृति उपसमूह को घोषित कर सकता है कि संचालन को शामिल करने के लिए आवंटित स्मृति कार्यक्रम के संकेत के बीच प्रतिचित्रिण है, और संबंधित निष्पादन योग्य दस्तावेज़ की सामग्री। ([[मेमोरी-मैप की गई फ़ाइल|स्मृति-प्रतिचित्र किया गया दस्तावेज़]] देखें।) आभासी स्मृति उपसमूह को तब सूचित किया जाता है कि स्मृति के उस क्षेत्र वाले पृष्ठों को मांग पर भरने की आवश्यकता होती है यदि और जब कार्यक्रम निष्पादन वास्तव में अपूर्ण स्मृति के उन क्षेत्रों को हिट करता है। इसका मतलब यह हो सकता है कि कार्यक्रम के संकेत के कुछ हिस्सों को वास्तव में स्मृति में तब तक प्रतिलिपि नहीं किया जाता है जब तक कि उनका वास्तव में उपयोग नहीं किया जाता है, और अप्रयुक्त संकेत को कभी भी स्मृति में लोड नहीं किया जाता है।
वर्चुअल मेमोरी का समर्थन करने वाले प्रचालन प्रणाली के मामले में, लोडर वास्तव में निष्पादन योग्य फ़ाइलों की सामग्री को मेमोरी में प्रतिलिपि नहीं कर सकता है, बल्कि वर्चुअल मेमोरी सबसिस्टम को केवल यह घोषित कर सकता है कि चल रहे प्रोग्राम के कोड और संबंधित निष्पादन योग्य फ़ाइल की सामग्री को शामिल करने के लिए आवंटित मेमोरी के क्षेत्र के बीच मैपिंग है। ([[मेमोरी-मैप की गई फ़ाइल|स्मृति-प्रतिचित्र किया गया दस्तावेज़]] देखें।) वर्चुअल मेमोरी उपसमूह को तब अवगत कराया जाता है कि मेमोरी के उस क्षेत्र वाले पृष्ठों को मांग पर भरने की आवश्यकता होती है यदि और जब प्रोग्राम निष्पादन वास्तव में अपूर्ण मेमोरी के उन क्षेत्रों को हिट करता है। इसका मतलब यह हो सकता है कि प्रोग्राम के कोड के कुछ हिस्सों को वास्तव में मेमोरी में तब तक प्रतिलिपि नहीं किया जाता है जब तक कि उनका वास्तव में उपयोग नहीं किया जाता है, और अप्रयुक्त कोड को कभी भी मेमोरी में लोड नहीं किया जा सकता है।


== जिम्मेदारियां ==
== जिम्मेदारियां ==
[[यूनिक्स]] में, लोडर [[सिस्टम कॉल|प्रणाली कॉल]] <code>निष्पादन()</code>के लिये [[सिस्टम कॉल|प्रबंधकर्ता]] है।<ref>{{cite web |url=http://www.opengroup.org/onlinepubs/000095399/functions/exec.html |title=exec |publisher=The Open Group |work=The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition |access-date=2008-06-23}}</ref> यूनिक्स लोडर के कार्यों में शामिल हैं:
[[यूनिक्स]] में, लोडर [[सिस्टम कॉल|प्रणाली आह्वान]] <code>निष्पादन()</code>के लिये [[सिस्टम कॉल|प्रबंधकर्ता]] है।<ref>{{cite web |url=http://www.opengroup.org/onlinepubs/000095399/functions/exec.html |title=exec |publisher=The Open Group |work=The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition |access-date=2008-06-23}}</ref> यूनिक्स लोडर के कार्यों में शामिल हैं:


# सत्यापन (अनुमतियां, स्मृति आवश्यकताएं आदि);
# सत्यापन (अनुमतियां, मेमोरी आवश्यकताएं आदि);
# [[कंप्यूटर प्रोग्राम|स्मृति]]-[[कंप्यूटर प्रोग्राम|प्रतिचित्रण]] निष्पादन योग्य वस्तु डिस्क से [[कंप्यूटर प्रोग्राम|मुख्य स्मृति]] तक;
# [[कंप्यूटर प्रोग्राम|स्मृति]]-[[कंप्यूटर प्रोग्राम|प्रतिचित्रण]] निष्पादन योग्य वस्तु डिस्क से [[कंप्यूटर प्रोग्राम|मुख्य]] मेमोरी तक;
# आभासी स्मृति में [[कमांड-लाइन तर्क|कमांड-लाइन तर्कों]] की प्रतिलिपि बनाना;
# वर्चुअल मेमोरी में [[कमांड-लाइन तर्क|आदेश पंक्ति तर्कों]] की प्रतिलिपि बनाना;
# आरंभ [[प्रोसेसर रजिस्टर|पंजिका]] (जैसे, क्रमबद्ध ढेर सूचक);
# आरंभ [[प्रोसेसर रजिस्टर|पंजिका]] (जैसे, क्रमबद्ध ढेर सूचक);
# कार्यक्रम प्रवेश स्थान (<code>आरम्भ</code>) पर जाएं।
# प्रोग्राम प्रवेश स्थान (<code>आरम्भ</code>) पर जाएं।


[[Microsoft Windows|माइक्रोसॉफ्ट विंडोज़]] 7 और बाद में, लोडर ntdll.dll में <code>LdrInitializeThunk</code> प्रकार्य होता है, जो निम्न कार्य करता है:
[[Microsoft Windows|माइक्रोसॉफ्ट विंडोज़]] 7 और बाद में, लोडर ntdll.dll में <code>LdrInitializeThunk</code> निहित होता है, जो निम्न कार्य करता है:


# डीएलएल में ही संरचनाओं का प्रारंभ (यानी [[कंप्यूटर प्रोग्राम|महत्वपूर्ण]] [[कंप्यूटर प्रोग्राम|खंड]], अनुखंड सूची);
# डीएलएल (DLL) में ही संरचनाओं का आरंभीकरण (अर्थात [[महत्वपूर्ण खंड]], मॉड्यूल सूची));
# लोड करने के लिए निष्पादन योग्य का सत्यापन;
# लोड करने के लिए निष्पादन योग्य का सत्यापन;
# एक [[गतिशील स्मृति आवंटन|ढेर]] बनाना (प्रकार्य <code>RtlCreateHeap</code>के माध्यम से);
# एक [[गतिशील स्मृति आवंटन|ढेर]] का निर्माण (प्रकार्य <code>RtlCreateHeap</code>के माध्यम से);
# पर्यावरण परिवर्तनीय विभाग और कार्यप्रणाली विभाग का आवंटन;
# पर्यावरण चर ब्लॉक और पाथ ब्लॉक का आवंटन;
# निष्पादन योग्य और ntdll को अनुखंड सूची में जोड़ना (एक [[कंप्यूटर प्रोग्राम|दोगुनी]]-[[कंप्यूटर प्रोग्राम|श्रृंखलित]] [[प्रोसेसर रजिस्टर|सूची]]);
# निष्पादन योग्य और NTDLL को मॉड्यूल सूची में जोड़ना (एक [[कंप्यूटर प्रोग्राम|दोगुनी]]-[[कंप्यूटर प्रोग्राम|श्रृंखलित]] [[प्रोसेसर रजिस्टर|सूची]]);
# कई महत्वपूर्ण कार्यों को प्राप्त करने के लिए [[कंप्यूटर प्रोग्राम|KERNEL32.DLL]] लोड हो रहा है उदाहरण के लिए <code>BaseThreadInitThunk</code>;
# कई महत्वपूर्ण कार्यों को प्राप्त करने के लिए [[कंप्यूटर प्रोग्राम|KERNEL32.DLL]] लोड करना, उदाहरण के लिए <code>BaseThreadInitThunk</code>;
# निष्पादन योग्य के आयात को पुनः लोड करना (यानी [[प्रोसेसर रजिस्टर|गतिशील]]-[[प्रोसेसर रजिस्टर|श्रृंखलित]] [[पुस्तकालय (कम्प्यूटिंग)|पुस्तकालयों]]) (आयात के आयात, उनके आयात आदि की जांच करें);
# निष्पादन योग्य के आयात (यानी [[डायनामिक-लिंक लाइब्रेरी]]) को दोबारा लोड करना (आयात के आयात, उनके आयात आदि की जांच करें);
# डिबग प्रणाली में, प्रणाली विराम बिंदु बढाएँ;
# डिबग प्रणाली में, प्रणाली विराम बिंदु बढाएँ;
# डीएलएलएस की शुरूआत;
# डीएलएलएस (DLLs) की शुरूआत;
# कचरा संग्रहण;
# कचरा संग्रहण;
# लोडर प्रकार्य को दिए गए संदर्भ मापदण्ड पर <code>NtContinue</code> को कॉल करना (यानी <code>RtlUserThreadStart</code> पर कूदना, जो निष्पादन योग्य प्रारंभ करेगा)
# लोडर कार्य को दिए गए संदर्भ मापदण्ड पर<code>NtContinu</code> आह्वान करना (यानी <code>RtlUserThreadStart</code> पर चले जाना, जो निष्पादन योग्य प्रारंभ करेगा)


== लोडर स्थानांतरित करना ==
== लोडर स्थानांतरित करना ==
कुछ प्रचालन प्रणाली को [[कंप्यूटर प्रोग्राम|लोडर को]] [[कंप्यूटर प्रोग्राम|स्थानांतरित]] करने की आवश्यकता होती है, जो लोडिंग प्रारम्भ में पते में अंतर की भरपाई के लिए निष्पादन योग्य में पतों (संकेतों) को समायोजित करता है। प्रचालन प्रणाली जिन्हें लोडर स्थानांतरित करने की आवश्यकता होती है, वे हैं जिनमें एक कार्यक्रम हमेशा एड्रेस स्पेस में एक ही स्थान पर लोड नहीं होता है और जिसमें कार्यक्रम के [[आधार पता]] से अनुचित्रण के बजाय संकेत निरपेक्ष एड्रेस होते हैं। कुछ जाने-माने उदाहरण IBM के [[कंप्यूटर प्रोग्राम|OS/360]] उनके [[कंप्यूटर प्रोग्राम|प्रणाली/360]] मेनफ्रेम के लिए हैं, और इसके वंशज, जिनमें [[कंप्यूटर प्रोग्राम|z/वास्तुकला]] मेनफ्रेम के लिए [[कंप्यूटर प्रोग्राम|z/OS]] सम्मिलित है।
कुछ प्रचालन प्रणाली को [[कंप्यूटर प्रोग्राम|लोडर को]] [[कंप्यूटर प्रोग्राम|स्थानांतरित]] करने की आवश्यकता होती है, उस पते में भिन्नता की भरपाई के लिए जो निष्पादन योग्य में पतों (पॉइंटर्स) को समायोजित करता है, जिस पर लोडिंग शुरू होती है। प्रचालन प्रणाली जिन्हें लोडर स्थानांतरित करने की आवश्यकता होती है, वे हैं जिनमें एक प्रोग्राम हमेशा एक ही पता स्थान पर लोड नहीं होता है और जिसमें प्रोग्राम [[Index.php?title=आधार पता|आधार पता]] से अनुचित्रित होने के स्थान पर संकेत पूर्ण पते होते हैं। कुछ जाने-माने उदाहरण हैं IBM का OS/360 उनके सिस्टम/360 मेनफ्रेम के लिए, और इसके वंशज, जिनमें z/आर्किटेक्चर मेनफ्रेम के लिए z/OS शामिल है।


===ओएस/360 और व्युत्पन्न (शब्द) ===
===ओएस/360 और व्युत्पन्न ===
OS/360 और वंशज प्रणालियों में, (विशेषाधिकार प्राप्त) प्रचालन प्रणाली सुविधा को IEWFETCH कहा जाता है,<ref>{{cite book|last=IBM Corporation|title=IBM OS MVT Supervisor|year=1972|url=http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/360/os/R21.0_Mar72/plm/GY28-6659-6_MVT_Supervisor_PLM_Release_21_Mar72.pdf}}</ref> और OS पर्यवेक्षक का एक आंतरिक घटक है, जबकि (गैर-विशेषाधिकार प्राप्त) लोडर आवेदन पत्र एक ही तरह के कई कार्य कर सकता है, साथ ही संयोजन सम्पादक के भी, और OS पर्यवेक्षक के लिए पूरी तरह से बाहरी है (हालांकि यह निश्चित रूप से कई पर्यवेक्षक सेवाओं का उपयोग करता है)।
OS/360 और वंशज प्रणालियों में, (विशेषाधिकार प्राप्त) प्रचालन प्रणाली सुविधा को IEWFETCH कहा जाता है,<ref>{{cite book|last=IBM Corporation|title=IBM OS MVT Supervisor|year=1972|url=http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/360/os/R21.0_Mar72/plm/GY28-6659-6_MVT_Supervisor_PLM_Release_21_Mar72.pdf}}</ref> और OS पर्यवेक्षक का एक आंतरिक घटक है, जबकि (गैर-विशेषाधिकार प्राप्त) लोडर एप्लिकेशन एक ही तरह के कई कार्य कर सकता है, साथ ही संयोजन सम्पादक के भी, और OS पर्यवेक्षक के लिए पूरी तरह से बाहरी है (हालांकि यह निश्चित रूप से कई पर्यवेक्षक सेवाओं का उपयोग करता है)।


IEWFETCH एक अत्यधिक विशिष्ट [[कंप्यूटर प्रोग्राम|चैनल]] [[कंप्यूटर प्रोग्राम|कार्यक्रम]] का उपयोग करता है, और सैद्धांतिक रूप से DASD संचार माध्यम की एक क्रांति (लगभग 16.6 ms अधिकतम, 8.3 ms औसत, "पैतृक संपत्ति" 3,600 rpm ड्राइव पर) के भीतर एक संपूर्ण निष्पादन योग्य को लोड करना और स्थानांतरित करना संभव है। लोड मॉड्यूल के लिए जो आकार में एक ट्रैक से अधिक है, संचार माध्यम की क्रांति खोए बिना पूरे मॉड्यूल को लोड करना और स्थानांतरित करना भी संभव है।
IEWFETCH अत्यधिक विशिष्ट [[चैनल प्रोग्राम]] का उपयोग करता है, और सैद्धांतिक रूप से DASD मीडिया की एक क्रांति (लगभग 16.6 ms अधिकतम, 8.3 ms औसत, "लीगेसी" 3,600 rpm ड्राइव पर) के भीतर एक पूरे निष्पादन योग्य को लोड करना और स्थानांतरित करना संभव है। लोड मॉड्यूल के लिए जो आकार में एक प्रकार से अधिक है, मीडिया की क्रांति खोए बिना पूरे मॉड्यूल को लोड करना और स्थानांतरित करना भी संभव करते है।


IEWFETCH में तथाकथित अधिचित्रित संरचनाओं के लिए सुविधाए भी सम्मिलित हैं, और जो न्यूनतम स्मृति मॉड्यूल में संभावित रूप से बहुत बड़े निष्पादन योग्य चलाने की सुविधा प्रदान करती हैं (OS के कुछ संस्करणों पर 44 KB जितना छोटा, लेकिन 88 KB और 128 KB अधिक सामान्य हैं)।
IEWFETCH में तथाकथित अधिचित्रित संरचनाओं के लिए सुविधाओं को भी शामिल करता है, और जो न्यूनतम मेमोरी अनुखंड में संभावित रूप से बहुत बड़े निष्पादन योग्य चलाने की सुविधा प्रदान करती हैं (OS के कुछ संस्करणों पर 44 KB जितना छोटा, लेकिन 88 KB और 128 KB अधिक सामान्य हैं)।


OS का [[कर्नेल (ऑपरेटिंग सिस्टम)|केन्द्रक]] (पर्यवेक्षक का हमेशा निवासी हिस्सा) स्वयं इस तरह से स्वरूपित होता है जो IEWFETCH के एक स्ट्रिप्ड-डाउन संस्करण के साथ संगत होता है। सामान्य निष्पादकों के विपरीत, OS का केन्द्रक "स्कैटर लोडेड" है: केन्द्रक के कुछ हिस्सों को स्मृति के विभिन्न भागों में लोड किया जाता है; विशेष रूप से, कुछ प्रणाली तालिकाओं को प्रारंभिक 64 KB के अंतर्गत होना चाहिए, जबकि अन्य तालिकाएँ और संकेत कहीं और स्थित हो सकते हैं।
OS का [[कर्नेल (ऑपरेटिंग सिस्टम)|केन्द्रक]] (पर्यवेक्षक का हमेशा निवासी हिस्सा) स्वयं इस तरह से स्वरूपित होता है जो IEWFETCH के एक अनावृत संस्करण के साथ संगत होता है। सामान्य निष्पादकों के विपरीत, OS का केन्द्रक "प्रकीर्ण भारित" है: केन्द्रक के कुछ हिस्सों को मेमोरी के विभिन्न भागों में लोड किया जाता है; विशेष रूप से, कुछ प्रणाली तालिकाओं को प्रारंभिक 64 KB के अंतर्गत होना चाहिए, जबकि अन्य तालिकाएँ और कोड कहीं और भी स्थित हो सकते हैं।


प्रणाली के [[कंप्यूटर प्रोग्राम|संयोजन संपादक]] आवेदन पत्र का नाम IEWL है।<ref>{{cite book|last=IBM Corporation|title=IBM OS Linkage Editor and Loader|year=1972|url=http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/360/os/R21.0_Mar72/GC28-6538-9_OS_Linkage_Editor_and_Loader_Release_21_Jan72.pdf}}</ref> IEWL का मुख्य कार्य लोड मॉड्यूल (निष्पादन योग्य कार्यक्रम) और उद्देश्य मॉड्यूल (जैसे, कोडांतरक और संकलक से निर्गत) को "स्वचालित कॉल" के साथ पुस्तकालयों (उच्च-स्तरीय भाषा "अंतर्निहित कार्य") में संबद्ध करना है, जिसे IEWFETCH द्वारा सबसे कुशलतापूर्वक लोड किया जा सकता है। बड़ी संख्या में संपादन विकल्प हैं, लेकिन इनमें से कुछ ही आमतौर पर पारंपरिक अनुप्रयोग के लिए नियोजित होते हैं।
प्रणाली के [[कंप्यूटर प्रोग्राम|संयोजन संपादक]] उपयोग का नाम IEWL है।<ref>{{cite book|last=IBM Corporation|title=IBM OS Linkage Editor and Loader|year=1972|url=http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/360/os/R21.0_Mar72/GC28-6538-9_OS_Linkage_Editor_and_Loader_Release_21_Jan72.pdf}}</ref> IEWL का मुख्य कार्य लोड मॉड्यूल (निष्पादन योग्य प्रोग्राम) और उद्देश्य मॉड्यूल (जैसे, कोडांतरक और संकलक से निर्गत) को "स्वतः आह्वान" के साथ पुस्तकालयों (उच्च-स्तरीय भाषा "अंतर्निहित कार्य") में संबद्ध करना है, जिसे IEWFETCH द्वारा सबसे कुशलतापूर्वक लोड किया जा सकता है। बड़ी संख्या में संपादन विकल्प हैं, लेकिन एक पारंपरिक अनुप्रयोग के लिए इनमें से कुछ ही आमतौर पर नियोजित होते हैं।


लोड मॉड्यूल प्रारूप में एक प्रारंभिक "टेक्स्ट रिकॉर्ड" होता है, जिसके तुरंत बाद उस टेक्स्ट रिकॉर्ड के लिए "स्थानांतरण और/या नियंत्रण रिकॉर्ड" होता है, जिसके बाद टेक्स्ट रिकॉर्ड और स्थानांतरण और/या नियंत्रण रिकॉर्ड जोड़े अंत तक होते हैं।
लोड मॉड्यूल प्रारूप में प्रारंभिक "पाठ अभिलेख" शामिल होता है, जिसके तुरंत बाद उस पाठ अभिलेख के लिए "स्थानांतरण और/या नियंत्रण अभिलेख" होता है, इसके बाद पाठ रिकॉर्ड और स्थानांतरण और/या नियंत्रण रिकॉर्ड जोड़े के अंत तक, मॉड्यूल के अंत तक होता है।


टेक्स्ट रिकॉर्ड सामान्यतः बहुत बड़े होते हैं; स्थानांतरण और/या नियंत्रण रिकॉर्ड छोटे हैं क्योंकि IEWFETCH के तीन स्थानांतरण और/या नियंत्रण रिकॉर्ड बफ़र्स 260 बाइट्स पर तय किए गए हैं (छोटे स्थानांतरण और/या नियंत्रण रिकॉर्ड निश्चित रूप से संभव हैं, लेकिन 260 बाइट्स अधिकतम संभव हैं, और IEWL यह सुनिश्चित करता है कि यह अगले पाठ रिकॉर्ड से पहले आवश्यकतानुसार अतिरिक्त स्थानांतरण रिकॉर्ड सम्मिलित करके सीमा का अनूपालन किया जाता है; इस विशेष मामले में, रिकॉर्ड का क्रम हो सकता है: ..., टेक्स्ट रिकॉर्ड, स्थानांतरण रिकॉर्ड, ..., नियंत्रण रिकॉर्ड, टेक्स्ट रिकॉर्ड, ...)।
पाठ अभिलेख आमतौर पर बहुत बड़े होते हैं; स्थानांतरण और/या नियंत्रण रिकॉर्ड छोटे हैं क्योंकि IEWFETCH के तीन स्थानांतरण और/या नियंत्रण रिकॉर्ड बफ़र्स 260 बाइट्स पर तय किए गए हैं (छोटे स्थानांतरण और/या नियंत्रण रिकॉर्ड निश्चित रूप से संभव हैं, लेकिन 260 बाइट्स अधिकतम संभव हैं, और IEWL यह सुनिश्चित करता है कि यह अगले पाठ अभिलेख से पहले आवश्यकतानुसार अतिरिक्त स्थानांतरण अभिलेख सम्मिलित करके सीमा का अनुपालन किया जाता है; इस विशेष मामले में, अभिलेख का क्रम हो सकता है: पाठ अभिलेख, स्थानांतरण रिकॉर्ड, नियंत्रण अभिलेख, पाठ अभिलेख)।


स्थानांतरण और/या नियंत्रण रिकॉर्ड बफ़र के भीतर एक विशेष बाइट "अक्षम बिट स्पिन" संचार क्षेत्र के रूप में उपयोग किया जाता है, और इसे एक अद्वितीय मान के लिए प्रारंभ किया जाता है। उस स्थानांतरण और/या नियंत्रण रिकॉर्ड के लिए पठित सीसीडब्ल्यू में कार्यक्रम-नियंत्रित इंटरप्ट बिट तय किया जाता है। संसाधक को सूचित किया जाता है जब उस सीसीडब्ल्यू को एक विशेष [[कंप्यूटर प्रोग्राम|आईओएस]] निकास के माध्यम से चैनल द्वारा एक्सेस किया जाता है। इस बिंदु पर संसाधक "अक्षम बिट स्पिन" परिपथ (कभी-कभी "दुनिया में सबसे छोटा परिपथ" कहा जाता है) में प्रवेश करता है। एक बार जब वह बाइट अपने प्रारंभिक मूल्य से बदल जाता है, तो सीपीयू बिट स्पिन से बाहर निकल जाता है, और स्थानांतरण और/या नियंत्रण रिकॉर्ड और अगले मूलपाठ रिकॉर्ड के बीच संचार माध्यम के "अंतर" के दौरान स्थानांतरण होता है। यदि स्थानांतरण अगले रिकॉर्ड से पहले समाप्त हो जाता है, तो NOP CCW को पढ़नें के बाद TIC में बदल दिया जाएगा, और अगले बफर का उपयोग करके लोडिंग और स्थानांतरण आगे बढ़ेगा; यदि नहीं, तो चैनल NOP CCW पर रुकेगा, जब तक कि IEWFETCH द्वारा इसे अन्य विशेष IOS निकास के माध्यम से पुनः आरंभ नहीं किया जाता है। तीन बफ़र्स एक सतत परिपत्र कतार में हैं, प्रत्येक अगले की ओर इशारा करता है, और पिछले एक की ओर इशारा करता है, और तीन बफ़र्स को पुनः उपयोग किया जाता है क्योंकि वे लगातार लोड और स्थानांतरित होते हैं।
स्थानांतरण और/या नियंत्रण रिकॉर्ड बफ़र के भीतर एक विशेष बाइट का उपयोग "अक्षम बिट स्पिन" संचार क्षेत्र के रूप में किया जाता है, और इसे एक अद्वितीय मान के लिए प्रारंभ किया जाता है। उस स्थानांतरण और/या नियंत्रण रिकॉर्ड के लिए रीड सीसीडब्ल्यू में प्रोग्राम नियंत्रित रूकावट बिट सेट है। संसाधक को सूचित किया जाता है जब उस सीसीडब्ल्यू को एक विशेष [[कंप्यूटर प्रोग्राम|आईओएस]] निकास के माध्यम से चैनल द्वारा अभिगम किया जाता है। इस बिंदु पर संसाधक "अक्षम अंश घुमाव" परिपथ (कभी-कभी "दुनिया में सबसे छोटा परिपथ" कहा जाता है) में प्रवेश करता है। एक बार जब वह बाइट अपने प्रारंभिक मूल्य से बदल जाता है, तो सीपीयू अंश घुमाव से बाहर निकल जाता है, और स्थानांतरण होता है और स्थानांतरण और/या नियंत्रण अभिलेख और अगले पाठ अभिलेख के बीच संचार माध्यम "अंतर" के दौरान होता है। यदि स्थानांतरण अगले अभिलेख से पहले समाप्त हो जाता है, तो पढ़नें के बाद NOP CCW को TIC में बदल दिया जाएगा, और लोडिंग और स्थानांतरित करना अगले बफर का उपयोग करके आगे बढ़ेगा; यदि नहीं, तो चैनल NOP CCW पर रुकेगा, जब तक कि IEWFETCH द्वारा इसे अन्य विशेष IOS निकास के माध्यम से पुनः आरंभ नहीं किया जाता है। तीन बफ़र एक सतत गोलाकार कतार में हैं, प्रत्येक अपने अगले की ओर इशारा करता है, और अंतिम पहले की ओर इशारा करता है, और तीन बफ़र्स को लगातार लोडिंग और स्थानांतरित करने के रूप में पुन: उपयोग किया जाता है।


IEWFETCH, इस प्रकार, किसी भी व्यावहारिक आकार के लोड अनुखंड को कम से कम समय में लोड और स्थानांतरित कर सकता है।
IEWFETCH, इस प्रकार, किसी भी व्यावहारिक आकार के लोड मॉड्यूल को लोड और स्थानांतरित कर सकता है, और न्यूनतम संभव समय में।


== गतिशील संयोजक ==
== गतिशील संयोजक ==
[[गतिशील लिंकर|गतिशील]] [[गतिशील लिंकर|संयोजक लोडर]] एक अन्य प्रकार का लोडर है जो पहले से लोड चल रहे प्रोग्रामों के लिए साझा पुस्तकालय (जैसे .so दस्तावेजों .dll दस्तावेजों या .dylib दस्तावेजों) को लोड और संयोजित करता है।
[[गतिशील लिंकर|गतिशील]] [[गतिशील लिंकर|संयोजक]] लोडर एक अन्य प्रकार का लोडर है जो पहले से लोड चल रहे प्रोग्रामों के लिए साझा पुस्तकालय (जैसे .so दस्तावेजों .dll दस्तावेजों या .dylib दस्तावेजों) को लोड और संयोजित करता है।
 
जहां इस तरह के साझा पुस्तकालयों को कई प्रक्रियाओं द्वारा साझा किया जा सकता है, साझा कोड की केवल एक प्रति संभवतः प्रत्येक प्रक्रिया के पता स्थान में एक अलग (आभासी) पते पर दिखाई दे रही है, साझा पुस्तकालय में कोड को स्थानांतरित करने योग्य होना आवश्यक है, अर्थात पुस्तकालय संपूर्ण में केवल स्व-संबंधी या कूटखंड आधार-सापेक्ष आंतरिक पतों का उपयोग करना चाहिए। कुछ प्रोसेसर के पास निर्देश होते हैं जो इसे सुविधाजनक बनाने के लिए स्व-सापेक्ष कोड-संदर्भों का उपयोग कर सकते हैं।


== यह भी देखें ==
== यह भी देखें ==
{{Portal|Computer programming}}
.[[कंपाइल|संकलन और जाओ प्रणाली]]
 
.[[डीएलएल]] [[हेल]]
 
.[[प्रत्यक्ष|प्रत्यक्ष बन्धन]]
 
.[[गतिशील]] [[बन्धन|बन्धन (संगणन)]]
 
.[[मृत|गतिशील मृत कोडउन्मूलन]]
 
.[[गतिशील]] [[प्रेषण]]
 
.[[गतिशील|गतिशील पुस्तकालय]]
 
.[[Llhhh|गतिशील लिंकर]]
 
.[[Tyiljf|गतिशील लोडिंग]]
 
.[[Tdfu|गतिशील-लिंक पुस्तकालय]]
 
.[[पुस्तकालय|जीएनयू संयोजक]]
 
.[[Hfhh|पुस्तकालय (संगणन)]]
 
.[[Jhvh|संयोजक (संगणन)]]
 
.[[Hgfh|नाम की सजावट]]
 
.[[Hghj|पूर्वबाध्यकारी]]
 
.[[Gfhjj|प्रारंभिक]]
 
.[[Hghj|स्थानांतरण (परिकलक विज्ञान)]]
 
.[[Fjkhg|स्थानांतरण तालिका]]
 
.[[Ggjj|शेबांग (यूनिक्स)]]
 
.[[Jggj|स्थैतिक पुस्तकालय]]
 
.[[Hghj|सोना (]][[Jhvh|संयोजक]])
 
.[[Ggjj|प्रारंभिक]]
 
.[[Hhhj|बग अनुकूलता]]


{{Div col|colwidth=20em}}
{{Div col|colwidth=20em}}
* [[कंपाइल एंड गो सिस्टम]]
 
* [[डीएलएल नरक]]
* [[प्रत्यक्ष बंधन]]
* [[डायनेमिक बाइंडिंग (कंप्यूटिंग)]]
* [[गतिशील मृत कोड उन्मूलन]]
* [[गतिशील प्रेषण]]
* [[गतिशील पुस्तकालय]]
* डायनेमिक लिंकर
* [[गतिशील लोडिंग]]
* डायनामिक-लिंक लाइब्रेरी
* [[जीएनयू लिंकर]]
* पुस्तकालय (कम्प्यूटिंग)
* [[लिंकर (कंप्यूटिंग)]]
* नाम सजावट
* [[पूर्वबाध्यकारी]]
* [[प्रीलिंक]]िंग
* [[स्थानांतरण (कंप्यूटर विज्ञान)]]
* [[स्थानांतरण तालिका]]
* [[शेबांग (यूनिक्स)]]
* [[स्टेटिक लाइब्रेरी]]
* [[सोना (लिंकर)]]
* प्रीलिंक
* बग संगतता
{{div col end}}




Line 89: Line 112:
{{Authority control}}
{{Authority control}}


{{DEFAULTSORT:Loader (Computing)}}[[Category: ऑपरेटिंग सिस्टम कर्नेल]] [[Category: कंप्यूटर पुस्तकालय]]
{{DEFAULTSORT:Loader (Computing)}}
 
 


[[Category: Machine Translated Page]]
[[Category:Created On 17/02/2023|Loader (Computing)]]
[[Category:Created On 17/02/2023]]
[[Category:Lua-based templates|Loader (Computing)]]
[[Category:Machine Translated Page|Loader (Computing)]]
[[Category:Multi-column templates|Loader (Computing)]]
[[Category:Pages using div col with small parameter|Loader (Computing)]]
[[Category:Pages with script errors|Loader (Computing)]]
[[Category:Templates Vigyan Ready|Loader (Computing)]]
[[Category:Templates that add a tracking category|Loader (Computing)]]
[[Category:Templates that generate short descriptions|Loader (Computing)]]
[[Category:Templates using TemplateData|Loader (Computing)]]
[[Category:Templates using under-protected Lua modules|Loader (Computing)]]
[[Category:Wikipedia fully protected templates|Div col]]
[[Category:ऑपरेटिंग सिस्टम कर्नेल|Loader (Computing)]]
[[Category:कंप्यूटर पुस्तकालय|Loader (Computing)]]

Latest revision as of 18:32, 20 April 2023

परिकलक प्रणाली में एक लोडर (भारक) एक प्रचालन प्रणाली का एक हिस्सा होता है जो प्रोग्राम और परिकलक संग्रह को लोड करने के लिए उत्तरदायी होता है। यह एक प्रोग्राम शुरू करने की प्रक्रिया में आवश्यक चरणों में से एक है, क्योंकि यह प्रोग्राम को मेमोरी में रखता है और उन्हें निष्पादन के लिए तैयार करता है। किसी प्रोग्राम को लोड करने में स्मृति- प्रतिचित्रण या मेमोरी में प्रोग्राम निर्देशों वाली निष्पादन योग्य संचिका की सामग्री की प्रतिलिपि बनाना शामिल है और फिर निष्पादन योग्य को चलाने के लिए तैयार करने के लिए अन्य आवश्यक प्रारंभिक संचालन करना शामिल है। एक बार लोड हो जाने के बाद, प्रचालन प्रणाली लोड किए गए प्रोग्राम कोड पर नियंत्रण पास करके प्रोग्राम शुरू करता हैI

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

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

जिम्मेदारियां

यूनिक्स में, लोडर प्रणाली आह्वान निष्पादन()के लिये प्रबंधकर्ता है।[1] यूनिक्स लोडर के कार्यों में शामिल हैं:

  1. सत्यापन (अनुमतियां, मेमोरी आवश्यकताएं आदि);
  2. स्मृति-प्रतिचित्रण निष्पादन योग्य वस्तु डिस्क से मुख्य मेमोरी तक;
  3. वर्चुअल मेमोरी में आदेश पंक्ति तर्कों की प्रतिलिपि बनाना;
  4. आरंभ पंजिका (जैसे, क्रमबद्ध ढेर सूचक);
  5. प्रोग्राम प्रवेश स्थान (आरम्भ) पर जाएं।

माइक्रोसॉफ्ट विंडोज़ 7 और बाद में, लोडर ntdll.dll में LdrInitializeThunk निहित होता है, जो निम्न कार्य करता है:

  1. डीएलएल (DLL) में ही संरचनाओं का आरंभीकरण (अर्थात महत्वपूर्ण खंड, मॉड्यूल सूची));
  2. लोड करने के लिए निष्पादन योग्य का सत्यापन;
  3. एक ढेर का निर्माण (प्रकार्य RtlCreateHeapके माध्यम से);
  4. पर्यावरण चर ब्लॉक और पाथ ब्लॉक का आवंटन;
  5. निष्पादन योग्य और NTDLL को मॉड्यूल सूची में जोड़ना (एक दोगुनी-श्रृंखलित सूची);
  6. कई महत्वपूर्ण कार्यों को प्राप्त करने के लिए KERNEL32.DLL लोड करना, उदाहरण के लिए BaseThreadInitThunk;
  7. निष्पादन योग्य के आयात (यानी डायनामिक-लिंक लाइब्रेरी) को दोबारा लोड करना (आयात के आयात, उनके आयात आदि की जांच करें);
  8. डिबग प्रणाली में, प्रणाली विराम बिंदु बढाएँ;
  9. डीएलएलएस (DLLs) की शुरूआत;
  10. कचरा संग्रहण;
  11. लोडर कार्य को दिए गए संदर्भ मापदण्ड परNtContinu आह्वान करना (यानी 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 दस्तावेजों) को लोड और संयोजित करता है।

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

यह भी देखें

.संकलन और जाओ प्रणाली

.डीएलएल हेल

.प्रत्यक्ष बन्धन

.गतिशील बन्धन (संगणन)

.गतिशील मृत कोडउन्मूलन

.गतिशील प्रेषण

.गतिशील पुस्तकालय

.गतिशील लिंकर

.गतिशील लोडिंग

.गतिशील-लिंक पुस्तकालय

.जीएनयू संयोजक

.पुस्तकालय (संगणन)

.संयोजक (संगणन)

.नाम की सजावट

.पूर्वबाध्यकारी

.प्रारंभिक

.स्थानांतरण (परिकलक विज्ञान)

.स्थानांतरण तालिका

.शेबांग (यूनिक्स)

.स्थैतिक पुस्तकालय

.सोना (संयोजक)

.प्रारंभिक

.बग अनुकूलता


संदर्भ

  1. "exec". The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition. The Open Group. Retrieved 2008-06-23.
  2. IBM Corporation (1972). IBM OS MVT Supervisor (PDF).
  3. IBM Corporation (1972). IBM OS Linkage Editor and Loader (PDF).