कोड खंड: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Short description|Portion of an object file containing executable instructions}}
{{Short description|Portion of an object file containing executable instructions}}
[[File:Program memory layout.pdf|thumb|383x383px|This shows the typical layout of a simple computer's program memory with the text, various data, and [[call stack|stack]] and [[heap (programming) |heap]] sections.]]
[[File:Program memory layout.pdf|thumb|383x383px|यह [[टेक्स्ट-आधारित यूजर इंटरफेस|टेक्स्ट]], विभिन्न डेटा और [[स्टैक (हास्केल)|स्टैक]] और [[हीप (गणित)|हीप]] सेक्शन के साथ एक साधारण कंप्यूटर की प्रोग्राम [[मेमोरी एड्रेस|मेमोरी]] का विशिष्ट लेआउट दिखाता है।]]


[[कम्प्यूटिंग]] में, एक कोड सेगमेंट, जिसे टेक्स्ट सेगमेंट या केवल टेक्स्ट के रूप में भी जाना जाता है, [[वस्तु फ़ाइल]] का एक हिस्सा है या प्रोग्राम के [[आभासी पता स्थान]] का संबंधित सेक्शन है जिसमें [[निष्पादन]] योग्य निर्देश (कंप्यूटर साइंस) शामिल है।<ref name="jason">{{Cite web
[[कम्प्यूटिंग]] में, एक कोड सेगमेंट, जिसे टेक्स्ट सेगमेंट या केवल टेक्स्ट के रूप में भी जाना जाता है, [[वस्तु फ़ाइल]] का एक हिस्सा है या प्रोग्राम के [[आभासी पता स्थान|आभासी एड्रेस स्थान]] का संबंधित सेक्शन है जिसमें [[निष्पादन]] योग्य निर्देश (कंप्यूटर साइंस) सम्मिलित है।<ref name="jason">{{Cite web
  | url = http://www.cs.uwm.edu/classes/cs315/Bacon/Lecture/HTML/ch10s04.html
  | url = http://www.cs.uwm.edu/classes/cs315/Bacon/Lecture/HTML/ch10s04.html
  | title = Chapter 10. Subprogram Calls and the Stack
  | title = Chapter 10. Subprogram Calls and the Stack
Line 12: Line 12:


== सेगमेंट ==
== सेगमेंट ==
शब्द खंड [[स्मृति खंड]] से आता है, जो [[स्मृति प्रबंधन]] के लिए एक ऐतिहासिक दृष्टिकोण है जिसे [[पेजिंग]] द्वारा सफल किया गया है। जब कोई प्रोग्राम किसी ऑब्जेक्ट फ़ाइल में संग्रहीत होता है, तो कोड सेगमेंट इस फ़ाइल का एक हिस्सा होता है; जब [[लोडर (कंप्यूटिंग)]] एक प्रोग्राम को मुख्य मेमोरी में रखता है ताकि इसे निष्पादित किया जा सके, विभिन्न मेमोरी क्षेत्रों को आवंटित किया जाता है (विशेष रूप से, पृष्ठों के रूप में), ऑब्जेक्ट फ़ाइलों में दोनों सेगमेंट के अनुरूप और केवल रन टाइम पर आवश्यक सेगमेंट के लिए। उदाहरण के लिए, किसी ऑब्जेक्ट फ़ाइल के कोड सेगमेंट को मेमोरी में संबंधित कोड सेगमेंट में लोड किया जाता है।
शब्द [[सेगमेंट]] [[स्मृति खंड|मेमोरी सेगमेंट]] से आता है, जो [[स्मृति प्रबंधन|मेमोरी प्रबंधन]] के लिए एक ऐतिहासिक दृष्टिकोण है जिसे [[पेजिंग]] द्वारा सफल किया गया है। जब कोई प्रोग्राम किसी ऑब्जेक्ट फ़ाइल में संग्रहीत होता है, तो कोड सेगमेंट इस फ़ाइल का एक हिस्सा होता है; जब [[लोडर (कंप्यूटिंग)]] एक प्रोग्राम को मुख्य मेमोरी में रखता है ताकि इसे निष्पादित किया जा सके, ऑब्जेक्ट फ़ाइलों में दोनों सेगमेंट के अनुरूप और केवल रन टाइम पर आवश्यक सेगमेंट के लिए विभिन्न मेमोरी क्षेत्रों को आवंटित किया जाता है (विशेष रूप से, पृष्ठों के रूप में)उदाहरण के लिए, किसी ऑब्जेक्ट फ़ाइल के कोड सेगमेंट को मेमोरी में संबंधित कोड सेगमेंट में लोड किया जाता है।


स्मृति में कोड खंड आमतौर पर केवल पढ़ने के लिए होता है और इसका एक निश्चित आकार होता है, इसलिए [[अंतः स्थापित प्रणाली]] पर इसे आमतौर पर लोड करने की आवश्यकता के बिना [[केवल पढ़ने के लिये मेमोरी]] (ROM) में रखा जा सकता है। यदि कोड खंड केवल-पढ़ने के लिए नहीं है, तो विशेष [[कंप्यूटर आर्किटेक्चर]] स्वयं-संशोधित कोड की अनुमति देता है। फिक्स्ड-पोजिशन या [[स्थिति-स्वतंत्र कोड]] को सेगमेंटेड या पेजेड मेमोरी सिस्टम में कई प्रक्रियाओं द्वारा मेमोरी में साझा किया जा सकता है।<ref name="jason"/><ref>{{Cite web
मेमोरी में कोड सेगमेंट सामान्यतः केवल पढ़ने के लिए होता है और इसका एक निश्चित आकार होता है, इसलिए [[अंतः स्थापित प्रणाली]] पर इसे सामान्यतः लोड करने की आवश्यकता के बिना केवल पढ़ने के लिए [[केवल पढ़ने के लिये मेमोरी|रीड ओनली मेमोरी]] (ROM) में रखा जा सकता है। यदि कोड सेगमेंट केवल-पढ़ने के लिए नहीं है, तो विशेष [[कंप्यूटर आर्किटेक्चर]] स्वयं-संशोधित कोड की अनुमति देता है। फिक्स्ड-पोजिशन या [[स्थिति-स्वतंत्र कोड]] को सेगमेंटेड या पेजेड मेमोरी सिस्टम में कई प्रक्रियाओं द्वारा मेमोरी में साझा किया जा सकता है।<ref name="jason"/><ref>{{Cite web
  | url = http://www.beingdeveloper.com/memory-layout-of-a-program/
  | url = http://www.beingdeveloper.com/memory-layout-of-a-program/
  | title = Code Segment and Data Segment: Memory Layout of a Program
  | title = Code Segment and Data Segment: Memory Layout of a Program
  | date = 2012-09-20 | accessdate = 2014-05-02
  | date = 2012-09-20 | accessdate = 2014-05-02
  | author = Kai Wang | website = beingdeveloper.com
  | author = Kai Wang | website = beingdeveloper.com
}}</ref> मेमोरी क्षेत्र के रूप में, कोड सेगमेंट को ढेर या स्टैक के नीचे रखा जा सकता है ताकि [[ढेर अतिप्रवाह]] और [[स्टैक ओवरफ़्लो]] को इसे ओवरराइट करने से रोका जा सके।<ref>{{Cite conference
}}</ref> मेमोरी क्षेत्र के रूप में, कोड सेगमेंट को स्टैक पर या [[स्टैक (हास्केल)|स्टैक]] के नीचे रखा जा सकता है ताकि [[ढेर अतिप्रवाह|स्टैक]] [[हीप (गणित)|हीप]] और [[स्टैक ओवरफ़्लो]] को इसे ओवरराइट करने से रोका जा सके।<ref>{{Cite conference
  | doi = 10.1109/ISCIT.2005.1567023
  | doi = 10.1109/ISCIT.2005.1567023
  | title = Buffer overflow protection based on adjusting code segment limit
  | title = Buffer overflow protection based on adjusting code segment limit
Line 31: Line 31:
== यह भी देखें ==
== यह भी देखें ==
{{Portal|Computer programming}}
{{Portal|Computer programming}}
* .बीएसएस
* बीएसएस
* [[डेटा खंड]]
* [[डेटा खंड|डेटा सेगमेंट]]


== संदर्भ ==
== संदर्भ ==
Line 38: Line 38:


[[Category:Created On 17/02/2023]]
[[Category:Created On 17/02/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Machine Translated Page]]
[[Category:Pages with empty portal template]]
[[Category:Pages with empty portal template]]
Line 47: Line 48:
[[Category:Templates that add a tracking category]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]

Latest revision as of 18:09, 15 March 2023

यह टेक्स्ट, विभिन्न डेटा और स्टैक और हीप सेक्शन के साथ एक साधारण कंप्यूटर की प्रोग्राम मेमोरी का विशिष्ट लेआउट दिखाता है।

कम्प्यूटिंग में, एक कोड सेगमेंट, जिसे टेक्स्ट सेगमेंट या केवल टेक्स्ट के रूप में भी जाना जाता है, वस्तु फ़ाइल का एक हिस्सा है या प्रोग्राम के आभासी एड्रेस स्थान का संबंधित सेक्शन है जिसमें निष्पादन योग्य निर्देश (कंप्यूटर साइंस) सम्मिलित है।[1]


सेगमेंट

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

मेमोरी में कोड सेगमेंट सामान्यतः केवल पढ़ने के लिए होता है और इसका एक निश्चित आकार होता है, इसलिए अंतः स्थापित प्रणाली पर इसे सामान्यतः लोड करने की आवश्यकता के बिना केवल पढ़ने के लिए रीड ओनली मेमोरी (ROM) में रखा जा सकता है। यदि कोड सेगमेंट केवल-पढ़ने के लिए नहीं है, तो विशेष कंप्यूटर आर्किटेक्चर स्वयं-संशोधित कोड की अनुमति देता है। फिक्स्ड-पोजिशन या स्थिति-स्वतंत्र कोड को सेगमेंटेड या पेजेड मेमोरी सिस्टम में कई प्रक्रियाओं द्वारा मेमोरी में साझा किया जा सकता है।[1][2] मेमोरी क्षेत्र के रूप में, कोड सेगमेंट को स्टैक पर या स्टैक के नीचे रखा जा सकता है ताकि स्टैक हीप और स्टैक ओवरफ़्लो को इसे ओवरराइट करने से रोका जा सके।[3]


यह भी देखें

संदर्भ

  1. 1.0 1.1 Jason W. Bacon (2012-03-13). "Chapter 10. Subprogram Calls and the Stack". cs.uwm.edu. Section 10.4. Memory Segments. Retrieved 2014-05-02.
  2. Kai Wang (2012-09-20). "Code Segment and Data Segment: Memory Layout of a Program". beingdeveloper.com. Retrieved 2014-05-02.
  3. Yu-An Tan; Ji-yan Zheng; Yuan-Da Cao; Xue-lan Zhang (October 2005). Buffer overflow protection based on adjusting code segment limit. IEEE International Symposium on Communications and Information Technology. IEEE. doi:10.1109/ISCIT.2005.1567023.