FIFO önbellek anomalileri


13

Bu gelen takip mücadeledir bu bir ilk o bir kontrol edin karıştı eğer,.


İlk olarak, , önbellek kapasitemizin k kapasitesine sahip olduğunu ve dolduğunda ilk giren ilk çıkar (FIFO) fırlatma şemasını kullandığını varsayarak, kaynak erişimlerinin bir sırasının s önbellek kaçırma sayısı olsun.m(s,k)sk

Daha sonra bu oran belirli bir , kaynak kere bir boş olmayan sekans geri s bulunacak şekilde k > j ile m ( s , k ) r m ( s , j ) .r>1sk>jm(s,k)rm(s,j)

Düz İngilizce bir dizi inşa kaynağın büyük önbellek (en azından) iki önbellek boyutları var ki erişen r kat daha fazla kararlılık için kullanıldığında önbellek özlüyor s .srs

için bir örnek , geçerli bir çıktı ( 3 , 2 , 1 , 0 , 3 , 2 , 4 , 3 , 2 , 1 , 0 , 4 ) dizisidir ( önbellek boyutu için 9 önbellek kaybına neden olur ) 3 , ancak 4 önbellek boyutu için 10 özlüyor .r=1.1(3,2,1,0,3,2,4,3,2,1,0,4)93104

Gereksinimleri karşıladığı sürece hangi diziyi döndürdüğünüz önemli değildir.


Bayt cinsinden en kısa kod kazanır.


Arka plan okuma: Bélády's anomaly
dylnan

Sadece bitkinlik olabilir, ama bu meydan okuma benim için tamamen açık değil ; Çalışmış bir örnek ve birkaç test örneği daha verebilir misiniz?
Shaggy

@Shaggy Go diğer meydan okuma ve diğer yorumdan okuma arka plan göz atın. Temel nokta, bir dizi istek için büyüdükçe FIFO önbelleğinin daha da kötüleşebileceğidir .
orlp

Yanıtlar:


7

Wolfram Dili (Mathematica) , 124 113 101 bayt

Flatten@{s=⌈2#⌉;q=Range[r=2s+1];g=Mod[q s-s,r];{Sort@g[[#+1;;]],g[[;;#]]}&~Array~r,Table[q,s^3]}&

Çevrimiçi deneyin!

NOT: TIO çıkışı çok uzun olacağı için gerçek liste değildir. TIO'daki sarma işlevi size iki önbellek kapasitesi için sayfa hatası sayısını bildirir.

Gerçek liste için: Çevrimiçi deneyin!

İlgili: arXiv: 1003.1336

Nasıl?

İki önbellek kapasitesine sahip olduğumuz bir durumu varsayalım 3ve 4.

Ayrıca, diyelim ki 3-cache {4, 2, 5}disk belleği ve 4-cache {5, 4, 3, 2}disk belleği. Ardından, sayfalamayı deneyelim {1, 2, 3, 4, 5, 1, 2, 3, 4, 5}:

page  3-cache   4-cache
      {4,2,5}  {5,4,3,2}
  1   {1,4,2}  {1,5,4,3}
  2   {1,4,2}  {2,1,5,4}
  3   {3,1,4}  {3,2,1,5}
  4   {3,1,4}  {4,3,2,1}
  5   {5,3,1}  {5,4,3,2}
  1   {5,3,1}  {1,5,4,3}
  2   {2,5,3}  {2,1,5,4}
  3   {2,5,3}  {3,2,1,5}
  4   {4,2,5}  {4,3,2,1}
  5   {4,2,5}  {5,4,3,2}

3İse -Cache, 5 sayfa hataları vardı 4-Cache 10. Ayrıca orijinal durumuna geri döndü vardı.

Burada, çağrıyı tekrarlarsak {1, 2, 3, 4, 5}, asemptotik olarak oranına ulaşırdık 2.

Bu fenomeni daha yüksek önbellek kapasitelerine genişletebiliriz, böylece {1, 2, 3, ... , 2n + 1}herhangi bir oranla sayfalayabilir ve sonuçlayabiliriz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.