计算机操作系统实验-进程调度.ppt
计算机操作系统实验-进程调度,-制作人 袁田(1924122)顾超(1924124),题目名称 进程调度实验院系 信息学院班级 计科41完成时间 2006年10月30日 星期天指导老师 姜海燕组长 顾超联系电话 邮件地址,组长(姓名、学号),顾超1924124 袁田 1924122,组员(姓名、学号),主要任务,组长:分配任务给组员,和组员探讨实验所涉及算法,更正组员算法的不足,并改正,编写具体实验程序,用程序制作界面,完成后进行测试组员:和组长讨论算法,确定实验开发环境,规划实验所需界面,写出算法流程图,制作实验报告和PPT,主要原理,时间片完,进程完成,事件出现,交互用户,抢占式的优先权原则:当有作业来,比较优先级,允许优先权高的新到进程抢占当前的处理机时间片轮转法:当执行的时间片用完,由一个计时器出发时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾,然后再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片,用以保证就绪队列中的所有进程,在一给定的时间内,均能获得一时间的处理机执行时间。,实验内容,设计一个程序模拟进程创建的模拟过程。设计有n各进程的程序,其中每个进程控制块PCB中包含:进程标记号(ID),进程优先数(Priority),进程进入CPU时间(Intime),进程需要使用时间(usetime),程序需要运行的总时间(Alltime)、队列指针。进程的调度文件存放在filename.txt文件中,文件内容,算法调度算法一:采用基于静态优先级的立即抢占式调度算法调度算法二:采用时间片轮转法,进程占用CPU的时间片有每个进程的优先数来确定。(约定:每个优先数对应10分钟)系统显示各进程状态的变化情况,调度序列及每个进程获得CPU的调度时间。编写中应将算法单独编写为尽量通用的独立模块。,时间片轮转法流程图,进程请求,到后备队列取进程,是否到该进程时间,进入执行队列,时间片用完进程是否完成,进入就绪队列,重新开始的时间片,后备队列是否为空,进入就绪队列取程序,结束,进入完成队列,是,否,在后备队列等待,否,否,是,进程加入,为空,进程请求,到后备队列取进程,是否到该进程时间,进入执行队列,当前进程是否完成,进入就绪队列,后备队列是否为空,进入就绪队列取程序,结束,进入完成队列,是,否,在后备队列等待,否,否,是,进程加入,为空,是否有多进程,判断优先级,进入就绪队列,优先级减1,正在执行程序,最高,动态优先级策略调度流程图,主要算法:,Pcb结构体typedef struct int ID;/进程标记号 int Priority;/进程优先级 int Intime;/进程进入CPU时间 int Alltime;/进程运行总时间 int usetime;/进程使用时间PCB;,定义队列typedef struct QNode PCB data;struct QNode*next;QNode;typedef struct QNode*front,*rear;int Length;LinkQueue;,创建队列 void CreateQueue(LinkQueue&Q)进入队列 到表尾 void INQueue(LinkQueue&Q,PCB one)进入队列 到表头void TOUQueue(LinkQueue&Q,PCB one)出队列 PCB OUTQueue(LinkQueue&Q),主要实现步骤,1.小组成员共同就实验要求进行讨论,弄清进程管理的基本思想和流程,制定出具体的进度计划并分配了相关的任务。2.小组成员各自根据要求完成任务,在此过程中任务会根据新的要求有所变化,各结构及函数等都会有相应的变化,此步骤也是完善的过程。3.代码完成进行程序测试。发现程序的BUG后改进程序。4.完成实验报告的填写制作PPT。,本实验涉及的主要算法细节说明(包括数据结构),创建队列void CreateQueue(LinkQueue,进入队列 到表头void TOUQueue(LinkQueue,QNode*get(LinkQueue,LinkQueue COME(LinkQueue,void COMEtime(LinkQueue,本次实践计划、进度安排及完成情况(进度及计划由组长填写,完成情况由组员填写并注明填写人),进度计划:(1)老师布置作业后,小组成员进行讨论分工(2)第一周确定要使用的调度算法并写出主要算法,确定开发环境,设计显示的界面。(3)第二周写程序。(4)进行程序测试,找出错误,后修改,制作实验报告和PPT 完成情况小组成员具体分工:组长主写程序,调试;组员进行辅助,参与设计。在确定要使用的调度算法时产生分歧,组长觉得做一个调度算法即可,后应组员要求,调度算法最后确定为两个不同方法。在开发环境里一开始觉得用C,后来确定要用界面后改为用C+,用MFC制作界面。写程序时多在队列的显示发生错误。程序错误找出困难,导致程序完成在第三周末,测试时间紧张,没把任何情况的测试全部进行调试,制作实验报告算法流程图画的不完美,PPT制作时间紧(组员袁田填写),主要测试方法及测试数据,时间片算法:5:1进程进入就绪队列,进入执行队列。10:2进程进入就绪队列,等待。15:1进程时间片中没完成,进入就绪队列等待,2进程进入执行队列。3进程等待。26:2进程进入完成队列,1进程进入。31:1进程进入完成队列,3进程进入。60:3进程时间片中没完成,进入就绪优先级减1,进入执行。71:3进程进入完成队列。,优先级5:1进程进入就绪队列,进入执行队列。10:2进程进入就绪队列,优先级比1进程高,1进程进入就绪队列等待,优先级减1。2进程进入执行队列。15:3进程进入就绪队列,优先级比2进程高,2进程进入就绪队列等待,优先级减1。3进程进入执行队列。等待。55:3进程完成,1进程优先级低,1进程进入就绪队列。优先级减1。2进入执行。62:2进程进入完成队列。1进程进入执行。71:1进程进入完成。,结束,谢谢观看!,