问答题
有3个进程P1、P2和P3并发工作。进程P1需用资源S3和S1:进程P2需用资源S1和S2:进程P3需用资源S2和S3。请回答:
a.若对资源分配不加限制,会发生什么情况?为什么?
b.为保证进程正确工作,应采用怎样的资源分配策略?为什么?
【正确答案】
【答案解析】a.可能会发生死锁
例如:进程P1,P2和P3分别获得资源S3,S1和S2后再继续申请资源时都要等待,这是循环等待。(或进程在等待新源时均不释放已占资源)
b.可有几种答案:
1)采用静态分配
由于执行前己获得所需的全部资源,故不会出现占有资源又等待别的资源的现象(或不会出现循环等待资源现象)。
2)采用按序分配
不会出现循环等待资源现象。
3)采用银行家算法
因为在分配时,保证了系统处于安全状态。