动态高优先权优先.doc

动态高优先权优先.doc

ID:55563079

大小:121.00 KB

页数:7页

时间:2020-05-17

动态高优先权优先.doc_第1页
动态高优先权优先.doc_第2页
动态高优先权优先.doc_第3页
动态高优先权优先.doc_第4页
动态高优先权优先.doc_第5页
资源描述:

《动态高优先权优先.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验一动态高优先权优先实验内容:模拟实现动态高优先权优先(若数值越大优先权越高,每运行一个时间单位优先权-n,若数值越小优先权越高,没运行一个时间单位优先权+n),具体如下:设置进程体:进程名,进程的到达时间,服务时间,初始优先权,进程状态(W——等待,R——运行,F——完成),进程间的链接指针进程初始化:由用户输入进程名、服务时间、初始优先权进行初始化,同时,初始化进程的状态为W。显示函数:在进程调度前、调度中和调度后进行显示。排序函数:对就绪状态的进程按照优先权排序。优先权相同时进入就绪队列时间早的进程在前。注意考虑到达时间调度函数:每次从就绪队列队首调度优先权最高的进程

2、执行,状态变化。并在执行一个时间单位后优先权变化,服务时间变化,状态变化。当服务时间为0时,状态变为F。删除函数:撤销状态为F的进行。实验要求:1、测试数据可以随即输入或从文件中读入。2、必须要考虑到进程的到达时间3、最终能够计算每一个进程的周转时间的带权周转时间。实验代码:#include#include#includeusingnamespacestd;intn;classPCB{public:intpri;intruntime;intpieceOftime;stringprocname;stringstate;intn

3、eedOftime;intCounter;PCB*next;};PCB*run=NULL;PCB*ready=NULL;PCB*finish=NULL;PCB*tial=ready;voidDtime(intt);voidPrinft(inta){if(a==1){cout<<"进程名t到达时间t服务时间t优先权t进程状态"<procname<<"t"<needOftime<<"tt"<runtime<<"tt"<pri<<"t"<

4、state<next;}p=finish;while(p!=NULL){Prinft(c,p);p=p->next;}}voidinsert(PCB*p){PCB*S1,*S2;if(ready==NULL){p->next=NULL;ready=p;}else{S1=ready;S2=S1;while(S1!=NULL){if(S1->pri>=p->pri){S2=S1

5、;S1=S1->next;}elsebreak;}if(S2->pri>=p->pri){S2->next=p;p->next=S1;}else{p->next=ready;ready=p;}}}boolCTProcessOfPri(){PCB*Node;cout<<"输入创建进程的数目:"<>n;for(intj=0;j>Node->procname>>Node->needOftim

6、e;Node->runtime=0;Node->state="就绪";Node->pri=Node->needOftime;cout<<"进程"<procname<<"创建完毕!"<next;run->state="运行";Prinft(i);while(run!=NULL){run->runtime=run->runtime+1;run->needOftime=run->needOftime-1;run->pri

7、=run->pri-1;if(run->needOftime==0){run->state="完成";run->next=finish;finish=run;run=NULL;if(ready!=NULL){run=ready;run->state="运行";ready=ready->next;}}elseif((ready!=NULL)&&(run->pripri)){run->state="就绪";insert(run);run=ready;run->state="运行";ready

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。