首页 > 编程知识 正文

fcfs进程调度模拟实现,fcfs调度算法例题

时间:2023-05-04 04:04:11 阅读:190098 作者:4109

实验内容:已知一组进程P1、P2、p3…及其到达时间和服务时间(见下图),分别采用FCFS调度算法和SPF调度算法,确定每个进程的完成时间、周转时间、服务时间

实验目的:熟悉FCFS调度算法的实现过程,熟练掌握FCFS算法的代码编写

实验原理:问题分析与算法设计(流程图) 1、问题分析:

问题1 )对进程进行排序,在最先到达的列之前

收纳到数组中,使用插入法,可以每次将进程插入到对应的数组位置

问题2 )计算完成时间、周转时间、权利周转时间。

完成时间=上一个进程的完成时间和当前进程到达时间的最大服务时间

周转时间=当前进程的完成时间-当前进程的到达时间

授权周转时间=当前流程周转时间/当前流程服务时间

平均周转时间=所有周转时间之和/进程数

2、流程图:

实验代码: # include ' stdio.h ' # include ' string.h ' # include ' stdlib.h ' typedefstructproject { charname [ 20 ]; //进程名称double arrive_time; //到达时间double serve_time; //服务时间double finish_time; //完成时间双周期_ time; //周转时间double weighted_cycling_time; //选民周转时间(pro ); //FCFS算法void FCFS () {int n; //进程数printf (输入进程数: ); scanf('%d ',n ); getchar (; Pro pro[50]; //进程条目for(intI=0; i n; I ) {Pro pro_cur; //输入当前进程printf (进程名称: ); scanf('%s ',pro_cur.name ); //输入进程名称printf (到达时间: ); scanf('%lf”,pro_cur.arrive_time ); //输入进程到达时间printf (服务时间: ); //输入进程服务时间Scanf('%lf”,pro_cur.serve_time ); 打印((n ); int j=i-1; while (j=0pro _ cur.arrive _ time pro [ j ].arrive _ time ) )//将首先运行,当前进程将返回到对应的位置pro[j 1]=pro[j]; j----; }pro[j 1]=pro_cur; }printf (进程名称t到达时间t服务时间n ); for(intI=0; i n; I ) (printf ) (s(t ) 0.2lf ) t ) 0.2lf ) n )、pro[i].name、pro[i].arrive_time、pro [ I ].serve _ time } //当前时刻for(intI=0; i n; I ) ) /计算完成时间、周转时间、权利周转时间if(cur_time=pro[I].arrive_time ) ) pro [ I ].finish _ time=cur _ time pro [ I ] } else { pro [ I ].finish _ time=pro [ I ].arrive _ time pro [ I ].serve _ time; } pro [ I ].cycling _ time=pro [ I ].finish _ time-pro [ I ].arrive _ time; pro [ I ].weighted _ cycling _ time=pro [ I ].cycling _ time/pro [ I ].serve _ time; cur_time=pro[i].finish_time; }printf (进程名称(t到达时间(t服务时间(t完成时间) t周转时间) t周转时间(n ) ); for(intI=0; i n; I ) printf (' % st % 0.2 lft % 0.2 lft % 0.2 lft % 0.2 lfn ',pro[i].name,Pro[I].I ) ) ) 返回0; (/) 5a0)4b1 ) 3c2) 5d3) 2e4) /实验结果:(截图) ) )

实验总结:(心得)通过这次实验,加深了对各个流程算法的理解,了解了每个流程算法的实现过程和代码表示,以及完成时间、周转时间、权利周转时间等计算方法,理论与实践很好地结合,今后的操作

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。