进程调度FCFS算法.pdfVIP

  • 1
  • 0
  • 约2.91千字
  • 约 6页
  • 2022-06-14 发布于境外
  • 举报
进程调度 FCFS 算法 实验题目:进程调度 FCFS 算法 院 系: 班级学号: 姓 名: 指导老师: 二 0 一 四 年 上 学 期 , 实验题目:进程调度 FCFS 算法 , 实验内容:在 Windows XP、Windows 2000 等操作系统下,使用 C 语言,利用相应的 WIN32 API 函数,编写程序实现进程或作业先 来先服务算法。 , 实验目的:通过这次实验,加深对进程概念的理解,进一步掌握 进程状态的转变、进程调度的策略及对系统性能的评价方法 , 实验原理:问题分析及算法设计(流程图) 开 始 初始化所有 JCB 使 JCB 按作业提交的时刻先后顺序排队 时间量 T1=0 调度队首的作业投入运行 (更改队首指 针,使作业的状态为 R,作业开始运行的 时刻为 Tb 计算并打印运行作业;完成时刻 TC,周转时间 Ti;带权周转时间 Wi; (完成时刻 Tc=开始运行时刻+运行时间 周转时间 Ti=完成时刻—提交时刻 更改时间量 T 的值 (Ti=T+作业的运行时间) 不空 等待队列空, 空 计算平均周转时间 结束 实验源代码: #include cstdlib #include iostream #includeiomanip using namespace std; struct fcfs{ char name[10]; float arrivetime; float servicetime; float starttime; float finishtime; float zztime; float dqzztime; }; //定义一个结构体,里面包含的有一个进程相关的信息 fcfs a[100]; void input(fcfs *p,int N) { int i; coutendl; printf( 请您输入进程的 名字 到达时间 服务时间: (例如: a 0 100)\n\n); for(i=0;i=N-1;i++) { printf( 请您输入进程%d 的信息:\t,i+1); scanf(\t\t\t%s%f%f,p[i].name,p[i].arrivetime,p[i].servicetime); } } void Print(fcfs *p,float arrivetime,float servicetime,float starttime,float finishtime,float zztime,float dqzztime,int N) { int k; printf(\n\n 调用先来先服务算法以后进程运行的顺序是: ); printf(%s,p[0].name); for(k=1;kN;k++) { printf(--%s,p[k].name); } coutendl; printf(\n 具体进程调度信息:\n); printf(\t 进程名 到达时间 服务时间 开始时间 结束时间 周转时间 带权周 转时间\n); for(k=0;k=N-1;k++) { printf(\t%s\t%-.2f\t %-.2f\t %-.2f\t %-.2f\t %-.2f\t %- .2f\n,p[k].n ame,p[k].arrivetime, p[k].servicetime,p[k].starttime,p[k].finishtime,p[k].zztime,p[k].dqz ztime); } getchar(); //此处必须要有这个函数,否则就看不到显示器上面 的输出,可以看到的结果只是一闪而过的一个框剪 } void sort(fcfs *p,int N) //排序 { for(int i=0;i=N-1;i++) for(int j=0;j=i;j++) if(p[i].arrivetimep[j].arrivetime) { fcfs temp; temp=p[i]; p[i]=p[j]; p[j]=temp; } } void deal(fcfs *p, float arrivetime,float servicetime,float starttime

文档评论(0)

1亿VIP精品文档

相关文档