Sayfa hatası

**Sayfa hatası (page fault)** sanal bellek tekniğinde başvurulan veri o anda ana bellekte bulunamıyorsa oluşur ve aranan sayfa ana bellekte mevcut değil demektir.

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 gerçek adrese sahip demektir.Sayfa hatası meydana geldiğinde, yönetim işletim sistemine bırakılır. Bu devir kural dışı durum (hata) işleyişi (exception mechanism) ile gerçekleştirilir (Bkz: Sayfa hatası denetimi).Ana bellekteki tüm sayfalar kullanımdayken sayfa hatası oluşması durumunda, işletim sistemi bir sayfayı değiştirmek(takas yapmak) üzere seçmelidir. (Bkz: Sayfa Değişimi)

Sayfa hatası çok yüksek bulamama gecikmesine neden olur. Sanal bellek sistemleri tasarlanırken bu durumun yaratacağı yükü engellemek için bazı önlemler alınabilir.

* Sayfa hatası denetimi sağlanmalıdır.
* Sayfalar yüksek erişim zamanını karşılayacak kadar büyük olmalıdır.
* Oluşan hatalar donanım yerine yazılımla çözülebilir.
* Tümüne yazma (write-through) yöntemi çok masraflı olduğu için geri yazma (write-back) metodu kullanılır.

## Tarihçe

Birçok sistem sanal bellek kullanımından önce de belleğin birden çok izlence arasında paylaşımını sağlayabilecek yeteneğe sahipti. PDP-10 ‘un ilk modellerinde görülen taban ve sınır yazmaçlarını (base and bounds registers) bu duruma örnek olarak gösterebiliriz. Bu yöntem her bir uygulamaya 0'dan başlayan özel bir adres uzayı ve bunun yanında adresin bellekte uygulama için ayrılan kısmında olup olmadığını denetleyen bir sınır yazmacının kullanımını içerir. Eğer yazmaç adresin ilgili kısma ait olduğunu onaylarsa, karşılık gelen taban yazmacı içeriğini de ana bellekteki adresi göstermek üzere işleme dâhil eder.

Sanal bellek X86 mimarisine Intel'in I286 (80286) işlemcisinin güvenli biçimi (protected mode) ile tanıtıldı. Önceleri bölüm takası (segment swapping) ile gerçekleştirildi ancak büyük bölümlerde (segment) sorun yaratıyordu. Intel 80386 mevcut bölmelere ayırma katmanının altında işleyen Sayfalama(paging) yöntemini tanıttı. Artık **sayfa hatası** (page fault) diğer kural dışı durumlarla (exception) birlikte değerlendirilebilmekteydi.
## Ayrıca bakınız

* Sanal bellek
* Sayfalama
* Sayfa hatası denetimi
* Sayfa değişimi

## Kaynakça

* http://oergin.etu.edu.tr/bil361/sanalbellek.pdf 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.html *The Multics Virtual Memory: Concepts and Design*

## Dış bağlantılar

* howstuffworks: virtual memory
* www.cs.gmu.edu/cne :virual memory
* belgeler.org: sanal bellek