资源简介

先来先服务算法,最短作业优先算法,最短剩余时间优先算法,响应比最高者优先算法,优先级调度算法,轮转调度算法,多级反馈队列调度 c/c++实现

资源截图

代码片段和文件信息

// SchedulingAlgorithm.cpp: 定义控制台应用程序的入口点。
//
#include 
#include 
#include 
#include 
#include 
using namespace std;

//时间片
int TIMER=1;

//事件类型
enum EventType { ARRIVAL_EVENT FINISH_EVENT TIMER_EVENT };
//任务结构
struct Job
{
string name;       //作业名
int arriveTime=0;      //作业到达时间
float needTime=0;        //作业所需运行时间
int priority=0;        //作业优先级,数字越小,优先级越高
Job(string name int at int nt int p) {
this->name = name;
needTime = nt;
arriveTime = at;
priority = p;
}
Job(){}
};
//事件链表结点
struct Event
{
EventType type= ARRIVAL_EVENT;            //事件类型
int jobBeginTime=0;          //作业开始时间
bool isFirstExe=true;           //判断是否第一次执行,用于记录作业开始时间
int happenTime=0;            //发生时刻
int remainTime=0;            //剩余运行时间
double hrr=0;                //最高响应比
Job job;                   //作业    
Event *next=NULL;               //事件指针
Event()
{
type = ARRIVAL_EVENT;
jobBeginTime = 0;
happenTime = 0;
remainTime = 0;
hrr = 0;
job = Job();
next = NULL;
isFirstExe = true;
}
Event(int ht int jbt Job j)
{
Event();
happenTime = ht;
jobBeginTime = jbt;
job = j;
remainTime = j.needTime;
}
};
//*******************************事件队列相关函数************************************
/* 作业复制函数 */
void CopyJob(Job *dest const Job *sour);

/* 抓取头结点之外的第一个事件
* 作为返回值返回 */
Event *FetchFirstEvent(Event *head);

/* 按作业名称删除第一个匹配项,
* 删除成功返回TRUE,不存在该节点返回FALSE
*/
bool DeleteByJobName(Event *head string jobName);

/* 删除事件队列 */
void DestroyQueue(Event *head);

//打印事件
void ShowEvent(Event* eventHeadEvent *e);

//事件初始化
void InitEvent(Event* &seventHead);
//*******************************进程调度相关函数************************************
/* 插入函数 */
void InsertByHappenTime(Event *head Event *e);
void InsertByHRR(Event *head Event *e);

void InsertByJobTime(Event* eventHeadlist &q Event *e);
void InsertByPriority(Event* eventHead list &q Event *e);
void InsertByRemainTime(Event*  eventHead list &q Event *e);
void InsertTail(Event*  eventHead list &head Event *e);

/* 排序函数 */
void SortByHRR(list &q int currentTime);

/* 调度函数 */
void FCFS(Event *eventHead);
void SJF(Event *eventHead);
void SRTF(Event *eventHead);
void HRRF(Event *eventHead);
void Priority(Event * eventHead);    //抢占式优先级调
void RR(Event *eventHead);      //时间片大小为1
void MFQ(Event *eventHead);

//作业复制
void CopyJob(Job *dest const Job *sour)
{
dest->name= sour->name;
dest->arriveTime = sour->arriveTime;
dest->needTime = sour->needTime;
dest->priority = sour->priority;
}



//抓取头结点之外的第一个事件
Event *FetchFirstEvent(Event *head)
{
return head->next;
}

bool DeleteByJobName(Event *head string jobName)
{
Event* cur = head;
if (cur->job.name == jobName)
{
head = cur->next;
return true;
}
while (cur->next)
{
if (cur->next->job.name == jobName)
{
cur->next

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-01-21 13:10  SchedulingAlgorithm\
     目录           0  2018-01-21 13:10  SchedulingAlgorithm\.vs\
     目录           0  2018-01-21 13:10  SchedulingAlgorithm\.vs\SchedulingAlgorithm\
     目录           0  2018-01-22 00:05  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\
     文件       41472  2018-01-22 00:05  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\.suo
     文件     5115904  2018-01-22 00:05  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\Browse.VC.db
     目录           0  2018-01-21 13:10  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\ipch\
     目录           0  2018-01-21 23:34  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\ipch\AutoPCH\
     目录           0  2018-01-21 13:10  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\ipch\AutoPCH\1bbc704d75c80605\
     文件     2949120  2018-01-20 18:14  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\ipch\AutoPCH\1bbc704d75c80605\SCHEDALGOS.ipch
     目录           0  2018-01-21 13:10  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\ipch\AutoPCH\3fea8d1db1cd53fc\
     文件    25624576  2018-01-21 13:06  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\ipch\AutoPCH\3fea8d1db1cd53fc\SCHEDULINGALGORITHM.ipch
     目录           0  2018-01-21 13:10  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\ipch\AutoPCH\8daaa8c35c21839\
     文件     2949120  2018-01-20 18:31  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\ipch\AutoPCH\8daaa8c35c21839\SCHEDALGOS.ipch
     目录           0  2018-01-21 13:10  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\ipch\AutoPCH\98f6b88ea3fbc7e6\
     文件     2949120  2018-01-20 18:26  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\ipch\AutoPCH\98f6b88ea3fbc7e6\SIMULATION_SJF.ipch
     目录           0  2018-01-21 23:34  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\ipch\AutoPCH\bfc810fa6751e0d4\
     文件    31588352  2018-01-21 23:34  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\ipch\AutoPCH\bfc810fa6751e0d4\SCHEDULINGALGORITHM.ipch
     目录           0  2018-01-21 13:11  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\ipch\AutoPCH\cc2e3244b16f535c\
     文件    31588352  2018-01-21 23:02  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\ipch\AutoPCH\cc2e3244b16f535c\SCHEDULINGALGORITHM.ipch
     目录           0  2018-01-21 13:10  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\ipch\AutoPCH\cde2ad304aa12b61\
     文件     2949120  2018-01-20 18:26  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\ipch\AutoPCH\cde2ad304aa12b61\SIMULATION_FCFS.ipch
     目录           0  2018-01-21 13:10  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\ipch\AutoPCH\fdf6b6ebe38c513f\
     文件    37289984  2018-01-20 18:31  SchedulingAlgorithm\.vs\SchedulingAlgorithm\v15\ipch\AutoPCH\fdf6b6ebe38c513f\MAIN.ipch
     目录           0  2018-01-21 22:29  SchedulingAlgorithm\Debug\
     文件      122368  2018-01-21 22:33  SchedulingAlgorithm\Debug\SchedulingAlgorithm.exe
     文件      635844  2018-01-21 22:33  SchedulingAlgorithm\Debug\SchedulingAlgorithm.ilk
     文件     1069056  2018-01-21 22:33  SchedulingAlgorithm\Debug\SchedulingAlgorithm.pdb
     目录           0  2018-01-21 23:02  SchedulingAlgorithm\SchedulingAlgorithm\
     目录           0  2018-01-21 22:33  SchedulingAlgorithm\SchedulingAlgorithm\Debug\
     目录           0  2018-01-21 22:33  SchedulingAlgorithm\SchedulingAlgorithm\Debug\Scheduli.4A1D0C84.tlog\
............此处省略15个文件信息

评论

共有 条评论