操作系统结课实验报告(3)

2019-04-23 12:39

}//while

shedule(); //进行作业调度 }//main()函数结束

/*************************短作业优先*********************/ //将上述实验中的作业调度算法改为短作业优先调度算法重新完成上述工作:

#include \#include #define n 20 typedef struct jcb {

char name[4]; int length; int printer; int tape; int runtime; int waittime; int next; }JCB; int head; int tape,printer; long memory;

11 页 第

JCB jobtable[n]; int jobcount=0; schedule() {

float xk,k; int p,q,s,t; do {

p=head; q=s=-1; k=10000; while(p!=-1) {

if(jobtable[p].length<=memory&&jobtable[p].tape<=tape&&jobtable[p].printer<=printer) {

xk=jobtable[p].length; if(q==0||xk

12 页 第

t=s; } } s=p;

p=jobtable[p].next; } if(q!=-1) {

if(t==-1) {

head=jobtable[head].next; } else

jobtable[t].next=jobtable[q].next; memory=memory-jobtable[q].length; tape=tape-jobtable[q].tape;

printer=printer-jobtable[q].printer;

printf(\选中作业的作业名:%s\\n\ }

}while(q!=-1); }

void main()

13 页 第

{

char name[4];

int size,tcount,pcount,wtime,rtime; int p; memory=65536; tape=4; printer=4; head=-1;

printf(\请输入作业相关的数据(以作业大小为负数停止输入):\\n\

printf(\作业名-作业大小-磁带机数-打印机数-等待时间-估计执行时间\\n\

scanf(\rtime);

while(size!=-1) {

if(jobcount

printf(\无法在创建作业\\n\ break;

14 页 第

}

jobcount++;

strcpy(jobtable[p].name,name); jobtable[p].length=size; jobtable[p].printer=pcount; jobtable[p].tape=tcount; jobtable[p].runtime=rtime; jobtable[p].waittime=wtime; jobtable[p].next=head; head=p;

printf(\作业名-作业大小-磁带机数-打印机数-等待时间-估计执行时间\\n\

scanf(\rtime); }

schedule(); }

15 页 第


操作系统结课实验报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人防施工方案带图

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: