घड़ी पृष्ठ प्रतिस्थापन एल्गोरिदम - पहले से ही मौजूद पृष्ठ


9

घड़ी पृष्ठ प्रतिस्थापन एल्गोरिदम का अनुकरण करते समय, जब एक संदर्भ आता है जो पहले से ही स्मृति में है, तो क्या घड़ी का हाथ अभी भी बढ़ रहा है?

यहाँ एक उदाहरण है:

4 स्लॉट्स के साथ, क्लॉक पेज प्रतिस्थापन एल्गोरिदम का उपयोग करना

संदर्भ सूची: 1 2 3 4 1 2 5 1 3 2 4 5

प्रारंभिक सूची इस तरह दिखाई देगी:

-> [1][1]
   [2][1]
   [3][1]
   [4][1]

सम्मिलित करने के लिए अगला संदर्भ 1 होगा, फिर 2. क्या हाथ अभी भी 1 के बाद 1 और 2 के बाद इंगित करेगा? दूसरे शब्दों में, 5 डालने के बाद, क्या घड़ी इस तरह दिखाई देगी:

-> [5][1]
   [2][0]
   [3][0]
   [4][0]

?

जवाबों:


9

मुझे लगता है कि यह उदाहरण आपके सभी संदेहों को स्पष्ट कर सकता है।

उदाहरण के लिए:
मान लें कि प्रारंभ पृष्ठ संदर्भ अनुक्रम में मुख्य मेमोरी खाली है:
3 2 3 0 8 4 2 5 0 9 8 3 2प्रति फ्रेम एक संदर्भ बिट (जिसे "प्रयुक्त" बिट कहा जाता है)

  पु 3 पु 2 पु 3 पु 0 पु 8 पु 4
+ --- + --- + + --- + --- + --- + --- + + --- + --- + + --- + --- + + --- + --- +
| | 0 | * | 3 | 1 | | 3 | 1 | | 3 | 1 | | 3 | 1 | | 3 | 1 |
+ --- + --- + + --- + --- + --- + --- + + --- + --- + + --- + --- + + --- + --- +
| | 0 | | | 0 | * | 2 | 1 | | 2 | 1 | | 2 | 1 | | 2 | 1 |
+ --- + --- + + --- + --- + --- + --- + + --- + --- + + --- + --- + + --- + --- +
| | 0 | | | 0 | | | 0 | * | | 0 | * | 0 | 1 | | 0 | 1 |
+ --- + --- + + --- + --- + --- + --- + + --- + --- + + --- + --- + + --- + --- +
| | 0 | | | 0 | | | 0 | | | 0 | | | 0 | * | 8 | 1 |
+ --- + --- + + --- + --- + --- + --- + + --- + --- + + --- + --- + + --- + --- +
| | 0 | | | 0 | | | 0 | | | 0 | | | 0 | | | 0 | *
+ --- + --- + + --- + --- + --- + --- + + --- + --- + + --- + --- + + --- + ----  


  पु 2 पु 5 पु 0 पु 9 पु 8 पु 3
+ --- + --- + + --- + --- + --- + --- + + --- + --- + + --- + --- + + --- + --- +
| 3 | 1 | * | 3 | 1 | * | 5 | 1 | | 5 | 1 | | 5 | 1 | | 5 | 1 |
+ --- + --- + + --- + --- + --- + --- + + --- + --- + + --- + --- + + --- + --- +
| 2 | 1 | | 2 | 1 | | 2 | 0 | * | 2 | 0 | * | 9 | 1 | | 9 | 1 |
+ --- + --- + + --- + --- + --- + --- + + --- + --- + + --- + --- + + --- + --- +
| 0 | 1 | | 0 | 1 | | 0 | 0 | | 0 | 1 | | 0 | 1 | * | 0 | 1 | *
+ --- + --- + + --- + --- + --- + --- + + --- + --- + + --- + --- + + --- + --- +
| 8 | 1 | | 8 | 1 | | 8 | 0 | | 8 | 0 | | 8 | 0 | | 8 | 1 |
+ --- + --- + + --- + --- + --- + --- + + --- + --- + + --- + --- + + --- + --- +
| 4 | 1 | | 4 | 1 | | 4 | 0 | | 4 | 0 | | 4 | 0 | | 4 | 0 |
+ --- + --- + + --- + --- + --- + --- + + --- + --- + + --- + --- + + --- + ----  


  पु 2 पु   
