多级反馈队列调度算法的实现

new__moon 2012-02-13 02:34:53
【问题描述】
多级反馈队列调度算法是操作系统中CPU处理机调度算法之一,该算法既能使高优先级的进程(任务)得到响应又能使短进程(任务)迅速完成。UNIX操作系统便采取这种算法。试用C语言模拟某多级反馈队列调度算法。
【具体要求】
多级反馈队列调度算法描述:
1、该调度算法设置四级就绪队列:前三级就绪队列采用时间片轮转法,时间片大小分别为2、4和8;最后一级就绪队列采用FIFO调度。
2、任务在进入待调度的队列等待时,首先进入优先级最高的队列等待。
3、首先调度优先级高的队列中的任务。若高优先级中队列中已没有调度的任务,则调度次优先级队列中的任务,依次类推。
4、对于同一个队列中的各个任务,按照队列指定调度方法调度。每次任务调度执行后,若没有完成任务,就被降到下一个低优先级队列中。
5、在低优先级的队列中的任务在运行时,又有新到达的任务,那么在运行完这个时间片后,CPU马上分配给新到达的任务,即算法支持抢占式。
6、为方便实现,时间以1为单位,用整数数据表示;且每个时间点,最多只有一个任务请求服务(即输入)。
【实现提示】
实现一个队列数组(queue array),该数组的每个元素都代表一个长度可变的队列,队列中的每个元素则代表一个任务job,任务结构定义如下:
typedef struct Job {
int JobNum; //任务号
int ArriveTime; //到达时间
int Burst; //运行时间
struct Job *next;
}
【测试数据】
输入:任务号 到达时间 运行时间
输出:任务号 响应时间 离开时间 周转时间
具体数据自己设计,但报告上要求写出多批数据测试结果。
【选做内容】
可以考虑对各个任务赋予不同的优先级(通过输入确定),首先按优先级将各个任务放入四级队列中的某一个队列,然后按上述调度法调度。还可以考虑一个时间点可能有多个任务同时请求服务(即输入)。大家可以充分发挥自己的想象力,增加你的系统功能。


请发到邮箱里。因为很多人在找这个。谢谢了
邮箱:madeinzhejiang@qq.com
...全文
4470 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lj1031 2012-02-13
  • 打赏
  • 举报
回复
j2ee中的webserver是什么?
那些sql code是不是都是在sqlserver里面写的啊
W170532934 2012-02-13
  • 打赏
  • 举报
回复
我觉得你还是自己先做,然后把你做的贴出来,很多人会帮你的。而不是你现在这样子,直接叫人家做,没有多少人愿意做的哦
new__moon 2012-02-13
  • 打赏
  • 举报
回复
来个大仙帮帮忙吧。网上找了些要么不符合要求,要么做的太超前了。
W170532934 2012-02-13
  • 打赏
  • 举报
回复
作业贴。。。
skyworth98 2012-02-13
  • 打赏
  • 举报
回复
又是作业贴

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