रनटाइम सिस्टम

From alpha
Jump to navigation Jump to search

कंप्यूटर प्रोग्रामिंग में, एक रनटाइम सिस्टम या रनटाइम पर्यावरण एक उप-प्रणाली है जो कंप्यूटर में मौजूद है जहां एक प्रोग्राम बनाया गया है, साथ ही उन कंप्यूटरों में जहां प्रोग्राम चलाने का इरादा है। नाम संकलन समय और संकलित भाषाओं से रनटाइम (प्रोग्राम जीवनचक्र चरण) विभाजन से आता है, जो समान रूप से एक प्रोग्राम (संकलन) के निर्माण में शामिल कंप्यूटर प्रक्रियाओं और लक्ष्य मशीन (रन टाइम) में इसके निष्पादन को अलग करता है।[1]

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


सिंहावलोकन

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

इस परिभाषा के अनुसार, अनिवार्य रूप से हर भाषा में एक रनटाइम सिस्टम होता है, जिसमें संकलित भाषाएँ, व्याख्या की गई भाषाएँ और एम्बेडेड डोमेन-विशिष्ट भाषाएँ शामिल हैं। यहां तक ​​कि एप्लिकेशन प्रोग्राम इंटरफ़ेस-आमंत्रित स्टैंडअलोन निष्पादन मॉडल, जैसे Pthreads (POSIX थ्रेड (कंप्यूटिंग)) में एक रनटाइम सिस्टम होता है जो निष्पादन मॉडल के व्यवहार को लागू करता है।

रनटाइम सिस्टम पर अधिकांश विद्वानों के पेपर समानांतर रनटाइम सिस्टम के कार्यान्वयन विवरण पर ध्यान केंद्रित करते हैं। समानांतर रनटाइम सिस्टम का एक उल्लेखनीय उदाहरण Cilk है, जो एक लोकप्रिय समानांतर प्रोग्रामिंग मॉडल है।[2]समानांतर रनटाइम सिस्टम के निर्माण को आसान बनाने के लिए प्रोटो-रनटाइम टूलकिट बनाया गया था।[3]

निष्पादन मॉडल व्यवहार के अलावा, एक रनटाइम सिस्टम प्रकार की जाँच, डिबगिंग, या कोड जनरेशन (संकलक)कंपाइलर) और कोड अनुकूलन जैसी सहायक सेवाएँ भी कर सकता है।[4]


रनटाइम वातावरण से संबंध

रनटाइम सिस्टम भी एक प्रवेश द्वार है जिसके माध्यम से एक रनिंग प्रोग्राम रनटाइम वातावरण के साथ इंटरैक्ट करता है। रनटाइम वातावरण में न केवल सुलभ राज्य मान शामिल हैं, बल्कि सक्रिय संस्थाएं भी हैं जिनके साथ कार्यक्रम निष्पादन के दौरान बातचीत कर सकता है। उदाहरण के लिए, पर्यावरण चर कई ऑपरेटिंग सिस्टम की विशेषताएं हैं, और रनटाइम वातावरण का हिस्सा हैं; एक रनिंग प्रोग्राम उन्हें रनटाइम सिस्टम के माध्यम से एक्सेस कर सकता है। इसी तरह, डिस्क या डीवीडी ड्राइव जैसे हार्डवेयर डिवाइस सक्रिय संस्थाएं हैं जो एक प्रोग्राम रनटाइम सिस्टम के माध्यम से इंटरैक्ट कर सकते हैं।

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

ऐसे सीधे बंडल किए गए रनटाइम सिस्टम के उदाहरणों में शामिल हैं:

  • 1983 और 1984 के बीच, डिजिटल अनुसंधान ने आईबीएम पीसी के लिए बूट करने योग्य फ्लॉपी डिस्केट पर स्पीडस्टार्ट सीपी/एम-86, रनटाइम वातावरण के रूप में सीपी/एम-86 के एक कम संस्करण के साथ अपने कई व्यावसायिक और शिक्षा अनुप्रयोगों की पेशकश की।[5][6][7][8][9]* वेंचुरा प्रकाशक के कुछ स्टैंड-अलोन संस्करण (1986-1993),[10]आर्टलाइन (चित्रण कार्यक्रम) (1988-1991),[10]टाइमवर्क्स प्रकाशक (1988-1991) और मैक्स देखें (1990-1992)[11][12][13]उनके रनटाइम वातावरण के रूप में डिजिटल रिसर्च के GEM (डेस्कटॉप वातावरण) के विशेष रनटाइम संस्करण शामिल हैं।[10]* 1990 के दशक के अंत में, JP Software का कमांड लाइन प्रोसेसर 4DOS वैकल्पिक रूप से एक विशेष रनटाइम संस्करण में उपलब्ध था, जिसे BATCOMP पूर्व-संकलित और एन्क्रिप्टेड बैच जॉब्स के साथ जोड़ा जा सकता था ताकि बैच स्क्रिप्ट्स से अपरिवर्तनीय निष्पादन बनाए जा सकें और उन्हें 4DOS इंस्टॉल किए बिना सिस्टम पर चलाया जा सके।[14]


