实验四 进程调度模拟实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机操作系统综合设计
实验四
实验名称:进程调度模拟实现
实验类型:设计型实验
实验环境: Visual C++ 6.0
指导老师:陈立伟
专业班级:
姓名:
学号:
联系电话:
实验地点:东六E座4-02
实验日期: 2014年12月7日
实验报告日期: 2014年12月 7日
成绩:__________________________
一、实验目的
1)理解进程调度相关理论。
2)掌握FCFS进程调度方法。
二、实验平台
windows 7 Visual C++ 6.0
三、实验步骤
1、实验内容
1)设计可用于该实验的进程控制块,进程控制块至少包括进程号、到达时间和要求服务时间;
2)动态或静态创建多个(≥10)进程;
3)实现FCFS或其他调度算法;
4)可动态修改进程到达时间;
5)调度所创建的进程并显示调度结果。
2、实验步骤
1)输入给定的实验指导书中提供的代码
A、打开Visual C++ 6.0;
B、新建c++文件,创建FCFS.cpp;
2)进行功能测试并得出正确结果
A、编译、运行FCFS.cpp;
输入8,即是8个进程数。
输入8个进程号,以及到达时间和所需时间。
得到执行结果:
进程执行的先后顺序;
进程开始执行的时间;
输入y:要修改输入修改项,再次得到结果;
四、实验总结
因为FCFS是先来先服务的算法,我们是依据它的进程到达的时间来规定进程的执行顺序的,所以还要对输入的进程,按照它的进程到达时间来排序,并按照这个顺序执行进程,输入的有进程号,进程到达时间,进程执行时间,所以我们定义了一个结构体,里面包含了以上三个内容,并且定义两个全局变量:int time = 0; char flag = 'y'; 来计算总的时间还有标识是否结束程序,初始化为0和标识程序不结束的标识y。因为进程号不应该相同,所以我们不应该在输入的时候还要做一个判断遍历前面已经输入的进程,若当前输入的进程号已经存在那么提示并重新输入,不存在则顺序执行。当要修改程序到达的时间,我们要修改的必须是一个存在的,所以在做修改的输入判断的时候,就是遍历所有的进程,当输入的进程号存在的时候才做出相应动作,如果不存在那么输出提示并询问是否继续修改。