用C语言写出关于采用非抢占式高优先权的优先级调度算法
时间: 2023-06-03 21:02:01 浏览: 90
好的,关于采用非抢占式高优先权的优先级调度算法的C语言实现,以下是一段参考代码:
```c
#include <stdio.h>
// 定义进程结构体
struct process {
int pid; // 进程ID
int priority; // 优先级
int burst_time; // 运行时间
};
void non_preemptive_priority_scheduling(struct process *procs, int n) {
int i, j;
struct process temp;
// 根据优先级对进程进行排序(从大到小)
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (procs[i].priority < procs[j].priority) {
temp = procs[i];
procs[i] = procs[j];
procs[j] = temp;
}
}
}
// 按顺序依次执行进程
printf("进程ID\t优先级\t运行时间\t\n");
for (i = 0; i < n; i++) {
printf("%d\t%d\t%d\t\n", procs[i].pid, procs[i].priority, procs[i].burst_time);
}
}
int main() {
int i, n;
struct process procs[100];
// 输入进程数量n及每个进程的信息
printf("请输入进程数量n:");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("请输入进程%d的ID, 优先级和运行时间:", i + 1);
scanf("%d %d %d", &procs[i].pid, &procs[i].priority, &procs[i].burst_time);
}
// 使用非抢占式高优先权算法进行进程调度
non_preemptive_priority_scheduling(procs, n);
return 0;
}
```
希望这段代码能够帮助你。