#include <iostream>
#define N 10
using namespace std;
int iflinenull(int head,int tail); //判断队列是否为空
int writePCB(int id, int status, int priority,int runtime);//向pcb中填写数据
int deletepre(int x); //从就绪队列中删除
int insertpre(int x); //插入就绪队列
int showpre(); //打印就绪队列
int deletefree(int x); //从空闲队列中删除
int insertfree(int x); //插入空闲队列
int create(int x, int priority, int runtime); //创建进程
int sheduling(); //进程调度
int dosth(int x); //占用cpu执行任务
//空闲队列
struct free{
int fhead; //空闲队列头
int ftail; //空闲队列尾
}free01;
struct prepare{
int phead; //就绪队列头
int ptail; //就绪队列尾
}prepare01;
struct pcb
{
int id;
int status; //进程状态
int priority; //优先级 数字越小优先级越高
int runtime;//进程运行时间
int pre; //向前指
int next; //向后指
};
pcb line[10];
int running; //当前正在运行
int iflinenull(int head,int tail) {
//判断队列是否为空
if (head == -1 && tail == -1) return 1;
else return 0;
}
int showpre() {
int p = prepare01.phead; //正序显示就绪队列
cout << "就绪队列:";
while (p != prepare01.ptail) {
cout << p;
p = line[p].next;
}
cout << p << endl;
return 0;
}
int writePCB(int id, int status, int priority, int runtime) {
向pcb中填写数据
line[id].id = id;
操作系统进程调度模拟——优先级调度算法
最新推荐文章于 2024-05-07 20:42:35 发布