201106060111-王江-先来先服务和短进程优先调度算法模拟(4)

2019-01-27 13:44

西安建筑科技大学华清学院课程设计(论文)

10.程序源代码

#include using namespace std; struct pro { double handtime; double asktime; double starttime; double endtime; double usetime; double right; int runorder; int num; pro *next; };

//------------------------------------------------ void SJF(pro p[],int n); void FCFS(pro p[],int n);

//------------------------------------------------ int pronum; int main() { pro p[20]; cout<<\请输入进程的个数:\ cin>>pronum; cout<<\按时间先后顺序输入进程的提交时间和运行时间\ for(int i=0;i

cout<<\第\个进程:\ cin>>p[i].handtime>>p[i].asktime; while(p[i].handtime>p[i].handtime>>p[i].asktime;

第12页 共16页

西安建筑科技大学华清学院课程设计(论文)

} }

FCFS(p,pronum); SJF(p,pronum); return 0; //cout<handtime <asktime<

//-------------------------- void SJF(pro p[],int n) { int i,order=1; pro *now=&p[0]; pro *temp,*nextrun; p[0].starttime=p[0].handtime; p[0].endtime=p[0].handtime+p[0].asktime; p[0].usetime=p[0].asktime; p[0].right=1.0; p[0].runorder=order; ++order; for(i=0;inext->num<num<<\ now=now->next; }*/ while(now->next!=NULL) { nextrun=now->next; //

cout<handtime<<\fafdsa\

第13页 共16页

西安建筑科技大学华清学院课程设计(论文)

//

while(nextrun!=NULL) //确定nextrun

// { if(nextrun->handtime>=now->endtime) { nextrun->starttime=nextrun->handtime; } else { if(nextrun->next!=NULL) { temp=nextrun->next; while(temp->handtime<=now->endtime)

//用来确定nextrun是否改变

{ if(temp->asktimeasktime) nextrun=temp; if(temp->next!=NULL) temp=temp->next; else break; } }

nextrun->starttime=now->endtime; } //确定nextrun完毕

if(nextrun!=now->next) { temp=now; //修改链表 while(temp->next!=nextrun) temp=temp->next; temp->next=nextrun->next; temp=now->next; now->next=nextrun; nextrun->next=temp; } //链表修改完毕

第14页 共16页

西安建筑科技大学华清学院课程设计(论文)

nextrun->endtime=nextrun->starttime+nextrun->asktime; nextrun->usetime=nextrun->endtime-nextrun->handtime; nextrun->right=nextrun->usetime/nextrun->asktime; nextrun->runorder=order; ++order;

//进程信息修改完毕

now=nextrun; }

double sumtime=0,sumright=0; cout<<\

cout<<\作业号\\t提交\\t运行\\t开始\\t结束\\t周转\\t带权\\t执行\

for(i=0;i

sumtime+=p[i].usetime; sumright+=p[i].right;

cout<

cout<<\平均

\\t\\t\\t\\t\\t\

}

//------------------------- void FCFS(pro p[],int n) { int i; p[0].starttime=p[0].handtime; p[0].endtime=p[0].handtime+p[0].asktime; p[0].usetime=p[0].asktime; p[0].right=1.0; p[0].runorder=1; for(i=1;i

第15页 共16页

西安建筑科技大学华清学院课程设计(论文)

{

if(p[i].handtime

p[i].starttime=p[i].handtime;

p[i].endtime=p[i].starttime+p[i].asktime; p[i].usetime=p[i].endtime-p[i].handtime; p[i].right=p[i].usetime/p[i].asktime; p[i].runorder=i+1; }

double sumtime=0,sumright=0; cout<<\

cout<<\作业号\\t提交\\t运行\\t开始\\t结束\\t周转\\t带权\\t执行\

for(i=0;i

sumtime+=p[i].usetime; sumright+=p[i].right;

cout<

cout<<\平均

\\t\\t\\t\\t\\t\

}

第16页 共16页


201106060111-王江-先来先服务和短进程优先调度算法模拟(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:上海市各区研发机构、技术中心认定条件和扶持力度政策汇编

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: