c语言流水作业问题,作业调度源程序C语言

用C语言写的作业调度

case 'o': insertqueue(& Queue[3],i);jobpcb[i].status='o'; break;

case 'w': insertqueue(& Queue[4],i);jobpcb[i].status='w'; break;

case 'h': jobpcb[i].status='h'; num=jobpcb[i].id;jobtab[num].pcbnum=-1;jobpcb[i].id=-1; }

if(cmd== 'h') {jobpcb[i].wtime=0; total--;}

jobpcb[i].wtime=jobtab [ jobpcb[i].id ].idx[Index].time;

(*total)++;

}

}

}

void save ()

{

FILE *fp;

int i;

fp=fopen("pcbtable.txt","a");

fprintf(fp," 文件名 作业编号 执行到指令数 所处状态 等待时间 \n" );

for(i=0;i<3;i++)

fprintf(fp," \t %s \t %d \t %d \t %c \t %d \n" ,

jobpcb[i].filename,jobpcb[i].id,jobpcb[i].exetoIndex,

jobpcb[i].status,jobpcb[i].wtime );

fclose(fp);

}

//作业入队列

void JobEnQueue( int pcbnum,int Index ,int *total)

{

int num;

char cmd;

if(jobpcb[pcbnum].id>=0)

{

cmd=jobtab[ jobpcb[pcbnum].id ].idx[ Index ].name;

switch(cmd)

{

case 'c': insertqueue(&Queue[1],pcbnum); jobpcb[pcbnum].status='r'; break; case 'i': insertqueue(& Queue[2],pcbnum);jobpcb[pcbnum].status='i'; break;

case 'o': insertqueue(& Queue[3],pcbnum);jobpcb[pcbnum].status='o'; break;

case 'w': insertqueue(& Queue[4],pcbnum);jobpcb[pcbnum].status='w'; break;

case 'h': jobpcb[pcbnum].status='h'; num=jobpcb[pcbnum].id;jobtab[num].pcbnum=-1;jobpcb[pcbnum].id=-1;

}

if(cmd== 'h')

{

jobpcb[pcbnum].wtime=0;

printf(" \n\t\t作业 %d 完成\n", pcbnum+1, jobpcb[ pcbnum].status);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值