OS实验报告——作业调度模拟程序

一、目的和要求 1. 实验目的
(1)加深对作业调度算法的理解;
(2)进行程序设计的训练。
2.实验要求
用高级语言编写一个或多个作业调度的模拟程序。
单道批处理系统的作业调度程序。作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所运行的时间等因素。
作业调度算法:
1)采用先来先服务(FCFS)调度算法,即按作业到达的先后次序进行调度。总是首先调度在系统中等待时间最长的作业。
2)短作业优先 (SJF) 调度算法,优先调度要求运行时间最短的作业。
3)响应比高者优先(HRRN)调度算法,为每个作业设置一个优先权(响应比),调度之前先计算各作业的优先权,优先数高者优先调度。RP (响应比)= 作业周转时间 / 作业运行时间=1+作业等待时间/作业运行时间
每个作业由一个作业控制块JCB表示,JCB可以包含以下信息:作业名、提交(到达)时间、所需的运行时间、所需的资源、作业状态、链指针等等。
作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种之一。每个作业的最初状态都是等待W。
二、实验内容 根据指定的实验课题,完成设计、编码和调试工作,完成实验报告。
三、源代码

#include #include #includestruct job { char name[10]; //作业名 char status; int arrtime; //到达时间 int reqtime; //要求服务时间 int startime; //开始时间 int finitime; //结束时间float TAtime,TAWtime; //周转时间、带权周转时间 float prio; //优先级 float resratio; //响应比}jobarr[24],jobfin[24],job[24]; int systime=0,num=0; int intarr,intfin,intjob; int temp[100]; void accordingTheInformation(); //显示信息 void sort(); //按到达时间进行排序 void output(); //输出结果void dataAccess(); //选择数据的获取方式void readFile(); //读取文件 void manuallyEnter(); //手动输入模拟函数void algorithmMenu(); //算法菜单void FCFS(); //FCFS算法 void SJF(); //SJF算法 void HRRF(); //HRRF算法main() { //调用选择数据的获取方式方法 dataAccess(); }//显示信息 void accordingTheInformation() {printf("\n\n\t作业名到达时间CPU所需时间\n"); for(int i=0; ijob[j].arrtime){ k = temp[i]; temp[i] = temp[j]; temp[j] = k; } } }}//输出结果 void output() { int i; float AVGTAtime=0,AVGTAWtime=0; //平均周转时间,平均带权周转时间//计算周转时间、带权周转时间 job[temp[0]].startime = job[temp[0]].arrtime; job[temp[0]].finitime = job[temp[0]].startime + job[temp[0]].reqtime; job[temp[0]].TAtime = (float)job[temp[0]].finitime - job[temp[0]].arrtime; job[temp[0]].TAWtime = job[temp[0]].TAtime/job[temp[0]].reqtime; for(i=1; ijob[j].reqtime && temp[i]!=0){ k = temp[i]; temp[i] = temp[j]; temp[j] = k; } } }//输出结果 output(); //再次调用算法菜单 algorithmMenu(); }//HRRF算法 void HRRF(){ int i,j,k=0; printf("\n\n* * * * * * * 响应比最高者优先算法HRRF * * * * * * *"); //显示信息 accordingTheInformation(); //按到达时间进行排序 sort(); //计算最高响应比 for(i=0; i
四、实验结果 1.调用文本写入数据
OS实验报告——作业调度模拟程序
文章图片


【OS实验报告——作业调度模拟程序】

2.调用FCFS算法
OS实验报告——作业调度模拟程序
文章图片




3.调用SJF算法
OS实验报告——作业调度模拟程序
文章图片


4.调用HRRF算法
OS实验报告——作业调度模拟程序
文章图片

转载于:https://www.cnblogs.com/wangzekai/p/5421596.html

    推荐阅读