操作系统题目收录(九)

1、有两个并发进程,对于如下程序的运行,正确的说法是()。

int x,y,z,t,u;
P1()
{
	while(1){
		x=1;
		y=0;
		if x>=1 then y=y+1;
		z=y;
	}	
}

P2()
{
	while(1){
		x=0;
		t=0;
		if x<=1 then t=t+2;
		u=t;
	}
}
  • A:程序能正确运行,结果唯一
  • B:程序不能正确运行,可能有两种结果
  • C:程序不能正确运行,结果不确定
  • D:程序不能正确运行,可能会死锁
解析

本题中两个进程不能正确地工作,运行结果的可能性如下说明。

1. x=1;
2. y=0;
3. if x>=1 then y=y+1;
4. z=y;

5. x=0;
6. t=0;
7. if x<=1 then t=t+2;
8. u=t;

不确定的原因是由于使用了公共变量x,考查程序中与变量x有关的语句共四处。

执行的顺序是1->2->3->4->5->6->7->8时,结果是y=1,z=1,t=2,u=2,x=2;

并发执行过程是1->2->5->6->3->4->7->8时,结果是y=0,z=0,t=2,u=2,x=0;

执行的顺序是5->6->7->8->1->2->3->4时,结果是y=1,z=1,t=2,u=2,x=1;

执行的顺序是5->6->1->2->7->8->3->4时,结果是y=1,z=1,t=2,u=2,x=1。

很明显,无论执行顺序如何,x的结果只能是0或1,因此语句7的条件一定成立,即t=u=2的结果是一定的;而y=z必定成立,只可能有0,1两种情况,又不可能出现x=1,y=z=0的情况,所以总共只有3中结果。

答案:C

2、一个进程在获得资源后,只能在使用完资源后由自己释放,这属于死锁必要条件的()。

  • A:互斥条件
  • B:请求和释放条件
  • C:不剥夺条件
  • D:防止系统进入不安全状态
解析

一个进程再获得资源后,只能在使用完资源后由自己释放,即它的资源不能被系统剥夺,答案为C选项。

答案:C

3、死锁定理是用于处理死锁的()方法。

  • A:预防死锁
  • B:避免死锁
  • C:检测死锁
  • D:解除死锁
解析

死锁定理是用于检测死锁的方法。

答案:C

4、某计算机系统中有8台打印机,由K个进程竞争使用,每个进程最多需要3台打印机。该系统可能会发生死锁的K的最小值是()。

  • A:2
  • B:3
  • C:4
  • D:5
解析

考虑最极端的情况。因为每个进程最多需要3台打印机,若每个进程已经占有了2台打印机,则只要还有多的打印机,总能满足一个进程达到3台的条件,然后顺利执行,所以将8台打印机分给K个进程,每个进程有2台打印机,这个情况最极端,K为4。

答案:C

5、下列关于银行家算法的叙述中,正确的是()。

  • A:银行家算法可以预防死锁
  • B:当系统处于安全状态时,系统中一定无死锁进程
  • C:当系统处于不安全状态时,系统中一定会出现死锁进程
  • D:银行家算法破坏了死锁必要条件中的“请求和保持”条件
解析

银行家算法是避免死锁的方法,选项A、D错。

并非所有不安全状态都是死锁状态,但当系统进入不安全状态后,便可能进入死锁状态;反之,只要系统处于安全状态,系统便可避免进入死锁状态;死锁状态必定是不安全状态。

在这里插入图片描述
所以选项B对,选项C错。

答案:B

6、某系统有n台互斥使用的同类设备,三个并发进程分别需要3,4,5台设备,可确保系统不发生死锁的设备数n最小为()。

  • A:9
  • B:10
  • C:11
  • D:12
解析

三个并发进程分别需要3,4,5台设备,当系统只有(3-1)+(4-1)+(5-1)=9台设备时,第一个进程分配2台,第二个进程分配3台,第三个进程分配4台。这种情况下,三个进程均无法继续执行下去,发生死锁。当系统中再增加1台设备,即10台设备时,最后1台设备分配给任意一个进程都可以顺利执行完成,因此保证系统不发生死锁的最小设备数为10。

