操作系统第3章作业讲解

操作系统第3章作业讲解
预览:

1.(1)3个进程共享4个同类型资源,每个进程最大需要2个资 源,请问该系统是否会因为竞争该资源而死锁? (2)n个进程共享m个同类资源,若每个进程都需要用该类资 源,且各进程最大需求量之和小于m+n,试证明这个系统不会 因为竞争该资源而发生死锁。
提示:max(1)+…+max(n)=need(1)+…+need(n)+alloc(1)+…alloc(n)<m+n

(3)在(2)中,如果没有“每个进程都需要用该类资源” 3 2 的限制,情况又会如何? 答(1)该系统不会因为竞争该资源而死锁。因为必有一个进 程获得2个资源,故能顺利完成,并释放给其他进程使用,使 它们也顺利完成。

(2)根据题意,有 max(i)>0; Σmax<m+n 若系统进入死锁状态,则意味有一个以上进程因申请不 到资源无限阻塞,而m个资源已全部分配出去,即 Σalloc=m 因此, Σneed= Σmax- Σalloc<m+n-m 即 Σneed<n 这样,至少存在一个进程,其need(i)<=0,这显然与题意不符, 所以该系统不可能因竞争该类资源而进入死锁状态。 (3)此时系统可能发生死锁,如n=4,m=3时,若p1的max为0, 而其余三个进程的都为2,则仍然满足最大需求量之和(即6) 小于m+n(即7)的要求,但当除p1以外的其余三个进程各得到 一个资源时,这三个进程将进入死锁状态。

2.假定某计算机系统有R1和R2两类可使用资源(其中R1有 两个单位,R2有一个单位),他们被进程P1和P2共享,且 已知两进程均以下列顺序使用资源: 申请R1 →申请R2 →申请R1 →释放R1 →释放R2 →释放R1 试求出系统运行过程中可能达到的死锁点,并画出死锁资源 分配图。 解:当两个进程都执行完第1步后,即进程p1和p2都申请到 一个r1资源时,系统进入不安全状态。随着进程的推进,无 论哪个进程执行完第2步,系统都将进入死锁状态。可能达 到的死锁点是:p1、p2个占有一个r1,p1占有一个r2时会出 现死锁;或者, p1、p2个占有一个r1,p2占有一个r2时会出 现死锁。

3.假设一个系统包括A-G七个进程,R-W六种资源。资源 的所有权关系如下所示: •A进程持有R资源,申请S资源。 •B进程不持有资源,申请T资源。 •C进程不持有资源,申请S资源。 •D进程持有U资源,申请S、T资源。 •E进程持有T资源,申请V资源。 •F进程持有W资源,申请S资源。 •G进程持有V资源,申请U资源。 问:系统是否存在死锁?如果存在的话,死锁包含哪些进 程?

思路:画出资源分配图,目测存在环即存在死锁。

定义信号量sum,mutex,初值分别为200,1。则第i个读者 的活动描述为:
procedure Pi(i=1,2,3……) begin wait(sum); wait(mutex); 登记; 登记; signal(mutex); 进入阅览室; 进入阅览室; 阅读; 阅读 wait(mutex); 登记; 登记; signal(

第1页/共6页 下一页>尾页