निष्पादन (कंप्यूटिंग): Difference between revisions
(→निष्पादन का संदर्भ: modification) |
No edit summary |
||
(11 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Running of a program by a computer}} | {{Short description|Running of a program by a computer}} | ||
{{Program execution}} | {{Program execution}} | ||
[[ कंप्यूटर |कंप्यूटर]] इंजीनियरिंग और सॉफ्टवेयर इंजीनियरिंग में निष्पादन वह प्रक्रिया है जिसके द्वारा एक कंप्यूटर या [[ आभासी मशीन |आभासी मशीन]] [[ कंप्यूटर प्रोग्राम ]]के निर्देशों को पढ़ती है और कार्य करती है। | [[ कंप्यूटर |कंप्यूटर]] इंजीनियरिंग और सॉफ्टवेयर इंजीनियरिंग में '''निष्पादन (कंप्यूटिंग)''' वह प्रक्रिया है जिसके द्वारा एक कंप्यूटर या [[ आभासी मशीन |आभासी मशीन]] [[ कंप्यूटर प्रोग्राम ]]के निर्देशों को पढ़ती है और कार्य करती है। कार्यक्रम का प्रत्येक निर्देश एक विशेष क्रिया का विवरण है जिसे एक विशिष्ट समस्या को हल करने के लिए किया जाना चाहिए। नियंत्रण इकाई द्वारा किए गए प्रत्येक निर्देश के लिए निष्पादन में 'लाने-डिकोड-निष्पादित' चक्र का बार-बार पालन करना सम्मिलित है। जैसा कि निष्पादन मशीन निर्देशों का पालन करती है, उन निर्देशों की प्रोग्रामिंग भाषाओं के औपचारिक शब्दार्थ के अनुसार विशिष्ट प्रभाव उत्पन्न होते हैं। | ||
एक कंप्यूटर के लिए प्रोग्राम मानव संपर्क के बिना[[ प्रचय संसाधन ]]में निष्पादित किए जा सकते हैं या एक [[ उपयोगकर्ता (कंप्यूटिंग) ]] एक इंटरप्रेटर (कंप्यूटिंग) के सत्र (कंप्यूटिंग) में[[ कमांड (कंप्यूटिंग) | कमांड (कंप्यूटिंग)]] टाइप कर सकता है। इस | एक कंप्यूटर के लिए प्रोग्राम मानव संपर्क के बिना[[ प्रचय संसाधन ]]में निष्पादित किए जा सकते हैं या एक[[ उपयोगकर्ता (कंप्यूटिंग) | उपयोगकर्ता (कंप्यूटिंग)]] एक इंटरप्रेटर (कंप्यूटिंग) के सत्र (कंप्यूटिंग) में[[ कमांड (कंप्यूटिंग) | कमांड (कंप्यूटिंग)]] टाइप कर सकता है। इस स्थिति में, कमांड केवल प्रोग्राम निर्देश होते हैं, जिनका निष्पादन एक साथ जुड़ा होता है। | ||
रन शब्द का प्रयोग लगभग पर्यायवाची के रूप में किया जाता है। चलाने और निष्पादित करने दोनों का एक संबंधित अर्थ एक प्रोग्राम को | रन शब्द का प्रयोग लगभग पर्यायवाची के रूप में किया जाता है। चलाने और निष्पादित करने दोनों का एक संबंधित अर्थ एक प्रोग्राम को आरम्भ करने (या ''लॉन्चिंग'' या ''आह्वान'') के उपयोगकर्ता की विशिष्ट क्रिया को संदर्भित करता है, जैसा कि कृपया एप्लिकेशन चलाएं। | ||
== प्रक्रिया == | == प्रक्रिया == | ||
{{see| | {{see|प्रोग्राम लिफेसिक्ले फेज }} | ||
निष्पादन से पहले, एक कार्यक्रम पहले लिखा जाना चाहिए। यह | निष्पादन से पहले, एक कार्यक्रम पहले लिखा जाना चाहिए। यह सामान्यतः स्रोत कोड में किया जाता है, जिसे निष्पादन योग्य बनाने के लिए [[ संकलन समय |संकलन समय]] (और[[ लिंक समय ]]पर स्थिर रूप से जुड़ा हुआ) पर संकलित किया जाता है। यह निष्पादन योग्य तब लागू होता है, सबसे अधिक बार एक ऑपरेटिंग सिस्टम द्वारा, जो प्रोग्राम को मेमोरी ([[ लोड होने का समय |लोड होने का समय]]) में लोड करता है, संभवतः[[ गतिशील लिंकिंग | गतिशील लिंकिंग]] करता है, और फिर प्रोग्राम के[[ प्रवेश बिंदु | प्रवेश बिंदु]] पर नियंत्रण ले जाकर निष्पादन आरम्भ करता है; ये सभी चरण ऑपरेटिंग सिस्टम के [[ एप्लिकेशन बाइनरी इंटरफ़ेस |एप्लिकेशन बाइनरी इंटरफ़ेस]] पर निर्भर करते हैं। इस बिंदु पर निष्पादन आरम्भ होता है और प्रोग्राम[[ रन टाइम (कार्यक्रम जीवनचक्र चरण) | रन टाइम (कार्यक्रम जीवनचक्र चरण)]] में प्रवेश करता है। कार्यक्रम तब तक चलता है जब तक यह समाप्त नहीं हो जाता, या तो सामान्य[[ समाप्ति (कंप्यूटर विज्ञान) | समाप्ति (कंप्यूटर विज्ञान)]] या [[ क्रैश (कंप्यूटिंग) |क्रैश (कंप्यूटिंग) कहा जाता है]]। | ||
== निष्पादन योग्य == | == निष्पादन योग्य == | ||
{{main| | {{main|निष्पादन}} | ||
निष्पादन योग्य कोड, एक निष्पादन योग्य फ़ाइल, या एक निष्पादन योग्य प्रोग्राम, जिसे कभी-कभी केवल एक निष्पादन योग्य या के रूप में संदर्भित किया जाता है बाइनरी, निर्देशों और डेटा की एक सूची है जिसके कारण कंप्यूटर एन्कोडेड निर्देश (कंप्यूटर साइंस) के अनुसार संकेतित कार्य करता है,<ref>{{cite web |url=http://www.merriam-webster.com/dictionary/निष्पादन|title=निष्पादन|access-date=2008-07-19 |work=Merriam-Webster's Online Dictionary |publisher=[[Merriam-Webster]]}}</ref> | निष्पादन योग्य कोड, एक निष्पादन योग्य फ़ाइल, या एक निष्पादन योग्य प्रोग्राम, जिसे कभी-कभी केवल एक निष्पादन योग्य या के रूप में संदर्भित किया जाता है बाइनरी, निर्देशों और डेटा की एक सूची है जिसके कारण कंप्यूटर एन्कोडेड निर्देश (कंप्यूटर साइंस) के अनुसार संकेतित कार्य करता है,<ref>{{cite web |url=http://www.merriam-webster.com/dictionary/निष्पादन|title=निष्पादन|access-date=2008-07-19 |work=Merriam-Webster's Online Dictionary |publisher=[[Merriam-Webster]]}}</ref> [[ डेटा (कंप्यूटिंग) |डेटा (कंप्यूटिंग)]] के विपरीत, जिसे सार्थक होने के लिए एक प्रोग्राम द्वारा व्याख्या ([[ पार्सर |पार्सर]]) किया जाना चाहिए। | ||
सटीक व्याख्या उपयोग पर निर्भर करती है। भौतिक[[ सेंट्रल प्रोसेसिंग यूनिट | सेंट्रल प्रोसेसिंग यूनिट]] के लिए निर्देशों को पारंपरिक रूप से[[ मशीन कोड ]]निर्देशों के रूप में लिया जाता है।<ref>{{Cite web|url=https://www.geeksforgeeks.org/machine-instructions/|title=मशीन निर्देश|date=2015-11-03|website=GeeksforGeeks|language=en-US|access-date=2019-09-18}}</ref> कुछ संदर्भों में, स्क्रिप्टिंग निर्देश वाली फ़ाइल (जैसे[[ बाईटकोड | बाईटकोड]]) को भी निष्पादन योग्य माना जा सकता है। | सटीक व्याख्या उपयोग पर निर्भर करती है। भौतिक[[ सेंट्रल प्रोसेसिंग यूनिट | सेंट्रल प्रोसेसिंग यूनिट]] के लिए निर्देशों को पारंपरिक रूप से[[ मशीन कोड ]]निर्देशों के रूप में लिया जाता है।<ref>{{Cite web|url=https://www.geeksforgeeks.org/machine-instructions/|title=मशीन निर्देश|date=2015-11-03|website=GeeksforGeeks|language=en-US|access-date=2019-09-18}}</ref> कुछ संदर्भों में, स्क्रिप्टिंग निर्देश वाली फ़ाइल (जैसे[[ बाईटकोड | बाईटकोड]]) को भी निष्पादन योग्य माना जा सकता है। | ||
== निष्पादन का संदर्भ == | == निष्पादन का संदर्भ == | ||
जिस संदर्भ में निष्पादन होता है वह महत्वपूर्ण है।[[ नंगे मशीन | | जिस संदर्भ में निष्पादन होता है वह महत्वपूर्ण है।[[ नंगे मशीन | बेर मशीन]] पर बहुत कम प्रोग्राम निष्पादित होते हैं। कार्यक्रमों में सामान्यतः निष्पादन के समय उपलब्ध संसाधनों के बारे में निहित और स्पष्ट धारणाएँ होती हैं। अधिकांश प्रोग्राम [[ कंप्यूटर मल्टीटास्किंग |कंप्यूटर मल्टीटास्किंग]] [[ ऑपरेटिंग सिस्टम |ऑपरेटिंग सिस्टम]] और[[ क्रम पुस्तकालय | क्रम पुस्तकालय]] के भीतर विशिष्ट रूप से निष्पादित होते हैं। स्रोत भाषा के लिए विशिष्ट रन-टाइम लाइब्रेरी जो कंप्यूटर द्वारा सीधे आपूर्ति नहीं की जाने वाली महत्वपूर्ण सेवाएं प्रदान करती हैं। यह सहायक वातावरण, उदाहरण के लिए, सामान्यतः एक प्रोग्राम को कंप्यूटर बाह्य उपकरणों के प्रत्यक्ष हेरफेर से अलग करता है, इसके बजाय अधिक सामान्य, अमूर्त सेवाएं प्रदान करता है। | ||
=== संदर्भ स्विचिंग === | === संदर्भ स्विचिंग === | ||
{{Main| | {{Main|संदर्भ स्विचिंग}} | ||
एक ही सीपीयू/एमसीयू के साथ डिजिटल सिस्टम पर चल रहे कंप्यूटर मल्टीटास्किंग में प्रोग्राम और [[ इंटरप्ट हैंडलर ]] बिना किसी हस्तक्षेप के काम करने के लिए और समान हार्डवेयर मेमोरी और आई/ओ सिस्टम तक पहुंच साझा करने के लिए किसी प्रकार के सॉफ्टवेयर की आवश्यकता होती | एक ही सीपीयू/एमसीयू के साथ डिजिटल सिस्टम पर चल रहे कंप्यूटर मल्टीटास्किंग में प्रोग्राम और[[ इंटरप्ट हैंडलर | इंटरप्ट हैंडलर]] बिना किसी हस्तक्षेप के काम करने के लिए और समान हार्डवेयर मेमोरी और आई/ओ सिस्टम तक पहुंच साझा करने के लिए किसी प्रकार के सॉफ्टवेयर की आवश्यकता होती है, और एक निष्पादन प्रक्रिया डेटा (स्मृति पृष्ठ पते, रजिस्टर आदि) का ट्रैक रखने के लिए और उन्हें निलंबित करने से पहले की स्थिति में वापस लाने के लिए उन्हें सहेजने और पुनर्प्राप्त करने के लिए हार्डवेयर सुविधाएं। यह एक संदर्भ स्विचिंग द्वारा प्राप्त किया जाता है।<ref name=":0">{{Cite book |last=Bovet |first=Daniel P. |url=https://www.worldcat.org/oclc/64549743 |title=लिनक्स कर्नेल को समझना|date=2005 |publisher=O'Reilly |others=Marco Cesati |isbn=0-596-00565-2 |edition=3 |location=Sevastopol, CA |oclc=64549743}}</ref>{{Rp|location=3.3}}<ref>{{Cite web |date=2021-06-10 |title=स्वैपिंग और कॉन्टेक्स्ट स्विचिंग के बीच अंतर|url=https://www.geeksforgeeks.org/difference-between-swapping-and-context-switching/ |access-date=2022-08-10 |website=GeeksforGeeks |language=en-us}}</ref> चल रहे प्रोग्रामों को प्रायः एक[[ प्रक्रिया-संदर्भ पहचानकर्ता | प्रक्रिया-संदर्भ पहचानकर्ता]] (पीसीआईडी) नियुक्त किया जाता है। | ||
लिनक्स-आधारित ऑपरेटिंग सिस्टम में, [[ प्रोसेसर रजिस्टर ]] में संग्रहीत डेटा का एक सेट | लिनक्स-आधारित ऑपरेटिंग सिस्टम में, [[ प्रोसेसर रजिस्टर |प्रोसेसर रजिस्टर]] में संग्रहीत डेटा का एक सेट सामान्यतः संदर्भ के स्विचिंग को लागू करने के लिए मेमोरी में एक प्रोसेस डिस्क्रिप्टर में सहेजा जाता है।<ref name=":0" />पीसीआईडी का भी उपयोग किया जाता है। | ||
== रनटाइम सिस्टम == | == रनटाइम सिस्टम == | ||
{{main| | {{main|रनटाइम सिस्टम}} | ||
रनटाइम सिस्टम, जिसे रनटाइम वातावरण भी कहा जाता है, मुख्य रूप से[[ निष्पादन मॉडल | निष्पादन मॉडल]] के कुछ हिस्सों को लागू करता है। (खाका: क्या) यह किसी प्रोग्राम के रन टाइम (प्रोग्राम जीवनचक्र चरण) जीवनचक्र चरण के साथ भ्रमित नहीं होना है, जिसके दौरान रनटाइम सिस्टम संचालन में है। जब रनटाइम सिस्टम को रनटाइम एनवायरनमेंट (आरटीई) से अलग माना जाता है, तो पहले को [[ एकीकृत विकास पर्यावरण |एकीकृत विकास पर्यावरण]] के एक विशिष्ट भाग के रूप में परिभाषित किया जा सकता है। प्रोग्रामिंग के लिए उपयोग किए जाने वाले एप्लिकेशन सॉफ़्टवेयर (आईडीई), सॉफ्टवेयर का एक टुकड़ा जो प्रोग्रामर को अधिक सुविधाजनक प्रदान करता है। उनके उत्पादन (सॉफ्टवेयर परीक्षण और इसी तरह) के दौरान कार्यक्रमों को चलाने के लिए पर्यावरण, जबकि दूसरा (आरटीई) एक निष्पादन मॉडल का [[ उदाहरण (कंप्यूटर विज्ञान) |उदाहरण (कंप्यूटर विज्ञान)]] होगा जो विकसित कार्यक्रम पर लागू किया जा रहा है जो स्वयं उपरोक्त रनटाइम सिस्टम में चलाया जाता है।अधिकांश [[ प्रोग्रामिंग भाषा |प्रोग्रामिंग भाषा]]ओं में रनटाइम सिस्टम का कुछ रूप होता है जो एक ऐसा वातावरण प्रदान करता है जिसमें प्रोग्राम चलते हैं। यह वातावरण एप्लिकेशन[[ स्मृति | स्मृति]] के मेमोरी प्रबंधन सहित कई मुद्दों को संबोधित कर सकता है, कैसे प्रोग्राम वेरिएबल (कंप्यूटर साइंस) तक पहुंचता है,[[ सबरूटीन |सबरूटीन]] के बीच पैरामीटर पास करने के लिए तंत्र, ऑपरेटिंग सिस्टम के साथ इंटरफेसिंग,द्वारा चलता है। [[ संकलक |संकलक]] सही कोड उत्पन्न करने के लिए विशिष्ट रनटाइम सिस्टम के आधार पर अनुमान लगाता है। सामान्यतः रनटाइम सिस्टम में स्टैक (सार डेटा प्रकार) और हीप (डेटा संरचना) को स्थापित करने और प्रबंधित करने की कुछ ज़िम्मेदारी होगी, और इसमें [[ कचरा संग्रह (कंप्यूटर विज्ञान) |कचरा संग्रह (कंप्यूटर विज्ञान)]],[[ थ्रेड (कंप्यूटिंग) | थ्रेड (कंप्यूटिंग)]] या अन्य[[ गतिशील प्रोग्रामिंग भाषा | गतिशील प्रोग्रामिंग भाषा]] जैसी सुविधाएँ सम्मलित हो सकती हैं। भाषा में निर्मित विशेषताएं।<ref name="Aho_2007"/> | |||
== निर्देश चक्र == | == निर्देश चक्र == | ||
{{main| | {{main|निर्देश चक्र}} | ||
निर्देश चक्र (जिसे फ़ेच-डिकोड-निष्पादित चक्र या बस फ़ेच-निष्पादित चक्र के रूप में भी जाना जाता है) वह चक्र है जो सेंट्रल प्रोसेसिंग यूनिट (सीपीयू) [[ बूटिंग ]] से चलता है। बूट-अप जब तक कंप्यूटर बंद नहीं हो जाता है प्रक्रिया निर्देश। यह तीन मुख्य चरणों से बना है: लाने का चरण, डिकोड चरण और निष्पादन चरण। | निर्देश चक्र (जिसे फ़ेच-डिकोड-निष्पादित चक्र या बस फ़ेच-निष्पादित चक्र के रूप में भी जाना जाता है) वह चक्र है जो सेंट्रल प्रोसेसिंग यूनिट (सीपीयू)[[ बूटिंग | बूटिंग]] से चलता है। बूट-अप जब तक कंप्यूटर बंद नहीं हो जाता है प्रक्रिया निर्देश। यह तीन मुख्य चरणों से बना है: लाने का चरण, डिकोड चरण और निष्पादन चरण। | ||
[[File:Fetch-Decode-Execute Cycle.png|thumb|यह एक सरल आरेख है जो फ़ेच-डिकोड-निष्पादित चक्र के अलग-अलग चरणों को दर्शाता है।]]सरल सीपीयू में, निर्देश चक्र को क्रमिक रूप से निष्पादित किया जाता है, प्रत्येक निर्देश को अगले एक के शुरू होने से पहले संसाधित किया जाता है। अधिकांश आधुनिक सीपीयू में, निर्देश चक्र को [[ समवर्ती कंप्यूटिंग ]] में निष्पादित किया जाता है, और अक्सर [[ समानांतर कंप्यूटिंग ]] में, एक [[ निर्देश पाइपलाइन ]] के माध्यम से | [[File:Fetch-Decode-Execute Cycle.png|thumb|यह एक सरल आरेख है जो फ़ेच-डिकोड-निष्पादित चक्र के अलग-अलग चरणों को दर्शाता है।]]सरल सीपीयू में, निर्देश चक्र को क्रमिक रूप से निष्पादित किया जाता है, प्रत्येक निर्देश को अगले एक के शुरू होने से पहले संसाधित किया जाता है। अधिकांश आधुनिक सीपीयू में, निर्देश चक्र को [[ समवर्ती कंप्यूटिंग |समवर्ती कंप्यूटिंग]] में निष्पादित किया जाता है, और अक्सर[[ समानांतर कंप्यूटिंग | समानांतर कंप्यूटिंग]] में, एक[[ निर्देश पाइपलाइन | निर्देश पाइपलाइन]] के माध्यम से अगले निर्देश को पिछले निर्देश के समाप्त होने से पहले संसाधित किया जाना शुरू हो जाता है, जो संभव है क्योंकि चक्र अलग-अलग चरणों में टूट गया है .<ref>{{cite web |title=पाइपलाइनिंग|url=https://cs.stanford.edu/people/eroberts/courses/soco/projects/risc/pipelining/index.html |author=Crystal Chen, Greg Novick and Kirk Shimano |year=2000 |access-date=2019-06-26}}</ref> | ||
== दुभाषिया == | == दुभाषिया == | ||
{{Main| | {{Main|दुभाषिया (कंप्यूटिंग)}} | ||
एक सिस्टम जो प्रोग्राम को निष्पादित करता है उसे प्रोग्राम का इंटरप्रेटर (कंप्यूटिंग) कहा जाता है। शिथिल रूप से, एक दुभाषिया सीधे एक कार्यक्रम को क्रियान्वित करता है। यह एक भाषा अनुवादक (कंप्यूटिंग) के विपरीत है जो एक प्रोग्राम को निष्पादित होने से पहले एक भाषा से दूसरी भाषा में परिवर्तित करता है। | एक सिस्टम जो प्रोग्राम को निष्पादित करता है उसे प्रोग्राम का इंटरप्रेटर (कंप्यूटिंग) कहा जाता है। शिथिल रूप से, एक दुभाषिया सीधे एक कार्यक्रम को क्रियान्वित करता है। यह एक भाषा अनुवादक (कंप्यूटिंग) के विपरीत है जो एक प्रोग्राम को निष्पादित होने से पहले एक भाषा से दूसरी भाषा में परिवर्तित करता है। | ||
== वर्चुअल मशीन == | == वर्चुअल मशीन == | ||
{{main| | {{main|वर्चुअल मशीन}} | ||
वर्चुअल मशीन (वीएम) एक[[ कंप्यूटर प्रणाली | कंप्यूटर प्रणाली]] का[[ वर्चुअलाइजेशन | वर्चुअलाइजेशन]]/एमुलेटर है। वर्चुअल मशीनें[[ कंप्यूटर आर्किटेक्चर | कंप्यूटर आर्किटेक्चर]] पर आधारित होती हैं और भौतिक कंप्यूटर की कार्यक्षमता प्रदान करती हैं। उनके कार्यान्वयन में विशेष हार्डवेयर, सॉफ्टवेयर या संयोजन सम्मलित हो सकते हैं। | |||
आभासी मशीनें भिन्न होती हैं और उनके कार्य द्वारा व्यवस्थित होती हैं, यहाँ दिखाया गया है: | आभासी मशीनें भिन्न होती हैं और उनके कार्य द्वारा व्यवस्थित होती हैं, यहाँ दिखाया गया है: | ||
* '[[ सिस्टम वर्चुअल मशीन ]]' (जिसे [[ पूर्ण वर्चुअलाइजेशन ]] वीएम भी कहा जाता है) एक वास्तविक मशीन का विकल्प प्रदान करता है। वे संपूर्ण ऑपरेटिंग सिस्टम को निष्पादित करने के लिए आवश्यक कार्यक्षमता प्रदान करते हैं। एक हाइपरवाइजर हार्डवेयर को साझा करने और प्रबंधित करने के लिए देशी कोड का उपयोग करता है, जो कई वातावरणों की अनुमति देता है जो एक दूसरे से अलग होते हैं, फिर भी एक ही भौतिक मशीन पर मौजूद होते हैं। आधुनिक [[ हाइपरविजर ]] मुख्य रूप से होस्ट सीपीयू से [[ हार्डवेयर-असिस्टेड वर्चुअलाइजेशन ]], वर्चुअलाइजेशन-विशिष्ट हार्डवेयर का उपयोग करते हैं। | * '[[ सिस्टम वर्चुअल मशीन ]]' (जिसे[[ पूर्ण वर्चुअलाइजेशन | पूर्ण वर्चुअलाइजेशन]] वीएम भी कहा जाता है) एक वास्तविक मशीन का विकल्प प्रदान करता है। वे संपूर्ण ऑपरेटिंग सिस्टम को निष्पादित करने के लिए आवश्यक कार्यक्षमता प्रदान करते हैं। एक हाइपरवाइजर हार्डवेयर को साझा करने और प्रबंधित करने के लिए देशी कोड का उपयोग करता है, जो कई वातावरणों की अनुमति देता है जो एक दूसरे से अलग होते हैं, फिर भी एक ही भौतिक मशीन पर मौजूद होते हैं। आधुनिक [[ हाइपरविजर | हाइपरविजर]] मुख्य रूप से होस्ट सीपीयू से[[ हार्डवेयर-असिस्टेड वर्चुअलाइजेशन | हार्डवेयर-असिस्टेड वर्चुअलाइजेशन]],वर्चुअलाइजेशन-विशिष्ट हार्डवेयर का उपयोग करते हैं। | ||
* 'प्रोसेस वर्चुअल मशीन' को प्लेटफॉर्म-स्वतंत्र वातावरण में कंप्यूटर प्रोग्राम निष्पादित करने के लिए डिज़ाइन किया गया है। | * 'प्रोसेस वर्चुअल मशीन' को प्लेटफॉर्म-स्वतंत्र वातावरण में कंप्यूटर प्रोग्राम निष्पादित करने के लिए डिज़ाइन किया गया है। | ||
कुछ वर्चुअल मशीन एमुलेटर, जैसे कि [[ QEMU ]] और [[ वीडियो गेम कंसोल एमुलेटर ]], को विभिन्न सिस्टम आर्किटेक्चर का अनुकरण (या वस्तुतः नकल) करने के लिए डिज़ाइन किया गया है, इस प्रकार सॉफ़्टवेयर एप्लिकेशन और ऑपरेटिंग सिस्टम को दूसरे [[ CPU ]] या आर्किटेक्चर के लिए लिखे जाने की अनुमति देता है। [[ ऑपरेटिंग-सिस्टम-स्तरीय वर्चुअलाइजेशन ]] कंप्यूटर के संसाधनों को [[ कर्नेल (ऑपरेटिंग सिस्टम) ]] के माध्यम से विभाजित करने की अनुमति देता है। शर्तें सार्वभौमिक रूप से विनिमेय नहीं हैं। | कुछ वर्चुअल मशीन एमुलेटर, जैसे कि[[ QEMU | क्यूईएमयू (QEMU)]] और[[ वीडियो गेम कंसोल एमुलेटर | वीडियो गेम कंसोल एमुलेटर]], को विभिन्न सिस्टम आर्किटेक्चर का अनुकरण (या वस्तुतः नकल) करने के लिए डिज़ाइन किया गया है, इस प्रकार सॉफ़्टवेयर एप्लिकेशन और ऑपरेटिंग सिस्टम को दूसरे[[ CPU | सीपीयू (CPU)]] या आर्किटेक्चर के लिए लिखे जाने की अनुमति देता है।[[ ऑपरेटिंग-सिस्टम-स्तरीय वर्चुअलाइजेशन ]]कंप्यूटर के संसाधनों को [[ कर्नेल (ऑपरेटिंग सिस्टम) |कर्नेल (ऑपरेटिंग सिस्टम)]] के माध्यम से विभाजित करने की अनुमति देता है। शर्तें सार्वभौमिक रूप से विनिमेय नहीं हैं। | ||
==संदर्भ== | ==संदर्भ== | ||
Line 59: | Line 56: | ||
{{CPU_technologies}} | {{CPU_technologies}} | ||
== यह भी देखें == | == यह भी देखें == | ||
* [[ निष्पादन ]] योग्य | * [[ निष्पादन ]] योग्य | ||
Line 68: | Line 63: | ||
{{DEFAULTSORT:Execution (Computing)}} | {{DEFAULTSORT:Execution (Computing)}} | ||
[[Category: | [[Category:Articles with hatnote templates targeting a nonexistent page|Execution (Computing)]] | ||
[[Category:Created On 31/12/2022]] | [[Category:Articles with short description|Execution (Computing)]] | ||
[[Category:CS1 English-language sources (en)|Execution (Computing)]] | |||
[[Category:CS1 français-language sources (fr)|Execution (Computing)]] | |||
[[Category:CS1 maint|Execution (Computing)]] | |||
[[Category:CS1 Ελληνικά-language sources (el)|Execution (Computing)]] | |||
[[Category:Citation Style 1 templates|W]] | |||
[[Category:Collapse templates|Execution (Computing)]] | |||
[[Category:Created On 31/12/2022|Execution (Computing)]] | |||
[[Category:Lua-based templates|Execution (Computing)]] | |||
[[Category:Machine Translated Page|Execution (Computing)]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists|Execution (Computing)]] | |||
[[Category:Pages with script errors|Execution (Computing)]] | |||
[[Category:Short description with empty Wikidata description|Execution (Computing)]] | |||
[[Category:Sidebars with styles needing conversion|Execution (Computing)]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready|Execution (Computing)]] | |||
[[Category:Templates based on the Citation/CS1 Lua module|Execution (Computing)]] | |||
[[Category:Templates generating COinS|Cite web]] | |||
[[Category:Templates generating microformats|Execution (Computing)]] | |||
[[Category:Templates that add a tracking category|Execution (Computing)]] | |||
[[Category:Templates that are not mobile friendly|Execution (Computing)]] | |||
[[Category:Templates that generate short descriptions|Execution (Computing)]] | |||
[[Category:Templates used by AutoWikiBrowser|Cite web]] | |||
[[Category:Templates using TemplateData|Execution (Computing)]] | |||
[[Category:Wikipedia fully protected templates|Cite web]] | |||
[[Category:Wikipedia metatemplates|Execution (Computing)]] |
Latest revision as of 12:12, 29 August 2023
कार्यक्रम निष्पादन |
---|
सामान्य अवधारणाएँ |
कोड के प्रकार |
संकलन रणनीतियाँ |
उल्लेखनीय रनटाइम्स |
|
उल्लेखनीय संकलक और टूलचेन |
|
कंप्यूटर इंजीनियरिंग और सॉफ्टवेयर इंजीनियरिंग में निष्पादन (कंप्यूटिंग) वह प्रक्रिया है जिसके द्वारा एक कंप्यूटर या आभासी मशीन कंप्यूटर प्रोग्राम के निर्देशों को पढ़ती है और कार्य करती है। कार्यक्रम का प्रत्येक निर्देश एक विशेष क्रिया का विवरण है जिसे एक विशिष्ट समस्या को हल करने के लिए किया जाना चाहिए। नियंत्रण इकाई द्वारा किए गए प्रत्येक निर्देश के लिए निष्पादन में 'लाने-डिकोड-निष्पादित' चक्र का बार-बार पालन करना सम्मिलित है। जैसा कि निष्पादन मशीन निर्देशों का पालन करती है, उन निर्देशों की प्रोग्रामिंग भाषाओं के औपचारिक शब्दार्थ के अनुसार विशिष्ट प्रभाव उत्पन्न होते हैं।
एक कंप्यूटर के लिए प्रोग्राम मानव संपर्क के बिनाप्रचय संसाधन में निष्पादित किए जा सकते हैं या एक उपयोगकर्ता (कंप्यूटिंग) एक इंटरप्रेटर (कंप्यूटिंग) के सत्र (कंप्यूटिंग) में कमांड (कंप्यूटिंग) टाइप कर सकता है। इस स्थिति में, कमांड केवल प्रोग्राम निर्देश होते हैं, जिनका निष्पादन एक साथ जुड़ा होता है।
रन शब्द का प्रयोग लगभग पर्यायवाची के रूप में किया जाता है। चलाने और निष्पादित करने दोनों का एक संबंधित अर्थ एक प्रोग्राम को आरम्भ करने (या लॉन्चिंग या आह्वान) के उपयोगकर्ता की विशिष्ट क्रिया को संदर्भित करता है, जैसा कि कृपया एप्लिकेशन चलाएं।
प्रक्रिया
निष्पादन से पहले, एक कार्यक्रम पहले लिखा जाना चाहिए। यह सामान्यतः स्रोत कोड में किया जाता है, जिसे निष्पादन योग्य बनाने के लिए संकलन समय (औरलिंक समय पर स्थिर रूप से जुड़ा हुआ) पर संकलित किया जाता है। यह निष्पादन योग्य तब लागू होता है, सबसे अधिक बार एक ऑपरेटिंग सिस्टम द्वारा, जो प्रोग्राम को मेमोरी (लोड होने का समय) में लोड करता है, संभवतः गतिशील लिंकिंग करता है, और फिर प्रोग्राम के प्रवेश बिंदु पर नियंत्रण ले जाकर निष्पादन आरम्भ करता है; ये सभी चरण ऑपरेटिंग सिस्टम के एप्लिकेशन बाइनरी इंटरफ़ेस पर निर्भर करते हैं। इस बिंदु पर निष्पादन आरम्भ होता है और प्रोग्राम रन टाइम (कार्यक्रम जीवनचक्र चरण) में प्रवेश करता है। कार्यक्रम तब तक चलता है जब तक यह समाप्त नहीं हो जाता, या तो सामान्य समाप्ति (कंप्यूटर विज्ञान) या क्रैश (कंप्यूटिंग) कहा जाता है।
निष्पादन योग्य
निष्पादन योग्य कोड, एक निष्पादन योग्य फ़ाइल, या एक निष्पादन योग्य प्रोग्राम, जिसे कभी-कभी केवल एक निष्पादन योग्य या के रूप में संदर्भित किया जाता है बाइनरी, निर्देशों और डेटा की एक सूची है जिसके कारण कंप्यूटर एन्कोडेड निर्देश (कंप्यूटर साइंस) के अनुसार संकेतित कार्य करता है,[1] डेटा (कंप्यूटिंग) के विपरीत, जिसे सार्थक होने के लिए एक प्रोग्राम द्वारा व्याख्या (पार्सर) किया जाना चाहिए।
सटीक व्याख्या उपयोग पर निर्भर करती है। भौतिक सेंट्रल प्रोसेसिंग यूनिट के लिए निर्देशों को पारंपरिक रूप सेमशीन कोड निर्देशों के रूप में लिया जाता है।[2] कुछ संदर्भों में, स्क्रिप्टिंग निर्देश वाली फ़ाइल (जैसे बाईटकोड) को भी निष्पादन योग्य माना जा सकता है।
निष्पादन का संदर्भ
जिस संदर्भ में निष्पादन होता है वह महत्वपूर्ण है। बेर मशीन पर बहुत कम प्रोग्राम निष्पादित होते हैं। कार्यक्रमों में सामान्यतः निष्पादन के समय उपलब्ध संसाधनों के बारे में निहित और स्पष्ट धारणाएँ होती हैं। अधिकांश प्रोग्राम कंप्यूटर मल्टीटास्किंग ऑपरेटिंग सिस्टम और क्रम पुस्तकालय के भीतर विशिष्ट रूप से निष्पादित होते हैं। स्रोत भाषा के लिए विशिष्ट रन-टाइम लाइब्रेरी जो कंप्यूटर द्वारा सीधे आपूर्ति नहीं की जाने वाली महत्वपूर्ण सेवाएं प्रदान करती हैं। यह सहायक वातावरण, उदाहरण के लिए, सामान्यतः एक प्रोग्राम को कंप्यूटर बाह्य उपकरणों के प्रत्यक्ष हेरफेर से अलग करता है, इसके बजाय अधिक सामान्य, अमूर्त सेवाएं प्रदान करता है।
संदर्भ स्विचिंग
एक ही सीपीयू/एमसीयू के साथ डिजिटल सिस्टम पर चल रहे कंप्यूटर मल्टीटास्किंग में प्रोग्राम और इंटरप्ट हैंडलर बिना किसी हस्तक्षेप के काम करने के लिए और समान हार्डवेयर मेमोरी और आई/ओ सिस्टम तक पहुंच साझा करने के लिए किसी प्रकार के सॉफ्टवेयर की आवश्यकता होती है, और एक निष्पादन प्रक्रिया डेटा (स्मृति पृष्ठ पते, रजिस्टर आदि) का ट्रैक रखने के लिए और उन्हें निलंबित करने से पहले की स्थिति में वापस लाने के लिए उन्हें सहेजने और पुनर्प्राप्त करने के लिए हार्डवेयर सुविधाएं। यह एक संदर्भ स्विचिंग द्वारा प्राप्त किया जाता है।[3]: 3.3 [4] चल रहे प्रोग्रामों को प्रायः एक प्रक्रिया-संदर्भ पहचानकर्ता (पीसीआईडी) नियुक्त किया जाता है।
लिनक्स-आधारित ऑपरेटिंग सिस्टम में, प्रोसेसर रजिस्टर में संग्रहीत डेटा का एक सेट सामान्यतः संदर्भ के स्विचिंग को लागू करने के लिए मेमोरी में एक प्रोसेस डिस्क्रिप्टर में सहेजा जाता है।[3]पीसीआईडी का भी उपयोग किया जाता है।
रनटाइम सिस्टम
रनटाइम सिस्टम, जिसे रनटाइम वातावरण भी कहा जाता है, मुख्य रूप से निष्पादन मॉडल के कुछ हिस्सों को लागू करता है। (खाका: क्या) यह किसी प्रोग्राम के रन टाइम (प्रोग्राम जीवनचक्र चरण) जीवनचक्र चरण के साथ भ्रमित नहीं होना है, जिसके दौरान रनटाइम सिस्टम संचालन में है। जब रनटाइम सिस्टम को रनटाइम एनवायरनमेंट (आरटीई) से अलग माना जाता है, तो पहले को एकीकृत विकास पर्यावरण के एक विशिष्ट भाग के रूप में परिभाषित किया जा सकता है। प्रोग्रामिंग के लिए उपयोग किए जाने वाले एप्लिकेशन सॉफ़्टवेयर (आईडीई), सॉफ्टवेयर का एक टुकड़ा जो प्रोग्रामर को अधिक सुविधाजनक प्रदान करता है। उनके उत्पादन (सॉफ्टवेयर परीक्षण और इसी तरह) के दौरान कार्यक्रमों को चलाने के लिए पर्यावरण, जबकि दूसरा (आरटीई) एक निष्पादन मॉडल का उदाहरण (कंप्यूटर विज्ञान) होगा जो विकसित कार्यक्रम पर लागू किया जा रहा है जो स्वयं उपरोक्त रनटाइम सिस्टम में चलाया जाता है।अधिकांश प्रोग्रामिंग भाषाओं में रनटाइम सिस्टम का कुछ रूप होता है जो एक ऐसा वातावरण प्रदान करता है जिसमें प्रोग्राम चलते हैं। यह वातावरण एप्लिकेशन स्मृति के मेमोरी प्रबंधन सहित कई मुद्दों को संबोधित कर सकता है, कैसे प्रोग्राम वेरिएबल (कंप्यूटर साइंस) तक पहुंचता है,सबरूटीन के बीच पैरामीटर पास करने के लिए तंत्र, ऑपरेटिंग सिस्टम के साथ इंटरफेसिंग,द्वारा चलता है। संकलक सही कोड उत्पन्न करने के लिए विशिष्ट रनटाइम सिस्टम के आधार पर अनुमान लगाता है। सामान्यतः रनटाइम सिस्टम में स्टैक (सार डेटा प्रकार) और हीप (डेटा संरचना) को स्थापित करने और प्रबंधित करने की कुछ ज़िम्मेदारी होगी, और इसमें कचरा संग्रह (कंप्यूटर विज्ञान), थ्रेड (कंप्यूटिंग) या अन्य गतिशील प्रोग्रामिंग भाषा जैसी सुविधाएँ सम्मलित हो सकती हैं। भाषा में निर्मित विशेषताएं।[5]
निर्देश चक्र
निर्देश चक्र (जिसे फ़ेच-डिकोड-निष्पादित चक्र या बस फ़ेच-निष्पादित चक्र के रूप में भी जाना जाता है) वह चक्र है जो सेंट्रल प्रोसेसिंग यूनिट (सीपीयू) बूटिंग से चलता है। बूट-अप जब तक कंप्यूटर बंद नहीं हो जाता है प्रक्रिया निर्देश। यह तीन मुख्य चरणों से बना है: लाने का चरण, डिकोड चरण और निष्पादन चरण।
सरल सीपीयू में, निर्देश चक्र को क्रमिक रूप से निष्पादित किया जाता है, प्रत्येक निर्देश को अगले एक के शुरू होने से पहले संसाधित किया जाता है। अधिकांश आधुनिक सीपीयू में, निर्देश चक्र को समवर्ती कंप्यूटिंग में निष्पादित किया जाता है, और अक्सर समानांतर कंप्यूटिंग में, एक निर्देश पाइपलाइन के माध्यम से अगले निर्देश को पिछले निर्देश के समाप्त होने से पहले संसाधित किया जाना शुरू हो जाता है, जो संभव है क्योंकि चक्र अलग-अलग चरणों में टूट गया है .[6]
दुभाषिया
एक सिस्टम जो प्रोग्राम को निष्पादित करता है उसे प्रोग्राम का इंटरप्रेटर (कंप्यूटिंग) कहा जाता है। शिथिल रूप से, एक दुभाषिया सीधे एक कार्यक्रम को क्रियान्वित करता है। यह एक भाषा अनुवादक (कंप्यूटिंग) के विपरीत है जो एक प्रोग्राम को निष्पादित होने से पहले एक भाषा से दूसरी भाषा में परिवर्तित करता है।
वर्चुअल मशीन
वर्चुअल मशीन (वीएम) एक कंप्यूटर प्रणाली का वर्चुअलाइजेशन/एमुलेटर है। वर्चुअल मशीनें कंप्यूटर आर्किटेक्चर पर आधारित होती हैं और भौतिक कंप्यूटर की कार्यक्षमता प्रदान करती हैं। उनके कार्यान्वयन में विशेष हार्डवेयर, सॉफ्टवेयर या संयोजन सम्मलित हो सकते हैं।
आभासी मशीनें भिन्न होती हैं और उनके कार्य द्वारा व्यवस्थित होती हैं, यहाँ दिखाया गया है:
- 'सिस्टम वर्चुअल मशीन ' (जिसे पूर्ण वर्चुअलाइजेशन वीएम भी कहा जाता है) एक वास्तविक मशीन का विकल्प प्रदान करता है। वे संपूर्ण ऑपरेटिंग सिस्टम को निष्पादित करने के लिए आवश्यक कार्यक्षमता प्रदान करते हैं। एक हाइपरवाइजर हार्डवेयर को साझा करने और प्रबंधित करने के लिए देशी कोड का उपयोग करता है, जो कई वातावरणों की अनुमति देता है जो एक दूसरे से अलग होते हैं, फिर भी एक ही भौतिक मशीन पर मौजूद होते हैं। आधुनिक हाइपरविजर मुख्य रूप से होस्ट सीपीयू से हार्डवेयर-असिस्टेड वर्चुअलाइजेशन,वर्चुअलाइजेशन-विशिष्ट हार्डवेयर का उपयोग करते हैं।
- 'प्रोसेस वर्चुअल मशीन' को प्लेटफॉर्म-स्वतंत्र वातावरण में कंप्यूटर प्रोग्राम निष्पादित करने के लिए डिज़ाइन किया गया है।
कुछ वर्चुअल मशीन एमुलेटर, जैसे कि क्यूईएमयू (QEMU) और वीडियो गेम कंसोल एमुलेटर, को विभिन्न सिस्टम आर्किटेक्चर का अनुकरण (या वस्तुतः नकल) करने के लिए डिज़ाइन किया गया है, इस प्रकार सॉफ़्टवेयर एप्लिकेशन और ऑपरेटिंग सिस्टम को दूसरे सीपीयू (CPU) या आर्किटेक्चर के लिए लिखे जाने की अनुमति देता है।ऑपरेटिंग-सिस्टम-स्तरीय वर्चुअलाइजेशन कंप्यूटर के संसाधनों को कर्नेल (ऑपरेटिंग सिस्टम) के माध्यम से विभाजित करने की अनुमति देता है। शर्तें सार्वभौमिक रूप से विनिमेय नहीं हैं।
संदर्भ
- ↑ "निष्पादन". Merriam-Webster's Online Dictionary. Merriam-Webster. Retrieved 2008-07-19.
- ↑ "मशीन निर्देश". GeeksforGeeks (in English). 2015-11-03. Retrieved 2019-09-18.
- ↑ 3.0 3.1 Bovet, Daniel P. (2005). लिनक्स कर्नेल को समझना. Marco Cesati (3 ed.). Sevastopol, CA: O'Reilly. ISBN 0-596-00565-2. OCLC 64549743.
- ↑ "स्वैपिंग और कॉन्टेक्स्ट स्विचिंग के बीच अंतर". GeeksforGeeks (in English). 2021-06-10. Retrieved 2022-08-10.
- ↑ 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.
- ↑ Crystal Chen, Greg Novick and Kirk Shimano (2000). "पाइपलाइनिंग". Retrieved 2019-06-26.
यह भी देखें
- निष्पादन योग्य
- रन-टाइम सिस्टम
- रन टाइम (कार्यक्रम जीवनचक्र चरण)
- कार्यक्रम गणक