Sanal Bellek Kullanımı

advertisement
Sistem Programlama
Sanal Bellek Kullanımı:
Programın yalnızca bir kısmının fiziksel olarak RAM'e yüklenip
çalıştırılmasına ilişkin sisteme sanal bellek kullanımı denir.
Intel işlemcileri 80286 ile birlikte segment tabanlı, 80386 ile birlikte de sayfa
tabanlı sanal bellek kullanımını destekler.
DOS sistemi 8086'lar zamanında tasarlandığı için sanal bellek kullanımı
DOS'ta mümkün değildir.
Windows 3.x segment tabanlı, Win32 sistemleriyse sayfa tabanlı sanal bellek
mekanizmasını desteklerler.
Bir exe programının %10-20'lik bir kısmı çok fazla çalıştırılmaktadır.
Programın büyük kısmı belki yalnızca bir kez işlem gören ya da hiç işlem
görmeyen parçalara sahiptir.
Gazi Üniversitesi Bilgisayar Eğitimi Bölümü
Öğr. Gör. Dr. Tuncay YİĞİT
Sistem Programlama
Doğrusal ve Fiziksel adresler:
Bir programın 4 K lık parçalarına sayfa denir. Fiziksel RAM de 4 K lıksayfalara
ayrılmıştır.
Böylece programın sayfaları RAM'deki rastgele sayfalarda bulunabilir.
Programın hangi parçalarının hangi RAM sayfalarında bulunduğu bir tabloda
tutulur. Bu tabloya sayfa tablosu denir.
Korumalı mod da bir adres bilgisi 32 bit uzunluğundadır. 32 bit uzunluğundaki
bu adres bilgisine doğrusal adres denir. Windows ve UNIX sistemlerinde
programcının kullanıdığı bütün adresler doğrusal adreslerdir. Örneğin C'de bir
değişkenin adresini aldığımızda biz gerçekte doğrusal adresini elde ederiz.
Doğrusal adresler işlemci tarafından RAM'deki gerçek fiziksel adreslere
dönüştürülür.
Gazi Üniversitesi Bilgisayar Eğitimi Bölümü
Öğr. Gör. Dr. Tuncay YİĞİT
Sistem Programlama
Sayfalama ve Sanal Bellek ilişkisi:
Sanal bellek sisteminde programın bütün hepsi fiziksel RAM'e
yerleştirilmediği için sayfa tablosunun yalnızca programın RAM'e
yerleştirildiği kadar kısmı doldurulur.
Sayfa tablosunun diğer elemanları boş bırakılır. Tabii bu durumda programın
çalışması kod ve data bakımından sayfa tablosunda karşılığı bulunmayan bir
doğrusal adrese gelebilir. Bu durumda işlemci "page fault" denilen özel bir
içsel kesme oluşturur.
Bu kesme işletim sistemi tarafından hook edilmiştir. İşletim sistemi önce
habngi doğrusal adresten dolayı böyle bir hatanın çıktığını tespit eder. Sonra
bu adresin swap dosyasındaki yerini bulur. Programın o sayfasını fiziksel
RAM'e yükler. Yüklediği RAM'in fiziksel sayfa numarasını sayfa tablosuna
yazar. Artık ilgili adres fiziksel RAM'dedir, çalışma devam edebilir.
Gazi Üniversitesi Bilgisayar Eğitimi Bölümü
Öğr. Gör. Dr. Tuncay YİĞİT
Download