首页 > 试题广场 >

下列选项中关于多级队列调度和多级反馈队列的调度的叙述中,正确

[单选题]
下列选项中关于多级队列调度和多级反馈队列的调度的叙述中,正确的是()。
  • 多级反馈队列的调度中就绪队列的设置不是像多级队列调度一样按作业性质划分,而是按时间片的大小划分
  • 堆积队列调度用到优先权,而多级反馈队列调度中没有用到优先权
  • 多级队列调度中的进程固定在某一个队列中,而多级反馈队列调度中的进程不固定
  • 堆积队列调度中每个队列按作业性质不同而采用不同的调度算法,而多级反馈队列调度中除了个别队列外,均采用相同的调度算法
多级反馈队列调度算法是一种CPU处理机调度算法,UNIX操作系统采取的便是这种调度算法。

**多级(假设为N级)反馈队列调度算法可以如下原理**

1、设有N个队列(Q1,Q2....QN),其中各个队列对于处理机的优先级是不一样的,也就是说位于各个队列中的作业(进程)的优先级也是不一样的。一般来说,优先级Priority(Q1) > Priority(Q2) > ... > Priority(QN)。怎么讲,位于Q1中的任何一个作业(进程)都要比Q2中的任何一个作业(进程)相对于CPU的优先级要高(也就是说,Q1中的作业一定要比Q2中的作业先被处理机调度),依次类推其它的队列。

2、对于某个特定的队列来说,里面是遵循时间片轮转法。也就是说,位于队列Q2中有N个作业,它们的运行时间是通过Q2这个队列所设定的时间片来确定的(为了便于理解,我们也可以认为特定队列中的作业的优先级是按照FCFS来调度的)。

3、各个队列的时间片是一样的吗?不一样,这就是该算法设计的精妙之处。各个队列的时间片是随着优先级的增加而减少的,也就是说,优先级越高的队列中它的时间片就越短。同时,为了便于那些超大作业的完成,最后一个队列QN(优先级最低的队列)的时间片一般很大(不需要考虑这个问题)。

**多级反馈队列调度算法描述**
1、进程在进入待调度的队列等待时,首先进入优先级最高的Q1等待。

2、首先调度优先级高的队列中的进程。若高优先级中队列中已没有调度的进程,则调度次优先级队列中的进程。例如:Q1,Q2,Q3三个队列,只有在Q1中没有进程等待时才去调度Q2,同理,只有Q1,Q2都为空时才会去调度Q3。

3、对于同一个队列中的各个进程,按照时间片轮转法调度。比如Q1队列的时间片为N,那么Q1中的作业在经历了N个时间片后若还没有完成,则进入Q2队列等待,若Q2的时间片用完后作业还不能完成,一直进入下一级队列,直至完成。

4、在低优先级的队列中的进程在运行时,又有新到达的作业,那么在运行完这个时间片后,CPU马上分配给新到达的作业(抢占式)。


**我们来看一下该算法是如何运作的**
假设系统中有3个反馈队列Q1,Q2,Q3,时间片分别为2,4,8。
现在有3个作业J1,J2,J3分别在时间 0 ,1,3时刻到达。而它们所需要的CPU时间分别是3,2,1个时间片。

1、时刻0 J1到达。于是进入到队列1 , 运行1个时间片 , 时间片还未到,此时J2到达。

2、时刻1 J2到达。 由于时间片仍然由J1掌控,于是等待。 J1在运行了1个时间片后,已经完成了在Q1中的

2个时间片的限制,于是J1置于Q2等待被调度。现在处理机分配给J2。

3、时刻2 J1进入Q2等待调度,J2获得CPU开始运行。

4、时刻3 J3到达,由于J2的时间片未到,故J3在Q1等待调度,J1也在Q2等待调度。

5、时刻4 J2处理完成,由于J3,J1都在等待调度,但是J3所在的队列比J1所在的队列的优先级要高,于是J3被调度,J1继续在Q2等待。

6、时刻5 J3经过1个时间片,完成。

7、时刻6 由于Q1已经空闲,于是开始调度Q2中的作业,则J1得到处理器开始运行。 J1再经过一个时间片,完成了任务。于是整个调度过程结束。

