非抢占式高优先级调度算法_第1页
非抢占式高优先级调度算法_第2页
非抢占式高优先级调度算法_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上/*非抢占式高优先级调度算法(优先数越大级别越高)算法思想:在按进程达到时间由小到大的顺序输入进程信息后,先对其优先数进行排列,将最先到达的进程的到达时间设为开始时间,计算结束时间, 然后对后面到达的时间与该进程的结束时间进行比较,如若小于该进程的结束时间,记录进程的个数,再对其优先数逐个进行比较,将优 先数最大的提到前面,每次进程结束都要进行比较,得到执行序列,在依次输出结果*/#include<stdio.h>#define MAX 100struct hrfschar name10;float arrvitetime;float starttime;

2、float servietime;float finishtime;int priority;/优先数int order;/进程执行次序int run_flag;/标记进程状态;hrfs pMAX;int count;/排列到达时间/按到达时间与优先数计算执行序列void HRfs()float temp_time=0;int i=0,j;int k,temp_count;int max_priority;max_priority=pi.priority;j=1;while(j<count)&&(pi.arrvitetime=pj.arrvitetime) if(pj.p

3、riority>pi.priority)max_priority=pj.priority;i=j;j+;k=i;pk.starttime=pk.arrvitetime;/开始时间=达到时间pk.finishtime=pk.starttime+pk.servietime;pk.run_flag=1;temp_time=pk.finishtime;pk.order=1;temp_count=1;while(temp_count<count)max_priority=0;for(j=0;j<count;j+)/判断到达时间是否小于上一个进程的结束时间并且非处在运行状态if(pj.a

4、rrvitetime<=temp_time)&&(!pj.run_flag)/判断进程优先数是否大于最大优先数,如果大于,就将其值赋给max_priorityif(pj.priority>max_priority)max_priority=pj.priority;k=j;pk.starttime=temp_time;pk.finishtime=pk.starttime+pk.servietime;pk.run_flag=1;temp_time=pk.finishtime;temp_count+;pk.order=temp_count;void input()int

5、i;printf("n请输入进程名 到达时间 运行时间 优先数,例如:a 0 100 1n");for(i=0;i<count;i+)printf("进程%d的信息:",i+1);scanf("%s%f%f%d",,&pi.arrvitetime,&pi.servietime,&pi.priority);pi.starttime=0;pi.finishtime=0;pi.order=0;pi.run_flag=0;void print()int i;float turn_round_time

6、=0,f1,w=0;float right_turn_round_time;printf("n-进程完成信息-n");printf("进程名 优先级 达到时间 运行时间 开始时间 结束时间 周转时间 带权周转时间 运行次序n");for(i=0;i<count;i+)f1=pi.finishtime-pi.arrvitetime;turn_round_time+=f1;right_turn_round_time=f1/pi.servietime;w+=(f1/pi.servietime);printf("%s %5d %10.2f %8.2f %8.2f %8.2f %8.2f %8.2f %8dn",,pi.priority,pi.arrvitetime,pi.servietime,pi.starttime,pi.finishtime,f1,right_turn_round_time,pi.order);printf("平均周转时间=%5.2fn",turn_round_time/count);printf("平均带权周转时间=%5.2fn",w/count);void main() printf("-非抢占式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论