操作系统课程设计进程调度模拟文档格式.docx
- 文档编号:937793
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:44
- 大小:745.69KB
操作系统课程设计进程调度模拟文档格式.docx
《操作系统课程设计进程调度模拟文档格式.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计进程调度模拟文档格式.docx(44页珍藏版)》请在冰点文库上搜索。
合计
分值
各项
评分标准
实际
得分
备注
平时表现
10
按时参加综合设计,无旷课、迟到早退、违反实验室纪律等情况。
、
完成情况
30
20
按设计任务书的要求完成了全部任务,能完整演示其设计内容,符合要求。
能对其设计内容进行详细、完整的介绍,并能就指导教师提出的问题进行正确的回答。
报告质量
35
报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨合理;
报告字数符合相关要求,工整规范,整齐划一。
5
课题背景介绍清楚,综述分析充分。
设计方案合理、可行,论证严谨,逻辑性强,具有说服力。
符号统一;
图表完备、符合规范要求。
能对整个设计过程进行全面的总结得出有价值的结论或结果。
,
参考文献数量在3篇以上,格式符合要求,在正文中正确引用。
答辩情况
25
在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。
15
在规定时间内能准确、完整、流利地回答教师所提出的问题。
总评成绩:
分补充说明:
指导教师:
(签字)
日 期:
2013年6月28日
答辩记录表
答辩地点:
答辩内容记录:
答辩成绩
在规定时间内能就所设计的内容进行阐述,言简意明,重点突出论点正确,条理清晰。
答辩小组成员(签字):
2013 年6月28日
指导教师评语
日 期:
2013年6月27 日
一、综合设计目的、条件、任务和内容要求:
[目的]
设计程序来模拟进程调度的四种调度算法。
通过进程调度程序的设计,熟悉和了解进程控制块、进程队列、调度算法等概念,从而加深和理解处理机管理的核心内容,加深对操作系统原理课程的理解,巩固已经学过的基础课及专业课知识,开阔学生的视野,锻炼学生的自学能力及独立动手能力等。
[条件]
计算机,VisualC++或者JDK开发平台(MyEclipse)
[任务]
1.用语言来实现对n个进程采用不同调度算法的调度进程
2.每个用来标识进程的进程控制块PCB用结构来描述,包括以下字段:
(1)进程优先数ID,其中0为闲逛进程,用户进程的标识数为1,2,3…。
(2)进程优先级Priority,闲逛进程(idle)的优先级为0,用户进程的优先级大于0,且随机产生,优先数越大,优先级越高。
(3)进程占用的CPU时间CPUtime,进程每运行一次,累计值等于4。
(4)进程总共需要运行时间Alltime,利用随机函数产生。
(5)进程状态,0:
就绪态;
1:
运行态;
2:
阻塞态。
3.优先数改变的原则
(1)进程在就绪队列中每呆一个时间片,优先数增加1。
(2)进程每运行一个时间片,优先数减3。
。
[内容要求]
(1)提示用户选择想要模拟的进程调度算法,并输入待执行的进程的数目
n。
(2)由系统自动创建n+1个进程控制块(第一个作为头结点暂且不用),为
每一个进程控制块进行初始化设置,并且链接成一个链表,作为一个就绪队列。
(3)按照用户的要求选择一个进程调度算法来执行。
(4)输出进程调度算法执行后的结果。
(5)提示用户进行下一轮的进程调度算法模拟。
指导教师签字:
2013 年6 月15日
二、进度安排:
1. 发题:
2013.6.15
2.17周完成基本设计。
3.18周完成程序调试。
4.18周完成说明书的书写,其中说明书的内容包括:
第一章、概述
第二章、进程调度设计思想和方法第三章、进程调度程序和结果
第四章、结束语第五章、参考文献
5.18周周四答辩。
三、应收集资料及主要参考文献:
1.严蔚敏;
吴伟民.数据结构(C语言版)[M].北京:
清华大学出版社.2007年4月.
2.严蔚敏;
吴伟民.数据结构教程学习指导[M].北京:
清华大学出版社.2005年4月.
3.叶核亚.数据结构(Java版)(第2版)[M].北京:
电子工业出版社.2008年7月.
4.汤子瀛.计算机操作系统(修订版)[M].西安:
西安电子科技大学出版社.2001年8月.
5.谭耀铬.操作系统(2007版)[M].北京:
中国人民大学出版社.2007年7月.
6.张永常.Java程序设计实用教程[M].北京:
电子工业出版社.2006年8月.
7.谭浩强.C程序设计(第二版)[M].北京:
清华大学出版社.1999年12月.
四、综合设计(课程设计)摘要(中文):
在OS中调度的实质是一种资源分配,因而调度算法是指:
根据系统的资源分配策略所规定的资源分配算法。
进程调度常用的算法有:
先来先服务调度、优先级调度、时间片轮转调度和多级反馈队列调度。
本次课程设计将就模拟先来先服务、时间片轮转、短作业优先、优先级和多级反馈队列五种调度算法进行设计并对他们的性能进行比较,程序提供了创建进程,选择进程调度算法的基本功能。
首先应该设计数据结构,创建进程结构体,然后认真设计每一个进程调度的算法,并运用程序加以实现,算法设计完毕后调试整体程序并测试,比较在不同环境下各种进程调度的优劣。
目前存在的多种调度算法中,有的短发适用于作业调度,有的算法适用于进程调度;
但也有些调度算法既可用于作业调度,也可用于进程调度。
关键词:
进程;
进程调度;
数据结构;
算法
五、综合设计(课程设计)Abstract(英文):
TheOSschedulingisakindofresourceallocationinessence,andschedulingalgorithmisaresourceallocationalgorithmbasedonthesystemofresourceallocationalgorithmprinciples.Processschedulingalgorithmscommonlyusedare:
afirst-comefirst-servedscheduling,priorityscheduling,round-robinschedulingandmulti-leverfeedbackqueueschedulingalgorithms,andcomparingtheirperformance.Programprovidesthecreationprocess,choosingthebasicfunctionofprocessschedulingalgorithms.
First,thedatastructureshouldbedesignedtocreateastructure.Then,schedulingalgorithmsshouldbedesignedcarefullyforeachprocess,andusetheprogramtoachievethoseprocess.Algorithmsschedulingiscompletedafterthewholeprogramdebugging,debuggingiscompletedafterthetestingprocedures,andcomparingthedifferentoperatingenvironmentsintheprocessofschedulinginprosandcons.
Therearemanykindsofschedulingalgorithms.Someissuitableforjobscheduling,andsomeisforprocessscheduling.Buttherearesomeschedulingalgorithmswhicharebothsuitableforjobschedulingandprocessscheduling.
Keywords:
Process;
ProcessScheduling;
DataStructure;
Algorithm
武汉工程大学计算机科学与工程学院 综合设计报告
目录
摘要 II
ABSTRACT III
第一章 课题背景 1
1.1课题背景 1
1.2进程调度简介 1
1.3课题目的 3
1.4课题意义 3
第二章 设计简介及设计方案论述 4
2.1步骤简介 4
2.2设计要点 4
2.3具体方案 4
第三章 详细设计 7
3.1设计数据结构 7
3.2模拟进程调度 7
3.3算法流程图 7
3.4主要函数定义 12
第四章 设计结果及分析 13
4.1创建进程 13
4.2选择进程调度 13
4.3先来先服务调度 13
4.4时间片轮转调度 14
4.5优先级调度 14
4.6多级反馈队列调度 15
4.7性能分析 15
总结 17
致谢 18
参考文献 19
附录 20
-I-
摘要
但也有些调度算法既可用于作业调度,也可用于进程调度。
-II-
Abstract
afirst-comefirst-servedscheduling,priorityscheduling,round-robinschedulingandmulti-leverfeedbackqueueschedulingalgorithms,andcomparingtheirperformance.Programprovidesthecreationprocess,choosingthebasicfunctionofprocessschedulingalgorithms.
processscheduling;
datastructure;
algorithm
-III-
第一章 课题背景
1.1课题背景
在多道程序环境下,主存中有着多个进程,其数目往往多于处理机数目,要使这多个进程能够并发地执行、这就要求系统能按某种算法,动态的把处理机分配给就绪队列中的一个进程,使之执行。
分配处理机的任务是由处理机调度程序完成的。
由于处理机时最重要的计算机资源,提高处理机的利用率几改善系统(吞吐量、响应时间)在很大程度上取决于处理机调度性能的好坏,因而,处理机调度便成为操作系统设计的中心问题之一[1]。
1.2进程调度简介
进程调度的对象时进程(或内核级线程),它是一种基本的调度,在单批道处理、分时和实现三种类型的OS中,都必须配置这级调度[2]。
1.2.1进程调度的功能
(1)记录系统中所有进程的执行情况
作为进程调度的准备,进程管理模块必须将系统中各进程的执行情况和状态特征记录在各进程的PCB表中。
并且,根据各进程的状态特征和资源需求等、进程管理模块还将各进程的PCB表排成相应的队列并进行动态队列转接。
进程调度模块通过PCB变化来掌握系统中存在的所有进程的执行情况和状态特征,并在适当的时机从就绪队列中选择出一个进程占据处理机。
(2)选择占有处理机的进程
进程调度的主要功能是按照一定的策略选择—个处于就绪状态的进程,使其获得处理机执行。
根据不同的系统设计目的,有各种各样的选择策略,例如系统开销较少的静态优先数调度法,适合于分时系统的轮转法(RoundRoLin)和多级互馈轮转法(RoundRobinwithMultip1efeedback)等。
这些选择策略决定了调度算法的性能。
(3)进行进程上下文切换
—个进程的上下文(context)包括进程的状态、有关变量和数据结构的值、机器寄存器的值和PCB以及有关程序、数据等。
一个进程的执行是在进程的上下文中
执行。
当正在执行的进程由于某种原因要让出处理机时,系统要做进程上下文切换,以使另一个进程得以执行。
当进行上下文切换时点统要首先检查是否允许做上下文切换(在有些情况下,上下文切换是不允许的,例如系统正在执行某个不允许中断
-32-
的原语时)。
然后,系统要保留有关被切换进程的足够信息,以便以后切换回该进程时,顺利恢复该进程的执行。
在系统保留了CPU现场之后,调度程序选择一个新的处于就绪状态的进程、并装配该进程的上下文,使CPU的控制权掌握在被选中进程手中[3]。
1.2.2引起进程调度的原因
(1)正在执行的进程执行完毕或因发生某事件而不能再继续执行;
(2)执行中的进程因提出I/O请求而暂停执行;
(3)在进程通信或同步过程中执行了某种原语操作如P操作、阻塞、挂起原语等;
(4)在可剥夺式调度中,有比当前进程优先权更高的进程进入就绪队列;
(5)在时间片轮转法中,时间片完[4];
1.2.3进程调度方式
进程调度有非抢占方式和抢占方式两种:
非抢占方式:
一旦将处理机分配给某进程后,不管它要运行多长时间,都要一直让他运行下去,绝不会因为时钟中断等原因而抢占正在运行的处理机,也不允许其他进程抢占已经分配给他的处理机。
直到该进程完成,自愿释放处理机。
抢占方式:
这种调度方式允许调度程序根据某种原则去暂停某个正在执行的进程,将已经分配给该进程的处理机重新分配给另一个进程。
但抢占调度方式基于以下原则:
优先权原则、段作业进程优先原则、时间片原则[5]。
1.2.4进程调度的功能
进程调度的具体功能可总结为如下几点:
(2)作为进程调度的准备,进程管理模块必须将系统中各进程的执行情况和状态特征记录在各进程的PCB表中。
(3)选择占有处理机的进程
(4)进程调度的主要功能是按照一定的策略选择—个处于就绪状态的进程,使其获得处理机执行。
根据不同的系统设计目的,有各种各样的选择策略,例如系统开销较少的静态优先数调度法,适合于分时系统的轮转法(RoundRoLin)和多级互馈轮转
法(RoundRobinwithMultip1efeedback)等。
(3)进行进程上下文切换
一个进程的执行是在进程的上下文中执行。
当正在执行的进程由于某种原因要让出处理机时,系统要做进程上下文切换,以使另一个进程得以执行。
当进行上下文切换时点统要首先检查是否允许做上下文切换(在有些情况下,上下文切换是不允许的,例如系统正在执行某个不允许中断的原语时)
在系统保留了CPU现场之后,调度程序选择一个新的处于就绪状态的进程、并装配该进程的上下文,使CPU的控制权掌握在被选中进程手中[6]。
1.3课题目的
通过课程设计,加深对操作系统各资源管理模块的理解,掌握操作系统的基本原理及功能,具有初步分析实际操作系统、设计、构造和开发现代操作系统的基本能力。
1.4课题意义
本次课程设计主要是进一步了解操作系统中的进程调度,能够熟练运用C++编程实现进程调度的基本功能。
为之后的学习和实习打下了一定的基础。
通过进程调度程序的设计,熟悉和了解进程控制快、进程队列、调度算法等概念,从而加深和理解处理机管理的核心内容,加深对操作系统原理课程的理解,巩固已经学过的基础课及专业课知识,开阔学生的视野,锻炼学生的自学能力及独立动手能力等。
第二章 设计简介及设计方案论述
2.1步骤简介
(1)提示用户选择想要模拟的进程调度算法,并输入待执行的进程的数目n。
(2)由系统自动创建n+1个进程控制块(第一个作为头结点暂且不用),为每一个进程控制块进行初始化设置,并且链接成一个链表,作为一个就绪队列。
2.2设计要点
(2)进程优先级Priority,闲逛进程(idle)的优先级为0,用户进程的优先级大于0,且随机产生,优先数越大,优先级越高。
(1)进程在就绪队列中每待一个时间片,优先数增加1。
(2)进程每运行一个时间片,优先数减3[7]。
2.3具体方案
2.3.1设计数据结构
设计一种数据结构Process,提供关于进程的一些有效信息:
进程名,运行总时间,
剩余时间,优先级。
typedefstructQNode{
stringProcessName:
//进程名intPriority:
//进程优先级
intAllTime;
//进程运行需要时间
intLeftTime:
//完成进程还需的时间
)Node, ,kProcess:
2.4.2调度算法及设计原理
1.先来先服务调度算法:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计 进程 调度 模拟