模拟实现进程调度算法.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
模拟实现进程调度算法 在操作系统中,进程调度算法是处理机管理的核心内容。本文档旨在通过模拟实现进程调度算法,体会操作系统的进程调度方法,并加深对进程控制块、进程队列、进程调度算法、进程切换的理解。 一、实验名称:模拟实现进程调度算法 二、实验目的: a. 观察、体会操作系统的进程调度方法,并通过一个简单的进程调度模拟程序的实现,加深对进程控制块、进程队列、进程调度算法、进程切换的理解。 b. 提高实际动手编程能力,为日后从事软件开发工作打下坚实基础。 三、实验要求: a. 使用模块化设计思想来设计。 b. 给出主函数和各个算法函数的流程图。 c. 学生可按照自身条件,随意选择采用的算法,例如:采用冒泡法编写程序,实现短进程优先调度的算法。 d. 进程调度程序模拟程序只对 PCB 进行相应的调度模拟操作,不需要实际程序。 四、实验内容及实验步骤 1. 实验内容: a. 设计进程控制块 PCB 表结构,模拟实现进程调度算法:FIFO,静态优先级调度,时间片轮转调度,短进程优先调度算法,多级反馈队列调度。(实现其中之一个以上)。 b. 编写一个进程调度程序模拟程序。模拟程序只对 PCB 进行相应的调度模拟操作,不需要实际程序。 c. 由用户输入(可通过文件输入)进程名、进程状态、进程运行时间和进程优先级等数据。 2. 实验步骤: 1) 打开 Microsoft Visual C++ 6.0,开始创建项目。 2) 创建文件:单击标题栏“文件”选择“新建”进入界面。 3) 在建好的文件中加入附件中的源程序,并进行编译。 五、实验原始记录及结果分析 六、参考代码 #include<stdio.h> #include<string.h> #include<iostream.h> const int MAXPCB=100;//定义最大进程数 //定义进程控制块 PCB 结构体类型 typedef struct PCB_Node{ char sName[20];//进程名 int iStatus;//进程状态(1 就绪 2 等待 3 运行) 当前程序中暂时全部默认为就绪处理 int iRunTime; //进程运行时间(纳秒) int iPriority; //进程优先级(0 级最高) int iFinished; //进程是否执行完成标志(1:已完成;0:末完成) int iWaitTime; //进程等待时间(纳秒) }PCB; PCB pcbs[MAXPCB];//PCB 数组队列 int iPCBNum;//实际进程数 char sFileName[20];//进程流文件名 void InitPCB()//PCB 初始化函数 { int i; for(i=0;i<MAXPCB;i++){ strcpy(pcbs[i].sName,""); pcbs[i].iStatus=-1; pcbs[i].iRunTime=-1; pcbs[i].iPriority=-1; pcbs[i].iFinished=0; pcbs[i].iWaitTime=0; } } int ReadPCBFile() //读进程流文件数据,存入 PCB 数组队列 pcbs,并输出 { FILE *fp; int i; cout<<" 请输入进程流(文本)文件名(注意:包括后缀名): "; cin>>sFileName; if((fp=fopen(sFileName,"r"))==NULL){ cout<<"错误:进程流文件 "<<sFileName<<" 打不开,请检查文件名和路径!!"<<endl; } else{ while(!feof(fp)){ fscanf(fp,"%s %d %d%d",pcbs[iPCBNum].sName,&pcbs[iPCBNum].iStatus,&pcbs[iPCBNum].iRunTime,&pcbs[iPCBNum].iPriority); iPCBNum++; }//while(!feof(fp)) //输出所读入的进程数据 cout<<endl<<"从文件 "<<sFileName<<" 读入的进程数据:"<<endl<<endl; cout<<" 进程名 进程状态 运行时间 优先级"<<endl; } } ... 在本实验中,我们将模拟实现进程调度算法,体会操作系统的进程调度方法,并加深对进程控制块、进程队列、进程调度算法、进程切换的理解。通过编写进程调度程序模拟程序,我们可以更好地理解操作系统的进程调度机制,并提高实际动手编程能力。 在实验中,我们使用模块化设计思想来设计进程控制块 PCB 结构体类型,并编写了一个进程调度程序模拟程序。模拟程序只对 PCB 进行相应的调度模拟操作,不需要实际程序。我们还使用了文件输入方式来读取进程流文件数据,并输出所读入的进程数据。 通过本实验,我们可以更好地理解操作系统的进程调度机制,并掌握了进程控制块、进程队列、进程调度算法、进程切换的概念。同时,我们也提高了实际动手编程能力,为日后从事软件开发工作打下坚实基础。































剩余10页未读,继续阅读


- 粉丝: 106
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 安置房监理规划.doc
- Unofficial JueJin wechat mini program application - 掘金非官方微信小
- [山东]铁路框架桥及相关工程施工组织设计.doc
- 基于Appium的微信小程序自动化测试方案.zip
- 1-φ1.5米圆管倒虹吸施工方案.doc
- 房地产策划师职业培训及实践培训讲义570页(主题策划-前期策划).pdf
- 装配式建筑施工组织设计.doc
- 智能移动小车AGV简介.ppt
- 一般砖砌体砌筑分项工程质量管理-secret.doc
- 高压输电线路检修规程.doc
- 商业计划书模版9.doc
- 知名企业现场安全文明施工管理规定(样板).doc
- 住宅楼工程招标文件范本(工程量清单招标).doc
- 大板结构设计的几个问题.docx
- 笔记(0002).doc
- 应急管理预案(2).doc


