पेज फॉल्ट: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{Short description|Error from a process accessing unmapped memory}}
{{Short description|Error from a process accessing unmapped memory}}
कंप्यूटिंग में, पेज फॉल्ट (जिसे कभी-कभी पीएफ या हार्ड फॉल्ट कहा जाता है){{Efn|[[Microsoft]] uses the term "hard fault" in some versions of its [[Resource Monitor]], e.g., in [[Windows Vista]] (as used in the Resource View Help in Microsoft operating systems).}} एक [[एक्सेप्शन हेंडलिंग]] है जिसे [[स्मृति प्रबंधन इकाई|मेमोरी प्रबंधन इकाई]] (एमएमयू) तब उठाता है जब कोई [[प्रक्रिया (कंप्यूटिंग)]] उचित तैयारी के बिना [[स्मृति पृष्ठ|मेमोरी पेज]] तक पहुंचती है। पेज तक पहुँचने के लिए प्रक्रिया के [[आभासी पता स्थान]] में मैपिंग को जोड़ने की आवश्यकता होती है। इसके अलावा, वास्तविक पेज सामग्री को [[डिस्क भंडारण]] जैसे बैकिंग स्टोर से लोड करने की आवश्यकता हो सकती है। एमएमयू पेज फॉल्ट का पता लगाता है, लेकिन ऑपरेटिंग प्रणाली का [[कर्नेल (ऑपरेटिंग सिस्टम)|कर्नेल (ऑपरेटिंग प्रणाली)]] भौतिक मेमोरी में आवश्यक पेज को एक्सेस करने या अवैध मेमोरी एक्सेस को अस्वीकार करके अपवाद को संभालता है।
कंप्यूटिंग में, पेज फॉल्ट (जिसे कभी-कभी पीएफ या हार्ड फॉल्ट कहा जाता है){{Efn|[[Microsoft]] uses the term "hard fault" in some versions of its [[Resource Monitor]], e.g., in [[Windows Vista]] (as used in the Resource View Help in Microsoft operating systems).}} एक [[एक्सेप्शन हेंडलिंग]] है जिसे [[स्मृति प्रबंधन इकाई|मेमोरी प्रबंधन इकाई]] (एमएमयू) तब उठाता है जब कोई [[प्रक्रिया (कंप्यूटिंग)]] उचित तैयारी के बिना [[स्मृति पृष्ठ|मेमोरी पेज]] तक पहुंचती है। पेज तक पहुँचने के लिए प्रक्रिया के [[आभासी पता स्थान]] में माप को जोड़ने की आवश्यकता होती है। इसके अलावा, वास्तविक पेज सामग्री को [[डिस्क भंडारण]] जैसे बैकिंग स्टोर से लोड करने की आवश्यकता हो सकती है। एमएमयू पेज फॉल्ट का पता लगाता है, लेकिन ऑपरेटिंग प्रणाली का [[कर्नेल (ऑपरेटिंग सिस्टम)|कर्नेल (ऑपरेटिंग प्रणाली)]] भौतिक मेमोरी में आवश्यक पेज को एक्सेस करने या अवैध मेमोरी एक्सेस को अस्वीकार करके अपवाद को संभालता है।


