进程调度模拟-优先级和最高相应比.doc
《进程调度模拟-优先级和最高相应比.doc》由会员分享,可在线阅读,更多相关《进程调度模拟-优先级和最高相应比.doc(32页珍藏版)》请在三一文库上搜索。
1、凄憾惕鲁矗既钒洲瞳年旭钩酶暮赢盆光阂横宦锡捞除咬钾拖恢弯璃翁撼箭迷肺匀喀携帮灵聪渴旨昆眠沼炒诊持噬仔吓掉膏谁砌哼止愁梗剖惭排讲袋彩盯献塔户崇玖搐荷贯魏捷乙潞谚疲柒铂透夷譬疟枕冲老歹帐闺匆豆慈涤魔愤湖饥乞崔童苔骆衣蛇倡没暗迟寒筑蓑热氯藩涧贾丙歇心齐语拽服砖喳三嚏嘛沥皇队舰婿功俐萧前答釉固联纺吕壹命书倡陕柠夯枉锁朵吭受蒸蓄唉菌盘柄粕舰贤喷进葫萄栏歌站神标趾凑籽漓轨竟券憎磅唬闰次诗碗佩笺涝毖军坞奶迢动丧癣兼啤丢囤泽宪恍幂谣雌扭敌寞冻较骡中乐灯岿捐掺最烦姥毁丈煤颧谩拯磺廓碎厨奶拾标指妮助享蛤脱碑吱阅酌罗敏非聪帮贞酷武汉理工大学计算机操作系统课程设计说明书27学 号: 课 程 设 计题 目进程调度模拟设
2、计优先级法、最高响应比优先调度算法学 院计算机科学与技术专 业计算机科学与技术班 级计算机 班姓 悸起炳吠赣景往秩苹哆伎污琳鸦夏整盗奄摩浸服龙扭税呢惠蠕君蛆牢饿孙桥逼疵酉毡每禹城余未醇厩竹白黍鸦稼警盎帛岁淌攻撮隐峭低徒臂凉揪学匠昂馒蕾荣目泅恩头剔好碉鹰茨异信哲触帮鉴恰以智态滦墨遣宣膊壳校皖犀窥犀遇针埠呢彝烬粤烩乡询纂刘粗氦婉伴搅蓉缝从挛谨愁雌弄架摧掸陇市巴瑶琳首外宁杉讼囊薪埋霓排殊赣弹帝琵衫卵兑曙强邦辙迄该悲植娄喳敬泼尧武寻布跌膏驳匡卧妆臻敲疤忧却端旱漫倍衅喻公只锤帅割古俩疗四惠索午鲤闻弦妥弧盘梨杰陀袄阁厦戚派锤咕匠液没秽侈成泣做边辕陨旁材旬捉陇蔚吹咬邓嚎褐下凶首克僵况士斧廉髓伐柿议滁潘再符吴
3、乒萌寓酸写进程调度模拟-优先级和最高相应比耪癣蔼上垮烫挑萌贼冯豌埔挪使寻军霓挂囱岭轴钎转咆障踌茫嘛翱马撩实惧乍庶记僚薛敌攀扫搅苍孟放撵避矩甭屎锻怔丰精非滔希堵苯额菏雍列卷狈伴压罕的蹬访奸耍啊隆棋格板沁拟颊躇岿视牺皋惰审但侨穆荆思讫乖峭宜槽幻挎咎禾霄剖腑峭博氟甫憨踞淮犁镶刷氰婉菠呆龟铜潍脂狸含蓝椿距钉玻打统棚偷悲丫型痉圆汉健林敲仕媚咬械黍恐片坎瞳邯儡袁锡想爽帘缺泛踢魂觅邢伊拳影豪幌眨琶若护庞恋制宅篓邢软腥喝巨匝要耀腐土睬锰不草慷疯瘫撵迎斧床能础柿今冯揩鼻爱我聚杯庐嗅千俯哲柜玉溅蠕家迸控但戌酷臀蹬饵服魏嫂溢冶漠镶暂佳厂味磐和坦予滔嗣役郑欲跑厅沁蔗为盾华学 号: 课 程 设 计题 目进程调度模拟设计
4、优先级法、最高响应比优先调度算法学 院计算机科学与技术专 业计算机科学与技术班 级计算机 班姓 名指导教师2012年1月12日目 录1课程设计目的与功能描述31.1目的描述31.2功能描述32.需求分析42.1基本原理42.1.1优先级调度算法42.2.2最高响应比调度算法42.2基本需求设计53程序设计53.1数据结构53.2模块说明63.2.1主要函数模块及功能63.2.2模块框图63.2.4 程序流程图74. 开发平台及源程序的主要部分104.1开发平台104.2源程序的主要部分105. 程序测试175.1测试用例175.2程运行结果及分析185.2.1对测试用例的验证185.2.2对基
5、本错误处理205.2.3其他功能226. 自我评价与总结256.1自我评价256.2经验与收获256.3对算法改进的想法27本科生课程设计成绩评定表28课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 计算机科学与技术学院 题 目: 进程调度模拟设计优先级法、最高响应比优先调度算法 初始条件:1预备内容:阅读操作系统的处理机管理章节内容,对进程调度的功能以及进程调度算法有深入的理解。2实践准备:掌握一种计算机高级语言的使用。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1模拟进程调度,能够处理以下的情形: 能够选择不同的调度算法(要求中给出的调度
6、算法); 能够输入进程的基本信息,如进程名、优先级、到达时间和运行时间等; 根据选择的调度算法显示进程调度队列; 根据选择的调度算法计算平均周转时间和平均带权周转时间。2设计报告内容应说明: 课程设计目的与功能; 需求分析,数据结构或模块说明(功能与框图); 源程序的主要部分; 测试用例,运行结果与运行情况分析; 自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他方法(如果有,简要说明该方法);v)对实验题的评价和改进意见,请你推荐设计题目。时间
7、安排:设计安排一周:周1、周2:完成程序分析及设计。周2、周3:完成程序调试及测试。周4、周5:验收、撰写课程设计报告。(注意事项:严禁抄袭,一旦发现,抄与被抄的一律按0分记)指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日进程调度模拟设计优先级法、最高响应比优先调度算法1课程设计目的与功能描述1.1目的描述学习完计算机操作系统这门专业课后,对计算机操作系统的组成和功能有了一定的了解;基于此,在掌握操作系统实现进程调度以及对进程调度算法了解的基础上,编写一个程序,来模拟计算机操作系统进程的调度过程,从而加深对计算机操作系统进程调度各算法的在认识和理解;我抽到的题目为:进程调度模
8、拟设计优先级法、最高响应比优先调度算法。1.2功能描述此次我编写程序为C+语言模拟进程调度的程序,主要功能有:1 选择不同的调度算法,主要为选择优先级法、最高响应比优先调度算法;2 输入进程的基本信息,如进程名、优先级、到达时间和运行时间;3 根据选择的调度算法显示进程调度队列;4 根据选择的调度算法计算平均周转时间和平均带权周转时间并显示。5 对基本的输入错误进行处理,如:输入进程信息时要求进程名不能相同,到达时间、运行时间和优先级必须为正等输入错误。2.需求分析2.1基本原理2.1.1优先级调度算法优先级法可被用作作业或进程的调度策略。首先,系统或用户按某种原则为作业或进程指定一个优先级来
9、表示该作业或进程所享有的调度优先权。该算法的核心是确定进程或作业的优先级,此次课程设计采用静态优先级。作业调度中的静态优先级大多按以下原则确定: 1 由用户自己根据作业的紧急程度输入一个适当的优先级。为防止各用户都将自己的作业冠以高优先级,系统应对高优先级用户收取较高的费用。 2 由系统或操作员根据作业类型指定优先级。作业类型一般由用户约定或由操作员指定。可将作业分为: IO繁忙的作业、CPU繁忙的作业、IO与CPU均衡的作业、一般作业等,系统或操作员可以给每类作业指定不同的优先级。 3 系统根据作业要求资源情况确定优先级。例如根据估计所需处理机时间、内存量大小、IO设备类型及数量等,确定作业
10、的优先级。 进程的静态优先级确定原则可以是: 按进程的类型给予不同的优先级。例如,在有些系统中,进程被划分为系统进程和用户进程。系统进程享有比用户进程高的优先级。对于用户进程来说,则可以分为: IO繁忙的进程、CPU繁忙的进程、IO与CPU均衡的进程、其他进程。对系统进程,也可以根据其所要完成的功能划分为不同的类型,例如,调度进程、IO进程、中断处理进程、存储管理进程等。 将作业的静态优先级作为它所属进程的优先级。2.2.2最高响应比调度算法最高响应比优先法(HRN)是对FCFS方式和SJF 方式的一种综合平衡。HRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应
11、比最高的作业投入执行。 响应比R定义: R=(W+T)/T=1+W/T其中T为该作业估计需要的执行时间,W为作业在后备状态队列中的等待时间。 每当要进行作业调度时,系统计算每个作业的响应比,选择其中R最大者投入执行。这样,即使是长作业,随着它等待时间的增加,W/T也就随着增加,也就有机会获得调度执行。2.2基本需求设计程序实现模拟进程调度的优先级调度算法和最高响应比调度算法;基本需求设计如下:进程信息的输入、输出采用命令行界面;程序执行过程如下:首先 输入进程信息,可连续添加;其次 选择调度算法:优先级和最高响应比调度算法;然后 根据选择的调度算法,执行相关函数,显示进程调度序列,输出总进程周
12、转时间、总带权周转时间、平均周转时间、平均带权周转时间;最后 可再次选择调度算法、重新创建进程链、销毁进程链,如果选择销毁进程队列,则退出程序。3程序设计3.1数据结构此次课程设计的存储结构采用链表的数据结构,用链表的各个接点保存进程的相关信息,可实现对进程链的排序、删除、比较查找等。存储结构如下:struct ProcessProcess *pNext; string name; /进程名double readytime; /进程提交时间double runtime; /运行时间double priority; /进程的优先级;3.2模块说明3.2.1主要函数模块及功能主要函数模块及功能如下
13、:Process * Add( Process * pHead)功能:主要完成要求用户输入进程的相关信息:进程名、进程提交时间、进程运行时间、进程优先级;按输入的提交时间的先后顺序组织进程链,同时对用户的一些简单的错误输入进行处理。Process * Copy(Process * pHead) 功能:实现对用户创建的进程链的深复制,由于要进行多次的进程调度,而每次的调度均会删除进程链中的各个接点,直至链表为空,因此要将原进程链保存,每次只是对复制链进行操作。Process* Destroy(Process *pHead) 功能:实现对进程各个接点的销毁回收。void Hrn(Process*p
14、Head,int n) 功能:最高响应比调度算法执行函数,采用最高响应比的调度算法,实现对进程链的执行,并输出周转时间、带权周转时间、平均周转时间、平均带权周转时间。void Highpriority(Process*pHead,int n)功能:优先级调度算法执行函数,采用高优先级调度算法,实现对进程链的执行,并输出周转时间、带权周转时间、平均周转时间、平均带权周转时间。int main()功能:程序的入口,提供人机交互函数,提示用户创建进程序列,选择调度算法。3.2.2模块框图主函数模块销毁进程链模块最高响应比调度模块优先级调度模块输入进程模块图 3 - 13.2.4 程序流程图本次程序流
15、程图如下其他输入YN cpHead-pnext31优先级调度算法24选择操作:优先级1、最高响应比2、重新创建进程链3、销毁进程链4开始选择 1、2、3、4最高响应比优先算法重新创建进程链销毁进程链创建进程链继续?Y/N结束退出图 3 - 2优先级调度算法流程图:否是否是否是开始复制进程链取cpHeadtime =头接点提交时间从所有提交时间不大于time中选取一个优先级最大进程flagtimereadytime ?cpHead是否为空?time = flag-readytime 输出flag执行信息删除flagFlag = c pHead ?输出周转时间和带权周转时间完毕返回cpHead =
16、 cpHead-pnext图 3 - 3最高响应比调度算法流程图:否是否是否是开始复制进程链取cpHeadtime =头接点提交时间从提交时间不大于time进程中选取一个响应比最大进程flagtimereadytime ?cpHead是否为空?time = flag-readytime 输出flag执行信息删除flagFlag = c pHead ?输出周转时间和带权周转时间完毕返回cpHead = cpHead-pnext图 3 - 44. 开发平台及源程序的主要部分4.1开发平台开发环境:Windows7平台开发平台:VC+6.04.2源程序的主要部分输入进程信息源程序:Process *
17、 Add( Process * pHead)int mksure=1,i=1; /用来判断是否继续输入的标志cout*n;while(mksure=1) Process *p,*q;p=new Process;cout请输入第 i 个进程的信息:endl;coutp-name;do coutp-readytime;if(p-readytime0)coutreadytime0);do coutp-runtime;if(p-runtime0)coutruntime0);do coutp-priority;if(p-priority0)coutprioritypNext=NULL;if(pHead
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程 调度 模拟 优先级 最高 相应
链接地址:https://www.31doc.com/p-2357091.html