• 大小: 4KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: C/C++
  • 标签: 进程调度  

资源简介

操作实验一:进程调度的设计与实现的源代代码C++,要的童鞋抱走

资源截图

代码片段和文件信息

#include “stdio.h“ 
#include  
#include 
#define getpch(type) (type*)malloc(sizeof(type))
#define NULL 0
int time[3];
struct program { /* 定义进程控制块PCB */
char name[10]; 
char state;
int queue;//进程队列
int priority;    // 数字越小优先级越高
int needtime;//需运行时间 
int runtime; //已经运行时间 

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() /* 建立进程控制块函数*/ 
{
PROGRAM *p;
int inum; 

system(“cls“); 
printf(“\n 多级反馈队列调度算法 \n“);
printf(“\n 请输入进程个数:\n“); 
scanf(“%d“&num);
printf(“\n 输入第一个进程名:“);
ready=getpch(PROGRAM);
scanf(“%s“ready->name);
printf(“\n 输入第一个进程优先级:“);
scanf(“%d“&ready->priority);
printf(“\n 输入第一个进程运行时间:“);

scanf(“%d“&ready->needtime); 
printf(“\n“); 
ready->runtime=0;
ready->state=‘r‘;
ready->queue=1;
ready->link=NULL;

for(i=0;i
printf(“\n 进程号No.%d:\n“i+2); 
p=getpch(PROGRAM); 
printf(“\n 输入进程名:“); 
scanf(“%s“p->name);
printf(“\n 输入进程优先级:“);
scanf(“%d“&ready->priority);
p->queue=1;
printf(“\n 输入进程运行时间:“); 
scanf(“%d“&p->needtime); 
printf(“\n“); 
p->

评论

共有 条评论