欢迎来到天天文库
浏览记录
ID:57707029
大小:40.35 KB
页数:11页
时间:2020-09-01
《时间片轮转调度算法实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、xx大学 操作系统 实验报告姓名:学号:班级:实验日期:实验名称:时间片轮转RR进程调度算法实验二时间片轮转RR进程调度算法1.实验目的:通过这次实验,理解时间片轮转RR进程调度算法的运行原理,进一步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。2.需求分析(1)输入的形式和输入值的范围;输入:进程个数n范围:02、)进程个数n,输入时间片大小q,每个进程的到达时间T1,…,Tn和服务时间S1,…,Sn。2)要求时间片轮转法RR调度进程运行,计算每个进程的周转时间和带权周转时间,并且计算所有进程的平均周转时间和带权平均周转时间;3)输出:模拟整个调度过程,输出每个时刻的进程运行状态;4)输出:输出计算出来的每个进程的周转时间、带权周转时间、所有进程的平均周转时间以及带权平均周转时间。(4)测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。正确输入:错误输入:2、概要设计所有抽象数据类型的定义:staticintMaxNu3、m=100lintArrivalTimeTn,S1….Sn;l进行进程调度,计算进程的开始运行时间、结束时间、执行顺序、周转时间、带权周转时间;l计算所有进程的平均周转时间、平均带权周转时间;l按照格式输出调度结果。各程序模块之间的层次(调用)关系Main函数通过对Input函数进行调用,对函数的成员变量进行赋值,再通过RRAlgorithm函数求出题目要求的各个数据结果,最后通过display函数对结果进行格式输出。3、详细设计实现程序模块的具体算法。voidRRAlgorithm(){charprocessMoment[4、100];erviceTime>=q){CurrentTime=q;}else{CurrentTime=RRarray[0].ServiceTime;}while(!()){for(intj=i;j=RRarray[j].ArrivalTime){(RRarray[j]);i++;}}if().ServiceTime5、omentPoint++;processTime[finalProcessNumber]=tempTime;finalProcessNumber++;if().ServiceTime<=0)inishedTime=CurrentTime;();ame!=processMoment[i]&&count"<6、7、me;}doublex=0,y=0;for(i=0;i8、行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。(3)经验体会通过本次实验,深入理解了时间片轮转RR进程调度算法的思想
2、)进程个数n,输入时间片大小q,每个进程的到达时间T1,…,Tn和服务时间S1,…,Sn。2)要求时间片轮转法RR调度进程运行,计算每个进程的周转时间和带权周转时间,并且计算所有进程的平均周转时间和带权平均周转时间;3)输出:模拟整个调度过程,输出每个时刻的进程运行状态;4)输出:输出计算出来的每个进程的周转时间、带权周转时间、所有进程的平均周转时间以及带权平均周转时间。(4)测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。正确输入:错误输入:2、概要设计所有抽象数据类型的定义:staticintMaxNu
3、m=100lintArrivalTimeTn,S1….Sn;l进行进程调度,计算进程的开始运行时间、结束时间、执行顺序、周转时间、带权周转时间;l计算所有进程的平均周转时间、平均带权周转时间;l按照格式输出调度结果。各程序模块之间的层次(调用)关系Main函数通过对Input函数进行调用,对函数的成员变量进行赋值,再通过RRAlgorithm函数求出题目要求的各个数据结果,最后通过display函数对结果进行格式输出。3、详细设计实现程序模块的具体算法。voidRRAlgorithm(){charprocessMoment[
4、100];erviceTime>=q){CurrentTime=q;}else{CurrentTime=RRarray[0].ServiceTime;}while(!()){for(intj=i;j=RRarray[j].ArrivalTime){(RRarray[j]);i++;}}if().ServiceTime5、omentPoint++;processTime[finalProcessNumber]=tempTime;finalProcessNumber++;if().ServiceTime<=0)inishedTime=CurrentTime;();ame!=processMoment[i]&&count"<6、7、me;}doublex=0,y=0;for(i=0;i8、行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。(3)经验体会通过本次实验,深入理解了时间片轮转RR进程调度算法的思想
5、omentPoint++;processTime[finalProcessNumber]=tempTime;finalProcessNumber++;if().ServiceTime<=0)inishedTime=CurrentTime;();ame!=processMoment[i]&&count"<6、7、me;}doublex=0,y=0;for(i=0;i8、行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。(3)经验体会通过本次实验,深入理解了时间片轮转RR进程调度算法的思想
6、7、me;}doublex=0,y=0;for(i=0;i8、行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。(3)经验体会通过本次实验,深入理解了时间片轮转RR进程调度算法的思想
7、me;}doublex=0,y=0;for(i=0;i8、行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。(3)经验体会通过本次实验,深入理解了时间片轮转RR进程调度算法的思想
8、行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。(3)经验体会通过本次实验,深入理解了时间片轮转RR进程调度算法的思想
此文档下载收益归作者所有