假设系统中有 4 个同类资源,进程 P1、P2 和 P3需要的资源数分别为 4、3 和 1,P1、P2 和 P3 已申请到的资源数分别为 2、1 和 0,则执行安全性检测算法的结果是
A. 不存在安全序列,系统处于不安全状态
B. 存在多个安全序列,系统处于安全状态
C. 存在唯一安全序列 P3、P1、P2,系统处于安全状态
D. 存在唯一安全序列 P3、P2、P1,系统处于安全状态
答案:A 由题意可知,仅剩最后一...
用户登录可进行刷题及查看答案
答案:A 由题意可知,仅剩最后一个同类资源,若将其分给P1或P2,则均无法正常执行;若分给P3,则P3正常执行完成后,释放的这一个资源仍无法使P1,P2正常执行,因此不存在安全序列。
方法一:资源分配图
资源分配图:一种描述系统当前状态的图,图中有进程结点、资源结点以及两种不同结点之间的有向边。
资源分配图化简方法:从资源分配图中找既非孤立又非阻塞的进程结点,将该结点直接有关的有向边全删去,重复上述过程直到图中找不到既非孤立又非阻塞的进程结点为止。
根据题意,设资源为R,画出资源分配图,如图(a)所示,化简后如图(b)所示。
死锁检测中的数据结构类似于银行家算法中的数据结构:
很明显,不存在安全序列。
本题选A。
方法二:资源分配表
根据题意,设资源为R,画出资源分配表,如图(c)所示,在将表格转化为已分配资源、尚需资源、可用资源三栏的形式。进程Pi尚需资源=进程Pi资源最大需求-进程Pi已分配资源,可用资源=资源总数-所有进程已分配资源之和,如图(d)所示。
银行家算法中的数据结构类似于死锁检测中的数据结构。使用银行家算法,保证可用资源大于或等于某进行尚需资源,该进程可以输出到序列,并回收该进程已分配资源。若所有进程均可被输出到序列,则存在安全序列,该输出序列为安全序列,否则不存在安全序列。
登录后提交答案
暂无评论,来抢沙发