2017年内蒙古科技大学信息工程学院408计算机学科专业基础综合之计算机操作系统考研强化模拟题
● 摘要
一、应用题
1. 进程资源的使用情况和可用情况如下表所示(四个进程和三类资源):
(1)请画出资源分配图。
(2)分析目前系统中是否会发生死锁。
【答案】(1)资源分配图
Pi>。Pi 是进程每一条便是一个有序对 并且当前正在等待分配。如果ri 是资源类型如果则存在一条从Pi 指向ri 的有向边,它表示Pi 提出了一个要求分配ri 类资源中的一个资源的请求,则存在一条从ri 类资源执行进程Pi 的有向边,它表示ri 类资源中的某个资源已分配给了进程Pi 。有向边 在有向图中,用圆圈代表进程,用方框表示每类资源。每一类资源ri 可能有多个实例,可用方框中的圆点表示各个资源实例。申请边为从进程到资源的有向边,表示进程申请一个资源,但当前该进程在等待该资源。分配边为从资源到进程的有向边,表示有一个资源实例分配给进程。注意:一条申请便仅指向代表资源类ri 的方框,表示申请时不指定哪一个资源实例,而分配边必须由方框中的圆点引出,表目哪一个资源实例也被占有。 当进程Pi 请求资源类ri 的一个实例时,将一条请求边加入资源分配图,如果这个请求是可以满足的,则该请求边立即转换成分配边:当进程随后释放了某个资源时,则删除分配边。 (2)从进程对各类资源的占有量尚需量和系统中各类资源的剩余量来考虑是否有死锁存在。可以看出进程P2已得到全部资源,能在有限的时间内归还资源,得到可分配的资源数为 (3, 1,0)+(0, 0, 0)=(3, 1,0) 可满足进程P1的申请,P1也能在有限的时间内归还资源,于是可分配资源数増加为 (3,1,0)+(2, 0,0)=(5, 1,0) 接着,对进程P4的申请也能满足,最后让进程P3运行。所以存在一个进程推进的序列{P2, P1, P4, P3},先后都能完成,目前系统是安全的,没有死锁。也可通过对资源分配图化简的方法,说明没有死锁存在。 【解析】进程的死锁问题可以用有向图准确而形象的描述,这种有向图称为系统资源分配图。 ,其中V 是顶点的集合,而一个系统资源分配图SRAG 可定义为一个二元组,即SRAG=(V , E ) E 是有向边的集合。顶点集合可分为两种部分:P=(Pl ,P2, …,Pn ), 是由系统内的所有进程组成的集合,每一个Pi 代表一个进程;R=(r1,r2,…,rm ), 是系统内所有资源组成的集合,每一个ri 代表一类资源。 2. 已知T0时刻系统资源分配情况如下表所示。T0时刻系统资源分配表 (1)判断系统当前状态是否是死锁状态? (2)P2进程发出请求向量Request2[l, 0,1], 系统能把资源分给它吗? (3)若在P2进程申请资源后,P3进程发出请求向量Request3[0, 0, 1], 系统能把资源分给它吗? 【答案】(1)①初始化,令Work=Available,Finish 列全为false 。 系统资源初始化分配表 ②因为将资源分配给P2进程,同时标记FiniSh[2]为true 。P2进程使用完后将 系统将资源分配给P2进程 它所占用的全部资源释放。此时系统资源分配情况如下表所示。 因为将资源分配给P3进程,同时标记FiniSh[3]为true 。P3进程使用完后将它所 系统将资源分配给P2进程 占用的全部资源释放,此时系统资源分配情况如下表所示。 因为将资源分配给P4进程,同时标记FiniSh[4]为true 。P4进程使用完后将它 系统将资源分配给P4进程 所占用的全部资源释放,此时系统资源分配情况如下表所示。 因为将资源分配给P1进程,同时标记FiniSh[l]为trae^PUt程使用完后将^所占 系统将资源分配给P1进程 用的全部资源释放,此时系统资源分配情况如下表所示。 ⑥此时Finish 列的所有项均为true , 故系统没有死锁。 ⑵P2进程发出请求向量Request2[l,0, 1],假定系统先将资源分配给P2进程。由第⑴题的解 ,故系统可把资源分配给P2进程。题过程可以看出,此时系统存在一个安全序列(P2, P3, P4,P1) (3)①在P2进程申请资源后,P3进程发出请求向量ReqUeSt3[0, 0, 1],假定系统先将资源分配给P3进程。此时Available=(0,1, 0)。初始化,令Work=Available,Finish 列全为false 。
相关内容
相关标签