银行家算法例题
假定系统中有五个进程{P0,P1,P2,P3,P4} 和三类资源{A ,B,C},各种资源的数量分
(1)T0时刻的安全性利用安全性算法对T0时刻的资源分配情况进行分析
①Request1(1,0,2)≤Need1(1,2,2)
②Request1(1,0,2)≤Available1(3,3,2)
③系统先假定可为P1分配资源,并修改Available,Allocation1和Need1向量,由此形成的
(3)P4请求资源:P4发出请求向量Request4(3,3,0),系统按银行家算法进行检查:
①Request4(3,3,0)≤Need4(4,3,1);
②Request4(3,3,0)≮Available(2,3,0),让P4等待。
(4)P0请求资源:P0发出请求向量Requst0(0,2,0),系统按银行家算法进行检查:
①Request0(0, 2,0)≤Need0(7,4,3);
②Request0(0,2,0)≤Available(2,3,0);
③系统暂时先假定可为P0分配资源,并修改有关数据。
④进行安全性检查:可用资源Available(2,1,0)已不能满足任何进程的需要,故系统进入不安全状态,此时系统不分配资源。
Begin
Empty1=1; empty2=1;
Full1=0; full2=0;
Cobegin
Input:
Begin
Repeat
Wait(empty1);
将数据输入到缓冲区1中;
Signal(full1);
Until false
End;
Copy:
Begin
Repeat
Wait(full1);
从缓冲区1中提取数据;
Signal(empty1);
Wait(empty2);
将数据复制到缓冲区2;
Signal(full2);
Until false
End;
Output:
Begin
Repeat
Wait(full2);
将数据从缓冲区2中取出打印;
Signal(empty2);
Until false End; Coend End。