ss

 avatar
unknown
plain_text
a year ago
1.3 kB
4
Indexable
#include<stdio.h>
int q[100];
int f=-1;int r=-1;
void insert(int n)
{
	if(f==-1)
	f=0;
	r=r+1;
	q[r]=n;
}
int delete()
{
	int n;
	n=q[f];
	f=f+1;
	return n;
}
void main()
{
	int p,tq,n,i,t=0;
	float twt=0,ttat=0;
	printf("\nEnter how many processes: ");
	scanf("%d",&n);
	int a[n][5],bt[10],exist[10]={0};
	printf("\nEnter arrival time & burst time of each process:");
	for(i=0;i<n;i++)
	{
		printf("\nProcess ID: ");
		scanf("%d",&a[i][0]);
		printf("\nA.T of process %d: ",a[i][0]);
		scanf("%d",&a[i][1]);
		printf("\nB.T of process %d: ",a[i][0]);
		scanf("%d",&a[i][2]);
		bt[i]=a[i][2];
	}
	printf("\nEnter time quantum: ");
	scanf("%d",&tq);
	insert(0);
	exist[0]=1;
	while(f<=r)
	{
		p=delete();
		if(a[p][2]>=tq)
		{
			a[p][2]-=tq;
			t+=tq;
		}
		else
		{
			t+=a[p][2];
			a[p][2]=0;
		}
		for(i=0;i<n;i++)
		{
			if(exist[i]==0&&a[i][1]<=t)
			{
				insert(i);
				exist[i]=1;
			}
		}
		if(a[p][2]==0)
		{
			a[p][4]=t-a[p][1];
			a[p][3]=a[p][4]-bt[p];
			ttat+=a[p][4];
			twt+=a[p][3];
		}
		else
		{
			insert(p);
		}
	}
	printf("\nP.No.\tAT\tBT\tTAT\tWT");
	for(i=0;i<n;i++)
	{
		printf("\n%d\t%d\t%d\t%d\t%d",a[i][0],a[i][1],bt[i],a[i][4],a[i][3]);
	}
	printf("\nAverage Turnaround time = %f",ttat / n);
	printf("\nAverage Waiting time = %f",twt / n);
}
Editor is loading...
Leave a Comment