उदाहरण

C (प्रोग्रामिंग लैंग्वेज) का रनटाइम सिस्टम कंपाइलर द्वारा निष्पादन योग्य छवि में डाले गए निर्देशों का एक विशेष सेट है। अन्य बातों के अलावा, ये निर्देश प्रक्रिया स्टैक का प्रबंधन करते हैं, स्थानीय चर के लिए स्थान बनाते हैं, और फ़ंक्शन कॉल पैरामीटर को स्टैक के शीर्ष पर कॉपी करते हैं।

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

किसी विशेष कार्यक्रम और रनटाइम वातावरण के शब्दार्थ के बीच यह अलगाव एक कार्यक्रम को संकलित करने के विभिन्न तरीकों से परिलक्षित होता है: स्रोत कोड को एक वस्तु फ़ाइल में संकलित करना जिसमें सभी कार्य होते हैं बनाम पूरे कार्यक्रम को एक निष्पादन योग्य बाइनरी में संकलित करना। ऑब्जेक्ट फ़ाइल में केवल सम्मिलित कार्यों के लिए प्रासंगिक असेंबली कोड होगा, जबकि निष्पादन योग्य बाइनरी में अतिरिक्त कोड होगा जो रनटाइम वातावरण को लागू करता है। ऑब्जेक्ट फ़ाइल, एक तरफ, रनटाइम पर्यावरण से जानकारी गायब हो सकती है जिसे लिंकिंग (कंप्यूटिंग) द्वारा हल किया जाएगा। दूसरी ओर, ऑब्जेक्ट फ़ाइल में कोड अभी भी रनटाइम सिस्टम में मान्यताओं पर निर्भर करता है; उदाहरण के लिए, एक फ़ंक्शन किसी विशेष रजिस्टर या स्टैक स्थान से मापदंडों को पढ़ सकता है, जो रनटाइम वातावरण द्वारा उपयोग किए जाने वाले कॉलिंग कन्वेंशन पर निर्भर करता है।

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

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

उन्नत सुविधाएँ

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

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

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

रनटाइम सिस्टम का एक आधुनिक पहलू समानांतर निष्पादन व्यवहार है, जैसे कि Pthreads में म्यूटेक्स निर्माणों द्वारा प्रदर्शित व्यवहार और OpenMP में समानांतर खंड निर्माण। इस तरह के समानांतर निष्पादन व्यवहार वाले रनटाइम सिस्टम को प्रोटो-रनटाइम दृष्टिकोण के अनुसार संशोधित किया जा सकता है।

इतिहास

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

C (प्रोग्रामिंग लैंग्वेज) और बाद की भाषाओं में जो डायनेमिक मेमोरी एलोकेशन को सपोर्ट करती हैं, रनटाइम सिस्टम में एक लाइब्रेरी भी शामिल होती है जो प्रोग्राम के मेमोरी पूल को मैनेज करती है।

वस्तु-उन्मुख प्रोग्रामिंग भाषा में, रनटाइम सिस्टम अक्सर डायनेमिक टाइप चेकिंग और मेथड रेफरेंस को हल करने के लिए भी जिम्मेदार होता है।

यह भी देखें

