《操作系统原理》课程设计-动态优先数高者优先进程调度算法.doc

《操作系统原理》课程设计-动态优先数高者优先进程调度算法.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2013级《操作系统原理》课程设计 第 PAGE 1 页共 6 页 《操作系统原理》课程设计 全套设计加扣 3346389411或3012250582 题目:动态优先数高者优先进程调度算法 目的 1.加深对进程和进程调度概念的理解; 2.熟练C/C++/VC开发工具的使用; 3.熟悉文件读写操作; 4.掌握基本的windows编程技巧。 内容 使用C/C++/VC编写和调试进程调度算法的模拟程序。调度算法采用动态优先数高者优先的原则。 最终程序要求 (1)具有图形界面; (2)能动态显示地显示每个进程在每个CPU时间片的状态; (3)使用文件记录调度过程,便于时候查看。 进程模拟的基本原理 下表定义进程PCB的结构(具体编程时可以适当删减部分成员变量): 序号 成员变量 意义或操作方法 1 进程名称 ID 进程的标识 2 优先数 PRIORITY 越大优先权越高,在运行期间可以被动态改变。 3 到达时间 ENTERTIME 进程输入的时间 4 进程余下运行时间ALLTIME 进程开始为全部时间,运行完毕ALLTIME = 0 5 已使用CPU时间 USEDTIME 每在CPU上运行1个时间片就加1 6 连续运行时间 RUNTIME 进程就绪前已经连续运行RUNTIME个时间片 7 连续就绪时间 READYTIME 进程运行前已连续就绪READYTIME个时间片 8 进程状态 STATE 三个状态:READY、RUNNING、FINISHED 9 队列指针 NEXT 用来将PCB排成队列 10 代权周转时间 RIGHTTIME (ENDTIME-ENTERTIME)/USEDTIME 11 结束时间 ENDTIME 进程输出的时间 pcb结构体如图所示 每个进程的状态可以是就绪READY、运行RUNNING或结束END三种状态之一,见下图。 调度原则的详细解释: 进程的优先数及需要的运行时间可以事先人为指定(也可以由随机数产生); 进程的到达时间为进程输入的时间; 进程的运行时间以时间片为单位进行计算; 进的状态可以是就绪READY、运行RUNNING或完成FINISHED三种状态; 每1个时间片结束都重新依据优先数高者优先的算法来调度进程; 进程在就绪队列中每等待1个时间片,其优先数加1; 进程每运行1个时间片,其优先数减3,并置其于就绪状态等待重新调度; 进程每运行1个时间片,其“已使用CPU时间 USEDTIME”加1; 如果运行1个时间片后,进程的“已使用CPU时间 USEDTIME”已达到所需要的运行时间,则撤消该进程; 如果运行1个时间片后,进程的“已使用CPU时间 USEDTIME”还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减3,然后把它插入就绪队列等待CPU; 每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB数据,以便事后进行检查和分析; 重复以上过程,直到所要进程都完成为止。 开发环境 VS2013 实验过程 编写界面 使用MFC图形化界面设计界面,模仿实验任务中的示例进行界面设计 核心代码 进程调度算法 技术难点 难点一:图形界面和MFC程序的运行机制 难点二:动态优先级算法的实现 程序流程 1.用定时器实现时间片; 2.取出作业判断是否finish,是则判断是否为最后一个作业,是则全部完成,否则改变其相应变量,运行几个时间片。取下一个,直到完成; 3.每个时间片刷新一次界面。 4.结束的和强制结束的都从队列删除并加入到finishpcb队列; 5.定时刷新结束页面。 6.中止CPU,则是killtiimer,步进则是将一个时间片运行的代码再运行一遍。 7.设置:工程中设置了对应的几个全局变量。 8.结束进程:点击获取list control 中的一行信息,主要是获取PID,从队列中删除即可。 9.创建进程:创建新的PCB,获取输入框的信息赋值给PCB相应的值,添加到队列。 最终程序的界面 主界面 点击新任务添加进程 输入或使用默认值,点击添加到列表添加到新进程队列。 点击确定批量添加 点击设置进行相关参数设置 关于 点击中止CPU可停止运转,并可使用步进功能 点击步进按钮可实现动态显示地显示每个进程在每个CPU时间片的状态 程序运行的日志文件 此功能未完成

文档评论(0)

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

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

1亿VIP精品文档

相关文档