操作系统-死锁

一.选择题

1.在为多道程序所提供的可共享的系统资源不足时,可能出现死锁。但是,不适当的    

也可能产生死锁。

A.进程优先权        B.资源的线性分配

C. 进程推进顺序      D.分配队列优先权

答:C

2.采用资源剥夺法可解除死锁,还可以采用       方法解除死锁。

A.执行并行操作          B.撤消进程

C.拒绝分配新资源        D. 修改信号量

答:B

3.产生死锁的必要条件有四个,要防止死锁的发生,可以破坏这四个必要条件之一,但破坏       条件是不大实际的。

A.互斥              B.不可抢占

C.部分分配          D. 循环等持

答:A

4.资源的按序分配策略可以破坏        条件。

A.互斥使用资源     B. 占有且等待资源

C. 非抢夺资源        D.循环等待资源

答:D

5.在      情况下,系统出现死锁。

A.计算机系统发生了重大故障

B.有多个封锁的进程同时存在

C.苦干进程因竞争资源而无休止地相互等持他方释放已占有的资源

D.资源数大大小于进程数或进程同时申请的资源数大大超过资源总数

答:C

6.银行家算法是一种      算法。

A.死锁解除    B.死锁避免

C. 死锁预防    D. 死锁检测

答:B

7.      优先权是在创建进程时确定的,确定之后在整个进程运行期间不再改变。

A. 先来先服务       B.静态

C.动态             D.短作业

答:B

8. 某系统中有3个并发进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源数是     .

A9     B10     C11     D12

答:B

9.在下列解决死锁的方法中,属于死锁预防策略的是    

A. 银行家算法       B.资源有序分配法

C.死锁检测法      D.资源分配图化简法

答:B

10    是作业存在的惟一标志。

A. 作业名         B. 进程控制块

C. 作业控制块     D.程序名

答:C

11. 在各种作业调度算法中,若所有作业同时到达,则平均等待时间最短的算法是      

A.先来先服务        B.优先权调度

C. 最高响应比优先     D.短作业优先

答:D

12. 既考虑作业等待时间,又考虑作业执行时间的调度算法是     

A. 响应比高者优先      B.短作业优先

C. 优先级调度          D.先来先服务

答:A

13.作业调度程序从处于      状态的队列中选取适当的作业投入运行。

A.运行     B.提交     C完成     D.后备

答:D

14.     是指从作业提交给系统到作业完成的时间间隔。

A.周转时间       B.响应时间

C. 等待时间       D.运行时间

答:A

15. 作业从进入后备队列到被调度程序选中的时间间隔称为     .

A.周转时间     B.响应时间

C. 等待时间       D触发时间

答:C

16.假设下述四个作业同时到达,当使用最高优先数优先调度算法时,作业的平均周转时间为     小时。

 

A4.5     B10.5     C4.75     D10.25

答:D

17.下述作业调度算法中,      调度算法与作业的估计运行时间有关。

A. 先来先服务      B.短作业优先

C.优先权          D. 时间片轮转

答:B

18.设有4个作业同时到达,每个作业的执行时间均为2小时,它们在一台处理机上按单

道方式运行,则平均周转时间为     

A1小时    B5小时    C2.5小时    D8小时

答:B

19.现有3个同时到达的作业JlJ2J3,它们的执行时间分别是T1T2T3,且T1<T2<T3

系统按单道方式运行且采用短作业优先算法,则平均周转时间是      

A. T1T2T3                B(T1T2+T3)/3   

C. (3T12T2+T3)/3             D(T12T2+3T3)/3

答:C

20.一作业800到达系统,估计运行时间为1小时。若1000开始执行该作业,其响应

比是          

A. 2       B. 1       C. 3        D. 0.5

答:C

21.设有3个作业,它们的到达时间和运行时间如下表所示,并在一台处理机上按单道方式运行。如按响应比高者优先算法,则作业执行的次序是          

 

A. J1,J2,J3             B. J1,J3,J2         C. J2,J3,J1           D. J3,J2,J1

答:B

22.响应比是指     

A. 作业计算时间与作业等待时间之比  B. 作业周转时间与作业计算时间之比

C. 系统调度时间与作业等待时间之比  D. 系统调度时间与作业计算时间之比

答:B

23.设有3个作业J1J2J3,其运行的时间分别为l23小时;假定这些作业同时到

达,并在一台处理机上按单道运行,则平均用转时间最小的执行序列是        

A. J1,J2,J3             B. J1,J3,J2         C. J2,J1,J3           D. J2,J3,J1

答:

24.根据进程的紧迫性程度进行进程调度,应采用      

A.先来先服务调度算法    B.最高优先级调度算法

C. 时间片轮转调度算法     D.分级调度算法

答:B

25.采用最高优先级调度算法时,对那些具有相同优先级的进程分配CPU的次序是       

A.时间片轮转    B.运行时间长短

C. 先来先服务    D.使用外围设备多少

答:C

二.简答题

1.关于处理机调度,试问:(1)什么是处理机三级调度?(2)处理机三级调度分别在什么情况下发生?(3)各级调度分别完成什么工作?

答:(1)处理机三级调度是:高级调度(作业调度)、中级调度(交换调度)和低级调度(进程调度),它们构成了操作系统内的多级调度,不同类型的操作系统不一定都有这三种调度。

(2)高级调度是在需要从后备作业队列调度作业进入内存运行时发生;低级调度是在处理机空闲时需要调度一个就绪进程投入运行时发生;中级调度是在内存紧张不能满足进程运行需要时发生。

