fcfs算法
1. FCFS算法,答案是3.97但是我自己怎么算都是3.69,是不是答案错了
我算得也是3.69 这种题害人真不浅,考官都不会算,害不少人
2. 操作系统先进先出(FIFO)和先来先服务(FCFS)有什么区别
1.先来先服务调度算法(FCFS):就是按照各个作业进入系统的自然次序来调度作业。这种调度算法的优点是实现简单,公平。其缺点是没有考虑到系统中各种资源的综合使用情况,往往使短作业的用户不满意,因为短作业等待处理的时间可能比实际运行时间长得多。
2.先进先出算法(FIFO):按照进程进入就绪队列的先后次序来选择。即每当进入进程调度,总是把就绪队列的队首进程投入运行。
3. 先来先服务(FCFS)调度算法 工作原理 优缺点
进程按到来的时间先后顺序依次被CPU处理。
优点:就是俗话说的“先来后到”。
缺点:如果先来的进程需要很长的处理时间,而后来的进程却很重要的。需要抢占CUP的时候,此调度算法就适用了。
4. 以下五个作业,fcfs sjf hrrn三种调度算法平均周转时间,高响应比怎么算
作业调度算法 .
先来先服务(FCFS, First Come First Serve)是最简单的调度算法,按先后顺序进行调度。
定义:
按照作业提交或进程变为就绪状态的先后次序,分派CPU;
当前作业或进程占用CPU,直到执行完或阻塞,才出让CPU(非抢占方式)。
在作业或进程唤醒后(如I/O完成),并不立即恢复执行,通常等到当前作业或进程出让CPU。
适用场景:
比较有利于长作业,而不利于短作业。因为长作业会长时间占据处理机。
有利于CPU繁忙的作业,而不利于I/O繁忙的作业。
算法实现原理图:
2. 轮转法(Round Robin)
轮转法是让每个进程在就绪队列中的等待时间与享受服务的时间成正比例。
定义:
将系统中所有的就绪进程按照FCFS原则,排成一个队列。
每次调度时将CPU分派给队首进程,让其执行一个时间片。时间片的长度从几个ms到几百ms。
在一个时间片结束时,发生时钟中断。
调度程序据此暂停当前进程的执行,将其送到就绪队列的末尾,并通过上下文切换执行当前的队首进程。
进程可以未使用完一个时间片,就出让CPU(如阻塞)。
时间片长度的确定:
时间片长度变化的影响
过长->退化为FCFS算法,进程在一个时间片内都执行完,响应时间长。
过短->用户的一次请求需要多个时间片才能处理完,上下文切换次数增加,响应时间长。
对响应时间的要求:T(响应时间)=N(进程数目)*q(时间片)
就绪进程的数目:数目越多,时间片越小
系统的处理能力:应当使用户输入通常在一个时间片内能处理完,否则使响应时间,平均周转时间和平均带权周转时间延长。
算法实现原理图:
3. 多级反馈队列算法(Round Robin with Multiple Feedback)
多级反馈队列算法是轮转算法和优先级算法的综合和发展。
定义:
设置多个就绪队列,分别赋予不同的优先级,如逐级降低,队列1的优先级最高。每个队列执行时间片的长度也不同,规定优先级越低则时间片越长,如逐级加倍。
新进程进入内存后,先投入队列1的末尾,按FCFS算法调度;若按队列1一个时间片未能执行完,则降低投入到队列2的末尾,同样按FCFS算法调度;如此下去,降低到最后的队列,则按“时间片轮转”算法调度直到完成。
仅当较高优先级的队列为空,才调度较低优先级的队列中的进程执行。如果进程执行时有新进程进入较高优先级的队列,则抢先执行新进程,并把被抢先的进程投入原队列的末尾。
优点:
为提高系统吞吐量和缩短平均周转时间而照顾短进程。
为获得较好的I/O设备利用率和缩短响应时间而照顾I/O型进程。
不必估计进程的执行时间,动态调节
几点说明:
I/O型进程:让其进入最高优先级队列,以及时响应I/O交互。通常执行一个小时间片,要求可处理完一次I/O请求的数据,然后转入到阻塞队列。
计算型进程:每次都执行完时间片,进入更低级队列。最终采用最大时间片来执行,减少调度次数。
I/O次数不多,而主要是CPU处理的进程。在I/O完成后,放回优先I/O请求时离开的队列,以免每次都回到最高优先级队列后再逐次下降。
为适应一个进程在不同时间段的运行特点,I/O完成时,提高优先级;时间片用完时,降低优先级。
算法实现原理图:
4. 优先级法(Priority Scheling)
优先级算法是多级队列算法的改进,平衡各进程对响应时间的要求。适用于作业调度和进程调度,可分成抢先式和非抢先式。
静态优先级:
作业调度中的静态优先级大多按以下原则确定:
由用户自己根据作业的紧急程度输入一个适当的优先级。
由系统或操作员根据作业类型指定优先级。
系统根据作业要求资源情况确定优先级。
进程的静态优先级的确定原则:
按进程的类型给予不同的优先级。
将作业的情态优先级作为它所属进程的优先级。
动态优先级:
进程的动态优先级一般根据以下原则确定:
根据进程占用有CPU时间的长短来决定。
根据就绪进程等待CPU的时间长短来决定。
5.短作业优先法(SJF, Shortest Job First)
短作业优先又称为“短进程优先”SPN(Shortest Process Next);这是对FCFS算法的改进,其目标是减少平均周转时间。
定义:
对预计执行时间短的作业(进程)优先分派处理机。通常后来的短作业不抢先正在执行的作业。
SJF的特点:
(1) 优点:
比FCFS改善平均周转时间和平均带权周转时间,缩短作业的等待时间;
提高系统的吞吐量;
(2) 缺点:
对长作业非常不利,可能长时间得不到执行;
未能依据作业的紧迫程度来划分执行的优先级;
难以准确估计作业(进程)的执行时间,从而影响调度性能。
SJF的变型:
“最短剩余时间优先”SRT(Shortest Remaining Time)(允许比当前进程剩余时间更短的进程来抢占)
“最高响应比优先”HRRN(Highest Response Ratio Next)(响应比R = (等待时间 + 要求执行时间) / 要求执行时间,是FCFS和SJF的折衷)
6. 最高响应比优先法(HRN,Highest Response_ratio Next)
最高响应比优先法是对FCFS方式和SJF方式的一种综合平衡。FCFS方式只考虑每个作业的等待时间而未考虑执行时间的长短,而SJF方式只考虑执行时间而未考虑等待时间的长短。因此,这两种调度算法在某些极端情况下会带来某些不便。HRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。
响应比R定义如下: R =(W+T)/T = 1+W/T
其中T为该作业估计需要的执行时间,W为作业在后备状态队列中的等待时间。每当要进行作业调度时,系统计算每个作业的响应比,选择其中R最大者投入执行。这样,即使是长作业,随着它等待时间的增加,W / T也就随着增加,也就有机会获得调度执行。这种算法是介于FCFS和SJF之间的一种折中算法。由于长作业也有机会投入运行,在同一时间内处理的作业数显然要少于SJF法,从而采用HRN方式时其吞吐量将小于采用SJF 法时的吞吐量。另外,由于每次调度前要计算响应比,系统开销也要相应增加。
5. FCFS,SJF,FCFS算法的全称是什么
FCFS:First Come First Served 先来先服务
SJF:Shortest Job First 最短作业优先
6. 如何理解先来先服务fcfs和短作业优先sjf进程调度算法
先来先服务FCFS和短作业优先 和短作业优先SJF进程调度算法 先来先服务 和短作业优先 进程调度算法 1、实验目的 通过这次实验,加深对进程概念的理解,进一步掌握进程状态的 转变、进程调度的策略及对系统性能的评价方法。 2、需求分析 (1) 输入的形式和输入值的范围 输入值:进程个数Num 依次输入Num个进程的到达时间 依次输入Num个进程的服务时间 范围:0<Num<=100 范围: 范围: 输入要使用的算法(1-FCFS,2-SJF) 范围:1或者2 输出的形式( 表示变量) (2) 输出的形式(X表示变量) 时刻X:进程X开始运行。 其完成时间:X 周转时间:X 带权周转时 间:X …(省略(Num-1)个) 平均周转时间:X 平均带权周转时间:X (3) 程序所能达到的功能 输入进程个数Num,每个进程到达时间ArrivalTime[i],服务时间 ServiceTime[i]。采用先来先服务FCFS或者短作业优先SJF进程调度算 法进行调度,计算每个进程的完成时间、周转时间和带权周转时间, 并且统计Num个进程的平均周转时间和平均带权周转时间。 3、概要设计 说明本程序中用到的所有抽象数据类型的定义、 主程序的流程以 及各程序模块之间的层次(调用)关系。 4、详细设计 5、调试分析 (1)调试过程中遇到的问题以及解决方法, (1)调试过程中遇到的问题以及解决方法,设计与实现的回顾讨 调试过程中遇到的问题以及解决方法 论和分析 1 ○ 开始的时候没有判断进程是否到达, 导致短进程优先算法运 开始的时候没有判断进程是否到达, 行结果错误,后来加上了判断语句后就解决了改问题。 行结果错误,后来加上了判断语句后就解决了改问题。 2 ○ 基本完成的设计所要实现的功能, 总的来说, FCFS编写容易, 基本完成的设计所要实现的功能, 总的来说, FCFS编写容易, 编写容易 SJF 需要先找到已经到达的进程, 需要先找到已经到达的进程, 再从已经到达的进程里找到进程服务时 间最短的进程,再进行计算。 间最短的进程,再进行计算。 (2)算 (2)算法的改进设想 改进: 改进:即使用户输入的进程到达时间没有先后顺序也能准确 的计算出结果。(就是再加个循环,判断各个进程的到达时间先后, 的计算出结果。(就是再加个循环,判断各个进程的到达时间先后, 。(就是再加个循环 组成一个有序的序列) 组成一个有序的序列) (3)经验和体会 (3)经验和体会 通过本次实验, 通过本次实验,深入理解了先来先服务和短进程优先进程调 度算法的思想,培养了自己的动手能力,通过实践加深了记忆。 度算法的思想,培养了自己的动手能力,通过实践加深了记忆。
7. 使用fcfs,sjf和rr调度算法,并判断哪个算法的平均等待时
先来先服务FCFS和短作业优先 和短作业优先SJF进程调度算法 先来先服务 和短作业优先 进程调度算法 1、实验目的 通过这次实验,加深对进程概念的理解,进一步掌握进程状态的 转变、进程调度的策略及对系统性能的评价方法。 2、需求分析 (1) 输入的形式和输入值的范围 输入值:进程个数Num 依次输入Num个进程的到达时间 依次输入Num个进程的服务时间 范围:0<Num<=100 范围: 范围: 输入要使用的算法(1-FCFS,2-SJF) 范围:1或者2 输出的形式( 表示变量) (2) 输
8. 简述FCFS分裂算法
调度算法:
FCFS算法
按照作业提交或进程变为就绪状态的先后次序,分派CPU; 当前作业或进程占用CPU,直到执行完或阻塞,才出让CPU(非抢占方式)。 在作业或进程唤醒后(如I/O完成),并不立即恢复执行,通常等到当前作业或进程出让CPU。最简单的算法。
2. FCFS的特点
比较有利于长作业,而不利于短作业。 有利于CPU繁忙的作业,而不利于I/O繁忙的作业。
9. 画出采用先来先服务算法(FCFS)、短作业优先算法(SJF)和高响应比优先算法(HRN)的作业调度程序流程图
先来先服务算法,就是来了就排队,然后逐个处理.....流程太简单了,不知道怎么画,所以就随手画了一个