C++实现操作系统调度算法(FSFS,SJF,RR,多级反馈队列算法)
#include<iostream>
#include<queue>
#include<list>
#include<windows.h>
using namespace std;
unsigned int q_id=0; //用于队列进程号的全局变量
unsigned int l_id=0; //用于链表进程号的全局变量
unsigned int stime=0; //系统时间,开始为0
struct Pro //调度进程的数据结构
{
unsigned int PID; //进程标志号
unsigned int starttime; // 开始执行时间
unsigned int endtime; //结束时间
unsigned int needtime; // 预计执行时间
unsigned int runtime; //已经运行时间
unsigned int count; //计数器
};
struct node
{
queue<Pro> qu; //队列
unsigned int priority; //队列优先级,当前进程在处于哪个优先级
unsigned int capacity; //时间片
};
class diaodu //调度类
{
public:
diaodu()
{
capacity=30; //初始化时间片为30
}
void create_q_pro(); //创建进程queue的函数
void create_l_pro(); //创建进程list的函数
void create_node(); //创建node队列
void Fcfs(); //先来先服务调度算法
void Sjf();