संदर्भ

  1. 1.0 1.1 Aho, Alfred V.; Lam, Monica Sin-Ling; Sethi, Ravi; Ullman, Jeffrey David (2007). Compilers: Principles, Techniques and Tools (2nd ed.). Boston, MA, USA: Pearson Education. p. 427. ISBN 978-0-321-48681-3. The compiler must cooperate with the operating system and other systems software to support these abstractions on the target machine.
  2. Blumofe, Robert David [in Deutsch]; Joerg, Christopher F.; Kuszmaul, Bradley C.; Leiserson, Charles E.; Randall, Keith H.; Zhou, Yuli (August 1995). "Cilk: An efficient multithreaded runtime system". PPOPP '95: Proceedings of the Fifth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. Association for Computing Machinery (ACM): 207–216. doi:10.1145/209936.209958. S2CID 221936412. Archived from the original on 2020-02-11. Retrieved 2020-01-11.
  3. Open Source Research Institute (2011). "Welcome to the Proto-Runtime Toolkit Home Page". The Proto-Runtime Toolkit (PRT). Archived from the original on 2020-02-11. Retrieved 2020-01-11.
  4. Appel, Andrew Wilson (May 1989). "A Runtime System" (PDF). Princeton University. Archived from the original (PDF) on 2013-12-30. Retrieved 2013-12-30.
  5. "Look What's New in the CP/M Applications Library for the IBM PC - Time Saver Offer - Get Concurrent CP/M Free" (PDF) (Product flyer). Pacific Grove, California, USA: Digital Research, Inc. 1983. Archived (PDF) from the original on 2020-02-11. Retrieved 2020-02-11. […] SpeedStart makes our software easier to use. All of the software in the CP/M Applications Library has the new SpeedStart version of the CP/M Operating System embedded right on the program disk. All you have to do to use these applications is to slip the disk into your IBM PC, turn on the system, and you are ready to go. This eliminates the need to load a separate operating system, change disks, and boot the applications program. SpeedStart software from the CP/M Applications Library also: […] Provides you with a free run-time version of CP/M […] Eliminates the need to install each new applications program […] Gives you compatibility with Digital Research's powerful 16-bit operating system, CP/M-86, and the state-of-the-art, multi-tasking Concurrent CP/M Operating System. […]
  6. "DRI ships 128K version of Dr. Logo" (PDF). Micro Notes - Technical information on Digital Research products. Vol. 2, no. 2. Pacific Grove, CA, USA: Digital Research, Inc. May 1984. p. 4. NWS-106-002. Archived (PDF) from the original on 2020-02-11. Retrieved 2020-02-11. […] Dr. Logo first appeared on the retail market in fall of 1983 for the IBM PC and climbed to the top of the Softsel Hot List. The retail release included SpeedStart CP/M, an abridged version of CP/M that boots automatically when the system is turned on. […] [1]
  7. Digital Research Inc. (February 1984). "Introducing software for the IBM PC with a $350 bonus!". BYTE (Advertisement). Vol. 9, no. 2. pp. 216–217. Retrieved 2013-10-22. [2][3]
  8. Digital Research Inc. (1984-02-07). "Introducing software for the IBM PC with a $350 bonus!". PC Magazine (Advertisement). Vol. 3, no. 2. PC Communications Corp. pp. 50–51. ISSN 0745-2500. Archived from the original on 2020-02-11. Retrieved 2020-02-11.
  9. Digital Research Inc. (December 1983). "Introducing software for the IBM PC with a $350 bonus!". PC Magazine (Advertisement). Vol. 2, no. 7. PC Communications Corp. pp. 306–307. ISSN 0745-2500. Archived from the original on 2020-02-11. […] Introducing SpeedStart - the exclusive load-&-go software system. The CP/M Applications Library offers more than just the best name-brand IBM PC software in the business. Each of our applications delivers the unmatched convenience of our exclusive SpeedStart single-disk system. SpeedStart is a special version of the powerful CP/M-86 operating system that's built into each of our software disks. When you're ready to work, just load the disk, turn on your IBM PC and go! SpeedStart eliminates the time-consuming task of loading a separate operating disk and then "installing" the software. In fact, the SpeedStart system gets you to work faster and easier than any other software available today. Best of all, it's yours at no extra cost. What's more, SpeedStart can be by-passed to run software under the IBM PC operating system of the future - the remarkable, multi-tasking Concurrent CP/M. […]
  10. 10.0 10.1 10.2 Krautter, Thomas; Barnes, Chris J. (2006-06-14) [1999-12-29]. "GEM/4". GEM Development. Archived from the original on 2013-03-16. Retrieved 2020-01-12. […] the Artline 2 Operating System has been GEM/4 […] all changes to GEM/4 have been made in cooperation with Lee Lorenzen and Don Heiskell to keep compatibility with ventura publisher. […]
  11. Elliott, John C. (1999-05-09). "A comparison between GEM and ViewMAX". Seasip.info. Archived from the original on 2016-11-07. Retrieved 2016-11-07.
  12. Paul, Matthias R. (1997-04-13) [1993]. DRDOS6UN.TXT — Zusammenfassung der dokumentierten und undokumentierten Fähigkeiten von DR DOS 6.0. MPDOSTIP (in Deutsch) (60 ed.). Archived from the original on 2016-11-07. Retrieved 2016-11-07.
  13. Paul, Matthias R. (1997-06-07) [1994]. NWDOS7UN.TXT — Zusammenfassung der dokumentierten und undokumentierten Fähigkeiten von Novell DOS 7. MPDOSTIP (in Deutsch) (85 ed.). Archived from the original on 2016-11-07. Retrieved 2016-11-07.
  14. Georgiev, Luchezar I. (2008-11-02). "Runtime version of 4DOS, BATCOMP and batch file encryption". Narkive Newsgroup Archive. Newsgroupcomp.os.msdos.4dos. Archived from the original on 2020-01-11. Retrieved 2020-01-11.


अग्रिम पठन


बाहरी संबंध

  • The dictionary definition of run-time at Wiktionary