轮转调度算法_第1页
轮转调度算法_第2页
轮转调度算法_第3页
轮转调度算法_第4页
轮转调度算法_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、进程时间片轮转调度算法一、实验题目:进程时间片轮转调度算法二、实验原理:在多道程序系统中,一个作业被提交后必须经过处理机调度后,方能获得处 理机执行。对调度的处理又都可采用不同的调度方式和调度算法。调度算法是指: 根据系统的资源分配策略所规定的资源分配算法。三、实验目的:1、加深对进程概念的理解,明确进程和程序的区别。2、深入系统如何组织进程、创建进程。3、进一步认识如何实现处理器调度。4、通过对进程调度算法的设计,深入理解进程调度的原理。5、加深对时间片轮转调度算法的理解。四、实验要求:用C+语言编写程序完成单处理机的进程调度,要求采用时间片轮转调度 算法。实验具体要求包括:首先确定作业控制

2、块的内容和组成方式;然后完成作 业调度;最后编写主函数,并对所做工作进行测试。五、语言环境:计算机基本配置要求:操作系统:WIN 98/2000/XP/2003 等 Windows 平台内存:256MB及以上主存64KB(Memory)(以KB为单位分配)开发语言:Visual C+ 6.0五、数据结构typedef struct jcbchar nameN;int prio;int round;int cputime;int needtime;int count;char state;struct node *next;)JCB六、参考源程序#include #include #includ

3、e #include typedef struct nodechar name10;int prio;int round;int cputime;int needtime;int count;char state;struct node *next;PCB;PCB *finish,*ready,*tail,*run; / 队列指针int N;进程数void firstin()run=ready;/就绪队列头指针赋值给运行头指针run-state=R; /进程状态变为运行态ready=ready-next; /就绪队列头指针后移到下一进程/输出标题函数void prt1(char a)if(to

4、upper(a)=P) 优先级法cout endl;cout进程名 占用CPU时间到完成还要的时间 轮转时间片 状态 endl;进程PCB输出void prt2(char a,PCB *q)if(toupper(a)=P) 优先级法的输出coutnamecputime”needtimeroundstatenext;p=finish;输出完成队列的PCBwhile(p!=NULL) prt2(algo,p);p=p-next;getchar(); /按住任意键继续时间片轮转的插入算法void insert(PCB *q) PCB *p1,*s,*r;s=q; 待插入的PCB指针p1=ready;

