- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统作业调度.
课 程 实 验 报 告
专 业 年 级
课 程 名 称 操作系统
指 导 教 师
学 生 姓 名
学 号
实 验 日 期
实 验 地 点
实 验 成 绩
教务处制
20 年 月 日
实验项目
名称 作业调度 实验
目的及要求 (二)实验目标
1、加深概念的理解;
掌握;
。
编写程序完成实验内容;
3、撰写实验报告。
设计可用于该实验的控制块
2、 动态或静态创建多个;
模拟。
调度所创并显示调度结果
5、 比较两种调度算法的优劣
实验步骤 该实验的控制块{
char name[10]; //作业名
int reachtime; //作业到达时间
int starttime; //作业开始时间
int needtime; //作业需要运行的时间
int finishtime; //作业完成时间
float cycletime; //作业周转时间
float cltime; //作业带权周转时间
char state; //作业状态
struct jcb *next; //结构体指针
}
动态或静态创建多个
{ int i;
printf(\n输入作业数:);
scanf(%d,n);
for(i=0;in;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;
}
}
}
模拟{ int i,iden;
system(cls);
inital();
for(i=0;in;i++){
p=ready;iden=1;
do{
if(p-state==Wp-reachtime=times)
iden=0;
if(iden)p=p-next;
}while(p!=NULLiden) ;
if(iden)
{
i--;
printf(\n没有满足要求的进程,需等待);
times++;
if(times100){printf(\n时间过长);getch();
}
}
else{
running(p,m); //调用running()函数
}
}
final(); //调用running()函数
}
短作业优先调度算法:
void sjf(int m) {
JCB *min;
int i,iden;
system(cls);
inital();
for(i=0;in;i++) {
p=min=ready;iden=1;
do{
if(p-state==Wp-reachtime=times)
if(iden){
min=p;iden=0;
}
else if(p-needtimemin-needtime) min=p;
p=p-next;
}while(p!=NULL) ;
if(iden) {
i--;
times++;
if(times100)
{printf(\nruntime is too long...error);
getch();
}
}
else{
running(min,m); //调用running()函数
}
}
final(); //调用running()函数
}
调度所创并显示调度结果
算法2最短优先算法:
5. 比较两种调度算法的优劣:
两种算法所使用的数据如下:
作业名
作业所需的运行时间
yyyy
4
zzzz
6
从上面算法的运行结果看出:
先来先服务算法中:
三个作业的的平均周转时间为:6.500000
三个作业的的平均带权周转时间为:1.250000
最短优先算法中:
三个作业的的平均周转时间为:49.5
文档评论(0)