操作系统课程设计---作业调度模拟
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
课程名称操作系统
课题名称作业调度模拟
专业通信工程
班级
学号
姓名
指导教师
2012年6月29 日
课程设计任务书
课程名称操作系统
课题作业调度模拟
任务书下达日期2012 年6 月24 日
任务完成日期2012 年6 月29 日
《操作系统》课程设计任务书
一、课程设计的性质与目的
操作系统课程设计是集中实践性环节之一,是学习完《操作系统》课程后进行的一次全面的综合练习。要求学生达到熟练掌握操作系统的基本理论知识;掌握不同的调度算法;能够利用所学的基本编程知识,实现课程章节中涉及到的一些基本算法,从而加深理论知识的理解。
二、设计要求
1 要求利用高级程序设计语言编程完成相关算法;
2 程序具有清晰易懂的界面,有图形界面更佳;
3 程序具备要求的基本功能模块;
4 最终结果是能够运行的完整程序;
5 最后给出课程设计报告
三、课程设计报告要求
1 统一封面(本任务书附带)、设计题目、设计要求以及系统功能需求分析;
2 总体设计:包括系统总体设计框架和系统功能模块图;
3 详细设计。包括主要功能模块的算法设计思路以及对应的工作流程图;
4 主要源程序代码,并附有注释;
5 总结。包括课程设计过程中的学习体会与收获、对操作系统和本次课程设计的认
识等内容。
6 附录(完整源程序清单):可以是手写或打印稿(注意:不能和其他同学一样)
7 报告最后附上评分表(见任务书末页)
四、检查要求:
1 每个人至少选作一题,学号末尾2位对5取余,余数对应的题号就是每个人必做题。必须有可运行的程序,每个人要通过答辩;
2 每个人必须交《操作系统课程设计报告》(打印稿)
五、评分
1 根据平时上机考勤,且每个人必须自己动手编写程序,不得抄袭;
2 根据程序运行结果;
3 学生能熟练地解释清楚指导老师对自己程序的提问;
4 课程设计报告完成的质量和规范;
六、时间、地点安排
七、课程设计题目
0. 进程调度算法的设计
设计要求:
A.设计进程控制块PCB表结构,分别适用于优先数调度算法和循环轮转调度算法。
B.建立进程就绪队列。对两种不同算法编制入链子程序。
C.编制两种进程调度算法:1)优先数调度;2)循环轮转调度
1. 银行家算法设计
设计要求:
编制银行家算法通用程序,并检测所给状态的系统安全性。
2.题目:页面置换算法模拟设计
设计要求:
计算并输出下述各种算法在不同内存容量下的命中率。
A.FIFO先进先出的算法
B.LRR最近最少使用算法
C.OPT最佳淘汰算法(先淘汰最不常用的页地址)
D.LFR最少访问页面算法
E.NUR最近最不经常使用算法
3.题目:可变内存管理模拟
设计要求:
A.功能:内存初始化;分配作业内存;回收内存;显示作业列表;显示空闲内存。
B.编制两种内存分配算法:1)最佳适应算法;2)最坏适应算法。
4.题目:作业调度模拟
设计要求:
A.加深对作业概念地理解。
B.掌握短作业优先调度算法。
C.深入了解批处理系统如何组织作业、管理作业和调度作业。
D.了解作业控制块的作用,以及作业控制块的内容和组织方式。
目录
一、系统功能需求分析 (7)
二、系统总体设计 (7)
1、设计的基本原理 (7)
2、系统的总体框架设计 (7)
3、系统功能模块图 (8)
三、系统详细设计 (9)
1、系统总体详细设计 (9)
2、系统各模块详细设计 (10)
(1)主函数模块 (10)
(2)创建JCB作业控制块 (11)
(3)信息输入模块 (11)
(4)随机产生作业到达时间和服务时间模块 (12)
(5)计算模块 (12)
(6)对比模块 (13)
(7)信息输出模块 (15)
四、运行结果及结果分析 (15)
1、运行结果 (15)
2、运行结果分析 (17)
五、总结 (18)
六、附录 (19)
七、评分表 ............................................... 错误!未定义书签。
一、系统功能需求分析
作业调度是对成批进入系统的用户作业,根据作业控制块的信息,按一定的策略选取若干个作业使它们可以去获得处理器运行的一项工作。而对每个用户来说总希望自己的作业的周转时间是最小的,短作业优先(SJF)便是其中一种调度方法。
本设计是为了加深对作业概念的理解,掌握短作业优先(SJF)调度算法,深入了解批处理系统如何组织作业、管理作业和调度作业,了解作业控制块的作用,以及作业控制块的内容和组织方式。
为了将系统中的作业组织起来,需要为每个进入系统的作业建立档案以记录和作业相关的信息,例如作业名、作业所需资源、作业执行时间、作业进入系统的时间、作业信息在存储器中的位置、指向下一个作业控制块的指针等信息。这个记录作业相关信息的数据块称为作业控制块(JCB),并将系统中等待作业调度的作业控制块组织成一个队列,这个队列称为后备队列。一个作业全部信息进入系统后,就为其建立作业控制块,并挂入后备队列。当进行作业调度时,从后备队列中查找选择作业。在从后备队列中查找选择作业是,先根据作业控制块中的信息,选中一个短作业,也就是执行时间最短的作业,将它们调入内存运行。
二、系统总体设计
1、设计的基本原理
在多道程序环境下,将系统中的作业组织起来,为每个进入系统的作业建立档案以记录和作业相关的信息,建立作业控制块(JCB)挂入后备队列。进行作业调度时,在其后计算出各个作业的开始执行时间、完成时间、周转时间和平均周转时间,根据作业控制块中的信息,审查系统能否满足用户作业的资源需求,利用短作业优先算法进行作业调度,从外存的后备队列中选取某些作业调入内存,为它们创建进程、分配必要的资源并按照由小到大的顺序显示出来。
短作业优先的调度算法是从后备队列中选择一个或者若干个估计运行时间最短的作业,将它们调入内存运行。
2、系统的总体框架设计
编写程序完成批处理系统中的作业调度,要求采用短作业优先的作业调度算法,其包括:首先确定作业控制块的内容和组成方式,然后完成作业调度,最后编写主函数对所作工作进程测试。具体包括以下模块:信息输入模块,随机产生作业到达时间和服务