数据结构课程设计-多级队列调度算法的模拟.doc

上传人:小小飞 文档编号:3277347 上传时间:2019-08-07 格式:DOC 页数:17 大小:114.01KB
返回 下载 相关 举报
数据结构课程设计-多级队列调度算法的模拟.doc_第1页
第1页 / 共17页
数据结构课程设计-多级队列调度算法的模拟.doc_第2页
第2页 / 共17页
数据结构课程设计-多级队列调度算法的模拟.doc_第3页
第3页 / 共17页
数据结构课程设计-多级队列调度算法的模拟.doc_第4页
第4页 / 共17页
数据结构课程设计-多级队列调度算法的模拟.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《数据结构课程设计-多级队列调度算法的模拟.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计-多级队列调度算法的模拟.doc(17页珍藏版)》请在三一文库上搜索。

1、 长 沙 学 院面向对象课程设计说明书题 目 多级队列调度算法的模拟 系 (部) 信息与计算科学系 专业(班级)信息与计算科学专业二班 姓 名 学 号 2009032208(2009032207) 指导教师 起止日期 2010-12-182010-12-27 长 沙 学 院面向对象课程设计任务书专 业 信息与计算科学 班 级 09级2班 指 导 老 师 任务书发出时间 2010-12-18 信息与计算科学系2010年 12 月 18 日课 程 设 计 任 务 书课程数据结构课程设计题目多级队列调度算法的模拟序号5主要内容运行队列的知识实现多级队列调度算法,并计算进程的平均周转时间和平均调度次数

2、。要求基本要求1 队列数量为41进程的个数、每个进程所需的服务时间通过键盘输入,进程的到达时间都假定为0;2 显示进程调度的过程;3 列出每一个进程的周转时间和调度次数;4 显示所有进程的平均周转时间和平均调度次数。 高级要求:1 将同一轮转周期内先来先服务的方式改为短作业优先的方式,并实现该算法工作计划及进度1. 14周星期一:选题、交分组名单和课程设计题目;收集资料、需求分析;确定目标、设计方案并选择方案;系统设计;2. 14周星期一至14周星期四:程序设计;撰写课程设计报告; 3. 14周星期五: 提交课程设计报告,汇报演示。指导教师签字 陈治平 赵碧海 马丽 2010年11月30日教研

3、室审定意见同意实施签字 栾悉道 2010年11 月 30 日长沙学院课程设计鉴定表姓名梁一鹏学号2009032208专业信息与计算科学班级二班设计题目多级队列调度算法的模拟指导教师马丽 陈治平 赵碧海 指导教师意见:评定等级: 教师签名: 日期: 答辩小组意见:评定等级:答辩小组长签名:日期:教研室意见:教研室主任签名: 日期: 系(部)意见:系主任签名:日期:说明课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;目录第一章开发背景1第二章 系统需求22.1系统总需求22.2 功能需求22.3 数据需求2第三章 系统设计33.1 系统总功能模块设计33.1.1分工设计33.2各子功能

4、模块设计33.2.1先来先服务调度方式33.3 结构体和队列设计53.3.1进程信息和队列信息5第四章 系统测试64.1测试的目的64.2测试手段64.3测试用例6第五章 系统特点及关键技术75.1 进程信息输入75.2输出进程信息85.3显示过程8结论9参考文献10结束语1111 第一章 开发背景多级队列调度算法又称反馈循环队列或多队列策略,多级队列调度算法是一种CPU处理机调度算法,UNIX操作系统采取的便是这种调度算法。多级队列调度算法即能使高优先级的作业得到响应又能使短作业(进程)迅速完成。,主要思想是将就绪进程分为两级或多级,系统相应建立两个或多个就绪进程队列,较高优先级的队列一般分

5、配给较短的时间片。处理器调度先从高级就绪进程队列中选取可占有处理器的进程,只有在选不到时,才从较低级的就绪进程队列中选取。使用这种调度策略具有较好的性能,能够满足各类用户的需要。第二章 系统需求2.1系统总需求多级队列调度算法的模拟主要来自两个方面的需求,这两方面分别是队列和进程的调度。其中队列为模拟的CPU,进程进入队列则得到CPU资源,出对则释放自己所占有的CPU资源。而进程的调度分两种方式,一种是先来先服务,另一种是短作业优先。先来先服务是按时间顺序,哪个进程先到则先进入队列,获得执行机会。短作业优先是按进程所需时间的长短,哪个进程所需时间越短则越先进入队列,获得执行机会。2.2 功能需

