操作系统-FCFS与FJS算法-作业调度算法.docxVIP

  • 36
  • 0
  • 约5.22千字
  • 约 10页
  • 2020-11-08 发布于天津
  • 举报

操作系统-FCFS与FJS算法-作业调度算法.docx

实验项目名称: 作业调度算法 实验目的: 加深作业概念的理解 模拟先来先服务 (FCFS)与短作业优先调度算法 (SJF) 实验要求: 模拟先来先服务 (FCFS)与短作业优先调度算法 (SJF)运行 实验原理: 作业调度算法 1).先来先服务调度算法 先来先服务 (FCFS)调度算法是一种最简单的调度算法, 每次调度都从后备作 业队列中选择一个或多个最先进入该队列的作业, 将它们调入内存, 为它们分配 资源、创建进程,然后放入就绪队列。 2).短作业优先调度算法 短作业优先调度算法 (SJF),是指对短作业优先调度的算法。 短作业优先 (SJF) 的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业, 将它们 调入内存运行。 算法分析: #includestdio.h #define N 50 void main() { void fcfs(); void sjf(); int a; while(true) { printf(\n\n); printf(\t\t/*************************/); */);*/);*/\n);printf(\n\t\t/* 1、 */); */); */\n); printf(\n\t\t/* 2 、sjf 调 度 printf(\n\t\t/* 0、 退 出 printf(\t\t/*************************/); printf(\n\n\t 请选择菜单项: \t); scanf(%d,a); printf(\n); switch(a) { case 1: fcfs();break; case 2: sjf();break; default: break; } if(a!=1a!=2) break; } } void fcfs() { int i,j,n,min,px; float sum1,sum2; printf(\t 请输入有 n个进程 (0n=50):\t); scanf(%d,n); while(n50||n=0) { printf(n\t 请重新输入: ); scanf(%d,n); } printf(\n\n); struct Gzuo{ int id; // 进程名字 int dt; // 到达时刻 int st; //服务时间 int wct; //完成时刻 float zt; //周转时间 float dczt; //带权周转时间 }; Gzuo a[N]; for(i=0;in;i++) { { { { a[i].id=i+1; printf(\t 到达时间: ); scanf(%d,a[i].dt); printf(\t 服务时间: ); scanf(%d,a[i].st); printf(\n); } for(j=n-1;j=0;j--) { for(i=0;ij;i++) { if(a[i].dta[i+1].dt) { min=a[i].dt; a[i].dt=a[i+1].dt; a[i+1].dt=min; min=a[i].st; a[i].st=a[i+1].st; a[i+1].st=min; min=a[i].id; a[i].id=a[i+1].id; a[i+1].id=min; } } } a[0].wct=a[0].st+a[0].dt; a[0].zt=(float)a[0].st; a[0].dczt=a[0].zt/a[0].st; for(i=1;in;i++) { if(a[i].dta[i-1].wct) { a[i].wct=a[i].dt+a[i].st; a[i].zt=(float)a[i].st; a[i].dczt=a[i].zt/a[i].st; } else } } a[i].wct=a[i-1].wct+a[i].st; a[i].zt=(float)(a[i].wct-a[i].dt); a[i].dczt=a[i].zt/a[i].st; } } printf(\t1 、按 id号依次输出 \n); printf(\t2 、按完成顺序依次输出 \n); printf(\n\t 请选择输出顺序 :\t); scanf(%d,px); printf(\nid :到达时间 \t 服务时间 \t 完成时间 \t 周转时间 \t 带权周转时 间\n); sum1=0; sum2=0; switch(px) { case 2: { for(i=0;in;i++) { printf(%d : %d\t\t%d\t\t%d\t\t%.0f\t\t%.2f\n,a[i].id,a[i].dt,a[i].st,a[i].wct,a[i].zt,a[i ].dczt);

文档评论(0)

1亿VIP精品文档

相关文档