40. 用PV操作解决读者写者问题的正确程序如下:
begin S,Sr:Semaphore;rc:integer;
S:=1;Sr:=1;rc:=0;
cobegin process Reader i(i=1,2…)
begin P(Sr);
rc:=rc+1;
if rc=1 then P(S);
V(Sr);
read file;
P(Sr);
rc:=rc-1;
if rc=0 then V(S);
V(Sr);
end;
process Writerj(j=1,2…)
begin P(S);
Write file;
V(S);
end;
coend;
end;
请回答:(1)信号量Sr的作用是什么?
(2)程序中什么语句用于读写互斥,写写互斥?
(3)若规定仅允许5个进程同时读怎样修改程序?