欢迎来到天天文库
浏览记录
ID:58482339
大小:98.00 KB
页数:9页
时间:2020-05-16
《进程调度-操作系统-实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、电子信息工程学系实验报告指导教师(签名):成绩:课程名称:操作系统实验项目名称:进程调度 实验时间:2014/3/22班级:姓名:学号:一、实验目的:用高级语言编写和调试一个有N个进程并行的进程调度程序,以加深对进程的概念及进程调度算法的理解。二、实验环境:PC机、windows2000操作系统、VC++6.0三、实验要求实验前应复习实验中所涉及的理论知识和算法,针对实验要求完成基本代码编写、实验中认真调试所编代码并进行必要的测试、记录并分析实验结果。实验后认真书写符合规范格式的实验报告,按时上交。四
2、、实验内容及过程:设计一个有N个进程并行的进程调度程序。进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法。具体描述如下:每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。分析:进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。进程的运行时间以时间片为单位进行计算。每个进程的状态可以是就绪W(Wait)、运行R(Run)
3、、或完成F(Finish)三种状态之一。就绪进程获得CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后按照优先数的大小把它插入就绪队列等待CPU。每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。 重复以上过程,直到所要进程都完成为止。调度算
4、法的参考流程图如下:五、实验步骤1.编写一个有N个进程并行的进程调度程序(程序详见附录)。2.在上机环境中输入程序,调试,编译。3.设计输入数据,写出程序的执行结果。4.根据具体实验要求,填写好实验报告。六、实验结果及分析:1、分析:初始化队列。输入进程数为3个进程,各个进程的进程名、优先级、需要时间片设置分别如下:ProcessNameProcessPriortyProcessRunningTimeaa22bb21cc12根据最高优先数优先的调度算法,我们可以得出理论结果如下:进程aa的优先数和bb
5、一样都为2,根据先来先服务原则,进程aa优先插入队列,此时队列排序为aa>bb>cc。就绪进程获得 CPU后都只能运行一个时间片。1)执行第1个时间片时,进程aa得到CPU,进程状态为R,bb、cc则状态为W。当一个时间片结束,进程aa的优先数减1,变为1,按照优先数的大小把它插入就绪队列等待CPU。此时队列排序为bb>cc>aa。2)执行第2个时间片时,进程bb得到CPU,进程状态为R,cc、aa则状态为W。当一个时间片结束,进程bb的已占用CPU时间已达到所需要的运行时间,撤消进程bb,此时队列排
6、序为cc>aa。3)执行第3个时间片时,进程cc得到CPU,进程状态为R,aa、bb则状态为W。当一个时间片结束,进程cc的优先数减1,变为0,此时队列为aa>bb。4)执行第4个时间片时,进程aa得到CPU,进程状态为R,cc则状态为W。进程aa的已占用CPU时间已达到所需要的运行时间,撤消进程aa,此时队列排序为cc。5)执行第5个时间片时,进程cc得到CPU,进程状态为R。进程cc的已占用CPU时间已达到所需要的运行时间,撤消进程cc。程序运行结束。2、实验结果截图如下:1)初始化队列:1)执行
7、第1个时间片,aa执行,bb、cc等待。2)执行第2个时间片,bb执行,cc、aa等待。bb结束进程。3)执行第3个时间片,cc执行,aa等待。4)执行第4个时间片,aa执行,cc等待。aa结束进程。5)执行第5个时间片,cc执行。cc结束进程。七、实验心得:通过本次实验,我加深对进程的概念及最高优先数优先的调度算法和先来先服务算法的理解。进程是一个程序的一次执行过程,是包括创建、调度和消亡的整个过程,当用户在系统中输入命令执行一个程序时,它将启动一个进程。进程控制块包含了进程的描述信息、控制信息及资
8、源信息,它是进程的一个静态描述。最高优先数优先的调度算法要求在进程调度中,每次调度时,系统把处理机分配给就绪队列中优先数最高的进程。先来先服务算法总是把当前处于就绪队列之首的那个进程调度到运行状态,它只考虑进程进入就绪队列的先后。在本次实验中,我也遇到了许多问题。所安装的软件有瑕疵,导致程序一直运行不正确,后来通过与同学比较才发现错误。刚开始对进程概念不大了解,对程序的结构模模糊糊,但是,通过自己自主的学习,终于对本实验有了更深的理解。虽然现在自己还不能
此文档下载收益归作者所有