您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 操作系统:进程调度实验报告
河南师范大学软件学院设计性实验报告专业:年级:班级:课程名称操作系统指导教师学号姓名实验地点实验时间项目名称进程调度实验类型设计性一、实验目的1.在Linux下用C语言编程模拟优先级进程调度算法和时间片轮转进程调度算法。2.为了清楚地观察每个进程的调度过程,每次调度程序应将各个进程的情况显示出来。二、总体设计(设计原理、设计方案及流程等)1、优先级进程调度算法采用动态优先级进程调度算法,其基本思想是每次调度总是把处理机分配给优先级最高的进程,同时在运行过程中进程的优先级随着执行或等待的时间而降低或增加。在该实验中每个进程用一个进程控制块(PCB)表示。进程控制块包含如下信息:进程号,进程名、优先数、需要运行时间、已用CPU时间、进程状态。进程号,名字,优先数,运行的时间,事先人为地指定。每个进程的状态可以是就绪,执行,阻塞或完成4种状态之一。就绪进程获得CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。就绪队列中的进程在等待一个时间片后,优先级增1。如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时将进程的优先级减1,然后把它插入就绪队列等待CPU。2、时间片轮转调度算法采用简单时间片轮转调度算法,其基本思想是:所有就绪进程按FCFS排成一个队列,总是把处理机分配给队首的进程,各进程占用CPU的时间片相同。如果运行进程用完它的时间片后还未完成,就把它送回到就绪队列的末尾,把处理机重新分配给队首的进程。直至所有的进程运行完毕。三、实验步骤(包括主要步骤、代码分析等)1.打开linux虚拟机,用vim编辑器打开代码进行修改和调整。用gcc编译器进行编译编译运行首先运行优先级算法,如图所示:河南师范大学软件学院河南师范大学软件学院2.选择轮转算法运行,如图所示:河南师范大学软件学院附上代码:四、结果分析与总结本实验是利用优先级算法和轮转算法实现进程的调度,但是本代码有一个严重的缺陷,有结果图可知本实验并不能输出最后一行的信息,实验过程中计算已经运行完毕但是指针指到最后已经没有数据了。所以本实验在输出结果上少输出一次信息但是计算过程已经完毕。在修改实验的过程中遇到了很多错误都及时请教了老师和同学,最后把代码修改成功,希望老师满意。河南师范大学软件学院教师签名:年月日
本文标题:操作系统:进程调度实验报告
链接地址:https://www.777doc.com/doc-4988328 .html