#include<stdio.h>
int main( )
{
int i
, j
, flag
, page
[ 10 ] , frame
[ 10 ] , n
, no
, arr
[ 50 ] , time [ 50 ] , k
, min_time
, hit
= 0 , temp
; printf ( "\n Enter the number of pages" ) ; printf ( "\n Enter the reference string" ) ; for ( i= 0 ; i< n; i++ )
{
printf ( "\n Value of page%d: " , i
+ 1 ) ; }
printf ( "\n Enter the number of frames" ) ; for ( i= 0 ; i< no; i++ )
{
frame[ i] =- 1 ;
}
for ( i= 0 ; i< 50 ; i++ )
{
arr[ i] = 0 ;
}
for ( i= 0 ; i< n; i++ )
{
arr[ page[ i] ] ++;
flag= 1 ;
k= frame[ 0 ] ;
for ( j= 0 ; j< no; j++ )
{
if ( frame[ j] ==- 1 || frame[ j] == page[ i] )
{
if ( frame[ j] !=- 1 )
{
hit++;
}
flag= 0 ;
frame[ j] = page[ i] ;
break ;
}
if ( arr[ k] > arr[ frame[ j] ] )
{
k= frame[ j] ;
}
}
if ( flag)
{
min_time= 50 ;
for ( j= 0 ; j< no; j++ )
{
if ( arr
[ frame
[ j
] ] == arr
[ k
] && time [ frame
[ j
] ] < min_time
) {
temp= j;
}
}
arr[ frame[ temp] ] --;
frame[ temp] = page[ i] ;
}
for ( j= 0 ; j< no; j++ )
{
}
}
printf ( "\n the number of page faults is:%d" , n
- hit
) ; printf ( "\n the number of page hit is:%d" , hit
) ; return 0 ;
}
I2luY2x1ZGU8c3RkaW8uaD4KaW50IG1haW4oKQp7CglpbnQgaSxqLGZsYWcscGFnZVsxMF0sZnJhbWVbMTBdLG4sbm8sYXJyWzUwXSx0aW1lWzUwXSxrLG1pbl90aW1lLGhpdD0wLHRlbXA7CglwcmludGYoIlxuRW50ZXIgdGhlIG51bWJlciBvZiBwYWdlcyIpOwoJc2NhbmYoIiVkIiwmbik7CglwcmludGYoIlxuRW50ZXIgdGhlIHJlZmVyZW5jZSBzdHJpbmciKTsKCWZvcihpPTA7aTxuO2krKykKCXsKCQlwcmludGYoIlxuVmFsdWUgb2YgcGFnZSVkOiAiLGkrMSk7CgkJc2NhbmYoIiVkIiwmcGFnZVtpXSk7Cgl9CglwcmludGYoIlxuRW50ZXIgdGhlIG51bWJlciBvZiBmcmFtZXMiKTsKCXNjYW5mKCIlZCIsJm5vKTsKCWZvcihpPTA7aTxubztpKyspCgl7CgkJZnJhbWVbaV09LTE7Cgl9Cglmb3IoaT0wO2k8NTA7aSsrKQoJewoJCWFycltpXT0wOwoJfQoJZm9yKGk9MDtpPG47aSsrKQoJewoJCWFycltwYWdlW2ldXSsrOwoJCXRpbWVbcGFnZVtpXV09aTsKCQlmbGFnPTE7CgkJaz1mcmFtZVswXTsKCQlmb3Ioaj0wO2o8bm87aisrKQoJCXsKCQkJaWYoZnJhbWVbal09PS0xIHx8IGZyYW1lW2pdPT1wYWdlW2ldKQoJCQl7CgkJCQlpZihmcmFtZVtqXSE9LTEpCgkJCQl7CgkJCQkJaGl0Kys7CgkJCQl9CgkJCSAgICBmbGFnPTA7CgkJCSAgICBmcmFtZVtqXT1wYWdlW2ldOwoJCQkgICAgYnJlYWs7CgkJCX0KCQkJaWYoYXJyW2tdPmFycltmcmFtZVtqXV0pCgkJCXsKCQkJCWs9ZnJhbWVbal07CgkJCX0KCQl9CgkJaWYoZmxhZykKCQl7CgkJCW1pbl90aW1lPTUwOwoJCQlmb3Ioaj0wO2o8bm87aisrKQoJCQl7CgkJCQlpZihhcnJbZnJhbWVbal1dPT1hcnJba10gJiYgdGltZVtmcmFtZVtqXV08bWluX3RpbWUpCgkJCQl7CgkJCQkJdGVtcD1qOwoJCQkJCW1pbl90aW1lPXRpbWVbZnJhbWVbal1dOwoJCQkJfQoJCQl9CgkJCWFycltmcmFtZVt0ZW1wXV0tLTsKCQkJZnJhbWVbdGVtcF09cGFnZVtpXTsKCQl9CgkJcHJpbnRmKCJcbiIpOwoJCWZvcihqPTA7ajxubztqKyspCgkJewoJCQlwcmludGYoIiVkXHQiLGZyYW1lW2pdKTsKCQl9Cgl9CglwcmludGYoIlxudGhlIG51bWJlciBvZiBwYWdlIGZhdWx0cyBpczolZCIsbi1oaXQpOwoJcHJpbnRmKCJcbnRoZSBudW1iZXIgb2YgcGFnZSBoaXQgaXM6JWQiLGhpdCk7CglyZXR1cm4gMDsKCQp9CgoK