处理机管理实验报告.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
处理机管理实验报告

实 验 报 告 课程名称: 操作系统 实验名称: 处理机管理 学 号: 学生姓名: 班 级: 指导教师: 评 分: 实验日期:2012年 11月 19 日 1、实验目的: 在多道程序或多任务系统中,系统同时处于就绪态的进程有若干个,也就是说能运行的进程数远远大于处理机个数。为了使系统中的各进程能有条不紊地运行,必须选择某种调度策略,以选择一进程占用处理机。设计模拟单处理机调度的算法,巩固和加深处理机调度的概念。 2、实验要求 (1)设计一个按优先级调度的算法 (2)按时间片轮转法进行CPU调度 3、实验环境 硬件: CPU :AMD QL64 内存: 2GB显卡:ATI 4570硬盘:日立250G 软件:Windows 2000/XP。 开发工具:VC++6.0。 4、实验内容 1)实现原理 (1)设计一个按优先级调度的算法 进程的优先数由用户自己指定或程序任意设定,且优先级数越低,优先级越高。调度时,总是选择优先级最高的进程运行。 为了调度方便,设计一个指针指向5个进程排成的就绪队列的第一个进程,另外再设计一个当前运行进程指针,指向当前正运行的进程。 为了采用动态优先级调度,进程每运行一次,其优先级减1。进程运行最后一次,若剩余的运行时间部位0,且优先级低于就绪队列的进程的优先级,则选择一个高优先级进程抢占CPU;若剩余时间为0,则把它的状态改为完成状态(C),并撤出就绪队列。 若就绪队列部位空,则重复以上操作,直到所有进程为完成状态。 在所涉及的程序中,应有显示或打印语句,以显示或打印每次被选中进程的进程名以及运行一次后进程的变化,就绪队列中的个进程排队情况等。 为5个进程任意确定一组“优先级”和“要求运行时间”,启动处理机调度程序,显示或打印为此选中的进程名以及进程控制块的动态变化过程:包括进程已运行时间,剩余时间,就绪队列中的进程等。 优先级调度算法:按照进程的优先级大小来调度。使高优先级进程或线程得到优先的处理的调度策略称为优先级调度算法。进程的优先级可以由系统自动地按一定原则赋给它,也可由系统外部来进行安排 但在许多采用优先级调度的系统中,通常采用动态优先数策略。即一个进程的优先级不是固定的,往往是随许多因素的变化而变化。尤其随作业(进程)的等待时间,已使用的处理器时间或其他系统资源的使用情况而定,以防止低优先级进程或线程长期饥饿现象发生 时间片轮转算法:时间片轮转算法主要用于处理器调度。采用此算法的系统,其进程就绪队列往往按进程到达的时间来排序。进程调度程序总是选择就绪队列中的第一个进程,也就是说按照先进先出原则调度,但一旦进程占有处理器仅使用一个时间片,在使用完一个时间片后,进程还没有完成其运行,它也必须释放出(被抢占)处理器给下一个就绪的进程。而被抢占的进程返回到就绪队列的末尾重新排队等候再次运行。 (2)按时间片轮转法进行CPU调度。 编写并调试一个模拟的进程调度程序,采用“简单时间片轮转法”进行CPU调度。 每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、到达时间、需要运行时间、已运行时间、进程状态等等。 进程的到达时间及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。 进程的运行时间以时间片为单位进行计算。 每个进程的状态可以是就绪 W(Wait)、运行R(Run)两种状态之一。 就绪进程获得 CPU后都只能运行一个时间片。用运行时间加1来表示。 如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应分配时间片给就绪队列中排在该进程之后的进程,并将它插入就绪队列队尾。 每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。 重复以上过程,直到所要进程都完成为止。 进程调度算法:采用多级反馈队列调度算法。其基本思想是:当一个新进程进入内在后,首先将它放入第一个队列的末尾,按FCFS原则排队等待高度。当轮到该进程执行时,如能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚为完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行。 2)程序结构 定义结构体PCB描述进程的进程控制块,定义数组PCB pcb[Max]存放进程 进程调度程序调用face()函数

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档