⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 roundrobin.c

📁 Round robin scheduler and a gannt chat for arrival time,burst time turn around time
💻 C
字号:
#include<stdio.h>
#include<conio.h>
struct process
{
int id,at,bt,st,ft,wt,tat,fturn,rbt;
}p[10],temp;
void main()
{
int i,j,k,n,time=0,count=1,c=1,time_sli;
//clrscr();
printf("Nter the process");
scanf("%d",&n);
printf("Nter the process id,at,bt \n");
for(i=0;i<n;i++)
{
scanf("%d %d %d",&p[i].id,&p[i].at,&p[i].bt);
p[i].fturn=0;
p[i].rbt=p[i].bt;
}
printf("Nter the time slice");
scanf("%d",&time_sli);
for(i=0;i<n;i++)
for(j=i;j<n-1;j++)
if(p[j].at>p[j+1].at)
{
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
printf("\n Process id \t time\n");
i=0;
k=n;
time=p[0].at;
while(n>0){
if(i==k)
i=0;
if(p[i].rbt!=0)
{
if(p[i].rbt<time_sli)
{
if(p[i].fturn==0)
p[i].st=time;
time=time+p[i].rbt;
p[i].rbt=0;
p[i].ft=time;
n--;
printf("%d \t \t %d\n",p[i].id,time);
}
else
{
if(p[i].fturn==0)
{
p[i].fturn=1;
p[i].st=time;
}
p[i].rbt=p[i].rbt-time_sli;
time=time+time_sli;
if(p[i].rbt==0)
{
p[i].ft=time;
n--;
}
printf("%d \t \t %d\n ",p[i].id,time);
if(time<p[i+1].at)
{
for(j=0;j<=i;j++)
{
if(p[i].rbt!=0)
{
if(p[j].rbt<time_sli)
{
time=time+p[j].rbt;
p[j].rbt=0;
p[j].ft=time;
n--;
printf("%d \t \t%d\n",p[j].id,time);
}
else
{
p[i].rbt=p[i].rbt-time_sli;
if(p[j].rbt==0)
{
p[j].ft=time;
n--;
}
printf("%d \t\t%d\n",p[j].id,time);
}}}
}}}
i++;
}
printf("\n id\t at \tbt \tst\tft\twt\ttat\n");
printf("...........................\n");
for(i=0;i<k;i++)
{
p[i].tat=p[i].ft-p[i].at;
p[i].wt=p[i].ft-p[i].bt-p[i].at;
printf("%d \t%d\t%d\t%d\t%d\t%d\t%d\n",p[i].id,p[i].at,p[i].bt,p[i].st,p[i].ft,p[i].wt,p[i].tat);}
getch();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -