操作系统作业调度.docx

上传人:b****4 文档编号:4690995 上传时间:2023-05-07 格式:DOCX 页数:13 大小:96.20KB
下载 相关 举报
操作系统作业调度.docx_第1页
第1页 / 共13页
操作系统作业调度.docx_第2页
第2页 / 共13页
操作系统作业调度.docx_第3页
第3页 / 共13页
操作系统作业调度.docx_第4页
第4页 / 共13页
操作系统作业调度.docx_第5页
第5页 / 共13页
操作系统作业调度.docx_第6页
第6页 / 共13页
操作系统作业调度.docx_第7页
第7页 / 共13页
操作系统作业调度.docx_第8页
第8页 / 共13页
操作系统作业调度.docx_第9页
第9页 / 共13页
操作系统作业调度.docx_第10页
第10页 / 共13页
操作系统作业调度.docx_第11页
第11页 / 共13页
操作系统作业调度.docx_第12页
第12页 / 共13页
操作系统作业调度.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

操作系统作业调度.docx

《操作系统作业调度.docx》由会员分享,可在线阅读,更多相关《操作系统作业调度.docx(13页珍藏版)》请在冰点文库上搜索。

操作系统作业调度.docx

操作系统作业调度

课程实验报告

专业年级

课程名称操作系统

指导教师

学生姓名

学号

实验日期

实验地点

实验成绩

 

教务处制

20年月日

实验项目

名称

作业调度

实验

目的及要求

(二)实验目标

1、加深作业概念的理解;

2、掌握选择作业调度算法的准则;

3、掌握作业调度算法。

(三)实验要求

1、编写程序完成实验内容;

2、对测试数据进行分析;

3、撰写实验报告。

 

实验

内容

1、设计可用于该实验的作业控制块;

2、动态或静态创建多个作业;

3、模拟先来先服务调度算法和短作业优先调度算法。

4、调度所创建的作业并显示调度结果(要求至少显示出各作业的到达时间,服务时间,开始时间,完成时间,周转时间和带权周转时间);

5、比较两种调度算法的优劣

 

实验步骤

1、该实验的作业控制块为:

structjcb//作业控制块

{

charname[10];//作业名

intreachtime;//作业到达时间

intstarttime;//作业开始时间

intneedtime;//作业需要运行的时间

intfinishtime;//作业完成时间

floatcycletime;//作业周转时间

floatcltime;//作业带权周转时间

charstate;//作业状态

structjcb*next;//结构体指针

}

2、动态或静态创建多个作业:

本实验创建了3个作业。

作业创建的代码如下:

voidinital()//建立作业控制块队列

{inti;

printf("\n输入作业数:

");

scanf("%d",&n);

for(i=0;i

{

p=getpch(JCB);

printf("\n输入作业名:

");

scanf("%s",p->name);

getch();

p->reachtime=i;

printf("作业默认到达时间:

%d",i);

printf("\n输入作业需运行时间:

");

scanf("%d",&p->needtime);

p->state='W';

p->next=NULL;

if(ready==NULL)

ready=q=p;

else{

q->next=p;

q=p;

}

}

}

3、模拟先来先服务调度算法和短作业优先调度算法:

先来先服务算法:

voidfcfs(intm)

{inti,iden;

system("cls");

inital();

for(i=0;i

p=ready;iden=1;

do{

if(p->state=='W'&&p->reachtime<=times)

iden=0;

if(iden)p=p->next;

}while(p!

=NULL&&iden);

if(iden)

{

i--;

printf("\n没有满足要求的进程,需等待");

times++;

if(times>100){printf("\n时间过长");getch();

}

}

else{

running(p,m);//调用running()函数

}

}

final();//调用running()函数

}

短作业优先调度算法:

voidsjf(intm){

JCB*min;

inti,iden;

system("cls");

inital();

for(i=0;i

p=min=ready;iden=1;

do{

if(p->state=='W'&&p->reachtime<=times)

if(iden){

min=p;iden=0;

}

elseif(p->needtimeneedtime)min=p;

p=p->next;

}while(p!

=NULL);

if(iden){

i--;

times++;

if(times>100)

{printf("\nruntimeistoolong...error");

getch();

}

}

else{

running(min,m);//调用running()函数

}

}

final();//调用running()函数

}

4、调度所创建的作业并显示调度结果如下:

算法1先来先服务算法:

算法2最短优先算法:

 

5.比较两种调度算法的优劣:

两种算法所使用的数据如下:

作业名

作业所需的运行时间

yyyy

4

zzzz

6

从上面算法的运行结果看出:

先来先服务算法中:

三个作业的的平均周转时间为:

6.500000

三个作业的的平均带权周转时间为:

1.250000

最短优先算法中:

三个作业的的平均周转时间为:

49.500000

三个作业的的平均带权周转时间为:

10.000000

从三组数据的分析可知:

先来先服务算法比最短优先算法的在作业运行效率方面较好。

实验环境

计算机Window7MicrosoftVisualC++6.0、“记事本”程序

 

实验结果与

分析

该实验程序的结果的截图如下:

1、开始界面:

 

2、算法选择:

 

3、算法1先来先服务:

4、算法1下作业的运行情况:

5、算法2最短作业优先:

 

6、算法2下作业的运行情况:

本实验用三组数据得出了先来先服务算法比最短优先算法更有效,使用不同的数据得出的结论可能会有偏差。

 

教师评语

注:

可根据实际情况加页

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2