资源简介
先来先服务算法,最短作业优先算法,最短剩余时间优先算法,响应比最高者优先算法,优先级调度算法,轮转调度算法,多级反馈队列调度 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个文件信息
相关资源
- 模拟操作系统的实现 C语言
- 操作系统实验可视化界面
- 操作系统概念:进程调度算法FCFS、
- STemWin无操作系统移植-(STM32)
- 《从0到1教你写uCOS-III》pdf 图文教程(
- 计算机操作系统(修订版)ppt课件[汤
- 操作系统概论(2018版)
- 操作系统进程调度先来先服务、短进
- 操作系统实验多线程同步含C++源代码
- 华中科技大学操作系统实验报告.doc
- 操作系统实现作业调度实验MFC源程序
- 自己动手写操作系统PDF上 于渊 70M 超
- 《Linux操作系统》实验报告
- ARM Cortex-M0 全可编程SoC原理及实现 面
- 死锁的避免与检测(操作系统课设)
- 操作系统用位示图管理磁盘的空间的
- 操作系统课程设计 实现段页式存储管
- c++模拟磁盘调度算法FCFS;SSTF;SCAN;
- TN05.ELF.Format.Summary.pdf(ELF文件格式分
- wanlix mindows操作系统源码
- c++页面置换算法模拟程序-
- 文件管理系统C++
- 操作系统进程调度模拟算法
- 操作系统实验二存储管理动态分区分
- 操作系统磁盘调度算法实现
- C语言实现操作系统中生产者消费者
- 动态内存分配模拟.cpp
- 操作系统 短进程调度算法 c语言文档
- 操作系统课程设计SPOOLING技术C语言版
- 北京林业大学操作系统B实验
评论
共有 条评论