从上面的例子看,在多级反馈队列中,后进的作业不一定慢完成。
发表于 2016-07-09 16:53:20 回复(1)
B项错,因为多级队列调度也用到了优先级;
C项错,因为多级队列调度中的进程也会被移动,比如:当低优先级队列中的进程长时间得不到调度时,算***把这样的进程移动到高优先级的队列中,使其尽快执行。
D项错,因为多级队列调度不一定非要采用不同的调度算法,D项说的绝对了。另外,多级反馈队列是否可以采用不同的调度算法,不太清楚。
简单介绍下多级队列调度。 多级队列调度 算法把就绪队列分成多个独立队列,根据进程的属性(如内存大小、优先级、类型等),一个进程被永久地分配到一个队列。若按优先级划分队列的话,最高优先级队列上的进程运行一个时间片,次高优先级上的进程运行两个时间片,再下级运行四个时间片,依次类推。每次从队列头开始运行进程,每当一个进程在一个优先级队列中用完它的时间片后就移到此队列的尾部。只有当高优先级队列为空时,才会从低优先级队列中选择进程运行。在低优先级队列中等待时间过长的进程,将会被移动到高优先级队列中。

发表于 2016-08-24 21:55:58 回复(1)
c应该也是对的吧
发表于 2016-08-02 15:10:22 回复(0)
多级(假设为N级)反馈队列调度算法可以如下原理: 1、设有N个队列(Q1,Q2....QN),其中各个队列对于处理机的优先级是不一样的,也就是说位于各个队列中的作业(进程)的优先级也是不一样的。一般来说,优先级Priority(Q1) > Priority(Q2) > ... > Priority(QN)。怎么讲,位于Q1中的任何一个作业(进程)都要比Q2中的任何一个作业(进程)相对于CPU的优先级要高(也就是说,Q1中的作业一定要比Q2中的作业先被处理机调度),依次类推其它的队列。 2、对于某个特定的队列来说,里面是遵循时间片轮转法。也就是说,位于队列Q2中有N个作业,它们的运行时间是通过Q2这个队列所设定的时间片来确定的(为了便于理解,我们也可以认为特定队列中的作业的优先级是按照FCFS来调度的)。 3、各个队列的时间片是一样的吗?不一样,这就是该算法设计的精妙之处。各个队列的时间片是随着优先级的增加而减少的,也就是说,优先级越高的队列中它的时间片就越短。同时,为了便于那些超大作业的完成,最后一个队列QN(优先级最低的队列)的时间片一般很大(不需要考虑这个问题)。
发表于 2016-06-25 21:34:05 回复(2)
多级队反馈列中也存在优先级,和多级队列一样。而多级队列调度各队列也不一定采用不同的调度算法。 多级反馈队列的调度中,就绪队列的设置不像多级队列一样按作业性质划分,而是按时间片大小划分。
编辑于 2021-12-24 00:18:17 回复(0)
多级反馈队列有人解释了.我说一下多级队列调度吧.
多级队列调度就是根据任务的不同进行分类,根据性质呀什么的,不同类任务在不同的队列中,可能会采用不同的调度算法,队列中的任务呢也可能根据情况进行转移.
所以B不对,多级反馈队列调用用到了优先权还有时间片.
多级队列和多级反馈队列中的进程是不固定的,多级反馈很明显,当时间片没有结束,改任务移到下一个队列的队尾.
多级队列不一定一定使用不同的调度算法~
不知道多级反馈队列可不可以采用不同的调度算法...
发表于 2016-08-12 13:38:25 回复(0)
假设系统中有3个反馈队列Q1,Q2,Q3,时间片分别为2,4,8。
现在有3个作业J1,J2,J3分别在时间 0 ,1,3时刻到达。而它们所需要的CPU时间分别是3,2,1个时间片。
1、时刻0 J1到达。于是进入到队列1 , 运行1个时间片 , 时间片还未到,此时J2到达。
2、时刻1 J2到达。 由于时间片仍然由J1掌控,于是等待。 J1在运行了1个时间片后,已经完成了在Q1中的
2个时间片的限制,于是J1置于Q2等待被调度。现在处理机分配给J2。
3、时刻2 J1进入Q2等待调度,J2获得CPU开始运行。
4、时刻3 J3到达,由于J2的时间片未到,故J3在Q1等待调度,J1也在Q2等待调度。
5、时刻4 J2处理完成,由于J3,J1都在等待调度,但是J3所在的队列比J1所在的队列的优先级要高,于是J3被调度,J1继续在Q2等待。
6、时刻5 J3经过1个时间片,完成。
7、时刻6 由于Q1已经空闲,于是开始调度Q2中的作业,则J1得到处理器开始运行。 J1再经过一个时间片,完成了任务。于是整个调度过程结束。
发表于 2016-07-07 20:59:13 回复(0)