Sunday 25 March 2012

Lru.c


#include<stdio.h>
main()
{
        int p[20],i,j=0,k,l=0,n,m,q[5],fault=0,z=0   ,x[3],max=0,c,b,a;
        printf("\n enter the num of pages:");
        scanf("%d",&n);
        printf("enter pages:");
        for(i=0;i<n;i++)
        scanf("%d",&p[i]);
        printf("enter no of frames:");
        scanf("%d",&m);
        for(i=0;i<m;i++)
                q[i]=-1;
        for(i=0;i<n;i++)
        {
                for(j=0;j<m;j++)
                    if(p[i]==q[j])
                        z++;
                if(z==0)
                {
                        fault++;
                        if(i>m-1)
                        {
                                for(a=0;a<m;a++)
                                        x[a]=0;
                                for(c=0;c<m;c++)
                                        for(b=i;b>=0;b--)
                                        {
                                                if(q[c]!=p[b])
                                                         x[c]++;
                                                else
                                                        break;
                                        }
                                max=x[0];l=0;
                                if(x[1]>max){ max=x[1];l=1;}
                                if(x[2]>max){ max=x[2];l=2;}
                        }
                        q[l]=p[i];
                        l++;
                        z=0;
                        for(k=0;k<m;k++)
                                printf("%d\t",q[k]);
                        printf("\n");
                }
                z=0;
        }
        printf("no. of page faults:%d",fault);
}

No comments:

Post a Comment