Skip to content

Commit d2e20e3

Browse files
Add files via upload
1 parent f980493 commit d2e20e3

File tree

3 files changed

+159
-0
lines changed

3 files changed

+159
-0
lines changed

Cycle-9/fifo.c

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#include<stdio.h>
2+
int main(){
3+
int nf,np,frames[10],pages[30],count=0,fault=0,i,j,k;
4+
printf("no of frames : ");
5+
scanf("%d",&nf);
6+
printf("no of pages : ");
7+
scanf("%d",&np);
8+
printf("Pages : ");
9+
10+
for(i=0;i<np;i++)
11+
scanf("%d",&pages[i]);
12+
for(i=0;i<nf;i++)
13+
frames[i]=-1;
14+
15+
for(i=0;i<np;i++){
16+
for(j=0;j<nf;j++){
17+
if(frames[j]==pages[i])
18+
break;
19+
}
20+
if(j==nf){
21+
frames[count++]=pages[i];
22+
fault++;
23+
}
24+
for(k=0;k<nf;k++){
25+
printf("%d\t",frames[k]);
26+
}
27+
if(j==nf)
28+
printf("Fault no: %d\n",fault);
29+
if(count==nf)
30+
count=0;
31+
32+
printf("\n");
33+
}
34+
35+
printf("fault=%d",fault);
36+
return 0;
37+
}

Cycle-9/lfu.c

+72
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
#include<stdio.h>
2+
int main(){
3+
int nf,np,flag1,flag2,flag3,frames[10],pages[30],temp[30],pos,max,fault=0,i,j,k;
4+
printf("no of frames : ");
5+
scanf("%d",&nf);
6+
printf("no of pages : ");
7+
scanf("%d",&np);
8+
printf("Pages : ");
9+
for(i=0;i<np;++i){
10+
scanf("%d",&pages[i]);
11+
}
12+
for(i=0;i<nf;++i){
13+
frames[i]=-1;
14+
}
15+
for(i=0;i<np;++i){
16+
flag1=flag2=0;
17+
for(j=0;j<nf;++j){
18+
if(frames[j]==pages[i]){
19+
flag1=flag2=1;
20+
break;
21+
}
22+
}
23+
if(flag1==0){
24+
for(j=0;j<nf;++j){
25+
if(frames[j]==-1){
26+
fault++;
27+
frames[j]=pages[i];
28+
flag2=1;
29+
break;
30+
}
31+
}
32+
}
33+
if(flag2==0){
34+
flag3=0;
35+
for(j=0;j<nf;++j){
36+
temp[j]=-1;
37+
for(k=i+1;k<np;++k){
38+
if(frames[j]==pages[k]){
39+
temp[j]=k;
40+
break;
41+
}
42+
}
43+
}
44+
for(j=0;j<nf;++j){
45+
if(temp[j]==-1){
46+
pos=j;
47+
flag3=1;
48+
break;
49+
}
50+
}
51+
if(flag3==0){
52+
pos=0;
53+
max=temp[0];
54+
for(j=1;j<nf;++j){
55+
if(temp[j]>max){
56+
max=temp[j];
57+
pos=j;
58+
}
59+
}
60+
}
61+
frames[pos]=pages[i];
62+
fault++;
63+
}
64+
printf("\n");
65+
for(j=0;j<nf;++j){
66+
printf("%d\t",frames[j]);
67+
}
68+
}
69+
70+
printf("fault=%d",fault);
71+
return 0;
72+
}

Cycle-9/lru.c

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#include<stdio.h>
2+
int main(){
3+
int nf,np,pages[100],frames[10],count[10],flag,min,next=0,i,j,k,fault=0;
4+
printf("No of frames: ");
5+
scanf("%d",&nf);
6+
printf("No of pages: ");
7+
scanf("%d",&np);
8+
for(i=0;i<np;i++){
9+
scanf("%d",&pages[i]);
10+
}
11+
for(i=0;i<nf;i++){
12+
count[i]=0;
13+
frames[i]=-1;
14+
}
15+
for(i=0;i<np;i++){
16+
flag=0;
17+
for(j=0;j<nf;j++){
18+
if(frames[j]==pages[i]){
19+
flag=1;
20+
count[j]=next;
21+
next++;
22+
}
23+
}
24+
if(flag==0){
25+
if(i<nf){
26+
frames[i]=pages[i];
27+
count[i]=next;
28+
next++;
29+
}
30+
else{
31+
min=0;
32+
for(j=1;j<nf;j++)
33+
if(count[min]>count[j])
34+
min=j;
35+
frames[min]=pages[i];
36+
count[min]=next;
37+
next++;
38+
}
39+
fault++;
40+
}
41+
for(j=0;j<nf;j++){
42+
printf("%d\t",frames[j]);
43+
}
44+
if(flag==0)
45+
printf("pf no: %d",fault);
46+
printf("\n");
47+
}
48+
printf("page fault: %d",fault);
49+
return 0;
50+
}

0 commit comments

Comments
 (0)