in

पेज फाल्ट | Page Fault

Page Fault

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

पेज फाल्ट को नियंत्रित करने की पद्धति इस पेज फाल्ट को नियंत्रित करने की पद्धति आसान है।

1. हम इस प्रोसेस के लिए, इन्टरनल टेबल (सामान्यतः इसे प्रोसेस कंट्रोल ब्लॉक के साथ रखा जाता है) को सर्च करते हैं और निर्धारित करते हैं कि रेफरेंस वेलिड या इनवेलिड मेमोरी एक्सेस था।

2. यदि रेफरेंस इनवेलिड था, तब हम प्रोसेस को समाप्त कर देते हैं। यदि वह वेलीड था परन्तु फिर भी हम उस पेज को अंदर नहीं लाये हैं, तब हमें उसे बाद में अंदर लाना होगा।

3. हम फ्री फ्रेम खोजते हैं।

4. हम वांछित पेज को रीड करने के लिए डिस्क ऑपरशन को व्यवस्थित करते हैं।

5. जब डिस्क की रिडिंग पूर्ण हो जाती है, तब हम प्रोसेस और पेज टेबल के समय स्थित इंटरनल टेबल को यह बताने के लिए संशोधित करते हैं कि पेज अब मेमोरी में संग्रहीत है।

6. हम निर्देशों को पुनः प्रारंभ करते हैं जो अमान्य s एड्रेस ट्रेप द्वारा इंट्रप कर दिये गए थे। अब प्रोसेस पेज को इस प्रकार एक्सेस कर सकती है, जैसे वह हमेशा मेमोरी में संग्रहीत था।

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

आपात काल में, हम प्रोसेस को, मेमोरी में पेजों के न होते हुए भी, एक्जिक्युट कर सकते हैं। जब ऑपरेटिंग सिस्टम, इन्सट्रक्शन पाइंटर को प्रोसेस के पहले इंस्ट्रक्शन पर सेट करता है, तब प्रोसेस तुरन्त हो पेज फाल्ट कर देती है। यह इन्स्ट्रक्शन पाइंटर एक नॉन मेमोरी-रेसीडेट पेज पर होता है। इसके बाद पेज को मेमोरी में लाया जाता है। प्रोसेस आवश्यकतानुसार एक्जिक्युशन के समय फाल्ट करती रहेगी जब तक कि आवश्यक प्रत्येक पेज मेमोरी में न आ जाए। पेज उपलब्ध होने पर, प्रोसेस बिना फाल्ट के एक्जिक्यूट हो जावेगी। इस स्कीम को शुद्ध डिमांड पेजोग कहते हैं। यह स्कीम आवश्यकता न होने तक पेज को मेमोरी में नहीं लाती है।

पेज रिप्लेसमेंट और इसकी आवश्यकता:

पेज रिप्लेसमेन्ट, डिमाण्ड पेजिंग का आधार है। यह साजीकल मेमोरी और फिजीकल मेमोरी के बीच के अंतर को पूर्ण करता है। इस मैकेनीम की सहायता से प्रोग्राम्स के लिये छोटी फिजीकल मेमोरी पर बड़ी वर्चुअल मेमोरी उपलब्ध करायी जा सकती है।