答案:B

7、若系统 S 1 S_1 S1采用死锁避免方法, S 2 S_2 S2采用死锁检测方法。下列叙述中,正确的是()。

Ⅰ、 S 1 S_1 S1会限制用户申请资源的顺序,而 S 2 S_2 S2不会
Ⅱ、 S 1 S_1 S1需要进程运行所需的资源总量信息,而 S 2 S_2 S2不需要
Ⅲ、 S 1 S_1 S1不会给可能导致死锁的进程分配资源,而 S 2 S_2 S2

  • A:仅Ⅰ、Ⅱ
  • B:仅Ⅱ、Ⅲ
  • C:仅Ⅰ、Ⅲ
  • D:Ⅰ、Ⅱ、Ⅲ
解析

死锁的处理采用三种策略:死锁预防、死锁避免、死锁检测和解除

死锁预防采用破坏产生死锁的4个必要条件中的一个或几个来防止发生死锁。其中之一的“破坏循环等待条件”,一般采用顺序资源分配法,首先给系统的资源编号,规定每个进程必须按编号递增的顺序请求资源,即限制了用户申请资源的顺序,因此Ⅰ的前半句属于死锁预防的范畴。

银行家算法是著名的死锁避免算法,其中的最大需求矩阵Max定义了每个进程对m类资源的最大需求量,系统在执行安全性算法中都会检查次资源试分配后,系统是否处于安全状态,若不安全则将本次的试探分配作废。在死锁的检测和解除中,系统为进程分配资源时不采取任何措施,但提供死锁的检测和解除手段,因此Ⅱ、Ⅲ正确。

答案:B

8、假设系统中有4个同类资源,进程 P 1 P_1 P1 P 2 P_2 P2 P 3 P_3 P3需要的资源数分别为4,3和1, P 1 P_1 P1 P 2 P_2 P2 P 3 P_3 P3已申请到的资源数分别为2,1,和0,则执行安全性检测算法的结果是()。

  • A:不存在安全序列,系统处于不安全状态
  • B:存在多个安全序列,系统处于安全状态
  • C:存在唯一安全序列 P 3 P_3 P3, P 1 P_1 P1, P 2 P_2 P2,系统处于安全状态
  • D:存在唯一安全序列 P 3 P_3 P3, P 2 P_2 P2, P 1 P_1 P1,系统处于安全状态
解析

由题意可知,仅剩最后一个同类资源,若将其分给 P 1 P_1 P1 P 2 P_2 P2,则均无法正常执行;若分给 P 3 P_3 P3,则 P 3 P_3 P3正常执行完成后,释放的这一个资源仍无法使 P 1 P_1 P1, P 2 P_2 P2正常执行,因此不存在安全序列。

答案:A

9、下列关于死锁的叙述中,正确的是()。

Ⅰ、可以通过剥夺进程资源解除死锁
Ⅱ、死锁的预防方法能确保系统不发生死锁
Ⅲ、银行家算法可以判断系统是否处于死锁状态
Ⅳ、当系统出现死锁时,必然有两个或两个以上的进程处于阻塞态

  • A:仅Ⅱ、Ⅲ
  • B:仅Ⅰ、Ⅱ、Ⅳ
  • C:仅Ⅰ、Ⅱ、Ⅲ
  • D:仅Ⅰ、Ⅲ、Ⅳ
解析
答案:B

10、若系统中有n(n$\geq$2)个进程,每个进程均需要使用某类临界资源2个,则系统不会发生死锁所需的该类资源总数至少是()。

  • A:2
  • B:n
  • C:n+1
  • D:2n
解析

极端情况,当临界资源数为n时,每个进程都拥有1个临界资源并等待另一个资源,会发生死锁。当临界资源数为n+1时,则n个进程中至少有一个进程可以获得2个临界资源,顺利运行完后释放自己的临界资源,使得其他进程也能顺利运行,不会产生死锁。

答案:C
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员丶星霖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值