<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: C Program for Optimal Page Replacement Algorithm	</title>
	<atom:link href="https://studentprojects.in/software-development/c-tutorials/c/c-program-for-optimal-page-replacement-algorithm/feed/" rel="self" type="application/rss+xml" />
	<link>https://studentprojects.in/software-development/c-tutorials/c/c-program-for-optimal-page-replacement-algorithm/</link>
	<description>Microcontroller projects, Circuit Diagrams, Project Ideas</description>
	<lastBuildDate>Sat, 17 Oct 2015 17:00:53 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.7</generator>
	<item>
		<title>
		By: Marshal Truman		</title>
		<link>https://studentprojects.in/software-development/c-tutorials/c/c-program-for-optimal-page-replacement-algorithm/comment-page-1/#comment-137364</link>

		<dc:creator><![CDATA[Marshal Truman]]></dc:creator>
		<pubDate>Sat, 17 Oct 2015 17:00:53 +0000</pubDate>
		<guid isPermaLink="false">http://studentprojects.in/?p=777#comment-137364</guid>

					<description><![CDATA[#include
int n,nf;
int in[100];
int p[50];
int hit=0;
int i,j,k;
int pgfaultcnt=0;

void getData()
{
printf(&quot;\nEnter length of page reference sequence:&quot;);
scanf(&quot;%d&quot;,&#038;n);
printf(&quot;\nEnter the page reference sequence:&quot;);
for(i=0;i&#060;n;i++)
scanf(&#034;%d&#034;,&#038;in[i]);
printf(&#034;\nEnter no of frames:&#034;);
scanf(&#034;%d&#034;,&#038;nf);
}

void initialize()
{
pgfaultcnt=0;
for(i=0;i&#060;nf;i++)
p[i]=9999;
}



int isHit(int data)
{
hit=0;
   for(j=0;j&#060;nf;j++)
     {
       if(p[j]==data)
         {
          hit=1;
          break;
         }
       
     }

return hit;
}

int getHitIndex(int data)
{
int hitind;
for(k=0;k&#060;nf;k++)
{
if(p[k]==data)
{
hitind=k;
break;
}
}
return hitind;
}

void dispPages()
{
for (k=0;k&#060;nf;k++)   
{
if(p[k]!=9999)
printf(&#034; %d&#034;,p[k]);
}

}

void dispPgFaultCnt(){
printf(&#034;\nTotal no of page faults:%d&#034;,pgfaultcnt);
}

void fifo()
{
initialize();
for(i=0;i&#060;n;i++)
{
printf(&#034;\nFor %d :&#034;,in[i]);

if(isHit(in[i])==0)
{

  for(k=0;k&#060;nf-1;k++)
      p[k]=p[k+1];
       
     p[k]=in[i];
   pgfaultcnt++;
   dispPages();
}
else
printf(&#034;No page fault&#034;);
}
dispPgFaultCnt();
}




void optimal()
{
initialize();
int near[50];
for(i=0;i&#060;n;i++)
{

printf(&#034;\nFor %d :&#034;,in[i]);

if(isHit(in[i])==0)
{

for(j=0;j&#060;nf;j++)
       {
         int pg=p[j];
         int found=0;
        for(k=i;k&#060;n;k++)
         {
           if(pg==in[k])
            {
             near[j]=k;
             found=1;
             break;
            }
           else
             found=0;
         }
        if(!found)
          near[j]=9999;
       }
  int max=-9999;
  int repindex;
for(j=0;jmax)
  {
    max=near[j];
    repindex=j;
  }
}
p[repindex]=in[i];
pgfaultcnt++;

dispPages();
}
else
printf(&quot;No page fault&quot;);
}
dispPgFaultCnt();
}

void lru()
{
initialize();

int least[50];
for(i=0;i&#060;n;i++)
{

printf(&#034;\nFor %d :&#034;,in[i]);

if(isHit(in[i])==0)
{

for(j=0;j=0;k--)
         {
           if(pg==in[k])
            {
             least[j]=k;
             found=1;
             break;
            }
           else
             found=0;
         }
        if(!found)
          least[j]=-9999;
       }
  int min=9999;
  int repindex;
for(j=0;j&#060;nf;j++)
{
if(least[j]&#060;min)
  {
    min=least[j];
    repindex=j;
  }
}
p[repindex]=in[i];
pgfaultcnt++;

dispPages();
}
else
printf(&#034;No page fault!&#034;);
}
dispPgFaultCnt();
}

void lfu()
{
int usedcnt[100];
int least,repin,sofarcnt=0,bn;
initialize();
for(i=0;i&#060;nf;i++)
usedcnt[i]=0;

for(i=0;i&#060;n;i++)
{

printf(&#034;\n For %d :&#034;,in[i]);
if(isHit(in[i]))
{
int hitind=getHitIndex(in[i]);
usedcnt[hitind]++;
printf(&#034;No page fault!&#034;);
}
else 
{
pgfaultcnt++;
if(bn&#060;nf)
           { p[bn]=in[i];
             usedcnt[bn]=usedcnt[bn]+1;
             bn++; }
          else
          { least=9999;
             for(k=0;k&#060;nf;k++)
                 if(usedcnt[k]&#060;least) { least=usedcnt[k]; repin=k; }
            p[repin]=in[i];
            sofarcnt=0;
            for(k=0;k&#060;=i;k++)
            if(in[i]==in[k])
            sofarcnt=sofarcnt+1;
            usedcnt[repin]=sofarcnt;
          } 

 dispPages();
}



}
dispPgFaultCnt();
}

void secondchance()
{
int usedbit[50];
int victimptr=0;
initialize();
for(i=0;i&#060;nf;i++)
usedbit[i]=0;
for(i=0;i&#060;n;i++)
{
printf(&#034;\nFor %d:&#034;,in[i]);
 if(isHit(in[i]))
{
    printf(&#034;No page fault!&#034;);
     int hitindex=getHitIndex(in[i]);
     if(usedbit[hitindex]==0)
        usedbit[hitindex]=1;
}
else
{
      pgfaultcnt++;
      if(usedbit[victimptr]==1)
        {
          do
           {
            usedbit[victimptr]=0;
            victimptr++;
             if(victimptr==nf)
              victimptr=0;
           }while(usedbit[victimptr]!=0);
        }
     if(usedbit[victimptr]==0)
      {
       p[victimptr]=in[i];
       usedbit[victimptr]=1;
       victimptr++;
      }
     dispPages();
   
}
if(victimptr==nf)
victimptr=0;
}
dispPgFaultCnt();
}
          



int main()
{
int choice;
while(1)
{
printf(&#034;\nPage Replacement Algorithms\n1.Enter data\n2.FIFO\n3.Optimal\n4.LRU\n5.LFU\n6.Second Chance\n7.Exit\nEnter your choice:&#034;);
scanf(&#034;%d&#034;,&#038;choice);
switch(choice)
{
case 1:
    getData();
    break;
case 2:
     fifo();
     break;
case 3:
    optimal();
    break;
case 4:
    lru();
    break;
case 5:
    lfu();
    break;
case 6:
    secondchance();
    break;
default:
    return 0;
    break;
}
}
}]]></description>
			<content:encoded><![CDATA[<p>#include<br />
int n,nf;<br />
int in[100];<br />
int p[50];<br />
int hit=0;<br />
int i,j,k;<br />
int pgfaultcnt=0;</p>
<p>void getData()<br />
{<br />
printf(&#8220;\nEnter length of page reference sequence:&#8221;);<br />
scanf(&#8220;%d&#8221;,&amp;n);<br />
printf(&#8220;\nEnter the page reference sequence:&#8221;);<br />
for(i=0;i&lt;n;i++)<br />
scanf(&quot;%d&quot;,&amp;in[i]);<br />
printf(&quot;\nEnter no of frames:&quot;);<br />
scanf(&quot;%d&quot;,&amp;nf);<br />
}</p>
<p>void initialize()<br />
{<br />
pgfaultcnt=0;<br />
for(i=0;i&lt;nf;i++)<br />
p[i]=9999;<br />
}</p>
<p>int isHit(int data)<br />
{<br />
hit=0;<br />
   for(j=0;j&lt;nf;j++)<br />
     {<br />
       if(p[j]==data)<br />
         {<br />
          hit=1;<br />
          break;<br />
         }</p>
<p>     }</p>
<p>return hit;<br />
}</p>
<p>int getHitIndex(int data)<br />
{<br />
int hitind;<br />
for(k=0;k&lt;nf;k++)<br />
{<br />
if(p[k]==data)<br />
{<br />
hitind=k;<br />
break;<br />
}<br />
}<br />
return hitind;<br />
}</p>
<p>void dispPages()<br />
{<br />
for (k=0;k&lt;nf;k++)<br />
{<br />
if(p[k]!=9999)<br />
printf(&quot; %d&quot;,p[k]);<br />
}</p>
<p>}</p>
<p>void dispPgFaultCnt(){<br />
printf(&quot;\nTotal no of page faults:%d&quot;,pgfaultcnt);<br />
}</p>
<p>void fifo()<br />
{<br />
initialize();<br />
for(i=0;i&lt;n;i++)<br />
{<br />
printf(&quot;\nFor %d :&quot;,in[i]);</p>
<p>if(isHit(in[i])==0)<br />
{</p>
<p>  for(k=0;k&lt;nf-1;k++)<br />
      p[k]=p[k+1];</p>
<p>     p[k]=in[i];<br />
   pgfaultcnt++;<br />
   dispPages();<br />
}<br />
else<br />
printf(&quot;No page fault&quot;);<br />
}<br />
dispPgFaultCnt();<br />
}</p>
<p>void optimal()<br />
{<br />
initialize();<br />
int near[50];<br />
for(i=0;i&lt;n;i++)<br />
{</p>
<p>printf(&quot;\nFor %d :&quot;,in[i]);</p>
<p>if(isHit(in[i])==0)<br />
{</p>
<p>for(j=0;j&lt;nf;j++)<br />
       {<br />
         int pg=p[j];<br />
         int found=0;<br />
        for(k=i;k&lt;n;k++)<br />
         {<br />
           if(pg==in[k])<br />
            {<br />
             near[j]=k;<br />
             found=1;<br />
             break;<br />
            }<br />
           else<br />
             found=0;<br />
         }<br />
        if(!found)<br />
          near[j]=9999;<br />
       }<br />
  int max=-9999;<br />
  int repindex;<br />
for(j=0;jmax)<br />
  {<br />
    max=near[j];<br />
    repindex=j;<br />
  }<br />
}<br />
p[repindex]=in[i];<br />
pgfaultcnt++;</p>
<p>dispPages();<br />
}<br />
else<br />
printf(&#8220;No page fault&#8221;);<br />
}<br />
dispPgFaultCnt();<br />
}</p>
<p>void lru()<br />
{<br />
initialize();</p>
<p>int least[50];<br />
for(i=0;i&lt;n;i++)<br />
{</p>
<p>printf(&quot;\nFor %d :&quot;,in[i]);</p>
<p>if(isHit(in[i])==0)<br />
{</p>
<p>for(j=0;j=0;k&#8211;)<br />
         {<br />
           if(pg==in[k])<br />
            {<br />
             least[j]=k;<br />
             found=1;<br />
             break;<br />
            }<br />
           else<br />
             found=0;<br />
         }<br />
        if(!found)<br />
          least[j]=-9999;<br />
       }<br />
  int min=9999;<br />
  int repindex;<br />
for(j=0;j&lt;nf;j++)<br />
{<br />
if(least[j]&lt;min)<br />
  {<br />
    min=least[j];<br />
    repindex=j;<br />
  }<br />
}<br />
p[repindex]=in[i];<br />
pgfaultcnt++;</p>
<p>dispPages();<br />
}<br />
else<br />
printf(&quot;No page fault!&quot;);<br />
}<br />
dispPgFaultCnt();<br />
}</p>
<p>void lfu()<br />
{<br />
int usedcnt[100];<br />
int least,repin,sofarcnt=0,bn;<br />
initialize();<br />
for(i=0;i&lt;nf;i++)<br />
usedcnt[i]=0;</p>
<p>for(i=0;i&lt;n;i++)<br />
{</p>
<p>printf(&quot;\n For %d :&quot;,in[i]);<br />
if(isHit(in[i]))<br />
{<br />
int hitind=getHitIndex(in[i]);<br />
usedcnt[hitind]++;<br />
printf(&quot;No page fault!&quot;);<br />
}<br />
else<br />
{<br />
pgfaultcnt++;<br />
if(bn&lt;nf)<br />
           { p[bn]=in[i];<br />
             usedcnt[bn]=usedcnt[bn]+1;<br />
             bn++; }<br />
          else<br />
          { least=9999;<br />
             for(k=0;k&lt;nf;k++)<br />
                 if(usedcnt[k]&lt;least) { least=usedcnt[k]; repin=k; }<br />
            p[repin]=in[i];<br />
            sofarcnt=0;<br />
            for(k=0;k&lt;=i;k++)<br />
            if(in[i]==in[k])<br />
            sofarcnt=sofarcnt+1;<br />
            usedcnt[repin]=sofarcnt;<br />
          } </p>
<p> dispPages();<br />
}</p>
<p>}<br />
dispPgFaultCnt();<br />
}</p>
<p>void secondchance()<br />
{<br />
int usedbit[50];<br />
int victimptr=0;<br />
initialize();<br />
for(i=0;i&lt;nf;i++)<br />
usedbit[i]=0;<br />
for(i=0;i&lt;n;i++)<br />
{<br />
printf(&quot;\nFor %d:&quot;,in[i]);<br />
 if(isHit(in[i]))<br />
{<br />
    printf(&quot;No page fault!&quot;);<br />
     int hitindex=getHitIndex(in[i]);<br />
     if(usedbit[hitindex]==0)<br />
        usedbit[hitindex]=1;<br />
}<br />
else<br />
{<br />
      pgfaultcnt++;<br />
      if(usedbit[victimptr]==1)<br />
        {<br />
          do<br />
           {<br />
            usedbit[victimptr]=0;<br />
            victimptr++;<br />
             if(victimptr==nf)<br />
              victimptr=0;<br />
           }while(usedbit[victimptr]!=0);<br />
        }<br />
     if(usedbit[victimptr]==0)<br />
      {<br />
       p[victimptr]=in[i];<br />
       usedbit[victimptr]=1;<br />
       victimptr++;<br />
      }<br />
     dispPages();</p>
<p>}<br />
if(victimptr==nf)<br />
victimptr=0;<br />
}<br />
dispPgFaultCnt();<br />
}</p>
<p>int main()<br />
{<br />
int choice;<br />
while(1)<br />
{<br />
printf(&quot;\nPage Replacement Algorithms\n1.Enter data\n2.FIFO\n3.Optimal\n4.LRU\n5.LFU\n6.Second Chance\n7.Exit\nEnter your choice:&quot;);<br />
scanf(&quot;%d&quot;,&amp;choice);<br />
switch(choice)<br />
{<br />
case 1:<br />
    getData();<br />
    break;<br />
case 2:<br />
     fifo();<br />
     break;<br />
case 3:<br />
    optimal();<br />
    break;<br />
case 4:<br />
    lru();<br />
    break;<br />
case 5:<br />
    lfu();<br />
    break;<br />
case 6:<br />
    secondchance();<br />
    break;<br />
default:<br />
    return 0;<br />
    break;<br />
}<br />
}<br />
}</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: DaoNguyen		</title>
		<link>https://studentprojects.in/software-development/c-tutorials/c/c-program-for-optimal-page-replacement-algorithm/comment-page-1/#comment-119401</link>

		<dc:creator><![CDATA[DaoNguyen]]></dc:creator>
		<pubDate>Mon, 20 Jul 2015 17:15:35 +0000</pubDate>
		<guid isPermaLink="false">http://studentprojects.in/?p=777#comment-119401</guid>

					<description><![CDATA[Hello, can anyone give the source code C, C++, Java for optimal mst algorithm? I couldn’t find it anywhere. Please help]]></description>
			<content:encoded><![CDATA[<p>Hello, can anyone give the source code C, C++, Java for optimal mst algorithm? I couldn’t find it anywhere. Please help</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: DaoNguyen		</title>
		<link>https://studentprojects.in/software-development/c-tutorials/c/c-program-for-optimal-page-replacement-algorithm/comment-page-1/#comment-119398</link>

		<dc:creator><![CDATA[DaoNguyen]]></dc:creator>
		<pubDate>Mon, 20 Jul 2015 17:11:53 +0000</pubDate>
		<guid isPermaLink="false">http://studentprojects.in/?p=777#comment-119398</guid>

					<description><![CDATA[source code of optimal mst algorithm?]]></description>
			<content:encoded><![CDATA[<p>source code of optimal mst algorithm?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Lib		</title>
		<link>https://studentprojects.in/software-development/c-tutorials/c/c-program-for-optimal-page-replacement-algorithm/comment-page-1/#comment-9815</link>

		<dc:creator><![CDATA[Lib]]></dc:creator>
		<pubDate>Thu, 06 Jun 2013 07:13:51 +0000</pubDate>
		<guid isPermaLink="false">http://studentprojects.in/?p=777#comment-9815</guid>

					<description><![CDATA[Hello, can anyone give the C or C++ code for MRU page replacement algorithm? I couldn&#039;t find it anywhere. Please help]]></description>
			<content:encoded><![CDATA[<p>Hello, can anyone give the C or C++ code for MRU page replacement algorithm? I couldn&#8217;t find it anywhere. Please help</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: hemalatha		</title>
		<link>https://studentprojects.in/software-development/c-tutorials/c/c-program-for-optimal-page-replacement-algorithm/comment-page-1/#comment-9729</link>

		<dc:creator><![CDATA[hemalatha]]></dc:creator>
		<pubDate>Fri, 26 Apr 2013 15:55:38 +0000</pubDate>
		<guid isPermaLink="false">http://studentprojects.in/?p=777#comment-9729</guid>

					<description><![CDATA[thank q]]></description>
			<content:encoded><![CDATA[<p>thank q</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Ritesh		</title>
		<link>https://studentprojects.in/software-development/c-tutorials/c/c-program-for-optimal-page-replacement-algorithm/comment-page-1/#comment-9340</link>

		<dc:creator><![CDATA[Ritesh]]></dc:creator>
		<pubDate>Thu, 20 Dec 2012 17:21:35 +0000</pubDate>
		<guid isPermaLink="false">http://studentprojects.in/?p=777#comment-9340</guid>

					<description><![CDATA[increment pf in first if condition{if (flag1==0)}…
page fault is 6
thank you]]></description>
			<content:encoded><![CDATA[<p>increment pf in first if condition{if (flag1==0)}…<br />
page fault is 6<br />
thank you</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Ritesh		</title>
		<link>https://studentprojects.in/software-development/c-tutorials/c/c-program-for-optimal-page-replacement-algorithm/comment-page-1/#comment-9339</link>

		<dc:creator><![CDATA[Ritesh]]></dc:creator>
		<pubDate>Thu, 20 Dec 2012 17:19:49 +0000</pubDate>
		<guid isPermaLink="false">http://studentprojects.in/?p=777#comment-9339</guid>

					<description><![CDATA[no of page fault is wrong…..
u have to increment pf in first if condition{if (flag1==0)}…
then it will fine
the no of pf is 6…………
thank you…….]]></description>
			<content:encoded><![CDATA[<p>no of page fault is wrong…..<br />
u have to increment pf in first if condition{if (flag1==0)}…<br />
then it will fine<br />
the no of pf is 6…………<br />
thank you…….</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: vinod		</title>
		<link>https://studentprojects.in/software-development/c-tutorials/c/c-program-for-optimal-page-replacement-algorithm/comment-page-1/#comment-9147</link>

		<dc:creator><![CDATA[vinod]]></dc:creator>
		<pubDate>Sun, 04 Nov 2012 15:47:23 +0000</pubDate>
		<guid isPermaLink="false">http://studentprojects.in/?p=777#comment-9147</guid>

					<description><![CDATA[Mr.BiPiN
your code is not corrct
it&#039;s not working]]></description>
			<content:encoded><![CDATA[<p>Mr.BiPiN<br />
your code is not corrct<br />
it&#8217;s not working</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Yassine		</title>
		<link>https://studentprojects.in/software-development/c-tutorials/c/c-program-for-optimal-page-replacement-algorithm/comment-page-1/#comment-4307</link>

		<dc:creator><![CDATA[Yassine]]></dc:creator>
		<pubDate>Sat, 19 Feb 2011 11:27:34 +0000</pubDate>
		<guid isPermaLink="false">http://studentprojects.in/?p=777#comment-4307</guid>

					<description><![CDATA[Yes plz help us==&#062; guess some thing wrong !! Number of faults is not true even i 
tryed an other pages&#039;s refenerement but DOESn&#039;t mutch]]></description>
			<content:encoded><![CDATA[<p>Yes plz help us==&gt; guess some thing wrong !! Number of faults is not true even i<br />
tryed an other pages&#8217;s refenerement but DOESn&#8217;t mutch</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: ankit		</title>
		<link>https://studentprojects.in/software-development/c-tutorials/c/c-program-for-optimal-page-replacement-algorithm/comment-page-1/#comment-3610</link>

		<dc:creator><![CDATA[ankit]]></dc:creator>
		<pubDate>Thu, 18 Nov 2010 04:55:42 +0000</pubDate>
		<guid isPermaLink="false">http://studentprojects.in/?p=777#comment-3610</guid>

					<description><![CDATA[hii

hey in ths example number of page fault is 7 not 3......]]></description>
			<content:encoded><![CDATA[<p>hii</p>
<p>hey in ths example number of page fault is 7 not 3&#8230;&#8230;</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
