




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(1)用C语言(或其它语言,如Java)实现对N个进程采用某种进程调度算法(如动态优先权调度)的调度。(2)每个用来标识进程的进程控制块PCB可用结构来描述,包括以下字段: 进程标识数ID。 进程优先数PRIORITY,并规定优先数越大的进程,其优先权越高。 进程已占用CPU时间CPUTIME。 进程还需占用的CPU时间ALLTIME。当进程运行完毕时,ALLTIME变为0。 进程的阻塞时间STARTBLOCK,表示当进程再运行STARTBLOCK个时间片后,进程将进入阻塞状态。 进程被阻塞的时间BLOCKTIME,表示已阻塞的进程再等待BLOCKTIME个时间片后,将转换成就绪状态。 进程状态STATE。 队列指针NEXT,用来将PCB排成队列。(3)优先数改变的原则: 进程在就绪队列中呆一个时间片,优先数增加1。 进程每运行一个时间片,优先数减3。(4)为了清楚地观察每个进程的调度过程,程序应将每个时间片内的进程的情况显示出来,包括正在运行的进程,处于就绪队列中的进程和处于阻塞队列中的进程。(5)分析程序运行的结果,谈一下自己的认识。实验代码#include iostream.h#include windows.h/#define N 3typedef structint ID;int PRIORITY;int CPUTIME;int ALLTIME;int STARTBLOCK;int BLOCKTIME;int STATE;/0-运行 1-阻塞 2-就绪 3-结束 4-未到达int REACH;int TIME;PROCESS;void textcolor (int color) SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), color );void main()int i,time,max,l,l1,time1,flag=0,total=0,N,server10,sum=0;PROCESS pro10;textcolor(13);cout注意:本程序中状态代表如下endl0-运行 1-阻塞 2-就绪 3-结束 4-未到达endlendl;textcolor(15);coutN;couttime;cout请输入各进程初始状态:endl;coutID PRIORITY REACH ALLTIME STARTBLOCK BLOCKTIMEendl;for(i=0;iproi.IDproi.PRIORITYproi.REACH;cinproi.ALLTIMEproi.STARTBLOCKproi.BLOCKTIME;serveri=proi.ALLTIME;if(proi.REACH=0) proi.STATE=0;else proi.STATE=4;docoutendl当前时刻为:total;textcolor(12);coutendl=各进程状态为=endl;textcolor(15);coutID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATEendl;for(i=0;iN;i+)coutproi.ID proi.PRIORITY proi.CPUTIME ;coutproi.ALLTIME proi.STARTBLOCK proi.BLOCKTIME proi.STATE;coutendl;total+=time;for(i=0;iN;i+)if(proi.STATE=4&proi.REACHtotal)proi.STATE=1;for(i=0;iN;i+)time1=proi.ALLTIME;if(proi.STATE=0)if(proi.ALLTIME=time)/proi.CPUTIME+=time1;proi.ALLTIME=0;proi.STATE=3;proi.TIME=total-time+time1;else/proi.CPUTIME+=time;proi.ALLTIME-=time;proi.STARTBLOCK-;if(proi.STARTBLOCK=0)proi.STATE=1;proi.BLOCKTIME=time1;proi.STARTBLOCK=time1;proi.PRIORITY-=3;proi.TIME=total;if(proi.STATE=1)proi.BLOCKTIME-;if(proi.BLOCKTIME=0) proi.STATE=2;proi.TIME=total;if(proi.STATE=2)/proi.CPUTIME+=time;proi.PRIORITY+;proi.TIME=total;max=-100;l1=-1;l=-1;for(i=0;imax&(proi.STATE=0|proi.STATE=2)l=i;max=proi.PRIORITY;if(proi.STATE=0) l1=i;if(l!=-1&l!=l1) prol.STATE=0;if(l1!=-1) prol1.STATE=2;flag=0;for(i=0;iN;i+)if(proi.STATE!=3)flag=1;break;if(flag=0) break;while(1);coutendl当前时刻:total;textcolor(12);coutendl=各进程状态为=endl;textcolor(15);coutID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATEendl;for(i=0;iN;i+)coutproi.ID proi.PRIORITY proi.CPUTIME ;coutproi.ALLTIME proi.STARTBLOCK proi.BLOCKTIME proi.STATE;coutendl;coutendl各进程运行结束!endl;cout进程号 到达时间 结束时间 周转时间 带权周转时间endl;textcolor(10);for(i=0;iN;i+)cout proi.ID proi.REACH proi.TIME proi.TIME-proi.REACH (float)(proi.TIME-proi.REACH)/serveriendl;sum+=proi.TIME-proi.REACH;cout平均周转时间为:(float)sum/Nendl;textcolor(15);实验结果注意:本程序中状态代表如下0- 运行 1-阻塞 2-就绪 3-结束 4-未到达请输入进程数:3请设置时间片长度:2请输入各进程初始状态:ID PRIORITY REACH ALLTIME STARTBLOCK BLOCKTIME1 4 5 7 8 32 6 0 7 2 87 3 2 6 2 6当前时刻为:0=各进程状态为=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 4 0 7 8 3 42 6 0 7 2 8 07 3 0 6 2 6 4当前时刻为:2=各进程状态为=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 4 0 7 8 3 42 3 0 5 1 8 27 3 0 6 2 6 4当前时刻为:4=各进程状态为=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 4 0 7 8 3 42 4 0 5 1 8 07 3 0 6 2 5 1当前时刻为:6=各进程状态为=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 4 0 7 8 2 12 1 0 3 5 4 17 3 0 6 2 4 1当前时刻为:8=各进程状态为=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 4 0 7 8 1 12 1 0 3 5 3 17 3 0 6 2 3 1当前时刻为:10=各进程状态为=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 5 0 7 8 0 02 1 0 3 5 2 17 3 0 6 2 2 1当前时刻为:12=各进程状态为=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 2 0 5 7 0 22 1 0 3 5 1 17 3 0 6 2 1 1当前时刻为:14=各进程状态为=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 3 0 5 7 0 22 2 0 3 5 0 27 4 0 6 2 0 0当前时刻为:16=各进程状态为=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 4 0 5 7 0 02 3 0 3 5 0 27 1 0 4 1 0 2当前时刻为:18=各进程状态为=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 1 0 3 6 0 22 4 0 3 5 0 07 2 0 4 1 0 2当前时刻为:20=各进程状态为=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 2 0 3 6 0 22 1 0 1 4 0 27 3 0 4 1 0 0当前时刻为:22=各进程状态为=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 3 0 3 6 0 02 2 0 1 4 0 27 0 0 2 4 3 1当前时刻为:24=各进程状态为=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 0 0 1 5 0 22 3 0 1 4 0 07 0 0 2 4 2 1当前时刻为:26=各进程状态为=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 1 0 1 5 0 02 3 0 0 4 0 37 0 0 2 4 1 1当前时刻为:28=各进程状态为=ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE1 1 0 0 5 0 32 3 0 0 4 0 37 1 0 2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-北京-北京汽车驾驶与维修员一级(高级技师)历年参考题库含答案解析
- 2025年中级卫生职称-主治医师-重症医学(中级)代码:359历年参考题库典型考点含答案解析
- 2025年通信专业技术-通信专业技术(中级)-中级通信专业技术(设备环境实务)历年参考题库含答案解析(5套)
- 2025年职业技能鉴定-汽轮机本体检修工-汽轮机本体检修工(高级)历年参考题库含答案解析(5套)
- 2025年职业技能鉴定-供水供应工-供水供应工证(高级)历年参考题库含答案解析(5套)
- 2025年综合评标专家-湖北-湖北综合评标专家(交通运输厅)历年参考题库含答案解析(5套)
- 热电厂锅炉安全知识培训课件
- 季氏将伐颛臾课件
- 烟草公司消防知识培训课件
- 烟花爆竹基础知识培训课件
- 天津市南开区2023-2024学年六年级下学期期末数学试题
- 酒店开业客房筹备倒计时模板
- NBT《核动力厂场内应急设施设计规范》
- 2024年大学计算机基础考试题库带答案(黄金题型)
- 模块化建筑的结构设计与BIM技术应用研究
- GB/T 43681-2024生态系统评估区域生态系统调查方法
- 供应链金融与中小企业融资问题
- 消防安全常识口袋书
- 工业自动化的自动化控制系统架构
- 学校驻校教官培训方案
- 高职应用写作课件
评论
0/150
提交评论