进程调度模拟试验报告.docVIP

  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文档。上传文档
查看更多
进程调度模拟试验报告

《计算机操作系统原理》课外上机 实验报告 题目 名称 进程调度算法模拟 院系 信息学院 班级 完成时间 10月17日 指导老师 本次实验成绩 组长 联系电话 邮件地址 组长 (姓名、学号) 主要 任务 成员(姓名、学号) 主要 任务 主要原理及说参考的资料(包括实验内容及条件) 本实验模拟了进程调度的三种算法:静态优先级的立即抢占式调度算法;动态优先级调度算法;时间片轮转调度算法。 一、静态优先级的立即抢占式调度算法原理:在创建进程时,由系统随机产生该进程的优先数(本实验规定:优先数大者,优先权高),且优先数在生命周期中不再改变。就绪队列中的进程根据优先权高低进行排队,等待CPU运行。在进程运行过程中,如果就绪队列出现优先级更高的进程时(本实验开始运行后系统会在任意时间随机创建一个新的进程,最多共创建7个),则立即进行重新调度,剥夺当前运行进程所占有的CPU,分配给更高优先权的进程使用。 二、动态优先级调度算法原理:在创建进程时,由系统随机产生该进程的优先数(本实验规定:优先数大者,优先权高),但动态优先级的优先数随时间会发生改变。本实验的基本原则是:正在运行的程序每次运行CPU的时间为1000ms时,优先数减1,若在就绪队列中出现优先权高的进程,则剥夺当前进程所占有的CPU,分配给优先权高地进程使用,否则,继续占用CPU,当运行1000ms后,优先数继续减1,重新比较。以此循环,直至所有进程运行完为止。 三、时间片轮转调度算法原理:就绪队列中的每个进程轮流的运行一个时间片(本实验时间片为固定值2000ms),当时间片耗尽时,就强迫当前的运行进程让出处理器,转而排到就绪队列尾部,等候下一轮调度。 本实验中,在创建进程时,就绪队列按照优先权高低进行排队,然后依次从就绪队列取出首个进程根据时间片轮转法进行调度。当进程正在运行时,系统会在任意时间自动创建新的进程(规定:系统自动创建最多7个进程,此后不再创建),并根据优先级高低插入就绪队列中。当某个进程的时间片耗尽时,则排到就绪队列尾部,然后调度就绪队列的首个进程。进程每呆一个时间片,优先数减1。 以上三种算法都是每1000ms显示一次运行结果,并规定每次运行CPU时间为1000ms。 标注:R:代表正在CPU中运行;W:代表正在就绪队列中;F:代表此进程已运行完。 主要算法及流程图 (包括实验步骤) 主程序流程图: 静态优先级立即抢占式调度流程图: 动态优先级调度流程图: 时间片轮转法调度流程图: 本实验涉及的主要数据结构和函数说明 主要数据结构: PCB类包含的属性与方法: public int id;//进程唯一标识:进程号 public int prio;//进程优先数,随机产生(10以内) String in;//进程进入CPU的时间,格式为hh:mm:ss(当前系统时间) public char state;//进程的状态标志 public int cputime;//进程已在CPU运行的时间 public int needtime;//进程需要运行的时间(开始由系统随机产生,此后每运行一次,相应减少) PCB next;//用来将多个进程PCB块链接为链表 public PCB()//构造函数 {} public PCB(int id)//带参的构造函数 { this.id=id; } LinkList类包含的属性与方法: public static int j=0;//用来标识创建进程的ID public static PCB ready,run,finish;//分别表示运行,就绪,完成,初始化都为NULL; public static void prt3();//输出显示函数,首先输入运行队列进程,其次是就绪队列进程,最后是完成队列的进程; public static void insert(PCB q)// 按优先级高低插入就绪队列 public static void noPrioInsert(PCB q)//插入到就绪队列尾部 public static void creat(int n)//系统自动创建进程 静态优先级立即抢占式类包含的主要方法为: class staticPrio implements Runnable { public void run(){} }// 动态优先级调度算法类包含的主要方法为: class movePrio implements Runnable { public void run(){} } 时间片轮转法调度算法包含的主要方法为: class Timer implements Runnable { public void run(){} } Main方法中: Thr

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档