操作系统实验二 作业调度实验 一、目的要求 用高级语言编写和调试一个或多个作业调度的模拟程序,以加深对作业调度算法的理解
编写并调试一个单道处理系统的作业等待模拟程序
作业等待算法:分别采用先来先服务(FCFS),最短作业优先(SJF)、响应比高者优先(HRN)的调度算法
对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间,以比较各种算法的优缺点
#include "stdio
h" #include #include #define getpch(type) (type*)malloc(sizeof(type)) //#define NULL 0 struct worktime{ float Tb; //作业运行时刻 float Tc; //作业完成时刻 float Ti; //周转时间 float Wi; //带权周转时间 }; struct jcb { /*定义作业控制块 JCB */ char name[10]; //作业名 float subtime; //作业提交时间 float runtime; //作业所需的运行时间 char resource; //所需资源 float Rp; //后备作业响应比 char state; //作业状态 struct worktime wt; struct jcb* link; //链指针 } *jcb_ready=NULL,*j; typedef struct jcb JCB; float T=0; v oid sort() /* 建立对作业进行提交时间排列函数*/ { JCB *first, *second; int insert=0; if((jcb_ready==NULL)||((j->subtime)subtime))) /*作