云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 小型仿真操作系统实验报告

小型仿真操作系统实验报告

  • 62 次阅读
  • 3 次下载
  • 2026/1/27 10:02:08

实验二:批处理系统中作业调度

1.实验目的

加深对作业调度算法的理解。 2.实验内容

此实验模拟批处理系统中的作业调度,并采用响应比高者优先算法作为作业调度算法。 3.实验原理

实验采用最高响应比算法实现对作业的调度,响应比为作业的等待时间和作业估计执行时间之比。在不断调用进程的过程中,作业的响应比动态变化。

输入作业数量,输入作业信息,用数组储存,当达到设置的作业数量时,输入结束,依次判断每个作业是否满足条件,满足的话在进行下面的运算,在第一次作业调度时,找到到达时间最早的那个作业,输出,若不止一个最早,就调度第一个最早到达的。然后修改系统运行时间和每个作业的相关信息,用flag进行标记,当flag为0时表示作业仍未到达,当为1时,表示作业等待,flag=2时,作业调度完。执行多次操作,知道作业全部调度完为止。 4.实验源程序

#include #include #include using namespace std; #define max 100 struct jcb {

string name; /*作业名*/

int length; /*作业长度,所需主存大小*/ int printer; /*作业执行所需打印机的数量*/ int tape; /*作业执行所需磁带机的数量*/ int runtime; /*作业估计的执行时间*/ int waittime; /*作业在输入井中的等待时间*/ int reachtime; int flag;

}JCB[max]; /*作业控制块类型定义*/ int tape,printer; int memory; int n,w;

static systemruntime=0;

8

void input( )//创建进程,等待时间/执行时间响应比高 { int c; n=0;

cout<<\输入作业个数:\ cin>>c; while(c!=0) { cout<<\作业名: \

cin>>JCB[n].name;

cout<<\作业长度(MB): \ cin>>JCB[n].length; cout<<\需打印机: \ cin>>JCB[n].printer; cout<<\需磁带机: \ cin>>JCB[n].tape;

cout<<\到达时间: \

cin>>JCB[n].reachtime; cout<<\运行时间: \ cin>>JCB[n].runtime; JCB[n].flag =0; JCB[n].waittime =0; n++; c--;

}

}

void judge() { w=0;

for(int j=0;j

JCB[w].name=JCB[j].name;

9

}

} n=w;

}

JCB[w].length=JCB[j].length; JCB[w].printer=JCB[j].printer; JCB[w].tape=JCB[j].tape;

JCB[w].reachtime=JCB[j].reachtime; JCB[w].runtime=JCB[j].runtime; JCB[w].flag=JCB[j].flag; JCB[w].waittime=JCB[j].waittime; w=w+1;

void output() {

cout<<\作业相关信息\

cout<<\作业名\作业长度\打印机\磁带机\到达时间\运行时间\

for(int i=0;i

cout<

<<\}

void hrrn() {

int waittime;

int mintime;/*最早到达时间*/ int q=0; int k,i,j; int runtime; double hrrf;

mintime=JCB[0].reachtime ;

for(i=1;i

if(JCB[i].reachtime

for(i=0;i

10

if(JCB[i].reachtime ==mintime)

{

cout<

if(j==i)continue;

if(JCB[j].reachtime<=JCB[i].reachtime +JCB[i].runtime )//作业正在执行时,有作业到达

{

JCB[j].waittime=JCB[i].reachtime+JCB[i].runtime-JCB[j].reachtime ;//等待时间

}

runtime=JCB[i].reachtime +JCB[i].runtime;//系统的执行时间 break; }

JCB[j].flag =1; }

k=1;

while(k

for(i=0;i

if(JCB[i].flag ==1)//等待状态中的作业 {

hrrf=(JCB[i].waittime+JCB[i].runtime)

/JCB[i].runtime ;//i的响应比计算,i是第一个状态值为1的

}

break;

for(j=i+1;j

if((JCB[j].flag==1)&&(((JCB[j].waittime+JCB[j].runtime)

/JCB[j].runtime) >hrrf))

{

hrrf=(JCB[j].waittime+JCB[j].runtime) /JCB[j].runtime;

q=j;

11

搜索更多关于: 小型仿真操作系统实验报告 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

实验二:批处理系统中作业调度 1.实验目的 加深对作业调度算法的理解。 2.实验内容 此实验模拟批处理系统中的作业调度,并采用响应比高者优先算法作为作业调度算法。 3.实验原理 实验采用最高响应比算法实现对作业的调度,响应比为作业的等待时间和作业估计执行时间之比。在不断调用进程的过程中,作业的响应比动态变化。 输入作业数量,输入作业信息,用数组储存,当达到设置的作业数量时,输入结束,依次判断每个作业是否满足条件,满足的话在进行下面的运算,在第一次作业调度时,找到到达时间最早的那个作业,输出,若不止一个最早,就调度第一个最早到达的。然后修改系统运行时间和每个作业的相关信息,用flag进行标记,当flag为0时表示作业仍未到达,当为1时,表示作业等待,flag=2时,作业调度完。执行多次操作,知道作业全部调

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com