Skip to content

Commit 925ef55

Browse files
Create 9.c
1 parent 1befda8 commit 925ef55

File tree

1 file changed

+136
-0
lines changed

1 file changed

+136
-0
lines changed

9.c

+136
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
#include<stdio.h>
2+
#include<stdlib.h>
3+
void FIFO(char [],char [],int,int);
4+
void lru(char [],char [],int,int);
5+
int main()
6+
{
7+
int ch,YN=1,i,l,f;
8+
char F[10],s[25];
9+
printf("\n\n\t Enter the no of empty frames:");
10+
scanf("%d",&f);
11+
printf("\n\n\t Enter the length of the string:");
12+
scanf("%d",&l);
13+
printf("\n\n\t Enter the string:");
14+
scanf("%s",s);
15+
for(i=0;i<f;i++)
16+
F[i]=-1;
17+
do
18+
{
19+
printf("\n\n\t ***** MENU *****");
20+
printf("\n\n\t 1:FIFO\n\n\t2:LRU\n\n\t4:EXIT");
21+
printf("\n\n\t Enter your choice:");
22+
scanf("%d",&ch);
23+
switch(ch)
24+
{
25+
case 1:for(i=0;i<f;i++)
26+
F[i]=-1;
27+
FIFO(s,F,l,f);
28+
break;
29+
case 2:for(i=0;i<f;i++)
30+
F[i]=-1;
31+
lru(s,F,l,f);
32+
break;
33+
case 3:exit(0);
34+
}
35+
printf("\n\n\t Do u want to continue IF YES PRESS 1 \n\n\t IF NO PRESS 0\t");
36+
scanf("%d",&YN);
37+
}while(YN==1);
38+
return(0);
39+
}
40+
void FIFO(char s[],char F[],int l,int f)
41+
{
42+
int i,j=0,k,flag=0,cnt=0;
43+
printf("\n\t PAGE\t FRAMES \t FAULTS");
44+
for(i=0;i<l;i++)
45+
{
46+
for(k=0;k<f;k++)
47+
{
48+
if(F[k]==s[i])
49+
flag=1;
50+
}
51+
if(flag==0)
52+
{
53+
printf("\n\t%c\t",s[i]);
54+
F[j]=s[i];
55+
j++;
56+
for(k=0;k<f;k++)
57+
{
58+
printf("%c",F[k]);
59+
}
60+
printf("\t Page fault %d",cnt);
61+
cnt++;
62+
}
63+
else
64+
{
65+
flag=0;
66+
printf("\n\t%c\t",s[i]);
67+
for(k=0;k<f;k++)
68+
{
69+
printf("%c",F[k]);
70+
}
71+
printf("\t No page fault");
72+
}
73+
if(j==f)
74+
j=0;
75+
}
76+
}
77+
void lru(char s[],char F[],int l,int f)
78+
{
79+
int i,j=0,k,m,flag=0,cnt=0,top=0;
80+
printf("\n\t PAGE \t FRAMES \t FAULTS");
81+
for(i=0;i<l;i++)
82+
{
83+
for(k=0;k<f;k++)
84+
{
85+
if(F[k]==s[i])
86+
{
87+
flag=1;
88+
break;
89+
}
90+
}
91+
printf("\n\t%c\t",s[i]);
92+
if(j!=f && flag!=1)
93+
{
94+
F[top]=s[i];
95+
j++;
96+
if(j!=f)
97+
top++;
98+
}
99+
else
100+
{
101+
if(flag!=1)
102+
{
103+
for(k=0;k<top;k++)
104+
{
105+
F[k]=F[k+1];
106+
}
107+
F[top]=s[i];
108+
}
109+
if(flag==1)
110+
{
111+
for(m=k;m<top;m++)
112+
{
113+
F[m]=F[m+1];
114+
}
115+
if(j!=f)
116+
{
117+
F[top-1]=s[i];
118+
}
119+
else
120+
F[top]=s[i];
121+
}
122+
}
123+
for(k=0;k<f;k++)
124+
{
125+
printf("%c",F[k]);
126+
}
127+
if(flag==0)
128+
{
129+
printf("\t Page fault %d",cnt);
130+
cnt++;
131+
}
132+
else
133+
printf("\t No page fault");
134+
flag=0;
135+
}
136+
}

0 commit comments

Comments
 (0)