简单轮转法.cpp
来自「广东工业大学操作系统课程设计(全) 广东工业大学操作系统课程设计(全 )」· C++ 代码 · 共 39 行
CPP
39 行
#include<stdio.h>
/*定义一个pcb的结构体*/
struct pcb
{ char name; /*进程名*/
int time; /*进程执行时间*/
};
void main()
{ int n,i,j,flag=1;
struct pcb a[100]; /*最多可以有100个进程*/
printf("输入进程个数:");
scanf("%d",&n);
getchar();/*接收回车*/
for(i=0;i<n;i++)
{ printf("输入进程的名字:\n");
scanf("%c",&a[i].name); /*以字符接收进程名*/
getchar();/*接收回车*/
printf("输入占用的时间片:"); /*输入进程占用的时间片*/
scanf("%d",&a[i].time);
getchar();/*接收回车*/
}
i=0;
while(flag && n>0) /*若进程数为空,结束程序*/
{ if(a[i].time!=0) /*就绪队列是否为空*/
{ printf("%c",a[i].name); /*进程执行一次,打印出该进程*/
a[i].time--; /*使该进程占用的时间片减1*/
}
for(j=0;j<n;j++)
if(a[j].time) /*若进程所占用的时间片不为0,仍执行下一进程*/
{ flag=1;
break;
}
else /*若进程所占用的时间片为0,说明已经完成,跳过执行下一进程*/
flag=0;
i=(++i)%n; /*继续执行下一个进程,i+1*/
}
printf("\n");
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?