校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > UI专业知识 > 色彩
题目

考虑在一个计算机系统里,进程可以申请和释放一个或多个资源。资源一旦分配给一个进程,则该进程独占此资源,直到资源被主动释放。如果一个进程申请的资源,正在被其他进程占有,那么该进程进入等待该资源的一个队列,直到该资源能够得到满足。下列方法中,哪一个不能很好解决死锁问题?

A.给每一个进程不同的优先级,并按照优先级的大小决定在资源队列中的顺序。

B.让进程开始运行时获得全部的资源,在不能获得全部资源时重新启动。

C.给资源编号,并要求进程按照编号的顺序申请资源。

D.提供超时机制,在进程进入资源等待后一段随机时间内重启进程。

E.系统监控等待队列发生死锁时,重启相关进程。

解答

正确答案是 A

解决死锁问题的几种方式:
一 . 预防死锁:会损坏系统性能
1. 资源一次性分配——破坏请求和等待条件:即让进程开始运行时获得全部的资源,在不能获得全部资源时进程等待;
2. 可剥夺资源——破坏不可剥夺条件 :即当某进程新的资源未满足时,释放已占有的资源;
3. 资源有序分配法——破坏环路等待条件 :系统给每类资源赋予一个编号,每一个进程按编号递增的顺序请求 资源,释放则相反;
二. 避免死锁:银行家算法
三. 检测死锁
四. 解除死锁:
1.剥夺资源
2.杀死进程
C 3条回复 评论
落星辰

如果资源等待队列是在程序运行前就确定的,那么选项A也没有问题啊,优先级高的进程总是会比优先级低的进程先获得资源,不会出现优先级高的进程获取到某个资源A后,还要等待某个优先级低的进程占有的资源B,因为该优先级低的进程不可能比该优先级高的进程更早获得资源B。
如果资源等待队列是在程序运行后产生并且根据资源请求情况动态变化的,那么选项A就是错的  

发表于 2018-10-15 17:54:18
0 0
皮皮鲁

同一优先级的进程还是会竞争资源

发表于 2018-10-15 17:53:37
0 0
小茉莉

产生死锁的四个必要条件:
1、互斥条件:一个资源每次只能被一个进程使用;
2、请求与保持条件:一个进程因请求资源而被阻塞时,对已获得的资源保持不放;
3、不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺;
4、循环等待条件:若干进行之间形成一种头尾相接的循环等待资源关系。
同样的,破坏上述至少一个条件即可解决死锁问题。

发表于 2018-10-15 17:53:29
0 0