
磁盘调度算法实验报告
操作实验报告哈尔滨工程计算机科学与技术学院磁盘调度一.实验概述:1.实称:磁盘调度算法2.实验目的:1)通过学习EOS实现磁盘调度算法的机制,掌握磁盘调度算法执行的条件和时机;2)观察EOS实现的FCFS、SSTF和SCAN磁盘调度算法,了解常用的磁盘调度算法;3)编写CSCAN和N-Step-SCAN磁盘调度算法,加深对各种扫描算法的理解。
3.实验类型:验证、设计4.实验内容:1)准备实验,创建一个EOSKernel项目;2)验证先来先服务(FCFS)磁盘调度算法;3)验证最短寻道时间优先(SSTF)磁盘调度算法;4)验证SSTF算法造成的线程“饥饿现象”;5)验证扫描(SCAN)磁盘调度算法;6)改写SCAN算法;7)编写循环扫描(CSCAN)磁盘调度算法;8)验证SSTF、SCAN及CSCAN算法中的“磁臂粘着”现象;9)编写N-Step-SCAN磁盘调度算法。
二.实验环境操作系统:windowsXP编译器:TevalatonOSLab语言:C三.实验过程1.设计思路和流程图:SCAN算法流程图:SSTF算法的流程图:CSACN流程图:有向内移动的线程
YESNON-STEP-SCAN算法调度:2.实验过程:1)新建一个EOSKernel项目;2)在sysproc.c文件中找到控制台命令“ds”对应的函数ConsoleCmdDiskSchedule。
“ds”命令专门用来测试磁盘调度算法。
阅读该函数中的源代码,目前该函数使磁头初始停留在磁道10,其它被阻塞的
作业调度的实验报告
实验二作业调度一.实验题目1、编写并调试一个单道处理系统的作业等待模拟程序。
作业调度算法:分别采用先来先服务(FCFS),最短作业优先(SJF)的调度算法。
(1)先来先服务算法:按照作业提交给系统的先后顺序来挑选作业,先提交的先被挑选。
(2)最短作业优先算法:是以进入系统的作业所提出的“执行时间”为标准,总是优先选取执行时间最短的作业。
二.实验目的:本实验要求用高级语言(C语言实验环境)编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解三.实验过程单道处理系统作业调度1)单道处理程序作业调度实验的源程序:zuoye.c执行程序:zuoye.exe2)实验分析:1、由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的CPU时限等因素。
2、每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。
作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。
每个作业的最初状态总是等待W。
3、对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时
进程调度算法
调度算法是根据系统源分配策略所规定的资源分配算法。
一、先服务和短作业(进程)优度算法 1. 先来先服务调度算法。
先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度, 也可用于进程调度。
FCFS算法比较有利于长作业(进程),而不利于短作业(进程)。
由此可知,本算法适合于CPU繁忙型作业, 而不利于I\\\/O繁忙型的作业(进程)。
2. 短作业(进程)优先调度算法。
短作业(进程)优先调度算法(SJ\\\/PF)是指对短作业或短进程优先调度的算法,该算法既可用于作业调度, 也可用于进程调度。
但其对长作业不利;不能保证紧迫性作业(进程)被及时处理;作业的长短只是被估算出来的。
二、高优先权优先调度算法 1. 优先权调度算法的类型。
为了照顾紧迫性作业,使之进入系统后便获得优先处理,引入了最高优先权优先(FPF)调度算法。
此算法常被用在批处理系统中,作为作业调度算法,也作为多种操作系统中的进程调度,还可以用于实时系统中。
当其用于作业调度, 将后备队列中若干个优先权最高的作业装入内存。
当其用于进程调度时,把处理机分配给就绪队列中优先权最高的进程,此时, 又可以进一步把该算法分成以下两种: 1)非抢占式优先权算法 2)抢占式优先权调度算法(高性能计算机操作系统) 2. 优先权类型 。
对于最高优先权优先调度算法,其核心在于:它是使用静态优先权还是动态优先权, 以及如何确定进程的优先权。
3. 高响应比优先调度算法 为了弥补短作业优先算法的不足,我们引入动态优先权,使作业的优先等级随着等待时间的增加而以速率a提高。
该优先权变化规律可描述为:优先权=(等待时间+要求服务时间)\\\/要求服务时间;即 =(响应时间)\\\/要求服务时间 三、基于时间片的轮转调度算法 1. 时间片轮转法。
时间片轮转法一般用于进程调度,每次调度,把CPU分配队首进程,并令其执行一个时间片。
当执行的时间片用完时,由一个记时器发出一个时钟中断请求,该进程被停止,并被送往就绪队列末尾;依次循环。
2. 多级反馈队列调度算法 多级反馈队列调度算法多级反馈队列调度算法,不必事先知道各种进程所需要执行的时间,它是目前被公认的一种较好的进程调度算法。
其实施过程如下: 1) 设置多个就绪队列,并为各个队列赋予不同的优先级。
在优先权越高的队列中, 为每个进程所规定的执行时间片就越小。
2) 当一个新进程进入内存后,首先放入第一队列的末尾,按FCFS原则排队等候调度。
如果他能在一个时间片中完成,便可撤离;如果未完成,就转入第二队列的末尾,在同样等待调度…… 如此下去,当一个长作业(进程)从第一队列依次将到第n队列(最后队列)后,便按第n队列时间片轮转运行。
3) 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;仅当第1到第(i-1)队列空时, 才会调度第i队列中的进程运行,并执行相应的时间片轮转。
4) 如果处理机正在处理第i队列中某进程,又有新进程进入优先权较高的队列, 则此新队列抢占正在运行的处理机,并把正在运行的进程放在第i队列的队尾。
计算在采用先来先服务调度算法和最短作业优先
《操作系统》实验一实验报告【实验题目】:先来先服务FCFS和短作业优先SJF进程调度算法【实验目的】通过这次实验,加深对进程概念的理解,进一步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。
【实验内容】问题描述:设计程序模拟进程的先来先服务FCFS和短作业优先SJF调度过程。
假设有n个进程分别在T1,…,Tn时刻到达系统,它们需要的服务时间分别为S1,…,Sn。
分别采用先来先服务FCFS和短作业优先SJF进程调度算法进行调度,计算每个进程的完成时间,周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。
程序要求如下:1)进程个数n;每个进程的到达时间T1,…,Tn和服务时间S1,…,Sn;选择算法1-FCFS,2-SJF。
2)要求采用先来先服务FCFS和短作业优先SJF分别调度进程运行,计算每个进程的周转时间,带权周转时间,并且计算所有进程的平均周转时间,带权平均周转时间;3)输出:要求模拟整个调度过程,输出每个时刻的进程运行状态,如“时刻3:进程B开始运行”等等;4)输出:要求输出计算出来的每个进程的周转时间,带权周转时间,所有进程的平均周转时间,带权平均周转时间。
【实验过程】#includeusingnamespacestd;#defineMaxNum100intArrivalTime[MaxNum];doubleServiceTime[MaxNum];doubleFinishTime[MaxNum];doubleWholeTime[MaxNum];doubleAVEWholeTime[MaxNum];doubleAVEWeightWholeTime[MaxNum];doubleWeigh
如何开展处理机调度算法实验教学
首先要解开对学生的束缚,让学生真正成为学习的主人,让他们有自己合理的要求,满足学生内部需要。
教师在教学中根据不同学生的认知水平,学习能力以及自身素质,尽量满足不同层次学生的需求,教师选择适合每个学生特点的学习方法来有针对性的教学,发挥学生的长处,弥补学生的不足,激发学生学习的兴趣,树立学生学习的信心,从而促进学生全面发展。
设置的作业也应该具有不同层次,体现课程的选择性,适应满足不同层次学生的需要,让学生成为学习的主人,享受学习的趣味性。
心理学家认为,当某种事物引起学生强烈的学习兴趣,并能立刻创设这种能满足学生兴趣的情境时,学生的学习过程是充满激情的。
调度算法的调度算法
先来先服务(FCFS: first come first service)总是把当前处于就绪队列之首的那个进程调度到运行状态。
也就说,它只考虑进程进入就绪队列的先后,而不考虑它的下一个CPU周期的长短及其他因素。
FCFS算法简单易行,但性能却不大好。



