非抢占式高优先级调度算法

非抢占式高优先级调度算法

ID:43465881

大小:19.00 KB

页数:3页

时间:2019-10-03

非抢占式高优先级调度算法_第1页
非抢占式高优先级调度算法_第2页
非抢占式高优先级调度算法_第3页
资源描述:

《非抢占式高优先级调度算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、/*非抢占式高优先级调度算法(优先数越大级别越高)算法思想:在按进程达到时间由小到大的顺序输入进程信息后,先对其优先数进行排列,将最先到达的进程的到达时间设为开始时间,计算结束时间,然后对后面到达的时间与该进程的结束时间进行比较,如若小于该进程的结束时间,记录进程的个数,再对其优先数逐个进行比较,将优先数最大的提到前面,每次进程结束都要进行比较,得到执行序列,在依次输出结果*/#include#defineMAX100structhrfs{charname[10];floatarrvitetime;floatstartti

2、me;floatservietime;floatfinishtime;intpriority;//优先数intorder;//进程执行次序intrun_flag;//标记进程状态};hrfsp[MAX];intcount;//排列到达时间//按到达时间与优先数计算执行序列voidHRfs(){floattemp_time=0;inti=0,j;intk,temp_count;intmax_priority;max_priority=p[i].priority;j=1;while((j

3、[j].arrvitetime)){if(p[j].priority>p[i].priority){max_priority=p[j].priority;i=j;}j++;}k=i;p[k].starttime=p[k].arrvitetime;//开始时间=达到时间p[k].finishtime=p[k].starttime+p[k].servietime;p[k].run_flag=1;temp_time=p[k].finishtime;p[k].order=1;temp_count=1;while(temp_count

4、max_priority=0;for(j=0;jmax_priority){max_priority=p[j].priority;k=j;}}p[k].starttime=temp_time;p[k].finishtime=p[k].sta

5、rttime+p[k].servietime;p[k].run_flag=1;temp_time=p[k].finishtime;temp_count++;p[k].order=temp_count;}}voidinput(){inti;printf("请输入进程名到达时间运行时间优先数,例如:a01001");for(i=0;i

6、priority);p[i].starttime=0;p[i].finishtime=0;p[i].order=0;p[i].run_flag=0;}}voidprint(){inti;floatturn_round_time=0,f1,w=0;floatright_turn_round_time;printf("-------------------------------进程完成信息------------------------------------");printf("进程名优先级达到时间运行时间开始时间结束时间周转时间带

7、权周转时间运行次序");for(i=0;i

8、ttime,p[i].finishtime,f1,right_turn_round_time,p[i].order);}printf("平均周转时间=%5.2f",turn_

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

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

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