-
大小: 4KB文件類型: .cpp金幣: 1下載: 0 次發(fā)布日期: 2021-05-29
- 語(yǔ)言: C/C++
- 標(biāo)簽: 進(jìn)程調(diào)度??
資源簡(jiǎn)介
操作實(shí)驗(yàn)一:進(jìn)程調(diào)度的設(shè)計(jì)與實(shí)現(xiàn)的源代代碼C++,要的童鞋抱走
代碼片段和文件信息
#include?“stdio.h“?
#include??
#include?
#define?getpch(type)?(type*)malloc(sizeof(type))
#define?NULL?0
int?time[3];
struct?program?{?/*?定義進(jìn)程控制塊PCB?*/
char?name[10];?
char?state;
int?queue;//進(jìn)程隊(duì)列
int?priority;????//?數(shù)字越小優(yōu)先級(jí)越高
int?needtime;//需運(yùn)行時(shí)間?
int?runtime;?//已經(jīng)運(yùn)行時(shí)間?
struct?program?*link;
}*ready=NULL;
typedef?struct?program?PROGRAM;
PROGRAM?*run=NULL*head1=NULL*head2=NULL*head3=NULL*end1=NULL*end2=NULL*end3=NULL;?
void?sort(PROGRAM?*p)
{
switch(p->queue)
{
case?1:
{
if(head1==NULL)?
{
head1=p;
end1=p;
}
else
{
end1->link=p;
end1=p;
p->link=NULL;
}
p->state=‘w‘;
break;
}
case?2:
{
if(head2==NULL)?
{
head2=p;end2=p;
p->state=‘w‘;
}
else
{
end2->link=p;
end2=p;
p->link=NULL;
}
p->state=‘w‘;
break;
}
case?3:?
{
if(head3==NULL)?
{
head3=p;end3=p;}
else
{
end3->link=p;
end3=p;
p->link=NULL;
}
p->state=‘w‘;
break;
}?
}
}
void?input()?/*?建立進(jìn)程控制塊函數(shù)*/?
{
PROGRAM?*p;
int?inum;?
system(“cls“);?
printf(“\n?多級(jí)反饋隊(duì)列調(diào)度算法?\n“);
printf(“\n?請(qǐng)輸入進(jìn)程個(gè)數(shù):\n“);?
scanf(“%d“&num);
printf(“\n?輸入第一個(gè)進(jìn)程名:“);
ready=getpch(PROGRAM);
scanf(“%s“ready->name);
printf(“\n?輸入第一個(gè)進(jìn)程優(yōu)先級(jí):“);
scanf(“%d“&ready->priority);
printf(“\n?輸入第一個(gè)進(jìn)程運(yùn)行時(shí)間:“);
scanf(“%d“&ready->needtime);?
printf(“\n“);?
ready->runtime=0;
ready->state=‘r‘;
ready->queue=1;
ready->link=NULL;
for(i=0;i {?
printf(“\n?進(jìn)程號(hào)No.%d:\n“i+2);?
p=getpch(PROGRAM);?
printf(“\n?輸入進(jìn)程名:“);?
scanf(“%s“p->name);
printf(“\n?輸入進(jìn)程優(yōu)先級(jí):“);
scanf(“%d“&ready->priority);
p->queue=1;
printf(“\n?輸入進(jìn)程運(yùn)行時(shí)間:“);?
scanf(“%d“&p->needtime);?
printf(“\n“);?
p->
評(píng)論
共有 條評(píng)論