优化struct PCB { int pid;//进程标识符 int rr;//已运行时间 int time;//进程要求运行时间 char sta;//进程的状态 struct PCB *next;//链接指针 }; struct PCB pcb1,pcb2,pcb3,pcb4,pcb5,*tail,*head,*rp;
时间: 2024-03-25 14:40:25 浏览: 155
操作系统实验一报告【使用C语言/C++实现时间片轮转调度算法】
可以使用数组来存储 `PCB` 结构体,同时使用循环来遍历数组,这样可以减少代码量,增加可读性。代码实现如下:
```
#define MAX_PROCESS_NUM 5 // 最大进程数
struct PCB {
int pid; // 进程标识符
int rr; // 已运行时间
int time; // 进程要求运行时间
char sta; // 进程的状态
struct PCB *next; // 链接指针
};
struct PCB pcb[MAX_PROCESS_NUM]; // 存储 PCB 的数组
// 初始化 PCB 数组
for (int i = 0; i < MAX_PROCESS_NUM; i++) {
pcb[i].pid = i + 1;
pcb[i].rr = 0;
pcb[i].time = 0;
pcb[i].sta = 'W';
pcb[i].next = NULL;
}
tail = &pcb[MAX_PROCESS_NUM - 1];
head = &pcb[0];
rp = head;
```
这样,我们就可以使用循环遍历 `pcb` 数组,而不是单独声明 `pcb1`、`pcb2`、`pcb3` 等变量,使得代码更加简洁易读。同时,如果需要增加 `PCB` 结构体的数量,只需要修改 `MAX_PROCESS_NUM` 宏定义即可,无需修改大量的变量名和代码。
阅读全文