下载此文档

广工操作系统实验报告.doc


文档分类:IT计算机 | 页数:约64页 举报非法文档有奖
1/64
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/64 下载此文档
文档列表 文档介绍
计算机 学院 软件工程 专业 2 班_____组、学号 3110006294
黄煜财 协作者 无 教师评定_________________
实验题目 进程调度
一、实验目的
用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。
二、实验容和要求
设计一个有 N个进程共行的进程调度程序。要求采用最高优先数优先算法,时间片轮转算法,多级队列调度算法这三种算法。
每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。
进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。 进程的运行时间以时间片为单位进行计算。
每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。
就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。
如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继
续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。 每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。
重复以上过程,直到所有的进程都完成为止。
三、实验原理及设计方案
1、进程调度算法:
采用多级反馈队列调度算法。其基本思想是:当一个新进程进入在后,首先将它放入第一个队列的末尾,按FCFS原则排队等待高度。当轮到该进程执行时,如能在该时间片完成,便可准备撤离系统;如果它在一个时间片结束时尚为完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行,以此类推。
2、实验步骤:
(1)按先来先服务算法将进程排成就绪队列。
(2)检查所有队列是否为空,若空则退出,否则将队首进程调入执行。
(3)检查该运行进程是否运行完毕,若运行完毕,则撤消进程,否则,将该进程插入到下一个逻辑队列的队尾。
(4)是否再插入新的进程,若是则把它放到第一逻辑队列的列尾。
(5)重复步骤(2)、(3)、(4),直到就绪队列为空。
四、程序流程图
进程完成,撤消该进程
就绪队列首进程投入运行
时间片到,运行进程已占用CPU时间+1
运行进程已占用CPU时间已达到所需的运行时间
把运行进程插入到下一个队列的队尾
插入新的进程
开始
初始化PCB,输入进程信息
所有队列都为空
各进程按FCFS原则排队等待调度
五、重要数据结构及难程序列表
typedef struct pcb{//进程管理块
char name[10];//进程名字
char state; //进程状态
int queue; //进程所在的队列
int ntime; //进程需要运行的时间
int rtime; //进程已经运行的时间
int etime; //进程在本队列可运行的时间片
struct pcb *link;
}PCB;
PCB *ready = NULL, *pinsert = NULL, *pfend = NULL,*p =NULL; //就绪队列,进程插入位置的变量
void insert()//插入进程
{
if(!ready ){
ready = p;
pfend = p;
pinsert = p;
}else if(ready ->queue == 1){//第一队列存在
p->link = pfend->link;
pfend->link = p;
pfend = p;
findpos();
}
else{
p->link = ready;
ready = p;
findpos();
}
}
void sort()//调整进程队列
{
if(!ready->link ||ready->queue < ready->link->queue) return;
p = ready ->link;
ready ->link = pinsert ->link;
pinsert ->link = ready;
pinsert

广工操作系统实验报告 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数64
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wdggjhm62
  • 文件大小1.28 MB
  • 时间2021-01-25