动态优先级算法

动态优先级算法

ID:35962024

大小:619.01 KB

页数:22页

时间:2019-04-28

动态优先级算法_第1页
动态优先级算法_第2页
动态优先级算法_第3页
动态优先级算法_第4页
动态优先级算法_第5页
资源描述:

《动态优先级算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《计算机操作系统》课程设计题目:13采用高响应比算法的进程调度程序班级:小组成员:指导教师:时间:2013.6.24—2013.7.30地点:7b3122013年6月21目录工作进度表2组员分工21.目的及意义32.课程设计任务及要求42.1设计任务42.2设计要求43.算法及数据结构53.1算法总体设计思想53.2动态优先级算法54.程序设计与实现104.1系统流程图104.2程序代码104.3实验结果185.结论206.收获、体会和建议21参考文献2121工作进度表时间完成工作完成人周一完成课程设计的需求分析周二编写代码测试代码周三编写代码测试代码周四编写代码测试代码周五完善

2、程序周六完成设计报告组员分工(组长)2011XXXX1、设计并编写界面部分代码; 2、将代码运行并调试;3、编写课程设计报告和心得体会;1、画算法的程序流程图;2、编写课程设计报告和心得体会;211.目的及意义本课程设计主要任务就是在多用户操作系统支持下建立多用户多级文件系统的设计。具体说来,主要是为了达到下述实验目的:(1)了解并掌握文件系统中用于管理所必须的数据结构。(2)了解并掌握主要的文件操作命令的实现方法。(3)通过课程实践掌握课程设计的方法和流程,并总结设计经验,提出更好的改进方法。212.课程设计任务及要求2.1设计任务在多道程序和多任务系统中,系统内同时处于就绪状

3、态的进程可能有若干个,且进程之间也存在着同步与互斥的关系,要求采用指定的调度策略,使系统中的进程有条不紊地工作,通过观察诸进程的运行过程,以巩固和加深处理机调度的概念2.2设计要求每一个进程有一个PCB,其内容可以根据具体情况设定。可以在界面设定的互斥资源(包括两种:输入设备与输出设备)的数目进程数、进入内存时间、要求服务时间可以在界面上进行设定进程之间存在一定的同步与互斥关系,可以通过界面进行设定,其表示方法如下:进程的服务时间由三段组成:I2C10O5(表示进程的服务时间由2个时间片的输入,10个时间片的计算,5个时间片的输出)进程间的同步关系用一个段表示:W2,表示该进程先

4、要等待P2进程执行结束后才可以运行因此,进程间的同步与互斥关系、服务时间可以统一用四段表示为:I2C10O5W2可以在运行中显示各进程的状态:就绪、阻塞、执行采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态以及相应的阻塞队列具有一定的数据容错性213.算法及数据结构3.1算法总体设计思想动态优先权是指在创建进程时所赋予的优先权,是可以随进程的推进或随其等待时间的增加而改变,以便获得更好的调度性能。例如,我们可以规定,在就绪队列中的进程,随其等待时间的增长,其优先权以速率a提高。若所有的进程都有相同的优先权初始值则显然是最先进入就绪队列的进程将因其动态优先权变得最

5、高而优先获得处理机,此即FCFS算法。若所有的就绪队列进程具有各不相同的优先权初始值,那么,对于优先权初始值低的进程,在等待足够的时间后,其优先权便可能升为最高从而获得处理机。而采用抢占式调度算法时,如果再规定当前进程的优先权以速率b下降,则可防止一个长作业长期地垄断处理机。3.2动态优先级算法3.2.1功能最高响应比优先法(HRRN)是对FCFS方式和SJF 方式的一种综合平衡。HRRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。  响应比R定义如下: R=(W+T)/T=1+W/T  其中T为该作业估计需要的执行时间,W为

6、作业在后备状态队列中的等待时间。  每当要进行作业调度时,系统计算每个作业的响应比,选择其中R最大者投入执行。这样,即使是长作业,随着它等待时间的增加,W/T也就随着增加,也就有机会获得调度执行。这种算法是介于FCFS和SJF 之间的一种折中算法。由于长作业也有机会投入运行,在同一时间内处理的作业数显然要少于SJF 法,从而采用HRRN 方式时其吞吐量将小于采用SJF 法时的吞吐量。另外,由于每次调度前要计算响应比,系统开销也要相应增加。3.2.2数据结构floatarrtime[];//作业到达时间floatinputtime[];////输入时间floatcputime[];

7、//CPU运行时间floatoutputtime[];//输出时间floatwaittime[];//等待时间21floatinstatime[];//开始运行时间floatcpustatime[];//CPU开始时间floatoutstatime[];//输出开始时间floatfintime[];//结束运行时间floatprio[];//优先权Stringstate[];//是否已经完成intarrival[];//是否到达intinputdone[];//是否输入完成int

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

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

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