优先级调度算法,即给每个作业一个优先级,优先级越高越紧迫,应该先执行。
FCFS算法和SJF算法都可以看做一种特殊的PSA算法。
例如,在FCFS算法里,是将算法的到达时间当做优先级,先到达的优先级高。
在SJF算法里,将作业的服务时间看做优先级,服务时间短的优先级高。
//main.cpp
#include "PSA.h"
int main()
{
std::vector<PCB> PCBList;
//输入作业信息
InputPCB(PCBList);
//PSA算法
PSA(PCBList);
//显示结果
show(PCBList);
return 0;
}
//PSA.h
#ifndef PSA_H_
#define PSA_H_
#include <iostream>
#include <algorithm>
#include <iomanip>
#include <vector>
//作业结构体
typedef struct PCB
{
int ID; //标识符
int Level; //优先级
int ComeTime; //到达时间
int ServerTime; //服务时间
int FinishTime; //完成时间
int TurnoverTime; //周转时间
double WeightedTurnoverTime; //带权周转时间
}PCB;
/*
函数功能:输入作业信息
参数说明:
PCBList std::vector<PCB>&