वह उच्च पेजींग गतिविधि जिसमें प्रोसेस एक्जिक्यूटींग से अधिक समय पेजींग में खर्च करती है, थ्रेसिंग कहलाती है।
थेसिंग के कारण
थ्रेसिंग होने के दो मुख्य कारण निम्नलिखित है :
(1) CPU का यूटीलाइजेशन (उपयोग) – थ्रेसिंग के परिणामस्वरूप कार्यक्षमता संबंधी गंभीर समस्या पैदा होती है। प्रारंभिक पेजींग सिस्टम के वास्तविक व्यवहार पर आधारित निम्नलिखित स्थितियों का अध्ययन करें –
ऑपरेटिंग सिस्टम CPU यूटीलाइजेशन को नियंत्रित करता है। यदि CPU यूटीलाइजेशन बहुत कम है तब हम सिस्टम के एक नयी प्रोसेस को शामिल करके मल्टिप्रोग्रामिंग की डिग्री को बढ़ाते हैं। ग्लोबल पेज-रिप्लेसमेन्ट एल्गोरिथम का उपयोग पेजे को रिप्लेस करने के लिए किया जाता है। यहाँ उन पेजो में संबंधित प्रोसेस को महत्व नहीं दिया जाता है। अब यदि प्रोसेम नयी फेज को अपनी एक्जक्यूशन में इंटर करती है तथा अधिक फ्रेम्स की माँग करती है, तब यह फाल्ट करना प्रारम्भ कर देती हैं और अन्य प्रोसेसेस से पेजों को हटा दूर देती है। इस फाल्टींग प्रोसेसेस को पेजों को अंदर-बाहर स्वेप करने के। लिए पेजिंग डिवाइस का उपयोग करना चाहिए। और जैसे ही ये पेजिंग-डिवाइस के लिए क्यू-अप होते हैं, तैयार क्यू खाली हो जाती है। जब प्रोसेसेस पेजिंग डिवाइस का इंतजार करती है, तब CPU यूटिलाइजेशन घट जाता है।
(2) मल्टीप्रोग्रामिंग की डिग्री – जब CPU शेड्यूलर, CPU यूटिलाइजेशन को कम होता देखता है तब तो वह मल्टीप्रोग्रामिंग की डिग्री में वृद्धि कर देता है। नयी प्रोसेस रनिंग प्रोसेसेस से पेजों को लेकर स्टार्ट होने की कोशिश करती है। इसी के परिणामस्वरूप पेज फाल्ट्स और पेजिंग डिवाइस के लिए लम्बी कतार बनती है। परिणामस्वरूप, आगे भी CPU यूटिलाइजेशन में कमी आती है, और CPU शेड्यूलर मल्टीप्रोग्रामींग की डिग्री को बढ़ाने के लिए और अधिक प्रयास करते हैं। इससे थ्रेसिंग हो जाती है और सिस्टम थ्रुपुट उलझ जाते हैं। पेज-फाल्ट की दर में आश्चर्य जनक रूप से वृद्धि होती है। परिणामस्वरूप, प्रभावित मेमोरी के एक्सेस टाइम में वृद्धि हो जाती है। कोई भी कार्य पूरा नहीं होता है, क्योंकि प्रोसेसेस अपना पूरा समय पेजिंग करने में लगा देती है।
CPU यूटिलाइजेशन को मल्टीप्रोग्रामींग की डिग्री के विरुद्ध प्लॉट (अंकित) किया जाता है। जैसे ही मल्टीप्रोग्रामींग की डिग्री को बढ़ाया जाता है, वैसे ही CPU यूटिलाइजेशन में भी वृद्धि हो जाती है। यद्यपि, यह वृद्धि धीरे-धीरे होती है, परन्तु अधिकतम सीमा तक पहुँचने तक यह क्रिया चलती रहती है और यदि आगे भी मल्टीप्रोग्रामोग की डिग्री में वृद्धि होती है, तब सिंग आरम्भ हो जाती है और CPU यूटिलाइजेशन तेजी से कम हो जाता है । इस समय, CPU यूटिलाइजेशन में वृद्धि करने और थ्रेसिंग रोकने के लिए, हमे मल्टाप्रोग्रामांग की डिग्री में कमी चाहिए।
थ्रेसिंग को नियंत्रित करने का तरीका:
ध्रसिंग के प्रभाव को सीमित करने के लिए लोकल (या प्रायरिटी) रिप्लेसमेन्ट एल्गोरिथम का उपयोग किया जा सकता है। लोकल रिप्लेसमेन्ट में, यदि एक प्रोसेस थ्रेसिंग करना प्रारम्भ कर दे तो वह अन्य प्रोसेस से फ्रेम्स की नहीं ले सकती है और आगे थ्रेसिंग का कारण भी नहीं बन सकती है। पेजों का प्रोसेस में रिप्लेसमेन्ट, उनके एक भाग के रूप में होता है। फिर भी, यदि प्रोसेसेस थ्रेसिंग कर रही हो तो वे पेजिंग डिवाइस के लिये अधिकांश समय क्यू में रहती है। पेजिंग डिवाइस की लम्बी एवरेज क्यू के कारण, पेज फाल्ट के लिए एवरेज सर्विस टाइम में वृद्धि हो जायेगी। इस प्रकार, प्रोसेस के प्रभावी औसत टाईम में वृद्धि हो जायेगी, भले ही वह थ्रेसिंग नहीं कर रही है।
थ्रेसिंग को रोकने के लिए, हमें प्रोसेस को अधिक से अधिक फ्रेम उपलब्ध कराना चाहिए। लेकिन यह हम कैसे ज्ञात कर पायेंगे कि उसे कितने फ्रेम्स की आवश्यकता है? इसके लिये कई प्रकार की पद्धतियाँ उपलब्ध है। वर्किंग सैट स्ट्रेटजी प्रारम्भ हो जाती है जो यह बताती है कि कितने फ्रेम्स, प्रोसेस के द्वारा वास्तव में उपयोग किये जा रहे हैं। यह प्रक्रिया प्रोसेस एक्जीक्यूशन के लोकेलिटी मॉडल को स्पष्ट करती हैं। जैसे ही प्रोसेस एक्सजिक्यूट होती है, लोकेलिटी मॉडल बताता है कि यह एक लोकेलिटी से दूसरी लोकेलिटी की ओर चलती है। लोकेलिटी ऐसे पेजों का सेट है जो सक्रियता से एकसाथ उपयोग होते हैं। सामान्यतः प्रोग्राम अलग-अलग लोकेलिटीज से निर्मित होते हैं, जो ओवरलेप हो सकते हैं।
वर्किंग-सेट माडल:
एक वर्किंग-सेट मॉडल लोकेलिटी के सिद्धान्त पर कार्य करता है। वर्किंग सेट विंडो को स्पष्ट करने के लिये पेरामीटर के रूप में A का उपयोग किया जाता है। यहाँ रिसेन्ट A पेज रेफरेंस के अध्ययन की विचारधारा का उपयोग किया जाता है। सबसे नए A पेज रेफरेंस में पेजों के सेट वर्किंग सेट होते हैं। यदि पेज का उपयोग सक्रिय रूप से होता है, तब यह वर्किंग सेट में होगा। यदि इसे लम्बे समय तक उपयोग नहीं किया जा रहा है तब यह वर्किंग सेट A टाइम यूनिट्स से आखिरी रेफरेंस के बाद ड्राप हो जाएगा। इस प्रकार, वर्किंग सेट, प्रोगाम्स लोकेलिटी का निर्धारण करता है।
वर्किंग सेट की शुद्धता, A के चयन पर निर्भर होती है। यदि A अधिक छोटी हैं, तब यह सम्पूर्ण लोकेलिटी को सम्मिलित नहीं करेगी। यदि A अधिक बड़ी (अनिश्चित) है, तब वर्किंग सेट प्रोसेस के एक्जिक्यूशन के दौरान गए पेजों का समुच्चय होगा।
वर्किंग सेट का सबसे महत्वपूर्ण गुणधर्म उसकी साईज होती है। यदि हम वर्किंग सेट की साइज, WSS, को सिस्टम की प्रत्येक प्रोसेस के लिए कम्युट करते हैं, तब हम यह मान सकते हैं कि D =Z; जहाँ D फ्रेम के लिए कुल डिमाण्ड हैं। यदि कुल डिमाण्ड, कुल उपलब्ध फ्रेम्स की संख्या से अधिक है (D>m), तब थ्रेसिंग हो जाती है, क्योंकि कुछ प्रोसेस के पास पर्याप्त फ्रेम्स नहीं होते है।
वर्किंग स्ट्रेटजी, मल्टीप्रोग्रामींग की डिग्री को अधिक से अधिक बढ़ाकर, थ्रेसिंग को रोकती है। इस प्रकार, यह CPU यूटिलाइजेशन को आप्टीमाइज करती है। वकिंग सेट माडल के साथ समस्या वर्किंग सेट में ट्रैक को सुरक्षित रखने की होती है।
पेज-फाल्ट की तीव्रता –
वर्किंग-सेट मॉडल-एक सफल मॉडल है, किन्तु इसका थ्रेसिंग को नियंत्रित करने का तरीका विचित्र है। पेज फाल्ट फ्रिकवेन्सी (PFF) स्ट्रेटजी अधिक उपयुक्त है।
थ्रेसिंग में पेज फाल्ट की दर उच्च होती है। इस कारण, पेज फाल्ट की दर को हम नियंत्रित करना चाहते है। जब यह दर बहुत उच्च होती है तब हम जानते हैं कि प्रोसेस ज्यादा फ्रेम्स की माँग करती है। इसी प्रकार, यदि पेज-फाल्ट की दर निम्न होती है, तब प्रोसेस में ज्यादा फ्रेम्स होने की सम्भावना रहती है। हम वांछित पेज फाल्ट दर पर अपर और लोअर बाउण्ड स्थापित कर सकते हैं। यदि वास्तविक पेज-फाल्ट दर अपर लिमीट को पार कर जाती है तब हम उस प्रोसेस को अन्य फ्रेम को अलोकेट कर देते हैं। यदि पेज फाल्ट दर, लोअर लिमीट से नीचे हो जाती है, तब हम फ्रेम को प्रोसेस से हटाते हैं। इस प्रकार, हम सीधे पेज फाल्ट की दर को माप कर और नियंत्रित कर थ्रेसिंग को रोक सकते हैं।