欢迎来到天天文库
浏览记录
ID:21743349
大小:210.08 KB
页数:9页
时间:2018-10-24
《《操作系统》上机实验报告—进程调度》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《操作系统》上机实验报告专业和班级课程名称操作系统学号实验名称成绩进程调度实验目的和要求1.进程调度是处理机管理的核心内容。2.本实验要求用C语言编写和调试一个简单的进程调度程序。3.通过本实验可以加深理解有关进程控制块、进程队列的概念,并体会和了解优先数和时间片轮转调度算法的具体实施办法。1、处理机调度的基本概念。处理器是计算机系统中的重要资源,处理器调度算法不仅对处理器的利用效率和用户进程的执行有影响,同时还与内存等其他资源的使用密切相关,对整个计算机系统的综合性能指标也有重要影响。2、进程调度方式:1、抢占式(剥夺式):当一个进程正在处理器
2、上运行时,系统可以根据规定的原则剥夺分配给它的处理器,而把处理器分配给其他进程使用。理论基础2、非抢占式(非剥夺式):一旦某个进程开始执行后便不再出让处理器,除非该进程运行结束或发生了某个事件不能继续执行。3、木实验所用调度算法a)优先数调度;为每个进程设置一个优先数,进程调度程序每次选择就绪队列屮优先数最大者占有处理器。b)循环轮转调度。棊本思想是:系统确定一个适当大小的时间片,所有进程排成一个就绪队列按时间片轮流使用CPU。又称为时间片轮转法。#includc#include#include
3、#include#include#defineP_NUM5//共冇5个进程#defineP_TIME50//作为优先数计算时所用的伹enumstate{ready,execute,block,finishh//进程的状态,使用枚举structpcb{charname[4];//进程名称intpriority;//进程优先级intcputime;//已经占有cpu运行的吋I'AJintneedtime;//还需要运行的时间intcount;//在时间片轮转法屮使用的intround;//在时间片轮转法中使用
4、的stateprocess;//进程的状态pcb*next;//抬向下一个进程的pcb);实验算法主体内容及pcb*get_process()//通过输入各进程的值來建立pcb队列,并返回其芮yd索的指针{pcb*q;pcb*t;pcb*p;inti=0;cout«"请输入进程名与吋间"《endl;while(i
5、ound=0;q->count=0;q->process=ready;q->ncxt=NULL;if(i==0){p=qncxt=q;t:q;}i++;)returnp;}voiddisplay(pcb*p)//显示本轮运行后的进程各状态情况{cout«"进程各状态情况n«endl;COUt«"名称"《••••<<••进入时间••《"”《”还需时间”《”n«n优先级"《n”《”状态"《611(11;while(p){cout«p->name;cout«Hcout«p->cputimc;cout«"cout«p->nee
6、dtinie;cout«"#includc#include#include#include#include#defineP_NUM5//共冇5个进程#defineP_TIME50//作为优先数计算时所用的伹enumstate{ready,execute,block,finishh//进程的状态,使用枚举structpcb{charname[4];//进程名称intpriority;//进程优先级intcputime;//已经占有cpu运行的吋I'AJin
7、tneedtime;//还需要运行的时间intcount;//在时间片轮转法屮使用的intround;//在时间片轮转法中使用的stateprocess;//进程的状态pcb*next;//抬向下一个进程的pcb);实验算法主体内容及pcb*get_process()//通过输入各进程的值來建立pcb队列,并返回其芮yd索的指针{pcb*q;pcb*t;pcb*p;inti=0;cout«"请输入进程名与吋间"《endl;while(i
8、in»q->needtime;q-〉cputime=O;q->priority=P_TIME-q->needtime;q-〉round=
此文档下载收益归作者所有