2016-04-11 55 views
0

İki işlem A ve B'nin sayfa tablosuna yeni bir çerçeve eklemesi gerektiğini varsayalım. çerçeveler olmadığı için, bir çerçeveyi değiştirip B çerçevesini diskten çıkarmalıyız. İşletim sisteminin genel sayfa değiştirme planını izlediğini ve A verilerinin bulunduğu bir kareyi aldığını varsayalım. Şimdi, bu çerçeveyi değiştirmek için A'nın sayfa tablosunda karşılık gelen çerçevenin geçersiz olduğunu değiştirmemiz gerekiyor. Bunu genel olarak yapmak için, bellekte belirli bir karede hangi işlem verilerinin olduğunu bilmemiz gerekir. Böylece, sayfa tablosuna gidip biti geçersiz kılabilirsiniz. Bu nasıl elde edildi? Hafızada her bir çerçeve, verileri sahip olduğu ilgili işlemin işlem kimliğini de saklıyor mu?Genel sayfa değiştirmede sayfa nasıl geçersiz hale getirildi?

+0

fiziksel bellek çerçevesi doğrudan işlem kimliği ile ilişkili olmayan bu kitabı öneririm. > 1 işlemi, sanal adres alanındaki sanal bellek çerçevesini paylaşabilir. – JavaMan

cevap

1

Sayfa Tablosu, yalnızca işlemci donanımı tarafından istenen bir özelliktir. Bunun üzerine, OS, her bir fiziksel sayfa çerçevesinin kaydını tutarak kendi veritabanlarını bellekte tutuyor. Örneğin, Windows'da, Valid, Standby, Modified, Free vb. Gibi her bir fiziksel sayfanın durumunu listeleyen bir Sayfa Çerçevesi Veritabanı (PFN) vardır. Ve fiziksel bellekte bulunan sanal sayfaların alt kümesini tanımlamak için bir Çalışma Seti Listesi. Eğer bellek yönetimi ayrıntıları hakkında daha fazla bilgi gerekiyorsa Windows için

, ben http://www.amazon.com/Windows-Internals-Part-Developer-Reference/dp/0735665877/ref=sr_1_3?ie=UTF8&qid=1463848711&sr=8-3&keywords=windows+internals