किसी भी ऑपरेटिंग प्रणाली में [[आभासी मेमोरी]], जैसे कि [[खिड़कियाँ|विंडोज]], मैकओएस और [[लिनक्स कर्नेल]] का उपयोग करने वाले प्रोग्रामों के लिए उपलब्ध मेमोरी की मात्रा बढ़ाने के लिए मान्य पेज दोष सामान्य और आवश्यक हैं।<ref>{{cite book |last1=Bovet |first1=Daniel |last2=Cesati |first2=Marco |title=Understanding the Linux Kernel |date=November 2005 |publisher=O'Reilly Media |isbn=0-596-00565-2 |edition=3rd |url=http://gauss.ececs.uc.edu/Courses/c4029/code/memory/understanding.pdf |access-date=9 October 2021}}</ref>
किसी भी ऑपरेटिंग प्रणाली में [[आभासी मेमोरी]], जैसे कि [[खिड़कियाँ|विंडोज]], मैकओएस और [[लिनक्स कर्नेल]] का उपयोग करने वाले प्रोग्रामों के लिए उपलब्ध मेमोरी की मात्रा बढ़ाने के लिए मान्य पेज दोष सामान्य और आवश्यक हैं।<ref>{{cite book |last1=Bovet |first1=Daniel |last2=Cesati |first2=Marco |title=Understanding the Linux Kernel |date=November 2005 |publisher=O'Reilly Media |isbn=0-596-00565-2 |edition=3rd |url=http://gauss.ececs.uc.edu/Courses/c4029/code/memory/understanding.pdf |access-date=9 October 2021}}</ref>
Line 8: Line 8:


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


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


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


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


== अमान्य शर्तें ==
== अमान्य शर्तें asasasasa ==
अवैध पहुंच और अमान्य पेज दोषों के परिणामस्वरूप विभाजन दोष या [[बस त्रुटि]] हो सकती है, जिसके परिणामस्वरूप ऐप या OS [[क्रैश (कंप्यूटिंग)]] हो सकता है। [[सॉफ्टवेयर बग]] अक्सर इन समस्याओं का कारण होते हैं, लेकिन हार्डवेयर मेमोरी त्रुटियाँ, जैसे कि [[overclocking]] के कारण, पॉइंटर्स को दूषित कर सकती हैं और स्वस्थ कोड विफल हो सकती हैं।
अवैध पहुंच और अमान्य पेज दोषों के परिणामस्वरूप विभाजन दोष या [[बस त्रुटि]] हो सकती है, जिसके परिणामस्वरूप ऐप या ओएस [[क्रैश (कंप्यूटिंग)]] हो सकता है। [[सॉफ्टवेयर बग]] अक्सर इन समस्याओं का कारण होते हैं, लेकिन हार्डवेयर मेमोरी त्रुटियाँ, जैसे कि [[overclocking]] के कारण, पॉइंटर्स को दूषित कर सकती हैं और स्वस्थ कोड विफल हो सकती हैं।


ऑपरेटिंग प्रणाली पेज फॉल्ट एरर की रिपोर्टिंग के लिए अलग-अलग तंत्र प्रदान करते हैं। [[Microsoft Windows]] अमान्य पेज दोषों को एक्सेस उल्लंघन अपवादों के रूप में रिपोर्ट करने के लिए [[संरचित अपवाद हैंडलिंग]] का उपयोग करता है। UNIX-जैसी प्रणालियाँ आमतौर पर प्रोग्राम को इन त्रुटि स्थितियों की रिपोर्ट करने के लिए [[SIGSEGV]] जैसे [[सिग्नल (कंप्यूटिंग)]] का उपयोग करती हैं। यदि त्रुटि प्राप्त करने वाला प्रोग्राम इसे हैंडल नहीं करता है, तो ऑपरेटिंग प्रणाली एक डिफ़ॉल्ट क्रिया करता है, जिसमें आमतौर पर चल रही प्रक्रिया (कंप्यूटिंग) को समाप्त करना शामिल होता है जो त्रुटि की स्थिति का कारण बनता है, और उपयोगकर्ता को सूचित करता है कि प्रोग्राम खराब हो गया है। विंडोज अक्सर ऐसे क्रैश की सूचना बिना किसी विवरण के देता है। एक अनुभवी उपयोगकर्ता [[WinDbg]] और क्रैश के दौरान Windows द्वारा बनाए गए [[minidump]] का उपयोग करके विस्तृत जानकारी प्राप्त कर सकता है। यूनिक्स-जैसे ऑपरेटिंग प्रणाली इन स्थितियों को सेगमेंटेशन उल्लंघन या बस त्रुटि जैसे त्रुटि संदेशों के साथ रिपोर्ट करते हैं, और [[कोर निपात]] उत्पन्न कर सकते हैं।
ऑपरेटिंग प्रणाली पेज फॉल्ट एरर की रिपोर्टिंग के लिए अलग-अलग तंत्र प्रदान करते हैं। [[Microsoft Windows|Micrओएसoft Windows]] अमान्य पेज दोषों को एक्सेस उल्लंघन अपवादों के रूप में रिपोर्ट करने के लिए [[संरचित अपवाद हैंडलिंग]] का उपयोग करता है। UNIX-जैसी प्रणालियाँ आमतौर पर प्रोग्राम को इन त्रुटि स्थितियों की रिपोर्ट करने के लिए [[SIGSEGV]] जैसे [[सिग्नल (कंप्यूटिंग)]] का उपयोग करती हैं। यदि त्रुटि प्राप्त करने वाला प्रोग्राम इसे हैंडल नहीं करता है, तो ऑपरेटिंग प्रणाली एक डिफ़ॉल्ट क्रिया करता है, जिसमें आमतौर पर चल रही प्रक्रिया (कंप्यूटिंग) को समाप्त करना शामिल होता है जो त्रुटि की स्थिति का कारण बनता है, और उपयोगकर्ता को सूचित करता है कि प्रोग्राम खराब हो गया है। विंडोज अक्सर ऐसे क्रैश की सूचना बिना किसी विवरण के देता है। एक अनुभवी उपयोगकर्ता [[WinDbg]] और क्रैश के दौरान Windows द्वारा बनाए गए [[minidump]] का उपयोग करके विस्तृत जानकारी प्राप्त कर सकता है। यूनिक्स-जैसे ऑपरेटिंग प्रणाली इन स्थितियों को सेगमेंटेशन उल्लंघन या बस त्रुटि जैसे त्रुटि संदेशों के साथ रिपोर्ट करते हैं, और [[कोर निपात]] उत्पन्न कर सकते हैं।


== प्रदर्शन प्रभाव ==
== प्रदर्शन प्रभाव ==
Line 48: Line 50:


== बाहरी संबंध ==
== बाहरी संबंध ==
* "[https://web.archive.org/web/20061016080158/http://www.osronline.com/article.cfm?article=222 So What Is A Page Fault?]{{subscription required}}" from OSR Online (a Windows-specific explanation)
* "[https://web.archive.org/web/20061016080158/http://www.osronline.com/article.cfm?article=222 So What Is A Page Fault?]{{subscription required}}" from ओएसR Online (a Windows-specific explanation)
* "[https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/Introduction_To_System_Administration/s1-memory-virt-details.html Virtual Memory Details]" from the Red Hat website.
* "[https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/Introduction_To_System_Administration/s1-memory-virt-details.html Virtual Memory Details]" from the Red Hat website.
* "[http://msdn2.microsoft.com/en-us/library/ms681401.aspx UnhandledExceptionFilter (Windows)]" from [http://msdn.microsoft.com/library MSDN Online].
* "[http://msdn2.microsoft.com/en-us/library/ms681401.aspx UnhandledExceptionFilter (Windows)]" from [http://msdn.microsoft.com/library MSDN Online].

Revision as of 21:34, 26 February 2023

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

किसी भी ऑपरेटिंग प्रणाली में आभासी मेमोरी, जैसे कि विंडोज, मैकओएस और लिनक्स कर्नेल का उपयोग करने वाले प्रोग्रामों के लिए उपलब्ध मेमोरी की मात्रा बढ़ाने के लिए मान्य पेज दोष सामान्य और आवश्यक हैं।[1]


प्रकार

माइनर

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

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

मेजर

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

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

अमान्य

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

अमान्य शर्तें asasasasa

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

ऑपरेटिंग प्रणाली पेज फॉल्ट एरर की रिपोर्टिंग के लिए अलग-अलग तंत्र प्रदान करते हैं। Micrओएसoft Windows अमान्य पेज दोषों को एक्सेस उल्लंघन अपवादों के रूप में रिपोर्ट करने के लिए संरचित अपवाद हैंडलिंग का उपयोग करता है। UNIX-जैसी प्रणालियाँ आमतौर पर प्रोग्राम को इन त्रुटि स्थितियों की रिपोर्ट करने के लिए SIGSEGV जैसे सिग्नल (कंप्यूटिंग) का उपयोग करती हैं। यदि त्रुटि प्राप्त करने वाला प्रोग्राम इसे हैंडल नहीं करता है, तो ऑपरेटिंग प्रणाली एक डिफ़ॉल्ट क्रिया करता है, जिसमें आमतौर पर चल रही प्रक्रिया (कंप्यूटिंग) को समाप्त करना शामिल होता है जो त्रुटि की स्थिति का कारण बनता है, और उपयोगकर्ता को सूचित करता है कि प्रोग्राम खराब हो गया है। विंडोज अक्सर ऐसे क्रैश की सूचना बिना किसी विवरण के देता है। एक अनुभवी उपयोगकर्ता WinDbg और क्रैश के दौरान Windows द्वारा बनाए गए minidump का उपयोग करके विस्तृत जानकारी प्राप्त कर सकता है। यूनिक्स-जैसे ऑपरेटिंग प्रणाली इन स्थितियों को सेगमेंटेशन उल्लंघन या बस त्रुटि जैसे त्रुटि संदेशों के साथ रिपोर्ट करते हैं, और कोर निपात उत्पन्न कर सकते हैं।

प्रदर्शन प्रभाव

पेज दोष प्रणाली के प्रदर्शन को नीचा दिखाते हैं और थ्रैशिंग (कंप्यूटर विज्ञान) का कारण बन सकते हैं। हार्ड डिस्क ड्राइव का उपयोग करने वाले पारंपरिक कंप्यूटरों पर प्रमुख पेज दोष उनके प्रदर्शन पर महत्वपूर्ण प्रभाव डाल सकते हैं, क्योंकि औसत हार्ड डिस्क ड्राइव में 3 ms की औसत घूर्णी विलंबता, 5 ms का खोज समय और 0.05 ms/पेज का स्थानांतरण समय होता है . इसलिए, पेजिंग के लिए कुल समय लगभग 8 एमएस (= 8,000 μs) है। यदि मेमोरी एक्सेस का समय 0.2 μs है, तो पेज फॉल्ट ऑपरेशन को लगभग 40,000 गुना धीमा कर देगा।

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

एक बड़ी भौतिक मेमोरी भी पेज दोषों को कम करती है।

यह भी देखें

  • बेलाडी की विसंगति

टिप्पणियाँ

  1. Microsoft uses the term "hard fault" in some versions of its Resource Monitor, e.g., in Windows Vista (as used in the Resource View Help in Microsoft operating systems).


संदर्भ

  1. Bovet, Daniel; Cesati, Marco (November 2005). Understanding the Linux Kernel (PDF) (3rd ed.). O'Reilly Media. ISBN 0-596-00565-2. Retrieved 9 October 2021.
  • John L. Hennessy, David A. Patterson, Computer Architecture, A Quantitative Approach (ISBN 1-55860-724-2)
  • Tanenbaum, Andrew S. Operating Systems: Design and Implementation (Second Edition). New Jersey: Prentice-Hall 1997.
  • Intel Architecture Software Developer's Manual–Volume 3: System Programming


बाहरी संबंध