采用时间片轮转算法调度程序.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
采用时间片轮转算法调度程序学号:姓名:专业:指导教师:日期:一、需求分析1、设计要求:?在多道程序或多任务系统中,系统同时处于就绪状态的进程有若干个。为了使系统中各进程能有条不紊地进行,必须选择某种调度策略,以选择一进程占用处理机。要求用时间片轮转算法模拟单处理机调度,以巩固和加深处理机调度的概念。2、解决方案:(1)、假设系统有5个进程,每个进程用一个进程控制块PCB来表示。PCB包括:进程名、链接指针、到达时间、估计运行时间和进程状态。其中,进程名即进程标识。链接指针指出下一个到达进程的进程控制块地址,按照进程到达的顺序排队,统设置一个队头和队尾指针分别指向第一个和最后一个进程,新生成的进程放队尾。估计运行时间:可由设计者任意指定一个时间值。到达时间:进程创建时的系统时间或由用户指定,调度时,总是选择到达时间最早的进程。进程状态:为简单起见,假定进程有三种状态,就绪、等待和完成,并假定进程一创建就处于就绪状态,用R表示,当一个进程运行结束时,就将其置成完成状态,用F表示。?当一个进程未运行完成并且时间片不足时,就将其置成等待状态,用W表示。??(2)、为每个进程任意确定一个要求运行时间和到达时间。???(3)、按照进程到达的先后顺序排成一个循环队列。再设一队首指针指向第一个到达进程的首址。???(4)、执行处理机调度时,开始选择队首的第一个进程运行。另外再设一个当前运行进程的指针,指向当前正运行进程。???(5)、由于本实验是模拟实验,所以对被选中进程并不实际启动运行,而只是执行:?a)、估计运行时间减时间片长度;?b)、输出当前运行进程的名字。?用这两个操作来模拟进程的一次运行(即一个时间片)。???(6)、进程运行一次后,以后的调度则将当前指针依次下移一个位置,指向下一个进程,即调整当前运行指针指向该进程的链接指针所指进程,以指示应运行进程。同时还应判断该进程的剩余运行时间是否为零。若不为零,则等待下一轮的运行;若该进程的剩余运行时间为零,则将该进程的状态置为完成状态F,并退出循环队列插入完成队列。???(7)、若就绪队列不空,则重复上述(5)和(6)步骤直到所有进程都运行完为止。???(8)、在所有设计的调度程序中,应包含显示或打印语句,以便显示或打印每次选中进程的名称及运行一次后队列的变化情况。二、课程设计简介1、课程设计题目采用时间片轮转算法调度程序2、课程设计目的操作系统课程设计是计算机专业重要的教学环节,它为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的机会。(1)进一步巩固和复习操作系统的基础知识。(2)培养学生结构化程序、模块化程序设计的方法和能力。(3)提高学生调试程序的技巧和软件设计的能力。(4)提高学生分析问题、解决问题以及综合利用C语言进行程序设计的能力。3、课程设计内容(1)每一个进程有一个 PCB,其内容可以根据具体情况设定。(2)进程数、进入内存时间、要求服务时间、优先级等均可以在界面上设定。(3)可读取样例数据(要求存放在外部文件中)进行进程数、进入内存时间、时间片长度、进程优先级的初始化。(4)可以在运行中显示各进程的状态:就绪、执行(由于不要求设置互斥资源与进程间的同步关系,故只有两种状态)(5)采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态以及相应的阻塞队列。(6)有性能比较功能,可比较同一组数据在不同调度算法下的平均周转时间。4、时间安排 1)分析设计贮备阶段(1 天) 2)编程调试阶段(7 天) 3)写课程设计报告、考核(2 天)三、概要设计1、基本原理采用时间片轮转算法的进程调度程序原理:系统将所有的输入进程按照先来先服务的原则进行排序并且保存在ready中。系统调用该算法时,由于输入进程不可能只有一个,故首先将ready中第一个数据赋值给执行队列run中,每执行一个时间片后都要判断未执行进程中是否有进程到达时间小于系统当前时间,若有则插入执行队列中。然后继续执行一个时间片,直至所有进程执行完毕。2、算法思想设计(1)按先来先服务算法将进程排成就绪队列ready(2)执行一个时间片后,系统时间加上时间片长度,进行必要判断。(3)未执行队列中依次把到达时间与系统当前时间判断,若小于则表示已到,插入执行队列run中。(4)判断当前执行队列是否已完成,如果完成,则显示完成后,将执行队列中后面元素覆盖前面元素。如果没有,则重复(2)(3)和(4),直至所有进程都执行完毕。(5)判断是否继续调用别的算法,如果是则重新开始,否则结束。3、数据结构和流程图:(1)数据结构typedef struct node{ char name[20]; int round; int cputime;

文档评论(0)

kaiss + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档