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

From Vigyanwiki
No edit summary
No edit summary
 
(8 intermediate revisions by 3 users not shown)
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 7: Line 7:
== प्रकार ==
== प्रकार ==


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


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


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


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


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


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


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


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


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


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


एक बड़ी भौतिक मेमोरी भी पेज दोषों को कम करती है।
एक बड़ी भौतिक मेमोरी भी पेज दोषों को कम करती है।
Line 50: 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 ओएसR 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 OSR 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].
* "[https://plus.google.com/+LinusTorvalds/posts/YDKRFDwHwr6 Page fault overhead]" for information about how page faults can crucially affect processing time.
* "[https://plus.google.com/+LinusTorvalds/posts/YDKRFDwHwr6 Page fault overhead]" for information about how page faults can crucially affect processing time.
[[Category: आभासी मेमोरी]] [[Category: स्मृति प्रबंधन]] [[Category: कंप्यूटर त्रुटियां]]


[[Category: Machine Translated Page]]
[[Category:Created On 17/02/2023]]
[[Category:Created On 17/02/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Pages containing links to subscription-only content]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:आभासी मेमोरी]]
[[Category:कंप्यूटर त्रुटियां]]
[[Category:स्मृति प्रबंधन]]

Latest revision as of 16:00, 16 March 2023

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

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


प्रकार

लघु

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

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

दीर्घ

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

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

अमान्य

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

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

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

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

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

पेज दोष प्रणाली के प्रदर्शन को नीचा दिखाते हैं और थ्रैशिंग (कंप्यूटर विज्ञान) का कारण बन सकते हैं। हार्ड डिस्क ड्राइव का उपयोग करने वाले पारंपरिक कंप्यूटरों पर प्रमुख पेज दोष उनके प्रदर्शन पर महत्वपूर्ण प्रभाव डाल सकते हैं, क्योंकि औसत हार्ड डिस्क ड्राइव में 3 एमएस की औसत घूर्णी विलंबता, 5 एमएस का खोज समय और 0.05 एमएस/पेज का स्थानांतरण समय होता है। इसलिए, पेजिंग के लिए कुल समय लगभग 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


बाहरी संबंध