网站大量收购闲置独家精品文档,联系QQ:2885784924

先来先服务、非强占式短进程优先算法毕业设计(论文).doc

先来先服务、非强占式短进程优先算法毕业设计(论文).doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
附件1: 操作系统课程设 学 号: 0120810340901 课 程 设 计 题 目 先来先服务、非强占式短进程优先算法 学 院 计算机科学与技术 专 业 计算机科学与技术 班 级 计算机0809班 姓 名 游 海 东 指导教师 汪 祥 莉 2011 年 01 月 20 日 课程设计任务书 学生姓名: 游 海 东 专业班级: 计算机0809班 指导教师: 汪 祥 莉 工作单位: 计算机科学与技术学院 题 目: 进程调度能够处理以下的情形:能够选择不同的调度算法(要求中给出的调度算法)显示进程调度队列i)你认为你完成的设计哪些地方做得比较好或比较出色; ii)什么地方做得不太好,以后如何改正; iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训); iv)完成本题是否有其他方法(如果有,简要说明该方法); v)对实验题的评价和改进意见,请你推荐设计题目。 时间安排: 设计安排一周:周1、周2:完成程序分析及设计。 周2、周3:完成程序调试及测试。 周4、周5:验收、撰写课程设计报告。 (注意事项:严禁抄袭,一旦发现,抄与被抄的一律按0分记) 指导教师签名: 2011 年 01 月 日 系主任(或责任教师)签名: 2011年 01 月 日 课程设计报告书 --先来先服务,非强占式短进程优先算法 1. 课程设计目的与功能 1.1课程设计目的 通过这次课程设计,了解和掌握进程的一些调度算法。了解先来先服务和非强占式短进程优先算法之间的相同和不同点。 1.2课程设计功能 能够选择不同的调度算法(先来先服务,非强占式短进程优先算法),通过给出进程名、进程的到达时间和进程的运行时间,根据调度算法计算出进程的平均周转时间和平均带权周转时间,比较调度算法的优劣。 2.需求分析,数据结构或模块说明(功能与框图) 2.1需求分析 通过设计一个模拟进程调度的系统,来实现进程调度,对进程调度的功能以及进程调度算法有一个更加深入的理解。 进程PCB(包含进程名、到达时间、预计运行时间) 调度算法(先来先服务、非强占式短进程优先) 模拟进程调度,能够处理以下的情形:能够选择不同的调度算法(要求中给出的调度算法)显示进程调度队列CPU ,换句话说,调度程序每次选择的作业/进程是等待时间最久的,而不管其运行时间的长短。这种调度算法突出的优点是实现简单,效率较低,在一些实际的系统和一般应用程序中采用这种算法的较多。适用于作业调度,也可用于进程调度。要实现此先来先服务调度算法以及考虑程序的简洁性,用一个数据结构如优先级队列,容器等来存储进程基本信息,并要对所有的进程按其到达时间先后顺序进行排序,实现依次取出的进程是所有未运行进程中到达时间最早的进程。 2.2.2非强占式短进程优先调度算法 不可抢占式 Non-preemptive(非剥夺式):某一进程被调度运行后,除非由于它自身的原因不能运行,否则一直运行下去。 短作业优先调度算法(SJF, Shortest Job First),又称为“短进程优先”SPN(Shortest Process Next);这是对FCFS算法的改进,其目标是减少平均周转时间。基本思想:对预计执行时间短的作业(进程)优先处理。通常后来的短作业不抢先正在执行的作业。在一般情况下这种调度算法比先来先服务调度算法的效率要高一些。实现相对先来先服务调度算法要困难些,如果作业的到来顺序及运行时间不合适,会出现饿死现象,例如,系统中有一个运行时间很长的作业J,和几个运行时间小的作业,然后,不断地有运行时间小于J的作业的到来,这样,作业J就得不可调度而饿死。另外,作业运行的估计时间也有问题。 2.3数据结构 此次程序从大的方面来说是利用链表来实现的,在程序中定义了一个结构体struct PCB用来保存每一条记录,每个结点包括进程名(作业名)、进程的提交时间、运行时间、开始时间、结束时间、周转时间、带权周转时间、平均周转时间和平均带权周转时间。 Struct pro的定义如下: struct pro { double handtime; double asktime; double starttime; double endtime; double usetime; double right; int runorder; int num; pro *next; }; 定义一个double型的handtime(提交时间),一个double型

文档评论(0)

2749166188 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档