कोड खंड: Difference between revisions
No edit summary |
No edit summary |
||
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| | [[File:Program memory layout.pdf|thumb|383x383px|यह [[टेक्स्ट-आधारित यूजर इंटरफेस|टेक्स्ट]], विभिन्न डेटा और [[स्टैक (हास्केल)|स्टैक]] और [[हीप (गणित)|हीप]] सेक्शन के साथ एक साधारण कंप्यूटर की प्रोग्राम [[मेमोरी एड्रेस|मेमोरी]] का विशिष्ट लेआउट दिखाता है।]] | ||
[[कम्प्यूटिंग]] में, एक कोड सेगमेंट, जिसे टेक्स्ट सेगमेंट या केवल टेक्स्ट के रूप में भी जाना जाता है, [[वस्तु फ़ाइल]] का एक हिस्सा है या प्रोग्राम के [[आभासी पता स्थान]] का संबंधित सेक्शन है जिसमें [[निष्पादन]] योग्य निर्देश (कंप्यूटर साइंस) | [[कम्प्यूटिंग]] में, एक कोड सेगमेंट, जिसे टेक्स्ट सेगमेंट या केवल टेक्स्ट के रूप में भी जाना जाता है, [[वस्तु फ़ाइल]] का एक हिस्सा है या प्रोग्राम के [[आभासी पता स्थान|आभासी एड्रेस स्थान]] का संबंधित सेक्शन है जिसमें [[निष्पादन]] योग्य निर्देश (कंप्यूटर साइंस) सम्मिलित है।<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 | |||
| 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> मेमोरी क्षेत्र के रूप में, कोड सेगमेंट को स्टैक पर या [[स्टैक (हास्केल)|स्टैक]] के नीचे रखा जा सकता है ताकि [[ढेर अतिप्रवाह|स्टैक]] [[हीप (गणित)|हीप]] और [[स्टैक ओवरफ़्लो]] को इसे ओवरराइट करने से रोका जा सके।<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}} | ||
* | * बीएसएस | ||
* [[डेटा खंड]] | * [[डेटा खंड|डेटा सेगमेंट]] | ||
== संदर्भ == | == संदर्भ == |
Revision as of 18:42, 9 March 2023
कम्प्यूटिंग में, एक कोड सेगमेंट, जिसे टेक्स्ट सेगमेंट या केवल टेक्स्ट के रूप में भी जाना जाता है, वस्तु फ़ाइल का एक हिस्सा है या प्रोग्राम के आभासी एड्रेस स्थान का संबंधित सेक्शन है जिसमें निष्पादन योग्य निर्देश (कंप्यूटर साइंस) सम्मिलित है।[1]
सेगमेंट
शब्द सेगमेंट मेमोरी सेगमेंट से आता है, जो मेमोरी प्रबंधन के लिए एक ऐतिहासिक दृष्टिकोण है जिसे पेजिंग द्वारा सफल किया गया है। जब कोई प्रोग्राम किसी ऑब्जेक्ट फ़ाइल में संग्रहीत होता है, तो कोड सेगमेंट इस फ़ाइल का एक हिस्सा होता है; जब लोडर (कंप्यूटिंग) एक प्रोग्राम को मुख्य मेमोरी में रखता है ताकि इसे निष्पादित किया जा सके, ऑब्जेक्ट फ़ाइलों में दोनों सेगमेंट के अनुरूप और केवल रन टाइम पर आवश्यक सेगमेंट के लिए विभिन्न मेमोरी क्षेत्रों को आवंटित किया जाता है (विशेष रूप से, पृष्ठों के रूप में)। उदाहरण के लिए, किसी ऑब्जेक्ट फ़ाइल के कोड सेगमेंट को मेमोरी में संबंधित कोड सेगमेंट में लोड किया जाता है।
मेमोरी में कोड सेगमेंट सामान्यतः केवल पढ़ने के लिए होता है और इसका एक निश्चित आकार होता है, इसलिए अंतः स्थापित प्रणाली पर इसे सामान्यतः लोड करने की आवश्यकता के बिना केवल पढ़ने के लिए रीड ओनली मेमोरी (ROM) में रखा जा सकता है। यदि कोड सेगमेंट केवल-पढ़ने के लिए नहीं है, तो विशेष कंप्यूटर आर्किटेक्चर स्वयं-संशोधित कोड की अनुमति देता है। फिक्स्ड-पोजिशन या स्थिति-स्वतंत्र कोड को सेगमेंटेड या पेजेड मेमोरी सिस्टम में कई प्रक्रियाओं द्वारा मेमोरी में साझा किया जा सकता है।[1][2] मेमोरी क्षेत्र के रूप में, कोड सेगमेंट को स्टैक पर या स्टैक के नीचे रखा जा सकता है ताकि स्टैक हीप और स्टैक ओवरफ़्लो को इसे ओवरराइट करने से रोका जा सके।[3]
यह भी देखें
- बीएसएस
- डेटा सेगमेंट
संदर्भ
- ↑ 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.
- ↑ Kai Wang (2012-09-20). "Code Segment and Data Segment: Memory Layout of a Program". beingdeveloper.com. Retrieved 2014-05-02.
- ↑ 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.