Sayfa tablosu

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.

Sayfa tablosu için gerekli depolama (saklama) boyutu ve kullanılan anabellek miktarının azaltılmasını sağlayan teknikler

  1. Sayfa tablosunun boyutlarını sınırlayan bir sınır kaydı tutmak. Eğer sanal sayfa numarası sınır kaydının sınırını aşarsa kayıtlar sayfa tablosuna eklenmelidir. Bu teknik, bir işlem daha fazla alana ihtiyaç duyduğunda sayfa tablosuna büyüme yeteneği kazandırır. Sonuç olarak sanal adres uzayı yalnızca ihtiyaç duyulduğunda büyük tutulacaktır.
  2. Bölmelere ayırmak (segmentation): Çoğu dil iki boyutları büyüyebilen iki ayrı alan gerektirdiği için tek boyutta büyümenin yetersiz olduğu durumlarda sayfa tablosu ikiye bölünür. İki ayrı sayfanın farklı sınırlara sahip olması desteklenir. İki sayfa tablosu kullanımı adres uzayını da ikiye parçaya (segment) böler. Sınır kaydı her iki parça için de tutulur. MIPS mimarisi de bu tekniği desteklemektedir.
  3. Sanal adrese bir hesaba dayalı adresleme (hashing) işlevi eklenerek sayfa tablosu veri yapısının sadece gerçek sayfa sayısı kadar boyutta olması sağlanabilir.Bu yapıya ters çevrilmiş (inverted) sayfa tablosu adı verilir.
  4. Birden fazla seviyeli sayfa tabloları kullanılabilir.
  5. Sayfa tabloları kullanımı için gerekli ana bellek miktarının azaltılması sayfa tablolarının tekrar sayfalanması ile sağlanabilir.

Ayrıca bakınız

  • Sanal bellek
  • Sayfalama

Kaynakça

  • http://oergin.etu.edu.tr/bil361/sanalbellek.pdf[ölü/kırık bağlantı] Oğuz ERGİN BİL 361 – Bilgisayar Mimarisi ve Organizasyonu, Sanal Bellek
  • John L. Hennessy, David A. Patterson, Computer Architecture, A Quantitative Approach (ISBN 1-55860-724-2)
  • https://web.archive.org/web/20100806135317/http://computer-refuge.org/bitsavers/pdf/burroughs/B5000_5500_5700/5000-21005_B5000_operChar.pdf Operational Characteristics for the Processors for Burroughs
  • http://www.multicians.org/multics-vm.html18 Ocak 2010 tarihinde Wayback Machine sitesinde arşivlendi. The Multics Virtual Memory: Concepts and Design

Dış bağlantılar

  • wikipedia: virtual memory 23 Aralık 2007 tarihinde Wayback Machine sitesinde arşivlendi.
  • howstuffworks: virtual memory
  • www.cs.gmu.edu/cne :virual memory
  • courses.cs.vt.edu : virtual memory tutorial
  • belgeler.org: sanal bellek[ölü/kırık bağlantı]
  • g
  • t
  • d
Manuel bellek yönetimi
Delete (C++) · C devingen bellek ayırma · new (C++) · Durağan bellek ayırma
Sanal bellek
Sayfa tablosu · Sayfalama · Sayfalama istemi
Donanım
Etkin sayfalar ön belleği · Bellek yönetim birimi
Çöp toplama
Çöp · Güçlü referans · Referans sayımı · Sonlandırıcı · Zayıf referans
Uygulamalar
Boehm çöp toplayıcı · Çöp öncelikli toplayıcı
Bellek segmentasyonu
Gerçek kip · Korumalı kip · Sanal 8086 kip · x86 bellek segmentasyonu
Bellek güvenliği
Arabellek aşımı · Sarkan işaretçi · Yığın taşması
Konular
Bellek sızıntısı · Erişilemez bellek · Parçalanma
Diğer
Bölge tabanlı bellek yönetimi · International Symposium on Memory Management · Otomatik değişken