考研真题学习

1.多级反馈队列调度算法是如何工作的?
答:多级反馈队列调度算法的调度机制如下。

(1)设置多个就绪队列,为各队列赋予不同的优先级。第1个队列的优先级最高,第2个队列次之,其余队列的优先级依次降低。各个队列中进程的时间片大小与队列优先级成反比,即优先级越高的队列分得的时间片越小。

(2)当一个新进程进入内存后,首先将其放入第1个队列的末尾,按FCFS原则排队等待调度。当轮到该进程运行时,如果它能在第1个队列的时间片内完成,它便可以撤离系统;如果它在第1个队列的时间片内没有完成,那么将它放在第2个队列的末尾,同样按FCFS原则排队等待调度;如果它在第2个队列的时间片内没有完成,再将它调入第3个队列末尾,依此类推,直到其运行完成。

(3)仅当第1个队列为空时,调度程序才会调度第2个队列中的进程并运行之;仅当第1~(i-1)个列均为空时,调度程序才会调度第i个队列中的进程并运行之。如果处理机在第i个队列中为进程服务时,又有新进程进入优先级较高的队列,那么新进程就会抢占处理机,调度程序会把正在运行的进程放回第i个队列的末尾,把处理机分配给新到的高优先级进程。

2.5个进程R、P2、P3、P4、P5几乎同时到达,它们预期的运行时间分别为10、6、2、4、8个时间单位。各进程的优先级分别为3、5、2、1、4(数值越大,优先级越高)。请按下列调度算法计算任务的平均周转时间(进程切换开销可忽略不计)。

(1 ) FCFS(按P1→P2→P3→P4→P5顺序)调度算法。

(2) RR调度算法,假定时间片大小为2个时间单位。

(3) 优先级调度算法。

(4)以上不同的调度算法对应的进程运行时间、周转时间、带权周转时间

正确答案:

第一空:
FCFS调度算法的调度顺序如下所示。

0

10

16

18

22 30

Pl

P2

P3

P4

P5

第二空:

RR调度顺序的调度顺序如下所示。

0 4 8 12 16 20 24 28 30

P1

P2

P3

P4

P5

P1

P2

P4

P5

P1

P2

P5

P1

P5

P1

第三空:
优先级调度算法的调度顺序如下所示。

0 6 14 24 26 30

P2

P5

P1

P3

P4

第四空:
下表所示的不同的调度算法对应的进程运行时间

算法

时间类型

P1

P2

P3

P4

P5

平均时间

运行时间

10

6

2

4

8

6

FCFS

周转时间

10

16

18

22

30

19.2

带权周转时间

1

2.67

9

5.5

3.75

4.384

RR

周转时间

30

22

6

16

28

20.4

带权周转时间

3

3.67

3

4

3.5

3.434

优先级

周转时间

24

6

26

30

14

20

带权周转时间

2.4

1

13

7.5

1.75

5.13

3.请回答下列问题:

(1)处理机的调度有哪3个层次?

(2)假设某OS以单道批处理方式运行,现有4道作业,它们进入系统的时间及运行时间如 表2-3-8所示,试采用高响应比优先调度算法进行调度,请问这组作业的运行顺序、平均周转时 间和平均带权周转时间分别是多少?并给出计算过程。

表2-3-8作业运行时间表
请添加图片描述
正确答案:

第一空:
(1)处理机的调度分为高级调度、中级调度和低级调度。①高级调度: 又称为长程调度或作业调度,主要任务是根据某种算法从外存上在处于后备队列的作业中选取 一个或多个作业调入内存,给它们创建进程、分配必要资源,并将它们放人就绪队列。②中级 调度:又称为中程调度或内存调度,主要任务是根据某种算法将处于外存对换区中的具备运行 条件的进程调入内存,或将内存中的暂时不能运行的进程调至外存对换区等待。③低级调度: 又称为短程调度或进程调度,主要任务是根据某种算法从就绪队列中选取一个进程,并将处理 机分配给它。进程调度是OS中最基本的调度方式,在OS中必须进行配置。

第二空:
(2)4道作业并非同时到达,7:00只有作业1到达,故首先运行的是作业1,其在9:00运行完 毕,此时其余3道作业已全部到达,根据高响应比优先调度算法的计算公式计算出这3道作业的 响应比,响应比高的作业先运行,故运行作业3,其在9:06运行完毕,此时再计算其余两道作业 的响应比,可知应先运行作业2,后运行作业4。各个作业的运行时间情况如表2-3-12所示。

表2-3-12作业运行时间表(完整)

作业号

进入系统时间

运行时间(小时)

开始运行时间

完成时间

周转时间(小时)

带权周转时间

1

7:00

2.00

7:00

9:00

2.00

1.00

3

8:00

0.10

9:00

9:06

1.10

11.00

2

7:50

0.50

9:06

9:36

1.77

3.54

4

8:50

0.20

9:36

9:48

0.97

4.85

作业的运行顺序为1→3→2→4。

平均周转时间=(2+1.1+1.77+0.97)/4= 1.46小时。

平均带权周转时间=(1+11+3.54+4.85)/4=5.10。

4.某进程调度程序采用基于优先数priority的调度策略,即选择优先数最小的进程优先运行,进程创建时由用户指定一个值nice作为静态优先数。为了动态调整优先数,引入运行时间cpuTime和等待时间waitTime,它们的初值均为0。进程处于执行状态时,cpuTime定时加1,且waitTime置0;进程处于就绪状态时,cpuTime置0,且 waitTime定时加1。请回答下列问题。

