Question:
LruCount Miss DXC Automata Fix Questions AMCAT
int LruCountMiss(int max_cache_size,int *pages,int pages_len)
{
// write your code here
}
Solution:
#include <stdio.h>
int LruCountMiss(int max_cache_size,int *pages,int pages_len)
{
int i,j,cache[100],k,pageincache=0,misscount=0;
for(i=0;i< max_cache_size;i++)
cache[i]=-1;
for(i=0;i<pages_len;i++)
{
pageincache=0;
for(j=0;j<max_cache_size;j++)
{
if(pages[i]==cache[j])
{
pageincache=1;
for(k=j;k<max_cache_size;k++)
{
cache[k]=cache[k+1];
}
cache[max_cache_size-1]=pages[i];
break;
}
}
if(pageincache==0)
{
misscount++;
for(k=0;k<max_cache_size;k++)
{
cache[k]=cache[k+1];
}
cache[max_cache_size-1]=pages[i];
}
}
return misscount;
}
int main()
{
int misscount,pages[]={7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0};
misscount=LruCountMiss(3,pages,16);
printf("%d ",misscount);
}