(3)高级调度决定把外存中处于后备队列的哪些作业调入内存,并为它们创建进程和分配必要的资源,然后将新创建的进程接入就绪队列准备执行。低级调度则决定就绪队列中的哪个进程将获得处理机,并将处理机分配给该进程使用。中级调度是在内存资源紧张的情况下暂时将不运行的进程调至外存,待内存空闲时再将外存上具有运行条件的就绪进程重新调入内存。

三.应用题

1. 假定在单CPU条件下有下列要执行的作业:

作业

运行时间

优先级

1

10

2

2

4

3

3

3

0

作业到来的时间是按作业编号顺序进行的(即后面作业依次比前一个作业迟到一个时间单位)。

(1)用一个执行时间图描述在采用非抢占式优先级算法时执行这些作业的情况。

(2)对于上述算法,各个作业的周转时间是多少?平均周转时间是多少?

(3)对于上述算法,各个作业的带权周转时间是多少?平均带权周转时间是多少?

(1)非抢占式优先级算法作业的执行情况如下:

作业

到达时间

运行时间

完成时间

周转时间

带权周转时间

1

0

10

10

10

1.0

2

1

4

17

16

4.0

3

2

3

13

11

3.7

平均周转时间

12.3

平均带权周转时间

2.9

2.设有4道作业,它们的提交时间及执行时间如下:

试计算在单道程序环境下,采用先来先服务调度算法和最短作业优先调度算法时的平均周转时间和平均带权周转时间,并指出它们的调度顺序。(时间单位:小时,以十进制进行计算。)

解:若采用先来先服务调度算法,则其调度顺序为1、2、3、4。

 

平均周转时间    T=(2.0十2.8十3.1十3.3)/4=2.8

平均带权周转时间W=(1十2.8十6.2十11)/4=5.25

若采用短作业优先调度算法,则其调度顺序为1、4、3、2

 

平均周转时间为   T=(2.0+1.8+2.4+3.6)/4=2.45

平均带权周转时间 W=(1十6十4.8十3.6)/4=3.85

3.假设有四个作业,它们的提交、运行时间如下表所示。若采用高响应比优先调度算法,试问平均周转时间和平均带权周转时间为多少? (时间单位小时,以十进制进行计算。)

解:根据响应比的定义每次调度前计算出各作业的响应比,得到四个作业的调度次序为:作业1、作业3、作业2、作业4。

平均周转时间为  T=(2.0十2.3十1.6十2.O)/4=1.975

平均带权周转时间W=(1十4.6十16十5)/4=6.65

4.某系统中有10台打印机,有三个进程P1P2P3分别需要8台,7台和4台。若P1P2P3已申请到4台,2台和2台。试问:按银行家算法能安全分配吗?请说明分配过程。

答:系统能为进程P3分配二台打印机。因为尽管此时10台打印机已分配给进程P14台,P22台和P34台,全部分配完,但P3已分配到所需要的全部4台打印机,它不会对打印机再提出申请,所以它能顺利运行下去,能释放占用的4台打印机,使进程P1P2均可能获得乘余的要求4台和5台,按银行家算法是安全的。

5.在生产者—消费者问题中,如果对调生产者进程中的两个P操作和两个V操作,则可能发生什么情况?

解:如果对调生产者进程中的两个P操作和两个v操作,则生产者—消费者问题的同步描述为:

int full=0;

int empty =n;

int mutex=1;

main ( )

{

   cobegin

producer ( );

consumer ( );

   coend

}

 

producer ( )

{

   while (生产未完成)

   {

生产一个产品;

p(mutex);

p(empty);

送一个产品到有界缓冲区;

v(full);

v(mutex);

}

}

consumer ( )

{

   while(还要继续消费)

{

   p(full);

   p(mutex);

   从有界缓冲区中取产品;

   v(mutex);

   v(empty);

   消费一个产品;

}

}

    由于V操作是释放资源,因此对调V操作的次序无关紧要。而对调P操作的次序则可能导致死锁。这是因为对调P操作后,有可能出现这样一种特殊情况:在某一时刻缓冲区中己装满了产品且缓冲区中无进程工作(这时信号量full的值为n,信号量empty的值为0,信号量mutex的值为1),若系统此时调度生产者进程运行,生产者进程又生产了一个产品,

它执行P(mutex)并顺利进入临界区(这时mutex值为0),随后它执行p(empty)时因没有空闲缓冲单元而受阻等待,等待消费者进程进入缓冲区取走产品以释放出缓冲单元;消费者进程执行p(full)后再执行p(mutex)时,因缓冲区被生产者进程占据而无法进入。这样就形成了生产者进程在占有临界资源的情况下,等待消费者进程取走产品,而消费者进程又无法进入临界区取走产品的僵局,此时两进程陷入死锁。

6.在银行家算法中,若出现下述资源分配情况:

 

试问:(1)该状态是否安全?

      (2)如果进程P2提出请求Request2(1,2,2,2)后,系统能否将资源分配给它?

解:(1)利用银行家算法对此时刻的资源分配情况进行分析,可得此时刻的安全性分析情况:

 

    从上述分析中可以看出,此时存在一个安全序列{P0,P3,P4,P1,P2},故该状态是

安全的。

(2)P2提出请求Request2 (1,2,2,2),按银行家算法进行检查:

Request2(1,2,2,2)≤Need2(2, 3, 5, 6)

Request2(1,2,2,2) ≤Available(1, 6, 2, 2)

试分配并修改相应的数据结构,资源分配情况如下:

 

再利用安全性算法检查系统是否安全,可用资源Available (0,4,0,0)己不能满足任何进程的需要,故系统进入不安全状态,此时系统不能将资源分配给P

posted @ 2025-06-12 17:32  chrisrmas、  阅读(13)  评论(0)    收藏  举报