(1)若进程调度程序只将nice的值作为进程的优先数,即priority=nice,则可能会岀现饥饿现象。为什么?

(2) 使用nice、cpuTime和waitTime设计一种动态优先数计算方法,以避免产生饥饿现象, 并说明waitTime的作用。
正确答案:

第一空:
由于采用了静态优先数,当就绪队列中总有优先数较小的进程时,优先数较大的进程一直没有机会运行,因而会出现饥饿现象。

第二空:
优先数priority的计算公式为priority=nice+k1cpuTime-k2waitTime,其中k1>0,k2>0,用于分别调整cpuTime和waitTime在priority中所占的比例。waitTime可使长时间等待的进程的优先数减小,从而避免出现饥饿现象。

5.按照调度方式可将实时调度算法分为哪几种?
正确答案:

第一空:
非抢占式调度算法

第二空:
抢占式调度算法

6.假定系统中有5个进程P0、P1、P2、P3、P4和4种资源A、B、C、D,假设出现表2-3-9所示的进程资源分配情况,请回答下列问题。

表2-3-9进程资源分配情况
请添加图片描述
(1) 该状态是否安全?为什么?

(2) 如果进程P0提出资源请求(0, 0, 0, 1),则系统能否将资源分配给它?为什么?
正确答案:

第一空:
严格按照银行家算法及安全检査子算法进行计算,其状态如下表所示。

进程

Work

Need

Allocation

Wotk + Allocation

Finish

P3

0,3,2,2

0,3,2,0

0,3,1,0

0,6,3,2

TRUE

P0

0,6,3,2

0,3,3,1

1,1,1,0

1,7,4,2

TRUE

P1

1,7,4,2

0,3,4,2

0,2,3,1

1,9,7,3

TRUE

P4

1,9,7,3

0,4,2,3

1,0,2,1

2,9,9,4

TRUE

P2

2,9,9,4

1,0,3,4

0,2,1,2

2,11,10,6

TRUE

存在一个安全序列P3,P0,P1,P4,P2,因此,该状态是安全的。

第二空:
由于Request0(0,0,0,1)<Need0(0,3,3,1 ),

Request0(0,0,0,1)<Available(0,3,2,2),故可尝试将资源分配给P0,并修改P0对应的资源;P0对应的Need为(0,3,3,0), Allocation为(1,1,1,1);系统对应的Available为(0,3,2,1)。进程资源分配情况如下表所示。

进程

Work

Need

Allocation

Work + Allocation

Finish

P3

0,3,2,1

0,3,2,0

0,3,1,0

0,6,3,1

TRUE

P0

0,6,3,1

0,3,3,0

1,1,1,1

1,7,4,2

TRUE

Pl

1,7,4,2

0,3,4,2

0,2,3,1

1,9,7,3

TRUE

P4

1,9,7,3

0,4,2,3

1,0,2,1

2,9,9,4

TRUE

P2

2,9,9,4

1,0,3,4

0,2,1,2

2,11,10,6

TRUE

存在一个安全序列P3,P0,P1,P4,P2;由于该状态是安全的,因此可实施资源分配。
7.为多道程序提供的可共享资源不足时,可能出现死锁;不适当的( )也可能产生死锁。

正确答案:

第一空:
进程推进顺序;进程推进次序

8.某系统中有11台打印机,n个进程共享打印机资源,每个进程要求获得3台打印机;当n的取值不超过( )时,系统不会发生死锁。
正确答案:

第一空:
5

9.死锁预防中采用什么方法来破坏“循环等待”条件? 请证明该方法。

正确答案:

第一空:
在死锁预防中,采用“有序资源分配法”来破坏“循环等待”条件。有 序资源分配法是将系统中的所有资源按照类型进行排序编号,每个进程必须按照编号递增次序请求资源,同类资源一次性申请完成。

第二空:
证明:如果某进程请求资源Ri(i为编号),则其后面的进程只能请求排在资源Ri后面的资源,而无法请求排在Ri前面的资源。对申请资源做这样的限制后,系统中就不会再出现资源请求环路,因此破坏了死锁产生必要条件中的“循环等待”条件。

10.假设系统有5类独占资源:R1、R2、R3、R4、R5。各类资源分别有2、2、2、1、1个。系统有5个进程:P1、P2、P3、P4、P5。其中P1已占有2个R1,且申请1个R2和1个R4;P2已占有1个R2,且申请1个R1;P3已占有1个R2,且申请1个R2和1个R3; P4已占有1个R4和1个R5,且申请1个R3; P5已占有1个R3,且申请1个R5。

(1) 试画出该时刻的资源分配图。

(2) 什么是死锁定理?如何判断(1)中给出的资源分配图有无死锁?给岀判断过程和结果。
正确答案:

第一空:
该时刻的进程资源分配图如下图所示。
请添加图片描述
第二空:
系统状态S为死锁状态的充分条件:当且仅当状态S的进程资源分配图是不可完全简化的。该充分条件被称为死锁定理。对于本题所述情况,当前状态下系统的可用资源数为(0,0,1,0,0),可以满足P4的申请需求。在将P4申请的资源进行分配并执行完毕P4后,系统的状态如下图所示。
请添加图片描述
P4释放资源后,系统可用资源数变为(0,0,1,1,1),可以满足P5的申请需求。在将P5申请的资源进行分配并且执行完毕P5后,系统的状态如下图所示。
请添加图片描述
P5释放资源后,系统可用资源数变为(0,0,2,1,1),已不能满足任何进程的申请需求,即系统当前的进程资源分配图已不能再简化,故系统处于死锁状态。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值