# Paging (Sayfalama)

Adres: https://softwaredictionary.org/tr/terimler/paging
Kategori: İşletim Sistemleri
Son güncelleme: 2026-09-30
Okunuşu: peycing

Kısaca: Paging, belleği sabit boyutlu sayfalara bölen ve sayfa tablolarıyla her process'in sanal sayfalarını fiziksel RAM'e eşleyen bir bellek yönetim düzenidir.

## İşletim sistemlerinde paging (sayfalama) nedir?

Paging, çoğu işletim sisteminin sanal belleği uygulamak için kullandığı tekniktir. Her process'in sanal adres alanı, yaygın olarak 4 KB olan sayfa (page) denen sabit boyutlu bloklara bölünür ve fiziksel RAM aynı boyutta çerçevelere (frame) bölünür. Herhangi bir sayfa herhangi bir boş çerçeveye yerleştirilebilir; bu yüzden bir process'in belleğinin RAM'de kesintisiz tek bir bölge olması gerekmez.

Her sanal adres bir sayfa numarasına ve sayfa içindeki bir ofsete ayrılır. CPU'nun bellek yönetim birimi, eşleşen çerçeveyi bulmak için sayfa numarasını process'in sayfa tablosunda arar; 64 bit sistemlerde bu çok seviyeli bir ağaçtır ve translation lookaside buffer (TLB) denen küçük bir önbellek son aramaları hatırlar, böylece çevirilerin çoğu neredeyse bedavadır. Her sayfa tablosu girdisi ayrıca sayfanın mevcut, yazılabilir ya da çalıştırılabilir olup olmadığı gibi bayraklar tutar. Sayfa mevcut değilse CPU bir sayfa hatası (page fault) yükseltir ve kernel sayfayı diskten yükler, tabloyu günceller ve komutu yeniden dener.

Paging, büyük bir dosya dolabının o anda boş olan gözlerine yerleştirilmiş, her sayfanın hangi gözde durduğunu söyleyen bir fişle birlikte, gevşek ve numaralı sayfalara basılmış bir kitap gibidir. Sayfalar yalnızca ilk dokunulduklarında yüklendiği için (demand paging) programlar hızlı başlar ve kullanılmayan kısımlar hiç RAM kaplamaz. Paging ayrıca paylaşılan kütüphaneleri, belleğe eşlenmiş dosyaları ve fork'lanmış bir process'in, biri yazana kadar üst process'inin sayfalarını paylaştığı copy-on-write'ı mümkün kılar.

Paging çoğu zaman sanal bellek ve swapping ile karıştırılır. Sanal bellek, her process'e özel bir adres alanı verme fikrinin bütünüdür; paging ise onu uygulayan ana mekanizmadır. Swapping ya da paging out, RAM dolu olduğu için kernel'ın sayfaları diskteki takas alanına taşıdığı durumdur. İşletim sistemindeki paging, ayrıca uzun sonuç listelerini sayfalara bölen web API'lerindeki sayfalamayla (pagination) da ilgisizdir.

## Önemli noktalar

- Bellek, yaygın olarak 4 KB olan sabit boyutlu sayfalara, RAM ise çerçevelere bölünür.
- Sayfa tabloları her sanal sayfayı bir fiziksel çerçeveye eşler.
- TLB, aramaların hızlı kalması için son çevirileri önbelleğe alır.
- RAM'de olmayan bir sayfaya erişmek, kernel'ın ele aldığı bir sayfa hatasına yol açar.
- Paging, sanal belleğin arkasındaki ana mekanizmadır.

## Örnek: Python'da oyuncak bir sayfa tablosu araması

```python
PAGE_SIZE = 4096  # 4 KB pages

def translate(virtual_addr, page_table):
    page_number = virtual_addr // PAGE_SIZE
    offset = virtual_addr % PAGE_SIZE
    if page_number not in page_table:
        raise RuntimeError("page fault: the kernel must load this page")
    frame = page_table[page_number]
    return frame * PAGE_SIZE + offset

# Virtual page 2 is stored in physical frame 7
print(hex(translate(0x2ABC, {2: 7})))  # 0x7abc
```

## Sık sorulan sorular

**Sayfa hatası (page fault) nedir?**

Sayfa hatası, CPU'nun bir programın o anda RAM'e eşlenmemiş bir sayfaya dokunduğunu belirten sinyalidir. Küçük hata (minor fault), örneğin zaten bellekte olan bir sayfayı eşleyerek diske erişmeden çözülür; büyük hata (major fault) ise sayfanın diskten okunmasını gerektirir ve çok daha yavaştır.

**TLB nedir?**

Translation lookaside buffer, CPU'nun içinde yakın zamandaki sanal-fiziksel adres çevirilerini saklayan küçük bir önbellektir. CPU'yu hemen her bellek erişiminde sayfa tablosunu gezmekten kurtarır.

**Paging ile swapping arasındaki fark nedir?**

Paging, belleği sabit boyutlu sayfalarla yönetmenin genel düzenidir. Swapping ise bellek azaldığında sayfaları RAM'den diskteki takas alanına taşımak ve gerektiğinde geri okumak demektir.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
