最终OS实验报告解析

上传人:我** 文档编号:114616076 上传时间:2019-11-12 格式:DOC 页数:27 大小:526KB
返回 下载 相关 举报
最终OS实验报告解析_第1页
第1页 / 共27页
最终OS实验报告解析_第2页
第2页 / 共27页
最终OS实验报告解析_第3页
第3页 / 共27页
最终OS实验报告解析_第4页
第4页 / 共27页
最终OS实验报告解析_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《最终OS实验报告解析》由会员分享,可在线阅读,更多相关《最终OS实验报告解析(27页珍藏版)》请在金锄头文库上搜索。

1、操作系统实验报告 学生学院_ 计算机学院_专业班级_ _网络工程_学 号 3113006565 学生姓名_ 李康贤_ 指导教师_ 李敏 _ _2015年1 月 2 日 实验一 进程调度1、 实验目的用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。2:实验内容及要求设计一个有 N个进程共行的进程调度程序。 要求采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程),时间片轮转算法,多级反馈队列调度算法这三种算法。 每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。 进

2、程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。进程的运行时间以时间片为单位进行计算。 每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。 就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。 如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。 每进行一次调度程序都打印一次运行进

3、程、就绪队列、以及各个进程的 PCB,以便进行检查。 重复以上过程,直到所要进程都完成为止。3:实验设计方案及原理 简单轮转法:所有就绪进程按 FCFS排成一个队列,总是把处理机分配给队首的进程,各进程占用CPU的时间片相同。如果运行进程用完它的时间片后还为完成,就把它送回到就绪队列的末尾,把处理机重新分配给队首的进程。直至所有的进程运行完毕。 多级反馈队列调度算法:当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS

4、原则等待调度执行,以此类推。4、程序流程图(一个实验有多个算法的应该分别给出) 简单论转法 N Y N Y多级反馈: N Y N Y Y N5、各程序之间的调用关系 Main函数进入,调用input方法建立进程控制块,再调用check方法进程查看函数,running方法中调用sort方法,sort方法实现了简单论转法的算法,最后调用disp方法打印进程,直到全部结束; 对于多级反馈队列调度算法,调用input方法建立进程控制块,再调用insertProcess方法确定队列,调用sort方法将进程进行排列,当满足在第一队列时间片内可以完成进程时,则在此队列继续执行,否则建立一个新队列,把该进程未

5、完成的部分放到下一个队列中,直到该队列所有进程完成时,再去执行下一个队列中的进程。调用check方法查看进程的运行状态以及就绪的进程,调用running方法运行,当需要添加新进程时,调用A方法,在A方法中再调用sort方法排列,这样就可以保证后进的作业不一定慢完成。从而体现多级反馈队列调度算法的作用。6、重要数据结构或源程序中疑难部分的说明,需附详细注释void running() int i;(ready-rtime)+;ready-etime -;if(ready-rtime = ready-ntime)/ 进程在该队列的时间时间片内完成,然后销毁进程destroy();return;el

6、se if(ready -etime = 0)/当时间片用完,剩余部分添加到下一个队列int time = 2;/时间片翻倍,因为初始时间为1(ready-queue)+;/队列数比原先加1for(i = 2; i != ready-queue; +i)time *= 2;/以后每增加一条队列,时间片都为原先2倍ready-etime = time;ready-state=w;/状态为等待,仅当前一队列的全部进程运行完毕在运行sort();调用sort方法重新排列,再重新运行接下来的等级高的进程7、程序运行结果多级反馈:8、结果分析与实验小结 结果分析:对于简单论转法,只需比较进程到达时间以及

7、每个进程运行所需的时间。对于多级反馈队列算法,由原先的进程1,2先到达,进程1先运行1个时间片,剩余的进程1下降到队列2,轮到进程2在原队列运行,剩余的进程2下降到队列2,当进程1完成后,此时新增加进程3,但是进程3的所需运行时间比进程2小,所以最终结果为进程3先于进程2早完成。这样就可以保证后进的作业不一定慢完成。从而体现多级反馈队列调度算法的作用。小结:简单轮转法原理简单,但是可能产生进程等待时间过长的问题,多级反馈队列算法则兼顾大小进程,且对进程到达时间也很好兼顾到,时比较好的一种算法。通过此实验,我感觉了编程的能力是极其重要的,对于实现某些功能,要先分析其逻辑,再慢慢结合编程技巧,一点

8、点把所需要的功能以程序的方法体现出来。很有意义。 实验二 作业调度1、 实验目的本实验要求学生模拟作业调度的实现,用高级语言编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解。2、 实验内容及要求1、为单道批处理系统设计一个作业调度程序1) 编写并调试一个单道处理系统的作业等待模拟程序。2) 作业调度算法:分别采用先来先服务(FCFS)、响应比高者优先(HRNN)的调度算法。 3) 由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的 CPU时限等因素。4)

9、 每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。每个作业的最初状态总是等待W。5) 对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间,并比较各种算法的优缺点。3、 实验设计方案及原理首先本次实验将会选择单道作业调度,所以不需要考虑内存分配情况以及磁带机分配情况,因为在单道调度中,只要作业被调进内存之后,它就会一直到完成才可以调出内存。在程序中采用先来

10、先服务算法和高响应比优先算法,利用switch语句选择将要采取的方法。对于先来先服务算法,首先按照每个作业的到达时间,采取先到达先被调度的原则,知道其完成再轮到下一个最先到达的作业,将其调入内存。对于高响应比优先算法,首先将最先到达的作业先调入内存,当第一个作业完成时候,在这一刻利用算法计算出剩下的作业在此时的响应比,只把响应比最高的作业调入内存。以此类推,每一次完成一个作业之后都计算剩下的作业在此刻的响应比,以此调入,知道结束。最后得出平均周转时间及带权平均周转时间。4、 程序流程图 FCFS算法: NY5、 HRNN算法: Y N Y N6、 各程序之间的调用关系Main函数开始,当选择1

11、采用先来先服务算法时,调用FCFS方法,再调用initial方法,建立作业控制块队列,先将其排成先来先服务的模式队列,根据该方法选择出最先到达的作业,调用running方法进行运行,计算作业运行后的完成时间,周转时间等等,再调用调用disp()方法,显示作业运行情况,当作业运行结束时调用free方法释放内存。当采用高响应比算法时,调用HRRN方法,再调用initial方法,建立作业控制块队列,先将其排成先来先服务的模式队列,在调用super方法计算出每个时刻的各作业响应比,选择响应比最大的作业调用running方法,计算作业运行后的完成时间,周转时间等等,再调用调用disp()方法,显示作业运行情况,当作业运行结束时调用free方法释放内存。最后当全部作业都运行结束,调用final方法,最后打印作业的平均周转时

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号