6、求该多队列调度算法的模拟是对CPU内部调度的模拟,能让我们更清楚的了解CPU内部的调度过程。整个系统共分两个模块:输入队列和进程的信息、先来先服务调度方式输入队列和进程的信息:这部分功能主要实现对队列和进程信息的输入(例如,进程的名字、所需运行的时间、队列的名字、队列的时间片。先来先服务调度方式:这部分功能主要实现对进程进行调度,并在进程调度过程中,进行一些其它操作。2.3 数据需求队列信息=队列的名字+队列的时间片+队列元素进程信息=进程的名字+已运行时间+需运行时间入队=队列的名字+队列的时间片+进程所需运行时间出队=队列的名字 第三章 系统设计3.1 系统总功能模块设计多级队列调度算法的

7、模拟是对CPU内部调度进行模拟。该系统包括输入队列和进程的信息、先来先服务调度方式、短作业优先调度方式、输出进程的周转时间和调度次数等四个功能。多级队列调度算法的模拟的软件结构如图3.1所示。多级队列调度算法的模拟输入队列和进程的信息先来先服务调度方式短作业优先调度方式进程周转时间和调度次数图3.1 多级队列调度算法模拟的结构3.1.1分工设计此程序由我和李卓合作完成,其中我负责主界面模块和数据的输入及输出模块;李卓负责其它模块。3.2各子功能模块设计3.2.1先来先服务调度方式(1)功能:实现按时间顺序对进程进行调度。(2)程序流程图:先来先服务调度方式的流程图如图3.2所示。开始int j

8、=0;if(inum) num为进程的 个数 if(jname);printf(n 输入第一个进程优先级:);scanf(%d,&ready-priority);printf(n 输入第一个进程运行时间:);scanf(%d,&ready-needtime);printf(n);ready-runtime=0;ready-worktime=0;ready-changetime=0;ready-state=r;ready-queue=1;ready-link=NULL;for(i=0;iname);printf(n 输入进程优先级:);scanf(%d,&ready-priority);p-qu

9、eue=1;printf(n 输入进程运行时间:);scanf(%d,&p-needtime);printf(n);p-runtime=0;p-worktime=0;p-changetime=0;p-state=w;p-link=NULL;sort(p);5.2输出进程信息void disp(PROGRAM * pr)/进程输出函数printf(nqname priority state queue needtime runtime worktime changetimen);printf(n%st%ct%ct%dt%dt%dn, pr-name,pr-priority,pr-state,pr

10、-queue, pr-needtime,pr-runtime,pr-worktime,pr-changetime); 5.3显示过程void check()/显示过程函数PROGRAM *pr;printf(n*当前正在运行的进程%s,run-name);disp(run);printf(n*当前正准备好的进程%s,ready-name);结论 CPU是计算机系统中一个十分重要的资源,所以对CPU的合理利用十分重要,作业调度尽量做到公平合理,执行尽可能多的作业。在多级队列调度算法中,一个进程在结束之前,需要多次反复地循环执行这就需要运用CPU中进程的调度和运作。本系统有输入队列和进程的信息、先

11、来先服务调度方式。在系统设计过程中我们运用到了算法与操作系统等课程中的内容,但所学知识不能充分地合理地运用,所以出现了一些小问题,此系统由我和李卓合力完成,有些功能还不够完善,看来还是“学无止境”,需要不断学习。参考文献1 杨路明.C语言程序设计教程.北京邮电大学出版社.2005年12月,第二版2 郑莉.C+语言程序设计.清华大学出版社.2003年12月第三版3 张乃孝.算法与数据结构.C语言描述.北高等教育出版社.2006年1月,第二版 结束语 CPU是计算机系统中一个十分重要的资源。但在早期的计算机系统中,对他的管理是十分简单的。因为那时它和其他系统资源一样,为一个作业所独占,不存在处理机分配和调度问题。后来有了调度,当调度一批作业组织多道运行时,要尽可能是作业搭配合理,充分利用各种资源,于是调度算法的优异性就体现了出来。通过本次课程设计,我们了解到了合作的重要性,也对算法中队列和操作系统中进程有了更深的了解。本系统还存在一些缺陷,我们会继续努力争取做出更好的系统。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1