Sanal bellek: Revizyonlar arasındaki fark

[kontrol edilmemiş revizyon][kontrol edilmemiş revizyon]
İçerik silindi İçerik eklendi
Değişiklik özeti yok
Khutuck Bot (mesaj | katkılar)
k Bot: Otomatik metin değişimi, Resim etiketleri düzenlendi
20. satır:
 
====Sayfa ve Sayfa Düzeni====
[[ResimDosya:sayfadüzeni1.jpg|thumb|250px|sayfa ve sayfa düzeni]]
Günümüzde kullanılan sanal bellek sistemleri ''alanda yerellik''ten yararlanabilmek için programları belirli boyutlarda blok kümeleri şeklinde yerleştirirler. Bu belirli boyutlardaki blok kümeleri (öbekleri) “'''sayfa'''” olarak adlandırılır. Ana belleğin sayfalarla aynı boyutlarda bloklardan oluştuğu varsayılır. Bu varsayım “'''sayfa çerçevesi” (page frame)''' olarak nitelendirilir.
 
===Sanal Adres Numarasının Gerçek Adres Numarasına Dönüştürülmesi===
[[ResimDosya:Sanal_adreslerin_fiziksel_adrese_dönüştürülmesi1.jpg|thumb|250px|''Sanal bellekte, adreslerin yapısı “sanal sayfa numarası”(virtual page number) ve “sayfa eklemesi”(page offset) olmak üzere iki kısma ayrılmıştır.
'']]
Ana bellekte kullanılan gerçek '''adres numarası''', gerçek adresin üst bölümünü, '''sayfa eklemesi''' ise gerçek adresin alt bölümünü oluşturur. Sayfa eklemesindeki bitlerin sayısı sayfanın boyutunu belirler ve değişim göstermez. Sanal adreslerle adreslenebilen sayfa sayısı gerçek adreslerle adreslenen sayfa sayısı ile örtüşmek zorunda değildir; sanal sayfa sayısının gerçek sayfa sayısının üzerinde olması sınırsız boyuttaki bellek izlenimini yaratmada esas alınan noktadır.
45. satır:
 
===Sayfa Tablosu===
[[ResimDosya:Sayfa tablosu11.jpg|thumb|250px|''Bir sayfa tablosunun ana bellekteki yerini belirtmek için, donanımda sayfa tablosunun başlangıcını işaret eden bir yazmaç (register) bulunur. Bu yazmaç “sayfa tablosu yazmacı” olarak tanımlanır.
'']]
 
Sanal bellekte sayfalar, belleği dizinleyen bir tablo kullanılarak yerleştirilirler. Bu yapı '''“sayfa tablosu (page table)”''' olarak adlandırılır. Bellekte tutulan sayfa tablosu sanal bellek adresinin numarasına göre dizinlenmiştir ve ona karşılık gelen gerçek sayfa numarasını içerir. Her program, sanal adres uzayını, ana bellekteki bellek uzayına dönüştüren kendine ait bir sayfa tablosuna sahiptir. Sayfa tablosu, ana bellekte mevcut olmayan sayfaların kayıtlarını da tutabilir. Her sayfa tablosunda '''geçerli bit''' (1 veya 0 ) tutulur. Eğer bu bit mantıksal sıfıra eşit ise sayfa ana bellekte mevcut değil demektir ve '''“sayfa hatası (page fault)”''' oluşur. Eğer bit mantıksal bire işaret ediyorsa sayfa ana bellekte mevcut ve geçerli bir fiziksel adrese sahip demektir.
 
[[ResimDosya:Sayfa_tablosu22.jpg|thumb|250px|''Sayfa tablosu, karşılık gelen gerçek adresi elde etmek üzere sanal sayfa numarası ile dizinlenmiştir. Sayfa tablosu yazmacı sayfa tablosunun başlangıç adresini gösterir. Her kaydın geçerli biti adres dönüşümünün ve adresinin geçerliliğini gösterir. Eğer bu bit mantıksal sıfıra işaret ediyorsa sayfa bellekte mevcut değildir. Fazladan bitler ek bilgi saklamak veya güvenlik için kullanılabilir.'']]
 
