操作系统实验二报告-时间片轮转进程调度算法

操作系统实验二报告-时间片轮转进程调度算法

ID:10926982

大小:102.00 KB

页数:12页

时间:2018-07-09

操作系统实验二报告-时间片轮转进程调度算法_第1页
操作系统实验二报告-时间片轮转进程调度算法_第2页
操作系统实验二报告-时间片轮转进程调度算法_第3页
操作系统实验二报告-时间片轮转进程调度算法_第4页
操作系统实验二报告-时间片轮转进程调度算法_第5页
资源描述:

《操作系统实验二报告-时间片轮转进程调度算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、操作系统实验报告实验二时间片轮转进程调度算法学号:班级:姓名:【实验题目】:时间片轮转进程调度算法【实验目的】通过这次实验,加深对进程概念的理解,进一步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。【实验内容】问题描述:设计程序模拟进程的时间片轮转RR调度过程。假设有n个进程分别在T1,…,Tn时刻到达系统,它们需要的服务时间分别为S1,…,Sn。分别利用不同的时间片大小q,采用时间片轮转RR进程调度算法进行调度,计算每个进程的完成时间,周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。程序要求如下:1)进程个数n;每个

2、进程的到达时间T1,…,Tn和服务时间S1,…,Sn;输入时间片大小q。2)要求时间片轮转法RR调度进程运行,计算每个进程的周转时间,带权周转时间,并且计算所有进程的平均周转时间,带权平均周转时间;3)输出:要求模拟整个调度过程,输出每个时刻的进程运行状态,如“时刻3:进程B开始运行”等等;4)输出:要求输出计算出来的每个进程的周转时间,带权周转时间,所有进程的平均周转时间,带权平均周转时间。实现提示:用C++语言实现提示:1)程序中进程调度时间变量描述如下:intArrivalTime[100];intServiceTime[100];intPServi

3、ceTime[100];intFinishTime[100];intWholeTime[100];doubleWeightWholeTime[100];doubleAverageWT,AverageWWT;boolFinished[100];2)进程调度的实现过程如下:Ø变量初始化;Ø接收用户输入n,T1,…,Tn,S1,…,Sn;时间片大小q;Ø按照时间片轮转RR算法进行进程调度,计算进程的完成时间、周转时间和带权周转时间;Ø计算所有进程的平均周转时间和平均带权周转时间;Ø按格式输出调度结果。实验要求:1)上机前认真复习时间片轮转RR进程调度调度算法,熟

4、悉进程调度的执行过程;2)上机时独立编程、调试程序;3)根据具体实验要求,完成好实验报告(包括实验的目的、内容、要求、源程序、实例运行结果截图)。【源程序】头文件RR.h#include#include#include#include#include#defineMaxNum100typedefstructpcb//定义进程控制块{charName[MaxNum];//进程名intarrivetime;//到达时间intruntime;//运行时间intwhol

5、etime;//固定运行时间intFinishTime;//完成时间doubleWeightTime;//周转时间doubleWeightWholeTime;//带权周转时间charstate;//运行后的状态structpcb*next;}PCB;//全局变量intN;//实际进程数doubleSumWT;//周转时间之和doubleSumWWT;//带权周转时间之和doubleAverageWT;//平均周转时间doubleAverageWWT;//平均带权周转时间typedefstruct//定义队列,封装头结点,指针分别指向队头和队尾{PCB*fr

6、ont,*rear;}queue;queue*init()//进程队列置空{queue*head;head=(queue*)malloc(sizeof(queue));head->front=NULL;head->rear=NULL;returnhead;}intempty(queue*head)//检验队列是否为空{return(head->front?0:1);}queue*append(queue*head,charc[MaxNum],inta,intr,chars)//进程队列入队,往后插入{PCB*p;p=(PCB*)malloc(sizeof(

7、PCB));strcpy(p->Name,c);p->arrivetime=a;p->runtime=r;p->wholetime=r;p->state=s;//p->FinishTime=0;//p->WeightTime=0;//p->WeightWholeTime=0;p->next=NULL;if(empty(head))head->front=head->rear=p;else{head->rear->next=p;head->rear=p;}returnhead;}queue*creat(queue*head)//创建进程队列{charc[Ma

8、xNum];chars='R';inta,r,i;printf("

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。