Professional Documents
Culture Documents
#include<stdio.h>
#include<conio.h>
void main()
{
int job[10],bt[10],wt[10],tat[10]={0},n,i,j,k,rt[10],q,timeunit=0;
float atat=0,awt=0;
clrscr();
printf("Enter no of jobs");
scanf("%d",&n);
printf("job\tburst time\n");
for(i=0;i<n;i++)
scanf("%d%d",&job[i],&bt[i]);
printf("\nEnter the time quantum");
scanf("%d",&q);
for(k=0;k<n;k++)
{
for(i=0;i<n;i++)
rt[i]=bt[i];
while(1)
{
for(i=0;i<n;i++)
{
if(rt[k]==0)
goto P;
else if(rt[i]>=q)
{
tat[k]+=q;
rt[i]-=q;
}
else if(rt[i]>0)
{
tat[k]+=rt[i];
rt[i]=0;
}
}
}
P:atat+=tat[k];
wt[k]=tat[k]-bt[k];
awt+=wt[k];
}
for(i=0;i<n;i++)
{
timeunit+=bt[i];
}
printf("\njob\tbt\twt\ttat\n");
for(i=0;i<n;i++)
printf("\n%d\t%d\t%d\t%d\t",job[i],bt[i],wt[i],tat[i]);
printf("\nAverage turn around time is %f",(float)atat/n);
printf("\nAverage waiting time is %f",(float)awt/n);
getch();
}
SJF
#include<stdio.h>
#include<conio.h>
void main()
{
int bt[5],wt=0,tat=0,n,i,job[5],ttat=0,twt=0,temp1,temp2,j;
float atat,awt;
clrscr();
printf("Enter no of jobs");
scanf("%d",&n);
printf("Enter Burst times");
for(i=0;i<n;i++)
scanf("%d",&bt[i]);
for(i=0;i<n;i++)
job[i]=i+1;
//printf("\njobs\tbt\ttat\ttwt\n");
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(bt[i]>bt[j])
{
temp1=bt[i];
bt[i]=bt[j];
bt[j]=temp1;
temp2=job[i];
job[i]=job[j];
job[j]=temp2;
}
}
}
printf("job\tbt\ttat\twt\n");
for(i=0;i<n;i++)
{
tat+=bt[i];
ttat+=tat;
printf("%d\t%d\t%d\t%d\n",job[i],bt[i],tat,wt);
twt+=wt;
wt=tat;
}
atat=(float)ttat/n;
awt=(float)twt/n;
printf("Average turn around time =%f\n",atat);
printf("Average waiting time =%f\n",awt);
getch();
}
FCFS
#include<stdio.h>
#include<conio.h>
void main()
{
int bt[5],wt=0,tat=0,n,i,job[5],ttat=0,twt=0;
float atat,awt;
clrscr();
printf("Enter no of jobs");
scanf("%d",&n);
printf("Enter Burst Times\n");
for(i=0;i<n;i++)
scanf("%d",&bt[i]);
for(i=0;i<n;i++)
job[i]=i+1;
printf("job\tbt\ttat\twt\n");
for(i=0;i<n;i++)
{
tat+=bt[i];
ttat+=tat;
printf("%d\t%d\t%d\t%d\n",job[i],bt[i],tat,wt);
twt+=wt;
wt=tat;
}
atat=(float)ttat/n;
awt=(float)twt/n;
printf("Average turn around time =%f\n",atat);
printf("Average waiting time =%f\n",awt);
getch();
}
PRIORITY
#include<stdio.h>
#include<conio.h>
main()
{
int bt[10],wt=0,tat=0,n,i,j,temp1,temp2,temp3,job[10],p[10];
float atat,awt;
int ttat=0,twt=0;
clrscr();
printf("\n enter number of jobs");
scanf("%d",&n);
printf("job \t bursttime\t prriority\n");
for(i=0;i<n;i++)
scanf("%d%d%d",&job[i],&bt[i],&p[i]);
printf("\n job \t bt\t wt\t tat\n");
for(i=0;i<n;i++)
{
for(j=i+1;j< n;j++)
{
if(p[i]>p[j])
{
temp1=p[i];
p[i]=p[j];
p[j]=temp1;
temp2=job[i];
job[i]=job[j];
job[j]=temp2;
temp3=bt[i];
bt[i]=bt[j];
bt[j]=temp3;
}
}
}
for(i=0;i<n;i++)
{
tat+=bt[i];
ttat+=tat;
printf("\n %d\t %d\t %d\t %d",job[i],bt[i],tat,wt);
twt+=wt;
wt=tat;
}
atat=(float)ttat/n;
awt=(float)twt/n;
printf("\n average turn around time:%f\n",atat);
printf("\n average waiting time:%f\n",awt);
getch();
}
MVT
#include<stdio.h>
int main()
{
int i,m,n,tot,s[20];
printf("enter the total memory size:");
scanf("%d",&tot);
printf("enter number of page:");
scanf("%d",&n);
printf("enter memory for os:");
scanf("%d ",&m);
for(i=0;i<n;i++)
{
printf("enter the size of page %d",i+1);
scanf("%d ",&s[i]);
}
tot=tot-m;
for(i=0;i<n;i++)
{
if(tot>=s[i])
{
printf("allocate page %d \n",i+1);
tot=tot-s[i];
}
else
printf("process p %d is blocked \n",i+1);
}
printf("total external fragmentation=%d\n",tot);
getch();
}
MFT
#include<stdio.h>
#include<conio.h>
void main()
{
int ms,i,ps[20],n,size,p[20],s,intr=0;
clrscr();
printf(" Enter Memory for size ");
scanf("%d",&ms);
printf("\n Enter Memory for OS ");
scanf("%d",&s);
ms-=s;
printf("\n Enter no of partitions to be divided ");
scanf("%d",&n);
size=ms/n;
for(i=0;i<n;i++)
{
printf("\n Enter process & process size ");
scanf("%d%d",&p[i],&ps[i]);
if(ps[i]<=size)
{
intr=intr+size-ps[i];
printf("\n Process % is allocated ",p[i]);
}
else
printf(" Process %d is Blocked ",p[i]);
}
printf(" Total fragmentation is %d ",intr);
getch();
}
SINGLE LEVEL DIRECTORY
//single level directory structure
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#define SX 150
#define SY 200
#define BL 30
#define BW 15
int n;
char a[10][10];
int cols[]={2,5,1,3,4,6,8,7,9};
void readfiles()
{
int i;
printf("\nEnter no. of directories:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Enter file name:");
scanf("%s",&a[i]);
}
}
void fillspace()
{
int x1,y1,i;
outtextxy(70,205,"Directory");
outtextxy(100,255,"Files");
for(i=0;i<n;i++)
{
setfillstyle(1,cols[i]);
x1=SX+(i%10)*40;
y1=SY+(i/10)*40;
bar(x1,y1,x1+BL,y1+BW);
outtextxy(x1+BL/4,y1+BW/4,a[i]);
line(x1+BL/2,y1+BW,x1+BL/2,y1+50);
circle(x1+BL/2,y1+60,7);
}
}
void main()
{
int gm,gd=DETECT;
initgraph(&gd,&gm,"c:\\tc\\bgi");
readfiles();
fillspace();
getch();
closegraph();
}
PAGING
#include<stdio.h>
#include<conio.h>
void main()
{
int i,arr[100],pagetable[20],val,pageno,offset,phymem,framesize;
int noframes;
clrscr();
printf("enter the physical memory:");
scanf("%d",&phymem);
for(i=1;i<=phymem;i++)
arr[i]=i;
printf("\nenter the size of the frame on page:");
scanf("%d",&framesize);
noframes=phymem/framesize;
printf("\nno of frames available are %d",noframes);
printf("\nenter \t frame\n");
for(i=1;i<=noframes;i++)
{
printf("\n%d\t\t",i);
scanf("\t\t\t%d",&pagetable[i]);
}
printf("\nenter the pageno:");
scanf("%d",&pageno);
printf("enter th offset");
scanf("%d",&offset);
val=(framesize*pagetable[pageno])+offset;
printf("\nthe physical address is %d",val);
getch();
}