ScholarGate
Asistan

Sanal Bellek ve Sayfalama

Sanal bellek, her programa kendi geniş, bitişik adres alanını sağlar; donanım ve işletim sistemi bu alanı sabit boyutlu sayfalara bölerek fiziksel belleğe eşler. Bu sayede izolasyon, koruma ve fiziksel olarak mevcut olandan daha fazla bellek yanılsaması sağlanır.

PaperMind ile konu bulYakındaMakale ve konu bul
Tools & resources
Slaytları indir
Learn & explore
VideoYakında

Tanım

Sanal bellek, bir program tarafından kullanılan sanal adresleri sayfa tabloları aracılığıyla fiziksel bellek adreslerine eşleyen, belleği sabit boyutlu sayfalara bölen ve sayfaların fiziksel bellekte veya gerektiğinde yedek depolama alanında (backing store) bulunmasına olanak tanıyan bir bellek yönetimi tekniğidir.

Kapsam

Bu konu, sayfa tabloları aracılığıyla adres çevirisini, çevirileri önbelleğe alan çeviri arabelleklerini (TLB), sayfa hatalarını ve talep üzerine sayfalama (demand paging) yöntemini, sayfa değişimini ve çalışma kümesi (working-set) prensibini, ayrıca sanal belleğin sağladığı korumayı kapsamaktadır. Mimari ve işletim sistemleri arasındaki sınırda yer almaktadır. Sayfalanmış verilerin dosya depolamasını (dosya sistemleri) ve çip üzerindeki veri önbelleklemesini (önbellek organizasyonu ve politikaları) dışarıda bırakır, ancak her ikisiyle de etkileşim içindedir.

Temel sorular

  • Sanal adresler, sayfa tabloları aracılığıyla fiziksel adreslere nasıl çevrilir?
  • TLB, çeviri sürecini nasıl hızlandırır ve bir TLB ıskasında (TLB miss) ne olur?
  • Bir sayfa hatasında ne meydana gelir ve talep üzerine sayfalama (demand paging) nasıl yönetilir?
  • Çalışma kümesi kavramı, sayfa değişimini nasıl yönlendirir ve tıkanmayı (thrashing) nasıl önler?

Anahtar kavramlar

  • sanal ve fiziksel adres alanları
  • sayfalar ve sayfa çerçeveleri
  • sayfa tabloları
  • çeviri arabellekleri (TLB)
  • sayfa hataları ve talep üzerine sayfalama
  • sayfa değişimi
  • çalışma kümesi ve tıkanma
  • bellek koruması

Temel kuramlar

Çalışma kümesi modeli
Çalışma kümesi, bir sürecin yakın zamandaki bir zaman diliminde başvurduğu sayfalar kümesidir; her aktif sürecin çalışma kümesini fiziksel bellekte tutmak, aşırı sayfalama nedeniyle performansın çökmesi durumu olan tıkanmayı (thrashing) önler ve değiştirme ile kabul kararlarına bilgi sağlar.

Mekanizmalar

Bir programın sanal adresi bir sayfa numarası ve bir ofsete bölünmektedir. Sayfa numarası, fiziksel çerçeveyi bulmak için sayfa tablolarını (genellikle çok seviyeli) indeksler; TLB, her erişimde tabloları taramaktan kaçınmak için son çevirileri önbelleğe alır. Eğer başvurulan bir sayfa bellekte değilse, bir sayfa hatası (page fault) kontrolü işletim sistemine aktarır. İşletim sistemi sayfayı yedek depolama alanından getirir ve yerellik (locality) ile çalışma kümesi davranışına (working-set behavior) göre başka bir sayfayı çıkarabilir (evict).

Klinik önem

Sanal bellek, modern işletim sistemleri için temel bir unsurdur: süreçleri güvenlik ve kararlılık için birbirinden izole eder, birçok programın fiziksel belleği paylaşmasına olanak tanır ve fiziksel RAM'den daha büyük programların çalışmasına imkan verir. TLB ve sayfa hatası davranışı performansı önemli ölçüde etkilemektedir ve adres alanı düzeni, koruma ve bellek güvenliği savunmalarının temelini oluşturmaktadır.

Tarihçe

Sanal bellek, 1960'ların başında Manchester'daki Atlas bilgisayarı ile ortaya çıkmış, sayfalama ve sayfa hatası mekanizmasını tanıtmıştır. Denning'in 1968 tarihli çalışma kümesi modeli, yerellik ve tıkanma (thrashing) hakkında prensipli bir açıklama sunmuştur. TLB'ler ve çok seviyeli sayfa tabloları aracılığıyla donanım desteği ve daha sonra büyük sayfalar gibi özellikler, sanal belleği genel amaçlı sistemlerde yaygın hale getirmiştir.

Öne çıkan isimler

  • Peter J. Denning
  • Maurice Wilkes
  • John L. Hennessy
  • Abraham Silberschatz

İlgili konular

Temel eserler

  • denning1968
  • hennessy2019
  • silberschatz2018

Sıkça sorulan sorular

Bir sayfa hatasında ne olur?
Bir sayfa hatası, bir programın o anda fiziksel bellekte bulunmayan sanal bir sayfaya erişmesiyle meydana gelir. Donanım, kontrolü işletim sistemine aktarır; işletim sistemi sayfayı yedek depolama alanında bulur, boş veya çıkarılmış bir çerçeveye getirir, sayfa tablolarını günceller ve programı hiçbir şey olmamış gibi devam ettirir.
Tıkanma (thrashing) nedir?
Tıkanma, aktif süreçlerin birleşik çalışma kümeleri fiziksel belleği aştığında performansın çökmesidir; bu durumda sistem, faydalı iş yapmak yerine zamanının çoğunu verileri içeri ve dışarı sayfalayarak geçirir. Çalışma kümelerini bellekte tutmak veya yükü azaltmak bu durumu önler.

Bu kavram için yöntemler

İlgili kavramlar