Este é o desafio de acompanhamento deste , se você estiver confuso, verifique esse primeiro.
Primeiro, permita que seja o número de falhas de cache que uma sequência s de acesso a recursos teria assumindo que nosso cache tem capacidade k e usa um esquema de ejeção de FIFO quando estiver cheio.
Então, dada uma razão , retorne uma sequência não vazia de recursos que acessa s, de tal forma que exista k > j com m ( s , k ) ≥ r ⋅ m ( s , j ) .
Em inglês simples, construa uma sequência de acesso a recursos para que haja dois tamanhos de cache em que o cache maior tenha (pelo menos) r vezes mais falta de cache quando usado para resolver s .
Um exemplo para , uma saída válida é a sequência ( 3 , 2 , 1 , 0 , 3 , 2 , 4 , 3 , 2 , 1 , 0 , 4 ) , pois causa 9 falhas de cache para um tamanho de cache de 3 , mas 10 falham para um tamanho de cache 4 .
Não importa qual sequência você retorne, desde que atenda aos requisitos.
O código mais curto em bytes vence.
Respostas:
Wolfram Language (Mathematica) ,
124113101 bytesExperimente online!
NOTA: A saída TIO não é a lista real, pois seria muito longa. A função de wrapper no TIO informa o número de falhas de página para duas capacidades de cache.
Para a lista real: Experimente online!
Palavras-chave: arXiv: 1003.1336
Quão?
Vamos assumir uma situação em que temos duas capacidades de cache
3
e4
.Além disso, digamos que o
3
-cache paginou{4, 2, 5}
e4
-cache paginou{5, 4, 3, 2}
. Então, vamos tentar a paginação{1, 2, 3, 4, 5, 1, 2, 3, 4, 5}
:O
3
-cache teve 5 falhas de página, enquanto o4
-cache tinha 10. Também retornamos ao nosso estado original.Aqui, se repetirmos a paginação
{1, 2, 3, 4, 5}
, atingiríamos assintoticamente a proporção de2
.Podemos estender esse fenômeno para capacidades de cache mais altas, para que possamos paginar
{1, 2, 3, ... , 2n + 1}
e terminar com qualquer proporção.fonte