一、目的和要求
1. 实验目的
(1)加深对作业调度算法的理解;
(2)进行程序设计的训练。
2.实验要求
用高级语言编写一个或多个作业调度的模拟程序。
二、实验内容
根据指定的实验课题,完成设计、编码和调试工作,完成实验报告。
三、实验环境
可以采用TC,也可以选用Windows下的利用各种控件较为方便的VB,VC等可视化环境。也可以自主选择其他实验环境。
四、实验原理及核心算法参考程序段
#include<stdio.h> #define N 5 typedef struct JOB { char name[N]; int clock; int time; char zt; }JOB; //void FCFS(int n,JOB job[]); //void SJF(int n,JOB job[]); //void HRRN(int n,JOB job[]); void main(){ int n; int i,m; JOB job[N]; printf("请输入作业个数:(2到5个)"); scanf("%d",&n); for(i=0;i<n;i++) { printf("按顺序输入第%d个作业的作业名,到达时间,完成作业所需时间 ",i+1); scanf("%s",&job[i].name); getchar(); scanf("%d",&job[i].clock); getchar(); scanf("%d",&job[i].time); printf("第%d个作业的作业名为%s,到达时间为%3d,完成作业所需时间为%3d ",i+1,job[i].name,job[i].clock,job[i].time); } printf("请选择算法: "); printf("选择先来先服务算法请输入1; "); printf("选择短作业优先算法请输入2; "); printf("选择最高相应比算法请输入3; "); scanf("%d",&m); if(m==1) FCFS(n,job); else if(m==2) SJF(n,job); else if(m==3) HRRN(n,job); else printf("!!输入错误! "); }
五、实验结果
六、实验总结
在完成这个实验的时候,具体作业调度算法是会的,但是由于还需要按到达时间或是完成所需时间排序,这里卡住了,
总体来说,实验内容的核心已经理解了。