5、 就绪队列头指针r=p1; /*r做pl的前驱指针 while(p1!=NULL)if(p1-roundround)r=p1;p1=p1-next;if(r!=p1)r-next=s;s-next=p1;elses-next=p1; 否则插入在就绪队列的头ready=s;/优先级创建初void create(char alg)PCB *p;int i,time;char na10;ready=NULL;finish=NULL;run=NULL;cout输入进程名及其需要运行的时间:”endl;for(i=1;ina;cintime;strcpy(p-name,na);p-cputime=0;p

6、-needtime=time;p-state=W;p-round=0;if(ready!=NULL)insert(p);elsep-next=ready;ready=p;cout输入进程名及其需要运行的时间:”next;run-state=R;void timeslicecycle(char alg)while(run!=NULL)run-cputime=run-cputime+10;run-needtime=run-needtime-10;run-round=run-round+10;if(run-needtimenext=finish;finish=run;run-state=F;run=

7、NULL;if(ready!=NULL)firstin();elserun-state=W;insert(run);firstin();prt(alg);/主函数void main()char algo=P; /算法标记coutN; 输入进程数create(algo); 创建进程 timeslicecycle(algo); /优先级法调度 /main()七、运行结果1、输入数据2、运行结果示例(1)数据输入完成后的初始状态,进程标识为x1的进程首先得到调度,运行10个时间单位。进程名占用CPU时间到完成还要的时间轮转时间片状态X10150Ux20250Ux30350Ux40300Ux50200

8、U(2)进程标识为x2的进程得到调度,从就绪态“W”改为运行态“R”,运行10个时间单位。进程名占用CPU时间到完成还要的时间轮转时间片状态x20250Rx30350Uk40300Uk50200Ulxl10510U(3)进程标识为x3的进程得到调度,从就绪态“W”改为运行态“R”,运行 10个时间单位。 TOC o 1-5 h z 进程名占用CPU时间到完成还要的时间轮转时间片状态 x30350Rx40300Ux50200Uxl10510Ux2101510U(4)进程标识为x4的进程得到调度,从就绪态“W”改为运行态“R”,运行10个时间单位。进程名占用CPU时间到完成还要的时间轮转时间片状态

9、x40300Rx50200Uxl10510Ux2101510Ux3102510U(5)进程标识为x5的进程得到调度,从就绪态“W”改为运行态“R”,运行10 TOC o 1-5 h z 个时间单位。进程名x5xlx2x3进程名x5xlx2x3x410510101510132510102010(6)进程标识为xl的进程再次得到调度,从就绪态“W”改为运行态“R”, 因进程xl只剩下5个单位时间,所以进程xl只运行5个单位时间。进程名占用CPU时间到完成还要的时间轮转时间片状态xl10510Rx2101510Ux3102510Ux4102010Ux5101010U(6)进程标识为x2的进程得到调度

10、,从就绪态“W”改为运行态“R”,运行 TOC o 1-5 h z 进程名占用CPU时间到完成还要的时间轮转时间片状态 x2101510Rx3102510Ux4102010Ux5IS1010Uxl20-520F(7)进程标识为x3的进程得到调度,从就绪态“W”改为运行态“R”,运行10个时间单位。进程名占用CPU时间到完成还要的时间轮转时间片状态x3102510Rx4102010Ux5101010Ux220520Uxl20-520F(8)进程标识为x4的进程得到调度,从就绪态“W”改为运行态“R”,运行 10个时间单位。 TOC o 1-5 h z I进程名占用CPU时间到完成还要的时间轮转时

11、间片状态 x4102010Rx5101010Ux220520Wx3201520Ubcl20-520F(9)进程标识为x5的进程得到调度,从就绪态“W”改为运行态“R”,运行10个时间单位。进程名占用CPU时间到完成还要的时间轮转时间片状态x5101010Rx220520Ux3201520Ux4201020Uxl20-520F(10)进程标识为x2的进程得到调度,从就绪态“W”改为运行态“R”,运行 TOC o 1-5 h z 进程名占用CPU时间到完成还要的时间轮转时间片状态 x220520Rx3201520Ux4201020Ux520020Fxl20-520F占用CPU时间到完成还要的时间轮

12、转时间片状态20占用CPU时间到完成还要的时间轮转时间片状态201020R30530U30-530F20020F20-520F进程名x3x2x5(13)进程标识为x3的进程得到调度,从就绪态“W”改为运行态“R”,运行5 个时间单位。进程x4已运行完,从运行态“R”改为运行结束状态“F”。(11)进程标识为x3的进程得到调度,从就绪态“W”改为运行态“R”,运行 10个时间单位。进程x2已运行完,从运行态“R”改为运行结束状态“F”。进程名占用CPU时1可到完成还要的时间轮转时间片状态x3201520Rx4201020Ux230-530Fx520020Fxl20-520F(12)进程标识为x4

13、的进程得到调度,从就绪态“W”改为运行态“R”,运行 10个时间单位。进程名占用CPU时间到完成还要的时间轮转时间片状态 TOC o 1-5 h z x330530Rx430030Fx230-530Fx520020Fxl20-520F(14)所有进程都已运行完,状态都为“F”。 TOC o 1-5 h z 进程名占用CPU时间到完成还要的时间轮转时间片状态 x340-540Fx430030Fx230-530Fx520020Fxl20-520F八、总结在这次实验中,我能够正确分析实验过程和实验结果,思路清晰,能够比较 好的理解进程按时间片轮转算法这一调度过程,加深了我对进程时间片轮转调度 过程的理解。但是还有很多不足。我自己的C+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论