डिमाण्ड पेजिंग स्कीम में जब पेज फाल्ट होता है और कोई भी फ्रेम फ्री (मुक्त नहीं होती है तब हमें ऐसे फ्रेम को खोजने की आवश्यकता होती जो करन्टली उपयोग में नहीं आ रहा हो। कुछ पेज रिप्लेसमेन्ट एल्गोरियम का उपयोग उस पेज को मेन मेमोरी से स्वेप आउट करने के लिए और वाछित पेज को मेमोरी में स्वेप करने के लिये किया जाता है।

पेज-रिप्लेसमेन्ट एल्गोरिथम:

कई अलग-अलग पेज-रिप्लेसमेन्ट एल्गोरिथम उपलब्ध है। प्रत्येक ऑपरेटिंग सिस्टम के पास अपनी विशिष्ठ रिप्लेसमेन्ट स्कीम होती है। हम किस प्रकार एक नियत रिप्लेसमेन्ट एल्गोरिथम का चयन कर सकते हैं? सामान्यतः हमें एक ऐसी स्कोम की आवश्यकता होती है, जिसका पेज-फाल्ट रेट कम हो।

हम मेमोरी रेफरेंस के नियत स्ट्रोंग में एल्गोरिथम को रन करके और पेज फालट्स की संख्या की गणना करके उसका मूल्यांकन करते हैं। मेमोरी रेफरेंस को स्ट्रोंग को रिफ्रेन्स स्ट्रोग कहा जाता है। हम रिफ्रेन्स स्ट्रांग को कृत्रिम रूप से (उदाहरण के लिये, रेनडम नम्बर जनरेटर की सहायता से) या दिये गये  सिस्टम को ट्रेस करके और प्रत्येक मेमोरी रेफरेन्स के एड्रेस को रिकार्ड करके निर्मित कर सकते हैं।

सबसे पहले, पेज की दो गई साइज के लिए (पेश साइज प्रायः हार्डवेयर या सिस्टम के द्वारा निर्धारित होती है। हमें पेज नम्बर को ध्यान में रखने की आवश्यकता होती है, न कि सम्पूर्ण एड्रेस को। दूसरा, यदि हमारे पास पेज का रेफरेंस है, तब पेजp का तत्काल अनुसरण करने वाला कोई भी रेफरेंस पेज फाल्ट का कारण नहीं बन सकता है। प्रथम रेफरेंस के पश्चात पेज मेमोरी में होगा, तत्काल इसका अनुसरण करने वाले रेफरेंस में फाल्ट नहीं होगा।

एक विशेष रेफरेंस स्ट्रॉग में पेज फाल्ट्स की संख्या और पेज रिप्लेसमेन्ट एल्गोरिथम को निर्धारित करने के लिए, हमें उपलब्ध पेज फ्रेम्स की संख्या जानने की भी आवश्यकता होती है। स्पष्टतः, जैसे-जैसे उपलब्ध फ्रेम्स की संख्या में वृद्धि होगी, वैसे-वैसे पेज फाल्ट्स को संख्या में कमी आयेगी।

(1) FIFO एल्गोरिथम- FIFO एल्गोरिथम सबसे सरल पेज-रिप्लेसमेन्ट एल्गोरिथम है। FIFO रिप्लेशमेन्ट एल्गोरिथम मेमोरी में पेज को लाते समय, प्रत्येक पेज से जुड़ा रहता है। जब पेज को रिप्लेस किया जाना अनिवार्य होता है, तब पुराने पेज को चुना जाता है।

FIFO पेज रिप्लेसमेन्ट एल्गोरिथम समझने और प्रोग्रामिंग करने में सरल होता है। इसकी कार्यक्षमता हमेशा अच्छी नहीं रहती है। खराब रिप्लेसमेन्ट को चुनने पर पेज फाल्ट रेट में वृद्धि होती है और प्रोसेस का कार्यान्वयन धीमा होता है। परंतु इससे गलत कार्यान्वयन नहीं होता है।

FIFO एल्गोरिथम से लाभ:

(1) इसे FIFO क्यू के रूप में लागू किया जाता है।

(2) पेज को रिप्लेस करने के लिए सबसे पुराने पेज चुना जाता है 

(3) इसलिये यह उपयोग करने में अधिक आसान होता है।

FIFO एल्गोरिथम से हानियाँ:

(1) अलोकेट फ्रेम्स की संख्या बढ़ने पर, पेज फाल्ट की व में वृद्धि हो जाती है, जैसे बिलेडीस एनामली ।

 (2) इसकी कार्यक्षमता अच्छा नहीं होती है।

(2) आप्टीमल पेज रिप्लेसमेन्ट एल्गोरिथम: जैसा नाम ही स्पष्ट है, यह सर्वश्रेष्ठ पॉलीसी है। रिप्लेसमेन्ट के लिये for आप्टीमल पालिसी उस पेज का चयन करती है, जिसके लिये अगला रेफरेंस टाइस अधिकतम है। समस्या यह है कि पेज की माँग का सही-सही क्रम और समय जानने के लिए इस बात को जानकारी अनिवार्य होती है कि सिस्टम के आगे चलते पर कौन-सी प्रोसेस सक्रिय होगी।

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

LRU को एक लिस्ट स्ट्रक्चर के साथ कार्यान्वित किया जा सकता है। इस लिस्ट स्ट्रक्चर में प्रयुक्त किये गए प्रत्येक फ्रेम के लिये एक इंट्री होती है। प्रत्येक बार पेज फ्रेम को रेफरेन्स किया जाता है; उस पेज में होने वाली इन्ट्री को लिस्ट में ऊपर रखा जाता है। पुरानी इन्ट्रीस को लिस्ट में नीचे रखा जाता है।

LRU एल्गोरिथम के लाभ:

(1) यह स्ट्रटजी समय के साथ पिछड़ी दिखाई देती है न कि आगे।

(2) यह भी बिलेडीस एनामली से प्रभावित नहीं होती है।

LRU एल्गोरिथम की हानियाँ:

(1) इसे उपयुक्त हार्डवेयर की सहायता की जरूरत होती है।

(2) मेमोरी मेनेजमेन्ट का ओवरहेड हो जाता है।

Written by Ram

Leave a Reply

Your email address will not be published. Required fields are marked *

Virtual Memory

वर्चुअल मेमोरी | Virtual Memory

Operating System Thrashing

ऑपरेटिंग सिस्टम थ्रेसिंग | Operating System Thrashing