操 作 系 统
课 程 设 计 说 明 书
题目:为单道批处理系统设计一个作业调度模拟程序
院
系: 计算机科学与工程学院
专业班级:
计算机 09-3 班
学
号:
学生姓名:
指导教师:
2011 年 月
日
安徽理工大学课程设计(论文)任务书
计算机科学与工程学院
计算机科学与技术系
学 号
学生姓名
专业(班级) 计算机 09-3 班
设计题目
为单道批处理系统设计一个作业调度模拟程序
设
计
技
术
参
数
设
计
要
求
工
作
量
工
作
计
划
参
考
资
料
使用 Microsoft Visual C++ 6.0 编辑器编写,利用 c 语言开发的基于单道批处理
系统的一个作业调度模拟程序,完成该课程设计需要掌握先来先服务(FCFS),最
短作业优先(SJF)、响应比高者优先(HRN)的调度算法。
作业调度算法分别采用先来先服务(FCFS),最短作业优先(SJF)、响应比高
者优先(HRN)的调度算法。对每种调度算法都要求打印每个作业开始运行时刻、
完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周
转时间,以比较各种算法的优缺点。
1. 源代码程序不少于 400 行
2. 附有各种图示 4 张
3. 课程设计任务书不少于 3500 字
1.10 月 23 日-10 月 28 日:查询相关资料,初步确定课程设计的语言,进一步明确
其所要实现的功能
2.10 月 29 日-11 月 10 日:根据所学知识及搜集的相关信息进行概要设计
3.11 月 11 日-11 月 25 日:进行详细设计,完成相应源代码的编写
4.11 月 26 日-12 月 2 日:对源代码进行调试、运行
5.12 月 3 日-12 月 10 日:完善课程设计说明书并提交
[1] 梁小丹,梁红兵,哲凤屏,汤子赢.计算机操作系统.第三版.西安:西安电
子科技大学出版社,2007.2
[2] 袁捷、沈俊、 袁晴晴. 计算机操作系统基础与应用.第二版.北京: 清华大学
出版社,2009.07
[3]杨振山、龚培增. 计算机操作系统教程.第三版. 北京:清华大学出版社,
2007.9
[4]谭浩强. C 程序设计.第四版.北京:清华大学出版社, 2010.06
[5]王敬华,林萍,张清国等.C 语言程序设计教程.第二版.北京:清华大学出版
社,2009.10
指导教师签字
系主任签字
2011 年 9 月 26 日
安徽理工大学课程设计(论文)成绩评定表
学生姓名:
学号:
专业班级: 计算机 09-3 班
设计题目:
为单道批处理系统设计一个作业调度模拟程序
指导教师评语:
成绩:
指导教师:
年
月
日
摘要
本次课程设计要求用高级语言编写和调试一个单道批处理系统的作业调度的模拟程序,
了解作业调度在操作系统中的作用,以加深对作业调度算法的理解。作业调度算法分别采用
先来先服务(FCFS),最短作业优先(SJF)、响应比高者优先(HRN)的调度算法。对每种调
度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组
作业的平均周转时间及带权平均周转时间,以比较各种算法的优缺点。
关键词:作业调度,先来先服务(FCFS),最短作业优先(SJF),响应比高者优先(HRN)
I
目 录
1.需求分析...............................................................................................1
1.1 问题描述 ............................................................................................................................. 1
1.2 功能分析及描述................................................................................................................. 1
1.3 开发语言选择 .................................................................................................................... 1
2.概要设计...............................................................................................2
2.1 功能模块划分 ..................................................................................................................... 2
2.2 功能模块的描述................................................................................................................. 2
2.3 功能模块结构图示 ............................................................................................................. 2
3.详细设计...............................................................................................4
3.1 作业控制块 JCB 的数据结构类型 .....................................................................................4
3.2 先来先服务算法设计......................................................................................................... 4
3.3 最短作业优先算法设计 .....................................................................................................5
3.4 响应比高者优先算法设计.................................................................................................6
4.代码实现...............................................................................................8
4.1 高响应比算法 ..................................................................................................................... 8
4.2 最短作业优先算法 .............................................................................................................. 8
4.3 先来先服务算法 .................................................................................................................. 9
5.运行结果与分析.................................................................................11
5.1 选择操作的界面............................................................................................................... 11
5.2 选择先来先服务算法进行作业调度...............................................................................11
5.3 选择最短作业优先算法进行作业调度 ...........................................................................12
5.4 选择高响应比优先算法进行作业调度 ...........................................................................13
6.结束语.................................................................................................15
7.附录.....................................................................................................16
参考文献.......................................................................................................
II
操作系统课程设计说明书
1.需求分析
1.1 问题描述
为单道批处理系统设计一个作业调度模拟程序。
作业调度算法分别采用先来先服务(FCFS),最短作业优先(SJF)、响应
比高者优先(HRN)的调度算法。对每种调度算法都要求打印每个作业开始运行
时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及
带权平均周转时间,以比较各种算法的优缺点。
1.2 功能分析及描述
在批处理系统中,作业进入系统后,先驻留在外存上,通过作业调度算法,
将它们分批装入内存。作业调度程序用于决定把外存上处于后备队列中的哪些作
业调入内存,并为他们创建进程、分配必要的资源,然后,再将新创建的进程加
入就绪队列中,准备执行。
应将哪些作业从外存调入内存,取决于所采用的调度算法。最简单的是先来
先服务调度算法,这是指讲最早进入外存的作业最先调入内存;较常用的一种是
短作业优先调度算法,这是将外存上最短的作业最先调入内存;此外,还有基于
响应比高者优先的调度算法,根据作业的等待时间和要求服务时间的和与要求服
务时间之比可计算出响应比。
1.3 开发语言选择
本课程设计采用 C 语言实现。
1
操作系统课程设计说明书
2.概要设计
2.1 功能模块划分
根据功能描述,单道批处理程序作业调度的模拟程序要求实现如下功能:建
立作业、选择作业、运行作业、计算作业周转时间和带权周转时间,以及这组作
业的平均周转时间和带权平均周转时间、显示运行结果(包括每个作业开始运行
时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带
权平均周转时间等)、退出程序。
2.2 功能模块的描述
各模块的功能介绍如下:
(1)建立作业:输入作业数,建立一组作业,并对所建立的这组作业进行
初始化,用以模拟作业调度。初始化的内容包括作业名,作业要求运行的时
间,其中,作业进入系统的时间由系统默认设置。
(2)选择作业:程序通过先来先服务调度算法、短作业优先调度算法和高
响应比优先调度算法对建立的一组作业进行选择,决定把哪个作业从外存调
入内存中。
(3)运行作业:根据初始化中设置的作业要求运行时间来模拟作业的运行。
(4)计算:作业完成计算作业周转时间和带权周转时间,以及这组作业的
平均周转时间和带权平均周转时间。
(5)显示结果:将计算所得的结果输出。
(6)退出程序:当实验结束,不再需要模拟作业调度的时候,用来退出程
序。
2.3 功能模块结构图示
作业调度模拟程序的系统功能结构如图 2-1 所示。
2
操作系统课程设计说明书
作 业 调 度 系 统
先 来
先 服
务 算
法
短 作
业 优
先 算
法
高 响
应 比
优 先
算
退
出
程
序
初
始
化
运
行
作
业
输出
运行
结果
初
始
化
运
行
作
业
输出
运行
结果
初
始
化
输出
运行
结果
运
行
作
业
图 2-1 作业调度模拟程序系统功能结构图
3