Bu soruyu cevaplamak için bazı ön koşulları anlayacağım. Saf talep sayfalaması, donanım desteği olmadan gerçekleştirilemez. Tüm modern bilgisayar mimarileri sayfalamayı destekler, ancak çoğunun farklı uygulama ayrıntıları vardır.
x86 işlemciler sayfa bile olduğunu olsun veya olmasın, daha alakalı erişim yetkilerine ve yaklaşık sanal adres alanlarının ve sayfa eşleştirmeleri takip yanı sıra bit tutmak için bir sayfa tablosu denir kullanır mevcut fiziksel bellekte. İhlaller, işletim sistemi tarafından yakalanan sayfa hatalarını tetikler.
Bununla ilgili daha fazla bilgi için bu makaleye bakın .
Sayfa değiştirme sorusunu cevaplamak için, öncelikle işletim sisteminin hangi sayfaların hangi işlem tarafından kullanıldığını ve nasıl tahsis edildiğini nasıl takip ettiği sorusunu ziyaret etmeliyiz. Bunun için kullanılabilecek birçok farklı veri yapısı vardır. Bir çerçevenin tahsis edilip edilmediğini işaret eden düz bit dizisi bir yoldur. Bağlantılı listeler veya yığınlar başka bir listedir. Saf talep sayfalaması ile, ayrılan sayfalar tahsis edildiğinde gerçekte mevcut olarak işaretlenmez. Bunun, hiçbir işlem gerçekten yazılıncaya kadar fiziksel bir koçun bir kenara bırakılmaması etkisi vardır. Bir kez, donanım OS'nin yakaladığı bir hata atar ve daha önce tahsis edilmiş sanal sayfaya atanacak fiziksel sayfa yoksa işletim sistemi bir takas algoritması kullanır.
Sayfa çerçevesi ayırma hakkında daha fazla bilgi için buraya bakın . Orada bazı uygun veri yapılarına genel bir bakış bulacaksınız.
Sayfa tahsisi için uygun bir algoritma uygulandığında, takas için disk alanı tahsis etmek için başka bir algoritma seçilmelidir. Windows, örnek olarak, geçmişte sayfa değiştirmede dosya sisteminde düz bir dosya kullanmıştır. Tahsis edilen sayfaları takip eden veri yapısındaki her bir düğüm için, dosyadaki bir ofsetin, diskteki sayfanın konumunu gösteren bir işaretçi olduğunu hayal ediyorum. Unix benzeri işletim sistemleri, geleneksel olarak sayfa değişimi için ayrı bölümler kullanmıştır; bu, dosya sistemi katmanı olmadığı için muhtemelen daha hızlıdır.
Takas algoritması veri yapılarını ayırma algoritmasından ayırmak da mümkündür, ancak ikisi birbiriyle ilişkilidir, bu nedenle bu muhtemelen sık yapılmaz.
Umarım sorunuzu, tedavi ettiğim göreceli kısalığa rağmen cevaplar. İşletim sistemleri hakkında bilgi edinmenin en iyi yolunun, özellikle hobi işletim sistemi yapımıyla ilgilenen ve mükemmel öğreticiler sunan wiki.osdev.org ve www.osdever.net gibi sitelerde bulunan bazen kötü mimari spesifik ayrıntılara dalmak olduğunu buldum. böyle ayrıntılarda.