欢迎来到天天文库
浏览记录
ID:61946002
大小:1.07 MB
页数:31页
时间:2020-02-25
《操作系统实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实用文档操作系统实验报告学生学院计算机学院专业班级计算机科学与技术3班学号学生姓名指导教师实用文档2015年12月15日目录1实验一进程调度……………………………………………………………………12实验二银行家算法…………………………………………………………………163实验三动态分区分配方式的模拟………………………………………………204实验四仿真各种磁盘调度算法…………………………………………………..26实用文档实验一进程调度1.实验目的编写并调试一个模拟的进程调度程序,分别采用“短进程优先”、“时间片轮转
2、”、“高响应比优先”调度算法对随机产生的五个进程进行调度,并比较算法的平均周转时间。以加深对进程的概念及进程调度算法的理解。2.实验要求1.每个进程由一个进程控制块(PCB)表示,进程控制块可以包含如下信息:进程名、优先数(响应比)、到达时间、需要运行时间(进程的长度)、已运行时间、进程状态等等(可以根据需要自己设定)。2.由程序自动生成进程(包括需要的数据,要注意数据的合理范围),第一个进程到达时间从0开始,其余进程到达时间随机产生。3.采用时间片轮转调度算法时,进程的运行时间以时间片为单位进行计算。4.每
3、个进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。5.每进行一次调度,程序都要输出一次运行结果:正在运行的进程、就绪队列中的进程、完成的进程以及各个进程的PCB,以便进行检查。6.最后计算各调度算法的平均周转时间,并进行比较、分析。3.实验内容a.算法原理(1)短进程优先调度算法“短进程优先”调度算法的基本思想是把CPU分配给就绪队列中需要时间最短的进程。(2)时间片轮转算法将系统中所有的就绪进程按照FCFS原则,排成一个队列。每次调度时将CPU分派给队首进程,让其
4、执行一个时间片。时间片的长度从几个ms到几百ms。在一个时间片结束时,发生时钟中断。调度程序据此暂停当前进程的执行,将其送到就绪队列的末尾,并通过上下文切换执行当前的队首进程。进程可以未使用完一个时间片,就出让CPU。(3)高响应比优先算法HRRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。每个作业完成后要打印该作业的开始运行时刻、完成时刻、周转时间和带权周转时间,这一组作业完成后要计算并打印这组作业的平均周转时间、带权平均周转时间。实用文档b.程序流程图
5、c.重要数据结构d.各程序说明及关系1.voidinput()输入进程函数实用文档2.voidprint()打印进程函数3.intmain()主函数调用实用文档4.各函数代码voidSJF()短进程优先函数e运行结果截图实用文档实用文档voidRR()短进程优先函数运行结果截图实用文档实用文档voidHRRN()高响应比优先函数实用文档程序运行结果4.结果分析与实验小结作业调度本质与进程调度类似,但是多道的话,就要多考虑空间的容量了。单道的情况就不作分析了,对于多道调度,要考虑清楚,什么时候能够接纳新的作业进
6、来;对于给定的空间来说,一次能让作业同时执行的数量应该是多少;根据算法,应该按照怎么样的先后顺序选择等待的作业……逐步分析后,对于非抢占的CPU,一旦作业进入了执行状态,它的结束时间也就定了下来,一旦有作业结束,就会释放空间,释放之后就能立即选择新的作业进来。根据不同算法,对等待队列也有不同的排序结果,无论怎样,都按先后顺序放入队列中,所以每次选择的时候,都要遍历一遍所有等待中的进程,如果这个作业满足空间需求,则放入CPU中执行,同时更新结束时间,否则则跳过这个作业,判断下一个作业,直到询问完所有等待的作业为
7、止。不断重复上面的步骤,直到所有的作业都执行完所以模拟的时候,分别开了一个运行队列和一个等待队列,运行队列作为判断有哪个作业已经执行结束。通过这个实验,对操作系统的作业调度已经有了更深一层的理解了,望以后能再接再厉。实用文档实验二银行家算法1.实验目的用银行家算法避免死锁,实现系统合理分配资源,加深对进程同步及死锁理解。2.实验要求1.假定系统有3类资源A(10个)、B(15个)、C(12个),系有5个进程并发执行,进程调度采用时间片轮转调度算法。2.每个进程由一个进程控制块(PCB)表示,进程控制块可以包含
8、如下信息:进程名、需要的资源总数、已分配的资源数、进程状态。3.由程序自动生成进程(包括需要的数据,要注意数据的合理范围)。4.进程在运行过程中会随机申请资源(随机生成请求的资源数),如果达到最大需求,表示该进程可以完成;如果没有达到最大需求,则运行一个时间片后,调度其它进程运行。资源分配采用银行家算法来避免死锁。5.每个进程的状态可以是就绪W(Wait)、运行R(Run)、阻塞B(Block)或完
此文档下载收益归作者所有