====Tablonun boyutunu ve kullanılan ana bellek miktarını azaltmak için yöntemler====
96. satır:
{{ana|Adres dönüştürme önbelleği}}
 
[[ResimDosya:Adösatır111.jpg|thumb|'' Adres Dönüştürme Önbelleği (ADÖ) (Translation Lookaside Buffer (TLB)) sayfa tablosu satırlarını tutar ve adres dönüşümlerinin izini sürer.'']]
 
Programın belleğe ulaşması önce fiziksel adrese ve daha sonra veriye ulaşmasıyla mümkündür. Bu yüzden başarımın arttırılmasında ''alanda yerellik'' özelliğinden yararlanılır. Sanal bir sayfanın adresi dönüştürüldüğünde sayfadaki öbeklere ulaşımın tekrarı ve dolayısıyla o dönüşümün yakın bir zamanda tekrar kullanılma ihtimali yüksektir. Günümüz makineleri yakın zamanda kullanılan sayfa tablosu satırlarını tutan ve adres dönüşümlerinin izini süren bir ''önbelleğe (cache)'' sahiptir. Bu özel yapıya '''Adres Dönüştürme Önbelleği (ADÖ) (Translation Lookaside Buffer (TLB))'''
adı verilir.
 
[[ResimDosya:Adöadresdönüsüm111.jpg|thumb|''Adres Dönüştürme Önbelleği (ADÖ) (Translation Lookaside Buffer (TLB)) kullanılarak adres dönüşümü'']]
 
Adres Dönüştürme Önbelleği sadece sayfa tablosu eşleştirmelerini tutan bir önbellektir. '''Sayfa bulma olayı ((vuruş) (hit))''' gerçekleştiğinde gerçek adres numarası adresin yapılandırılması için kullanılır ve karşılık gelen bit mantıksal bire işaret eder. Eğer ADÖ’ de bir '''sayfa bulamama olayı ((ıska)(miss))''' gerçekleşirse bunun nedeninin bir sayfa hatası mı yoksa sadece ADÖ’ den kaynaklanan bir sayfa bulamama (miss) mı olduğuna karar verilmelidir. Eğer sayfa bellekte mevcut ise sorunun ADÖ’ de bir dönüştürme hatasından ve eksikliğinden kaynaklandığı anlaşılır. Bu durumda işlemci sayfa tablosundaki adres dönüşümlerini Adres Dönüştürme Önbelleğine baştan yükleyerek, ''başvuruyu (reference)'' tekrar eder. ADÖ sayfa bulamama durumu donanımla veya yazılım kullanılarak halledilebilir. Eğer sayfa bellekte mevcut değil ise gerçek bir '''sayfa hatası (page fault)''' söz konusudur. Bu durumda işlemci, işletim sistemini ''kural dışı durum (exception)'' ile uyarır.
 
[[ResimDosya:Adö111.jpg|thumb|''Adres Dönüştürme Önbelleği (ADÖ) sayfa tablosunda gerçek adreslere eşlenen kayıtları tutan bir önbellek işlevi görür.'']]
 
====Eşzamanlı ADÖ ve Önbellek Erişimi====
114. satır:
 
 
[[ResimDosya:Eszamanlıönbellekveadöerisimi111.jpg|thumb| ''Eşzamanlı Önbellek ve ADÖ Erişimi'']]
 
 
127. satır:
====MIPS R2000 Adres Dönüştürme ÖnBelleği (ADÖ)====
 
[[ResimDosya:Decstation mips adö111.jpg|thumb|''DECStation3100 Adres Dönüştürme Önbelleği (ADÖ) ve önbelleğinde (cache) gerçekleştirilen okuma/yazma işleminin adımları'']]
 
 
139. satır:
==Çağdaş İşlemcilerde Karmaşık Bellek Sistemleri==
 
[[ResimDosya:Çağdaş işlemciler111.jpg]]
 
==Sanal Bellek Tasarımında Temel Sorunlar ==
162. satır:
 
 
[[ResimDosya:Fritz-Rudolf_Güntsch.jpg|right|thumb|Fritz Rudolf Güntsch (1992)]]
 
 
"https://tr.wikipedia.org/wiki/Sanal_bellek" sayfasından alınmıştır