欢迎来到天天文库
浏览记录
ID:59234684
大小:482.00 KB
页数:16页
时间:2020-09-09
《中南大学操作系统原理实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机操作系统实验报告学院: 信息科学与工程学院专业班级: 信息安全1302班指导老师: 郁博文学号: 计算机操作系统1.设计目的1、增强学生对计算机操作系统基本原理、基本理论、基本算法的理解;2、提高和培养学生的动手能力。2.设计要求1、每人至少选作1题,多做不限;2、每人单独完成,可以讨论,但每人的设计内容不得完全相同,抄袭或有2人/多人设计完全一样者,不能通过;3、设计完成后,应上交课程设计文档,文档格式应是学校课程设计的标准格式,所有学生的封面大小、格式也必须一样;4、同时上交设计的软盘(或以班刻录光盘)。3.设计题目调度算法
2、的模拟:模拟各种调度算法,并进行调度性能分析。4.设计过程4.1设计思路模拟了一个作业调度算法,其中用到了先来先服务算法(FCFS)、短作业优先算法(SJF)、最高响应比优先算法(HRN)三种算法。如下,分别为三种算法的程序流程图。4.2实验过程图1-开始界面图2–输入作业的信息(名字、提交时间、运行时间)图3–选择算法(FCFS、SJF、HRN)图4、5–选择FCFS算法后输出结果图6、7–选择SJF算法后输出结果图8、9–选择HRN算法后输出结果4.3调度性能分析1.先来先服务算法(FCFS)优点:能体现公平性;缺点:一旦一个较长的作业
3、进入系统后就会长时间的占用系统的资源,这样如果有优先级较高的短作业需要执行的话需要等待很长时间。2.短作业优先算法(SJF)优点:比前者改善了平均周转时间和平均带权周转时间,缩短作业的等待时间,提高系统的吞吐量;缺点:对长作业非常不利,可能长时间得不到执行,未能一句作业的紧迫程度来划分执行的优先级,难以准确估计作业的执行时间,从而影响调度性能。3.最高响应比优先算法(HRN)优点:这种算法是对FCFS方式和SJF方式的一种综合平衡。FCFS方式只考虑每个作业的等待时间而未考虑执行时间的长短,而SJF方式只考虑执行时间而未考虑等待时间的长短。
4、因此,这两种调度算法在某些极端情况下会带来某些不便。HRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。缺点:由于长作业也有机会投入运行,在同一时间内处理的作业数显然要少于SJF法,从而采用HRN方式时其吞吐量将小于采用SJF法时的吞吐量。另外,由于每次调度前要计算响应比,系统开销也要相应增加。5.总结在实验中,由于对算法细节不够熟悉,以及对c语言的遗忘,我遇到了不少困难。因而,在克服这些困难的过程中,我对FCFS算法有了更加深刻而透彻的理解,c语言的一些基本操作也得到了巩固。今后我亦将多
5、多练习,毕竟理论与实践结合才是最好的学习方法。6.代码附录#include#include#definegetpch(type)(type*)malloc(sizeof(type))structworktime{floatTb;//作业运行时刻floatTc;//作业完成时刻floatTi;//周转时间floatWi;//带权周转时间};structjcb{/*定义作业控制块JCB */charname[10];//作业名floatsubtime;//作业提交时间floatruntime;//作业所需的
6、运行时间charresource;//所需资源floatRp;//后备作业响应比charstate;//作业状态structworktimewt;structjcb*link;//链指针}*jcb_ready=NULL,*j;typedefstructjcbJCB;floatT=0;voidsort()/* 建立对作业进行提交时间排列函数*/{JCB*first,*second;intinsert=0;if((jcb_ready==NULL)
7、
8、((j->subtime)<(jcb_ready->subtime)))/*作业提交时间最短的,
9、插入队首*/{j->link=jcb_ready;jcb_ready=j;T=j->subtime;j->Rp=1;}else/* 作业比较提交时间,插入适当的位置中*/{first=jcb_ready;second=first->link;while(second!=NULL){if((j->subtime)<(second->subtime))/*若插入作业比当前作业提交时间短,*/{/*插入到当前作业前面*/j->link=second;first->link=j;second=NULL;insert=1;}else/* 插入作业优先
10、数最低,则插入到队尾*/{first=first->link;second=second->link;}}if(insert==0)first->link=j;}}voidSJF
此文档下载收益归作者所有