欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    优先级法、非强占式短进程优先算法.doc

    • 资源ID:34431143       资源大小:88.50KB        全文页数:10页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    优先级法、非强占式短进程优先算法.doc

    如有侵权,请联系网站删除,仅供学习与交流优先级法、非强占式短进程优先算法学 号: 课 程 设 计题 目进程调度模拟设计优先级法、非强占式短进程优先算法学 院计算机专 业班 级姓 名指导教师 吴利军2013年1月16日课程设计任务书学生姓名: 指导教师: 吴利军 工作单位: 计算机科学与技术学院 题 目: 进程调度模拟设计优先级法、非强占式短进程优先算法初始条件:1预备内容:阅读操作系统的处理机管理章节内容,对进程调度的功能以及进程调度算法有深入的理解。2实践准备:掌握一种计算机高级语言的使用。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1模拟进程调度,能够处理以下的情形: 能够选择不同的调度算法(要求中给出的调度算法); 能够输入进程的基本信息,如进程名、优先级、到达时间和运行时间等; 根据选择的调度算法显示进程调度队列; 根据选择的调度算法计算平均周转时间和平均带权周转时间。2设计报告内容应说明: 需求分析; 功能设计(数据结构及模块说明); 开发平台及源程序的主要部分; 测试用例,运行结果与运行情况分析; 自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他方法(如果有,简要说明该方法);时间安排:设计安排一周:周1、周2:完成程序分析及设计。周2、周3:完成程序调试及测试。周4、周5:验收、撰写课程设计报告。(注意事项:严禁抄袭,一旦发现,一律按0分记)指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日 进程调度模拟设计 -优先级法、非强占式短进程优先算法一问题描述 设计一程序模拟进程调度,能够选择优先级和非抢占短作业两种算法对进程调度。可以输入相关进程信息(进程名,达到时间,执行时间,优先级),最终能显示进程调度的序列。并能显示这些进程的平均周转时间和带权平均周转时间。二需求分析 通过设计一个模拟进程调度的系统,来实现进程调度,对进程调度的功能以及进程调度算法有一个更加深入的理解。 进程PCB(包含进程名、到达时间、预计运行时间) 调度算法(优先级、非强占式短进程优先) 模拟进程调度,能够处理以下的情形: 能够选择不同的调度算法(要求中给出的调度算法); 能够输入进程的基本信息,如进程名、到达时间和运行时间等; 根据选择的调度算法显示进程调度队列; 根据选择的调度算法计算平均周转时间和平均带权周转时间。 此次做的进程调度模拟系统,用户可以输入各进程信息(包含进程名、到达时间、运行时间)。输入进程数,然后输入进程的提交时间和运行时间,显示优先级和非强占式短进程优先调度算法的进程名、提交时间、运行时间、开始时间、结束时间、周转时间、带权周转时间、执行时间、平均周转时间和平均带权周转时间。 优先级法: 优先级法可被用做作业或进程的调度策略。首先,系统或用户按某种原则为作业或进程指定一个优先级来表示该进程或作业所享有的优先权。改算法的核心是确定进程或作业的优先级。 确定优先级的方法可分为两类。即静态法和动态法。 静态法根据作业的或进程的静态特性,在作业或进程开始执行前就确定它们的优先级,一旦开始执行之后就不能改变。动态法则不然,它把作业或进程的静态特性结合起来确定作业或进程的优先级,随着作业或进程的执行过程,其优先级不断变化。 非抢占短作业优先法: 不可抢占式 Non-preemptive(非剥夺式):某一进程被调度运行后,除非由于它自身的原因不能运行,否则一直运行下去。 短作业优先调度算法(SJF, Shortest Job First),又称为“短进程优先”SPN(Shortest Process Next);这是对FCFS算法的改进,其目标是减少平均周转时间。基本思想:对预计执行时间短的作业(进程)优先处理。通常后来的短作业不抢先正在执行的作业。在一般情况下这种调度算法比先来先服务调度算法的效率要高一些。实现相对先来先服务调度算法要困难些,如果作业的到来顺序及运行时间不合适,会出现饿死现象,例如,系统中有一个运行时间很长的作业J,和几个运行时间小的作业,然后,不断地有运行时间小于J的作业的到来,这样,作业J就得不可调度而饿死。另外,作业运行的估计时间也有问题。三功能设计 1.数据结构 在此次课程设计中主要采用了结构体数组的存储方式,将一个进程信息存储在一个结构体中,包括进程名称、进程优先级、进程提交时间、进程运行时间、进程周转时间。具体实现如下:struct PROchar name10;/进程名float arrivetime;进程时间float servicetime;/进程执行时间float starttime;/开始时间float finishtime;/完成时间int xy; /优先级float zztime;/周转时间float dqzztime;/带权周转时间 2.程序流程框图 优先级 非抢占式短作业优先 综合流程图 3.模块说明 本次课程设计中一共涉及五个模块(结构体定义,要处理进程信息的输入,两种算法的实现,处理完毕后进程信息的输出,主函数) (1)结构体定义如上所示 (2)进程信息的输入 void input(PRO *p,int n) P为结构体数组名,n为进程个数。 (3)两种算法的实现 优先级算法的具体实现 void YX(PRO *p,int N)float arrivetime=0,servicetime=0,starttime=0,finishtime=0,zztime=0;float dqzztime;int xy=0;sortxy(p,N);/基于时间的排序同时处理多个进程同时到达情况。 for(int m=0;m<N-1;m+) if(m=0) pm.finishtime=pm.arrivetime+pm.servicetime; else pm.finishtime=pm-1.finishtime+pm.servicetime; int i=0; for(int n=m+1;n<=N-1;n+) if(pn.arrivetime<=pm.finishtime) i+;float min=pm+1.xy; int next=m+1;/m+1=n for(int k=m+1;k<m+i;k+) if(pk+1.xy<min) min=pk+1.xy; next=k+1; PRO temp; temp=pm+1; pm+1=pnext; pnext=temp; /令优先级高的执行deal(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N,xy); /将排好序的进程处理计算出其周转时间和带权周转时间 print(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N,xy); /输出处理完毕后进程信息 非抢占式短作业优先 void SJF(PRO *p,int N)float arrivetime=0,servicetime=0,starttime=0,finishtime=0,zztime=0;float dqzztime=0;int xy=0; sortt(p,N);/按到达时间进行排序 printf(p0.name); for(int m=0;m<N-1;m+) if(m=0) pm.finishtime=pm.arrivetime+pm.servicetime; else pm.finishtime=pm-1.finishtime+pm.servicetime; int i=0; for(int n=m+1;n<=N-1;n+) if(pn.arrivetime<=pm.finishtime) i+; /得出在第m+1个进程执行完之前有多少个进程需要进行比较float min=pm+1.servicetime; int next=m+1;/m+1=n for(int k=m+1;k<m+i;k+) if(pk+1.servicetime<min) min=pk+1.servicetime; next=k+1; PRO temp; temp=pm+1; pm+1=pnext; pnext=temp; /将执行时间最短的进程放在数组最前面 deal(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N,xy); /将排好序的进程处理计算出其周转时间和带权周转时间 print(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N,xy); /输出处理完毕后进程信息 (4)处理完进程信息的输出 void print(PRO *p,float arrivetime,float servicetime,float starttime,float finishtime,float zztime,float dqzztime,int N,int xy) (5)主函数 主要设计一个菜单功能。四开发平台及源代码主要部分 1.开发平台 Visual Stdio 2010 2.源代码主要部分五测试用例,运行结果与运行情况分析 1.测试优先级进程在同一时刻到达进程名进程到达时间进程执行时间进程优先级a023b042c071可以得出当进程同时到达时,按优先级顺序执行。当进程不是同时到达,且优先级高的到的比较晚。进程名进程到达时间进程执行时间优先级a033b142c651从这个实例可以得出尽管c的优先级最高,但它最后到达,所以在c之前会执行已到达的进程。当进程不是全部同时到达,但有部分同时到达。进程名进程到达时间进程执行时间优先级a122b063c171尽管b的优先级最低,但其最先到达,所以最先执行,由于a,c进程,c进程的优先级高,所以c先执行。2.测试非抢占短作业优先 当进程同时到达进程名进程到达时间进程处理时间优先级a051b012c023由于同时到达,那个进程执行时间短就先执行。 当进程全部不是同时到达进程名进程到达时间进程执行时间优先级a321b462c913尽管c的执行时间最短,但因为其最后到达,之前cpu空闲,所以就先执行完前面到达的进程。 当进程不是全部同时到达,但存在部分同时到达。进程名进程到达时间进程执行时间优先级a131b122c463当有同时到达的进程时,按照其执行时间排序,让执行时间短的进程先执行。六自我评价与总结1.本系统的特点 本系统是在数据结构上采用了结构体数组,这样使得进程的信息显得简单,明了,从而也为系统的设计降低了难度。再者本系统在设计的过程中,各个模块结构清晰,功能明确。在很多地方实现了代码重用,从而减少了代码的长度。并且本系统考虑到了诸多情况,相对比较完善。2.本系统的缺点 由于本系统采用的是结构体数组,进程的信息全部存与p这个数组中,导致输入的信息最大不能超过p这个数组的初始长度。由于进程的时间一般涉及的都是毫秒级或者更小的单位,所以本系统中时间采用的是逻辑上的时间。当没有进程执行时,CPU怎么利用没有考虑。3.经验与小结通过本次课程设计使我对进程调度的算法在实践中有重新学习了一遍,从而理解的也就更深刻。从而也就对各个算法的优缺点有了更直观的认识。在测试用例中可以看到短进程优先法在处理时间问题上有很大的意义,可以有效地缩短平均周转时间以及平均带权周转时间,而优先级法却可以让某些重要的进程优先执行,两种方法各有所长。在本次设计中,发现小错误不断,耽误了不少时间。比如比较运算符和算术运算符弄混,中英文输入格式不对等等;这写错误的改正需要我们养成良好的编程习惯。通过本次课程设计也使我体会到了我们应该怎样解决问题。首先应该分析问题,应从哪里着手去解决问题,而不是一拿到问题就去写代码。只要分析正确,就可以使我们在后面的实现过程中事半功倍。总而言之,我们对操作系统的理解和认识还很肤浅,还需要进一步加大努力。4.其他方法 对于本系统我们可以尝试采用链表的方法,这样就可以不限制进程的个数。本科生课程设计成绩评定表序号评分项目满分实得分1学习态度认真、遵守纪律102设计分析合理性103设计方案正确性、可行性、创造性204设计结果正确性405设计报告的规范性106设计验收10总得分/等级评语:注:最终成绩以五级分制记。优(90-100分)、良(80-89分)、中(70-79分)、及格(60-69分)、60分以下为不及格指导教师签名:20 年月日【精品文档】第 10 页

    注意事项

    本文(优先级法、非强占式短进程优先算法.doc)为本站会员(豆****)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开