+ --- + --- + + --- + --- + 
| 5 | 1 | * | 5 | 0 |
+ --- + --- + + --- + --- + 
| 9 | 1 | | 9 | 0 |
+ --- + --- + + --- + --- +
| 0 | 0 | | 2 | 1 |   
+ --- + --- + + --- + --- +  
| 8 | 0 | | 8 | 0 | *
+ --- + --- + + --- + --- + 
| 3 | 1 | | 3 | 1 |  
+ --- + --- + + --- + --- +  

* - सूचक को इंगित करता है जो स्कैन करने के लिए अगले स्थान की पहचान करता है 
उस फ्रेम में P = पेज # संग्रहीत 
U = प्रयुक्त ध्वज, 
0 = हाल ही में उपयोग नहीं किया गया 
1 = हाल ही में संदर्भित

इसे बीएसडी लिनक्स में उपयोग किया जाने वाला रैखिक स्कैनिंग एल्गोरिथ्म या दूसरा मौका एल्गोरिथ्म कहा जाता है। 
आम तौर पर इसे एक परिपत्र कतार के रूप में लागू किया जाता है।

क्या आप इसका अर्थ दे सकते हैं कि पाठ के संदर्भ में इसका क्या अर्थ है? यह एक अच्छा आरेख है, लेकिन इस तरह के चित्र बेकार हैं जब हम नहीं जानते कि इसका क्या मतलब है।
छिपकली

7

यदि एक संदर्भ पहले से ही स्मृति में एक पृष्ठ के लिए आता है, तो प्रतिस्थापन एल्गोरिथ्म बिल्कुल भी नहीं मिलता है।

घड़ी प्रतिस्थापन एल्गोरिथ्म LRU प्रतिस्थापन के कुछ लाभ प्राप्त करने के लिए कोशिश कर रहा है, लेकिन हर पृष्ठ हिट पर LRU बिट्स से छेड़छाड़ का भारी भूमि के ऊपर के बिना।

एक पेज तीन राज्यों में से एक में हो सकता है:

  1. मेमोरी में मौजूद है और recently-usedबिट है true। इस मामले में जब पृष्ठ की पहुंच होती है तो कोई पृष्ठ दोष नहीं होगा, इसलिए कोई भी बिट नहीं बदलेगा।
  2. स्मृति में मौजूद है लेकिन recently-usedबिट है false। इस स्थिति में पृष्ठ को पृष्ठ तालिका में इस तरह से भी चिह्नित किया जाता है कि यदि पृष्ठ तक पहुँचा जाता है तो पृष्ठ में गलती होगी। (और यदि इस मामले में पेज की गलती होती है, तो पेज फॉल्ट हैंडलर ही एकमात्र ऐसा करता है जो राज्य को बदल देता है recently-used।)
  3. पृष्ठ स्मृति में मौजूद नहीं है। इस मामले में हम देखते हैं clock-hand। जब हम बिट सेट के clock-handसाथ एक पेज की ओर इशारा करते हैं तो हम बिट को फ्लिप करते हैं , और फिर अगले पेज पर जाने के लिए वेतन वृद्धि करते हैं। जब हमें कोई पृष्ठ पहले से ही साफ़ हो जाता है, तो वह वह पृष्ठ होता है जिसे हम प्रतिस्थापित करते हैं। फिर हम के रूप में नए पेज निशान और बढ़ा देते करने के लिए अगले पेज।recently-usedtruerecently-usedfalseclock-handrecently-usedrecently-usedclock-hand

घड़ी दिल में है, LRU सन्निकटन के लिए एक संभाव्य एल्गोरिथ्म। यदि जिस दर पर पृष्ठ एक्सेस किया जा रहा है, वह उस दर से बहुत अधिक है जिस पर clock-handवह उसी पृष्ठ पर वापस आ रहा है तो पृष्ठ के चिह्नित होने की उच्च संभावना है recently-used। यदि जिस दर पर पृष्ठ एक्सेस किया जा रहा है, वह उस दर की तुलना में कम है जिस पर clock-handवह वापस आ रहा है, तो पृष्ठ के राज्य में होने की संभावना अधिक है recently-used। सबसे हाल ही में उपयोग किए गए पृष्ठ को कभी भी प्रतिस्थापित नहीं किया जाएगा। (क्यों?)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.