操作系统教程 - 孙钟秀(第四版)课后习题答案 下载本文

P(mutex ) ;

numbersum: = numbersum-number ; V(waits ) ; V(mutex ) ; 2 )使用管程:

TYPE sharefile = MONITOR VAR numbersum ,n : integer ; SF : codition ;

DEFINE startread , endread ;

USE wait , signal , check , release ;

procedure startread ( var number :integer : ) ; begin

check (IM ) ;

L :if(number + numbersum )≥ K then {wait(SF,IM) ; goto L ; } Numbersum:=numbersum+number; release (IM ) ; end

procedure endread (var number:integer ; ) ; begin

check(IM ) ;

numbersum : = numbersum - number ; signal ( SF , IM ) ; release ( IM ) ; end begin

numbersum:=0 end . main()

{ cobegin

process-i() ; coend }

process-i()

var number : integer ; begin

number : =进程读文件编号; startread(number);; read F ;

endread(number) ; end

26、设当前的系统状态如下:系统此时Available=(1,1,2):

l )计算各个进程还需要的资源数Cki - Aki ( 2 )系统是否处于安全状态,为什么?

( 3 ) P2 发出请求向量request2 ( 1 , o , 1 ) ,系统能把资源分给它吗? ( 4 )若在P2 申请资源后,若P1 发出请求向量req 够stl ( 1 ,0, l ) ,系统能把资源分给它吗?

( 5 )若在P1 申请资源后,若P3 发出请求向量request3 ( 0 ,0,l ) ,系统能把资源分给它吗?

答:( 1 ) P1 , P2 , P3 , P4 的Cki . Aki 分别为:( 2 , 2 , 2 )、(1 , 0 , 2 )、(1 , 0 , 3 )、(4 , 2 , 0 ) ( 4 )系统处于安全状态,存在安全序:P2 , P1 , P3 , P4

( 5 )可以分配,存在安全序列:P2 , P1 , P3 , P4 . ( 6 )不可以分配,资源不足。 ( 7 )不可以分配,不安全状态。

27 系统有A 、B 、C 、D 共4 种资源,在某时刻进程PO 、Pl 、PZ 、P3 和P4 对资源的占有和需求情况如表,试解答下列问题:

系统此时处于安全状态吗?

若此时P2 发出request2 ( 1 、2 、2 、2 ) ,系统能分配资源给它吗?为什么?

答:( l )系统处于安全状态,存在安全序列:P0, P3 , P4 , P1 , P2 。 ( 2 )不能分配,否则系统会处于不安全状态。 28 把死锁检测算法用于下面的数据,并请问: Available=(1,0,2,0)