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

📄 简单轮转法.cpp

📁 广东工业大学操作系统课程设计(全) 广东工业大学操作系统课程设计(全 )
💻 CPP
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -