操作系统课设报告_第1页
操作系统课设报告_第2页
操作系统课设报告_第3页
操作系统课设报告_第4页
操作系统课设报告_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、沈 阳 工 程 学 院课 程 设 计设计题目: 作业调度之响应比高者优先 系 别 信息学院 班级 计算机152 学生姓名 刘宣、曹明迪 学号 、 指导教师 张楠、李波 职称 讲师、讲师 起止日期:2017年6月19日起至2017年6月23日止沈 阳 工 程 学 院 课程设计任务书课程设计题目: 作业调度之响应比高者优先 系 别 信息学院 班级 学生姓名 学号 指导教师 职称 讲师、讲师 课程设计进行地点: 实训F 任 务 下 达 时 间: 2017 年 6 月 19 日起止日期:2017年6月19日起至2017年6月23日止系主任 2017年 6 月 13 日批准 一、课程设计的原始资料及依据

2、查阅有关计算机操作系统的教材、实验指导书等资料,进一步熟悉操作系统的基本原理,算法的设计思想。作业调度是批处理操作系统中的重要内容。本设计要求用高级语言编写和调试一个简单的作业调度程序。通过本设计可以加深理解有关作业控制块、作业队列的概念,并体会和了解先来先服务、短作业优先和响应比高者优先作业调度算法的具体实施办法。加深理解有关作业控制块、作业队列的概念和状态转换。二、课程设计主要内容及要求题目:作业调度之响应比高者优先(2人)1认真阅读资料,掌握作业调度的原理和相关算法的思想。2要求在设计的过程中,建立清晰的层次结构。3画出主要的功能结构图和主要算法的流程图。4设计作业控制块JCB表结构,适

3、用于响应比高者优先调度算法。 JCB结构通常包括以下信息:作业名,作业到达系统的时间,作业要求服务时间,作业的完成时间等。根据调度算法的不同,JCB结构的内容可以作适当的增删。5建立作业并送入后备队列。6分别显示三种不同算法下,后备队列中所有的作业排列情况。7编制作业调度算法:响应比高者优先调度算法。8显示根据调度算法形成的作业调度顺序。9运行程序,检查结果是否和理论值一致。10环境可以使用Windows,Turbo C环境或Linux。三、对课程设计说明书撰写内容、格式、字数的要求 1课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:设计题目、设计目的、设备器材、设计原理及内容、设

4、计步骤、遇到的问题及解决方法、设计总结、参考文献等。一般不应少于3000字。2在适当位置配合相应的实验原理图、功能模块图、算法流程图等图表进行说明。应做到文理通顺,内容正确完整,书写工整,装订整齐。3设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。4课程设计说明书手写或打印均可。手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。5课程

5、设计说明书装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。四、 设计完成后应提交成果的种类、数量、质量等方面的要求1完成“任务书”中指定的功能,运行结果正确。2课程设计说明书。五、时间进度安排顺序阶段日期计 划 完 成 内 容备注1第1天阅读资料及系统分析设计2第2天程序编制3第3天程序编制、调试及运行4第5天成绩评定5第5天书写课程设计说明书六、主要参考资料(文献)1凤羽.操作系统.北京:电子工业出版社,20042马季兰、冯秀芳等.操作系统原理与Linux. 北京:人民邮电出版社,2000 3孟静.操作系统原理教程.北京:清华大学出版社,20004周苏、金海溶. 操作系统原理实验

6、.北京: 科学出版社,2000沈 阳 工 程 学 院集中实践(设计、实训)成绩评定表学院: 信息学院 班级: 计算机 学生姓名: 平 时 考 查评价内容具 体 要 求权重评 分加权分调研论证能独立查阅文献,收集资料;能制定实践方案和日程安排。15432工作态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成实践工作。15432阶段性成果按时间节点完成规定的实践任务。25432平时考查得分成 果 检 查评价内容具 体 要 求权重评 分加权分工作量按期圆满完成规定的实践任务,工作量饱满,难度适宜。25432创新特色成果有独到特点,具有一定的创新与应用价值。15432成果内容完全符合任务书要求

7、,完成全部实践任务。55432成果汇报思路清晰,回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。25432结果检查得分报 告 质 量评价内容具 体 要 求权重评 分加权分报告内容报告前后内容一致,论述充分,图表完备,完全符合任务书要求,完成全部实践任务。35432格式规范符号统一,编号齐全,格式工整规范。25432文字表达语言准确,文字流畅,技术用语准确。15432报告质量得分集 中 实 践 总 评 成 绩分指导教师时间年 月 日沈 阳 工 程 学 院集中实践(设计、实训)成绩评定表学院: 信息学院 班级: 计算机 学生姓名: 平 时 考 查评价内容具 体 要 求权重评 分

8、加权分调研论证能独立查阅文献,收集资料;能制定实践方案和日程安排。15432工作态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成实践工作。15432阶段性成果按时间节点完成规定的实践任务。25432平时考查得分成 果 检 查评价内容具 体 要 求权重评 分加权分工作量按期圆满完成规定的实践任务,工作量饱满,难度适宜。25432创新特色成果有独到特点,具有一定的创新与应用价值。15432成果内容完全符合任务书要求,完成全部实践任务。55432成果汇报思路清晰,回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。25432结果检查得分报 告 质 量评价内容具 体 要 求权

9、重评 分加权分报告内容报告前后内容一致,论述充分,图表完备,完全符合任务书要求,完成全部实践任务。35432格式规范符号统一,编号齐全,格式工整规范。25432文字表达语言准确,文字流畅,技术用语准确。15432报告质量得分集 中 实 践 总 评 成 绩分指导教师时间年 月 日目录第1章 绪论11.1 课程前景11.2 高响应比优先调度算法的实现过程11.3 高响应比优先调度算法的优缺点1第2章 原理及运行环境22.1 系统原理22.2 运行环境(Visual C+6.0)2第3章 详细设计53.1 系统的详细定义和介绍53.2 系统功能模块介绍53.3 具体模块设计53.4 程序源代码11第

10、4章 调试分析154.1 测试数据154.2 程序截图15参考资料18 第1章 绪论1.1 课程前景在信息高速发展的当今社会,各个领域的突飞猛进,计算机也有它卓越的进步,学习都是由浅入深我们学习计算机也是一样,都是从简单学起。“操作系统”是计算机专业的核心专业课,“操作系统课程设计”是理解和巩固操作系统基本理论,原理和方法的重要实践环节,因此,我们必须将之学好,操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其他计算机原理,编译原理汇编语言,计算机网络,程序设计等专业课程关系十分密切。本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论,原理

11、和方法,掌握操作系统基本理论与管理方式。在算法基础上,解决实际的管理功能的问题,提高学生实际应用,编程的能力。1.2 高响应比优先调度算法的实现过程高响应比优先算法的实现过程如下:如果我们能为每个作业引入一个动态优先级,即优先级是可以改变的,令它的等待时间延长而增加,这将使长作业的优先级在等待期间不断地增加,等到足够的时间后,必然有机会获得处理机。响应比R定义如下: R=(W+T)/T=1+W/T 其中T为该作业估计需要的执行时间,W为作业在后备状态队列中的等待时间。 每当要进行作业调度时,系统计算每个作业的响应比,选择其中R最大者投入执行。这样,即使是长作业,随着它等待时间的增加,W/T也就

12、随着增加,也就有机会获得调度执行。1.3 高响应比优先调度算法的优缺点在批处理系统中,FCFS算法所考虑的只是作业的等待时间,而忽视了作业的运行时间。而SJF算法正好与之相反,只考虑作业的运行时间,而忽视了作业的等待时间。高响应比优先调度算法则是既考虑了作业的等待时间,又考虑了作业运行时间的调度算法,因此既照顾了短作业,又不致使长作业的等待时间过长,从而改善了处理机调度的性能。当然在利用该算法时,每次要进行调度之前,都需要先做响应比的计算,显然会增加系统开销。 第2章 原理及运行环境2.1 系统原理作业调度的主要任务是,根据JCB中的信息,检查系统中的资源能否满足作业对资源的需求,以及按照一定

13、的调度算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。然后再将新创建的进程排在就绪队列上等待调度。高响应比优先调度算法是根据作业的等待时间跟运行时间来确定作业的优先级,处理机按照优先级顺序依次进行调度与处理。2.2 运行环境(Visual C+6.0)在数据结构程序的运行环境为Visual C+6.0其工作环境如图2.1所示: 图2.1 Visual C+6.0的工作环境C与C+程序 Visual C+6.0的材料如下:VisualC+6.0由Microsoft开发,它不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境.VisualC

14、+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。VisualC+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出VisualC+1.0后,随着其新版本的不断问世,VisualC+已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了VisualC+.NET(VisualC+7.0),但它的应用的很大的局限性,只适用于Windows2000,WindowsXP和WindowsNT4.0。所以实际中,更多的是以VisualC+

15、6.0为平台。总体来讲,运行环境方便快捷。建立C语言源程序文件。建立方法:选择菜单命令“文件”“新建”或直接点击对话框中的“新建”,选择Win32Console,并在右上方“工程名”称下键入工程名如图2.2所示。在工程建立完成后选择C+Source,并在“文件名”下键入文件名如图2.3所示。 图2.2 建立操作系统源程序建立工程程序的编辑与编译。编辑完成后,选择菜单栏中的“运行”“调试程序”即可对程序进行编译。当输出区显示“0 errors, 0 warnings ”时表示没有错误和警告,反之,则会按序号列出错误和警告。双击错误或警告,编辑标志会出现在源文件可能出错的位置,当然有时提示位置不一

16、定很准确。程序的执行。单击工具栏上的“红色感叹号”按钮或Ctrl+F5,即可执行刚编写程序,如图2.3所示。 图2.3 对源程序进行编写使用C与C+程序设计VC+6.0开发环境,对源程序执行编译。如图2.4所示。 图2.4 执行编写的程序 第3章 详细设计3.1 系统的详细定义和介绍本题目的设计要达到目的:通过对作业调度过程的模拟,加深对高响应比优先调度算法的理解。部分代码如下:#include#include#include#include#include#includetypedef char string10; /* /定义string为含有10个字符元素的字符数组类型*/struct

17、task string name; /*作业号*/ int arrTime; /* 作业到达时间*/ int serTime; /*作业要求服务时间*/ Int waiTime; /*等待时间*/ int begTime; /*开始运行时间*/ int finTime; /*结束运行时间*/ int turTime; /*周转时间*/ int wTuTime; /*带权周转时间*/ int priority;/*优先权*/ int finish;/*是否已经完成*/JCB103.2 系统功能模块介绍该高响应比优先调度算法(HRRN)各模块主要完成的功能有:1) 输入作业数量,各作业的名称以及其

18、到达时间和服务时间2) 按照高响应比优先调度算法对作业进行排序3) CPU对后备队列中的作业依次进行调度3.3 具体模块设计 1)系统功能模块图:共分为三个模块来实现其功能,分别为作业输入模块、作业优先权模块、以及后备队列模块。判断队列是否为空依次处理当前任务更新队列中的作业优先级高响应比优先算法读入数据,插入处理队列高响应比优先调度算法作业输入模块作业优先权模块后备队列模块 图3.1 系统功能模块图2)过程流程图: 图3.2 程序总流程图 图3.3 作业输入模块流程图 图3.4 作业优先权模块流程图 图3.5 后备队列模块流程图3.4 程序源代码 #include#include#inclu

19、de#include#include#includetypedef char string10; /* /定义string为含有10个字符元素的字符数组类型*/struct task string name; /*作业号*/int arrTime; /* 作业到达时间*/int serTime; /*作业要求服务时间*/int waiTime; /*等待时间*/int begTime; /*开始运行时间*/int finTime; /*结束运行时间*/int turTime; /*周转时间*/int wTuTime; /*带权周转时间*/int priority;/*优先权*/int fini

