用c语言实现fpf调度算法,进程调度算法模拟实验报告.doc

计算机综合实验报告

课程名称 操作系统

实验学期 至 学年 第 学期

学生所在系部

年级 专业班级

学生姓名 学号

任课教师

实验成绩

信息科学与技术系制

实验报告须知

1 学生上交实验报告时,必须为打印稿(A4纸)。页面空间不够,可以顺延。

2 学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、内容、结果及分析等。

3 教师应该填写的内容包括:实验成绩、教师评价等。

《 操作系统 》课程实验报告

实验室:小型机实验室(二教217) 2010 年 5 月 4 日

实验题目

进程调度算法模拟

一、实验目的

1掌握处理机调度及其实现;

2 掌握进程状态及其状态转换;

3 掌握进程控制块PCB及其作用

二、设备与环境

1. 硬件设备:PC机或终端一台

2. 软件环境:(说明安装的操作系统环境,如Windows操作系统或者Linux操作系统,介绍相应的开发工具,如vs或vi,gcc,gdb,C等相关的开发工具或平台)。

三、实验内容

1用C语言实现采用先来先服务进程调度算法对10个进程的调度。

2 用C语言实现采用高优先权进程调度算法对10个进程的调度。

3用C语言实现采用短作业优先进程调度算法对10个进程的调度。

四、实验结果及分析

1.实验步骤

= 1 \* GB2 ⑴根据要求大致确定需要用到的函数以及实现方法

= 2 \* GB2 ⑵写出三个文件的代码

= 3 \* GB2 ⑶编译,修改语法错误

= 4 \* GB2 ⑷链接执行,观察结果,查看有无逻辑错误

2.相关数据结构定义

typedef struct node

{

char name[MAXSIZE];//进程名称

int state;//0表示进程处于就绪态,1表示进程处于等待态

int prio;//优先级

int time;//需要在cpu上处理的时间

struct node* next;//链指针

}PCB;

3.实验代码(要求加注释)

void insert1(PCB *p,PCB *queue)

{

PCB *q;

q=queue;

while(q->next)

q=q->next;

q->next=p;

p->next=NULL;

}//先来先服务把进程p插入就绪或等待队列的尾部

void creat1(int n)

{

PCB *p;

int i;

ready=new PCB;

ready->next=NULL;

wait=new PCB;

wait->next=NULL;//带头结点的队列

run=NULL;

for(i=1;i<=n;i++)

{

p=new PCB;

cout<

cin>>p->name;

cout<

p->state=rand()%2;

cout<state;

cout<

if(p->state==0)

insert1(p,ready);//当state为0时,插入到就绪队列中

else

insert1(p,wait);//否则插入到等待队列中

}

}

void runing()

{

PCB *p;

cout << "当前执行进程:";

if(!run)

cout<

else

cout<name<

if(!ready->next)

cout<

else

for(p=ready->next;p;p=p->next)

cout<name<

cout<

if(!wait->next)

cout<

else

for(p=wait->next;p;p=p->next)

cout<name<

cout<

}

void FCFS(int n)

{

srand((int)time(0));

int state_change;

PCB *p;

cout<

creat1(n);

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值