1、若x是管程内的条件变量,则当进程执行x.wait()时所做的工作是()。
- A:实现对变量x的互斥访问
- B:唤醒一个在x上阻塞的进程
- C:根据x的值判断该进程是否进入阻塞态
- D:阻塞该进程,并将之插入x的阻塞队列中
解析
答案:D
2、 下列准则中,实现临界区互斥机制必须遵循的是()。
Ⅰ、两个进程不能同时进入临界区
Ⅱ、允许进程访问空闲的临界资源
Ⅲ、进程等待进入临界区的时间是有限的
Ⅳ、不能进入临界区的执行态进程立即放弃CPU
- A:仅Ⅰ、Ⅳ
- B:仅Ⅱ、Ⅲ
- C:仅Ⅰ、Ⅱ、Ⅲ
- D:仅Ⅰ、Ⅲ、Ⅳ
解析
实现临界区互斥需满足多个准则。
“忙则等待”准则,即两个进程不能同时访问临界区,Ⅰ正确。
“空闲让进”准则,若临界区空闲,则允许其他进程访问,Ⅱ正确。
“有限等待”准则,即进程应该在有限时间内访问临界区,Ⅲ正确。
Ⅰ、Ⅱ和Ⅲ是互斥机制必须遵循的原则。
Ⅳ是“让权等待”准则,不一定非得实现,如Peterson算法。
答案:C
3、一次分配所有资源的方法可以预防死锁的发生,它破坏死锁4个必要条件中的()。
- A:互斥
- B:占有并请求
- C:非剥夺
- D:循环等待
解析
发生死锁的4个必要条件:互斥、占有并请求、非剥夺和循环等待。
一次分配所有资源的方法是当进程需要资源时,一次性提出所有的请求,若请求的所有资源均满足则分配,只要有一项不满足,就不分配任何资源,该进程阻塞,直到所有的资源空闲后,满足进程的所有需求时再分配。这种分配方式不会部分地占有资源,因此打破了死锁的4个必要条件之一,实现了对死锁的预防。但是,这种分配方式需要凑齐所有资源,因此当一个进程所需的资源较多时,资源的利用率会较低,甚至会造成进程“饥饿”。
答案:B
4、死锁预防是保证系统不进入死锁状态的静态策略,其解决办法是破坏产生死锁的四个必要条件之一。下列方法中破坏了“循环等待”条件的是()。
- A:银行家算法
- B:一次性分配策略
- C:剥夺资源法
- D:资源有序分配策略
解析
资源有序分配策略可以限制循环等待条件的发生。
选项A判断是否为不安全状态;
选项B破坏了占有请求条件;
选项C破坏了非剥夺条件。
答案:D
5、某系统中有三个并发进程都需要四个同类资源,则该系统必然不会发生死锁的最少资源是()。
- A:9
- B:10
- C:11
- D:12
解析
资源数为9时,存在三个进程都占有三个资源,为死锁;资源数为10时,必然存在一个进程能拿到4个资源,然后可以顺序执行完其他进程。
答案:B
6、某系统中共有11台磁带机,X个进程共享此磁带机设备,每个进程最多请求使用3台,则系统必然不会死锁的最大X值是()。
- A:4
- B:5
- C:6
- D:7
解析
极端情况:
每个进程已经分配了两台磁带机,那么其中任何一个进程只要再分配一台磁带机即可满足它的最大需求,该进程总能运行下去直到结束,然后将磁带机归还给系统再次分配给其他进程使用。因此,系统中只要满足2X+1=11这个条件即可认为系统不会死锁,解得X=5,也就是说,系统中最多可以并发5个这样的进程是不会死锁的。
答案:B
7、三个进程共享四个同类资源,这些资源的分配与释放只能一次一个。已知每个进程最多需要两个该类资源,则该系统()。
- A:有些进程可能永远得不到该类资源
- B:必然有死锁
- C:进程请求该类资源必然能得到
- D:必然是死锁
解析
不会发生死锁。因为每个进程都分得一个资源时,还有一个资源可以让任意一个进程满足,这样这个进程可以顺利运行完成进而释放它的资源。
答案:C
8、死锁检测时检查的是()。
- A:资源有向图
- B:前驱图
- C:搜索树
- D:安全图
解析
死锁检测一般采用两种方法:资源有向图法和资源矩阵法。
前驱图只是说明进程之间的同步关系,搜索树用于数据结构的分析,安全图并不存在。
注意死锁避免和死锁检测的区别:死锁避免是指避免死锁发生,即死锁没有发生;死锁检测是指死锁已出现,要把它检测出来。
答案:A
9、某个系统采用下列资源分配策略,若一个进程提出资源请求得不到满足,而此时没有由于等待资源而被阻塞的进程,则自己就被阻塞。而当此时已有等待资源而被阻塞的进程,则检查所有由于等待资源而被阻塞的进程。若它们有申请进程所需要的资源,则将这些资源取出并分配给申请进程。这种分配策略会导致()。
- A:死锁
- B:颠簸
- C:回退
- D:饥饿
解析
某个进程主动释放资源不会导致死锁,因为破坏了请求并保持条件,选项A错。
颠簸也就是抖动,这是请求分页系统中页面调度不当而导致的现象。
回退是指从此时此刻的状态回退到一分钟之前的状态,假如一分钟之前拥有资源X,它有可能释放了资源X,那就不能回到一分钟之前的状态,也就不是回退,选项C错。
由于进程过于“慷慨”,不断把自己已得到的资源送给别人,导致自己长期无法完成,所以是饥饿,选项D对。
答案:D
10、系统的资源分配图在下列情况下,无法判断是否处于死锁状态的有()。
Ⅰ、出现了环路
Ⅱ、没有环路
Ⅲ、每种资源只有一个,并出现环路
Ⅳ、每个进程结点至少有一条请求边
- A:Ⅰ、Ⅱ、Ⅲ、Ⅳ
- B:Ⅰ、Ⅲ、Ⅳ
- C:Ⅰ、Ⅳ
- D:以上答案都不正确
解析
出现了环路,只是满足了循环等待的必要条件,而满足必要条件不一定会导致死锁,Ⅰ对;
没有环路,破坏了循环等待条件,一定不会发生死锁,Ⅱ错;
每种资源只有一个,又出现了环路,这是死锁的充分条件,可以确定是否有死锁,Ⅲ错;
即使每个进程至少有一条请求边。若资源足够,则不会发生死锁,但若资源不充足,则有发生死锁的可能,Ⅳ对。