资源预览内容
第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
亲,该文档总共4页全部预览完了,如果喜欢就下载吧!
资源描述
实验项目(二)进程调度模拟实验实验类型设计实验学时4一、实验目的设计一个有N个进程并行的进程调度程序二、设备与环境1. 硬件设备:PC机一台2. 软件环境:安装Windows操作系统或者Linux操作系统,并安 装相关的程序开发环境,如C C+Java等编程语言环境。三、实验要求要求学生熟练掌握最高优先级优先的进程调度算法,并使用C 语言编写程序模拟若干个进程的进程调度过程。1问题描述:进程调度算法:采用最高优先级优先的调度算法。每个进程有一个进程控制块(PCB)表示。进程控制块可以包 含进程名、优先级、到达时间、需要运行时间、已用CPU时间、进 程状态等等。进程的运行时间以时间片为单位进行计算。每个进程的状态是就绪W(Wait)、运行R(Run)、或完成卜 (Finis)三种状态之一。进程名、优先级、需要运行时间通过键盘输入。就绪进程获得CPU后都只能运行一个时间片。用已占用CPU时 间加1来表示。运行一个时间片后,进程的已占用CPU时间已达到所需要的运 行时间,则撤消该进程,否则将进程的优先级减1 (即降低一级), 然后把它插入就绪队列等待CPU。每进行一次调度程序都打印一次运行进程、就绪队列、以及各个 进程的PCB,以便进行检查。重复以上过程,直到所有进程都完成为止。2.调度算法的流程图:运行旌程已占用 CPU时间已达到所 需的云行瞄河初始化双土输人避程信息就需队列苜进程投入运行已到达时间片到运行进程已占用CPU时间H咎进程按就光致从蒿倒临撮列【注意事项】1. 遵守实验室的规章制度,维护实验教学秩序,不得随意拆卸、 移动计算机。2. 注意使用模块化程序设计方法,逐模块进行编写和调试。3. 独立完成实验,根据实验测试数据和结果认真完成实验报告。通过动态优先权算法模拟加深进程概念和对进程调度过程的理解。模拟动态优先权算法:通过结构体构造一个PCB结构,用于记录当前进程的相关状态信息。 包括:struct pcb /定义进程控制块PCBchar name10; /进程标识符PID (进程名)char state;/进程状态,w表示就绪态(等待),r表示运行态int super;/进程的优先级,规定数字越大,优先级别越高int needtime;/进程需要运行的时间int runtime;/进程已经运行的时间struct pcb* lin/定义后继指针。队列指针lini用来将PCB排成队列*readylist; /readyli表示就绪队列主要构建的函数及功能:(1) input :)输入各进程的基本信息,包括进程名、优先权、运行时间。(2) sort。对进程的优先级进行排列(3) disp()用于显示当前进程的运行情况和状态(4) check。检查等待队列的进程是否进入就绪队列(5) running()执行进程,进程运行时间到,判断是进程结束(撤销)还是将状态从运 行态置为就绪态系统将所有就绪队列按优先级高低排成一个队列。实验时,优先级给的数字越大,表示优先级别越高。每次调度时,将CPU分配给优先级最高的进程,并令其执行一个时间片,而后中断, 判断当前进程是否完成。如果没有完成,将优先级4,重新插入到就绪队列中,使队列仍然 有序。如果完成了,就退出整个执行体系。系统继续寻找下一个优先级最高的进程执行。所 有进程的优先级随着进程的推进或其等待时间的增加而增加,从而保证一定的公平性。优先权=(等待时间+要求服务时间)/要求服务时间实验时规.定.刚刚被运行过的进程优先权减1。定义进程控制块PCB 对进程优先级进行排序
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号