操作系统课程设计进程调度模拟设计.doc
《操作系统课程设计进程调度模拟设计.doc》由会员分享,可在线阅读,更多相关《操作系统课程设计进程调度模拟设计.doc(13页珍藏版)》请在三一办公上搜索。
1、课程设计任务书 题 目: 进程调度模拟设计先来先服务、非强占式短进程优先算法 初始条件:1预备内容:阅读操作系统的处理机管理章节内容,对进程调度的功能以及进程调度算法有深入的理解。2实践准备:掌握一种计算机高级语言的使用。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1模拟进程调度,能够处理以下的情形: 能够选择不同的调度算法(要求中给出的调度算法); 能够输入进程的基本信息,如进程名、到达时间和运行时间等; 根据选择的调度算法显示进程调度队列; 根据选择的调度算法计算平均周转时间和平均带权周转时间。2设计报告内容应说明: 课程设计目的与功能; 需求分析,数
2、据结构或模块说明(功能与框图); 源程序的主要部分; 测试用例,运行结果与运行情况分析; 自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他方法(如果有,简要说明该方法);v)对实验题的评价和改进意见,请你推荐设计题目。时间安排:设计安排一周:周1、周2:完成程序分析及设计。周2、周3:完成程序调试及测试。周4、周5:验收、撰写课程设计报告。(注意事项:严禁抄袭,一旦发现,抄与被抄的一律按0分记)指导教师签名: 年 月 日系主任(或责任教师)签名
3、: 年 月 日目录课程设计目的与功能3实验目的3开发平台3需求分析,数据结构或模块说明3 问题描述.3 实验要求.3 功能描述.4程序框图.5源程序的主要部分6 结构体的创建.6 主函数.6 SJF调度算法的函数7 FCFS调度算法的函数.9测试用例,运行结果与运行情况分析10自我评价与总结11实验优点11实验不足11收货与体会12实验改进方面12参考文献12进程调度模拟设计先来先服务、非强占式短进程优先算法一、课程设计目的与功能1实验目的模拟进程调度,能够处理以下的情形: 能够选择不同的调度算法(要求中给出的调度算法); 能够输入进程的基本信息,如进程名、到达时间和运行时间等; 根据选择的调
4、度算法显示进程调度队列; 根据选择的调度算法计算平均周转时间和平均带权周转时间。2开发平台Visual C+ 6.0、Windows XP二、需求分析,数据结构或模块说明1.问题描述:设计程序模拟进程的先来先服务FCFS和短作业优先SJF调度过程。假设有n个进程分别在T1, ,Tn时刻到达系统,它们需要的服务时间分别为S1, ,Sn。分别采用先来先服务FCFS和短作业优先SJF进程调度算法进行调度,计算每个进程的完成时间,周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。2.实验要求:1)进程个数n;每个进程的到达时间T1, ,Tn和服务时间S1, ,Sn;选择算法1-
5、FCFS,2-SJF。2)要求采用先来先服务FCFS和短作业优先SJF分别调度进程运行,计算每个进程的周转时间,带权周转时间,并且计算所有进程的平均周转时间,带权平均周转时间;3)输出:要求模拟整个调度过程,输出每个时刻的进程运行状态,如“时刻3:进程B开始运行”等等;4)输出:要求输出计算出来的每个进程的周转时间,带权周转时间,所有进程的平均周转时间,带权平均周转时间。3.功能描述1)先来先服务(FCFS)调度算法 将用户作业和就绪进程按提交顺序或变为就绪状态的先后排成队列,并按照先来先服务的方式进行调度处理,是一种最普遍和最简单的方法。在没有特殊理由要优先调度某类作业或进程时,从处理的角度
6、来看,FCFS方式是一种最合适的方法,因为无论是追加还是取出一个队列元素在操作上都是最简单的。先来先服务(FCFS)调度算法直观看,该算法在一般意义下是公平的。即每个作业或进程都按照它们在队列中等待时间长短来决定它们是否有限享受服务。先来先服务(FCFS)调度算法不过对于那些执行时间较短的作业或进程来说,如果它们在某些执行时间很长的作业或进程之后到达,则它们将等待很长时间。 在实际操作系统中,尽管很少单独使用FCFS算法,但和其他一些算法配合起来,FCFS算法还是使用的相当多的。例如基于优先级的调度算法就是对具有同样优先级的作业或进程采用的FCFS方式。2)最短作业优先法(SJF) 在批处理为
7、主的系统中,如果采用FCFS的方式进程作业调度,虽然系统开销小,算法简单,但是,如果估计执行时间很多的作业实在那些长作业的后面到达系统的话,则必须等待长作业执行完成之后才有机会获得执行。这就造成不必要的等待和某种不公平。最短作业优先发(SJF)就是选择那些估计需要执行时间最短的作业投入执行,为他们创建进程和分配资源。最短作业优先法优势:直观上说,采用最短作业有限的调度方法,可使得系统在同一时间内处理的作业个数最多,从而吞吐量也就大于其他的调度方式。但是,对于一个不断有作业进入的批处理系统来说。最短作业优先法缺点:最短作业优先法有可能使得那些长作业永远得不到调度执行的机会。4.程序框图预定义FC
8、FS调度方法SJF调度方法主函数输出注释:预定义:包括程序结构体等,程序结构体设计到后面函数所用的作业号、提交时间、运行时间、开始时间、结束时间、周转时间、带权周转时间、执行顺序等内容FCFS调度方法:程序重要的组成函数,将输入的N个程序结构体用链表的方式重新排序,按照函数给定的计算方法,列出作业从新计算过的作业号、提交时间、运行时间、开始时间、结束时间、周转时间、带权周转时间、执行顺序等内容SJF调度方法:采用最短优先法,将输入的N个程序结构体用链表的方式重新排序,列出作业从新计算过的作业号、提交时间、运行时间、开始时间、结束时间、周转时间、带权周转时间、执行顺序等内容主函数:先进行输入操作
9、,将输入的pro结构体存储起来,再调用两个算法函数,将FCFS调度方法所列出的作业结构体和SJF调度方法所列出的结构体整合表示出来,最后方便输出。三、源程序的主要部分1、结构体的创建struct prodouble handtime;double asktime;double starttime;double endtime;double usetime;double right;int runorder;int num;pro *next;2、主函数 int main()pro p20;coutpronum;cout按时间先后顺序输入进程的提交时间和运行时间endl;for(int i=0;
10、ipronum;i+)pi.num=i+1; cout第i+1pi.handtimepi.asktime;while(pi.handtimepi-1.handtime)cout请从新输入第i+1pi.handtimepi.asktime; FCFS(p,pronum); SJF(p,pronum); return 0; /couthandtime asktimeendl;3、SJF调度算法的函数void SJF(pro p,int n)int i,order=1;pro *now=&p0;pro *temp,*nextrun;p0.starttime=p0.handtime;p0.endtim
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计 进程 调度 模拟 设计
链接地址:https://www.31ppt.com/p-4079669.html