计算机系统调度算法代码,进程调度-vc++代码-计算机操作系统实验.doc

实验报告1

课程 计算机操作系统 实验名称 进程调度 第 1 页

班级 11计本 学号 105032011130 姓名 风律澈

实验日期:2013年10月4日 报告退发 (订正 、 重做)

一、实验目的:

多道系统中,当就绪进程数大于处理机数时,必须按照某种策略决定选取哪些进程占用处理器。本实验模拟实现处理器调度,进一步加深对处理器调度算法的理解。

二、实验内容:

选择某种调度算法,设计一个实现处理器调度的程序。

三、实验环境:

VS2008,window7操作系统

四、实验步骤:

1、设计一个有N个进程并发的处理器调度程序,每个进程由一个PCB表示,PCB包含以下信息:进程名、优先数、要求服务时间、进程状态。

2、可分别用链表表示就绪队列,用队列中的结构体结点表示进程。

3、已知各进程的的到达时间等如下:

进程名到达时间服务时间优先数A0312B1531C2221D34104、分别实现下面两种调度算法

(按FCFS调度算法实现处理器调度;

(按优先数调度算法实现处理器调度。

实验程序:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~链表队列~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

此部分头文件名:link.h

#include

using namespace std;

// //

// 修改部分 //

// //

//节点定义

typedef struct listnode{

listnode *prior;

char name;//进程名

int serve_time;//服务时间

int priors;//优先权

int arrival_time;//到达时间

float start_time;//开始时间

float finish_time;//结束时间

float turnover_time;//周转时间

float t_t_s;//带权重周转时间

int state;

listnode *next;

}progress;

//表头定义

typedef struct{

listnode *head;

int length;

}listlead,list;

//输出函数

void coutdata(listnode *p){

cout<name<

cout<serve_time<

cout<priors<

cout<arrival_time<

cout<start_time<

cout<finish_time <

cout<turnover_time<

cout<t_t_s<

}

//输入函数

void cindata(listnode &e,char n,int s,int p,int time){

e.name=n;

e.serve_time=s;

e.priors=p;

e.arrival_time=time;

}

void cindata(listnode &e){

cout<>e.name;

cout<>e.serve_time;

cout<>e.priors;

}

//初始化

void initilead(listlead &L){

L.head=NULL;

L.length=0;

}

void initinode(listnode &e,char n,int s,int p,int time){

e.prior=NULL;

e.next=NULL;

e.finish_time=0;

e.start_time=0;

e.state=0;

e.turnover_ti