77范文网 - 专业文章范例文档资料分享平台

操作系统实验1

来源:网络收集 时间:2018-11-27 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

学生实验报告

实验课名称:计算机操作系统 实验项目名称:进程调度

专业名称:计算机科学与技术(交通信息工程) 班学

级: 2012240204 号: 201224020425

学生姓名: 刘涛 教师姓名: 刘晓春

2014 年 12 月 20 日

一、实验名称: 进程调度

二、实验目的与要求:

要求学生通过实验加深理解进程调度的特点,并掌握几种常见的调度算法。

三、实验内容:

编写模拟程序实现FIFO算法和轮转法,比较他们的不同之处。

四、实验原理

不同的调度算法,平均周转时间和平均带权周转时间有很大差别,应根据具体情况具体选择。

FIFO算法每次调度都选择最先进入就绪队列的进程调度,轮转法能够保证就绪队列总的所有进程在一给定的时间内,均能获得一个时间片的处理机执行时

五、源代码及实验结果

#include #include #include const int MAXPCB=200;

//定义最大进程数

//定义进程控制块PCB结构体类型 typedef struct PCB_Node{ char sName[20]; //进程名 int iStatus; //进程状态(1就绪 2等待 3运行) 当前程序中暂时全部默认为就绪处理 int iRunTime; //进程运行时间(纳秒) int iPriority; //进程优先数(数字越小优先级越高) int iBeFinished; //进程是否执行完成标志(1:已完成;0:末完成) int iWaitTime; //进程等待时间(纳秒) }PCB;

PCB pcbs[MAXPCB]; //PCB数组队列 int iPCBNum; //实际进程数 char sFileName[20]; //进程流文件名 void InitPCB(); int ReadPCBFile(); void ReSetPCB(); void FIFO(); void RR(); void Hint();

void InitPCB() {

int i; for(i=0;i

int ReadPCBFile() //读进程流文件数据,存入PCB数组队列pcbs,并输出 { FILE *fp; int i; char cHead; cout<<\请输入要打开的进程流(文本)文件名(注意:包括路径名和后缀名): \ cin>>sFileName; if((fp=fopen(sFileName,\ { cout<<\错误:进程流文件 \打不开,请检查文件名和路径!!\ return -1; } else { cHead=fgetc(fp); while(cHead==' '||cHead==10||cHead==9) cHead=fgetc(fp); } if(cHead==EOF) { printf(\错误:进程流文件:%s 为空!!\\n\ return -1; } else { fseek( fp, -1, SEEK_CUR); while(!feof(fp)) {

fscanf(fp,\s[iPCBNum ].iPriority); iPCBNum++; } //输出所读入的进程数据 cout<

}

void ReSetPCB() //重置PCB完成标志、等待时间,以供另一个调度算法使用,并输出所读入的进程数据 { int i; //输出所读入的进程数据 cout<

void FIFO() //先进先出调度算法 { int i,j; int iSum; //总等待时间 //输出先进先出调度算法执行流 cout<

void RR() //时间片轮转调度算法 { int i; int iNotEnded=1; //循环控制标志:不是所有进程都已经获得足够时间片运行完成,需要继续轮转。 int iNum; //到目前为止末执行完的进程数 int iRound=0; //轮转周期数 int iSum=0; //总时间片数 float fBlockTime=10; //时间片的长度(纳秒) cout<

cin>>fBlockTime; cout<0) { iNotEnded=1; iRound++; //累加轮转周期数 cout<

void Hint() { cout<<\二、本程序包括:FIFO,优先级调度算法(静态优先级),时间片轮转调度算法,。\ cout<<\输入:进程流文件(文本文件),其中存储的是一系列要执行的进程,每个进程包括四个数据项: \ cout<<\进程名 进程状态(1就绪 2等待 3运行) 所需时间 优先级(0级最高) \ cout<<\输出:进程执行流 等待时间 平均等待时间 \ cout<<\ \ cout<<\━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ \ cout<

void main() { int iInput; //用户输入的整数以选择算法 bool bGoOn; //是否继续进程调度算法模拟的标志 char sGoOn[1]; //用户输入是否继续进程调度算法模拟的字母:y、Y、N、n Hint();

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库操作系统实验1在线全文阅读。

操作系统实验1.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/311871.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: