操作系统进程调度模拟——优先级调度算法

#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;
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值