有三个进程P1、P2和P3并发工作。进程P1需要资源S3和S1;进程P2需要资源S1和S2;进程P3需要资源S2和S3。
请问:(1)如果对资源分配不加限制,会发生什么情况?为什么?(2)为保证进程正确工作,应采用怎样的资源分配策略?为什么?
有三个进程P1、P2和P3并发工作。进程P1需要资源S3和S1;进程P2需要资源S1和S2;进程P3需要资源S2和S3。
请问:(1)如果对资源分配不加限制,会发生什么情况?为什么?(2)为保证进程正确工作,应采用怎样的资源分配策略?为什么?
【正确答案】:(1)可能发生死锁。例如,进程P1、P2、P3分别获得资源S3、S1和S2后,再继续申请资源就要等待,若每个进程在申请新资源时不归还已经占有的资源,就形成了循环等待,这种等待永远结束不了。
(2)可采用以下的分配策略之一:静态分配:由于每个进程在得到所有资源后才开始执行,所以不会产生占有部分资源又等待别的资源的情况,也就不会有循环等待。按序分配:这种分配策略能够破坏循环等待条件,可防止死锁。银行家算法:分配资源时均保证系统处于安全状态,可避免死锁的发生。
【题目解析】:考点:死锁发生的状况及资源分配策略
Top