#include <stdio.h>
#include <stdlib.h>
#define True
1
#define False
0
#define Q
1
//定义 PCB 的数据结构
typedef struct pcb{
unsigned char pid; //进程 id 号
unsigned char startTime; //开始时间
unsigned char serviceTime; //服务时间
unsigned char runningTime; //表示在 cpu 上已经执行了多少时间,用于判断时间片到
期
unsigned char endTime; //结束时间
unsigned char needTime; //剩余时间(需要多少时间能完成)
}PCB;
//定义就绪队列的数据结构
typedef struct readyList{
PCB *p;
struct readyList *next;
}RL;
void init(PCB *p, unsigned char n);
void newProcessArrived(unsigned int clock,PCB *p, unsigned char n, RL *rl);
unsigned char isInterrupt(unsigned int clock,RL *cpu, RL *rl);
void insertIntoReadyList(RL *cpu, RL *rl);
RL * schedule(RL *rl);
void destroyProcess(RL *cpu);
void prt(RL *cpu, RL *rl);
void output(PCB *p, unsigned char n);
unsigned int clock = 0;
int main(){
PCB p[5];
int count = 0;
RL *rl = (RL *)malloc(sizeof(RL)); //初始化链表 rl 的头节点
RL *cpu = NULL; //指向当前正在 CPU 执
操作系统:进程调度实验(c语言)
最新推荐文章于 2023-01-04 21:16:46 发布
本文探讨了如何使用C语言进行操作系统级别的进程调度实验。通过深入理解进程调度的基本原理,结合C语言编程技术,实现了一个基本的进程调度算法。内容包括进程的状态转换、调度策略的实现以及上下文切换等关键步骤。
摘要由CSDN通过智能技术生成