有3个进程P1 P2和P3并发工作。进程P1需要资源S3和S1;进程P2需要资源S1和S2;进程P3需要资源S2和S3。

大学 进程,资源,工作 已帮助 人

有3个进程P1、P2和P3并发工作。进程P1需要资源S3和S1;进程P2需要资源S1和S2;进程P3需要资源S2和S3。那么, (1)若对资源分配不加限制,会发生什么情况?为什么? (2)为保证正确地工作,应采用怎样的资源分配策略?为什么?

请帮忙给出正确答案和分析,谢谢!

热搜:关于进程和线程,下列描述不正确的是

答案解析

难度★★☆ 搜索
  • 正确答案:(1)若对资源的分配不加限制系统可能出现死锁现象。因为比如P1进程占了S3资源P2进程占了S1资源P3进程占了S2资源此时系统已经没有S1、S2和S3资源了而P1则申请S1资源P2申请S2资源P3申请S3资源此时显然系统处于死锁状态了。 (2)为了保证进程正确地工作系统应该采取一定的资源分配策略来限制死锁发生的必要条件。 ①限制请求和保持条件的发生。可以要求进程只有一次性申请到了所有的它所需的所有资源后才能得到运行否则将放弃它申请到的资源。 ②限制不剥夺条件的发生。可以允许系统中的进程在申请了系统中已经没有了的资源后那么可以从其他没有在运行的进程中抢夺该资源。 ③限制环路等待条件的发生。可以要求进程按照资源的编号来顺序地申请资源即P1进程先申请S1再申请S3P2进程先申请S1再申请S2P3进程先申请S2再申请S3。 以上三种资源分配策略都限制一个或多个死锁发生的必要条件可以预防死锁的发生。
    这道题显然是考查死锁的概念和如何设置资源分配策略来预防死锁,第一小题可以举例来说明,第二小题可以根据打破死锁发生的其中三个必要条件来考虑资源分配策略。