Thread overview
Bellek ile ilgili bir soru
May 22, 2018
hsencan
May 23, 2018
hsencan
May 22, 2018

Merhaba, Benim bir mühendis arkadaşım bana bir soru gönderdi. Soru şu şekilde:

"16 bit adres kullanan ve sanal adres alanı 64KB ve fiziksel adres alanı (RAM) 32KB olan bir sistemde
bellek 4KB'lık sayfalara bölünmüştür. Aşağıda verilen sayfa tablosunu kullanarak a) b) şıklarında verilen sanal adreslerin varsa fiziksel adres karşılıklarını bulunuz.

A) 512
B) 28814

Sayfa No---Sayfa Çerceve No---Var/Yok Bitti

15 0 0
14 0 0
13 0 0
12 0 0
11 7 1
10 0 0
9 5 1
8 0 0
7 0 0
6 0 0
5 3 1
4 4 1
3 0 1
2 6 1
1 1 1
0 2 1

Açıkçası benim bu konu hakkında hiç bilgim yok. Hem arkadaşıma yardımcı olmak, hem de cevabını kendim merak ettiğim için buraya geldim. :)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

May 23, 2018

Teşekkürler Hocam.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

May 22, 2018

4KB 12 bit ile temsil edilir. (Ezberimde değilse ben şöyle hatırlıyorum: 1K, 10 bittir. 4 katına gidebilmek için 2 bit gerekir; demek ki 12 bit...)

Her sayfası 12 bitlik olan 16 bitlik sistemde 16 sayfa vardır. (Basit bölme işlemi ile: 2^^16 / 2^^12 = 2^^4 = 16.) Demek ki sorudaki tablodaki 0-15 sayfa numaraları mantıklı... Ancak, bu sistemde olası bellek adreslerinin yalnızca yarısını karşılayan donanım varmış. Yani, bu 16 sayfadan yarısı boş olmalı... Evet, o da var/yok bitlerinde görülüyor. 8 adet var: 8*4KB = 32KB.

Bundan başka, fiziksel bellek yongalarının sayfaların sanal belleğe nasıl atandıkları da anlaşılan sayfa çerçeve no ile gösterilmiş. Dikkat edersek, var biti 1 olanlar 0-7 değerleri ile sıralanmışlar. Yani, sayfa çerçeve no'su 0 olan, [0,4096) adreslerini, sayfa çerçeve no'su 1 olan [4096,8192) adreslerini, vs. karşılıyor.

Soruyu çözmek tek bölme işlemi gerektiriyor:

512 sanal adresi ilk 4KB içinde bulunduğundan, 0 numaralı sayfa çerçeve no'ya bakıyoruz. Yani, şudur: 3 0 1

28814 / 4096 = 7.035. Yani 8'inci 4KB içindeymiş. Sayfa çerçeve no'ları 0 ile başladıklarından 8'incinin numarası 7'dir. Demek ki o da şuradaymış: 11 7 1

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

May 23, 2018

Rica ederim. :)

Ali

Not: Ben zaten her yanıta teşekkür edildiğini varsayıyorum. O yüzden, ayrıca teşekkür yazmaya gerek olmamalı çünkü bir de konuyla ilgili yeni bir şey söylendiği düşüncesini uyandırıyor.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]