FIFO 캐시 이상


13

이것은에서 후속 도전 이 하나의 당신이 먼저 하나를 확인하시기 바랍니다 혼동하는 경우.


먼저하자 캐시의 개수는 시퀀스 그리워 수 우리 캐시 가정하면 용량 갖는 것 리소스 된 액세스를 K를 하고 찼을 때 선입 선출 (FIFO) 토출 방식을 사용한다.m(s,k)sk

그 후, 소정 비율 , 리소스 액세스의 비어 시퀀스 복귀 존재하도록 K > Jm ( S , K ) R m ( S , J가 ) .r>1sk>jm(s,k)rm(s,j)

일반 영어로, 더 큰 캐시가 s 를 해결하는 데 사용될 때 캐시 미스가 적어도 r더 많은 곳에 캐시 크기가 두 개가되도록 일련 리소스 액세스를 구성하십시오 .srs

위한 예시 , 유효한 출력 순서 인 ( 3 , 2 , 1 , 0 , 3 , 2 , 4 , 3 , 2 , 1 , 0 , 4 ) , 그것이 원인으로 도 9 의 캐시 크기의 캐시 미스를 3(10) 의 캐시 크기에 대한 미스 4 .r=1.1(3,2,1,0,3,2,4,3,2,1,0,4)93104

요구 사항을 충족하는 한 어떤 시퀀스를 반환하는지는 중요하지 않습니다.


바이트 단위의 최단 코드가 이깁니다.


배경 독서 : Bélády의 변칙
dylnan

다만 고갈 될 수 있지만이 문제는 아니다 수도 전적으로 나에게 분명; 실제 예제와 몇 가지 테스트 사례를 제공 할 수 있습니까?
얽히고 설킨

@Shaggy Go 다른 과제를 확인하고 다른 의견을 읽는 배경을 확인하십시오. 요점은 FIFO 캐시가 일련의 요청에 대해 커질수록 악화 될 수 있다는 것입니다.
orlp

답변:


7

볼프람 언어 (티카) , 124 (113) 101 바이트

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

온라인으로 사용해보십시오!

참고 : TIO 출력은 매우 길기 때문에 실제 목록이 아닙니다. TIO의 래퍼 기능은 두 가지 캐시 용량에 대한 페이지 결함 수를 알려줍니다.

실제 목록 : 온라인으로 사용해보십시오!

관련 : arXiv : 1003.1336

어떻게?

하자 우리가 두 개의 캐시 용량이 곳 상황을 가정 3하고 4.

또한 3-cache가 {4, 2, 5}페이징되었고 4-cache가 {5, 4, 3, 2}페이징 되었다고 가정하겠습니다 . 그런 다음 페이징을 시도해 봅시다 {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그동안 -cache는 5 페이지 오류가 있었다 4-cache 10. 우리는 또한 우리의 원래의 상태로 복귀했다.

여기서 페이징을 반복 {1, 2, 3, 4, 5}하면의 비율에 도달 할 수 있습니다 2.

이 현상을 더 높은 캐시 용량으로 확장 {1, 2, 3, ... , 2n + 1}하여 어떤 비율로도 페이징 하고 끝낼 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.