ओवरले (प्रोग्रामिंग)

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

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

उदाहरण
निम्न उदाहरण उन नियंत्रण कथनों को दिखाता है जो OS/360 लिंकेज संपादक को संरचना दिखाने के लिए इंडेंट किए गए एकल क्षेत्र वाले ओवरले प्रोग्राम को लिंक करने का निर्देश देते हैं (खंड नाम मनमाने हैं):  SYSLIB (MOD1) शामिल करें SYSLIB (MOD2) शामिल करें ओवरले ए SYSLIB (MOD3) शामिल करें ओवरले एए SYSLIB (MOD4) शामिल करें SYSLIB (MOD5) शामिल करें ओवरले एबी SYSLIB (MOD6) शामिल करें ओवरले बी SYSLIB (MOD7) शामिल करें   +---+                      | जड़ खंड | | एमओडी1, एमओडी2 | +---+                              |                    +--+--+                    | |             +-+ +-+             | ओवरले ए | | ओवरले बी | | एमओडी3 | | एमओडी7 | +-+ +-+                   |           +++           | |    +-+ +-+    | ओवरले एए | | ओवरले एबी | | एमओडी4, एमओडी5 | | एमओडी6 | +-+ +-+  ये बयान स्थायी रूप से निवासी खंड, जिसे रूट कहा जाता है, और दो ओवरले ए और बी से मिलकर एक पेड़ को परिभाषित करता है जो एमओडी2 के अंत के बाद लोड किया जाएगा। ओवरले A में स्वयं दो ओवरले सेगमेंट, AA और AB होते हैं। निष्पादन के समय ओवरले A और B दोनों समान स्मृति स्थानों का उपयोग करेंगे; AA और AB दोनों MOD3 के अंत के बाद एक ही स्थान का उपयोग करेंगे।

रूट और दिए गए ओवरले सेगमेंट के बीच के सभी सेगमेंट को पाथ कहा जाता है।

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

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

वर्चुअल मेमोरी वाले प्लेटफॉर्म पर भी, सॉफ्टवेयर घटक जैसे कोडेक्स युग्मन (कंप्यूटर विज्ञान) हो सकते हैं # कम युग्मन उस बिंदु पर जहां वे लाइब्रेरी (कंप्यूटिंग) # गतिशील लोडिंग हो सकते हैं।

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

आईबीएम ने अधिक सामान्य ओवरले हैंडलिंग की शुरुआत की आईबीएसवाईएस/आईबीजेओबी में, कॉल प्रोसेसिंग के हिस्से के रूप में पेड़ की संरचना और लिंक की स्वचालित लोडिंग सहित।

OS/360 में, IBM ने एक ओवरले प्रोग्राम को स्वतंत्र ओवरले क्षेत्रों की अनुमति देकर IBLDR की ओवरले सुविधा का विस्तार किया, प्रत्येक अपने स्वयं के ओवरले ट्री के साथ। ओएस/360 में 1024-बाइट एसवीसी क्षणिक क्षेत्रों का उपयोग करते हुए क्षणिक पर्यवेक्षक कॉल रूटीन के लिए एक सरल ओवरले सिस्टम भी था।

गृह कम्प्यूटर युग में ओवरले लोकप्रिय थे क्योंकि ऑपरेटिंग सिस्टम और इसके चलने वाले कई कंप्यूटर सिस्टम में वर्चुअल मेमोरी की कमी थी और वर्तमान मानकों के अनुसार बहुत कम रैम थी: कॉन्फ़िगरेशन के आधार पर मूल आईबीएम पीसी में 16K और 64K के बीच था। ग्राफिक्स स्क्रीन लोड करने के लिए कमोडोर बेसिक में ओवरले एक लोकप्रिय तकनीक थी।

1980 के दशक में कई डॉस लिंकर्स ने [ओवरले] को मेनफ्रेम कंप्यूटर पर 25 साल पहले उपयोग किए जाने वाले फॉर्म के समान समर्थन दिया था। मेमोरी ओवरले वाली बाइनरी फ़ाइलों में वास्तविक मानक एक्सटेंशन .OVL थे या ओवीआर (लेकिन बाद की फ़ाइलों के लिए संख्यात्मक फ़ाइल एक्सटेंशन जैसे .000, .001, आदि का भी उपयोग किया जाता है ). इस फ़ाइल प्रकार का उपयोग दूसरों के बीच WordStar द्वारा किया गया था (मुख्य निष्पादन योग्य से मिलकर  और ओवरले मॉड्यूल ,  ,   और  , जहां वसा बाइनरी ओवरले फ़ाइलें CP/M-86 और MS-DOS के लिए उनके बंदरगाहों में बाइनरी समान थीं ), डीबेस, और सक्षम सॉफ्टवेयर (कंपनी) से सक्षम (ऑफिस सूट) डॉस ऑफिस ऑटोमेशन सॉफ्टवेयर पैकेज। बोरलैंड का टर्बो पास्कल  और GFA बेसिक कंपाइलर .OVL फाइलें बनाने में सक्षम थे।

यह भी देखें

 * विस्तारित स्मृति (ईएमएस)
 * आभासी मेमोरी
 * चेन लोड हो रहा है
 * पेजिंग
 * बैंक स्विचिंग
 * रिकर्सन (कंप्यूटर विज्ञान)

अग्रिम पठन

 * (2+244+4 pages)

बाहरी संबंध

 * http://computer-programming-forum.com/29-pascal/45df7513ab22cf7e.htm