一. 实验目的:
通过上机练习,以及对进程调度算法的模拟,进一步理解进程的基本概念,加深对进程运行状态和进程调度过程、调度算法的理解。
二. 实验要求:
1、掌握先来先服务、短进程优先等进程调度算法。
2、编程实现对N个进程采用FCFS进程调度算法的调度。
三.实验内容及步骤:
- 先回顾FCFS算法原理。
多个进程按到达的先后排序形成就绪队列,每次从就绪队列的队首选一个进程分配CPU进行运行,依次类推,直到就绪队列中所有进程都运行完。 - 编程代码
#include"stdio.h"
#include"stdlib.h"
typedef struct PCB
{
char ID[3];
char name[10];
char state;
int arrivetime;
int starttime;
int finishtime;
int servicetime;
float turnaroundtime;
float weightedturnaroundtime;
struct PCB *next;
}pcb;
int time;
int n;
pcb *head=NULL,*p,*q;
void run_fcfs(pcb *p1)
{
time = p1->arrivetime > time? p1->arrivetime:time;
p1->starttime=time;
printf("\n现在时间是%d,开始运行作业%s\n",time,p1->name);
time+=p1->servicetime;
p1->state='T';
p1->f