1、 计算机与信息学院计算机与信息学院 课程课程设计设计报告报告 课程名称: 操作系统 实习题目: 进程调度算法模拟 姓 名: * 系: 计算机 专 业: 计算机科学与技术 年 级: 2011 级 学 号: * 指导教师: * 职 称: * 2014 年 1 月 16 日 目目 录录 1.1.进程调度算法模拟进程调度算法模拟课程设计的目的课程设计的目的1 1 2.2.进程调度算法模拟进程调度算法模拟课程设计的要求课程设计的要求1 1 3.3.进程调度算法模拟进程调度算法模拟课程设计报告内课程设计报告内容容1 1 31 前言 1 32 进程调度算法模拟设计的环境 1 33 系统流程图及各模块 2 4
2、 4总结总结 1818 参考文献参考文献1919 参考网站1919 进程调度算法模拟进程调度算法模拟 1.1.进程调度算进程调度算法模拟法模拟课程设计的目的课程设计的目的和意义和意义 2013-2014 学年,在学习了操作系统这门课后,对当中的进程调度算法 产生了浓厚的兴趣。各种调度算法,理论上比较好理解。为了加深印象,我决定 把各种调度算法用 C 语言写出来。 于是便产生这份从头到尾都让我绞尽脑汁的课 程设计。 做这份课程设计,对从事系统开发的人员来说,是必要的,可以在一定程度 上为自己以后的发展铺路。虽然用处不是特别明显,但对加深系统调用算法的理 解无疑用处是巨大的。 2.2.进程调度算法
3、模拟进程调度算法模拟课程设计的要求课程设计的要求 1. 用 C 语言写出至少两种进程调度算法。 2. 画出大概流程图。 3. 对算法过程出现的 bug 进行调试。 4. 展示最后的算法结果 3.13.1 前言:前言: 目前比较常见的几种进程调度算法有: 1. 先到先服务(FCFS) 2. 短进程优先(非抢占和抢占)算法(SPF) 3. 高响应比优先算法 4. 时间片轮转算法 我选出其中三种即先到先服务,短进程优先(2 种)和时间片轮转算法进行 C 语言描 述以加深对这三种算法的理解。 3.23.2 进程调度算法模拟设计的环境进程调度算法模拟设计的环境 VC+6.0 及 CodeBlocks,3
4、2 位计算机 WIN7 操作系统。 3.33.3 流程图流程图 定义进程结构体:定义进程结构体: struct Pro int num; /进程号 int time_in; /进程到达时间 int work_time; /进程服务时间 int btime;/用于抢占式进程优先记录该进程开始时间 int l_w_time;/用于抢占式进程优先记录剩余服务时间 int end_time; /记录该进程结束时间, (需要时时监测) int judge; /用于需要时的标记 pro10; /进程结构体 1 先到先服务先到先服务 算法描述:把所有进程按到达先后排序,每次取最先到的进算法描述:把所有进程按
5、到达先后排序,每次取最先到的进程执行后淘汰,再取下一程执行后淘汰,再取下一 个,直到所有进程调度完毕。个,直到所有进程调度完毕。 主要代码: void FCFS() /先到先服务 char s = “先到先服务“; printmat(s); PT; int i, j; int min; int t = pro_num; int begin_time = 0x7fff; for(i = 1; i work_time work_time p-num = q-num,p-time_in = q-time_in,p-work_time = q-work_time; q-num = t_num, q-time_in = t_time_in,q-work_time = t_work_time; p+; /*/ /*找出第一个执