1 / 12
文档名称:

动态优先权进程调度算法模拟实验报告(共12页).doc

格式:doc   大小:51KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

动态优先权进程调度算法模拟实验报告(共12页).doc

上传人:bai1968104 2022/3/8 文件大小:51 KB

下载得到文件列表

动态优先权进程调度算法模拟实验报告(共12页).doc

文档介绍

文档介绍:精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
华北电力大学
实 验 报 告
textcolor(13);
cout<<"注意:本程序中状态代表如下"<<endl<<"0-运行 1-阻塞 2-就绪 3-结束 4-未到达"<<endl<<endl;
textcolor(15);
cout<<"请输入进程数:";
cin>>N;
cout<<"请设置时间片长度:";
cin>>time;
cout<<"请输入各进程初始状态:"<<endl;
cout<<"ID PRIORITY REACH ALLTIME STARTBLOCK BLOCKTIME"<<endl;
for(i=0;i<N;i++){
pro[i].CPUTIME=0;
pro[i].TIME=0;
cin>>pro[i].ID>>pro[i].PRIORITY>>pro[i].REACH;
cin>>pro[i].ALLTIME>>pro[i].STARTBLOCK>>pro[i].BLOCKTIME;
server[i]=pro[i].ALLTIME;
if(pro[i].REACH==0) pro[i].STATE=0;
else pro[i].STATE=4;
}
do{
cout<<endl<<"当前时刻为:"<<total;
textcolor(12);
cout<<endl<<"========================各进程状态为======================"<<endl;
textcolor(15);
cout<<"ID PRIORITY CPUTIME ALLTIME STARTBLOCK BLOCKTIME STATE"<<endl;
for(i=0;i<N;i++){
cout<<pro[i].ID<<" "<<pro[i].PRIORITY<<" "<<pro[i].CPUTIME<<" ";
cout<<pro[i].ALLTIME<<" "<<pro[i].STARTBLOCK<<" "<<pro[i].BLOCKTIME<<" "<<pro[i].STATE;
cout<<endl;
}
total+=time;
for(i=0;i<N;i++){
精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
if(pro[i].STATE==4&&pro[i].REACH<total){
pro[i].STATE=1;
}
}
for(i=0;i<N;i++){
time1=pro[i].ALLTIME;
if(pro[i].STATE==0){
if(pro[i].ALLTIME<=time){
//pro[i].CPUTIME+=time1;
pro[i].ALLTIME=0;
pro[i].STATE=3;
pro[i].TIME=total-time+time1;
}
else{
//pro[i].CPUTIME+=time;
pro[i].ALLTIME-=time;
pro[i].STARTBLOCK--;
if(pro[i].STARTBLOCK==0){
pro[i].STATE=1;
pro[i].BLOCKTIME=time1;
pro[i].STARTBLOCK=time1;
}
pro[i].PRIORITY-=3;
pro[i].TIME=total;
}
}
if(pro[i].STATE==1){
pro[i].BLOCKTIME--;
if(pro[i].BLOCKTIME==0) pro[i].STATE=2;
pro[i].TIME=total;
}
if(pro[i].S