OS
OS
OS
#include<stdio.h>
#include<conio.h>
main()
clrscr();
scanf("%d", &n);
for(i=0;i<n;i++)
scanf("%d", &bt[i]);
wt[0] = wtavg = 0;
for(i=1;i<n;i++)
for(i=0;i<n;i++)
INPUT
Enter the number of processes – 3 Enter Burst Time for Process 0 – 24 Enter Burst Time for Process 1
– 3 Enter Burst Time for Process 2 -- 3
OUTPUT
TIME
P0 24 0 24
P1 3 24 27
P2 3 27 30
#include<stdio.h>
#include<conio.h>
main()
tatavg;
clrscr();
scanf("%d", &n);
for(i=0;i<n;i++)
p[i]=i;
scanf("%d", &bt[i]);
for(i=0;i<n;i++)
for(k=i+1;k<n;k++)
if(bt[i]>bt[k])
temp=bt[i];
bt[i]=bt[k];
bt[k]=temp;
temp=p[i];
p[i]=p[k];
p[k]=temp;
wt[0] = wtavg = 0;
for(i=0;i<n;i++)
printf("\n\t P%d \t\t %d \t\t %d \t\t %d", p[i], bt[i], wt[i], tat[i]);
INPUT
OUTPUT
PROCESS BURST
TIME
WAITING
TIME
TURNARO
UND TIME
P3 3 0 3
P0 6 3 9
P2 7 9 16
P1 8 16 24
ROUND ROBIN
#include<stdio.h>
main()
int i,j,n,bu[10],wa[10],tat[10],t,ct[10],max;
float awt=0,att=0,temp=0;
clrscr();
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&bu[i]);
ct[i]=bu[i];
scanf("%d",&t);
max=bu[0];
for(i=1;i<n;i++)
if(max<bu[i])
max=bu[i];
for(j=0;j<(max/t)+1;j++)
for(i=0;i<n;i++)
if(bu[i]!=0)
if(bu[i]<=t) {
tat[i]=temp+bu[i];
temp=temp+bu[i];
bu[i]=0;
else {
bu[i]=bu[i]-t;
temp=temp+t;
for(i=0;i<n;i++){
wa[i]=tat[i]-
ct[i]; att+=tat[i];
awt+=wa[i];}
for(i=0;i<n;i++)
getch();}
INPUT:
OUTPUT:
1 24 6 30
2347
3 3 7 10
#include<stdio.h>
main()
tatavg;
clrscr();
scanf("%d",&n);
for(i=0;i<n;i++){
p[i] = i;
printf("Enter the Burst Time & Priority of Process %d --- ",i); scanf("%d
%d",&bt[i], &pri[i]);
for(i=0;i<n;i++)
for(k=i+1;k<n;k++)
temp=p[i];
p[i]=p[k];
p[k]=temp;
temp=bt[i];
bt[i]=bt[k];
bt[k]=temp;
temp=pri[i];
pri[i]=pri[k];
pri[k]=temp;
wtavg = wt[0] = 0;
for(i=1;i<n;i++)
{
TIME");
for(i=0;i<n;i++)
getch();}
#include<stdio.h>
void main() {
void display();
int i,j,page[12]={2,3,2,1,5,2,4,5,3,2,5,2};
int
flag1=0,flag2=0,pf=0,frsize=3,top=0;
clrscr();
for(i=0;i<3;i++) {
fr[i]=
-1;
for(j=0;j<12;j++) {
if(fr[i]==page[j]) {
if(flag1==0) {
for(i=0;i<frsize;i++) {
if(fr[i]==
-1)
if(flag2==0) {
fr[top]=page[j];
top++;
pf++;
if(top>=frsize)
top=0; }
display(); }
Page 31
getch();
void display()
int i; printf("\n");
for(i=0;i<3;i++)
printf("%d\t",fr[i]);}
OUTPUT:
2 -1 -1
2 3 -1
2 3 -1
231
531
521
524
524
324
324
354
352
#include<stdio.h>
#include<conio.h>
int fr[3];
void main()
void display();
int p[12]={2,3,2,1,5,2,4,5,3,2,5,2},i,j,fs[3];
int index,k,l,flag1=0,flag2=0,pf=0,frsize=3;
clrscr();
for(i=0;i<3;i++)
fr[i]=-1;
for(j=0;j<12;j++)
flag1=0,flag2=0;
for(i=0;i<3;i++)
if(fr[i]==p[j])
flag1=1;
flag2=1; break;
if(flag1==0)
Page 33
{
for(i=0;i<3;i++) {
if(fr[i]==
-1)
fr[i]=p[j]; flag2=1;
break; }}}
if(flag2==0) {
for(i=0;i<3;i++)
fs[i]=0;
for(k=j
-1,l=1;l<=frsize
-1;l++,k--
for(i=0;i<3;i++) {
if(fr[i]==p[k]) fs[i]=1;
}}
for(i=0;i<3;i++) {
if(fs[i]==0)
index=i; }
fr[index]=p[j];
pf++; }
display()
printf("
getch(); }
void display(); {
int i; printf("\n");
for(i=0;i<3;i++)
printf("\t%d",fr[i]);
OUTPUT:
2 -1 -1
2 3 -1
2 3 -1
231
251
251
254
254
354
352
352
352
No of page faults: 7
DEADLOCK AVOIDANCE
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
int alloc[10][10],max[10][10];
int avail[10],work[10],total[10];
int i,j,k,n,need[10][10];
int m;
int count=0,c=0;
char finish[10];
clrscr();
scanf("%d%d",&n,&m);
for(i=0;i<=n;i++)
finish[i]='n';
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&max[i][j]);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&alloc[i][j]);
printf("Resource vector:");
for(i=0;i<m;i++)
scanf("%d",&total[i]);
for(i=0;i<m;i++)
avail[i]=0; for(i=0;i<n;i++)
Page 57
for(j=0;j<m;j++)
avail[j]+=alloc[i][j];
for(i=0;i<m;i++)
work[i]=avail[i];
for(j=0;j<m;j++)
work[j]=total[j]-work[j];
for(i=0;i<n;i++)
for(j=0;j<m;j++)
need[i][j]=max[i][j]-alloc[i][j];
A:
for(i=0;i<n;i++)
c=0;
for(j=0;j<m;j++)
if((need[i][j]<=work[j])&&(finish[i]=='n'))
c++;
if(c==m)
for(k=0;k<m;k++)
work[k]+=alloc[i][k];
printf("%4d",work[k]);
printf("\n");
finish[i]='y';
count++;
if(count!=n)
goto A;
else
getch();
Page 58
OUTPUT
322
613
314
422
Enter the allocation matrix:
100
612
211
002
Resource vector:9 3 6
Process 2 executed?:y
are: 8 3 4
Process 3 executed?:y
are: 8 3 6
Process 4 executed?:y
Process 1 executed?:y
DEADLOCK PREVENTION
#include<stdio.h>
#include<conio.h>
void main()
char job[10][10];
int ind=1,i,j,q,n,t;
clrscr();
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s%d",&job[i],&time[i]);
scanf("%d",&avail);
for(i=0;i<n;i++)
temp[i]=time[i];
tem[i]=i;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(temp[i]>temp[j])
t=temp[i];
Page 61
temp[i]=temp[j];
temp[j]=t; t=tem[i];
tem[i]=tem[j];
tem[j]=t;
for(i=0;i<n;i++)
q=tem[i];
if(time[q]<=avail)
safe[ind]=tem[i];
avail=avail-tem[q];
printf("%s",job[safe[ind]]);
ind++;
else
for(i=1;i<ind; i++)
printf("%s %d\n",job[safe[i]],time[safe[i]]);
getch();}