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

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

ID:39250373

大小:452.00 KB

页数:13页

时间:2019-06-28

多级反馈队列调度算法的实现_第1页
多级反馈队列调度算法的实现_第2页
多级反馈队列调度算法的实现_第3页
多级反馈队列调度算法的实现_第4页
多级反馈队列调度算法的实现_第5页
资源描述:

《多级反馈队列调度算法的实现》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、学生实习报告课程名称_数据结构与数据处理应用训练题目名称多级反馈队列调度算法的实现学生学院计算机与计算科学专业班级学号学生姓名指导教师2012年2月16日多级反馈队列调度算法的实现..【摘要】多级反馈队列调度算法是操作系统中CPU处理机调度算法之一.该算法既能使高优先级的进程(任务)得到响应又能使短进程(任务)迅速完成。UNIX操作系统便采取这种算法.而本次试验就是试用C语言模拟某多级反馈队列调度算法。本次试验中前三级就绪队列采用时间片轮转法.时间片大小分别为2、4和8.最后一级就绪队列采用FIFO调度.将任务进入多级队列进行模拟.任务从优先级高的队列到优先级地的队列的顺序逐一进入.还用

2、了算法支持抢占式.最后完成模拟.得到各个任务先后完成的顺序.还有得到各个任务的响应时间、离开时间、周转时间。【关键词】队列优先级任务时间1内容与要求【内容】多级反馈队列调度算法是操作系统中CPU处理机调度算法之一.该算法既能使高优先级的进程(任务)得到响应又能使短进程(任务)迅速完成。UNIX操作系统便采取这种算法.本次试验就是试用C语言模拟某多级反馈队列调度算法.通过输入任务号、到达时间、运行时间.求出任务完成的先后顺序以及各个任务的响应时间、离开时间、周转时间。【要求】多级反馈队列调度算法描述:1、该调度算法设置四级就绪队列:前三级就绪队列采用时间片轮转法.时间片大小分别为2、4和8

3、;最后一级就绪队列采用FIFO调度。2、任务在进入待调度的队列等待时.首先进入优先级最高的队列等待。3、首先调度优先级高的队列中的任务。若高优先级中队列中已没有调度的任务.则调度次优先级队列中的任务.依次类推。4、对于同一个队列中的各个任务.按照队列指定调度方法调度。每次任务调度执行后.若没有完成任务.就被降到下一个低优先级队列中。5、在低优先级的队列中的任务在运行时.又有新到达的任务.CPU马上分配给新到达的任务。(注:与原来的题目不同.原题是在低优先级的队列中的任务在运行时.又有新到达的任务时.要在运行完这个时间片后.CPU马上分配给新到达的任务.而本题不需要在运行完这个时间片.即正

4、在进行的任务立刻停止.CPU马上分配给新到达的任务)6、为方便实现.时间以1为单位.用整数数据表示;且每个时间点.最多只有一个任务请求服务(即输入)。..2总体设计2.1算法总体思路:这是建立在一个时间轴上的.即时刻.一个一个时刻(时间点)进行。2.1.1主函数思路:先初始化所有队列.再输入任务个数.如果输入个数为0.则重新输入.然后输入各个任务的信息.即任务号、到达时间、运行时间.再当时刻到任务的到达时间时.就创建任务.然后运行任务.时刻自动加1.创建任务与运行任务进行循环.直到所有任务进行完或所有队列为空才跳出循环.最后清空所有队列。2.1.2功能函数思路:voidcreate(Li

5、nkQueue*x,Jobjob):使任务的已运行时间为0.再使任务进入第一个队列。voidfunction(LinkQueue*x,inttiming):四个队列从第一个到第四个.即从最高优先级开始.任务在4个队列中逐个进行.根据任务是否为第一次执行.求出响应时间.任务完成时.求出离开时间和周转时间输出信息.在前3个队列.如果任务刚完成一个就绪队列的时间片.就降低优先级.使任务进入下一个队列。2.2功能模块介绍:voidmain()函数功能:主函数voidInitQueue(LinkQueue&HQ):队列的初始化voidEnQueue(LinkQueue&HQ,ElemTypeite

6、m)函数功能:向队列中插入一个元素ElemTypeOutQueue(LinkQueue&HQ)函数功能:从队列中删除一个元素ElemType*PeekQueue(LinkQueue&HQ)函数功能:读取队首元素boolEmptyQueue(LinkQueue&HQ)函数功能:检查队列是否为空voidClearQueue(LinkQueue&HQ)函数功能:清除链队中的所有元素.使之变为空队voidcreate(LinkQueue*x,Jobjob)函数功能:创建任务。voidfunction(LinkQueue*x,inttiming)函数功能:任务运行。..2.3输入输出输入:任务号到

7、达时间运行时间输出:任务号响应时间离开时间周转时间、2.4文件介绍main.cpp:主函数的存放.功能函数的调用。queue.h:队列的各个基本功能函数.任务的创建函数与运行函数。3详细设计3.1存储结构描述structJob{intjobnum;//任务号intarrivetime;//到达时间intburst;//运行时间intretime;//响应时间intleavetime;//离开时间introundtime;//周转时间

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。