设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1541|回复: 3
打印 上一主题 下一主题

[求助]批处理系统中作业调度算法模拟——最高响应算法

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-4 02:00:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
批处理系统中作业调度算法模拟——最高响应算法
要求:
1.内存空间大小,如可设打印机数目
2.作业用链表做:一个结点一个作业(作业名.ID 作业估计时间 等待时间 打印机数目 绘图机数目 作业大小)
3.作业调度:用较高响应比算法
4.显示 (要有删除)
5.结束

谢谢各位高手解答!!!
2#
发表于 2009-11-4 02:00:43 | 只看该作者
响应时间/运行时间.

每运行一个刷新这个值,每次选取最高者执行,同时将已经执行完的删除.
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-4 02:00:44 | 只看该作者
你牛B 什么啊 ?!?!
大爷我编出来了!!
没用别人帮忙!!
你可以鄙视我,可你照样被千千万万的人鄙视着!!

#include"stdlib.h"
#include"string.h"
#include"iostream.h"
typedef struct cj
{char name[6];
int length;
int printer;
int tape;
int runtime;
int waittime;
struct cj *next;
}cj;
cj *head;
int tape,printer;
long memory;

void shedule()
{float xk,k;
cj *p,*q,*s,*t;
do
{p=head;
q=s=NULL;
k=0;
while(p!=NULL)
{if(p->length<=memory&&p->tape<=tape&&p->printer<=printer)
{xk=(float)(p->waittime)/p->runtime;
if(q==NULL||xk>k)
{k=xk;
q=p;
t=s;
}
}
s=p;
p=p->next;
}
if(q!=NULL)
{if(t==NULL)
head=head->next;
else
t->next=q->next;
memory=memory-q->length;
tape=tape-q->tape;
printer=printer-q->printer;
cout<<"选中作业的作业名:"<<q->name<<"\n";
}
}while(q!=NULL);
}

void main()
{
int size,tcount,pcount,wtime,rtime;
char name[6];
cj *p;
memory=65536;
printer=2;
tape=4;
head=NULL;
cout<<"输入作业相关数据(以作业大小为负数停止输入):\n";
cout<<"输入作业名、作业大小、磁带机数、打印机数、等待时间、估计执行时间\n";
cin>>name>>size>>tcount>>pcount>>wtime>>rtime;
while(size!=-1)
{p=(cj*)malloc(sizeof(cj));
strcpy(p->name,name);
p->length=size;
p->printer=pcount;
p->tape=tcount;
p->runtime=rtime;
p->waittime=wtime;
p->next=head;
head=p;
cout<<"输入作业名、作业大小、磁带机数、打印机数、等待时间、估计执行时间\n";
cin>>name>>size>>tcount>>pcount>>wtime>>rtime;
}
shedule();
}
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-4 02:00:45 | 只看该作者
???
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-19 00:47 , Processed in 0.096493 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表