您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 操作系统课程设计报告
课程设计报告课程名称操作系统课题名称作业调度模拟专业通信工程班级学号姓名指导教师罗雅博黄哲胡倩2012年6月29日2湖南工程学院课程设计任务书课程名称操作系统课题作业调度模拟专业班级学生姓名学号指导老师罗雅博黄哲胡倩审批任务书下达日期2012年6月24日任务完成日期2012年6月29日32009级通信工程专业《操作系统》课程设计任务书一、课程设计的性质与目的操作系统课程设计是集中实践性环节之一,是学习完《操作系统》课程后进行的一次全面的综合练习。要求学生达到熟练掌握操作系统的基本理论知识;掌握不同的调度算法;能够利用所学的基本编程知识,实现课程章节中涉及到的一些基本算法,从而加深理论知识的理解。二、设计要求1要求利用高级程序设计语言编程完成相关算法;2程序具有清晰易懂的界面,有图形界面更佳;3程序具备要求的基本功能模块;4最终结果是能够运行的完整程序;5最后给出课程设计报告三、课程设计报告要求1统一封面(本任务书附带)、设计题目、设计要求以及系统功能需求分析;2总体设计:包括系统总体设计框架和系统功能模块图;3详细设计。包括主要功能模块的算法设计思路以及对应的工作流程图;4主要源程序代码,并附有注释;5总结。包括课程设计过程中的学习体会与收获、对操作系统和本次课程设计的认识等内容。6附录(完整源程序清单):可以是手写或打印稿(注意:不能和其他同学一样)7报告最后附上评分表(见任务书末页)四、检查要求:1每个人至少选作一题,学号末尾2位对5取余,余数对应的题号就是每个人必做题。必须有可运行的程序,每个人要通过答辩;2每个人必须交《操作系统课程设计报告》(打印稿)五、评分1根据平时上机考勤,且每个人必须自己动手编写程序,不得抄袭;2根据程序运行结果;43学生能熟练地解释清楚指导老师对自己程序的提问;4课程设计报告完成的质量和规范;六、时间、地点安排日期6.256.276.28时间8:00-12:008:00-12:008:00-12:00地点E511E511E511七、课程设计题目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.题目:作业调度模拟设计要求:5A.加深对作业概念地理解。B.掌握短作业优先调度算法。C.深入了解批处理系统如何组织作业、管理作业和调度作业。D.了解作业控制块的作用,以及作业控制块的内容和组织方式。6目录一、系统功能需求分析.....................................................7二、系统总体设计.........................................................71、设计的基本原理.....................................................72、系统的总体框架设计.................................................73、系统功能模块图.....................................................8三、系统详细设计.........................................................91、系统总体详细设计...................................................92、系统各模块详细设计................................................10(1)主函数模块..................................................10(2)创建JCB作业控制块..........................................11(3)信息输入模块................................................11(4)随机产生作业到达时间和服务时间模块..........................12(5)计算模块...................................................12(6)对比模块....................................................13(7)信息输出模块...............................................15四、运行结果及结果分析..................................................151、运行结果..........................................................152、运行结果分析......................................................17五、总结................................................................18六、附录................................................................19七、评分表..............................................................237一、系统功能需求分析作业调度是对成批进入系统的用户作业,根据作业控制块的信息,按一定的策略选取若干个作业使它们可以去获得处理器运行的一项工作。而对每个用户来说总希望自己的作业的周转时间是最小的,短作业优先(SJF)便是其中一种调度方法。本设计是为了加深对作业概念的理解,掌握短作业优先(SJF)调度算法,深入了解批处理系统如何组织作业、管理作业和调度作业,了解作业控制块的作用,以及作业控制块的内容和组织方式。为了将系统中的作业组织起来,需要为每个进入系统的作业建立档案以记录和作业相关的信息,例如作业名、作业所需资源、作业执行时间、作业进入系统的时间、作业信息在存储器中的位置、指向下一个作业控制块的指针等信息。这个记录作业相关信息的数据块称为作业控制块(JCB),并将系统中等待作业调度的作业控制块组织成一个队列,这个队列称为后备队列。一个作业全部信息进入系统后,就为其建立作业控制块,并挂入后备队列。当进行作业调度时,从后备队列中查找选择作业。在从后备队列中查找选择作业是,先根据作业控制块中的信息,选中一个短作业,也就是执行时间最短的作业,将它们调入内存运行。二、系统总体设计1、设计的基本原理在多道程序环境下,将系统中的作业组织起来,为每个进入系统的作业建立档案以记录和作业相关的信息,建立作业控制块(JCB)挂入后备队列。进行作业调度时,在其后计算出各个作业的开始执行时间、完成时间、周转时间和平均周转时间,根据作业控制块中的信息,审查系统能否满足用户作业的资源需求,利用短作业优先算法进行作业调度,从外存的后备队列中选取某些作业调入内存,为它们创建进程、分配必要的资源并按照由小到大的顺序显示出来。短作业优先的调度算法是从后备队列中选择一个或者若干个估计运行时间最短的作业,将它们调入内存运行。2、系统的总体框架设计编写程序完成批处理系统中的作业调度,要求采用短作业优先的作业调度算法,其包括:首先确定作业控制块的内容和组成方式,然后完成作业调度,最后编写主函数对所作工作进程测试。具体包括以下模块:信息输入模块,随机产生作业到达时间和服务8时间模块,计算模块,比较模块,输出模块。3、系统功能模块图系统功能模块图如下所示:作业调度模拟系统主函数模块信息输入模块随机产生作业到达时间和服务时间模块计算模块比较模块输出模块9三、系统详细设计1、系统总体详细设计系统设计流程图如下:开始定义最多能管理的作业数目,建立作业控制块定义作业各个数据输出提示,让用户输入需要处理的作业数目,然后会随机产生作业到达时间和服务时间。计算各个作业的作业开始执行时间,作业完成时间,作业周转时间,作业平均周转时间进入作业比较后备队列是否为空作业i完成时间作业i+1完成时间按完成时间由小到大输出结果,并由小到大输出作业名,作业到达时间,作业服务时间,作业开始执行时间,作业完成时间,作业周转时间,作业平均周转时间结束102、系统各模块详细设计(1)主函数模块主函数模块调用各子模块,包括信息输入模块,随机产生作业到达时间和服务时间模块,计算模块,比较模块,输出模块,进而完成作业调度模拟功能。其函数代码如下所示:intmain(){while(1){system(CLS);intN;printf(\t\t\t*******欢迎使用作业调度模拟系统*********\n);printf(\t\t\t****************************************\n);printf(\t\t\t**********短作业优先调度算法************\n);printf(\t\t\t****************************************\n);printf(\t\t\t********非常感谢您的使用,谢谢!********\n);printf(请输入作业数目:);scanf(%d,&N);charch;if(NMAX){printf(\t!!输入的作业数目太大,请输入不大于%d的整数\n,MAX);printf(按Q或者q退出程序,按其他任意键继续测试...);ch=getch();if(ch=='Q'||ch=='q'){break;}elsecontinue;}input(a,N);jcb*b=a;jcbf(b,N);printf(按Q或者q退出程序,按其他任意键继续测试...);11ch=getch();if(ch=='Q'||ch=='q'){break;}}return0;}(2)创建JCB作业控制块创建作业控制块JCB,定义为结构体,为进入系统的作业建立档案,其中定义了作业名,作业到达时间,作业服务时间,作业开始执行时间,作业完成时间,作业周转时间,作业平均周转时间,实现对作业的存储和管理。结构体定义如下所示:structjcb{charname[10];//作业名floatarrivetime;//作业到达时间floatservicetime;//作业服务时间floatstarttime;//作业开始执行时间floatfinishtime;//作业完成时间floatcyctime;//作业周转时间floatavecyctime;//作业平均周转时间};(3)信息输入模块定义一定范围内可变输入数,用户只需输入可变范围内的数据即可进行作业信息的输入,如果输入的作业数超出其可变范围,则需重新输入。其流程如下:12(4)随机产生作业到达时间和服务时间模块此模块主要是利用随机函数srand()和rand(),以时间作为种子,随机产生作业到达时间和作业服务时间,这样便充分符合了短作业优先调度算法的特点。(5)计算模块此模块是利用函数来实现对作业数据的计算,包括
本文标题:操作系统课程设计报告
链接地址:https://www.777doc.com/doc-3364988 .html