Sunday 25 March 2012

optimal.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<n;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