Virtual memory ve paging nasıl çalışır? Page fault nedir?

Cevap

Virtual memory (sanal bellek), her process'e kendine ait, büyük ve sürekli bir adres alanı varmış gibi bir soyutlama sunar. Process'in kullandığı sanal adresler, donanım (MMU) ve işletim sistemi tarafından fiziksel adreslere çevrilir.

Faydaları

  • İzolasyon: bir process diğerinin belleğine erişemez.
  • Fiziksel RAM'den büyük programlar çalışabilir (kullanılmayan sayfalar diskte).
  • Paylaşılan kütüphaneler fiziksel bellekte tek kopya tutulur.
  • fork() sonrası copy-on-write ile hızlı process oluşturma.

Paging

  • Sanal bellek sabit boyutlu sayfalara (page, genelde 4 KB), fiziksel bellek aynı boyutta çerçevelere (frame) bölünür.
  • Her process'in bir sayfa tablosu vardır: sanal sayfa numarası -> fiziksel çerçeve + bayraklar (geçerli mi, yazılabilir mi, değişti mi).
  • Adres = sayfa numarası + sayfa içi offset. 4 KB sayfada son 12 bit offset'tir.
  • 64 bit sistemlerde tablo çok büyük olacağından çok seviyeli sayfa tabloları kullanılır.
  • TLB (Translation Lookaside Buffer): son çevirileri önbelleğe alan donanım; her bellek erişiminde tabloyu gezmeyi önler.

Page fault

Erişilen sayfa o anda fiziksel bellekte değilse donanım bir page fault kesmesi üretir:

  1. İşletim sistemi adresin geçerli olup olmadığına bakar; geçersizse process'e segmentation fault gönderilir.
  2. Geçerliyse boş bir çerçeve bulunur; yoksa bir sayfa sayfa değiştirme algoritmasıyla (LRU yaklaşımı, Clock) dışarı atılır, değiştirilmişse diske yazılır.
  3. İstenen sayfa diskten yüklenir, tablo güncellenir, komut yeniden çalıştırılır.

Disk erişimi RAM'den binlerce kat yavaştır. Bellek yetersiz kalıp sistem zamanının çoğunu sayfa taşımaya harcarsa buna thrashing denir.

  1. Concurrency ile parallelism arasındaki fark nedir?Kolayİşletim SistemleriYazılım Müh.
  2. Race condition nedir? Bir örnekle nasıl önleneceğini gösterin.Ortaİşletim SistemleriYazılım Müh.
  3. Context switch nedir? Neden maliyetlidir?Ortaİşletim SistemleriYazılım Müh.
  4. Mutex ile semaphore arasındaki fark nedir?Ortaİşletim SistemleriYazılım Müh.
  5. Deadlock nedir? Oluşması için gereken dört koşul nelerdir ve nasıl önlenir?Zorİşletim SistemleriYazılım Müh.
  6. Process ile thread arasındaki fark nedir?Kolayİşletim SistemleriYazılım Müh.

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle