Not Recently Used Page Replacement (NRU) Algoritması

İşletim sisteminin hangi sayfaların kullanılıp hangi sayfaların kullanılmadığı hakkında faydalı istatatistikleri toplaması için kullanılan bir algoritmadır. Sanal makineli çoğu bilgisayar her sayfayla ilişkisi olan iki durum bitine sahiptir.

i) R sayfa her ne zaman referans edilirse set edilir. (r/w)
ii) M sayfa yazıldığında (modified) set edilir.

Bu bitlerden biri referans biti (referance bit=R) diğeri değişim kontrol bitidir ( modified bit=M). Bu bitler donanım vasıtasıyla uygulanabileceği gibi yazılım vasıtasıyla da uygulanabilirler. Bir süreç başladığında onun bütün sayfa girişleri özel olarak bir bellek alanı kaplamadan işaretlenir (0 veya 1 olarak).

Bir sayfa referans edildiğinde sayfa hatası meydana gelir. R (referans) biti ayarlanır ve doğru sayfayı işaret etmesi için sayfa tablo girişi düzenlenir . Ek olarak sayfa sadece okunur şekilde ayarlanır. Eğer sayfa daha sonra yazılırsa, M (modified) bit kurulur ve sayfa yazılır/okunur şekline çevrilir.Bir süreç çalışmaya başladığında bütün R ve M bitleri sıfırlanır. Periodik olarak (örneğin her saat vuruşunda) R biti sıfırlanır.Bu hangi sayfaların son olarak referans edildiğini anlamamızı sağlar.

Not: Bitler her hafıza referansında güncellenir. O/S bir program çalışmaya başladığında bitleri 0'a ayarlar. Bir sayfa hatası meydana geldiğinde, O/S bütün sayfaları araştırır ve onları o an geçerli olan R ve M bitlerine bağlı olarak 4 katagoriye ayırır.

Class 0 : Not Referenced, Not Modified
Class 1 : Not Referenced, Modified
Class 2 : Referenced, Not Modified
Class 3 : Referenced, Modified

NRU algoritması bir sayfayı rasgele olarak en düşük numaralı boş olmayan sınıfdan kaldırır.Çok optimal bir algoritma olmamasına rağmen, NRU yeterli performansı sağlar, ayıca anlaması ve uygulaması da kolaydır. NRU, LRU ya benzer bir algoritmadır. NRU sadece referans edilmiş bitleri değil modifiye edilmiş bitleri de kullanır. Kendi başına çok iyi olmasa da onun farklı biçimleri modern bilgisayarlarda ağırlıklı olarak kullanılan algoritmaların kaynağıdır. Bu populerliğin nedeni NRU ve onun türevi algoritmalar R ve M bitleri haricinde donanıma gereksinim duymazlar.

time 0 1 2 3 4 5 6 7 8 9 10
w   c a* d b* e b a* b c d
frame 0 a a/00 a/11 a/11 a/11 a/01 a/01 a/11 a/11 a/01 a/01
frame 1 b b/00 b/00 b/00 b/11 b/01 b/11 b/11 b/11 b/01 b/01
frame 2 c c/10 c/10 c/10 c/10 e/10 e/10 e/10 e/10 e/00 d/10
frame 3 d d/00 d/00 d/10 d/10 d/00 d/00 d/00 d/00 c/10 c/10
page fault           1       2 3
page(s) loaded           e       c d
page(s) removed           c       d e

Yukarıdaki tabloda sayfalardan sonra gelen iki bit sırasıyla R ve M bitidir. Bunun gibi bir tablo vasıtasıyla sayfaların belirli zaman aralığındaki R ve M değerleri kayıtlı tutulur. Ayrıca sayfa hataları, yüklenen ve kaldırılan sayfalarda bu tablolarda mevcuttur.

Kaynaklar
http://nob.cs.ucdavis.edu/classes/ecs150-1999-02/mm-pagexample.html
http://www.cs.mu.oz.au/332/lec/s4_mem.tty
http://www.cs.nott.ac.uk/~gxk/courses/g53ops/Memory%20Management/MM13-pagereplacementstrategies.html
http://www.phptr.com/articles/article.asp?p=25260&rl=1


030401019
TAŞKIN KOÇ