?? 批處理作業(yè)調(diào)度.txt
字號(hào):
// 批處理.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<iostream.h>
#define num 5
struct jcb
{
char name[4]; //作業(yè)名
int length; //作業(yè)長度,所需主存大小
int printer; //作業(yè)執(zhí)行所需打印機(jī)的數(shù)量
int tape; //作業(yè)執(zhí)行所需磁帶機(jī)的數(shù)量
int runtime; //作業(yè)估計(jì)的執(zhí)行時(shí)間
int waittime; //作業(yè)在輸入井中的等待時(shí)間
struct jcb *next;//指向下一個(gè)作業(yè)控制塊的指針
}; //作業(yè)控制塊類型定義
jcb k[num]={{"p1",50,2,2,10,28},{"p2",60,2,1,14,28},{"p3",100,1,2,4,10},{"p4",20,1,1,8,20},{"p5",65555,1,0,10,10}};
jcb *head; //作業(yè)隊(duì)列頭指針定義
int tape,printer;
long int memory;
void shedule(int);
void main()
{
int i=0;
int size=0;
jcb *p;
memory=65536;
tape=4;
printer=2;
head=NULL;
cout<<"等待運(yùn)行的作業(yè)的數(shù)目: "<<num<<endl;
cout<<endl;
while( i<num)
{
p=(jcb *)new(jcb);
p=&k[i];
cout<<"就緒隊(duì)列中第"<<i<<"號(hào)作業(yè)"<<endl;
cout<<"作業(yè)名:"<<p->name<<" ";
cout<<"作業(yè)大小:"<<p->length<<" ";
cout<<"磁帶機(jī)數(shù):"<< p->tape<<" ";
cout<<"打印機(jī)數(shù):"<<p->printer<<" ";
cout<<"等待時(shí)間:"<<p->waittime<<" ";
cout<<"估計(jì)執(zhí)行時(shí)間:"<<p->runtime<<endl;
cout<<endl;
p->next=head;
head=p;
size+=p->length;
if(size>memory) {cout<<"內(nèi)存不足!"<<endl;break;}
i+=1;
}
shedule(size);
}
void shedule(int size)
{
float xk,k;
jcb *p,*q,*s,*t;
cout<<"得到內(nèi)存的作業(yè)完成順序:";
do
{
p=head;
s=NULL;
q=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;
cout<<q->name<<" ";
}
}while(q!=NULL);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -