欢迎来到天天文库
浏览记录
ID:21988053
大小:409.74 KB
页数:23页
时间:2018-10-26
《操作系统实验三进程调度》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、操作系统实验实验三进程调度学号姓名1215108019李克帆班级12电子2班华侨火孝电各工超系实验目的1、理解有关进程控制块、进程队列的概念。2、掌握进程优先权调度算法和时间片轮转调度算法的处理逻辑。实验内容与基本要求1、设计进程控制块PCB的结构,分别适用于优先权调度算法和时间片轮转调度算法。2、建立进程就绪队列。3、编制两种进程调度算法:优先权调度算法和时间片轮转调度算法。实验报告内容1、优先权调度算法和时间片轮转调度算法原理。优先权算法:(1)当该算法用于作业调度时,系统从后备作业队列屮选择若
2、干个优先级最商的,且系统能满足资源要求的作业装入p、j存运行。(2)当该算法用于进程调度时,将把处理机分配给就绪进程队列屮优先级最岛的进程。时间片轮转法:系统将所有的就绪进程按先來先服务的原则,排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片.时间片的大小从几ms到几百ms.当执行的时间片用完时,由一个计吋器发山吋钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列屮新的队首进程,同时也让它执行一个时间片.这样就可以保证就绪
3、队列屮的所有进程,在一给定的时间A,均能获得一时间片的处理机执行时间.2、程序流程图。3、程序及注释。#include#include//吋间延迟#defineDELAY200//每次运算后的停留时间//时间片#defineSJP3//这里的时间片是固定的,这就要求每个进程的服务时间略小于4/氺氺氺氺氺氺氺氺氺氺M氺氺氺氺氺氺氺氺氺氺/unsignedshortTIME=0;//无符号,定义时间uns
4、ignedshortNUM=0;//无符号,定义进程数量charTYPE=T;//模拟类型//PCB结构体定义typedefstructPCB//struct结构体{charname[16];charstate;//[R]Run,[F]Finish,[P]Pause,[N]Newunsignedshortpriority;unsignedshortt一arrive;unsignedshortt_start;unsignedshortt_finish;unsignedshortt_service;un
5、signedshortt_run;unsignedshortt_wait;structPCB*next;}pcb;pcb*now=NULL,指向现在运行的pcb//数字越大,优先级越局,最小为1//到达时间//开始吋间//完成时间//服务时间//运行时间//等待吋间//定义now指针,一开始不赋值。//pcb链头部指针*head=NULL;/氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺/voidfcfs();//先到先服务voidsjf();//短作业优先voidgyxb();//高优先比voidsjp
6、lz();//时间片轮转voidinit();//初始化,完成pcb录入pcb*sort(pcb*);"对init()录入的pcb按到达时间排序voidtimer();//定时器,每一个延迟自我调用•一次voidresult();//打印结果//先到先服务算法voidfcfs()if(now-〉t_arrive〉TIME)//判断有无进程到达{printf("[时间:%d]t无进程运行’’,TIME);return;}if(now->state==,N,)//判断state的状态{now->s
7、tate=,R,;//如果是新的程序,将state改为Rnow-〉t一start=TIME;printf(”[时间:%d]t进程:%s首次运行11",丁11£,110¥-〉1^016);//显示该程序第一次运行}elseif(now->state==,R,)//elseif语句中嵌:套两个if语句,用来判断进程处在运行阶段还是完成阶段(now-〉t_run)++;//now取t_run中的地址,再取内容1如0¥-〉11*1111〉=110¥-〉1_561^以)//判断任务是否完成,标准吋
8、运行吋间大于服务时间{now-〉state='F';//如果完成,则state的状态由Run改为Finallynow->t_finish=TIME;printf("[时间:。/od】t进程:%s任务完成11",11^1三,1105¥->1131^);//任务完成,跳出ifnow=now-〉next;if(now!=NULL)fcfs();//判断是否还有未完成的程序}elseprintf("
9、吋间:%d
10、t进程:%s正在运行,己运行吋间:%d’’,TIME,
此文档下载收益归作者所有