2013-05-06 21 views
5

Ben objektif bir soru çözmeye çalışıyorum, Sınavda geldi. Aslında doğru cevabı bilmiyorum ve nasıl alacağımı bilmiyorum, yardımınıza ihtiyacım var. Teşekkür ederim .Vuruş ve önbellekteki rasyon özledim ve ortalama zaman hesaplaması

Soru: Belirli bir sistemde ana bellek erişim süresi 100 ns'dir. Önbellek, ana bellekten 10 kez daha hızlıdır ve yazma protokolünü kullanır. Okuma isteği için isabet oranı 0,92 ise ve CPU tarafından üretilen bellek isteklerinin% 85'i okunacak ise, kalan yazma değeri; Daha sonra hem okuyup yazma istekleri ortalama süre düşüncedir

a))

b 14.62ns

c 348.47ns)

d 29.62ns)

Benim çalışmalarını 296.2ns ::::

Eh, bellek erişim zamanı = 100ns

önbellek erişim süresi

In order to find avg time we have a formula 

Tavg = hc+(1-h)M 

    where h = hit rate 
    (1-h) = miss rate 
     c = time to access information from cache 
     M = miss penalty (time to access main memory) 

Yaz operasyon ile (10 zaman daha hızlı) = 10 ns olacaktır: önbellek konumu ve ana bellek konumu aynı anda güncellenir.

CPU tarafından üretilen% 85 isteğin okuma talebi olduğu ve% 15'inin yazma talebi olduğu belirtilir.

Tavg = 0.85(avg time for read request)+ 0.15(avg time for write request) 
    = 0.85(0.92*10+0.08*100)+0.15(avg time for write request) 

// * 0.92

okuma isteği için bir isabet oranı, ama yazma isteği için oran yok İsabet ??

ben kabul edersek yazma isteği söz konusu isabet isabet oranı daha sonra okuma isteği için isabet oranı ile aynıdır,

= 0.85(0.92*10+0.08*100)+0.15(0.92*(10+100)+0.08*100) 
    =31 ns 

O isabet oranı daha sonra yazma isteği için% 0'dır varsayarsak,

= 0.85(0.92*10+0.08*100)+0.15(0*110+1*100) 
    =29.62 ns 
politika yoluyla yazma durumunda

cevap

0

ve önbellek özledim gerçekleştiğinde veriler doğrudan ana bellekten okunduğu zaman,

Tavg(for write)=Hw*Tm +(1-Hw)*Tm = Tm 
yazmak içinHw = isabet oranı, Tm Zaman genellikle Tm >> Tc yana, güncelleme ve aynı anda Tm zamanın kendisi verileri okuyabilir, & bayan isabet önbellek her iki durumda da, bu formülde ana bellek

erişmeye = . Yani okumak için Tc göz ardı edilebilir.

Bu nedenle, bu soru için yazma için isabet oranını bilmeniz gerekmez. ve cevap 29.62ns

2

Sadece erişim = 0,92 * 10 + 0,08 * 100 = 17,2 ns göz önüne alındığında ortalama erişim süresi.

Yalnızca yazma = 100 ns göz önüne alındığında ortalama erişim süresi (çünkü yazarken, bir isabet veya eksik olsa bile güncellemek için belleğe geri gitmeniz gerekir. Eğer isabet oranı = 0.5 ve öz = 0,5 olduğunu varsayıyorsanız 0,5 * 100 + 0.5 * 100 = 1 * 100)

Yani, hem okuma ve yazma olacağını toplam erişim süresi - cant isabet oranını varsayalım ** 0,85 * 17,2 + 0,15 * 100 = 14,62 + 15 = 29,62 ns

okuma için isabet oranı ile aynı yazma için. Yazma talebi için (yazarak) durum ne olursa olsun, belleğe geri yazmanız gerekir. böylece yazma erişim zamanı hafıza erişim zamanına eşit olacaktır.

2

İkinci varsayımınız doğru.

Yazma önbelleği ile değiştirilen blokları derhal belleğe ve sonra diske yazar. Hiçbir disk erişim zamanı verilmediğinden, denklemden çıkarılır. Benim notasyonlarım biraz farklı, ama gelecekteki okuyucular için bu şekilde yayınlayacağım. William Stallingsİşletim Sistemlerinde Verilen Gösterimleri: İç ve Tasarım İlkeleri.

Verilen:

Tm = 100ns 
Tc = 10ns /* 10x faster than Tm */ 
Hr = 0.92 /* Hit rate reading */ 
85% reading => 15% of the time writing 

Çözüm:

The effective access time for reading: 
Te_r = Hr * Tc + (1-Hr)Tm = 0.92*10 + (1 - 0.92)100 = 9.2 + 8 = 17.2 

The effective access time for writing, is determined from the Hit rate Hw, 
which is always 0, because the data must be immediately written onto the 
memory. 
Te_w = Hw * Tc + (1-Hw)Tm = 0*10 + (1 - 0)100 = 100 

Taking into account the percentage: 
0.85*17.2 + 0.15*100 = 14.62 + 15 = 29.62 

                    Q.E.D 
+0

Neden diske bahsetti mi? Soru, hafızanın disk tarafından desteklendiğini söylemez, bu yüzden olmadığını varsaymalısınız. Örneğin. MAP_PRIVATE (bir yürütülebilir dosyanın veri bölümü gibi) veya MAP_ANONYMOUS (malloc veya bss bölümü) eşlemesi. Normal İşletim Sistemleri, bellek baskısı olmadıkça aşırı yüklenmeyi önlemek için yeterli takas olsa bile takas yapmak için kirli anonim sayfalar yazmaz. –

+0

@PeterCordes Eh, tam olarak bunu kabul ettim. Bununla birlikte, yazma önbelleği arkaplan deposuna yazıyor ve "bellek" ile "dahili" ana bellek * anlamına geldiğini düşündüm, bu da uçucudur. Bu yüzden ortak destek deposu olarak, diski düşündüm. Ama yine de çözümde bulamadım. – user8