Doç.Dr. Ahmet ÖZMEN
Sakarya Üniversitesi
Bilgisayar Mühendisliği Bölümü
Ders Planı
Giriş: Zahiri bellek
Zahiri bellek tasarımında temel sorunlar
Sayfalama organizasyonu
Adres map algoritması, fragmantation & relocation
Sayfa tablosu
Sayfa yerleştirme algoritmaları
Demand paging
Translation Lookaside Buffer (TLB)
2
Giriş: Zahiri bellek
Zahiri bellek çok büyük bellek görüntüsü oluşturuyor
Birçok işin kapladığı alan fiziksel bellekten çok büyük olabilir
Her bir prosesin adres alanı fiziksel bellekten büyük olabilir
Fiziksel belleğin çok iyi kullanılmasını sağlıyor (utilization yüksek)
Bellek yönetimini kolaylaştırıyor (bugün için ana neden)
Bellek hiyerarşisinden (ön bellek yapısından) istifade ederek
ortalama erişim süresini düşük tutmak
İki hafıza birimi de konu ile ilgili: Ana bellek ve ikincil bellek
Zahiri adres: Programcının kullandığı adres
Zahiri adres alanı: Zahiri adreslerden oluşan bölge
Bellek adresi: Fiziksel bellekteki word-byte’ların adresi, gerçek adres
3
Zahiri bellek tasarımında temel sorunlar
İkincil bellekten (sabit diskten) ana belleğe taşınacak veri
bloğunun boyutu ne olmalıdır?
Ana belleğe blok olarak veri getiriliyor. Eğer ana bellek dolu ise
bellekten bazı verilerin atılıp yerine yenisinin konulması lazım.
Hangi blok atılacak? (replacement poltikası)
Yeni gelen blok ana belleğin neresine konmalı (placement
politikası).
Eksik blok sadece hata (page fault) olması durumunda ikincil
bellekten getirilmelidir. (fetch/load politikası)
4
Sayafalama organizasyonu
Zahiri ve fiziksel adres alanı eşit boyutta bloklara ayrılır
Zahiri bloklara sayfa – page denir
Fiziksel bloklara çerçeve – frame denir
5
Adres map
V = {0, 1, 2, …, n-1} zahiri adres alanı
M = {0, 1, 2, …, m-1} fiziksel adres alanı
MAP: V M U {Ø} adres map fonksiyonu
MAP(a) = a’ Eğer zahiri adres a daki veri, fiziksel adres a’
de mevcutsa
MAP(a) = Ø Eğer zahiri adres a daki veri bellekte yok ise
6
Sayfa tablosu (page table)
Sayfa tablosu, adres dönüşümünü (address translation)
sağlamak için sıkça kullanılır
7
Sayfa organizasyonu
8
Adres mapping (haritalama) algoritması
Eğer V = 1 ise
sayfa page table’da belirtilen adreste, ana bellektedir
aksi halde, sayfa ikincil bellektedir
Erişim izinleri:
R: salt oku, R/W: yaz-oku, X: icra edilebilir
Eğer erişim izinleri belirlenen erişim izinleri ile uyumlu değilse
«protection_violation_fault» oluşur
Eğer V = 0 ise «page_fault» oluşur
Protection Fault (koruma hatası): Erişim hakları ihlali; kesme
«trap» oluşmasına sebep olur
Page fault (sayfa hatası): Sayfa ana bellekte değil. Bu durumda da
kesme «trap» oluşur, genelde beraberinde context switch oluşur.
Proses sayfası ikincil bellekten getirilene kadar bekletilir.
9
Fragmentation ve Relocation
Fragmentation: Parçalama nedenlerinden dolayı bellek
yetersizliği
Relocation: Program veya verinin bellekte başka
bölgelere taşınabilmesi (tüm pointer değerlerinin
ayarlanmasını gerektirir)
Internal Fragmentation: Sayfa içinde kullanılamayan
kısımlar
10
Optimum sayfa boyutu
Fragmentation’ı minimum yapacak sayfa boyutu seçilir
Büyük sayfa boyutu internal fragmentation kötüleşir
Küçük sayfa boyutu çok fazla sayfa adedi büyük
sayfa tablosu
Genel eğilim daha büyük sayfa boyutu yönündedir
RAM fiyatı düştükçe ana bellek büyüyor
İşlemci hızı ile disk erişim hızı arasındaki açık gittikçe
artmaktadır
Programcılar daha büyük zahiri adres istiyorlar
Birçok makine 4 Kbyte sayfa boyutuna sahip ve gittikçe
artıyor
11
Sayfa yerleştirme (replacement)
algoritmaları
Ön-bellek replacement algoritması gibi
LRU (Least Recently Used):
Yakın zamanda kullanılmayan sayfa seçilir
Eski erişimlerin tutulmasını gerektirir, gerçeklenmesi zordur
İyi performans, lokality prensibi
Örnek: En son erişilen sayfa listesi (sıralı olarak) :
10, 12, 9, 7, 11, 10 olsun;
Bellekte olmayan 9 nolu sayfa erişilmek istendiğinde ve
bellek dolu ise, hangi sayfa kaldırılıp yeni sayfa yerine
konmalıdır? (LRU’ya göre)
12
Sayfa yerleştirme (replacement)
algoritmaları
Not Recently Used: (Yakında kullanılmayan)
Her sayfa için bir referans bayrağı (biti) kullanılabilir :
Eğer bayrak = 1 ise sayfa yakın geçmişte kullanıldı (referans)
Diğer durumlarda bayrak = 0
Eğer bir sayfa kaldırılacaksa, referans biti 0 olanı kaldır. Bu
sayfa bu yakında kullanılmayan sayfadır.
NRU’nun saat gerçeklemesi:
13
Talep karşılığında sayfa getirme
(demand paging)
Getirme politikası:
Sayfa belleğe ne zaman getirildi?
Eğer bri talep sonrası getirildi ise buna demand-paging getirme
politikası denir
Bir başka sayfa getirme yöntemi:
Gelecek referansları tahmin ederek, henüz ihtiyaç olmayan
sayfaları önceden getirmek
Sayfa transfer zaman kayıplarını (overhead) azaltır
Gelecek referansları tahmin etmek çok zordur
Birçok sistem demand-paging sistemini pre-paging olmadan
gerçekler
(Pre-fetching etkisini elde etmenin bir diğer yolu da sayfa
boyutunu arttırmaktır.)
14
Zahiri adres ve ön bellek
VAPA dönüşümü bir fazla bellek erişimi gerektiriyor
Bu durum, ön bellek erişimini çok geciktirmektedir ve bu
en hızlı olunması gereken yerdir
15
Neden ön belleğe PA ile erişilir?
VA ön belleklerinin problemi: iki farklı VA aynı fiziksel
adrese map edebilir (sinonim problemi) iki farklı ön
bellek verisi aynı fiziksel adres için veri tutuyor olabilir
Update (güncelleme): Tüm ön bellek verileri aynı fiziksel
adres ile güncellenmeli aksi halde bellek tutarsız olur
Bu durumun çözümlenmesi oldukça karışık donanım
gerektirir.
16
TLB: Adres dönüşümünün hızlı
yapılması
TLB (Translation Lookaside Buffer): Adres dönüşümünün
hızlandırılması.
17
Translation Lookaside Buffer
Tamamıyla diğer ön-bellek gibi. TLB dirk map, fully associative ya da
set associative olarak organize edilebilir.
TLB’ler genelde küçüktür (128-256 satırlıktır). Bu çok hızlı
bilgisayarlar için bile yeterlidir.
Bu nedenle genelde fully-associative ön bellek olarak gerçeklenir.
Birçok orta ölçekli makinelerde küçük n-way set associative ön
bellek kullanılır
18