20、sh;/*是否已经完成*/JCB10;int num; void input()/*输入功能函数,参数为作业数量、作业名称、到达时间、服务时间,返回值为0*/int i; system(cls); printf(n请输入作业数量: ); scanf(%d, &num); for(i=0;inum;i+) printf(n请输入作业 NO.%d:n,i);printf( 作业名称: );scanf(%s,JCB);printf( 到达时间: );scanf(%d,&JCBi.arrTime);printf( 服务时间: );scanf(%d,&JCBi.serTime);JCBi.p

21、riority = 0;JCBi.finish =0;int HRN(int pre) int current=1,i,j;/* 优先权 =(等待时间+服务时间)/服务时间*/ for(i=0; inum; i+) JCBi.waiTime=JCBpre.finTime-JCBi.arrTime; /*等待时间 =上一个作业的完成时间-到达时间*/JCBi.priority=(JCBi.waiTime+JCBi.serTime)/JCBi.serTime; for(i=0; inum; i+)if(!JCBi.finish)current=i; /*找到第一个还没完成的作业*/break; f

22、or( j=i; jnum; j+) /*和后面的作业比较*/ if( !JCBj.finish) /* 还没完成(运行)*/if(JCBcurrent.arrTime=JCBpre.finTime) /*如果作业在上一个作业完成之前到达*/if(JCBj.arrTimeJCBcurrent.priority )current=j;/* 找出到达时间在上一个作业完成之前,优先权高的作业*/else /* 如果作业是在上一个作业完成之后到达*/if(JCBj.arrTimeJCBcurrent.priority)current=j; /*找出服务时间比较短的一个*/ return current

23、;/*返回当前作业*/void runing(int i, int times, int pre, int staTime, int endTime)/*运行功能函数,参数为到达时间、周转时间、服务时间,返回值为周转时间总和及平均周转时间*/ if(times=0)JCBi.begTime=JCBi.arrTime;JCBi.finTime=JCBi.begTime+JCBi.serTime; JCBi.turTime=JCBi.serTime;JCBi.wTuTime=1.0;staTime=JCBi.begTime; elseif(JCBi.arrTimeJCBpre.finTime) J

24、CBi.begTime=JCBi.arrTime; elseJCBi.begTime=JCBpre.finTime; JCBi.finTime=JCBi.begTime+JCBi.serTime;JCBi.turTime=JCBi.finTime-JCBi.arrTime; JCBi.wTuTime=JCBi.turTime/JCBi.serTime;if(times=num-1)endTime=JCBi.finTime;JCBi.finish=1;void print(int i,int times)/*输出功能函数,参数为到达时间、服务时间、开始时间、完成时间、周转时间、带权周转时间,返回

25、值为0*/if(times=0)printf( 名称 到达时间 服务时间 开始时间 完成时间 周转时间 带权周转时间n);printf(%9s%9d%9d%9d%9d%9d%9dn,JCB,JCBi.arrTime,JCBi.serTime,JCBi.begTime,JCBi.finTime,JCBi.turTime,JCBi.wTuTime);void check( )/*检查功能函数,参数为周转时间,返回值为周转时间总和及平均周转时间*/int i;int staTime, endTime, sumTurTime=0.0, sumWTuTime=0.0, aveTurTime,

26、 aveWTuTime;int current=0, times=0, pre=0; JCBpre.finTime=0; for(i=0; inum; i+)JCBi.finish=0;staTime, endTime,sumTurTime=0.0, sumWTuTime=0.0, aveTurTime, aveWTuTime;current=0; times=0; pre=0;JCBpre.finTime=0; printf(-n);for(i=0; inum; i+)JCBi.finish=0; staTime, endTime,sumTurTime=0.0, sumWTuTime=0.0, aveTurTime, aveWTuTime;current=0; times=0; pre=0;JCBpre.finTime=0; printf(n- HRRN -n);for(times=0; timesnum; times+)current=HRN(pre);runing(current, times, pre, sta

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论