SJF算法:将一些作业按照服务时间升序排列,较短的作业先执行,这样可以保证较好的周转时间,但是同时,长作业可能会等待很长时间才会运行。
//main.cpp
#include "SJF.h"
int main()
{
std::vector<PCB> PCBList;
//输入作业信息
InputPCB(PCBList);
//SJF算法
SJF(PCBList);
//显示结果
show(PCBList);
return 0;
}
//SJF.h
#ifndef SJF_H_
#define SJF_H_
#include <iostream>
#include <algorithm>
#include <iomanip>
#include <vector>
//作业结构体
typedef struct PCB
{
int ID; //标识符
int ComeTime; //到达时间
int ServerTime; //服务时间
int FinishTime; //完成时间
int TurnoverTime; //周转时间
double WeightedTurnoverTime; //带权周转时间
}PCB;
/*
函数功能:输入作业信息
参数说明:
PCBList std::vector<PCB>& PCB链
*/
void InputPCB(std::vector<PCB> &PCBList);
/*
函数功能:SJF算法
参数说明:
PCBList std::vec