लिंकर और लोडर के बीच अंतर

लेखक: Laura McKinney
निर्माण की तारीख: 3 अप्रैल 2021
डेट अपडेट करें: 7 मई 2024
Anonim
What are Linker and Loader | Difference between Linker and Loader | Dr. Kapil Govil
वीडियो: What are Linker and Loader | Difference between Linker and Loader | Dr. Kapil Govil

विषय


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

  1. तुलना चार्ट
  2. परिभाषा
  3. मुख्य अंतर
  4. निष्कर्ष

तुलना चार्ट

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


लिंकर की परिभाषा

असेंबलर एक सोर्स प्रोग्राम का ऑब्जेक्ट कोड जेनरेट करता है और इसे लिंकर को सौंप देता है। लिंकर इस ऑब्जेक्ट कोड को लेता है और उत्पन्न करता है निष्पादन योग्य कोड कार्यक्रम के लिए, और इसे लोडर को सौंप दें।

उच्च-स्तरीय भाषा, कार्यक्रमों में कुछ है पुस्तकालयों में निर्मित तथा हेडर फाइलें। स्रोत कार्यक्रम में कुछ लाइब्रेरी फ़ंक्शंस हो सकते हैं जिनकी परिभाषा अंतर्निहित लाइब्रेरी में संग्रहीत की जाती है। लिंकर इन फ़ंक्शन को अंतर्निहित पुस्तकालयों से जोड़ता है। मामले में अंतर्निहित पुस्तकालयों को संकलक को सूचित नहीं किया जाता है, और संकलक तब त्रुटि उत्पन्न करता है।

कभी-कभी बड़े कार्यक्रमों को उपप्रोग्राम में विभाजित किया जाता है जिन्हें कहा जाता है मॉड्यूल। अब जब ये मॉड्यूल संकलित और इकट्ठे होते हैं, तो स्रोत कार्यक्रम के ऑब्जेक्ट मॉड्यूल उत्पन्न होते हैं। लिंक करने वाले के पास स्रोत कार्यक्रम की एक निष्पादन योग्य फ़ाइल उत्पन्न करने के लिए सभी ऑब्जेक्ट मॉड्यूल को जोड़ने / जोड़ने की जिम्मेदारी है। हमारे पास दो प्रकार के लिंकर हैं।


लिंकेज संपादक: यह एक लिंकर है जो रिलोकेबल, एग्जीक्यूटेबल मॉड्यूल जेनरेट करता है।

गतिशील लिंकर: यह लोड मॉड्यूल / निष्पादन योग्य मॉड्यूल उत्पन्न होने तक कुछ बाहरी मॉड्यूल के लिंकेज को खराब / स्थगित करता है। यहां, लोडिंग टाइम या रन टाइम के दौरान लिंकिंग की जाती है।

लोडर की परिभाषा

जैसा कि वर्तमान में निष्पादित होने वाले प्रोग्राम को कंप्यूटर की मुख्य मेमोरी में रहना चाहिए। की जिम्मेदारी है लोडर, एक ऑपरेटिंग सिस्टम में एक प्रोग्राम, प्रोग्रामर के निष्पादन योग्य फ़ाइल / मॉड्यूल को लोड करने के लिए, लिंकर द्वारा उत्पन्न, निष्पादन के लिए मुख्य मेमोरी में। यह मुख्य मेमोरी में निष्पादन योग्य मॉड्यूल को मेमोरी स्पेस आवंटित करता है।

लोडिंग दृष्टिकोण के तीन प्रकार हैं:

  • पूर्ण लोड हो रहा है
  • रिलोकेबल लोडिंग
  • गतिशील रन-टाइम लोडिंग

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

स्थानांतरित करने योग्य लोड हो रहा है: इस दृष्टिकोण में, कंपाइलर या असेंबलर करता है वास्तविक मुख्य मेमोरी एड्रेस का उत्पादन नहीं। यह सापेक्ष पतों का उत्पादन करता है।

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

  1. लिंकर और लोडर के बीच महत्वपूर्ण अंतर यह है कि लिंकर उत्पन्न करता है निष्पादन एक प्रोग्राम की फ़ाइल जबकि, लोडर लिंकर से प्राप्त निष्पादन योग्य फ़ाइल को लोड करता है निष्पादन के लिए मुख्य स्मृति.
  2. लिंकर का इरादा है ऑब्जेक्ट मॉड्यूल एक प्रोग्राम असेम्बलर द्वारा जनरेट किया गया। हालाँकि, लोडर intakes निष्पादन योग्य मॉड्यूल लिंकर द्वारा उत्पन्न।
  3. लिंकर उत्पन्न करने के लिए एक प्रोग्राम के सभी ऑब्जेक्ट मॉड्यूल को जोड़ती है निष्पादन योग्य मॉड्यूल यह भी जोड़ता है पुस्तकालय समारोह करने के लिए वस्तु मॉड्यूल में पुस्तकालयों में निर्मित उच्च स्तरीय प्रोग्रामिंग भाषा की। दूसरी ओर, लोडर एक निष्पादन योग्य को स्थान आवंटित करता है मुख्य मेमोरी में मॉड्यूल।
  4. लिंकर को वर्गीकृत किया जा सकता है लिंकेज संपादक, तथा गतिशील लिंकर जबकि लोडर को वर्गीकृत किया जा सकता है पूर्ण लोडर, रिलोकेबल लोडर तथा गतिशील रन-टाइम लोडर.

निष्कर्ष:

लिंकर कोडांतरक से एक प्रोग्राम के ऑब्जेक्ट मॉड्यूल लेता है और एक प्रोग्राम के एक निष्पादन योग्य मॉड्यूल उत्पन्न करने के लिए उन्हें एक साथ जोड़ता है। निष्पादन योग्य मॉड्यूल को लोडर द्वारा निष्पादन के लिए मुख्य मेमोरी में लोड किया जाता है।