- 在消息传递方式下,
(1) 发送进程和接收进程在通信过程中可以采取哪3种同步方式?
发送进程阻塞,接收进程阻塞;
发送进程不阻塞,接收进程阻塞;
发送进程不阻塞,接收进程不阻塞。
(2) 试以下面给出的发送进程和接收进程(将接收到的数据存入S)为例,说明当接收进程执行到标号为L2的语句时,采用这3种同步方式,X的值可能各是多少?
发送进程P
M=10;
L1: send M to Q;
L2: M=20;
Goto L1;
接收进程Q
S=-100;
L1: receive S from P;
L2: X=S+1
答:在第一种情况下,Q必须等待P执行完L1后才执行L1;此时S = M = 10,而再执行L2,X = 11;
在第二种情况下,P执行完L1后由于无需阻塞,可继续执行L2,并且重复发送消息,若Q在执行L1时,P只发送了一条消息,则S = 10,X = 11;若P已发送多条消息,则S = 20, X=21。
在第三种情况下,因为Q也无需阻塞,故S的值可能为-100,10,20; 则X的值分别可能为-99,11,21.
- 假定系统有N个进程共享M个同类资源,规定每个进程至少申请一个资源,每个进程的最大需求不超过M,所有进程的需求总和小于M+N。为什么在这种情况下也绝不会发生死锁?试证明。
答:设每个进程最多需要X个资源。
若系统会产生死锁,则 N(X-1)+1≤M不成立,
即N(X-1)>M+1 -> NX ≥M+N
与题设 NX <M+N 不符 故不会出现死锁
- 系统在某一时刻的状态如表1所示:
使用银行家算法回答下列问题:
(1) 请给出Need矩阵。
(2) 系统是否处于安全状态?
(3) 如果从进程P1发来一个请求(0,4,2,0),这个请求能否立刻被满足?
答:
(1)
(2)处于安全状态,将P0资源释放后,可分配资源即为1 5 3 2此资源数可同时满足p2 p3进程所需资源,p2 p3资源释放后,p1 p4资源也可得到释放。
故一条安全路线为 p0->p2->p3->p1->p4.
(3)可以,若满足此请求,当p0资源释放后,可分配资源为
1 1 1 2,此时仍可满足p2,而当p2释放资源后,则可满足p3或p1,p3 p1释放资源后, p4 也可得到满足。
故一条安全路线为 p0->p2->p3->p1->p4.
7. 进程资源的使用情况和可用情况如下表所示,
(1) 请画出资源分配图;
(2) 该资源分配图是否可以简化?若可以,请给出简化步骤。
可化简化,因为三个资源块均有射入射出箭头,无法化简,则观察进程快,P2只有射入箭
头,故将p2相关箭头抹去,抹去后,R1有足够的空闲资源满足P1的申请请求,故把R1相
关的箭头抹去,此时R2有一个空闲资源P1只需一个R2资源,故将此资源分配给P1,而P1
此时已得到资源满足,故将P1有关箭头抹去;此时R2有一个空闲资源 可分配给P4,P4也
得到资源满足,故将P4有关箭头抹去,此时R3多处一个空闲资源,分配给P3,P3也得到
资源满足。故将P3相关箭头抹去。
(3) 在上表所示情况下系统会发生死锁吗?
答:由(2)知,不会发生死锁现象。