निष्पादन (कंप्यूटिंग): Difference between revisions
(modified) |
(→प्रक्रिया: modification) |
||
Line 3: | Line 3: | ||
[[ कंप्यूटर |कंप्यूटर]] इंजीनियरिंग और सॉफ्टवेयर इंजीनियरिंग में निष्पादन वह प्रक्रिया है जिसके द्वारा एक कंप्यूटर या [[ आभासी मशीन |आभासी मशीन]] [[ कंप्यूटर प्रोग्राम ]]के निर्देशों को पढ़ती है और कार्य करती है। एक कार्यक्रम का प्रत्येक निर्देश एक विशेष क्रिया का विवरण है जिसे एक विशिष्ट समस्या को हल करने के लिए किया जाना चाहिए। नियंत्रण इकाई द्वारा किए गए प्रत्येक निर्देश के लिए निष्पादन में 'लाने-डिकोड-निष्पादित' चक्र का बार-बार पालन करना शामिल है। जैसा कि निष्पादन मशीन निर्देशों का पालन करती है, उन निर्देशों की प्रोग्रामिंग भाषाओं के औपचारिक शब्दार्थ के अनुसार विशिष्ट प्रभाव उत्पन्न होते हैं। | [[ कंप्यूटर |कंप्यूटर]] इंजीनियरिंग और सॉफ्टवेयर इंजीनियरिंग में निष्पादन वह प्रक्रिया है जिसके द्वारा एक कंप्यूटर या [[ आभासी मशीन |आभासी मशीन]] [[ कंप्यूटर प्रोग्राम ]]के निर्देशों को पढ़ती है और कार्य करती है। एक कार्यक्रम का प्रत्येक निर्देश एक विशेष क्रिया का विवरण है जिसे एक विशिष्ट समस्या को हल करने के लिए किया जाना चाहिए। नियंत्रण इकाई द्वारा किए गए प्रत्येक निर्देश के लिए निष्पादन में 'लाने-डिकोड-निष्पादित' चक्र का बार-बार पालन करना शामिल है। जैसा कि निष्पादन मशीन निर्देशों का पालन करती है, उन निर्देशों की प्रोग्रामिंग भाषाओं के औपचारिक शब्दार्थ के अनुसार विशिष्ट प्रभाव उत्पन्न होते हैं। | ||
एक कंप्यूटर के लिए प्रोग्राम मानव संपर्क के बिना[[ प्रचय संसाधन ]]में निष्पादित किए जा सकते हैं या एक [[ उपयोगकर्ता (कंप्यूटिंग) ]] एक इंटरप्रेटर (कंप्यूटिंग) के सत्र (कंप्यूटिंग) में[[ कमांड (कंप्यूटिंग) | कमांड (कंप्यूटिंग)]] टाइप कर सकता है। इस मामले में, कमांड केवल प्रोग्राम निर्देश होते हैं, जिनका निष्पादन एक साथ जुड़ा होता है। | एक कंप्यूटर के लिए प्रोग्राम मानव संपर्क के बिना[[ प्रचय संसाधन ]]में निष्पादित किए जा सकते हैं या एक [[ उपयोगकर्ता (कंप्यूटिंग) ]] एक इंटरप्रेटर (कंप्यूटिंग) के सत्र (कंप्यूटिंग) में[[ कमांड (कंप्यूटिंग) | कमांड (कंप्यूटिंग)]] टाइप कर सकता है। इस मामले में, कमांड केवल प्रोग्राम निर्देश होते हैं, जिनका निष्पादन एक साथ जुड़ा होता है। | ||
रन शब्द का प्रयोग लगभग पर्यायवाची के रूप में किया जाता है। चलाने और निष्पादित करने दोनों का एक संबंधित अर्थ एक प्रोग्राम को शुरू करने (या ''लॉन्चिंग'' या ''आह्वान'') के उपयोगकर्ता की विशिष्ट क्रिया को संदर्भित करता है, जैसा कि कृपया एप्लिकेशन चलाएं। | रन शब्द का प्रयोग लगभग पर्यायवाची के रूप में किया जाता है। चलाने और निष्पादित करने दोनों का एक संबंधित अर्थ एक प्रोग्राम को शुरू करने (या ''लॉन्चिंग'' या ''आह्वान'') के उपयोगकर्ता की विशिष्ट क्रिया को संदर्भित करता है, जैसा कि कृपया एप्लिकेशन चलाएं। | ||
Line 9: | Line 9: | ||
== प्रक्रिया == | == प्रक्रिया == | ||
{{see|Program lifecycle phase}} | {{see|Program lifecycle phase}} | ||
निष्पादन से पहले, एक कार्यक्रम पहले लिखा जाना चाहिए। यह आम तौर पर स्रोत कोड में किया जाता है, जिसे निष्पादन योग्य बनाने के लिए [[ संकलन समय ]] (और [[ लिंक समय ]] पर स्थिर रूप से जुड़ा हुआ) पर संकलित किया जाता है। यह निष्पादन योग्य तब लागू होता है, सबसे अधिक बार एक ऑपरेटिंग सिस्टम द्वारा, जो प्रोग्राम को मेमोरी ([[ लोड होने का समय ]]) में लोड करता है, संभवतः [[ गतिशील लिंकिंग ]] करता है, और फिर प्रोग्राम के [[ प्रवेश बिंदु ]] पर नियंत्रण ले जाकर निष्पादन शुरू करता है; ये सभी चरण ऑपरेटिंग सिस्टम के [[ एप्लिकेशन बाइनरी इंटरफ़ेस ]] पर निर्भर करते हैं। इस बिंदु पर निष्पादन शुरू होता है और प्रोग्राम [[ रन टाइम (कार्यक्रम जीवनचक्र चरण) ]] में प्रवेश करता है। कार्यक्रम तब तक चलता है जब तक यह समाप्त नहीं हो जाता, या तो सामान्य [[ समाप्ति (कंप्यूटर विज्ञान) ]] या [[ क्रैश (कंप्यूटिंग) ]]। | निष्पादन से पहले, एक कार्यक्रम पहले लिखा जाना चाहिए। यह आम तौर पर स्रोत कोड में किया जाता है, जिसे निष्पादन योग्य बनाने के लिए [[ संकलन समय |संकलन समय]] (और[[ लिंक समय ]]पर स्थिर रूप से जुड़ा हुआ) पर संकलित किया जाता है। यह निष्पादन योग्य तब लागू होता है, सबसे अधिक बार एक ऑपरेटिंग सिस्टम द्वारा, जो प्रोग्राम को मेमोरी ([[ लोड होने का समय |लोड होने का समय]]) में लोड करता है, संभवतः[[ गतिशील लिंकिंग | गतिशील लिंकिंग]] करता है, और फिर प्रोग्राम के[[ प्रवेश बिंदु | प्रवेश बिंदु]] पर नियंत्रण ले जाकर निष्पादन शुरू करता है; ये सभी चरण ऑपरेटिंग सिस्टम के [[ एप्लिकेशन बाइनरी इंटरफ़ेस |एप्लिकेशन बाइनरी इंटरफ़ेस]] पर निर्भर करते हैं। इस बिंदु पर निष्पादन शुरू होता है और प्रोग्राम[[ रन टाइम (कार्यक्रम जीवनचक्र चरण) | रन टाइम (कार्यक्रम जीवनचक्र चरण)]] में प्रवेश करता है। कार्यक्रम तब तक चलता है जब तक यह समाप्त नहीं हो जाता, या तो सामान्य[[ समाप्ति (कंप्यूटर विज्ञान) | समाप्ति (कंप्यूटर विज्ञान)]] या [[ क्रैश (कंप्यूटिंग) |क्रैश (कंप्यूटिंग) कहा जाता है]]। | ||
== निष्पादन योग्य == | == निष्पादन योग्य == |
Revision as of 14:03, 9 January 2023
कार्यक्रम निष्पादन |
---|
सामान्य अवधारणाएँ |
कोड के प्रकार |
संकलन रणनीतियाँ |
उल्लेखनीय रनटाइम्स |
|
उल्लेखनीय संकलक और टूलचेन |
|
कंप्यूटर इंजीनियरिंग और सॉफ्टवेयर इंजीनियरिंग में निष्पादन वह प्रक्रिया है जिसके द्वारा एक कंप्यूटर या आभासी मशीन कंप्यूटर प्रोग्राम के निर्देशों को पढ़ती है और कार्य करती है। एक कार्यक्रम का प्रत्येक निर्देश एक विशेष क्रिया का विवरण है जिसे एक विशिष्ट समस्या को हल करने के लिए किया जाना चाहिए। नियंत्रण इकाई द्वारा किए गए प्रत्येक निर्देश के लिए निष्पादन में 'लाने-डिकोड-निष्पादित' चक्र का बार-बार पालन करना शामिल है। जैसा कि निष्पादन मशीन निर्देशों का पालन करती है, उन निर्देशों की प्रोग्रामिंग भाषाओं के औपचारिक शब्दार्थ के अनुसार विशिष्ट प्रभाव उत्पन्न होते हैं।
एक कंप्यूटर के लिए प्रोग्राम मानव संपर्क के बिनाप्रचय संसाधन में निष्पादित किए जा सकते हैं या एक उपयोगकर्ता (कंप्यूटिंग) एक इंटरप्रेटर (कंप्यूटिंग) के सत्र (कंप्यूटिंग) में कमांड (कंप्यूटिंग) टाइप कर सकता है। इस मामले में, कमांड केवल प्रोग्राम निर्देश होते हैं, जिनका निष्पादन एक साथ जुड़ा होता है।
रन शब्द का प्रयोग लगभग पर्यायवाची के रूप में किया जाता है। चलाने और निष्पादित करने दोनों का एक संबंधित अर्थ एक प्रोग्राम को शुरू करने (या लॉन्चिंग या आह्वान) के उपयोगकर्ता की विशिष्ट क्रिया को संदर्भित करता है, जैसा कि कृपया एप्लिकेशन चलाएं।
प्रक्रिया
निष्पादन से पहले, एक कार्यक्रम पहले लिखा जाना चाहिए। यह आम तौर पर स्रोत कोड में किया जाता है, जिसे निष्पादन योग्य बनाने के लिए संकलन समय (औरलिंक समय पर स्थिर रूप से जुड़ा हुआ) पर संकलित किया जाता है। यह निष्पादन योग्य तब लागू होता है, सबसे अधिक बार एक ऑपरेटिंग सिस्टम द्वारा, जो प्रोग्राम को मेमोरी (लोड होने का समय) में लोड करता है, संभवतः गतिशील लिंकिंग करता है, और फिर प्रोग्राम के प्रवेश बिंदु पर नियंत्रण ले जाकर निष्पादन शुरू करता है; ये सभी चरण ऑपरेटिंग सिस्टम के एप्लिकेशन बाइनरी इंटरफ़ेस पर निर्भर करते हैं। इस बिंदु पर निष्पादन शुरू होता है और प्रोग्राम रन टाइम (कार्यक्रम जीवनचक्र चरण) में प्रवेश करता है। कार्यक्रम तब तक चलता है जब तक यह समाप्त नहीं हो जाता, या तो सामान्य समाप्ति (कंप्यूटर विज्ञान) या क्रैश (कंप्यूटिंग) कहा जाता है।
निष्पादन योग्य
निष्पादन योग्य कोड, एक निष्पादन योग्य फ़ाइल, या एक निष्पादन योग्य प्रोग्राम, जिसे कभी-कभी केवल एक निष्पादन योग्य या के रूप में संदर्भित किया जाता है बाइनरी, निर्देशों और डेटा की एक सूची है जिसके कारण कंप्यूटर एन्कोडेड निर्देश (कंप्यूटर साइंस) के अनुसार संकेतित कार्य करता है,[1] एक डेटा (कंप्यूटिंग) के विपरीत, जिसे सार्थक होने के लिए एक प्रोग्राम द्वारा व्याख्या (पार्सर ) किया जाना चाहिए।
सटीक व्याख्या उपयोग पर निर्भर करती है। भौतिक सेंट्रल प्रोसेसिंग यूनिट के लिए निर्देशों को पारंपरिक रूप से मशीन कोड निर्देशों के रूप में लिया जाता है।[2] कुछ संदर्भों में, स्क्रिप्टिंग निर्देश वाली फ़ाइल (जैसे बाईटकोड ) को भी निष्पादन योग्य माना जा सकता है।
निष्पादन का संदर्भ
जिस संदर्भ में निष्पादन होता है वह महत्वपूर्ण है। नंगे मशीन पर बहुत कम प्रोग्राम निष्पादित होते हैं। कार्यक्रमों में आमतौर पर निष्पादन के समय उपलब्ध संसाधनों के बारे में निहित और स्पष्ट धारणाएँ होती हैं। अधिकांश प्रोग्राम कंप्यूटर मल्टीटास्किंग ऑपरेटिंग सिस्टम और क्रम पुस्तकालय के भीतर निष्पादित होते हैं। स्रोत भाषा के लिए विशिष्ट रन-टाइम लाइब्रेरी जो कंप्यूटर द्वारा सीधे आपूर्ति नहीं की जाने वाली महत्वपूर्ण सेवाएं प्रदान करती हैं। यह सहायक वातावरण, उदाहरण के लिए, आमतौर पर एक प्रोग्राम को कंप्यूटर बाह्य उपकरणों के प्रत्यक्ष हेरफेर से अलग करता है, इसके बजाय अधिक सामान्य, अमूर्त सेवाएं प्रदान करता है।
संदर्भ स्विचिंग
एक ही सीपीयू/एमसीयू के साथ डिजिटल सिस्टम पर चल रहे कंप्यूटर मल्टीटास्किंग में प्रोग्राम और इंटरप्ट हैंडलर बिना किसी हस्तक्षेप के काम करने के लिए और समान हार्डवेयर मेमोरी और आई/ओ सिस्टम तक पहुंच साझा करने के लिए किसी प्रकार के सॉफ्टवेयर की आवश्यकता होती है। और एक निष्पादन प्रक्रिया डेटा (स्मृति पृष्ठ पते, रजिस्टर आदि) का ट्रैक रखने के लिए और उन्हें निलंबित करने से पहले की स्थिति में वापस लाने के लिए उन्हें सहेजने और पुनर्प्राप्त करने के लिए हार्डवेयर सुविधाएं। यह एक संदर्भ स्विचिंग द्वारा प्राप्त किया जाता है।[3]: 3.3 [4] चल रहे प्रोग्रामों को अक्सर एक प्रक्रिया-संदर्भ पहचानकर्ता (PCID) असाइन किया जाता है।
लिनक्स-आधारित ऑपरेटिंग सिस्टम में, प्रोसेसर रजिस्टर में संग्रहीत डेटा का एक सेट आमतौर पर संदर्भ के स्विचिंग को लागू करने के लिए मेमोरी में एक प्रोसेस डिस्क्रिप्टर में सहेजा जाता है।[3]पीसीआईडी का भी उपयोग किया जाता है।
रनटाइम सिस्टम
एक रनटाइम सिस्टम, जिसे रनटाइम एनवायरनमेंट भी कहा जाता है, मुख्य रूप से निष्पादन मॉडल के कुछ हिस्सों को लागू करता है।[clarification needed] यह किसी प्रोग्राम के रन टाइम (प्रोग्राम जीवनचक्र चरण) जीवनचक्र चरण के साथ भ्रमित नहीं होना है, जिसके दौरान रनटाइम सिस्टम संचालन में है। जब रनटाइम सिस्टम को रनटाइम एनवायरनमेंट (आरटीई) से अलग माना जाता है, तो पहले को एकीकृत विकास पर्यावरण के एक विशिष्ट भाग के रूप में परिभाषित किया जा सकता है। प्रोग्रामिंग के लिए उपयोग किए जाने वाले एप्लिकेशन सॉफ़्टवेयर (आईडीई), सॉफ्टवेयर का एक टुकड़ा जो प्रोग्रामर को अधिक सुविधाजनक प्रदान करता है। उनके उत्पादन (सॉफ्टवेयर परीक्षण और इसी तरह) के दौरान कार्यक्रमों को चलाने के लिए पर्यावरण, जबकि दूसरा (आरटीई) एक निष्पादन मॉडल का बहुत ही उदाहरण (कंप्यूटर विज्ञान) होगा जिसे विकसित कार्यक्रम पर लागू किया जा रहा है जो स्वयं पूर्वोक्त रनटाइम सिस्टम में चलाया जाता है। अधिकांश प्रोग्रामिंग भाषा ओं में रनटाइम सिस्टम का कुछ रूप होता है जो एक ऐसा वातावरण प्रदान करता है जिसमें प्रोग्राम चलते हैं। यह वातावरण एप्लिकेशन स्मृति के मेमोरी प्रबंधन सहित कई मुद्दों को संबोधित कर सकता है, कैसे प्रोग्राम वेरिएबल (कंप्यूटर साइंस) तक पहुंचता है, सबरूटीन ्स के बीच पैरामीटर पास करने के लिए तंत्र, ऑपरेटिंग सिस्टम के साथ इंटरफेसिंग, और अन्यथा। संकलक सही कोड उत्पन्न करने के लिए विशिष्ट रनटाइम सिस्टम के आधार पर अनुमान लगाता है। आमतौर पर रनटाइम सिस्टम में स्टैक (सार डेटा प्रकार) और हीप (डेटा संरचना) को स्थापित करने और प्रबंधित करने की कुछ ज़िम्मेदारी होगी, और इसमें कचरा संग्रह (कंप्यूटर विज्ञान) , थ्रेड (कंप्यूटिंग) या अन्य गतिशील प्रोग्रामिंग भाषा जैसी सुविधाएँ शामिल हो सकती हैं। भाषा में निर्मित विशेषताएं।[5]
निर्देश चक्र
निर्देश चक्र (जिसे फ़ेच-डिकोड-निष्पादित चक्र या बस फ़ेच-निष्पादित चक्र के रूप में भी जाना जाता है) वह चक्र है जो सेंट्रल प्रोसेसिंग यूनिट (सीपीयू) बूटिंग से चलता है। बूट-अप जब तक कंप्यूटर बंद नहीं हो जाता है प्रक्रिया निर्देश। यह तीन मुख्य चरणों से बना है: लाने का चरण, डिकोड चरण और निष्पादन चरण।
सरल सीपीयू में, निर्देश चक्र को क्रमिक रूप से निष्पादित किया जाता है, प्रत्येक निर्देश को अगले एक के शुरू होने से पहले संसाधित किया जाता है। अधिकांश आधुनिक सीपीयू में, निर्देश चक्र को समवर्ती कंप्यूटिंग में निष्पादित किया जाता है, और अक्सर समानांतर कंप्यूटिंग में, एक निर्देश पाइपलाइन के माध्यम से: अगले निर्देश को पिछले निर्देश के समाप्त होने से पहले संसाधित किया जाना शुरू हो जाता है, जो संभव है क्योंकि चक्र अलग-अलग चरणों में टूट गया है .[6]
दुभाषिया
एक सिस्टम जो प्रोग्राम को निष्पादित करता है उसे प्रोग्राम का इंटरप्रेटर (कंप्यूटिंग) कहा जाता है। शिथिल रूप से, एक दुभाषिया सीधे एक कार्यक्रम को क्रियान्वित करता है। यह एक भाषा अनुवादक (कंप्यूटिंग) के विपरीत है जो एक प्रोग्राम को निष्पादित होने से पहले एक भाषा से दूसरी भाषा में परिवर्तित करता है।
वर्चुअल मशीन
एक वर्चुअल मशीन (VM) एक कंप्यूटर प्रणाली का वर्चुअलाइजेशन /एमुलेटर है। वर्चुअल मशीनें कंप्यूटर आर्किटेक्चर पर आधारित होती हैं और एक भौतिक कंप्यूटर की कार्यक्षमता प्रदान करती हैं। उनके कार्यान्वयन में विशेष हार्डवेयर, सॉफ्टवेयर या संयोजन शामिल हो सकते हैं।
आभासी मशीनें भिन्न होती हैं और उनके कार्य द्वारा व्यवस्थित होती हैं, यहाँ दिखाया गया है:
- 'सिस्टम वर्चुअल मशीन ' (जिसे पूर्ण वर्चुअलाइजेशन वीएम भी कहा जाता है) एक वास्तविक मशीन का विकल्प प्रदान करता है। वे संपूर्ण ऑपरेटिंग सिस्टम को निष्पादित करने के लिए आवश्यक कार्यक्षमता प्रदान करते हैं। एक हाइपरवाइजर हार्डवेयर को साझा करने और प्रबंधित करने के लिए देशी कोड का उपयोग करता है, जो कई वातावरणों की अनुमति देता है जो एक दूसरे से अलग होते हैं, फिर भी एक ही भौतिक मशीन पर मौजूद होते हैं। आधुनिक हाइपरविजर मुख्य रूप से होस्ट सीपीयू से हार्डवेयर-असिस्टेड वर्चुअलाइजेशन , वर्चुअलाइजेशन-विशिष्ट हार्डवेयर का उपयोग करते हैं।
- 'प्रोसेस वर्चुअल मशीन' को प्लेटफॉर्म-स्वतंत्र वातावरण में कंप्यूटर प्रोग्राम निष्पादित करने के लिए डिज़ाइन किया गया है।
कुछ वर्चुअल मशीन एमुलेटर, जैसे कि 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.
यह भी देखें
- निष्पादन योग्य
- रन-टाइम सिस्टम
- रन टाइम (कार्यक्रम जीवनचक्र चरण)
- कार्यक्रम गणक
श्रेणी:कंप्यूटिंग शब्दावली