首页 > 编程知识 正文

动态优先级调度算法,c语言与或非优先级

时间:2023-05-05 21:42:32 阅读:40474 作者:554

另一方面,问题描述采用c语言实现优先级调度算法。 编制进程调度仿真程序,计算每个进程的周转时间、周转时间以及所有进程的平均周转时间和平均周转时间。

二、源代码# include iostream # includeiomanip//格式输出using namespace std; //最大进程数#define MAXSIZE_N 10//定义数据结构struct PCB{int number; //进程代码int arrive_time; //到达时间int serve_time; //服务时间int优先级; //优先级int finish_time=0; //记录运行结束时刻; int main () {int n; //进程总数PCB p_list[MAXSIZE_N]; //PCB数组cout'======非抢占优先级算法======n '; //请输入读取进程信息cout '进程总数: '; cinn; for(intI=0; in; {cout'n'i 1':n请依次输入进程的信息n进程编号number='; cinp_list[i].number; cout '到达时间arrive_time='; cin p_list[i].arrive_time; cout '服务时间serve_time='; cin p_list[i].serve_time; cout '优先级优先级='; cin p_list[i].priority; //进程执行的序列work_listint work_list[n]; for(intI=0; in; I )//元素表示运行的进程在p_list中的下标,下标表示执行顺序work_list[i]=i; (}int temp=0; for(intI=0; in; I () /按照先到达时间顺序for(intj=0; jn-i-1; j ) if (p _ list [ j ].arrive _ timep _ list [ J1 ].arrive _ time ) {temp=work_list[j]; work_list[j]=work_list[j 1]; work_list[j 1]=temp; }}for(intI=0; in; I ()//进而按照优先顺序for(intj=0; jn-i-1; j () if ) p _ list [ j ].arrive _ time==p _ list [ J1 ].arrive _ timep _ list [ j ].priority p _ list [ J1 ] . work_list[j 1]=temp; }//执行进程int time=p _ list [ work _ list [0].arrive _ time; //运行的时刻cout'n调度编号“setw(20 )”运行的过程编号“setw(20 )”优先顺序“setw(20 )”“运行开始时刻“setw(20 )””“运行时间” for(intI=0; in; 运行I () /进程,然后执行cout(n(I1setw ) 17 ) p_list[work_list[I].number setw ] 19 ) p _ list [ work _ list [ I ] p _ list [ work _ list [ I ].finish _ time=time; 计数时间; //每个过程的旋转时间cout'nn过程代码“setw(17 )”完成时间“setw(17 )”旋转时间“setw(17 )”的权利旋转时间); 浮动工作_ time; //记录翻转时间float time_sum=0记录总旋转时间float weight_time; //记录磁带周转时间float weight_sum=0; //记录总所有权周转时间for (inti=0; in; I ) { work _ time=p _ list [ I ].finish _ time-p _ list [ I ].arrive _ time; 时间_ sum=work _ time; weight_time=work_time/(float ) p_list[i].serve_time; weight_sum=weight_time; cout 'n ' p _ list [ I ].number setw (17 ) p _ list [ I ].finish _ timesetw (19 ) work _ timesetw (19 ) weight ) (/)平均(所有权)周转时间cout(n(n平均周转时间: ) time_sum/n; cout'n平均所有权周转时间' weight_sum/n; (三、运行结果截图第一屏

第二屏幕

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