题目
考虑在一个计算机系统里,进程可以申请和释放一个或多个资源。资源一旦分配给一个进程,则该进程独占此资源,直到资源被主动释放。如果一个进程申请的资源,正在被其他进程占有,那么该进程进入等待该资源的一个队列,直到该资源能够得到满足。下列方法中,哪一个不能很好解决死锁问题?
A.给每一个进程不同的优先级,并按照优先级的大小决定在资源队列中的顺序。
B.让进程开始运行时获得全部的资源,在不能获得全部资源时重新启动。
C.给资源编号,并要求进程按照编号的顺序申请资源。
D.提供超时机制,在进程进入资源等待后一段随机时间内重启进程。
E.系统监控等待队列发生死锁时,重启相关进程。
如果资源等待队列是在程序运行前就确定的,那么选项A也没有问题啊,优先级高的进程总是会比优先级低的进程先获得资源,不会出现优先级高的进程获取到某个资源A后,还要等待某个优先级低的进程占有的资源B,因为该优先级低的进程不可能比该优先级高的进程更早获得资源B。
如果资源等待队列是在程序运行后产生并且根据资源请求情况动态变化的,那么选项A就是错的
同一优先级的进程还是会竞争资源