Sanal Bellek Nedir?
Aslında sahip olduğunuzdan daha fazla belleğe ihtiyacınız var ise ne yapılabilir? Sanal bellek (Virtual Memory) çözümdür!
Programlarınızı diskte tutarak, fiziksel belleği bir cache gibi kullanabilirsiniz. Bu yapıya sanal bellek denir.
Çözülmesi Gereken Problemler
1. Bellek Yetersizliği
Her programınız elinizdeki belleğe ayrı ayrı sığsa bile, aynı anda çalışan 10 program sığmayacaktır.
2. Adres Çakışması
Birden çok program aynı bellek adresine yazmak isteyebilir.
3. Bellek Koruması
Bir programın verilerini başka bir program okuyup yazamasın diye korumalıyız.
Çözüm: Dolaylı Gösterim (Indirection)
"Bilgisayar bilimlerindeki her problem bir dolaylı gösterim seviyesi ekleyerek çözülebilir."
Programlar sanal adresleri kullanarak fiziksel adreslere dönüştürebilir.
Sayfa Tabloları (Page Tables)
Sayfa tablosu VPN (Virtual Page Number) ile indekslenip PPN (Physical Page Number) döndürür.
Sayfa Tablosu Özellikleri
- Her sürecin ayrı bir sayfa tablosu vardır
- Sayfa tablosu kaydı şu anki sürecin tablosunun yerini gösterir
- Valid bit ve PPN içerir
TLB (Translation Lookaside Buffer)
Translation Lookaside Buffer (TLB), fiziksel dönüşümü tutan işlemci içi özel bir cache'dir.
TLB Çalışma Şekli
- VPN → TLB'de arama yap
- TLB Hit: PPN doğrudan döner ✓
- TLB Miss: Sayfa tablosunda gezinmek gerekir
Page Fault
Sayfa bellekte yoksa page fault oluşur ve işletim sistemi diskten sayfayı yükler.
Bellek Koruması
| Mod | Açıklama | Yetkiler |
|---|---|---|
| User Mode | Normal programlar | Kısıtlı erişim |
| Kernel Mode | İşletim sistemi | Tam erişim |
Özet
Sanal Bellek Avantajları
- ✓ Manuel bellek yönetiminden kurtarır
- ✓ Aynı sanal adreslerin kullanılmasına izin verir
- ✓ Süreçleri birbirinden korur
- ✓ Kontrollü paylaşım sağlar
- ✓ Fiziksel belleği disk cache'i olarak kullanır