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

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

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

उदाहरण
निम्न उदाहरण उन नियंत्रण कथनों को दिखाता है जो OS/360 लिंकेज संपादक को संरचना दिखाने के लिए इंडेंट किए गए एकल क्षेत्र वाले ओवरले प्रोग्राम को लिंक करने का निर्देश देते हैं (खंड नाम मनमाने हैं): ये कथन स्थायी रूप से निवासी खंड, जिसे रूट कहा जाता है, और दो ओवरले A और B से मिलकर एक पेड़ को परिभाषित करता है जो MOD2 के अंत के बाद लोड किया जाएगा। ओवरले A में स्वयं दो ओवरले सेगमेंट, AA और AB होते हैं। निष्पादन के समय ओवरले A और B दोनों समान स्मृति स्थानों का उपयोग करेंगे; AA और AB दोनों MOD3 के अंत के बाद एक ही स्थान का उपयोग करेंगे।

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

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

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

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

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

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

OS/360 में, आईबीएम ने आईबीएलडीआर की ओवरले सुविधा को एक ओवरले प्रोग्राम को अपने स्वयं के ओवरले ट्री के साथ प्रत्येक स्वतंत्र ओवरले क्षेत्र की अनुमति देकर बढ़ाया। ओएस/360 में 1024-बाइट एसवीसी क्षणिक क्षेत्रों का उपयोग करते हुए क्षणिक पर्यवेक्षक कॉल रूटीन के लिए एक सरल ओवरले प्रणाली भी था। होम कम्प्यूटर युग में ओवरले लोकप्रिय थे क्योंकि ऑपरेटिंग प्रणाली और इसके चलने वाले कई कंप्यूटर प्रणाली में वर्चुअल मेमोरी की कमी थी और वर्तमान मानकों के अनुसार बहुत कम रैम थी: कॉन्फ़िगरेशन के आधार पर मूल आईबीएम पीसी में 16K और 64K के बीच था। ग्राफिक्स स्क्रीन लोड करने के लिए कमोडोर बेसिक में ओवरले एक लोकप्रिय विधि थी।

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

यह भी देखें

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

अग्रिम पठन

 * (2+244+4 pages)

बाहरी संबंध

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