实验二作业调度实验

发布 2022-09-05 17:55:28 阅读 5732

西北农林科技大学信息工程学院实习报告。

课程操作系统学院信息工程专业年级软件151 学号 2015012893 姓名张鑫

周次第八周交报告时间 2017.5.5成绩

一。 目的要求:

用高级语言编写和调试一个或多个作业调度的模拟程序,以加深对作业调度算法的理解。

二、实验内容:

1、编写并调试一个单道处理系统的作业等待模拟程序。

作业等待算法:分别采用先来先服务(fcfs),最短作业优先(sjf)、响应比高者优先(hrn)的调度算法。

流程图如下:

1、响应比高者优先算法流程图:

2、先来先服务调度算法流程图:

3、短作业优先算法调度流程图:

实验**如下:

#include<>

#include<>

#include<>

struct jcb

elsefclose(fp); 关闭文件。

m=i-1;

return m;

/菜单。void menu()

printf("作业调度n");

printfn");

printf0.退出n");

printf1.先来先服务 (fcfs) 调度算法 |");

printf2.短作业优先 (sjf) 调度算法 |");

printf3.响应比高者优先 (hrrn) 调度算法 |");

printfn");

void displayone(float p,char *h,int i,int j)

strcpy(h,jcb[i].name);

strcpy(jcb[i].name,jcb[j].name);

strcpy(jcb[j].name,h);

p=jcb[i].arrtime;

jcb[i].arrtime=jcb[j].arrtime;

jcb[j].arrtime=p;

p=jcb[i].runtime;

jcb[i].runtime=jcb[j].runtime;

jcb[j].runtime=p;

p=jcb[i].starttime;

jcb[i].starttime=jcb[j].starttime;

jcb[j].starttime=p;

p=jcb[i].finishtime;

jcb[i].finishtime=jcb[j].finishtime;

jcb[j].finishtime=p;

void displaytow(int i,int y)

printf("");

printf("作业%s先开始运行",jcb[0].name);

float **gcycletime,****aluecycletime,k=0,m=0;//**gcycletime为平均周转时间,****aluecycletime为平均带权周转时间。

for(i=0;i

**gcycletime=k/y;//平均旋转时间。

****aluecycletime=m/y;//平均带权旋转时间。

printf("作业名提交时间开始时间运行时间结束时间等待时间周转时间带权周转时间");

for(i=0;i printf("%s\t%.2f\t%.2f\t%4.

2f\t%6.2f\t%7.2f\t%7.

2f\t%8.2f",jcb[i].name,jcb[i].

arrtime,jcb[i].starttime,jcb[i].runtime,jcb[i].

finishtime,jcb[i].waittime,jcb[i].tatime,jcb[i].

tawtimei);

printf("平均周转时间为:")

printf("%2f",**gcycletime);

printf("平均带权周转时间为:")

printf("%2f",****aluecycletime);

void fcfs(int y)//先来先服务算法。

float p;

int i,j;

char h[100];

for(i=0;i

displaytow(i,y);

void sjf(int y)//短作业优先算法。

float p;

int i,j;

char h[100];

for(i=0;i

for(i=1;i

displaytow(i,y);

void hrrn(int y)//响应比高者优先算法。

int i,j;

float p;

char h[100];

for(i=0;i

实验二作业调度实验

一。实验目的要求 用高级语言编写和调试一个或多个作业调度的模拟程序,以加深对作业调度算法的理解。二。实验要求 1 编写并调试一个单道处理系统的作业等待模拟程序。作业等待算法 分别采用先来先服务 fcfs 最短作业优先 sjf 响应比高者优先 hrn 的调度算法。对每种调度算法都要求打印每个作业开始运...

实验2作业调度

实验二作业调度模拟程序。1.实验目的。1 加深对作业调度算法的理解 2 进行程序设计的训练。2 实验要求。用高级语言编写一个或多个作业调度的模拟程序。单道批处理系统的作业调度程序。作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所运行的时...

操作系统作业调度实验

实验一进程。2011210549 崔晶。1.本实验实现的功能有 创建一个进程,撤销一个进程,挂起一个进程。2.本实验初始化的进程块状态如图所示 自定义 p表示正在运行,r表示就绪,w表示等待。3.程序如下 include include 进程块的数据结构。struct pcb struct 插入等待...